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

#include <DUGStandard.hpp>

Inheritance diagram for OA::DUG::Node:
Inheritance graph
Collaboration diagram for OA::DUG::Node:
Collaboration graph

Public Member Functions

 Node (OA_ptr< DUGStandard > pDUG, ProcHandle proc, NodeType pType)
 
 Node (OA_ptr< DUGStandard > pDUG, ProcHandle proc, NodeType pType, OA_ptr< CFG::NodeInterface > cNode)
 
 Node (OA_ptr< DUGStandard > pDUG, ProcHandle pProc, SymHandle pSym)
 
 ~Node ()
 
NodeType getType () const
 
bool isFormalParamNode ()
 
ProcHandle getProc () const
 
OA_ptr< LocationgetLoc () const
 
SymHandle getSym () const
 
void markVaried (std::list< CallHandle > &, OA_ptr< Activity::ActivityIRInterface >, std::set< OA_ptr< EdgeInterface > > &, std::set< std::pair< unsigned, unsigned > > &, ProcHandle, unsigned, OA_ptr< EdgeInterface >, bool activeWithVariedOnly)
 
void markUseful (std::list< CallHandle > &, OA_ptr< Activity::ActivityIRInterface >, std::set< OA_ptr< EdgeInterface > > &, std::set< std::pair< unsigned, unsigned > > &, ProcHandle, unsigned, OA_ptr< EdgeInterface >)
 
bool isVaried ()
 
void setVaried ()
 
void unsetVaried ()
 
bool isVariedContext (CallHandle context) const
 
void insertVariedContext (CallHandle context)
 
bool isUseful ()
 
void setUseful ()
 
void unsetUseful ()
 
void setActive ()
 
void setActive (SymHandle)
 
bool isSelfDependent ()
 
void setSelfDependent ()
 
bool isPathFrom (OA_ptr< NodeInterface >, std::set< OA_ptr< NodeInterface > > &)
 
bool hasEdgesToOtherProc (ProcHandle, std::set< SymHandle > &)
 
bool hasEdgesFromOtherProc (ProcHandle, std::set< SymHandle > &)
 
void findOutgoingNodes (ProcHandle, std::set< SymHandle > &, std::set< SymHandle > &)
 
unsigned int size () const
 number of statements in node More...
 
unsigned int getId () const
 getId: An id unique within instances of DUG::Node More...
 
int num_incoming () const
 number of incoming edges More...
 
int num_outgoing () const
 number of outgoing edges More...
 
bool isAnEntry () const
 returns true if node is an entry node, IOW has no incoming edges More...
 
bool isAnExit () const
 returns true if node is an exit node, IOW has no outgoing edges More...
 
bool operator== (DGraph::NodeInterface &other)
 
bool operator< (DGraph::NodeInterface &other)
 
void dump (std::ostream &os)
 
void dumpbase (std::ostream &os)
 
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
void dumpdot (std::ostream &os, OA_ptr< DUGIRInterface > ir)
 
void longdump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
void output (OA::IRHandlesIRInterface &ir)
 
OA_ptr
< DGraph::EdgesIteratorInterface
getIncomingEdgesIterator () const
 
OA_ptr
< DGraph::EdgesIteratorInterface
getOutgoingEdgesIterator () const
 
OA_ptr
< DGraph::NodesIteratorInterface
getSourceNodesIterator () const
 
OA_ptr
< DGraph::NodesIteratorInterface
getSinkNodesIterator () const
 
OA_ptr< EdgesIteratorInterfacegetDUGIncomingEdgesIterator () const
 
OA_ptr< EdgesIteratorInterfacegetDUGOutgoingEdgesIterator () const
 
OA_ptr< NodesIteratorInterfacegetDUGSourceNodesIterator () const
 
OA_ptr< NodesIteratorInterfacegetDUGSinkNodesIterator () const
 
void addIncomingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
void addOutgoingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
void removeIncomingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
void removeOutgoingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
 Node (OA_ptr< DUGStandard > pDUG, ProcHandle pProc, IRHandle ih, SymHandle pSym)
 
 ~Node ()
 
NodeType getType () const
 
