#include <DGraphImplement.hpp>


Definition at line 204 of file DGraphImplement.hpp.
| OA::DGraph::DGraphImplement::DGraphImplement | ( | ) |
| OA::DGraph::DGraphImplement::~DGraphImplement | ( | ) | [inline] |
Definition at line 209 of file DGraphImplement.hpp.
| void OA::DGraph::DGraphImplement::addEdge | ( | OA_ptr< EdgeInterface > | e | ) | [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 281 of file DGraphImplement.cpp.
References addNode(), OA::debug, OA::OA_ptr< T >::dump(), mEdgeSet, and mNodeSet.
Referenced by OA::CFG::CFG::connect(), and OA::CallGraph::CallGraph::connect().

| void OA::DGraph::DGraphImplement::addNode | ( | OA_ptr< NodeInterface > | n | ) | [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 275 of file DGraphImplement.cpp.
References mNodeSet.
Referenced by addEdge(), OA::CallGraph::CallGraph::findOrAddNode(), OA::CFG::CFG::node_from_label(), and OA::CFG::CFG::splitBlock().
| OA_ptr< std::list< OA_ptr< NodeInterface > > > OA::DGraph::DGraphImplement::create_entry_list | ( | ) | const [private] |
returns a list of DGraph NodeInterface's that do not have incoming
Definition at line 325 of file DGraphImplement.cpp.
References getNodesIterator().
Referenced by getEntryNodesIterator().

| OA_ptr< std::list< OA_ptr< NodeInterface > > > OA::DGraph::DGraphImplement::create_exit_list | ( | ) | const [private] |
Definition at line 343 of file DGraphImplement.cpp.
References OA::debug, OA::OA_ptr< T >::dump(), and getNodesIterator().
Referenced by getExitNodesIterator().

| OA_ptr< std::list< OA_ptr< NodeInterface > > > OA::DGraph::DGraphImplement::create_reverse_post_order_list | ( | DGraphEdgeDirection | pOrient | ) | [private] |
Definition at line 368 of file DGraphImplement.cpp.
References OA::debug, OA::DGraph::DEdgeOrg, OA::OA_ptr< T >::dump(), getEntryNodesIterator(), getExitNodesIterator(), getNodesIterator(), mVisitMap, and reverse_postorder_recurse().
Referenced by getReversePostDFSIterator().

| void OA::DGraph::DGraphImplement::createDFSList | ( | OA_ptr< NodeInterface > | pNode, | |
| OA_ptr< std::list< OA_ptr< NodeInterface > > > | pList | |||
| ) | [private] |
Definition at line 144 of file DGraphImplement.cpp.
References mVisitMap, and OA::n.
Referenced by getDFSIterator().
| OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getDFSIterator | ( | OA_ptr< NodeInterface > | n | ) | [virtual] |
commented out by PLM 09/13/06 nodeIter = getEntryNodesIterator(); for ( ; nodeIter->isValid(); (*nodeIter)++ ) { OA_ptr<NodeInterface> node = nodeIter->current(); createDFSList(node,templist); }
Implements OA::DGraph::DGraphInterface.
Definition at line 172 of file DGraphImplement.cpp.
References createDFSList(), getNodesIterator(), mVisitMap, and NodesIteratorImplement.
Referenced by OA::CallGraph::CallGraph::getCallGraphDFSIterator(), OA::CFG::CFG::getCFGDFSIterator(), and OA::ICFG::ICFG::getICFGDFSIterator().

| OA_ptr< EdgesIteratorInterface > OA::DGraph::DGraphImplement::getEdgesIterator | ( | ) | const [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 203 of file DGraphImplement.cpp.
References OA::debug, and mEdgeSet.
Referenced by OA::CallGraph::CallGraph::getCallGraphEdgesIterator(), OA::CFG::CFG::getCFGEdgesIterator(), OA::ICFG::ICFG::getICFGEdgesIterator(), output(), and OA::ICFG::ICFG::output().
| OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getEntryNodesIterator | ( | ) | const [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 111 of file DGraphImplement.cpp.
References create_entry_list(), and NodesIteratorImplement.
Referenced by create_reverse_post_order_list(), OA::CallGraph::CallGraph::getCallGraphEntryNodesIterator(), OA::CFG::CFG::getCFGEntryNodesIterator(), and OA::ICFG::ICFG::getICFGEntryNodesIterator().

| OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getExitNodesIterator | ( | ) | const [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 122 of file DGraphImplement.cpp.
References create_exit_list(), and NodesIteratorImplement.
Referenced by create_reverse_post_order_list(), OA::CallGraph::CallGraph::getCallGraphExitNodesIterator(), OA::CFG::CFG::getCFGExitNodesIterator(), getExprGraphRootNode(), and OA::ICFG::ICFG::getICFGExitNodesIterator().

| OA_ptr< NodeInterface > OA::DGraph::DGraphImplement::getExprGraphRootNode | ( | ) | const |
Definition at line 696 of file DGraphImplement.cpp.
References getExitNodesIterator(), and OA::OA_ptr< T >::ptrEqual().

| std::string OA::DGraph::DGraphImplement::getGraphName | ( | ) | [virtual] |
| OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getNodesIterator | ( | ) | const [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 82 of file DGraphImplement.cpp.
References OA::debug, OA::OA_ptr< T >::dump(), mNodeSet, and NodesIteratorImplement.
Referenced by create_entry_list(), create_exit_list(), create_reverse_post_order_list(), OA::CallGraph::CallGraph::getCallGraphNodesIterator(), OA::CFG::CFG::getCFGNodesIterator(), getDFSIterator(), OA::ICFG::ICFG::getICFGNodesIterator(), output(), and OA::ICFG::ICFG::output().

| int OA::DGraph::DGraphImplement::getNumEdges | ( | ) | [inline, virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 228 of file DGraphImplement.hpp.
References mEdgeSet.
| int OA::DGraph::DGraphImplement::getNumNodes | ( | ) | [inline, virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 227 of file DGraphImplement.hpp.
References mNodeSet.
| OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getReversePostDFSIterator | ( | DGraph::DGraphEdgeDirection | pOrient | ) | [virtual] |
Implements OA::DGraph::DGraphInterface.
Definition at line 134 of file DGraphImplement.cpp.
References create_reverse_post_order_list(), and NodesIteratorImplement.
Referenced by OA::CallGraph::CallGraph::getCallGraphReversePostDFSIterator(), OA::CFG::CFG::getCFGReversePostDFSIterator(), and OA::ICFG::ICFG::getICFGReversePostDFSIterator().

| void OA::DGraph::DGraphImplement::output | ( | IRHandlesIRInterface & | ir | ) | [virtual] |
Implements OA::Annotation.
Reimplemented in OA::CallGraph::CallGraph, and OA::ICFG::ICFG.
Definition at line 225 of file DGraphImplement.cpp.
References OA::debug, getEdgesIterator(), getGraphName(), getNodesIterator(), and OA::Annotation::sOutBuild.

| void OA::DGraph::DGraphImplement::removeEdge | ( | OA_ptr< EdgeInterface > | e | ) |
Remove this edge from the BaseGraph as well as from the list of incoming or outgoing edges of the two nodes that form this edge.
Definition at line 36 of file DGraphImplement.cpp.
References mEdgeSet.
Referenced by OA::CFG::CFG::disconnect(), and OA::CallGraph::CallGraph::disconnect().
| void OA::DGraph::DGraphImplement::removeNode | ( | OA_ptr< NodeInterface > | n | ) |
Remove the given node and all the incoming and outgoing edges incident on it.
Definition at line 51 of file DGraphImplement.cpp.
References mEdgeSet, and mNodeSet.
Referenced by OA::CFG::CFG::disconnect().
| void OA::DGraph::DGraphImplement::reverse_postorder_recurse | ( | OA_ptr< NodeInterface > | pNode, | |
| DGraphEdgeDirection | pOrient, | |||
| OA_ptr< std::list< OA_ptr< NodeInterface > > > | pList | |||
| ) | [private] |
Definition at line 412 of file DGraphImplement.cpp.
References OA::debug, OA::DGraph::DEdgeOrg, OA::OA_ptr< T >::dump(), mVisitMap, and OA::n.
Referenced by create_reverse_post_order_list().

friend class NodesIteratorImplement [friend] |
Definition at line 258 of file DGraphImplement.hpp.
Referenced by getDFSIterator(), getEntryNodesIterator(), getExitNodesIterator(), getNodesIterator(), and getReversePostDFSIterator().
OA_ptr<std::set<OA_ptr<EdgeInterface> > > OA::DGraph::DGraphImplement::mEdgeSet [private] |
Definition at line 262 of file DGraphImplement.hpp.
Referenced by addEdge(), DGraphImplement(), getEdgesIterator(), getNumEdges(), removeEdge(), and removeNode().
OA_ptr<std::set<OA_ptr<NodeInterface> > > OA::DGraph::DGraphImplement::mNodeSet [private] |
Definition at line 261 of file DGraphImplement.hpp.
Referenced by addEdge(), addNode(), DGraphImplement(), getNodesIterator(), getNumNodes(), and removeNode().
std::map<OA_ptr<NodeInterface>,bool> OA::DGraph::DGraphImplement::mVisitMap [private] |
Definition at line 242 of file DGraphImplement.hpp.
Referenced by create_reverse_post_order_list(), createDFSList(), getDFSIterator(), and reverse_postorder_recurse().
1.5.7.1