|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver<T>
com.ibm.wala.fixedpoint.impl.DefaultFixedPointSolver<PointsToSetVariable>
com.ibm.wala.ipa.callgraph.propagation.PropagationSystem
public class PropagationSystem
System of constraints that define propagation for call graph construction
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class com.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver |
|---|
AbstractFixedPointSolver.Statement |
| Field Summary | |
|---|---|
protected CallGraph |
cg
Governing call graph; |
protected MutableMapping<InstanceKey> |
instanceKeys
bijection from InstanceKey <=>Integer |
protected PointsToMap |
pointsToMap
object that tracks points-to sets |
| Fields inherited from class com.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver |
|---|
DEFAULT_PERIODIC_MAINTENANCE_INTERVAL, DEFAULT_VERBOSE_INTERVAL, verbose, workList |
| Fields inherited from interface com.ibm.wala.fixpoint.FixedPointConstants |
|---|
CHANGED, CHANGED_AND_FIXED, CHANGED_MASK, FIXED_MASK, NOT_CHANGED, NOT_CHANGED_AND_FIXED, SIDE_EFFECT_MASK |
| Constructor Summary | |
|---|---|
PropagationSystem(CallGraph cg,
PointerKeyFactory pointerKeyFactory,
InstanceKeyFactory instanceKeyFactory)
|
|
| Methods inherited from class com.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver |
|---|
addAllStatementsToWorkList, addToWorkList, changedVariable, emptyWorkList, getMaxEvalBetweenTopo, getMinSizeForTopSort, getNumberOfEvaluations, getStatements, getTopologicalGrowthFactor, incNumberOfEvaluations, initForFirstSolve, isChanged, isFixed, isSideEffect, lineBreak, newStatement, newStatement, newStatement, newStatement, newStatement, orderStatements, removeStatement, setMaxEvalBetweenTopo, setMinEquationsForTopSort, setTopologicalGrowthFactor, solve, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected final PointsToMap pointsToMap
protected final MutableMapping<InstanceKey> instanceKeys
protected final CallGraph cg
| Constructor Detail |
|---|
public PropagationSystem(CallGraph cg,
PointerKeyFactory pointerKeyFactory,
InstanceKeyFactory instanceKeyFactory)
| Method Detail |
|---|
public PointerAnalysis makePointerAnalysis(PropagationCallGraphBuilder builder)
protected void registerFixedSet(PointsToSetVariable p,
UnarySideEffect s)
protected void updateSideEffects(PointsToSetVariable p,
PointsToSetVariable rep)
public IntSet getInstanceKeysForClass(IClass klass)
java.lang.IllegalArgumentException - if klass is nullpublic InstanceKey getInstanceKey(int i)
protected void initializeVariables()
AbstractFixedPointSolver
initializeVariables in class AbstractFixedPointSolver<PointsToSetVariable>public void recordImplicitPointsToSet(PointerKey key)
public PointsToSetVariable findOrCreatePointsToSet(PointerKey key)
key -
public int findOrCreateIndexForInstanceKey(InstanceKey key)
public boolean newConstraint(PointerKey lhs,
UnaryOperator<PointsToSetVariable> op,
PointerKey rhs)
public void newConstraint(PointerKey lhs,
AbstractOperator<PointsToSetVariable> op,
PointerKey rhs)
public void newConstraint(PointerKey lhs,
AbstractOperator<PointsToSetVariable> op,
PointerKey rhs1,
PointerKey rhs2)
public boolean newFieldWrite(PointerKey lhs,
UnaryOperator<PointsToSetVariable> op,
PointerKey rhs,
PointerKey container)
public boolean newFieldRead(PointerKey lhs,
UnaryOperator<PointsToSetVariable> op,
PointerKey rhs,
PointerKey container)
public boolean newConstraint(PointerKey lhs,
InstanceKey value)
public void newSideEffect(UnaryOperator<PointsToSetVariable> op,
PointerKey arg0)
public void newSideEffect(AbstractOperator<PointsToSetVariable> op,
PointerKey[] arg0)
public void newSideEffect(AbstractOperator<PointsToSetVariable> op,
PointerKey arg0,
PointerKey arg1)
protected void initializeWorkList()
AbstractFixedPointSolver
initializeWorkList in class AbstractFixedPointSolver<PointsToSetVariable>public PointerAnalysis extractPointerAnalysis(PropagationCallGraphBuilder builder)
public void performVerboseAction()
VerboseAction
performVerboseAction in interface VerboseActionperformVerboseAction in class AbstractFixedPointSolver<PointsToSetVariable>public IFixedPointSystem<PointsToSetVariable> getFixedPointSystem()
getFixedPointSystem in interface IFixedPointSolver<PointsToSetVariable>getFixedPointSystem in class DefaultFixedPointSolver<PointsToSetVariable>IFixedPointSolverpublic java.util.Iterator<PointerKey> iteratePointerKeys()
public int getNumberOfPointerKeys()
public java.util.Iterator<AbstractStatement> getStatementsThatUse(PointsToSetVariable v)
public java.util.Iterator<AbstractStatement> getStatementsThatDef(PointsToSetVariable v)
public NumberedGraph<PointsToSetVariable> getAssignmentGraph()
public Graph<PointsToSetVariable> getFilterAsssignmentGraph()
public Graph<PointsToSetVariable> getFlowGraphIncludingImplicitConstraints()
public void revertToPreTransitive()
public java.util.Iterator getTransitiveRoots()
public boolean isTransitiveRoot(PointerKey key)
protected void periodicMaintenance()
AbstractFixedPointSolver
periodicMaintenance in class AbstractFixedPointSolver<PointsToSetVariable>public int getVerboseInterval()
AbstractFixedPointSolver
getVerboseInterval in class AbstractFixedPointSolver<PointsToSetVariable>public void setVerboseInterval(int verboseInterval)
verboseInterval - The verboseInterval to set.public int getPeriodicMaintainInterval()
AbstractFixedPointSolver
getPeriodicMaintainInterval in class AbstractFixedPointSolver<PointsToSetVariable>public void setPeriodicMaintainInterval(int periodicMaintainInteval)
periodicMaintainInteval - public void unify(IntSet s)
s - numbers of points-to-set variables
java.lang.IllegalArgumentException - if s is nullpublic boolean isUnified(PointerKey result)
public int getNumber(PointerKey p)
protected PointsToSetVariable[] makeStmtRHS(int size)
makeStmtRHS in class AbstractFixedPointSolver<PointsToSetVariable>
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||