public class DelegatingCFG<I,T extends IBasicBlock<I>> extends AbstractNumberedGraph<T> implements ControlFlowGraph<I,T>
| Modifier and Type | Field and Description |
|---|---|
protected ControlFlowGraph<I,T> |
parent |
| Constructor and Description |
|---|
DelegatingCFG(ControlFlowGraph<I,T> parent) |
| Modifier and Type | Method and Description |
|---|---|
T |
entry()
Return the entry basic block in the CFG
|
T |
exit() |
T |
getBlockForInstruction(int index) |
BitVector |
getCatchBlocks() |
protected NumberedEdgeManager<T> |
getEdgeManager() |
Collection<T> |
getExceptionalPredecessors(T b)
The order of blocks returned should be arbitrary but deterministic.
|
List<T> |
getExceptionalSuccessors(T b)
The order of blocks returned must indicate the exception-handling scope.
|
I[] |
getInstructions() |
IMethod |
getMethod() |
protected NumberedNodeManager<T> |
getNodeManager() |
Collection<T> |
getNormalPredecessors(T b)
The order of blocks returned should be arbitrary but deterministic.
|
Collection<T> |
getNormalSuccessors(T b)
The order of blocks returned should be arbitrary but deterministic.
|
int |
getProgramCounter(int index)
TODO: move this into IR?
|
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodesaddEdge, addNode, containsNode, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitremoveNodeAndEdgesgetMaxNumber, getNode, getNumber, iterateNodesaddNode, containsNode, getNumberOfNodes, iterator, removeNodeforEach, spliteratorgetPredNodeNumbers, getSuccNodeNumbersaddEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdgesprotected final ControlFlowGraph<I,T extends IBasicBlock<I>> parent
public DelegatingCFG(ControlFlowGraph<I,T> parent)
protected NumberedNodeManager<T> getNodeManager()
getNodeManager in class AbstractNumberedGraph<T extends IBasicBlock<I>>protected NumberedEdgeManager<T> getEdgeManager()
getEdgeManager in class AbstractNumberedGraph<T extends IBasicBlock<I>>public T entry()
ControlFlowGraphentry in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public T exit()
exit in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public BitVector getCatchBlocks()
getCatchBlocks in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public T getBlockForInstruction(int index)
getBlockForInstruction in interface ControlFlowGraph<I,T extends IBasicBlock<I>>index - an instruction indexpublic I[] getInstructions()
getInstructions in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public int getProgramCounter(int index)
ControlFlowGraphgetProgramCounter in interface ControlFlowGraph<I,T extends IBasicBlock<I>>index - an instruction indexpublic IMethod getMethod()
getMethod in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public List<T> getExceptionalSuccessors(T b)
ControlFlowGraphgetExceptionalSuccessors in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public Collection<T> getNormalSuccessors(T b)
ControlFlowGraphgetNormalSuccessors in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public Collection<T> getExceptionalPredecessors(T b)
ControlFlowGraphgetExceptionalPredecessors in interface ControlFlowGraph<I,T extends IBasicBlock<I>>public Collection<T> getNormalPredecessors(T b)
ControlFlowGraphgetNormalPredecessors in interface ControlFlowGraph<I,T extends IBasicBlock<I>>