Package sootup.spark
Class IncrementalPointsToAnalysis
java.lang.Object
sootup.spark.IncrementalPointsToAnalysis
Worklist-based incremental Andersen-style points-to propagation.
Used by the on-the-fly call graph builder, which needs intermediate points-to results to
resolve virtual call sites. Edges are fed in via addEdge(Node, Node) as the PAG grows;
propagate() drains the dirty-node and dirty-heap worklists to bring points-to and heap
state to a fixed point with respect to the currently-known edges. The analysis can then be
re-driven when more edges are discovered, without recomputing from scratch.
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds an edge to the underlying PAG and applies its semantic effect to the points-to / heap state.getHeap()getPag()voidDrains worklists; bringing points-to and heap state up to date with currently-known edges.reachingObjects(@NonNull Node n)
-
Constructor Details
-
IncrementalPointsToAnalysis
-
-
Method Details
-
getPag
-
addEdge
Adds an edge to the underlying PAG and applies its semantic effect to the points-to / heap state. New work generated by the edge is enqueued forpropagate()to drain. -
propagate
public void propagate()Drains worklists; bringing points-to and heap state up to date with currently-known edges. -
reachingObjects
-
getPointsTo
-
getHeap
-