public interface ControlFlowGraph<I,T extends IBasicBlock<I>> extends NumberedGraph<T>
Modifier and Type | Method and Description |
---|---|
T |
entry()
Return the entry basic block in the CFG
|
T |
exit() |
T |
getBlockForInstruction(int index) |
BitVector |
getCatchBlocks() |
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() |
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?
|
removeNodeAndEdges
getMaxNumber, getNode, getNumber, iterateNodes
addNode, containsNode, getNumberOfNodes, iterator, removeNode
forEach, spliterator
getPredNodeNumbers, getSuccNodeNumbers
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
T entry()
T exit()
BitVector getCatchBlocks()
T getBlockForInstruction(int index)
index
- an instruction indexI[] getInstructions()
int getProgramCounter(int index)
index
- an instruction indexIMethod getMethod()
List<T> getExceptionalSuccessors(T b)
Collection<T> getNormalSuccessors(T b)
Collection<T> getExceptionalPredecessors(T b)
Collection<T> getNormalPredecessors(T b)