OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
OA::DataFlow::CFGDFSolver Class Reference

#include <CFGDFSolver.hpp>

Inheritance diagram for OA::DataFlow::CFGDFSolver:
Inheritance graph
Collaboration diagram for OA::DataFlow::CFGDFSolver:
Collaboration graph

Public Types

enum  DFDirectionType { Forward, Backward }
 

Public Member Functions

 CFGDFSolver (DFDirectionType pDirection, CFGDFProblem &prob)
 
virtual ~CFGDFSolver ()
 
OA_ptr< DataFlowSetsolve (OA_ptr< CFG::CFGInterface > cfg, DFPImplement algorithm)
 
OA_ptr< DataFlow::DataFlowSetgetInSet (OA_ptr< CFG::NodeInterface > node)
 
OA_ptr< DataFlow::DataFlowSetgetOutSet (OA_ptr< CFG::NodeInterface > node)
 
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 

Protected Attributes

std::map< OA_ptr
< CFG::NodeInterface >, OA_ptr
< DataFlowSet > > 
mNodeInSetMap
 
std::map< OA_ptr
< CFG::NodeInterface >, OA_ptr
< DataFlowSet > > 
mNodeOutSetMap
 
std::map< OA_ptr
< CFG::NodeInterface >, bool > 
mNodeInitTransApp
 
CFGDFProblemmDFProb
 

Private Member Functions

void initialize (OA_ptr< DGraph::DGraphInterface > dg)
 
bool atDGraphNode (OA_ptr< DGraph::NodeInterface > node, DGraph::DGraphEdgeDirection pOrient)
 
void finalizeNode (OA_ptr< DGraph::NodeInterface > node)
 
OA_ptr< DataFlowSettransfer (OA_ptr< DataFlowSet > in, OA_ptr< DGraph::NodeInterface > n)
 
- Private Member Functions inherited from OA::DataFlow::DGraphSolverDFP
 DGraphSolverDFP ()
 
 ~DGraphSolverDFP ()
 
void solve (OA_ptr< DGraph::DGraphInterface > dg, DGraph::DGraphEdgeDirection alongFlow, DFPImplement algorithm)
 
int afterSolve_getNumIter ()
 

Private Attributes

OA_ptr< DataFlowSetmTop
 
DFDirectionType mDirection
 

Detailed Description

Definition at line 42 of file CFGDFSolver.hpp.

Member Enumeration Documentation

Enumerator
Forward 
Backward 

Definition at line 45 of file CFGDFSolver.hpp.

Constructor & Destructor Documentation

OA::DataFlow::CFGDFSolver::CFGDFSolver ( DFDirectionType  pDirection,
CFGDFProblem prob 
)

Definition at line 27 of file CFGDFSolver.cpp.

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

virtual OA::DataFlow::CFGDFSolver::~CFGDFSolver ( )
inlinevirtual

Definition at line 57 of file CFGDFSolver.hpp.

Member Function Documentation

void OA::DataFlow::CFGDFSolver::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)
    commented out by PLM 08/08/06

iterate over all entries in mNodeInSetMap and mNodeOutSetMap std::map<OA_ptr<CFG::NodeInterface>, OA_ptr<DataFlowSet> >::iterator mapIter; for (mapIter=mNodeInSetMap.begin(); mapIter!=mNodeInSetMap.end(); mapIter++) { OA_ptr<DataFlowSet> dfset = mapIter->second; os << "Node (" << mapIter->first << ") In: "; dfset->dump(os,ir); os << std::endl; } for (mapIter=mNodeOutSetMap.begin(); mapIter!=mNodeOutSetMap.end(); mapIter++) { OA_ptr<DataFlowSet> dfset = mapIter->second; os << "Node (" << mapIter->first << ") Out: "; dfset->dump(os,ir); os << std::endl; }

Definition at line 269 of file CFGDFSolver.cpp.

void OA::DataFlow::CFGDFSolver::finalizeNode ( OA_ptr< DGraph::NodeInterface node)
privatevirtual

Reimplemented from OA::DataFlow::DGraphSolverDFP.

Definition at line 256 of file CFGDFSolver.cpp.

OA_ptr<DataFlow::DataFlowSet> OA::DataFlow::CFGDFSolver::getInSet ( OA_ptr< CFG::NodeInterface node)
inline

Definition at line 75 of file CFGDFSolver.hpp.

References mNodeInSetMap.

void OA::DataFlow::CFGDFSolver::initialize ( OA_ptr< DGraph::DGraphInterface dg)
privatevirtual
OA_ptr<DataFlowSet> OA::DataFlow::CFGDFSolver::transfer ( OA_ptr< DataFlowSet in,
OA_ptr< DGraph::NodeInterface n 
)
private

transfer function for a CFG::Interface::Node Will clone in set to block before passing it to this function so ok to return a modified in set

Member Data Documentation

CFGDFProblem& OA::DataFlow::CFGDFSolver::mDFProb
protected

Definition at line 127 of file CFGDFSolver.hpp.

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

DFDirectionType OA::DataFlow::CFGDFSolver::mDirection
private

Definition at line 50 of file CFGDFSolver.hpp.

Referenced by solve().

std::map<OA_ptr<CFG::NodeInterface>,bool> OA::DataFlow::CFGDFSolver::mNodeInitTransApp
protected

Definition at line 126 of file CFGDFSolver.hpp.

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

std::map<OA_ptr<CFG::NodeInterface>,OA_ptr<DataFlowSet> > OA::DataFlow::CFGDFSolver::mNodeInSetMap
protected

Definition at line 121 of file CFGDFSolver.hpp.

Referenced by atDGraphNode(), getInSet(), initialize(), and solve().

std::map<OA_ptr<CFG::NodeInterface>,OA_ptr<DataFlowSet> > OA::DataFlow::CFGDFSolver::mNodeOutSetMap
protected

Definition at line 122 of file CFGDFSolver.hpp.

Referenced by atDGraphNode(), getOutSet(), initialize(), and solve().

OA_ptr<DataFlowSet> OA::DataFlow::CFGDFSolver::mTop
private

Definition at line 48 of file CFGDFSolver.hpp.

Referenced by atDGraphNode(), and solve().


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