Public Member Functions | Private Member Functions | Private Attributes

OA::DUG::ManagerDUGStandard Class Reference

#include <ManagerDUGStandard.hpp>

Collaboration diagram for OA::DUG::ManagerDUGStandard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerDUGStandard (OA_ptr< DUGIRInterface > _ir, OA_ptr< Activity::ActivityIRInterface > _air)
 ~ManagerDUGStandard ()
OA_ptr< DUGStandardperformAnalysis (OA_ptr< IRProcIterator >, OA_ptr< DataFlow::ParamBindings >, OA_ptr< OA::CallGraph::CallGraphInterface >)
void transitiveClosureDepMatrix (OA_ptr< OA::CallGraph::CallGraphInterface >)
 ManagerDUGStandard (OA_ptr< DUGIRInterface > _ir, OA_ptr< Activity::ActivityIRInterface > _air, std::map< ProcHandle, OA_ptr< UDDUChains::UDDUChainsStandard > > &)
 ~ManagerDUGStandard ()
OA_ptr< DUGStandardperformAnalysis (OA_ptr< IRProcIterator >, OA_ptr< DataFlow::ParamBindings >, OA_ptr< OA::CallGraph::CallGraphInterface >)
void transitiveClosureDepMatrix (OA_ptr< OA::CallGraph::CallGraphInterface >)
void connectGlobals ()
void printIRSymHandle (IRSymHandle, ostream &, OA_ptr< DUGIRInterface >)
void printEdge (IRSymHandle, IRSymHandle, EdgeType)
void printEdgeDot (IRSymHandle, ProcHandle, IRSymHandle, ProcHandle)

Private Member Functions

bool stmt_has_call (StmtHandle stmt)
void insertEdge (SymHandle, SymHandle, EdgeType, CallHandle, ProcHandle, ProcHandle, ProcHandle)
void labelCallRetEdges (StmtHandle, ProcHandle)
void labelUseDefEdges (StmtHandle, ProcHandle)
void collectIndependentSyms (ProcHandle)
void collectDependentSyms (ProcHandle)
void setDepMatrix (ProcHandle, SymHandle, SymHandle)
void transitiveClosure (ProcHandle proc)
void edgesBetweenActuals (ProcHandle proc)
void setDepMatrix4Globals (SymHandle, SymHandle, ProcHandle)
bool isPathThruOtherProcs (SymHandle, SymHandle, ProcHandle)
bool isOutgoingToOtherProcs (SymHandle, ProcHandle)
bool isIncomingFromOtherProcs (SymHandle, ProcHandle)
bool hasEdgesToOtherProc (SymHandle, ProcHandle)
bool hasEdgesFromOtherProc (SymHandle, ProcHandle)
bool isLocal (SymHandle, ProcHandle)
bool stmt_has_call (StmtHandle stmt)
bool isGlobal (SymHandle sym)
bool isFormal (SymHandle sym, ProcHandle proc)
SymHandle getModSymFromMRE (OA_ptr< OA::MemRefExpr >)
SymHandle getSymFromMRE (OA_ptr< OA::MemRefExpr >)
void collectDefsUsesInStmt (StmtHandle, ProcHandle)
std::set< SymHandle > & getUses (StmtHandle, ProcHandle)
std::set< SymHandle > & getDefs (StmtHandle, ProcHandle)
std::set< SymHandle > & getCallDefs (StmtHandle, ProcHandle)
void downwardExposedDefs (SymHandle, StmtHandle, ProcHandle, OA_ptr< UDDUChains::UDDUChainsStandard >)
void upwardExposedUses (SymHandle, StmtHandle, ProcHandle, OA_ptr< UDDUChains::UDDUChainsStandard >)
void insertEdge (IRSymHandle, IRSymHandle, EdgeType, CallHandle, ProcHandle, ProcHandle, ProcHandle)
void labelCallRetEdges (StmtHandle, ProcHandle)
void labelUseDefEdges (StmtHandle, ProcHandle)
void collectIndependentSyms (ProcHandle)
void collectDependentSyms (ProcHandle)
void collectFormalParameters (ProcHandle)
void getCallInfo (StmtHandle, ProcHandle)
void setDepMatrix (ProcHandle, IRSymHandle, IRSymHandle)
void transitiveClosure (ProcHandle proc)
void edgesBetweenFormals (ProcHandle proc)
void setDepMatrix4Globals (IRSymHandle, IRSymHandle, ProcHandle)
bool isPathThruOtherProcs (IRSymHandle, IRSymHandle, ProcHandle)
bool isOutgoingToOtherProcs (IRSymHandle, ProcHandle)
bool isIncomingFromOtherProcs (IRSymHandle, ProcHandle)
void findOutgoingNodes (IRSymHandle, ProcHandle, std::set< IRSymHandle > &)
void findIncomingNodes (IRSymHandle, ProcHandle, std::set< IRSymHandle > &)
bool hasEdgesToOtherProc (IRSymHandle ish, ProcHandle proc)
bool hasEdgesFromOtherProc (IRSymHandle ish, ProcHandle proc)

