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
incr_esc_analysis
By Gokulan Ravi
incr_esc_analysis
- 126