Incrementalized Pointer and Escape Analysis

Frederic Vivien and Martin Rinard

Gokulan R
CS15B033

23 April 2020

Summary

  • Incrementalized pointer analysis: Analyse code incrementally starting from a target node - capture objects allocated in the entire program which originate from the target node.
  • flow sensitive, context sensitive
  • Points-to escape graph
    • Inside and outside nodes using which inter-procedural analysis is done
  • Capturing the node: The entire life cycle of the program where the object could be live has been analysed.

ALGOrithm

  • Given a target node, skip to the end of the method which contains the node and compute points-to escape graph
  • For each function call using which the target node escapes, choose a function call which has max. likelihood to capture the node.
  • Analysis policy: Contains a cost-reward estimator which chooses the next function to analyse based on
    • the likelihood that the node will be captured
    • the cost of processing the function
    • the reward after processing the function

FUTURE WORK

  • Any generic worklist-based approach can be mapped onto escape analysis
    • Eager approach: Start next optimization as the results for the current analysis become available
  • Parallel context-sensitive analysis
    • Methods which are skipped can be processed parallely
    • Merging graph with escape-graph needs synchronization
Made with Slides.com