ProcHandle getProc () const
 
OA_ptr< LocationgetLoc () const
 
SymHandle getSym () const
 
IRHandle getDef () const
 
IRSymHandle getIRSymHandle () const
 
void markVaried (std::list< CallHandle > &, OA_ptr< Activity::ActivityIRInterface >, std::set< OA_ptr< EdgeInterface > > &, std::set< std::pair< unsigned, unsigned > > &, ProcHandle, SymHandle, OA_ptr< EdgeInterface >)
 
void markUseful (std::list< CallHandle > &, OA_ptr< Activity::ActivityIRInterface >, std::set< OA_ptr< EdgeInterface > > &, std::set< std::pair< unsigned, unsigned > > &, ProcHandle, SymHandle, OA_ptr< EdgeInterface >)
 
bool isVaried ()
 
void setVaried ()
 
void unsetVaried ()
 
bool isUseful ()
 
void setUseful ()
 
void unsetUseful ()
 
void setActive ()
 
void setActive (SymHandle)
 
bool isSelfDependent ()
 
void setSelfDependent ()
 
bool isPathFrom (OA_ptr< NodeInterface >, std::set< OA_ptr< NodeInterface > > &)
 
bool hasOutgoingEdgesToOtherProcs (ProcHandle)
 
bool hasIncomingEdgesFromOtherProcs (ProcHandle)
 
void findOutgoingNodes (ProcHandle, std::set< IRSymHandle > &, std::set< IRSymHandle > &)
 
void findIncomingNodes (ProcHandle, std::set< IRSymHandle > &, std::set< IRSymHandle > &)
 
bool hasEdgesToOtherProc (ProcHandle, std::set< IRSymHandle > &)
 
bool hasEdgesFromOtherProc (ProcHandle, std::set< IRSymHandle > &)
 
unsigned int size () const
 number of statements in node More...
 
unsigned int getId () const
 getId: An id unique within instances of DUG::Node More...
 
int num_incoming () const
 number of incoming edges More...
 
int num_outgoing () const
 number of outgoing edges More...
 
bool isAnEntry () const
 returns true if node is an entry node, IOW has no incoming edges More...
 
bool isAnExit () const
 returns true if node is an exit node, IOW has no outgoing edges More...
 
bool operator== (DGraph::NodeInterface &other)
 
bool operator< (DGraph::NodeInterface &other)
 
void dump (std::ostream &os)
 
void dumpbase (std::ostream &os)
 
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
void dumpdot (std::ostream &os, OA_ptr< DUGIRInterface > ir)
 
void longdump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
void output (OA::IRHandlesIRInterface &ir)
 
OA_ptr
< DGraph::EdgesIteratorInterface
getIncomingEdgesIterator () const
 
OA_ptr
< DGraph::EdgesIteratorInterface
getOutgoingEdgesIterator () const
 
OA_ptr
< DGraph::NodesIteratorInterface
getSourceNodesIterator () const
 
OA_ptr
< DGraph::NodesIteratorInterface
getSinkNodesIterator () const
 
OA_ptr< EdgesIteratorInterfacegetDUGIncomingEdgesIterator () const
 
OA_ptr< EdgesIteratorInterfacegetDUGOutgoingEdgesIterator () const
 
OA_ptr< NodesIteratorInterfacegetDUGSourceNodesIterator () const
 
OA_ptr< NodesIteratorInterfacegetDUGSinkNodesIterator () const
 
void addIncomingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
void addOutgoingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
void removeIncomingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
void removeOutgoingEdge (OA_ptr< DGraph::EdgeInterface > e)
 
- Public Member Functions inherited from OA::DUG::NodeInterface
 NodeInterface ()
 
 ~NodeInterface ()
 
OA::SymHandle getSym ()
 
 NodeInterface ()
 
 ~NodeInterface ()
 

Private Member Functions

void Ctor ()
 
void Ctor ()
 

Private Attributes

unsigned int mId
 
OA_ptr< DUGStandardmDUG
 
ProcHandle mProc
 
NodeType mType
 
OA_ptr< DGraph::NodeImplementmDGNode
 
OA_ptr< LocationmLoc
 