Private Attributes

OA_ptr< DUGIRInterfacemIR
OA_ptr
< Activity::ActivityIRInterface
mActIR
OA_ptr< DUGStandardmDUG
OA_ptr< DataFlow::ParamBindingsmParamBind
std::map< ProcHandle, std::map
< SymHandle, std::map
< SymHandle, bool > > > 
mProcToMatrix
std::map< ProcHandle, std::set
< SymHandle > > 
mProcToSymSet
std::map< EdgeType, std::map
< SymHandle, std::map
< SymHandle, bool > > > 
mMatrix
std::map< ProcHandle, std::set
< CallHandle > > 
mProcToCallsiteSet
std::map< ProcHandle, std::set
< SymHandle > > 
mProcToFormalSet
std::map< CallHandle, std::map
< SymHandle, std::set
< SymHandle > > > 
mFormalToActualMap
std::map< CallHandle, ProcHandlemCallsiteToProc
std::set< ProcHandlemProcsOfInterest
std::map< ProcHandle, OA_ptr
< UDDUChains::UDDUChainsStandard > > & 
mProcToUDDUChainsMap
std::map< ProcHandle, std::map
< IRSymHandle, std::map
< IRSymHandle, bool > > > 
mProcToMatrix
std::map< ProcHandle, std::set
< IRSymHandle > > 
mProcToIRSymSet
std::map< EdgeType, std::map
< IRSymHandle, std::map
< IRSymHandle, bool > > > 
mMatrix
std::map< CallHandle, std::map
< IRSymHandle, std::set
< IRSymHandle > > > 
mFormalToActualMap
std::map< CallHandle, std::map
< SymHandle, std::set
< SymHandle > > > 
mParamMap
std::map< StmtHandle, std::set
< SymHandle > > 
mCallByRefActuals
std::set< StmtHandlemCallInfoReady
std::set< StmtHandlemDefsUsesCollected
std::map< StmtHandle, std::set
< SymHandle > > 
mStmtToUsedSyms
std::map< StmtHandle, std::set
< SymHandle > > 
mStmtToDefdSyms
std::map< StmtHandle, std::set
< SymHandle > > 
mStmtToCallDefdSyms
std::set< SymHandlemGlobals
std::map< SymHandle, std::set
< GlobalNode > > 
mGlobalUpUses
std::map< SymHandle, std::set
< GlobalNode > > 
mGlobalDnDefs

Detailed Description

The AnnotationManager for DUGStandard. This class can build an DUGStandard, (eventually) read one in from a file, and write one out to a file.

Definition at line 50 of file CSFIActivity/ManagerDUGStandard.hpp.


Constructor & Destructor Documentation

OA::DUG::ManagerDUGStandard::ManagerDUGStandard ( OA_ptr< DUGIRInterface _ir,
OA_ptr< Activity::ActivityIRInterface _air 
)

Definition at line 67 of file CSFIActivity/ManagerDUGStandard.cpp.

