Interface TabulationResult<T,P,F>

Type Parameters:
T - type of node in the supergraph
P - type of a procedure, like a box in an RSM
F - type of factoids propagated when solving this problem
All Known Implementing Classes:
TabulationSolver.Result

public interface TabulationResult<T,P,F>
The solution of a tabulation problem: a mapping from supergraph node -> bit vector representing the dataflow facts that hold at the entry to the supergraph node.
  • Method Details

    • getResult

      IntSet getResult(T node)
      get the bitvector of facts that hold at IN for a given node in the supergraph.
      Parameters:
      node - a node in the supergraph
      Returns:
      SparseIntSet efficiently representing the bitvector
    • getProblem

      TabulationProblem<T,P,F> getProblem()
      Returns:
      the governing IFDS problem
    • getSupergraphNodesReached

      Collection<T> getSupergraphNodesReached()
      Returns:
      the set of supergraph nodes for which any fact is reached
    • getSummaryTargets

      IntSet getSummaryTargets(T n1, int d1, T n2)
      Returns:
      set of d2 s.t. (n1,d1) -> (n2,d2) is recorded as a summary edge, or null if none found
    • getSeeds

      Collection<PathEdge<T>> getSeeds()
      Returns:
      the set of all PathEdges that were used as seeds during the tabulation.