coins.flow
Class FlowAdapter

java.lang.Object
  extended bycoins.flow.FlowAdapter

public class FlowAdapter
extends java.lang.Object

FlowAdapter contains methods to expand the flow analysis capability. A subclass of this may be added to afford new analysis requirements or new methods commonly used in several cases may be added to this class without disturbing other classes.


Field Summary
 HIR dummySettingByParam
           
 HIR dummyUninitialization
           
(package private)  java.util.List[] fDominatorListsOfSubp
           
(package private)  TreeStructure fDominatorTree
           
 FlowRoot flowRoot
           
(package private)  java.util.List[] fPostDominatorListsOfSubp
           
(package private)  TreeStructure fPostDominatorTree
           
protected  FlowResults fResults
           
protected  SubpFlow fSubpFlow
           
protected  IoRoot ioRoot
           
 
Constructor Summary
FlowAdapter(FlowRoot pFlowRoot)
           
 
Method Summary
 java.util.List getDominators(BBlock pBBlock)
           
 FlowResults getFlowResults()
           
 java.util.List getPostDominators(BBlock pBBlock)
           
 TreeStructure makeDominatorTreeFor(java.util.List pBBlocks, BBlock pEntry, boolean pIsDom)
          Makes a (post)dominator tree for the given list of BBlocks.
protected  boolean prepareDominators()
           
protected  boolean preparePostDominators()
           
 void setFlowResults(FlowResults pResults)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

flowRoot

public final FlowRoot flowRoot

ioRoot

protected IoRoot ioRoot

fSubpFlow

protected SubpFlow fSubpFlow

fResults

protected FlowResults fResults

dummyUninitialization

public final HIR dummyUninitialization

dummySettingByParam

public final HIR dummySettingByParam

fDominatorTree

TreeStructure fDominatorTree

fPostDominatorTree

TreeStructure fPostDominatorTree

fDominatorListsOfSubp

java.util.List[] fDominatorListsOfSubp

fPostDominatorListsOfSubp

java.util.List[] fPostDominatorListsOfSubp
Constructor Detail

FlowAdapter

public FlowAdapter(FlowRoot pFlowRoot)
Method Detail

getDominators

public java.util.List getDominators(BBlock pBBlock)

getPostDominators

public java.util.List getPostDominators(BBlock pBBlock)

makeDominatorTreeFor

public TreeStructure makeDominatorTreeFor(java.util.List pBBlocks,
                                          BBlock pEntry,
                                          boolean pIsDom)
Makes a (post)dominator tree for the given list of BBlocks. pEntry will be the root of the tree. The list of BBlockspBBlocks should be connected and every BBlock should be reachable from (should reach) pBBlock. This method is a modified version of makeDominatorTreeFor in coins.aflow.MakeDominatorTree.

Parameters:
pIsDom - if true, find dominator tree, otherwise, find postdominator tree.
Returns:
the resultant coins.flow.util.TreeStructure object.

prepareDominators

protected boolean prepareDominators()

preparePostDominators

protected boolean preparePostDominators()

setFlowResults

public void setFlowResults(FlowResults pResults)

getFlowResults

public FlowResults getFlowResults()