com.ibm.wala.dataflow.graph
Class DataflowSolver<T,V extends IVariable<?>>
java.lang.Object
com.ibm.wala.fixedpoint.impl.AbstractFixedPointSolver<T>
com.ibm.wala.fixedpoint.impl.DefaultFixedPointSolver<V>
com.ibm.wala.dataflow.graph.DataflowSolver<T,V>
- All Implemented Interfaces:
- FixedPointConstants, IFixedPointSolver<V>, VerboseAction
- Direct Known Subclasses:
- BitVectorSolver, BooleanSolver
public abstract class DataflowSolver<T,V extends IVariable<?>>
- extends DefaultFixedPointSolver<V>
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, makeStmtRHS, 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,V> problem)
makeNodeVariable
protected abstract V 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 V 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<V extends IVariable<?>>
initializeWorkList
protected void initializeWorkList()
- Description copied from class:
AbstractFixedPointSolver
- Initialize the work list for iteration.j
- Specified by:
initializeWorkList in class AbstractFixedPointSolver<V extends IVariable<?>>
getOut
public V getOut(java.lang.Object node)
getIn
public V getIn(java.lang.Object node)
getEdge
public V getEdge(java.lang.Object key)
getEdge
public V getEdge(java.lang.Object src,
java.lang.Object dst)
buildEquations
protected void buildEquations(boolean toWorkList,
boolean eager)
getProblem
public IKilldallFramework<T,V> getProblem()