de.rwth.dfa.jvm
Class FlowGraph
java.lang.Object
|
+--de.rwth.graph.Graph
|
+--de.rwth.graph.RootedGraph
|
+--de.rwth.dfa.jvm.FactorisedFlowGraph
|
+--de.rwth.dfa.jvm.FlowGraph
- public class FlowGraph
- extends FactorisedFlowGraph
A class for the flow graph of JVM methods. For each instruction in the method's
bytecode, there is a node in the graph. The instruction handle for the instruction
is the label of the node. For each possible control flow between two instructions,
there is an edge from the first to the second instruction.
In addition, there are nodes not representing real instruction: For each exception
handler, there is a node with an ExceptionHeaderInstructionHandle as
label. An edge goes from this node to the start node for the actual exception
handler code.
All instructions which may throw an exception are connected to all nodes with
ExceptionHeaderInstructionHandle as label, if this node belongs to an
active handler for the instruction. Hence, the control flow caused by exceptions
is represented by this kind of graph.
The roots of this graph are the first instruction and the nodes with ExceptionHeaderInstructionHandle as label.
The leafs of this graph are all exit points of the method.
- Version:
- $Id: FlowGraph.java,v 1.2 2002/09/17 06:53:53 mohnen Exp $
- Author:
- Markus Mohnen
|
Constructor Summary |
FlowGraph(de.fub.bytecode.classfile.Method method)
Creates a new FlowGraph instance. |
FlowGraph(java.lang.String name,
de.fub.bytecode.generic.InstructionList instrs,
de.fub.bytecode.classfile.CodeException[] exceptions)
Creates a new FlowGraph instance. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
FlowGraph
public FlowGraph(java.lang.String name,
de.fub.bytecode.generic.InstructionList instrs,
de.fub.bytecode.classfile.CodeException[] exceptions)
- Creates a new
FlowGraph instance.
- Parameters:
name - a String valueinstrs - an InstructionList valueexceptions - a CodeException[] value
FlowGraph
public FlowGraph(de.fub.bytecode.classfile.Method method)
- Creates a new
FlowGraph instance.
- Parameters:
method - a Method value