|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.quilt.graph.Directed | +--org.quilt.cl.ControlFlowGraph
Directed graph extended for use in analyzing method instruction lists.
Field Summary | |
protected java.util.Map |
endHandles
Key code vertex, value handle on last instruction. |
protected java.util.Map |
gotoFixMeUps
Key source vertex, value target vertex where connecting instruction is GotoInstruction. |
protected org.apache.bcel.generic.InstructionList |
ilist
Instruction list built in walking the graph. |
protected java.util.Map |
startHandles
Key code vertex, value handle on first instruction. |
Fields inherited from class org.quilt.graph.Directed |
graphIndex |
Constructor Summary | |
|
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 | |
java.util.Map |
getEndHandles()
Get a reference to the map of handles on last instructions. |
java.util.Map |
getGotoFixMeUps()
Get a reference to the source/target vertex map where the connecting instruction is a GotoInstruction. |
org.apache.bcel.generic.InstructionList |
getInstructionList()
Get a reference to the instruction list built while walking the graph. |
java.util.Map |
getStartHandles()
Get a reference to the map of handles on first instructions. |
CodeVertex |
insertCodeVertex(CodeVertex v,
Edge e)
Insert a pre-existing CodeVertex along an edge. |
CodeVertex |
insertCodeVertex(Edge e)
Insert a code vertex along an edge, retargeting the edge to the vertex inserted. |
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. |
Methods inherited from class org.quilt.graph.Directed |
anotherEdge, anotherVertex, checkForNull, closestEntry, connectSubgraph, getDepth, getEntry, getExit, getIndex, getParent, insertVertex, insertVertex, size |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.util.Map startHandles
protected java.util.Map endHandles
protected java.util.Map gotoFixMeUps
protected org.apache.bcel.generic.InstructionList ilist
Constructor Detail |
public ControlFlowGraph()
protected ControlFlowGraph(ControlFlowGraph parent)
parent
- The cfg one level up.Method Detail |
public java.util.Map getStartHandles()
public java.util.Map getEndHandles()
public java.util.Map getGotoFixMeUps()
public org.apache.bcel.generic.InstructionList getInstructionList()
public Directed subgraph(Edge e, int n)
subgraph
in class Directed
e
- Edge along which the subgraph is to be inserted.n
- Number of extra edges on the ComplexConnector in
the subgraph's Entry vertex (must be at least 1).
public CodeVertex insertCodeVertex(Edge e)
e
- Edge along which the vertex is inserted.
public CodeVertex insertCodeVertex(CodeVertex v, Edge e)
v
- CodeVertex being inserted.e
- Edge in which it is to be inserted.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |