com.ibm.wala.ipa.slicer
Class SDG
java.lang.Object
com.ibm.wala.util.graph.AbstractGraph<T>
com.ibm.wala.util.graph.AbstractNumberedGraph<Statement>
com.ibm.wala.ipa.slicer.SDG
- All Implemented Interfaces:
- ISDG, EdgeManager<Statement>, Graph<Statement>, NodeManager<Statement>, NumberedEdgeManager<Statement>, NumberedGraph<Statement>, NumberedNodeManager<Statement>, java.lang.Iterable<Statement>
public class SDG
- extends AbstractNumberedGraph<Statement>
- implements ISDG
System dependence graph.
An SDG comprises a set of PDGs, one for each method. We compute these lazily.
Prototype implementation. Not efficient.
| 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 |
SDG
public SDG(CallGraph cg,
PointerAnalysis pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions)
SDG
public SDG(CallGraph cg,
PointerAnalysis pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions,
HeapExclusions heapExclude)
throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
toString
public java.lang.String toString()
- Overrides:
toString in class AbstractGraph<Statement>
iterateLazyNodes
public java.util.Iterator<? extends Statement> iterateLazyNodes()
- iterate over the nodes without constructing any new ones. Use
with extreme care. May break graph traversals that lazily add more nodes.
- Specified by:
iterateLazyNodes in interface ISDG
getEdgeManager
protected EdgeManager<Statement> getEdgeManager()
- Specified by:
getEdgeManager in class AbstractGraph<Statement>
- Returns:
- the object which manages edges in the graph
getNodeManager
protected NodeManager<Statement> getNodeManager()
- Specified by:
getNodeManager in class AbstractGraph<Statement>
- Returns:
- the object which manages nodes in the graph
getPDG
public PDG getPDG(CGNode node)
- Specified by:
getPDG in interface ISDG
getCOptions
public Slicer.ControlDependenceOptions getCOptions()
- Specified by:
getCOptions in interface ISDG