coins.aflow
Class InitiateFlowHir

java.lang.Object
  extended bycoins.aflow.util.AnalAdapter
      extended bycoins.aflow.FlowAdapter
          extended bycoins.aflow.InitiateFlow
              extended bycoins.aflow.InitiateFlowHir
All Implemented Interfaces:
Analyzer

public class InitiateFlowHir
extends InitiateFlow

HIR data flow initiation class.


Field Summary
 
Fields inherited from class coins.aflow.InitiateFlow
fBBlockList, fFlowAnalSymTable
 
Fields inherited from class coins.aflow.FlowAdapter
flow, flowRoot, fResults, hirRoot, ioRoot, symRoot
 
Constructor Summary
InitiateFlowHir(FlowResults pResults)
           
 
Method Summary
 void initiate(SubpFlow pSubpFlow)
          Initiates data flow analysis for the given SubpFlow.
 
Methods inherited from class coins.aflow.InitiateFlow
find
 
Methods inherited from class coins.aflow.FlowAdapter
find, find, find, find, find, find
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InitiateFlowHir

public InitiateFlowHir(FlowResults pResults)
Method Detail

initiate

public void initiate(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:
    initiate in class InitiateFlow