public class SDG<T extends InstanceKey> extends com.ibm.wala.util.graph.AbstractNumberedGraph<Statement> implements ISDG
An SDG comprises a set of PDGs, one for each method. We compute these lazily.
Prototype implementation. Not efficient.
| Constructor and Description |
|---|
SDG(CallGraph cg,
PointerAnalysis<T> pa,
ModRef<T> modRef,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
SDG(CallGraph cg,
PointerAnalysis<T> pa,
ModRef<T> modRef,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions,
HeapExclusions heapExclude) |
SDG(CallGraph cg,
PointerAnalysis<T> pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
| Modifier and Type | Method and Description |
|---|---|
CallGraph |
getCallGraph() |
IClassHierarchy |
getClassHierarchy() |
Slicer.ControlDependenceOptions |
getCOptions()
Slicer.ControlDependenceOptions used to construct this graph. |
Slicer.DataDependenceOptions |
getDOptions() |
protected com.ibm.wala.util.graph.NumberedEdgeManager<Statement> |
getEdgeManager() |
com.ibm.wala.util.graph.NumberedNodeManager<Statement> |
getNodeManager() |
PDG<T> |
getPDG(CGNode node)
Get the program dependence graph constructed for a particular node.
|
PointerAnalysis<T> |
getPointerAnalysis() |
java.util.Iterator<? extends Statement> |
iterateLazyNodes()
iterate over the nodes without constructing any new ones.
|
java.lang.String |
toString()
Use this with care.
|
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodesaddEdge, addNode, containsNode, edgeString, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, streamclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetMaxNumber, getNode, getNumber, iterateNodesaddNode, containsNode, getNumberOfNodes, iterator, removeNode, streampublic SDG(CallGraph cg, PointerAnalysis<T> pa, Slicer.DataDependenceOptions dOptions, Slicer.ControlDependenceOptions cOptions)
public SDG(CallGraph cg, PointerAnalysis<T> pa, ModRef<T> modRef, Slicer.DataDependenceOptions dOptions, Slicer.ControlDependenceOptions cOptions)
public SDG(CallGraph cg, PointerAnalysis<T> pa, ModRef<T> modRef, Slicer.DataDependenceOptions dOptions, Slicer.ControlDependenceOptions cOptions, HeapExclusions heapExclude) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic java.lang.String toString()
toString in class com.ibm.wala.util.graph.AbstractGraph<Statement>AbstractGraph.toString()public java.util.Iterator<? extends Statement> iterateLazyNodes()
iterateLazyNodes in interface ISDGprotected com.ibm.wala.util.graph.NumberedEdgeManager<Statement> getEdgeManager()
getEdgeManager in class com.ibm.wala.util.graph.AbstractNumberedGraph<Statement>public com.ibm.wala.util.graph.NumberedNodeManager<Statement> getNodeManager()
getNodeManager in class com.ibm.wala.util.graph.AbstractNumberedGraph<Statement>public PDG<T> getPDG(CGNode node)
ISDGpublic Slicer.ControlDependenceOptions getCOptions()
ISDGSlicer.ControlDependenceOptions used to construct this graph.getCOptions in interface ISDGpublic Slicer.DataDependenceOptions getDOptions()
public CallGraph getCallGraph()
public IClassHierarchy getClassHierarchy()
getClassHierarchy in interface IClassHierarchyDwellerpublic PointerAnalysis<T> getPointerAnalysis()