Public Types | Public Member Functions | Private Attributes

OA::DataFlow::CallGraphDFSolver Class Reference

#include <CallGraphDFSolver.hpp>

Inheritance diagram for OA::DataFlow::CallGraphDFSolver:
Inheritance graph
[legend]
Collaboration diagram for OA::DataFlow::CallGraphDFSolver:
Collaboration graph
[legend]

List of all members.

Public Types

enum  CallGraphDirectionType { TopDown, BottomUp }

Public Member Functions

 CallGraphDFSolver (CallGraphDirectionType pDirection, CallGraphDFProblem &prob)
virtual ~CallGraphDFSolver ()
void solve (OA_ptr< CallGraph::CallGraphInterface > callGraph, DFPImplement algorithm)
void initialize (OA_ptr< DGraph::DGraphInterface > dg)
bool atDGraphNode (OA_ptr< DGraph::NodeInterface > node, DGraph::DGraphEdgeDirection pOrient)
bool atDGraphEdge (OA_ptr< DGraph::EdgeInterface >, DGraph::DGraphEdgeDirection)
void finalizeNode (OA_ptr< DGraph::NodeInterface > node)
void finalizeEdge (OA_ptr< DGraph::EdgeInterface > edge)
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)

Private Attributes

OA_ptr< DataFlowSetmTop
CallGraphDirectionType mDirection
std::map< OA_ptr
< CallGraph::NodeInterface >
, OA_ptr< DataFlowSet > > 
mNodeOutSetMap
std::map< OA_ptr
< CallGraph::NodeInterface >
, OA_ptr< DataFlowSet > > 
mNodeInSetMap
std::map< OA_ptr
< CallGraph::EdgeInterface >
, OA_ptr< DataFlowSet > > 
mEdgeOutSetMap
std::map< OA_ptr
< CallGraph::EdgeInterface >
, OA_ptr< DataFlowSet > > 
mEdgeInSetMap
std::map< OA_ptr
< CallGraph::NodeInterface >
, bool > 
mNodeInitTransApp
CallGraphDFProblemmDFProb

Detailed Description

Definition at line 44 of file CallGraphDFSolver.hpp.


Member Enumeration Documentation

Enumerator:
TopDown 
BottomUp 

Definition at line 46 of file CallGraphDFSolver.hpp.


Constructor & Destructor Documentation

OA::DataFlow::CallGraphDFSolver::CallGraphDFSolver ( CallGraphDirectionType  pDirection,
CallGraphDFProblem prob 
)

Definition at line 23 of file CallGraphDFSolver.cpp.

References OA::DataFlow::debug, and OA_DEBUG_CTRL_MACRO.

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

Definition at line 57 of file CallGraphDFSolver.hpp.


Member Function Documentation

bool OA::DataFlow::CallGraphDFSolver::atDGraphEdge ( OA_ptr< DGraph::EdgeInterface pEdge,
DGraph::DGraphEdgeDirection  pOrient 
) [virtual]
bool OA::DataFlow::CallGraphDFSolver::atDGraphNode ( OA_ptr< DGraph::NodeInterface pNode,
DGraph::DGraphEdgeDirection  pOrient 
) [virtual]

NOTE: The CallGraphDFSolver code treats nodeIn, nodeOut, edgeIn, and edgeOut differently than the other data-flow frameworks. FIXME: to make maintenance easier they should all use similar logic

Reimplemented from OA::DataFlow::DGraphSolverDFP.

Definition at line 169 of file CallGraphDFSolver.cpp.

void OA::DataFlow::CallGraphDFSolver::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)

Definition at line 261 of file CallGraphDFSolver.cpp.

void OA::DataFlow::CallGraphDFSolver::finalizeEdge ( OA_ptr< DGraph::EdgeInterface edge  )  [virtual]

Reimplemented from OA::DataFlow::DGraphSolverDFP.

Definition at line 253 of file CallGraphDFSolver.cpp.

void OA::DataFlow::CallGraphDFSolver::finalizeNode ( OA_ptr< DGraph::NodeInterface node  )  [virtual]

Reimplemented from OA::DataFlow::DGraphSolverDFP.

Definition at line 247 of file CallGraphDFSolver.cpp.

void OA::DataFlow::CallGraphDFSolver::initialize ( OA_ptr< DGraph::DGraphInterface dg  )  [virtual]
void OA::DataFlow::CallGraphDFSolver::solve ( OA_ptr< CallGraph::CallGraphInterface callGraph,
DFPImplement  algorithm 
)

solves data-flow problem, after done in and out nodes will have correct data-flow values

Definition at line 31 of file CallGraphDFSolver.cpp.

References OA::DataFlow::debug, OA::DGraph::DEdgeOrg, OA::DGraph::DEdgeRev, OA::DataFlow::CallGraphDFProblem::initializeTop(), mDFProb, mDirection, mTop, and TopDown.

Here is the call graph for this function:


Member Data Documentation

Definition at line 114 of file CallGraphDFSolver.hpp.

Referenced by atDGraphEdge(), initialize(), and solve().

Definition at line 50 of file CallGraphDFSolver.hpp.

Referenced by solve().

Definition at line 108 of file CallGraphDFSolver.hpp.

Referenced by atDGraphEdge(), and initialize().

Definition at line 106 of file CallGraphDFSolver.hpp.

Referenced by atDGraphEdge(), and initialize().

Definition at line 112 of file CallGraphDFSolver.hpp.

Definition at line 104 of file CallGraphDFSolver.hpp.

Referenced by initialize().

Definition at line 102 of file CallGraphDFSolver.hpp.

Referenced by atDGraphEdge(), and initialize().

Definition at line 48 of file CallGraphDFSolver.hpp.

Referenced by solve().


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