Class DataflowSolver<T,V extends IVariable<V>>

All Implemented Interfaces:
FixedPointConstants, IFixedPointSolver<V>, VerboseAction
Direct Known Subclasses:
BitVectorSolver, BooleanSolver, NullPointerSolver

public abstract class DataflowSolver<T,V extends IVariable<V>> extends DefaultFixedPointSolver<V>
Iterative solver for a Killdall dataflow framework
  • Constructor Details

  • Method Details

    • 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<V>>
    • 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<V>>
    • getOut

      @NullUnmarked public V getOut(Object node)
    • getIn

      @NullUnmarked public V getIn(Object node)
    • getEdge

      public @Nullable V getEdge(Object key)
    • getEdge

      public V getEdge(Object src, Object dst)
    • buildEquations

      protected void buildEquations(boolean toWorkList, boolean eager)
    • getProblem

      public IKilldallFramework<T,V> getProblem()