OA::DUG::ManagerDUGStandard::~ManagerDUGStandard (  )  [inline]

Definition at line 54 of file CSFIActivity/ManagerDUGStandard.hpp.

OA::DUG::ManagerDUGStandard::ManagerDUGStandard ( OA_ptr< DUGIRInterface _ir,
OA_ptr< Activity::ActivityIRInterface _air,
std::map< ProcHandle, OA_ptr< UDDUChains::UDDUChainsStandard > > &  ProcToUDDUChainsMap 
)

Definition at line 67 of file CSFSActivity/ManagerDUGStandard.cpp.

OA::DUG::ManagerDUGStandard::~ManagerDUGStandard (  )  [inline]

Definition at line 96 of file CSFSActivity/ManagerDUGStandard.hpp.


Member Function Documentation

void OA::DUG::ManagerDUGStandard::collectDefsUsesInStmt ( StmtHandle  stmt,
ProcHandle  proc 
) [private]

Definition at line 544 of file CSFSActivity/ManagerDUGStandard.cpp.

References getSymFromMRE(), OA::IRHandle::hval(), mGlobals, mIR, mStmtToDefdSyms, and mStmtToUsedSyms.

Referenced by getDefs(), and getUses().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::collectDependentSyms ( ProcHandle   )  [private]
void OA::DUG::ManagerDUGStandard::collectDependentSyms ( ProcHandle  proc  )  [private]

collect dependent variables

Definition at line 280 of file CSFIActivity/ManagerDUGStandard.cpp.

References OA::OA_ptr< T >::convert(), mDUG, mIR, and mProcsOfInterest.

Referenced by performAnalysis().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::collectFormalParameters ( ProcHandle  proc  )  [private]

Definition at line 866 of file CSFSActivity/ManagerDUGStandard.cpp.

References mIR, and mProcToFormalSet.

void OA::DUG::ManagerDUGStandard::collectIndependentSyms ( ProcHandle   )  [private]
void OA::DUG::ManagerDUGStandard::collectIndependentSyms ( ProcHandle  proc  )  [private]

collect independent variables

Definition at line 245 of file CSFIActivity/ManagerDUGStandard.cpp.

References OA::OA_ptr< T >::convert(), mDUG, mIR, and mProcsOfInterest.

Referenced by performAnalysis().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::connectGlobals (  ) 

Connect global variable nodes

Definition at line 825 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, insertEdge(), mDUG, mGlobalDnDefs, mGlobalUpUses, and mIR.

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::downwardExposedDefs ( SymHandle  def,
StmtHandle  stmt,
ProcHandle  proc,
OA_ptr< UDDUChains::UDDUChainsStandard UDDUChainForProc 
) [private]

Definition at line 693 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, OA::IRHandle::hval(), insertEdge(), isFormal(), isGlobal(), mGlobalDnDefs, and mIR.

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::edgesBetweenActuals ( ProcHandle  proc  )  [private]
void OA::DUG::ManagerDUGStandard::edgesBetweenFormals ( ProcHandle  proc  )  [private]

This makes edges between formal parameters.

Definition at line 1221 of file CSFSActivity/ManagerDUGStandard.cpp.

References hasEdgesFromOtherProc(), hasEdgesToOtherProc(), insertEdge(), isPathThruOtherProcs(), mCallsiteToProc, mFormalToActualMap, mIR, mProcToCallsiteSet, mProcToFormalSet, mProcToMatrix, OA::DUG::PARAM_EDGE, and setDepMatrix().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::findIncomingNodes ( IRSymHandle  ish,
ProcHandle  proc,
std::set< IRSymHandle > &  IncomingNodeSet 
) [private]

returns a set of nodes of 'proc' that have incoming edges for other procedures

Definition at line 987 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

void OA::DUG::ManagerDUGStandard::findOutgoingNodes ( IRSymHandle  ish,
ProcHandle  proc,
std::set< IRSymHandle > &  OutGoingNodeSet 
) [private]

returns a set of nodes of 'proc' that have outgoing edges for other procedures

