com.ibm.wala.dataflow.graph
Class DataflowSolver<T>
java.lang.Object
com.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver
com.ibm.wala.fixedpoint.impl.DefaultFixedPointSolver
com.ibm.wala.dataflow.graph.DataflowSolver<T>
- All Implemented Interfaces:
- FixedPointConstants, IFixedPointSolver, VerboseAction
- Direct Known Subclasses:
- BitVectorSolver, BooleanSolver
public abstract class DataflowSolver<T>
- extends DefaultFixedPointSolver
Iterative solver for a killdall dataflow framework
| Methods inherited from class com.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver |
addAllStatementsToWorkList, addToWorkList, changedVariable, emptyWorkList, getMaxEvalBetweenTopo, getMinSizeForTopSort, getNumberOfEvaluations, getPeriodicMaintainInterval, getStatements, getTopologicalGrowthFactor, getVerboseInterval, incNumberOfEvaluations, initForFirstSolve, isChanged, isFixed, isSideEffect, lineBreak, newStatement, newStatement, newStatement, newStatement, newStatement, orderStatements, performVerboseAction, periodicMaintenance, removeStatement, setMaxEvalBetweenTopo, setMinEquationsForTopSort, setTopologicalGrowthFactor, solve, toString |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
DataflowSolver
public DataflowSolver(IKilldallFramework<T> problem)
- Parameters:
problem -
makeNodeVariable
protected abstract IVariable makeNodeVariable(T n,
boolean IN)
- Parameters:
n - a node
- Returns:
- a fresh variable to represent the lattice value at the IN or OUT of
n
makeEdgeVariable
protected abstract IVariable makeEdgeVariable(T src,
T dst)
initializeVariables
protected void initializeVariables()
- Description copied from class:
AbstractFixedPointSolver
- Initialize all lattice vars in the system.
- Specified by:
initializeVariables in class AbstractFixedPointSolver
initializeWorkList
protected void initializeWorkList()
- Description copied from class:
AbstractFixedPointSolver
- Initialize the work list for iteration.j
- Specified by:
initializeWorkList in class AbstractFixedPointSolver
getOut
public IVariable getOut(java.lang.Object node)
getIn
public IVariable getIn(java.lang.Object node)
getEdge
public IVariable getEdge(java.lang.Object key)
getEdge
public IVariable getEdge(java.lang.Object src,
java.lang.Object dst)
buildEquations
protected void buildEquations(boolean toWorkList,
boolean eager)
getProblem
public IKilldallFramework getProblem()