public interface IFlowGraph extends com.ibm.wala.util.graph.labeled.LabeledGraph<java.lang.Object,IFlowLabel>
| Modifier and Type | Method and Description |
|---|---|
void |
addSubgraphForNode(CGNode node)
add representation of flow for a node, if not already present
|
SSAAbstractInvokeInstruction |
getInstrReturningTo(LocalPointerKey pk)
get the
SSAInvokeInstruction whose return value is assigned to a pointer key. |
java.util.Iterator<SSAAbstractInvokeInstruction> |
getInstrsPassingParam(LocalPointerKey pk) |
java.util.Set<CGNode> |
getPossibleTargets(CGNode caller,
CallSiteReference site,
LocalPointerKey actualPk)
get the callees that should be considered at a particular call site
|
java.util.Set<CallerSiteContext> |
getPotentialCallers(PointerKey formalPk) |
java.util.Iterator<PointerKey> |
getReadsOfInstanceField(PointerKey pk,
IField f) |
java.util.Iterator<? extends java.lang.Object> |
getReadsOfStaticField(StaticFieldKey sfk) |
java.util.Iterator<PointerKey> |
getWritesToInstanceField(PointerKey pk,
IField f) |
java.util.Iterator<? extends java.lang.Object> |
getWritesToStaticField(StaticFieldKey sfk) |
boolean |
hasSubgraphForNode(CGNode node) |
boolean |
isParam(LocalPointerKey pk) |
void |
visitPreds(java.lang.Object node,
IFlowLabel.IFlowLabelVisitor v)
Apply a visitor to the predecessors of some node.
|
void |
visitSuccs(java.lang.Object node,
IFlowLabel.IFlowLabelVisitor v)
Apply a visitor to the successors of some node.
|
addNode, containsNode, getNumberOfNodes, iterator, removeNode, streamvoid visitSuccs(java.lang.Object node,
IFlowLabel.IFlowLabelVisitor v)
void visitPreds(java.lang.Object node,
IFlowLabel.IFlowLabelVisitor v)
void addSubgraphForNode(CGNode node) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException - if node == nullboolean hasSubgraphForNode(CGNode node)
boolean isParam(LocalPointerKey pk)
true iff pk is a formal parameterjava.util.Iterator<SSAAbstractInvokeInstruction> getInstrsPassingParam(LocalPointerKey pk)
SSAInvokeInstructions passing some pointer as a parameterSSAAbstractInvokeInstruction getInstrReturningTo(LocalPointerKey pk)
SSAInvokeInstruction whose return value is assigned to a pointer key.null if no return value is assigned to pkjava.util.Iterator<? extends java.lang.Object> getWritesToStaticField(StaticFieldKey sfk) throws java.lang.IllegalArgumentException
sfk - the static fieldjava.lang.IllegalArgumentException - if sfk == nulljava.util.Iterator<? extends java.lang.Object> getReadsOfStaticField(StaticFieldKey sfk) throws java.lang.IllegalArgumentException
sfk - the static fieldjava.lang.IllegalArgumentException - if sfk == nulljava.util.Iterator<PointerKey> getWritesToInstanceField(PointerKey pk, IField f)
java.util.Iterator<PointerKey> getReadsOfInstanceField(PointerKey pk, IField f)
java.util.Set<CallerSiteContext> getPotentialCallers(PointerKey formalPk)
formalPk - a PointerKey representing either a formal parameter or return valueCallerSiteContexts representing pointer callers of formalPk's
methodjava.util.Set<CGNode> getPossibleTargets(CGNode caller, CallSiteReference site, LocalPointerKey actualPk)
caller - the callersite - the call siteactualPk - a LocalPointerKey corresponding to the actual parameter or return value
of interest. This may be used to filter out certain callees.