Class PropagationGraph
java.lang.Object
com.ibm.wala.ipa.callgraph.propagation.PropagationGraph
- All Implemented Interfaces:
IFixedPointSystem<PointsToSetVariable>
A dataflow graph implementation specialized for propagation-based pointer analysis
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
addStatement
(IFixedPointStatement<PointsToSetVariable> statement) Add a statement to the systemvoid
boolean
boolean
A graph of just the variables in the system.A graph of just the variables in the system.NOTE: do not use this method unless you really know what you are doing.int
int
Note that this implementation consults the implicit relation for each and every operator cached.Return an Iterator of theIFixedPointStatement
s in this systemReturn an Iterator of the variables in this graphvoid
void
removes a given statementvoid
void
reorder()
reorder the statements in this system
-
Constructor Details
-
PropagationGraph
public PropagationGraph()
-
-
Method Details
-
addStatement
- Throws:
IllegalArgumentException
- if eq is null
-
addStatement
- Throws:
IllegalArgumentException
-
removeVariable
-
getStatements
Description copied from interface:IFixedPointSystem
Return an Iterator of theIFixedPointStatement
s in this system- Specified by:
getStatements
in interfaceIFixedPointSystem<PointsToSetVariable>
- Returns:
Iterator
<Constraint>
-
removeStatement
public void removeStatement(IFixedPointStatement<PointsToSetVariable> eq) throws IllegalArgumentException Description copied from interface:IFixedPointSystem
removes a given statement- Specified by:
removeStatement
in interfaceIFixedPointSystem<PointsToSetVariable>
- Throws:
IllegalArgumentException
-
reorder
public void reorder()Description copied from interface:IFixedPointSystem
reorder the statements in this system- Specified by:
reorder
in interfaceIFixedPointSystem<PointsToSetVariable>
-
getStatementsThatUse
- Specified by:
getStatementsThatUse
in interfaceIFixedPointSystem<PointsToSetVariable>
- Returns:
Iterator
<statement>, the statements that use the variable
-
getStatementsThatDef
public Iterator<AbstractStatement<PointsToSetVariable,?>> getStatementsThatDef(PointsToSetVariable v) - Specified by:
getStatementsThatDef
in interfaceIFixedPointSystem<PointsToSetVariable>
- Returns:
Iterator
<statement>, the statements that def the variable
-
getNumberOfStatementsThatUse
Note that this implementation consults the implicit relation for each and every operator cached. This will be inefficient if there are many implicit operators.- Specified by:
getNumberOfStatementsThatUse
in interfaceIFixedPointSystem<PointsToSetVariable>
- Throws:
IllegalArgumentException
- if v is null
-
getNumberOfStatementsThatDef
- Specified by:
getNumberOfStatementsThatDef
in interfaceIFixedPointSystem<PointsToSetVariable>
-
getVariables
Description copied from interface:IFixedPointSystem
Return an Iterator of the variables in this graph- Specified by:
getVariables
in interfaceIFixedPointSystem<PointsToSetVariable>
- Returns:
Iterator
<IVariable
>
-
performVerboseAction
public void performVerboseAction()- See Also:
-
containsStatement
public boolean containsStatement(IFixedPointStatement<PointsToSetVariable> eq) throws IllegalArgumentException - Specified by:
containsStatement
in interfaceIFixedPointSystem<PointsToSetVariable>
- Returns:
- true iff this system already contains an equation that is equal() to s
- Throws:
IllegalArgumentException
-
containsVariable
- Specified by:
containsVariable
in interfaceIFixedPointSystem<PointsToSetVariable>
- Returns:
- true iff this system already contains a variable that is equal() to v.
-
addStatement
public void addStatement(IFixedPointStatement<PointsToSetVariable> statement) throws IllegalArgumentException, UnimplementedError Description copied from interface:IFixedPointSystem
Add a statement to the system- Specified by:
addStatement
in interfaceIFixedPointSystem<PointsToSetVariable>
- Throws:
IllegalArgumentException
UnimplementedError
-
getAssignmentGraph
A graph of just the variables in the system. v1 -> v2 iff there exists an assignment equation e s.t. e uses v1 and e defs v2. -
getFilterAssignmentGraph
A graph of just the variables in the system. v1 -> v2 iff there exists an Assingnment or Filter equation e s.t. e uses v1 and e defs v2. -
getFlowGraphIncludingImplicitConstraints
NOTE: do not use this method unless you really know what you are doing. Functionality is fragile and may not work in the future. -
spaceReport
-