OA::DataFlow::CallGraphDFProblem Class Reference

#include <CallGraphDFProblem.hpp>

Inheritance diagram for OA::DataFlow::CallGraphDFProblem:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 CallGraphDFProblem ()
virtual ~CallGraphDFProblem ()
virtual OA_ptr< DataFlowSetinitializeTop ()=0
 Return an initialized top set.
virtual OA_ptr< DataFlowSetinitializeBottom ()=0
 Return an initialized bottom set.
virtual OA_ptr< DataFlowSetinitializeNodeIN (OA_ptr< CallGraph::NodeInterface > n)=0
 Should generate an in and out DataFlowSet for node.
virtual OA_ptr< DataFlowSetinitializeNodeOUT (OA_ptr< CallGraph::NodeInterface > n)=0
virtual OA_ptr< DataFlowSetinitializeNode (ProcHandle proc)=0
virtual OA_ptr< DataFlowSetinitializeEdge (CallHandle call, ProcHandle caller, ProcHandle callee)=0
virtual OA_ptr< DataFlowSetinitializeEdge (CallHandle call, ProcHandle caller, SymHandle callee)=0
virtual OA_ptr< DataFlowSetmeet (OA_ptr< DataFlowSet > set1, OA_ptr< DataFlowSet > set2)=0
virtual OA_ptr< DataFlowSetatCallGraphNode (OA_ptr< DataFlowSet > inSet, OA::ProcHandle proc)=0
 What the analysis does for the particular procedure.
virtual OA_ptr< DataFlowSetatCallGraphEdge (OA_ptr< DataFlowSet > inSet, CallHandle call, ProcHandle caller, ProcHandle callee)=0
virtual OA_ptr< DataFlowSetatCallGraphEdge (OA_ptr< DataFlowSet > inSet, CallHandle call, ProcHandle caller, SymHandle callee)=0
 use if callee is not defined in the call graph
virtual OA_ptr< DataFlowSetnodeToEdge (ProcHandle proc, OA_ptr< DataFlow::DataFlowSet > procDFSet, CallHandle call)=0
virtual OA_ptr< DataFlowSetedgeToNode (CallHandle call, OA_ptr< DataFlow::DataFlowSet > callDFSet, ProcHandle proc)=0


Detailed Description

Definition at line 40 of file CallGraphDFProblem.hpp.


Constructor & Destructor Documentation

OA::DataFlow::CallGraphDFProblem::CallGraphDFProblem (  )  [inline]

Definition at line 45 of file CallGraphDFProblem.hpp.

virtual OA::DataFlow::CallGraphDFProblem::~CallGraphDFProblem (  )  [inline, virtual]

Definition at line 46 of file CallGraphDFProblem.hpp.


Member Function Documentation

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

use if callee is not defined in the call graph

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

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

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

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::atDGraphEdge().

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::atCallGraphNode ( OA_ptr< DataFlowSet inSet,
OA::ProcHandle  proc 
) [pure virtual]

What the analysis does for the particular procedure.

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::atDGraphNode().

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::edgeToNode ( CallHandle  call,
OA_ptr< DataFlow::DataFlowSet callDFSet,
ProcHandle  proc 
) [pure virtual]

translate results from caller edge to procedure node if top-down or from callee edge if bottom-up using call data flow set

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::atDGraphNode().

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeBottom (  )  [pure virtual]

Return an initialized bottom set.

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeEdge ( CallHandle  call,
ProcHandle  caller,
SymHandle  callee 
) [pure 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

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeEdge ( CallHandle  call,
ProcHandle  caller,
ProcHandle  callee 
) [pure virtual]

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

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::initialize().

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeNode ( ProcHandle  proc  )  [pure virtual]

Should generate an initial DataFlowSet for a procedure Nodes that we don't have procedure definition for will get ProcHandle(0)

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::initialize().

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeNodeIN ( OA_ptr< CallGraph::NodeInterface n  )  [pure virtual]

Should generate an in and out DataFlowSet for node.

Implemented in OA::SideEffect::ManagerInterSideEffectStandard.

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeNodeOUT ( OA_ptr< CallGraph::NodeInterface n  )  [pure virtual]

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::initializeTop (  )  [pure virtual]

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::meet ( OA_ptr< DataFlowSet set1,
OA_ptr< DataFlowSet set2 
) [pure virtual]

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

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::atDGraphNode().

virtual OA_ptr<DataFlowSet> OA::DataFlow::CallGraphDFProblem::nodeToEdge ( ProcHandle  proc,
OA_ptr< DataFlow::DataFlowSet procDFSet,
CallHandle  call 
) [pure virtual]

translate results from procedure node to callee edge if top-down or to caller edge if bottom-up using data-flow set at procedure node the proc could be ProcHandle(0) if the called procedure has not been defined

Implemented in OA::Activity::ManagerInterDep, and OA::SideEffect::ManagerInterSideEffectStandard.

Referenced by OA::DataFlow::CallGraphDFSolver::atDGraphEdge().


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

Generated on Fri Jul 24 05:40:11 2009 for OpenADFortTk (extended to Open64) by  doxygen 1.5.7.1