public class ExplicitCallGraph.ExplicitNode extends BasicCallGraph.NodeImpl
ContextItem.Value<T>
Modifier and Type | Field and Description |
---|---|
protected SparseVector<Object> |
targets
A Mapping from call site program counter (int) -> Object, where Object is a CGNode if we've discovered exactly one target for
the site, or an IntSet of node numbers if we've discovered more than one target for the site.
|
method
Modifier | Constructor and Description |
---|---|
protected |
ExplicitNode(IMethod method,
Context C) |
Modifier and Type | Method and Description |
---|---|
boolean |
addTarget(CallSiteReference site,
CGNode tNode)
This is for use only by call graph builders ...
|
protected boolean |
addTarget(int pc,
CGNode tNode) |
void |
clearAllTargets() |
boolean |
equals(Object obj) |
protected MutableSharedBitVectorIntSet |
getAllTargetNumbers() |
ExplicitCallGraph |
getCallGraph() |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
getCFG() |
DefUse |
getDU() |
IR |
getIR() |
protected int |
getNumberOfTargets(CallSiteReference site) |
protected Iterator<CallSiteReference> |
getPossibleSites(CGNode to) |
protected IntSet |
getPossibleTargetNumbers(CallSiteReference site) |
protected Set<CGNode> |
getPossibleTargets(CallSiteReference site) |
int |
hashCode() |
Iterator<CallSiteReference> |
iterateCallSites() |
Iterator<NewSiteReference> |
iterateNewSites() |
void |
removeTarget(CGNode target) |
getClassHierarchy, getContext, getMethod, toString
getGraphNodeId, setGraphNodeId
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getGraphNodeId, setGraphNodeId
protected final SparseVector<Object> targets
protected Set<CGNode> getPossibleTargets(CallSiteReference site)
protected IntSet getPossibleTargetNumbers(CallSiteReference site)
protected Iterator<CallSiteReference> getPossibleSites(CGNode to)
protected int getNumberOfTargets(CallSiteReference site)
public boolean addTarget(CallSiteReference site, CGNode tNode)
CGNode
addTarget
in interface CGNode
addTarget
in class BasicCallGraph.NodeImpl
protected boolean addTarget(int pc, CGNode tNode)
public void removeTarget(CGNode target)
public boolean equals(Object obj)
equals
in class BasicCallGraph.NodeImpl
Object.equals(Object)
public int hashCode()
hashCode
in class BasicCallGraph.NodeImpl
Object.hashCode()
protected MutableSharedBitVectorIntSet getAllTargetNumbers()
public void clearAllTargets()
public IR getIR()
public DefUse getDU()
public ExplicitCallGraph getCallGraph()
public Iterator<CallSiteReference> iterateCallSites()
public Iterator<NewSiteReference> iterateNewSites()
public ControlFlowGraph<SSAInstruction,ISSABasicBlock> getCFG()