SandMark version 3.0


sandmark.util.controlflowgraph
Class MethodCFG

java.lang.Object
  |
  +--sandmark.util.controlflowgraph.Graph
        |
        +--sandmark.util.controlflowgraph.MethodCFG

public class MethodCFG
extends Graph


Field Summary
(package private)  java.util.ArrayList blockList
           
(package private)  int domEdgeModCount
           
(package private)  de.fub.bytecode.generic.CodeExceptionGen[] exceptionHandlers
           
(package private)  de.fub.bytecode.generic.InstructionList il
           
(package private)  BasicBlock initial
           
(package private)  java.util.ArrayList leaders
           
(package private)  int loopEdgeModCount
           
(package private)  Graph loopTree
           
(package private)  int maxLocals
           
(package private)  int maxLoopDepth
           
(package private)  de.fub.bytecode.generic.ConstantPoolGen mCPG
           
(package private)  de.fub.bytecode.generic.MethodGen mg
           
(package private)  BasicBlock sink
           
(package private)  BasicBlock source
           
 
Fields inherited from class sandmark.util.controlflowgraph.Graph
edgeModCount, nodeModCount, removingEdge, removingNode, revRootEdgeModCount, rootEdgeModCount
 
Constructor Summary
MethodCFG(de.fub.bytecode.generic.MethodGen mg)
          Constructor.
MethodCFG(de.fub.bytecode.generic.MethodGen mg, boolean exceptionsMatter)
           
MethodCFG(de.fub.bytecode.generic.MethodGen mg, de.fub.bytecode.generic.ConstantPoolGen cpg)
           
MethodCFG(de.fub.bytecode.generic.MethodGen mg, de.fub.bytecode.generic.ConstantPoolGen cpg, boolean _exceptionsMatter)
           
 
Method Summary
 void addBlock(BasicBlock bb)
           
 void addEdge(GraphNode v, GraphNode w)
           
 java.util.Iterator basicBlockIterator()
           
 de.fub.bytecode.generic.ConstantPoolGen constPool()
           
 void dotInFile(java.lang.String filename)
           
 BasicBlock init()
           
 de.fub.bytecode.generic.InstructionList instructionList()
           
 int maxLocals()
           
 int maxLoopDepth()
           
 de.fub.bytecode.generic.MethodGen methodGen()
           
(package private)  BasicBlock newBlock()
          Creates a new BasicBlock with the next available label.
(package private)  BasicBlock newBlock(de.fub.bytecode.generic.InstructionHandle ih)
           
(package private)  BasicBlock newBlock(de.fub.bytecode.generic.InstructionHandle ih, java.util.ArrayList instructionList)
           
 void printCFG()
           
 void removeEdge(GraphNode v, GraphNode w)
           
 void removeUnreachableBlocks()
           
 void setConstPool(de.fub.bytecode.generic.ConstantPoolGen cpg)
           
 void setMaxLocals(int newMaxLocals)
           
(package private)  boolean shouldIncludeInGraph(GraphNode gn)
           
 BasicBlock sink()
           
 BasicBlock source()
           
 java.lang.String toDot()
           
 
Methods inherited from class sandmark.util.controlflowgraph.Graph
addNode, buildRootList, getPostOrder, getPostOrderIndex, getPreds, getPreOrder, getPreOrderIndex, getSuccs, graph, hasEdge, hasNode, main, nodes, removeNode, removeUnreachable, reverseRoots, roots, size, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mg

de.fub.bytecode.generic.MethodGen mg

il

de.fub.bytecode.generic.InstructionList il

exceptionHandlers

de.fub.bytecode.generic.CodeExceptionGen[] exceptionHandlers

source

BasicBlock source

sink

BasicBlock sink

initial

BasicBlock initial

leaders

java.util.ArrayList leaders

blockList

java.util.ArrayList blockList

loopTree

Graph loopTree

domEdgeModCount

int domEdgeModCount

loopEdgeModCount

int loopEdgeModCount

maxLoopDepth

int maxLoopDepth

maxLocals

int maxLocals

mCPG

de.fub.bytecode.generic.ConstantPoolGen mCPG
Constructor Detail

MethodCFG

public MethodCFG(de.fub.bytecode.generic.MethodGen mg)
Constructor.


MethodCFG

public MethodCFG(de.fub.bytecode.generic.MethodGen mg,
                 boolean exceptionsMatter)

MethodCFG

public MethodCFG(de.fub.bytecode.generic.MethodGen mg,
                 de.fub.bytecode.generic.ConstantPoolGen cpg)

MethodCFG

public MethodCFG(de.fub.bytecode.generic.MethodGen mg,
                 de.fub.bytecode.generic.ConstantPoolGen cpg,
                 boolean _exceptionsMatter)
Method Detail

constPool

public de.fub.bytecode.generic.ConstantPoolGen constPool()

setConstPool

public void setConstPool(de.fub.bytecode.generic.ConstantPoolGen cpg)

basicBlockIterator

public java.util.Iterator basicBlockIterator()

maxLocals

public int maxLocals()

setMaxLocals

public void setMaxLocals(int newMaxLocals)

methodGen

public de.fub.bytecode.generic.MethodGen methodGen()

maxLoopDepth

public int maxLoopDepth()

newBlock

BasicBlock newBlock()
Creates a new BasicBlock with the next available label.


newBlock

BasicBlock newBlock(de.fub.bytecode.generic.InstructionHandle ih)

newBlock

BasicBlock newBlock(de.fub.bytecode.generic.InstructionHandle ih,
                    java.util.ArrayList instructionList)

addBlock

public void addBlock(BasicBlock bb)

addEdge

public void addEdge(GraphNode v,
                    GraphNode w)
Overrides:
addEdge in class Graph

removeEdge

public void removeEdge(GraphNode v,
                       GraphNode w)
Overrides:
removeEdge in class Graph

removeUnreachableBlocks

public void removeUnreachableBlocks()

printCFG

public void printCFG()

toDot

public java.lang.String toDot()

dotInFile

public void dotInFile(java.lang.String filename)

source

public BasicBlock source()

sink

public BasicBlock sink()

init

public BasicBlock init()

instructionList

public de.fub.bytecode.generic.InstructionList instructionList()

shouldIncludeInGraph

boolean shouldIncludeInGraph(GraphNode gn)
Overrides:
shouldIncludeInGraph in class Graph

SandMark version 3.0

Wed Jan 29 10:30:05 MST 2003