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