Classes | Public Types | Public Member Functions | Private Attributes

OA::UDDUChains::UDDUChainsStandard Class Reference

#include <UDDUChainsStandard.hpp>

Inheritance diagram for OA::UDDUChains::UDDUChainsStandard:
Inheritance graph
[legend]
Collaboration diagram for OA::UDDUChains::UDDUChainsStandard:
Collaboration graph
[legend]

List of all members.

Classes

class  ChainStmtIterator
class  MemRefsWithUDChainIterator
class  StmtsWithUDChainIterator

Public Types

typedef StmtsWithUDChainIterator StmtsWithDUChainIterator
 has same implementation just different name to indicate semantics
typedef MemRefsWithUDChainIterator MemRefsWithDUChainIterator
 has same implementation just different name to indicate semantics

Public Member Functions

 UDDUChainsStandard (ProcHandle p)
 ~UDDUChainsStandard ()
OA_ptr
< Interface::ChainStmtIterator
getUDChainStmtIterator (StmtHandle s)
OA_ptr
< Interface::StmtsWithUDChainIterator
getStmtsWithUDChainIterator ()
OA_ptr
< Interface::ChainStmtIterator
getDUChainStmtIterator (StmtHandle s)
OA_ptr
< Interface::StmtsWithDUChainIterator
getStmtsWithDUChainIterator ()
OA_ptr
< Interface::ChainStmtIterator
getUDChainStmtIterator (MemRefHandle h)
OA_ptr
< Interface::MemRefsWithUDChainIterator
getMemRefsWithUDChainIterator ()
OA_ptr
< Interface::ChainStmtIterator
getDUChainStmtIterator (MemRefHandle h)
OA_ptr
< Interface::MemRefsWithDUChainIterator
getMemRefsWithDUChainIterator ()
void insertMemRefDef (MemRefHandle ref)
void insertMemRefUse (MemRefHandle ref)
void insertDefUse (StmtHandle def, StmtHandle use)
 insert a define use relationship
void insertMemRefDefStmtUse (MemRefHandle def, StmtHandle use)
void insertStmtDefMemRefUse (StmtHandle def, MemRefHandle use)
void output (IRHandlesIRInterface &pIR)
 insert a mem ref to stmt relationship
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 incomplete output of info for debugging

Private Attributes

OUTPUT GENOUT OA_ptr< std::map
< StmtHandle, OA_ptr< StmtSet > > > 
mUDChainForStmt
GENOUT OA_ptr< std::map
< StmtHandle, OA_ptr< StmtSet > > > 
mDUChainForStmt
GENOUT OA_ptr< std::map
< MemRefHandle, OA_ptr
< StmtSet > > > 
mUDChainForMemRef
GENOUT OA_ptr< std::map
< MemRefHandle, OA_ptr
< StmtSet > > > 
mDUChainForMemRef
GENOUT std::map< MemRefHandle,
StmtHandle
mMemRefToStmtMap

Detailed Description

UD chains map each StmtHandle X to the set of StmtHandle's that may include a define for a use within X. DU chains map each StmtHandle Y to the set of StmtHandle's that may include a use of a define in Y.

Definition at line 44 of file UDDUChainsStandard.hpp.


Member Typedef Documentation

has same implementation just different name to indicate semantics

Definition at line 209 of file UDDUChainsStandard.hpp.

has same implementation just different name to indicate semantics

Definition at line 186 of file UDDUChainsStandard.hpp.


Constructor & Destructor Documentation

OA::UDDUChains::UDDUChainsStandard::UDDUChainsStandard ( ProcHandle  p  )  [inline]
OA::UDDUChains::UDDUChainsStandard::~UDDUChainsStandard (  )  [inline]

Definition at line 54 of file UDDUChainsStandard.hpp.


Member Function Documentation

void OA::UDDUChains::UDDUChainsStandard::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)

incomplete output of info for debugging

Definition at line 177 of file UDDUChainsStandard.cpp.

References getDUChainStmtIterator(), getMemRefsWithDUChainIterator(), getMemRefsWithUDChainIterator(), getStmtsWithDUChainIterator(), getStmtsWithUDChainIterator(), getUDChainStmtIterator(), and OA::IRHandle::hval().

Here is the call graph for this function:

OA_ptr< Interface::ChainStmtIterator > OA::UDDUChains::UDDUChainsStandard::getDUChainStmtIterator ( StmtHandle  s  ) 

Return an iterator over all statements in this procedure that may use a location defined in the given statement

Definition at line 45 of file UDDUChainsStandard.cpp.

Referenced by dump(), and output().

OA_ptr< Interface::ChainStmtIterator > OA::UDDUChains::UDDUChainsStandard::getDUChainStmtIterator ( MemRefHandle  h  ) 

