Class ControlDependenceGraph<T>

All Implemented Interfaces:
EdgeManager<T>, Graph<T>, NodeManager<T>, NumberedEdgeManager<T>, NumberedGraph<T>, NumberedNodeManager<T>, Iterable<T>

public class ControlDependenceGraph<T> extends AbstractNumberedGraph<T>
Control Dependence Graph
  • Constructor Details

    • ControlDependenceGraph

      public ControlDependenceGraph(MinimalCFG<T> cfg, boolean wantEdgeLabels)
      Parameters:
      cfg - governing control flow graph
      wantEdgeLabels - whether to compute edge labels for CDG edges
    • ControlDependenceGraph

      public ControlDependenceGraph(MinimalCFG<T> cfg)
      Parameters:
      cfg - governing control flow graph
  • Method Details

    • makeEdgeLabel

      protected Object makeEdgeLabel(T from, T to, T s)
    • toString

      public String toString()
      Overrides:
      toString in class AbstractGraph<T>
    • getControlFlowGraph

      public MinimalCFG<T> getControlFlowGraph()
    • getEdgeLabels

      public Set<? extends Object> getEdgeLabels(T from, T to)
      Return the set of edge labels for the control flow edges that cause the given edge in the CDG. Requires that the CDG be constructed with wantEdgeLabels being true.
    • getNodeManager

      public NumberedNodeManager<T> getNodeManager()
      Specified by:
      getNodeManager in class AbstractNumberedGraph<T>
      Returns:
      the object which manages nodes in the graph
    • getEdgeManager

      public NumberedEdgeManager<T> getEdgeManager()
      Specified by:
      getEdgeManager in class AbstractNumberedGraph<T>
      Returns:
      the object which manages edges in the graph
    • controlEquivalent

      public boolean controlEquivalent(T bb1, T bb2)