Definition at line 969 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

std::set< SymHandle > & OA::DUG::ManagerDUGStandard::getCallDefs ( StmtHandle  stmt,
ProcHandle  proc 
) [private]

Definition at line 634 of file CSFSActivity/ManagerDUGStandard.cpp.

References getCallInfo(), OA::IRHandle::hval(), mCallByRefActuals, and mCallInfoReady.

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::getCallInfo ( StmtHandle  stmt,
ProcHandle  proc 
) [private]
std::set< SymHandle > & OA::DUG::ManagerDUGStandard::getDefs ( StmtHandle  stmt,
ProcHandle  proc 
) [private]

Definition at line 614 of file CSFSActivity/ManagerDUGStandard.cpp.

References collectDefsUsesInStmt(), OA::IRHandle::hval(), mDefsUsesCollected, and mStmtToDefdSyms.

Here is the call graph for this function:

SymHandle OA::DUG::ManagerDUGStandard::getModSymFromMRE ( OA_ptr< OA::MemRefExpr mre  )  [private]

Definition at line 479 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::OA_ptr< T >::convert(), mIR, and OA::DUG::whatIsIt().

Here is the call graph for this function:

SymHandle OA::DUG::ManagerDUGStandard::getSymFromMRE ( OA_ptr< OA::MemRefExpr mre  )  [private]

Definition at line 507 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::OA_ptr< T >::convert(), mIR, and OA::DUG::whatIsIt().

Referenced by collectDefsUsesInStmt(), and getCallInfo().

Here is the call graph for this function:

std::set< SymHandle > & OA::DUG::ManagerDUGStandard::getUses ( StmtHandle  stmt,
ProcHandle  proc 
) [private]

Definition at line 595 of file CSFSActivity/ManagerDUGStandard.cpp.

References collectDefsUsesInStmt(), OA::IRHandle::hval(), mDefsUsesCollected, and mStmtToUsedSyms.

Referenced by upwardExposedUses().

Here is the call graph for this function:

bool OA::DUG::ManagerDUGStandard::hasEdgesFromOtherProc ( SymHandle  sym,
ProcHandle  proc 
) [private]

Definition at line 600 of file CSFIActivity/ManagerDUGStandard.cpp.

References mDUG.

Referenced by edgesBetweenActuals(), and edgesBetweenFormals().

bool OA::DUG::ManagerDUGStandard::hasEdgesFromOtherProc ( IRSymHandle  ish,
ProcHandle  proc 
) [private]

Definition at line 1015 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

bool OA::DUG::ManagerDUGStandard::hasEdgesToOtherProc ( SymHandle  sym,
ProcHandle  proc 
) [private]

Definition at line 586 of file CSFIActivity/ManagerDUGStandard.cpp.

References mDUG.

Referenced by edgesBetweenActuals(), and edgesBetweenFormals().

bool OA::DUG::ManagerDUGStandard::hasEdgesToOtherProc ( IRSymHandle  ish,
ProcHandle  proc 
) [private]

Definition at line 1001 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

void OA::DUG::ManagerDUGStandard::insertEdge ( IRSymHandle  from,
IRSymHandle  to,
EdgeType  etype,
CallHandle  expr,
ProcHandle  fromProc,
ProcHandle  toProc,
ProcHandle  proc 
) [private]

Creates a DUG for the program

Definition at line 134 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, mDUG, mIR, mMatrix, OA::DUG::PARAM_EDGE, printEdge(), printIRSymHandle(), and setDepMatrix().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::insertEdge ( SymHandle  from,
SymHandle  to,
EdgeType  etype,
CallHandle  expr,
ProcHandle  fromProc,
ProcHandle  toProc,
ProcHandle  proc 
) [private]
bool OA::DUG::ManagerDUGStandard::isFormal ( SymHandle  sym,
ProcHandle  proc 
) [inline, private]

Definition at line 114 of file CSFSActivity/ManagerDUGStandard.hpp.

References mProcToFormalSet.

Referenced by downwardExposedDefs(), and upwardExposedUses().