SymHandle mSym
 
bool mVaried
 
bool mUseful
 
bool mSelfDependent
 
std::set< CallHandlemVariedContexts
 
IRHandle mDef
 

Friends

class DUGStandard
 
class Edge
 

Additional Inherited Members

- Static Public Member Functions inherited from OA::Annotation
static void configOutput (OA_ptr< OutputBuilder > ob)
 
- Static Protected Attributes inherited from OA::Annotation
static OA_ptr< OutputBuildersOutBuild
 

Detailed Description

Definition at line 56 of file DUGStandard.hpp.

Constructor & Destructor Documentation

OA::DUG::Node::Node ( OA_ptr< DUGStandard pDUG,
ProcHandle  proc,
NodeType  pType 
)
inline

Definition at line 58 of file DUGStandard.hpp.

References Ctor().

Here is the call graph for this function:

OA::DUG::Node::Node ( OA_ptr< DUGStandard pDUG,
ProcHandle  proc,
NodeType  pType,
OA_ptr< CFG::NodeInterface cNode 
)
inline

Definition at line 60 of file DUGStandard.hpp.

References Ctor().

Here is the call graph for this function:

OA::DUG::Node::Node ( OA_ptr< DUGStandard pDUG,
ProcHandle  pProc,
SymHandle  pSym 
)
inline

Definition at line 63 of file DUGStandard.hpp.

References Ctor().

Here is the call graph for this function:

OA::DUG::Node::~Node ( )
inline

Definition at line 67 of file DUGStandard.hpp.

OA::DUG::Node::Node ( OA_ptr< DUGStandard pDUG,
ProcHandle  pProc,
IRHandle  ih,
SymHandle  pSym 
)
inline

Definition at line 59 of file DUGStandard.hpp.

References Ctor().

Here is the call graph for this function:

OA::DUG::Node::~Node ( )
inline

Definition at line 64 of file DUGStandard.hpp.

Member Function Documentation

void OA::DUG::Node::addIncomingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 192 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::addIncomingEdge(), and mDGNode.

Here is the call graph for this function:

void OA::DUG::Node::addIncomingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 197 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::addIncomingEdge(), and mDGNode.

Here is the call graph for this function:

void OA::DUG::Node::addOutgoingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 197 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::addOutgoingEdge(), and mDGNode.

Here is the call graph for this function:

void OA::DUG::Node::addOutgoingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 202 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::addOutgoingEdge(), and mDGNode.

Here is the call graph for this function:

void OA::DUG::Node::Ctor ( )
private
void OA::DUG::Node::Ctor ( )
private

called by all Node constructors

Definition at line 54 of file DUGStandard.cpp.

References getId(), mDGNode, mSelfDependent, mUseful, and mVaried.

Referenced by Node().

Here is the call graph for this function:

void OA::DUG::Node::dump ( std::ostream &  os)
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 156 of file DUGStandard.hpp.

void OA::DUG::Node::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)
virtual
void OA::DUG::Node::dump ( std::ostream &  os)
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 161 of file DUGStandard.hpp.

Referenced by longdump(), markUseful(), and markVaried().

void OA::DUG::Node::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 84 of file DUGStandard.cpp.

References getSym().

Here is the call graph for this function:

void OA::DUG::Node::dumpbase ( std::ostream &  os)
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 157 of file DUGStandard.hpp.

void OA::DUG::Node::dumpbase ( std::ostream &  os)
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 162 of file DUGStandard.hpp.

