Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Compil3r.BytecodeAnalysis
Class ControlFlowGraph  view ControlFlowGraph download ControlFlowGraph.java

java.lang.Object
  extended byCompil3r.BytecodeAnalysis.ControlFlowGraph

public class ControlFlowGraph
extends java.lang.Object


Nested Class Summary
static interface ControlFlowGraph.BasicBlockIterator
           
(package private) static class ControlFlowGraph.BranchVisitor
           
static class ControlFlowGraph.InitialPass
           
static class ControlFlowGraph.RPOBasicBlockIterator
           
 
Field Summary
private  BasicBlock[] basic_blocks
           
private  BasicBlock[] handler_entries
           
private  java.util.Map jsr_info
           
static boolean TRACE
           
 
Constructor Summary
private ControlFlowGraph(int n_bb, int n_handlers)
          Creates new ControlFlowGraph
 
Method Summary
 void addJSRInfo(BasicBlock entry, BasicBlock exit, boolean[] locals)
           
static ControlFlowGraph computeCFG(Clazz.jq_Method method)
           
 BasicBlock getBasicBlock(int index)
           
 BasicBlock getBasicBlockByBytecodeIndex(int index)
           
 BasicBlock getEntry()
           
 BasicBlock getExit()
           
 JSRInfo getJSRInfo(BasicBlock b)
           
 int getNumberOfBasicBlocks()
           
 ControlFlowGraph.RPOBasicBlockIterator reversePostOrderIterator()
           
 ControlFlowGraph.RPOBasicBlockIterator reversePostOrderIterator(BasicBlock start_bb)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRACE

public static final boolean TRACE
See Also:
Constant Field Values

basic_blocks

private final BasicBlock[] basic_blocks

handler_entries

private final BasicBlock[] handler_entries

jsr_info

private java.util.Map jsr_info
Constructor Detail

ControlFlowGraph

private ControlFlowGraph(int n_bb,
                         int n_handlers)
Creates new ControlFlowGraph

Method Detail

getEntry

public BasicBlock getEntry()

getExit

public BasicBlock getExit()

getNumberOfBasicBlocks

public int getNumberOfBasicBlocks()

getBasicBlock

public BasicBlock getBasicBlock(int index)

addJSRInfo

public void addJSRInfo(BasicBlock entry,
                       BasicBlock exit,
                       boolean[] locals)

getJSRInfo

public JSRInfo getJSRInfo(BasicBlock b)

getBasicBlockByBytecodeIndex

public BasicBlock getBasicBlockByBytecodeIndex(int index)

reversePostOrderIterator

public ControlFlowGraph.RPOBasicBlockIterator reversePostOrderIterator()

reversePostOrderIterator

public ControlFlowGraph.RPOBasicBlockIterator reversePostOrderIterator(BasicBlock start_bb)

computeCFG

public static ControlFlowGraph computeCFG(Clazz.jq_Method method)