bool OA::DUG::ManagerDUGStandard::isGlobal ( SymHandle  sym  )  [inline, private]

Definition at line 111 of file CSFSActivity/ManagerDUGStandard.hpp.

References mGlobals.

Referenced by downwardExposedDefs(), and upwardExposedUses().

bool OA::DUG::ManagerDUGStandard::isIncomingFromOtherProcs ( IRSymHandle  ish,
ProcHandle  proc 
) [private]

'true' if 'ish(IR SymHandle)' has an incoming edge for other procedures and an outgoing edge for this procedure: I.e., 'true' if ish is defined outside and used inside

Definition at line 1071 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

bool OA::DUG::ManagerDUGStandard::isIncomingFromOtherProcs ( SymHandle  sym,
ProcHandle  proc 
) [private]

'true' if 'sym' has an incoming edge for other procedures and an outgoing edge for this procedure: I.e., 'true' if sym is defined outside and used inside

Definition at line 658 of file CSFIActivity/ManagerDUGStandard.cpp.

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

Referenced by setDepMatrix4Globals().

bool OA::DUG::ManagerDUGStandard::isLocal ( SymHandle  sym,
ProcHandle  proc 
) [private]

Definition at line 770 of file CSFIActivity/ManagerDUGStandard.cpp.

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

Referenced by transitiveClosure().

Here is the call graph for this function:

bool OA::DUG::ManagerDUGStandard::isOutgoingToOtherProcs ( IRSymHandle  ish,
ProcHandle  proc 
) [private]

'true' if 'ish(IR SymHandle)' has an outgoing edge to other procedure 'true' if 'ish' is defined inside and used outside.

Definition at line 1032 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

bool OA::DUG::ManagerDUGStandard::isOutgoingToOtherProcs ( SymHandle  sym,
ProcHandle  proc 
) [private]

'true' if 'sym' has an outgoing edge to other procedure 'true' if 'sym' is defined inside and used outside.

Definition at line 618 of file CSFIActivity/ManagerDUGStandard.cpp.

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

Referenced by setDepMatrix4Globals().

bool OA::DUG::ManagerDUGStandard::isPathThruOtherProcs ( IRSymHandle  use,
IRSymHandle  def,
ProcHandle  proc 
) [private]

'true' if there is a path from 'use' to 'def' through other procedures than 'proc'. We traverse the VDG backward from 'def'.

Definition at line 1109 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG.

bool OA::DUG::ManagerDUGStandard::isPathThruOtherProcs ( SymHandle  use,
SymHandle  def,
ProcHandle  proc 
) [private]

'true' if there is a path from 'use' to 'def' through other procedures than 'proc'. We traverse the VDG backward from 'def'.

Definition at line 697 of file CSFIActivity/ManagerDUGStandard.cpp.

References mDUG.

Referenced by edgesBetweenActuals(), edgesBetweenFormals(), and setDepMatrix4Globals().

void OA::DUG::ManagerDUGStandard::labelCallRetEdges ( StmtHandle  stmt,
ProcHandle  proc 
) [private]
void OA::DUG::ManagerDUGStandard::labelCallRetEdges ( StmtHandle  ,
ProcHandle   
) [private]
void OA::DUG::ManagerDUGStandard::labelUseDefEdges ( StmtHandle  ,
ProcHandle   
) [private]
void OA::DUG::ManagerDUGStandard::labelUseDefEdges ( StmtHandle  stmt,
ProcHandle  proc 
) [private]

Definition at line 312 of file CSFIActivity/ManagerDUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, OA::OA_ptr< T >::convert(), insertEdge(), mDUG, mIR, and setDepMatrix().

Referenced by performAnalysis().

Here is the call graph for this function:

OA_ptr<DUGStandard> OA::DUG::ManagerDUGStandard::performAnalysis ( OA_ptr< IRProcIterator ,
OA_ptr< DataFlow::ParamBindings ,
OA_ptr< OA::CallGraph::CallGraphInterface  
)
OA_ptr< DUGStandard > OA::DUG::ManagerDUGStandard::performAnalysis ( OA_ptr< IRProcIterator procIter,
OA_ptr< DataFlow::ParamBindings paramBind,
OA_ptr< OA::CallGraph::CallGraphInterface cgraph 
)

