|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.jimple.spark.geom.geomPA.OfflineProcessor
public class OfflineProcessor
This class contains the implementation of all kinds of preprocess algorithms preceding to the pointer analysis. Some implemented techniques are: 1. Intra-procedural equivalent pointer detection; 2. Unreachable library code removal; 3. Pointer numbering for worklist prioritizing.
| Constructor Summary | |
|---|---|
OfflineProcessor(int size,
GeomPointsTo pta)
|
|
| Method Summary | |
|---|---|
protected void |
buildInstanceAssignmentGraph()
Build the online assignment call graph with all the points-to facts. |
protected void |
buildSymbolicAssignmentGraph()
We totally rebuild the graph. |
protected void |
cleanSparkResults()
The pointers that we will refine in our context sensitive analysis do not need the spark results any more. |
protected void |
destroy()
|
protected void |
eliminateUselessConstraints()
Heavy-weight library is the major reason for the non-scalability of pointer analysis. |
protected void |
makeTopologicalOrder()
Prepare for a near optimal worklist selection strategy inspired by Ben's PLDI 07 work. |
protected void |
mergeLocalVariables()
As pointed out by the single entry graph contraction, temporary variables incur high redundancy in points-to relations. |
void |
recleanConstraints()
After one iteration of analysis, the unreachable methods may introduce new useless constraints. |
void |
runOptimizations(Set<Node> virtualBaseSet)
|
protected void |
setAllUserCodeVariablesUseful(Set<Node> virtualBaseSet)
All the pointers that we need their points-to information are marked. |
protected void |
setUsefulVariables(Set<Node> initVars)
The user can provide a set of variables that need refined points-to result. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public OfflineProcessor(int size,
GeomPointsTo pta)
| Method Detail |
|---|
public void runOptimizations(Set<Node> virtualBaseSet)
public void recleanConstraints()
protected void buildInstanceAssignmentGraph()
protected void destroy()
protected void setUsefulVariables(Set<Node> initVars)
initVars - protected void setAllUserCodeVariablesUseful(Set<Node> virtualBaseSet)
virtualBaseSet - protected void eliminateUselessConstraints()
protected void cleanSparkResults()
protected void buildSymbolicAssignmentGraph()
protected void makeTopologicalOrder()
protected void mergeLocalVariables()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||