public abstract class DataflowSolver<T,V extends IVariable<V>> extends DefaultFixedPointSolver<V>
AbstractFixedPointSolver.StatementDEFAULT_PERIODIC_MAINTENANCE_INTERVAL, DEFAULT_VERBOSE_INTERVAL, verbose, workListCHANGED, 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) |
getFixedPointSystemaddAllStatementsToWorkList, 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, toStringpublic DataflowSolver(IKilldallFramework<T,V> problem)
protected abstract V makeNodeVariable(T n, boolean IN)
n - a nodeprotected void initializeVariables()
AbstractFixedPointSolverinitializeVariables in class AbstractFixedPointSolver<V extends IVariable<V>>protected void initializeWorkList()
AbstractFixedPointSolverinitializeWorkList in class AbstractFixedPointSolver<V extends IVariable<V>>protected void buildEquations(boolean toWorkList,
boolean eager)
public IKilldallFramework<T,V> getProblem()