coins.flow
Class InitiateFlowHir

java.lang.Object
  extended bycoins.flow.InitiateFlow
      extended bycoins.flow.InitiateFlowHir

public class InitiateFlowHir
extends InitiateFlow

HIR data flow initiation class.


Field Summary
protected  int fDbgLevel
           
protected  FlowRoot flowRoot
           
protected  SubpFlow fSubpFlow
           
protected  IoRoot ioRoot
           
 
Fields inherited from class coins.flow.InitiateFlow
fBBlockList
 
Constructor Summary
InitiateFlowHir()
           
 
Method Summary
 void initiateDataFlow(SubpFlow pSubpFlow)
          Initiates data flow analysis for the given SubpFlow.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

flowRoot

protected FlowRoot flowRoot

ioRoot

protected IoRoot ioRoot

fSubpFlow

protected SubpFlow fSubpFlow

fDbgLevel

protected int fDbgLevel
Constructor Detail

InitiateFlowHir

public InitiateFlowHir()
Method Detail

initiateDataFlow

public void initiateDataFlow(SubpFlow pSubpFlow)

Initiates data flow analysis for the given SubpFlow.

Does the following:

  • Link function calls' argument nodes to the argument list node (holds as a map entry in FlowResults).
  • Flags whether each BBlock
    • has any assignment to the contents of pointers.
    • ever accesses a pointer variable.
    • ever accesses a structure/union variable.
    • ever calls other functions.
  • Sets a unique index to each node.
  • link nodes to the enclosing BBlock (as a map entry in FlowResults).
  • Sets a unique index to each accessed symbol, and hold a table of such symbols.
  • Assigns FlowExpIds to the pertinent nodes
  • .
  • Do preparation for alias analysis
  • .

    Specified by:
    initiateDataFlow in class InitiateFlow