Creates a DUG for the program

Definition at line 512 of file CSFIActivity/ManagerDUGStandard.cpp.

References collectDependentSyms(), collectIndependentSyms(), OA::DGraph::DEdgeOrg, labelCallRetEdges(), labelUseDefEdges(), mDUG, mIR, mParamBind, mProcsOfInterest, and stmt_has_call().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::printEdge ( IRSymHandle  from,
IRSymHandle  to,
EdgeType  edgeType 
)

Definition at line 111 of file CSFSActivity/ManagerDUGStandard.cpp.

References mIR, printIRSymHandle(), and OA::DUG::sEdgeTypeToString.

Referenced by insertEdge().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::printEdgeDot ( IRSymHandle  from,
ProcHandle  fromProc,
IRSymHandle  to,
ProcHandle  toProc 
)

Definition at line 733 of file CSFSActivity/ManagerDUGStandard.cpp.

References mDUG, and mIR.

void OA::DUG::ManagerDUGStandard::printIRSymHandle ( IRSymHandle  ish,
ostream &  os,
OA_ptr< DUGIRInterface ir 
)

Definition at line 99 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::IRHandle::hval().

Referenced by insertEdge(), printEdge(), and setDepMatrix().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::setDepMatrix ( ProcHandle  proc,
SymHandle  use,
SymHandle  def 
) [private]

Set the dependence matrix entry to 'true'

Definition at line 564 of file CSFIActivity/ManagerDUGStandard.cpp.

References mDUG, mIR, mProcToMatrix, and mProcToSymSet.

Referenced by edgesBetweenActuals(), edgesBetweenFormals(), insertEdge(), and labelUseDefEdges().

void OA::DUG::ManagerDUGStandard::setDepMatrix ( ProcHandle  proc,
IRSymHandle  use,
IRSymHandle  def 
) [private]

Set the dependence matrix entry to 'true'

Definition at line 943 of file CSFSActivity/ManagerDUGStandard.cpp.

References mIR, mProcToIRSymSet, mProcToMatrix, and printIRSymHandle().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::setDepMatrix4Globals ( SymHandle  use,
SymHandle  def,
ProcHandle  proc 
) [private]

For two global variables 'use' and 'def', there can be a value flow through other procedures. The dependence matrix entry for 'use' and 'def' is set to 'true' if there is a path from 'use' to 'def' in the VDG.

Definition at line 717 of file CSFIActivity/ManagerDUGStandard.cpp.

References isIncomingFromOtherProcs(), isOutgoingToOtherProcs(), isPathThruOtherProcs(), mIR, and mProcToMatrix.

Referenced by transitiveClosure().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::setDepMatrix4Globals ( IRSymHandle  use,
IRSymHandle  def,
ProcHandle  proc 
) [private]

For two global variables 'use' and 'def', there can be a value flow through other procedures. The dependence matrix entry for 'use' and 'def' is set to 'true' if there is a path from 'use' to 'def' in the VDG.

Definition at line 1129 of file CSFSActivity/ManagerDUGStandard.cpp.

References isIncomingFromOtherProcs(), isOutgoingToOtherProcs(), isPathThruOtherProcs(), mIR, and mProcToMatrix.

Here is the call graph for this function:

bool OA::DUG::ManagerDUGStandard::stmt_has_call ( StmtHandle  stmt  )  [private]

Definition at line 74 of file CSFIActivity/ManagerDUGStandard.cpp.

References OA::debug, and mIR.

Referenced by performAnalysis().

bool OA::DUG::ManagerDUGStandard::stmt_has_call ( StmtHandle  stmt  )  [private]
void OA::DUG::ManagerDUGStandard::transitiveClosure ( ProcHandle  proc  )  [private]
void OA::DUG::ManagerDUGStandard::transitiveClosure ( ProcHandle  proc  )  [private]

