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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddStatement(IFixedPointStatement<PointsToSetVariable> statement) Add a statement to the systemvoidbooleanbooleanA 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.intintNote that this implementation consults the implicit relation for each and every operator cached.Return an Iterator of theIFixedPointStatements in this systemReturn an Iterator of the variables in this graphvoidvoidremoves a given statementvoidvoidreorder()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:IFixedPointSystemReturn an Iterator of theIFixedPointStatements in this system- Specified by:
getStatementsin interfaceIFixedPointSystem<PointsToSetVariable>- Returns:
Iterator<Constraint>
-
removeStatement
public void removeStatement(IFixedPointStatement<PointsToSetVariable> eq) throws IllegalArgumentException Description copied from interface:IFixedPointSystemremoves a given statement- Specified by:
removeStatementin interfaceIFixedPointSystem<PointsToSetVariable>- Throws:
IllegalArgumentException
-
reorder
public void reorder()Description copied from interface:IFixedPointSystemreorder the statements in this system- Specified by:
reorderin interfaceIFixedPointSystem<PointsToSetVariable>
-
getStatementsThatUse
- Specified by:
getStatementsThatUsein interfaceIFixedPointSystem<PointsToSetVariable>- Returns:
Iterator<statement>, the statements that use the variable
-
getStatementsThatDef
public Iterator<AbstractStatement<PointsToSetVariable, ?>> getStatementsThatDef(PointsToSetVariable v) - Specified by:
getStatementsThatDefin 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:
getNumberOfStatementsThatUsein interfaceIFixedPointSystem<PointsToSetVariable>- Throws:
IllegalArgumentException- if v is null
-
getNumberOfStatementsThatDef
- Specified by:
getNumberOfStatementsThatDefin interfaceIFixedPointSystem<PointsToSetVariable>
-
getVariables
Description copied from interface:IFixedPointSystemReturn an Iterator of the variables in this graph- Specified by:
getVariablesin interfaceIFixedPointSystem<PointsToSetVariable>- Returns:
Iterator<IVariable>
-
performVerboseAction
public void performVerboseAction()- See Also:
-
containsStatement
public boolean containsStatement(IFixedPointStatement<PointsToSetVariable> eq) throws IllegalArgumentException - Specified by:
containsStatementin interfaceIFixedPointSystem<PointsToSetVariable>- Returns:
- true iff this system already contains an equation that is equal() to s
- Throws:
IllegalArgumentException
-
containsVariable
- Specified by:
containsVariablein 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:IFixedPointSystemAdd a statement to the system- Specified by:
addStatementin interfaceIFixedPointSystem<PointsToSetVariable>- Throws:
IllegalArgumentExceptionUnimplementedError
-
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 Assignment 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
-