Return an iterator over all statements in this procedure that may use a location defined by the given memory reference

Definition at line 96 of file UDDUChainsStandard.cpp.

OA_ptr< Interface::MemRefsWithDUChainIterator > OA::UDDUChains::UDDUChainsStandard::getMemRefsWithDUChainIterator (  ) 

Return an iterator over all memory references for which DUChain info is available

Return an iterator over all memrefs for which UDChain info is available

Definition at line 111 of file UDDUChainsStandard.cpp.

Referenced by dump().

OA_ptr< Interface::MemRefsWithUDChainIterator > OA::UDDUChains::UDDUChainsStandard::getMemRefsWithUDChainIterator (  ) 

Return an iterator over all memory references for which UDChain info is available

Definition at line 86 of file UDDUChainsStandard.cpp.

Referenced by dump().

OA_ptr< Interface::StmtsWithDUChainIterator > OA::UDDUChains::UDDUChainsStandard::getStmtsWithDUChainIterator (  ) 

Return an iterator over all statements for which DUChain info is available

Return an iterator over all statements for which UDChain info is available

Definition at line 60 of file UDDUChainsStandard.cpp.

Referenced by dump().

OA_ptr< Interface::StmtsWithUDChainIterator > OA::UDDUChains::UDDUChainsStandard::getStmtsWithUDChainIterator (  ) 

Return an iterator over all statements for which UDChain info is available

Definition at line 35 of file UDDUChainsStandard.cpp.

Referenced by dump().

OA_ptr< Interface::ChainStmtIterator > OA::UDDUChains::UDDUChainsStandard::getUDChainStmtIterator ( StmtHandle  s  ) 

Return StmtHandle for a particular MemRefHandle FIXME: not sure this belongs here, put this in so that ManagerUDDUChainsXAIF does not need an IRInterface Return an iterator over all statements in this procedure that may define a location used in the given statement

Return an iterator over all statements in this procedure that may define a location used in the given statement

Definition at line 20 of file UDDUChainsStandard.cpp.

Referenced by dump(), and output().

OA_ptr< Interface::ChainStmtIterator > OA::UDDUChains::UDDUChainsStandard::getUDChainStmtIterator ( MemRefHandle  h  ) 

Return an iterator over all statements in this procedure that may define a location used by the given memory reference

Definition at line 71 of file UDDUChainsStandard.cpp.

void OA::UDDUChains::UDDUChainsStandard::insertDefUse ( StmtHandle  def,
StmtHandle  use 
)

insert a define use relationship

Definition at line 122 of file UDDUChainsStandard.cpp.

References mDUChainForStmt, and mUDChainForStmt.

void OA::UDDUChains::UDDUChainsStandard::insertMemRefDef ( MemRefHandle  ref  ) 

insert a memref, the memref may end up having an empty chains so must make sure chain is initialized

Definition at line 137 of file UDDUChainsStandard.cpp.

void OA::UDDUChains::UDDUChainsStandard::insertMemRefDefStmtUse ( MemRefHandle  def,
StmtHandle  use 
)

insert a define use relationship with the specific def memory reference

Definition at line 153 of file UDDUChainsStandard.cpp.

void OA::UDDUChains::UDDUChainsStandard::insertMemRefUse ( MemRefHandle  ref  ) 

Definition at line 143 of file UDDUChainsStandard.cpp.

void OA::UDDUChains::UDDUChainsStandard::insertStmtDefMemRefUse ( StmtHandle  def,
MemRefHandle  use 
)

insert a define use relationship with the specific use memory reference

Definition at line 163 of file UDDUChainsStandard.cpp.

void OA::UDDUChains::UDDUChainsStandard::output ( OA::IRHandlesIRInterface ir  )  [virtual]

insert a mem ref to stmt relationship

will use OutputBuilder to generate output

Implements OA::Annotation.

Definition at line 266 of file UDDUChainsStandard.cpp.

References getDUChainStmtIterator(), getUDChainStmtIterator(), mDUChainForMemRef, mDUChainForStmt, mMemRefToStmtMap, mUDChainForMemRef, mUDChainForStmt, and OA::Annotation::sOutBuild.

Here is the call graph for this function:


Member Data Documentation

Definition at line 138 of file UDDUChainsStandard.hpp.

Referenced by output(), and UDDUChainsStandard().

Definition at line 136 of file UDDUChainsStandard.hpp.

Referenced by insertDefUse(), output(), and UDDUChainsStandard().

Definition at line 139 of file UDDUChainsStandard.hpp.

Referenced by output().

Definition at line 137 of file UDDUChainsStandard.hpp.

Referenced by output(), and UDDUChainsStandard().

Definition at line 135 of file UDDUChainsStandard.hpp.

Referenced by insertDefUse(), output(), and UDDUChainsStandard().


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