public abstract class DataflowSolver<T,V extends IVariable<?>> extends DefaultFixedPointSolver<V>
AbstractFixedPointSolver.Statement
DEFAULT_PERIODIC_MAINTENANCE_INTERVAL, DEFAULT_VERBOSE_INTERVAL, verbose, workList
CHANGED, CHANGED_AND_FIXED, CHANGED_MASK, FIXED_MASK, NOT_CHANGED, NOT_CHANGED_AND_FIXED, SIDE_EFFECT_MASK
Constructor and Description |
---|
DataflowSolver(IKilldallFramework<T,V> problem) |
Modifier and Type | Method and Description |
---|---|
protected void |
buildEquations(boolean toWorkList,
boolean eager) |
V |
getEdge(Object key) |
V |
getEdge(Object src,
Object dst) |
V |
getIn(Object node) |
V |
getOut(Object node) |
IKilldallFramework<T,V> |
getProblem() |
protected void |
initializeVariables()
Initialize all lattice vars in the system.
|
protected void |
initializeWorkList()
Initialize the work list for iteration.j
|
protected abstract V |
makeEdgeVariable(T src,
T dst) |
protected abstract V |
makeNodeVariable(T n,
boolean IN) |
getFixedPointSystem
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
public DataflowSolver(IKilldallFramework<T,V> problem)
protected abstract V makeNodeVariable(T n, boolean IN)
n
- a nodeprotected void initializeVariables()
AbstractFixedPointSolver
initializeVariables
in class AbstractFixedPointSolver<V extends IVariable<?>>
protected void initializeWorkList()
AbstractFixedPointSolver
initializeWorkList
in class AbstractFixedPointSolver<V extends IVariable<?>>
protected void buildEquations(boolean toWorkList, boolean eager)
public IKilldallFramework<T,V> getProblem()