#include <CallGraphDFSolver.hpp>


Definition at line 44 of file CallGraphDFSolver.hpp.
| OA::DataFlow::CallGraphDFSolver::CallGraphDFSolver | ( | CallGraphDirectionType | pDirection, | |
| CallGraphDFProblem & | prob | |||
| ) |
Definition at line 26 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.
| bool OA::DataFlow::CallGraphDFSolver::atDGraphEdge | ( | OA_ptr< DGraph::EdgeInterface > | pEdge, | |
| DGraph::DGraphEdgeDirection | pOrient | |||
| ) | [virtual] |
Reimplemented from OA::DataFlow::DGraphSolverDFP.
Definition at line 112 of file CallGraphDFSolver.cpp.
References OA::DataFlow::CallGraphDFProblem::atCallGraphEdge(), OA::OA_ptr< T >::convert(), OA::DataFlow::debug, OA::DGraph::DEdgeOrg, mDFProb, mEdgeInSetMap, mEdgeOutSetMap, mNodeOutSetMap, and OA::DataFlow::CallGraphDFProblem::nodeToEdge().

| 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 172 of file CallGraphDFSolver.cpp.
References OA::DataFlow::CallGraphDFProblem::atCallGraphNode(), OA::OA_ptr< T >::convert(), OA::DataFlow::debug, OA::DGraph::DEdgeOrg, OA::OA_ptr< T >::dump(), OA::DataFlow::CallGraphDFProblem::edgeToNode(), mDFProb, mEdgeOutSetMap, OA::DataFlow::CallGraphDFProblem::meet(), mNodeInSetMap, and mNodeOutSetMap.

| void OA::DataFlow::CallGraphDFSolver::dump | ( | std::ostream & | os, | |
| OA_ptr< IRHandlesIRInterface > | ir | |||
| ) |
Definition at line 264 of file CallGraphDFSolver.cpp.
| void OA::DataFlow::CallGraphDFSolver::finalizeEdge | ( | OA_ptr< DGraph::EdgeInterface > | edge | ) | [virtual] |
Reimplemented from OA::DataFlow::DGraphSolverDFP.
Definition at line 256 of file CallGraphDFSolver.cpp.
| void OA::DataFlow::CallGraphDFSolver::finalizeNode | ( | OA_ptr< DGraph::NodeInterface > | node | ) | [virtual] |
Reimplemented from OA::DataFlow::DGraphSolverDFP.
Definition at line 250 of file CallGraphDFSolver.cpp.
| void OA::DataFlow::CallGraphDFSolver::initialize | ( | OA_ptr< DGraph::DGraphInterface > | dg | ) | [virtual] |
Implements OA::DataFlow::DGraphSolverDFP.
Definition at line 59 of file CallGraphDFSolver.cpp.
References OA::OA_ptr< T >::convert(), OA::DataFlow::CallGraphDFProblem::initializeEdge(), OA::DataFlow::CallGraphDFProblem::initializeNode(), OA::DataFlow::CallGraphDFProblem::initializeTop(), mDFProb, mEdgeInSetMap, mEdgeOutSetMap, mNodeInSetMap, and mNodeOutSetMap.

| 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 34 of file CallGraphDFSolver.cpp.
References OA::DataFlow::debug, OA::DGraph::DEdgeOrg, OA::DGraph::DEdgeRev, OA::DataFlow::CallGraphDFProblem::initializeTop(), mDFProb, mDirection, mTop, and TopDown.

Definition at line 114 of file CallGraphDFSolver.hpp.
Referenced by atDGraphEdge(), atDGraphNode(), initialize(), and solve().
std::map<OA_ptr<CallGraph::EdgeInterface>,OA_ptr<DataFlowSet> > OA::DataFlow::CallGraphDFSolver::mEdgeInSetMap [private] |
Definition at line 108 of file CallGraphDFSolver.hpp.
Referenced by atDGraphEdge(), and initialize().
std::map<OA_ptr<CallGraph::EdgeInterface>,OA_ptr<DataFlowSet> > OA::DataFlow::CallGraphDFSolver::mEdgeOutSetMap [private] |
Definition at line 106 of file CallGraphDFSolver.hpp.
Referenced by atDGraphEdge(), atDGraphNode(), and initialize().
std::map<OA_ptr<CallGraph::NodeInterface>,bool> OA::DataFlow::CallGraphDFSolver::mNodeInitTransApp [private] |
Definition at line 112 of file CallGraphDFSolver.hpp.
std::map<OA_ptr<CallGraph::NodeInterface>,OA_ptr<DataFlowSet> > OA::DataFlow::CallGraphDFSolver::mNodeInSetMap [private] |
Definition at line 104 of file CallGraphDFSolver.hpp.
Referenced by atDGraphNode(), and initialize().
std::map<OA_ptr<CallGraph::NodeInterface>,OA_ptr<DataFlowSet> > OA::DataFlow::CallGraphDFSolver::mNodeOutSetMap [private] |
Definition at line 102 of file CallGraphDFSolver.hpp.
Referenced by atDGraphEdge(), atDGraphNode(), and initialize().
1.5.7.1