coins.aflow
Class MakeControlFlowGraph

java.lang.Object
  extended bycoins.aflow.MakeControlFlowGraph
Direct Known Subclasses:
MakeControlFlowGraphHir

public abstract class MakeControlFlowGraph
extends java.lang.Object


Field Summary
 FlowRoot flowRoot
           
protected  FlowResults fResults
           
(package private)  SubpFlow fSubpFlow
           
 IoRoot ioRoot
           
 
Constructor Summary
(package private) MakeControlFlowGraph(FlowResults pResults)
          Creates new MakeControlFlowGraph
 
Method Summary
(package private)  void addEdge(BBlock ppred, BBlock psucc)
          addEdge: Add an edge between the given BBlocks.
(package private)  void deleteEdge(BBlock pBBlock)
           
 int domBitLookUp(int pBitPos)
          domBitLookUp: Maps the bit position in BBlockVector to the BBlockNumber.
 void find(SubpFlow pSubpFlow)
          Make a new control flow graph.
(package private)  BBlock findEntryBlock()
           
(package private)  BBlock findExitBlock()
          Finds the exit BBlock.
(package private) abstract  void makeControlFlowGraph(SubpDefinition pSubpDef, SubpFlow pSubpFlow)
           
(package private)  void recordReachableBBlocks()
          Records the BBlocks in the flow in the order suitable for solving data flow equations.
(package private)  void unifyBBlocks()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fSubpFlow

SubpFlow fSubpFlow

fResults

protected FlowResults fResults

flowRoot

public final FlowRoot flowRoot

ioRoot

public final IoRoot ioRoot
Constructor Detail

MakeControlFlowGraph

MakeControlFlowGraph(FlowResults pResults)
Creates new MakeControlFlowGraph

Method Detail

find

public void find(SubpFlow pSubpFlow)
Make a new control flow graph.


makeControlFlowGraph

abstract void makeControlFlowGraph(SubpDefinition pSubpDef,
                                   SubpFlow pSubpFlow)

findEntryBlock

BBlock findEntryBlock()

findExitBlock

BBlock findExitBlock()
Finds the exit BBlock.


addEdge

void addEdge(BBlock ppred,
             BBlock psucc)
addEdge: Add an edge between the given BBlocks.


deleteEdge

void deleteEdge(BBlock pBBlock)

recordReachableBBlocks

void recordReachableBBlocks()
Records the BBlocks in the flow in the order suitable for solving data flow equations. BBlocks that are never visited are not included.


domBitLookUp

public int domBitLookUp(int pBitPos)
domBitLookUp: Maps the bit position in BBlockVector to the BBlockNumber.


unifyBBlocks

void unifyBBlocks()