void OA::DUG::Node::dumpdot ( std::ostream &  os,
OA_ptr< DUGIRInterface ir 
)
virtual
void OA::DUG::Node::dumpdot ( std::ostream &  os,
OA_ptr< DUGIRInterface ir 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 144 of file DUGStandard.cpp.

References getId(), getSym(), OA::Location::isLocal(), mDUG, mProc, and OA::OA_ptr< T >::ptrEqual().

Referenced by markUseful(), and markVaried().

Here is the call graph for this function:

void OA::DUG::Node::findIncomingNodes ( ProcHandle  proc,
std::set< IRSymHandle > &  InComingNodeSet,
std::set< IRSymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1236 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE.

void OA::DUG::Node::findOutgoingNodes ( ProcHandle  proc,
std::set< IRSymHandle > &  OutGoingNodeSet,
std::set< IRSymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1191 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE.

void OA::DUG::Node::findOutgoingNodes ( ProcHandle  proc,
std::set< SymHandle > &  OutGoingNodeSet,
std::set< SymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1407 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, getDUGOutgoingEdgesIterator(), and getSym().

Here is the call graph for this function:

IRHandle OA::DUG::Node::getDef ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 75 of file DUGStandard.hpp.

References mDef.

OA_ptr<EdgesIteratorInterface> OA::DUG::Node::getDUGIncomingEdgesIterator ( ) const
virtual
OA_ptr< EdgesIteratorInterface > OA::DUG::Node::getDUGIncomingEdgesIterator ( ) const
virtual

Implements OA::DUG::NodeInterface.

Definition at line 197 of file DUGStandard.cpp.

References getIncomingEdgesIterator().

Referenced by hasEdgesFromOtherProc(), isPathFrom(), markUseful(), and markVaried().

Here is the call graph for this function:

OA_ptr<EdgesIteratorInterface> OA::DUG::Node::getDUGOutgoingEdgesIterator ( ) const
virtual
OA_ptr< EdgesIteratorInterface > OA::DUG::Node::getDUGOutgoingEdgesIterator ( ) const
virtual

Implements OA::DUG::NodeInterface.

Definition at line 206 of file DUGStandard.cpp.

References getOutgoingEdgesIterator().

Referenced by findOutgoingNodes(), hasEdgesToOtherProc(), markUseful(), and markVaried().

Here is the call graph for this function:

OA_ptr<NodesIteratorInterface> OA::DUG::Node::getDUGSinkNodesIterator ( ) const
virtual
OA_ptr< NodesIteratorInterface > OA::DUG::Node::getDUGSinkNodesIterator ( ) const
virtual

Implements OA::DUG::NodeInterface.

Definition at line 224 of file DUGStandard.cpp.

References getSinkNodesIterator().

Referenced by longdump().

Here is the call graph for this function:

OA_ptr<NodesIteratorInterface> OA::DUG::Node::getDUGSourceNodesIterator ( ) const
virtual
OA_ptr< NodesIteratorInterface > OA::DUG::Node::getDUGSourceNodesIterator ( ) const
virtual

Implements OA::DUG::NodeInterface.

Definition at line 215 of file DUGStandard.cpp.

References getSourceNodesIterator().

Referenced by longdump().

Here is the call graph for this function:

unsigned int OA::DUG::Node::getId ( ) const
inlinevirtual

getId: An id unique within instances of DUG::Node

Implements OA::DGraph::NodeInterface.

Definition at line 132 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::getId(), and mDGNode.

Here is the call graph for this function:

unsigned int OA::DUG::Node::getId ( ) const
inlinevirtual

getId: An id unique within instances of DUG::Node

Implements OA::DGraph::NodeInterface.

Definition at line 137 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::getId(), and mDGNode.

Referenced by Ctor(), dumpdot(), markUseful(), and markVaried().

Here is the call graph for this function:

OA_ptr<DGraph::EdgesIteratorInterface> OA::DUG::Node::getIncomingEdgesIterator ( ) const
virtual
OA_ptr< DGraph::EdgesIteratorInterface > OA::DUG::Node::getIncomingEdgesIterator ( ) const
virtual

Implements OA::DGraph::NodeInterface.

Definition at line 173 of file DUGStandard.cpp.

References OA::DGraph::NodeImplement::getIncomingEdgesIterator(), and mDGNode.

Referenced by getDUGIncomingEdgesIterator().

Here is the call graph for this function:

IRSymHandle OA::DUG::Node::getIRSymHandle ( ) const
inline

Definition at line 76 of file DUGStandard.hpp.

References mDef, and mSym.

OA_ptr<Location> OA::DUG::Node::getLoc ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 73 of file DUGStandard.hpp.

References mLoc.

OA_ptr<Location> OA::DUG::Node::getLoc ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 77 of file DUGStandard.hpp.

References mLoc.

OA_ptr<DGraph::EdgesIteratorInterface> OA::DUG::Node::getOutgoingEdgesIterator ( ) const
virtual
OA_ptr< DGraph::EdgesIteratorInterface > OA::DUG::Node::getOutgoingEdgesIterator ( ) const
virtual

Implements OA::DGraph::NodeInterface.

Definition at line 179 of file DUGStandard.cpp.

References OA::DGraph::NodeImplement::getOutgoingEdgesIterator(), and mDGNode.

Referenced by getDUGOutgoingEdgesIterator().

Here is the call graph for this function:

ProcHandle OA::DUG::Node::getProc ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 72 of file DUGStandard.hpp.

References mProc.

ProcHandle OA::DUG::Node::getProc ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 76 of file DUGStandard.hpp.

References mProc.

Referenced by markUseful(), markVaried(), and setActive().

OA_ptr<DGraph::NodesIteratorInterface> OA::DUG::Node::getSinkNodesIterator ( ) const
virtual
OA_ptr< DGraph::NodesIteratorInterface > OA::DUG::Node::getSinkNodesIterator ( ) const
virtual

Implements OA::DGraph::NodeInterface.

Definition at line 191 of file DUGStandard.cpp.

References OA::DGraph::NodeImplement::getSourceNodesIterator(), and mDGNode.

Referenced by getDUGSinkNodesIterator().

Here is the call graph for this function:

OA_ptr<DGraph::NodesIteratorInterface> OA::DUG::Node::getSourceNodesIterator ( ) const
virtual
OA_ptr< DGraph::NodesIteratorInterface > OA::DUG::Node::getSourceNodesIterator ( ) const
virtual

Implements OA::DGraph::NodeInterface.

Definition at line 185 of file DUGStandard.cpp.

References OA::DGraph::NodeImplement::getSourceNodesIterator(), and mDGNode.

Referenced by getDUGSourceNodesIterator().

Here is the call graph for this function:

SymHandle OA::DUG::Node::getSym ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 74 of file DUGStandard.hpp.

References mSym.

SymHandle OA::DUG::Node::getSym ( ) const
inlinevirtual
NodeType OA::DUG::Node::getType ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 70 of file DUGStandard.hpp.

References mType.

NodeType OA::DUG::Node::getType ( ) const
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 73 of file DUGStandard.hpp.

References mType.

bool OA::DUG::Node::hasEdgesFromOtherProc ( ProcHandle  proc,
std::set< IRSymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1288 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE.

bool OA::DUG::Node::hasEdgesFromOtherProc ( ProcHandle  proc,
std::set< SymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1465 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, getDUGIncomingEdgesIterator(), and getSym().

Here is the call graph for this function:

bool OA::DUG::Node::hasEdgesToOtherProc ( ProcHandle  proc,
std::set< IRSymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1263 of file DUGStandard.cpp.

References OA::DUG::CALL_EDGE, and OA::DUG::CFLOW_EDGE.

bool OA::DUG::Node::hasEdgesToOtherProc ( ProcHandle  proc,
std::set< SymHandle > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1440 of file DUGStandard.cpp.

References OA::DUG::CALL_EDGE, OA::DUG::CFLOW_EDGE, getDUGOutgoingEdgesIterator(), and getSym().

Here is the call graph for this function:

bool OA::DUG::Node::hasIncomingEdgesFromOtherProcs ( ProcHandle  proc)

Definition at line 1220 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE.

bool OA::DUG::Node::hasOutgoingEdgesToOtherProcs ( ProcHandle  proc)

Definition at line 1174 of file DUGStandard.cpp.

References OA::DUG::CFLOW_EDGE.

void OA::DUG::Node::insertVariedContext ( CallHandle  context)
inline

Definition at line 105 of file DUGStandard.hpp.

References mVariedContexts.

Referenced by markVaried().

bool OA::DUG::Node::isAnEntry ( ) const
inlinevirtual

returns true if node is an entry node, IOW has no incoming edges

Implements OA::DGraph::NodeInterface.

Definition at line 145 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::isAnEntry(), and mDGNode.

Here is the call graph for this function:

bool OA::DUG::Node::isAnEntry ( ) const
inlinevirtual

returns true if node is an entry node, IOW has no incoming edges

Implements OA::DGraph::NodeInterface.

Definition at line 150 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::isAnEntry(), and mDGNode.

Referenced by longdump().

Here is the call graph for this function:

bool OA::DUG::Node::isAnExit ( ) const
inlinevirtual

returns true if node is an exit node, IOW has no outgoing edges

Implements OA::DGraph::NodeInterface.

Definition at line 148 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::isAnExit(), and mDGNode.

Here is the call graph for this function:

bool OA::DUG::Node::isAnExit ( ) const
inlinevirtual

returns true if node is an exit node, IOW has no outgoing edges

Implements OA::DGraph::NodeInterface.

Definition at line 153 of file DUGStandard.hpp.

References OA::DGraph::NodeImplement::isAnExit(), and mDGNode.

Referenced by longdump().

Here is the call graph for this function:

bool OA::DUG::Node::isFormalParamNode ( )
inline

Definition at line 74 of file DUGStandard.hpp.

References OA::DUG::FORMALPARAM_NODE, and mType.

bool OA::DUG::Node::isPathFrom ( OA_ptr< NodeInterface ,
std::set< OA_ptr< NodeInterface > > &   
)
virtual
bool OA::DUG::Node::isPathFrom ( OA_ptr< NodeInterface useNode,
std::set< OA_ptr< NodeInterface > > &  visited 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 1383 of file DUGStandard.cpp.

References getDUGIncomingEdgesIterator(), and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

bool OA::DUG::Node::isSelfDependent ( )
inline

Definition at line 108 of file DUGStandard.hpp.

References mSelfDependent.

bool OA::DUG::Node::isSelfDependent ( )
inline

Definition at line 115 of file DUGStandard.hpp.

References mSelfDependent.

Referenced by markUseful(), and markVaried().

bool OA::DUG::Node::isUseful ( )
inline

Definition at line 101 of file DUGStandard.hpp.

References mUseful.

bool OA::DUG::Node::isUseful ( )
inline

Definition at line 108 of file DUGStandard.hpp.

References mUseful.

Referenced by markUseful().

bool OA::DUG::Node::isVaried ( )
inline

Definition at line 91 of file DUGStandard.hpp.

References mVaried.

bool OA::DUG::Node::isVaried ( )
inline

Definition at line 94 of file DUGStandard.hpp.

References mVaried.

Referenced by markUseful(), and markVaried().

bool OA::DUG::Node::isVariedContext ( CallHandle  context) const
inline

Definition at line 103 of file DUGStandard.hpp.

References mVariedContexts.

Referenced by markUseful().

void OA::DUG::Node::longdump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)
virtual
void OA::DUG::Node::longdump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 105 of file DUGStandard.cpp.

References dump(), OA::OA_ptr< T >::dump(), getDUGSinkNodesIterator(), getDUGSourceNodesIterator(), isAnEntry(), and isAnExit().

Here is the call graph for this function:

void OA::DUG::Node::markUseful ( std::list< CallHandle > &  callStack,
OA_ptr< Activity::ActivityIRInterface ir,
std::set< OA_ptr< EdgeInterface > > &  visited,
std::set< std::pair< unsigned, unsigned > > &  onPath,
ProcHandle  proc,
SymHandle  prevSym,
OA_ptr< EdgeInterface parenEdge 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 968 of file DUGStandard.cpp.

References OA::DUG::CALL_EDGE, OA::DUG::CFLOW_EDGE, OA::IRHandle::hval(), OA::DUG::PARAM_EDGE, OA::OA_ptr< T >::ptrEqual(), and OA::CFG::RETURN_EDGE.

Here is the call graph for this function:

void OA::DUG::Node::markUseful ( std::list< CallHandle > &  callStack,
OA_ptr< Activity::ActivityIRInterface ir,
std::set< OA_ptr< EdgeInterface > > &  visited,
std::set< std::pair< unsigned, unsigned > > &  onPath,
ProcHandle  proc,
unsigned  prevId,
OA_ptr< EdgeInterface parenEdge 
)
virtual
void OA::DUG::Node::markVaried ( std::list< CallHandle > &  callStack,
OA_ptr< Activity::ActivityIRInterface ir,
std::set< OA_ptr< EdgeInterface > > &  visited,
std::set< std::pair< unsigned, unsigned > > &  onPath,
ProcHandle  proc,
SymHandle  prevSym,
OA_ptr< EdgeInterface parenEdge 
)
virtual

Implements OA::DUG::NodeInterface.

Definition at line 812 of file DUGStandard.cpp.

References OA::DUG::CALL_EDGE, OA::DUG::CFLOW_EDGE, OA::DUG::PARAM_EDGE, OA::OA_ptr< T >::ptrEqual(), and OA::CFG::RETURN_EDGE.

Here is the call graph for this function:

void OA::DUG::Node::markVaried ( std::list< CallHandle > &  callStack,
OA_ptr< Activity::ActivityIRInterface ir,
std::set< OA_ptr< EdgeInterface > > &  visited,
std::set< std::pair< unsigned, unsigned > > &  onPath,
ProcHandle  proc,
unsigned  prevId,
OA_ptr< EdgeInterface parenEdge,
bool  activeWithVariedOnly 
)
virtual
int OA::DUG::Node::num_incoming ( ) const
inlinevirtual

number of incoming edges

Implements OA::DGraph::NodeInterface.

Definition at line 139 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::num_incoming().

Here is the call graph for this function:

int OA::DUG::Node::num_incoming ( ) const
inlinevirtual

number of incoming edges

Implements OA::DGraph::NodeInterface.

Definition at line 144 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::num_incoming().

Here is the call graph for this function:

int OA::DUG::Node::num_outgoing ( ) const
inlinevirtual

number of outgoing edges

Implements OA::DGraph::NodeInterface.

Definition at line 142 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::num_outgoing().

Here is the call graph for this function:

int OA::DUG::Node::num_outgoing ( ) const
inlinevirtual

number of outgoing edges

Implements OA::DGraph::NodeInterface.

Definition at line 147 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::num_outgoing().

Here is the call graph for this function:

bool OA::DUG::Node::operator< ( DGraph::NodeInterface other)
virtual
bool OA::DUG::Node::operator< ( DGraph::NodeInterface other)
virtual

Implements OA::DGraph::NodeInterface.

Definition at line 97 of file DUGStandard.cpp.

References mDGNode.

bool OA::DUG::Node::operator== ( DGraph::NodeInterface other)
virtual
bool OA::DUG::Node::operator== ( DGraph::NodeInterface other)
virtual

Implements OA::DGraph::NodeInterface.

Definition at line 91 of file DUGStandard.cpp.

References mDGNode.

void OA::DUG::Node::output ( OA::IRHandlesIRInterface ir)
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 161 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::output().

Here is the call graph for this function:

void OA::DUG::Node::output ( OA::IRHandlesIRInterface ir)
inlinevirtual

Implements OA::DUG::NodeInterface.

Definition at line 166 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::output().

Here is the call graph for this function:

void OA::DUG::Node::removeIncomingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 202 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::removeIncomingEdge().

Here is the call graph for this function:

void OA::DUG::Node::removeIncomingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 207 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::removeIncomingEdge().

Here is the call graph for this function:

void OA::DUG::Node::removeOutgoingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 208 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::removeOutgoingEdge().

Here is the call graph for this function:

void OA::DUG::Node::removeOutgoingEdge ( OA_ptr< DGraph::EdgeInterface e)
inlinevirtual

Implements OA::DGraph::NodeInterface.

Definition at line 213 of file DUGStandard.hpp.

References mDGNode, and OA::DGraph::NodeImplement::removeOutgoingEdge().

Here is the call graph for this function:

void OA::DUG::Node::setActive ( )
void OA::DUG::Node::setActive ( SymHandle  )
void OA::DUG::Node::setActive ( )

Definition at line 766 of file DUGStandard.cpp.

References OA::OA_ptr< T >::convert(), getProc(), mDUG, mSym, and OA::OA_ptr< T >::ptrEqual().

Referenced by markUseful(), and markVaried().

Here is the call graph for this function:

void OA::DUG::Node::setActive ( SymHandle  sym)

Definition at line 733 of file DUGStandard.cpp.

References mDUG, and mProc.

void OA::DUG::Node::setSelfDependent ( )
inline

Definition at line 109 of file DUGStandard.hpp.

References mSelfDependent.

void OA::DUG::Node::setSelfDependent ( )
inline

Definition at line 116 of file DUGStandard.hpp.

References mSelfDependent.

void OA::DUG::Node::setUseful ( )
inline

Definition at line 102 of file DUGStandard.hpp.

References mUseful.

void OA::DUG::Node::setUseful ( )
inline

Definition at line 109 of file DUGStandard.hpp.

References mUseful.

Referenced by markUseful().

void OA::DUG::Node::setVaried ( )
inline

Definition at line 92 of file DUGStandard.hpp.

References mVaried.

void OA::DUG::Node::setVaried ( )
inline

Definition at line 95 of file DUGStandard.hpp.

References mVaried.

Referenced by markVaried().

unsigned int OA::DUG::Node::size ( ) const
inlinevirtual

number of statements in node

Implements OA::DUG::NodeInterface.

Definition at line 121 of file DUGStandard.hpp.

unsigned int OA::DUG::Node::size ( ) const
inlinevirtual

number of statements in node

Implements OA::DUG::NodeInterface.

Definition at line 126 of file DUGStandard.hpp.

void OA::DUG::Node::unsetUseful ( )
inline

Definition at line 103 of file DUGStandard.hpp.

References mUseful.

void OA::DUG::Node::unsetUseful ( )
inline

Definition at line 110 of file DUGStandard.hpp.

References mUseful.

Referenced by markUseful().

void OA::DUG::Node::unsetVaried ( )
inline

Definition at line 96 of file DUGStandard.hpp.

References mVaried.

void OA::DUG::Node::unsetVaried ( )
inline

Definition at line 99 of file DUGStandard.hpp.

References mVaried.

Referenced by markVaried().

Friends And Related Function Documentation

DUGStandard
friend

Definition at line 241 of file DUGStandard.hpp.

Edge
friend

Definition at line 242 of file DUGStandard.hpp.

Member Data Documentation

IRHandle OA::DUG::Node::mDef
private

Definition at line 227 of file DUGStandard.hpp.

Referenced by getDef(), and getIRSymHandle().

OA_ptr< DUGStandard > OA::DUG::Node::mDUG
private

Definition at line 223 of file DUGStandard.hpp.

Referenced by dumpdot(), markUseful(), markVaried(), and setActive().

unsigned int OA::DUG::Node::mId
private

Definition at line 222 of file DUGStandard.hpp.

OA_ptr< Location > OA::DUG::Node::mLoc
private

Definition at line 231 of file DUGStandard.hpp.

Referenced by getLoc().

ProcHandle OA::DUG::Node::mProc
private

Definition at line 224 of file DUGStandard.hpp.

Referenced by dumpdot(), getProc(), and setActive().

bool OA::DUG::Node::mSelfDependent
private

Definition at line 235 of file DUGStandard.hpp.

Referenced by Ctor(), isSelfDependent(), and setSelfDependent().

SymHandle OA::DUG::Node::mSym
private

Definition at line 232 of file DUGStandard.hpp.

Referenced by getIRSymHandle(), getSym(), and setActive().

NodeType OA::DUG::Node::mType
private

Definition at line 225 of file DUGStandard.hpp.

Referenced by getType(), and isFormalParamNode().

bool OA::DUG::Node::mUseful
private

Definition at line 234 of file DUGStandard.hpp.

Referenced by Ctor(), isUseful(), setUseful(), and unsetUseful().

bool OA::DUG::Node::mVaried
private

Definition at line 233 of file DUGStandard.hpp.

Referenced by Ctor(), isVaried(), setVaried(), and unsetVaried().

std::set<CallHandle> OA::DUG::Node::mVariedContexts
private

Definition at line 239 of file DUGStandard.hpp.

Referenced by insertVariedContext(), and isVariedContext().


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