Interface InterDataflowAnalysis<Node,Fact>

Type Parameters:
Node - type of ICFG nodes
Fact - type of data-flow facts
All Known Implementing Classes:
AbstractInterDataflowAnalysis, InterConstantPropagation

public interface InterDataflowAnalysis<Node,Fact>
Template interface for defining inter-procedural data-flow analysis.
  • Method Details

    • isForward

      boolean isForward()
      Returns:
      true if this analysis is forward, otherwise false.
    • newBoundaryFact

      Fact newBoundaryFact(Node boundary)
      Returns:
      new fact in boundary conditions, i.e., the fact for entry node in forward analysis or exit node in backward analysis.
    • newInitialFact

      Fact newInitialFact()
      Returns:
      new initial fact for non-boundary nodes.
    • meetInto

      void meetInto(Fact fact, Fact target)
      Meets a fact into another (target) fact. This function will be used to handle control-flow confluences.
    • transferNode

      boolean transferNode(Node node, Fact in, Fact out)
      Node Transfer function for the analysis. The function transfers data-flow from in (out) fact to out (in) fact for forward (backward) analysis.
      Returns:
      true if the transfer changed the out (int) fact, otherwise false.
    • transferEdge

      Fact transferEdge(ICFGEdge<Node> edge, Fact out)
      Edge Transfer function for this analysis.
      Parameters:
      edge - the ICFG edge that the transfer function is applied on.
      out - the OUT fact of source node of the edge.
      Returns:
      the result of edge transfer function.