Warshall's transitive closure algorithm on the dependence matrix of one procedure. This makes edges between formal parameters too.

Definition at line 783 of file CSFIActivity/ManagerDUGStandard.cpp.

References isLocal(), mIR, mProcToMatrix, mProcToSymSet, and setDepMatrix4Globals().

Referenced by transitiveClosureDepMatrix().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::transitiveClosureDepMatrix ( OA_ptr< OA::CallGraph::CallGraphInterface  ) 
void OA::DUG::ManagerDUGStandard::transitiveClosureDepMatrix ( OA_ptr< OA::CallGraph::CallGraphInterface cgraph  ) 

Warshall's transitive closure algorithm on the dependence matrix

Definition at line 749 of file CSFIActivity/ManagerDUGStandard.cpp.

References OA::DGraph::DEdgeRev, edgesBetweenActuals(), and transitiveClosure().

Here is the call graph for this function:

void OA::DUG::ManagerDUGStandard::upwardExposedUses ( SymHandle  def,
StmtHandle  stmt,
ProcHandle  proc,
OA_ptr< UDDUChains::UDDUChainsStandard UDDUChainForProc 
) [private]

Definition at line 653 of file CSFSActivity/ManagerDUGStandard.cpp.

References OA::DUG::CFLOW_EDGE, getUses(), OA::IRHandle::hval(), insertEdge(), isFormal(), isGlobal(), and mGlobalUpUses.

Here is the call graph for this function:


Member Data Documentation

Definition at line 87 of file CSFIActivity/ManagerDUGStandard.hpp.

Definition at line 178 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by getCallDefs(), and getCallInfo().

Definition at line 179 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by getCallDefs(), and getCallInfo().

Definition at line 186 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by getDefs(), and getUses().

Definition at line 172 of file CSFSActivity/ManagerDUGStandard.hpp.

Definition at line 198 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by connectGlobals(), and downwardExposedDefs().

Definition at line 194 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by collectDefsUsesInStmt(), and isGlobal().

Definition at line 197 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by connectGlobals(), and upwardExposedUses().

std::map<EdgeType,std::map<IRSymHandle,std::map<IRSymHandle,bool> > > OA::DUG::ManagerDUGStandard::mMatrix [private]

Definition at line 163 of file CSFSActivity/ManagerDUGStandard.hpp.

std::map<EdgeType, std::map<SymHandle, std::map<SymHandle, bool> > > OA::DUG::ManagerDUGStandard::mMatrix [private]

Definition at line 98 of file CSFIActivity/ManagerDUGStandard.hpp.

Referenced by insertEdge().

Definition at line 89 of file CSFIActivity/ManagerDUGStandard.hpp.

Referenced by performAnalysis().

std::map<CallHandle, std::map<SymHandle, std::set<SymHandle> > > OA::DUG::ManagerDUGStandard::mParamMap [private]

Definition at line 176 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by getCallInfo().

Definition at line 160 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by setDepMatrix().

std::map<ProcHandle,std::map<IRSymHandle, std::map<IRSymHandle, bool> > > OA::DUG::ManagerDUGStandard::mProcToMatrix [private]

Definition at line 159 of file CSFSActivity/ManagerDUGStandard.hpp.

std::map<ProcHandle, std::map<SymHandle, std::map<SymHandle, bool> > > OA::DUG::ManagerDUGStandard::mProcToMatrix [private]

Definition at line 95 of file CSFIActivity/ManagerDUGStandard.hpp.

Referenced by setDepMatrix(), and transitiveClosure().

Definition at line 155 of file CSFSActivity/ManagerDUGStandard.hpp.

Definition at line 192 of file CSFSActivity/ManagerDUGStandard.hpp.

Definition at line 190 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by collectDefsUsesInStmt(), and getDefs().

Definition at line 188 of file CSFSActivity/ManagerDUGStandard.hpp.

Referenced by collectDefsUsesInStmt(), and getUses().


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