| java.lang.Object org.quilt.graph.Directed org.quilt.cl.ControlFlowGraph
ControlFlowGraph | public class ControlFlowGraph extends Directed (Code) | | Directed graph extended for use in analyzing method instruction
lists.
author: Jim Dixon |
Field Summary | |
protected Map | endHandles Key code vertex, value handle on last instruction. | protected Map | gotoFixMeUps Key source vertex, value target vertex where connecting
instruction is GotoInstruction. | protected InstructionList | ilist Instruction list built in walking the graph. | protected Map | startHandles Key code vertex, value handle on first instruction. |
Constructor Summary | |
public | ControlFlowGraph() Create a new top level control flow graph. | protected | ControlFlowGraph(ControlFlowGraph parent) Create a control flow graph without connecting it to this
parent graph but sharing protected data structures. |
Method Summary | |
public Map | getEndHandles() Get a reference to the map of handles on last instructions. | public Map | getGotoFixMeUps() Get a reference to the source/target vertex map where the
connecting instruction is a GotoInstruction. | public InstructionList | getInstructionList() Get a reference to the instruction list built while walking the
graph. | public Map | getStartHandles() Get a reference to the map of handles on first instructions. | public CodeVertex | insertCodeVertex(Edge e) Insert a code vertex along an edge, retargeting the edge to
the vertex inserted. | public CodeVertex | insertCodeVertex(CodeVertex v, Edge e) Insert a pre-existing CodeVertex along an edge. | public Directed | subgraph(Edge e, int n) Create a control flow graph, connecting it to this graph as
its parent by inserting it along the directed edge e (the
Entry first, followed by the subgraph Exit. |
endHandles | protected Map endHandles(Code) | | Key code vertex, value handle on last instruction.
|
gotoFixMeUps | protected Map gotoFixMeUps(Code) | | Key source vertex, value target vertex where connecting
instruction is GotoInstruction.
|
ilist | protected InstructionList ilist(Code) | | Instruction list built in walking the graph.
|
startHandles | protected Map startHandles(Code) | | Key code vertex, value handle on first instruction.
|
ControlFlowGraph | public ControlFlowGraph()(Code) | | Create a new top level control flow graph.
|
ControlFlowGraph | protected ControlFlowGraph(ControlFlowGraph parent)(Code) | | Create a control flow graph without connecting it to this
parent graph but sharing protected data structures.
Parameters: parent - The cfg one level up. |
getEndHandles | public Map getEndHandles()(Code) | | Get a reference to the map of handles on last instructions.
|
getGotoFixMeUps | public Map getGotoFixMeUps()(Code) | | Get a reference to the source/target vertex map where the
connecting instruction is a GotoInstruction.
|
getInstructionList | public InstructionList getInstructionList()(Code) | | Get a reference to the instruction list built while walking the
graph.
|
getStartHandles | public Map getStartHandles()(Code) | | Get a reference to the map of handles on first instructions.
|
insertCodeVertex | public CodeVertex insertCodeVertex(Edge e)(Code) | | Insert a code vertex along an edge, retargeting the edge to
the vertex inserted. The vertex is created by this method.
Parameters: e - Edge along which the vertex is inserted. The CodeVertex created. |
insertCodeVertex | public CodeVertex insertCodeVertex(CodeVertex v, Edge e)(Code) | | Insert a pre-existing CodeVertex along an edge. The edge
and the vertex must be in the same graph.
Parameters: v - CodeVertex being inserted. Parameters: e - Edge in which it is to be inserted. |
subgraph | public Directed subgraph(Edge e, int n)(Code) | | Create a control flow graph, connecting it to this graph as
its parent by inserting it along the directed edge e (the
Entry first, followed by the subgraph Exit.
Parameters: e - Edge along which the subgraph is to be inserted. Parameters: n - Number of extra edges on the ComplexConnector in the subgraph's Entry vertex (must be at least 1). |
Fields inherited from org.quilt.graph.Directed | protected static int graphIndex(Code)(Java Doc)
|
|
|