Package com.ibm.wala.cfg.cdg
Class ControlDependenceGraph<I,T extends IBasicBlock<I>>
- java.lang.Object
-
- com.ibm.wala.util.graph.AbstractGraph<T>
-
- com.ibm.wala.util.graph.AbstractNumberedGraph<T>
-
- com.ibm.wala.cfg.cdg.ControlDependenceGraph<I,T>
-
- All Implemented Interfaces:
EdgeManager<T>
,Graph<T>
,NodeManager<T>
,NumberedEdgeManager<T>
,NumberedGraph<T>
,NumberedNodeManager<T>
,Iterable<T>
public class ControlDependenceGraph<I,T extends IBasicBlock<I>> extends AbstractNumberedGraph<T>
Control Dependence Graph
-
-
Constructor Summary
Constructors Constructor Description ControlDependenceGraph(ControlFlowGraph<I,T> cfg)
ControlDependenceGraph(ControlFlowGraph<I,T> cfg, boolean wantEdgeLabels)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
controlEquivalent(T bb1, T bb2)
ControlFlowGraph
getControlFlowGraph()
Set<Object>
getEdgeLabels(Object from, Object to)
Return the set of edge labels for the control flow edges that cause the given edge in the CDG.NumberedEdgeManager<T>
getEdgeManager()
NumberedNodeManager<T>
getNodeManager()
String
toString()
-
Methods inherited from class com.ibm.wala.util.graph.AbstractNumberedGraph
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodes
-
Methods inherited from class com.ibm.wala.util.graph.AbstractGraph
addEdge, addNode, containsNode, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
-
Methods inherited from interface com.ibm.wala.util.graph.Graph
removeNodeAndEdges
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode
-
-
-
-
Constructor Detail
-
ControlDependenceGraph
public ControlDependenceGraph(ControlFlowGraph<I,T> cfg, boolean wantEdgeLabels)
- Parameters:
cfg
- governing control flow graphwantEdgeLabels
- whether to compute edge labels for CDG edges
-
ControlDependenceGraph
public ControlDependenceGraph(ControlFlowGraph<I,T> cfg)
- Parameters:
cfg
- governing control flow graph
-
-
Method Detail
-
toString
public String toString()
- Overrides:
toString
in classAbstractGraph<T extends IBasicBlock<I>>
-
getControlFlowGraph
public ControlFlowGraph getControlFlowGraph()
-
getEdgeLabels
public Set<Object> getEdgeLabels(Object from, Object 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 classAbstractNumberedGraph<T extends IBasicBlock<I>>
- Returns:
- the object which manages nodes in the graph
-
getEdgeManager
public NumberedEdgeManager<T> getEdgeManager()
- Specified by:
getEdgeManager
in classAbstractNumberedGraph<T extends IBasicBlock<I>>
- Returns:
- the object which manages edges in the graph
-
-