OA::Activity::ManagerInterDep Class Reference

#include <ManagerInterDep.hpp>

Inheritance diagram for OA::Activity::ManagerInterDep:
Inheritance graph
[legend]
Collaboration diagram for OA::Activity::ManagerInterDep:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerInterDep (OA_ptr< ActivityIRInterface > _ir)
 ~ManagerInterDep ()
OA_ptr< InterDepperformAnalysis (OA_ptr< CallGraph::CallGraphInterface > callGraph, OA_ptr< DataFlow::ParamBindings > paramBind, OA_ptr< Alias::InterAliasInterface > interAlias, OA_ptr< SideEffect::InterSideEffectInterface > interSE, OA_ptr< CFG::EachCFGInterface > eachCFG, DataFlow::DFPImplement algorithm)

Private Member Functions

OA_ptr< DataFlow::DataFlowSetinitializeTop ()
 Return an initialized top set.
OA_ptr< DataFlow::DataFlowSetinitializeBottom ()
 Return an initialized bottom set.
OA_ptr< DataFlow::DataFlowSetinitializeNode (ProcHandle proc)
 Should generate an initial DataFlowSet for a procedure.
OA_ptr< DataFlow::DataFlowSetinitializeEdge (CallHandle call, ProcHandle caller, ProcHandle callee)
OA_ptr< DataFlow::DataFlowSetinitializeEdge (CallHandle call, ProcHandle caller, SymHandle callee)
OA_ptr< DataFlow::DataFlowSetmeet (OA_ptr< DataFlow::DataFlowSet > set1, OA_ptr< DataFlow::DataFlowSet > set2)
OA_ptr< DataFlow::DataFlowSetatCallGraphNode (OA_ptr< DataFlow::DataFlowSet > inSet, OA::ProcHandle proc)
 What the analysis does for the particular procedure.
OA_ptr< DataFlow::DataFlowSetatCallGraphEdge (OA_ptr< DataFlow::DataFlowSet > inSet, OA::CallHandle call, ProcHandle caller, ProcHandle callee)
OA_ptr< DataFlow::DataFlowSetatCallGraphEdge (OA_ptr< DataFlow::DataFlowSet > inSet, CallHandle call, ProcHandle caller, SymHandle callee)
 use if callee is not defined in the call graph
OA_ptr< DataFlow::DataFlowSetnodeToEdge (ProcHandle proc, OA_ptr< DataFlow::DataFlowSet > procDFSet, CallHandle call)
OA_ptr< DataFlow::DataFlowSetedgeToNode (CallHandle call, OA_ptr< DataFlow::DataFlowSet > callDFSet, ProcHandle proc)

Private Attributes

OA_ptr< InterDepmInterDep
OA_ptr< ActivityIRInterfacemIR
OA_ptr
< Alias::InterAliasInterface
mInterAlias
OA_ptr< DataFlow::ParamBindingsmParamBind
OA_ptr< CFG::EachCFGInterfacemEachCFG
OA_ptr
< SideEffect::InterSideEffectInterface
mInterSE
OA_ptr
< DataFlow::CallGraphDFSolver
mSolver

Detailed Description

Creates InterDep, which can be queried for a DepStandard for each procedure. Computes the DepDFSet for each statement doing a bottom-up traversal of the CallGraph so the DepDFSet for a called procedure is known.

Definition at line 47 of file ManagerInterDep.hpp.


Constructor & Destructor Documentation

OA::Activity::ManagerInterDep::ManagerInterDep ( OA_ptr< ActivityIRInterface _ir  ) 
OA::Activity::ManagerInterDep::~ManagerInterDep (  )  [inline]

Definition at line 51 of file ManagerInterDep.hpp.


Member Function Documentation

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::atCallGraphEdge ( OA_ptr< DataFlow::DataFlowSet inSet,
CallHandle  call,
ProcHandle  caller,
SymHandle  callee 
) [private, virtual]

use if callee is not defined in the call graph

What the analysis does for a particular call Use this version when callee is not defined in the program (i.e. sin, cos)

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 288 of file ManagerInterDep.cpp.

References OA::OA_ptr< T >::convert(), OA::Activity::debug, OA::OA_ptr< T >::dump(), mInterDep, mInterSE, and mIR.

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::atCallGraphEdge ( OA_ptr< DataFlow::DataFlowSet inSet,
OA::CallHandle  call,
ProcHandle  caller,
ProcHandle  callee 
) [private, virtual]

What the analysis does for a particular call use if both caller and callee are defined

What the analysis does for a particular call Use this version if callee is defined

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 193 of file ManagerInterDep.cpp.

References OA::OA_ptr< T >::convert(), OA::Activity::debug, OA::OA_ptr< T >::dump(), mInterAlias, mInterDep, mIR, and mParamBind.

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::atCallGraphNode ( OA_ptr< DataFlow::DataFlowSet inSet,
OA::ProcHandle  proc 
) [private, virtual]

What the analysis does for the particular procedure.

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 155 of file ManagerInterDep.cpp.

References OA::Activity::debug, OA::OA_ptr< T >::dump(), OA::DataFlow::ITERATIVE, mEachCFG, mInterAlias, mInterDep, mIR, and mParamBind.

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::edgeToNode ( CallHandle  call,
OA_ptr< DataFlow::DataFlowSet callDFSet,
ProcHandle  proc 
) [private, virtual]

translate results from caller edge to procedure node if top-down or from callee edge if bottom-up

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 345 of file ManagerInterDep.cpp.

References OA::Activity::debug, OA::OA_ptr< T >::dump(), and mIR.

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::initializeBottom (  )  [private, virtual]

Return an initialized bottom set.

Shouldn't be called.

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 79 of file ManagerInterDep.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::initializeEdge ( CallHandle  call,
ProcHandle  caller,
SymHandle  callee 
) [private, virtual]

Should generate an initial DataFlowSet for a call, called when callee is not defined in call graph and therefore doesn't have a procedure definition handle

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 111 of file ManagerInterDep.cpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::initializeEdge ( CallHandle  call,
ProcHandle  caller,
ProcHandle  callee 
) [private, virtual]

Should generate an initial DataFlowSet, use if for a call if both caller and callee are defined

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 100 of file ManagerInterDep.cpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::initializeNode ( ProcHandle  proc  )  [private, virtual]

Should generate an initial DataFlowSet for a procedure.

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 92 of file ManagerInterDep.cpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::initializeTop (  )  [private, virtual]

Return an initialized top set.

Data-flow set passed around on the call graph is an DepDFSet. The top value for this is no uses mapping to any defs and vice versa.

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 69 of file ManagerInterDep.cpp.

Referenced by initializeEdge(), and initializeNode().

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::meet ( OA_ptr< DataFlow::DataFlowSet set1,
OA_ptr< DataFlow::DataFlowSet set2 
) [private, virtual]

OK to modify set1 and return it as result, because solver only passes a tempSet in as set1

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 125 of file ManagerInterDep.cpp.

References OA::OA_ptr< T >::convert(), OA::Activity::debug, OA::OA_ptr< T >::dump(), mIR, and OA::Activity::DepDFSet::setUnion().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerInterDep::nodeToEdge ( ProcHandle  proc,
OA_ptr< DataFlow::DataFlowSet procDFSet,
CallHandle  call 
) [private, virtual]

translate results from procedure node to callee edge if top-down or to caller edge if bottom-up

Implements OA::DataFlow::CallGraphDFProblem.

Definition at line 332 of file ManagerInterDep.cpp.

References OA::Activity::debug.

OA_ptr< Activity::InterDep > OA::Activity::ManagerInterDep::performAnalysis ( OA_ptr< CallGraph::CallGraphInterface callGraph,
OA_ptr< DataFlow::ParamBindings paramBind,
OA_ptr< Alias::InterAliasInterface interAlias,
OA_ptr< SideEffect::InterSideEffectInterface interSE,
OA_ptr< CFG::EachCFGInterface eachCFG,
DataFlow::DFPImplement  algorithm 
)

Definition at line 34 of file ManagerInterDep.cpp.

References mEachCFG, mInterAlias, mInterDep, mInterSE, mParamBind, and mSolver.


Member Data Documentation

Definition at line 128 of file ManagerInterDep.hpp.

Referenced by atCallGraphNode(), and performAnalysis().

Definition at line 126 of file ManagerInterDep.hpp.

Referenced by atCallGraphEdge(), atCallGraphNode(), and performAnalysis().

Definition at line 124 of file ManagerInterDep.hpp.

Referenced by atCallGraphEdge(), atCallGraphNode(), and performAnalysis().

Definition at line 129 of file ManagerInterDep.hpp.

Referenced by atCallGraphEdge(), and performAnalysis().

Definition at line 125 of file ManagerInterDep.hpp.

Referenced by atCallGraphEdge(), atCallGraphNode(), edgeToNode(), and meet().

Definition at line 127 of file ManagerInterDep.hpp.

Referenced by atCallGraphEdge(), atCallGraphNode(), and performAnalysis().

Definition at line 130 of file ManagerInterDep.hpp.

Referenced by ManagerInterDep(), and performAnalysis().


The documentation for this class was generated from the following files:

Generated on Sat Oct 31 05:29:29 2009 for OpenAnalysis by  doxygen 1.6.1