OpenADFortTk (including Open64 and OpenAnalysis references)
|
#include <MemRefExpr.hpp>
Public Types | |
enum | MemRefType { USE, DEF, USEDEF, DEFUSE } |
Public Member Functions | |
MemRefExpr (MemRefType mrType) | |
MemRefExpr (MemRefExpr &mre) | |
copy constructor More... | |
virtual | ~MemRefExpr () |
virtual void | acceptVisitor (MemRefExprVisitor &pVisitor)=0 |
virtual OA_ptr< MemRefExpr > | clone ()=0 |
virtual bool | isaNamed () |
virtual bool | isaUnnamed () |
virtual bool | isaUnknown () |
virtual bool | isaRefOp () |
virtual bool | isaDeref () |
virtual bool | isaAddressOf () |
virtual bool | isaSubSetRef () |
virtual bool | isaIdxAccess () |
virtual bool | isaIdxExprAccess () |
virtual bool | isaFieldAccess () |
MemRefType | getMRType () |
whether USE/DEF MemRefExpr More... | |
bool | isDef () |
is this a def mem ref More... | |
bool | isUse () |
is this a use mem ref More... | |
bool | isDefUse () |
is this a defuse mem ref More... | |
bool | isUseDef () |
is this a usedef mem ref More... | |
void | setMemRefType (MemRefExpr::MemRefType mrType) |
specify the memory reference type More... | |
virtual bool | operator< (MemRefExpr &other) |
an ordering for locations, needed for use within STL containers More... | |
virtual bool | operator== (MemRefExpr &other) |
bool | operator!= (MemRefExpr &other) |
void | output (IRHandlesIRInterface &ir) |
virtual std::string | typeString () |
std::string | toString (MemRefType) |
virtual void | dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > pIR) |
virtual void | dump (std::ostream &os, IRHandlesIRInterface &pIR) |
virtual void | dump (std::ostream &os) |
virtual int | getOrder () |
Public Member Functions inherited from OA::Annotation | |
Annotation () | |
virtual | ~Annotation () |
Private Attributes | |
MemRefType | mMemRefType |
Static Private Attributes | |
static const int | sOrder = -100 |
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< OutputBuilder > | sOutBuild |
abstract base class that has default implementations for the methods that all MemRefExpr's must provide
Definition at line 76 of file MemRefExpr.hpp.
Enumerator | |
---|---|
USE | |
DEF | |
USEDEF | |
DEFUSE |
Definition at line 78 of file MemRefExpr.hpp.
|
inline |
Definition at line 87 of file MemRefExpr.hpp.
|
inline |
copy constructor
Definition at line 90 of file MemRefExpr.hpp.
|
inlinevirtual |
Definition at line 92 of file MemRefExpr.hpp.
|
pure virtual |
Implemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Referenced by Open64IRInterface::getUseMREs(), OA::Alias::ManagerFIAlias::initMemRefExprs(), NotationGenerator::outputMemRefExpr(), OA::DataFlow::ManagerParamBindings::performAnalysis(), OA::Alias::ManagerSymAliasSetsBottom::performAnalysis(), OA::Alias::ManagerAliasMapBasic::performAnalysis(), Open64IRInterface::FindUseMREVisitor::visitAddressOf(), Open64IRInterface::FindUseMREVisitor::visitDeref(), and Open64IRInterface::FindUseMREVisitor::visitSubSetRef().
|
pure virtual |
Implemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Referenced by Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), OA::Alias::EquivSets::getMayLocs(), OA::Alias::AliasMap::getMayLocs(), and OA::Alias::AliasMap::getMustLocs().
|
virtual |
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 55 of file MemRefExpr.cpp.
Referenced by dump(), OA::NamedRef::dump(), OA::UnnamedRef::dump(), OA::UnknownRef::dump(), OA::AddressOf::dump(), OA::Deref::dump(), OA::SubSetRef::dump(), OA::IdxAccess::dump(), OA::IdxExprAccess::dump(), OA::FieldAccess::dump(), main(), OA::Alias::ManagerNoAddressOf::performAnalysis(), OA::Alias::ManagerSymAliasSetsBottom::performAnalysis(), and OA::Alias::ManagerAliasMapBasic::performAnalysis().
|
virtual |
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 49 of file MemRefExpr.cpp.
References dump().
|
virtual |
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 60 of file MemRefExpr.cpp.
References mMemRefType, and toString().
|
inline |
whether USE/DEF MemRefExpr
Definition at line 120 of file MemRefExpr.hpp.
References mMemRefType.
Referenced by OA::AddressOf::composeWith(), OA::Deref::composeWith(), OA::DataFlow::ConstructMREVisitor::visitDeref(), Open64IRInterface::FindUseMREVisitor::visitDeref(), Open64IRInterface::FindUseMREVisitor::visitNamedRef(), Open64IRInterface::FindUseMREVisitor::visitSubSetRef(), Open64IRInterface::FindUseMREVisitor::visitUnknownRef(), and Open64IRInterface::FindUseMREVisitor::visitUnnamedRef().
|
inlinevirtual |
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 174 of file MemRefExpr.hpp.
References sOrder.
Referenced by operator<(), OA::NamedRef::operator<(), OA::UnnamedRef::operator<(), OA::UnknownRef::operator<(), OA::AddressOf::operator<(), OA::Deref::operator<(), OA::SubSetRef::operator<(), OA::IdxAccess::operator<(), OA::IdxExprAccess::operator<(), OA::FieldAccess::operator<(), operator==(), OA::NamedRef::operator==(), OA::UnnamedRef::operator==(), OA::UnknownRef::operator==(), OA::AddressOf::operator==(), OA::Deref::operator==(), OA::SubSetRef::operator==(), OA::IdxAccess::operator==(), OA::IdxExprAccess::operator==(), and OA::FieldAccess::operator==().
|
inlinevirtual |
Reimplemented in OA::AddressOf.
Definition at line 108 of file MemRefExpr.hpp.
Referenced by Open64IRInterface::getDefMemRefs(), Open64IRInterface::getDefMREs(), Open64IRInterface::getDiffUseMREs(), Open64IRInterface::getParamBindPtrAssignIterator(), Open64IRInterface::getUseMemRefs(), and OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::Deref.
Definition at line 107 of file MemRefExpr.hpp.
Referenced by OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::FieldAccess.
Definition at line 113 of file MemRefExpr.hpp.
Referenced by OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::IdxAccess.
Definition at line 111 of file MemRefExpr.hpp.
Referenced by OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::IdxExprAccess.
Definition at line 112 of file MemRefExpr.hpp.
Referenced by OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::NamedRef.
Definition at line 102 of file MemRefExpr.hpp.
Referenced by Open64IRInterface::getParamBindPtrAssignIterator(), OA::DUG::ManagerDUGStandard::getSymFromMRE(), OA::DUG::ManagerDUGStandard::labelCallRetEdges(), OA::DUG::ManagerDUGStandard::labelUseDefEdges(), and OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::RefOp.
Definition at line 105 of file MemRefExpr.hpp.
Referenced by OA::Alias::ManagerFIAliasAliasMap::buildAliasMaps(), OA::Alias::ManagerFIAliasEquivSets::buildEquivSets(), Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), Open64IRInterface::getDefMemRefs(), Open64IRInterface::getDefMREs(), Open64IRInterface::getDiffUseMREs(), OA::DUG::ManagerDUGStandard::getModSymFromMRE(), Open64IRInterface::getParamBindPtrAssignIterator(), OA::DUG::ManagerDUGStandard::getSymFromMRE(), Open64IRInterface::getUseMemRefs(), OA::DUG::ManagerDUGStandard::labelCallRetEdges(), OA::DUG::ManagerDUGStandard::labelUseDefEdges(), OA::Alias::ManagerAliasMapBasic::performAnalysis(), and OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::SubSetRef.
Definition at line 110 of file MemRefExpr.hpp.
Referenced by Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), and OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::UnknownRef.
Definition at line 104 of file MemRefExpr.hpp.
Referenced by OA::DUG::whatIsIt().
|
inlinevirtual |
Reimplemented in OA::UnnamedRef.
Definition at line 103 of file MemRefExpr.hpp.
Referenced by Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), and OA::DUG::whatIsIt().
|
inline |
is this a def mem ref
Definition at line 123 of file MemRefExpr.hpp.
References DEF, DEFUSE, mMemRefType, and USEDEF.
Referenced by OA::DUG::ManagerDUGStandard::collectDefsUsesInStmt(), Open64IRInterface::getDefMemRefs(), Open64IRInterface::getDefMREs(), and NotationGenerator::outputMemRefType().
|
inline |
is this a defuse mem ref
Definition at line 131 of file MemRefExpr.hpp.
References DEFUSE, and mMemRefType.
Referenced by NotationGenerator::outputMemRefType().
|
inline |
is this a use mem ref
Definition at line 127 of file MemRefExpr.hpp.
References DEFUSE, mMemRefType, USE, and USEDEF.
Referenced by OA::DUG::ManagerDUGStandard::collectDefsUsesInStmt(), Open64IRInterface::getDiffUseMREs(), Open64IRInterface::getUseMemRefs(), and NotationGenerator::outputMemRefType().
|
inline |
is this a usedef mem ref
Definition at line 134 of file MemRefExpr.hpp.
References mMemRefType, and USEDEF.
Referenced by NotationGenerator::outputMemRefType().
|
inline |
check if two memory references are not equal at the level of accuracy provided by the MemRefExpr approximation
Definition at line 156 of file MemRefExpr.hpp.
|
virtual |
an ordering for locations, needed for use within STL containers
Need consistent ordering.
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 30 of file MemRefExpr.cpp.
References getOrder().
|
virtual |
check if two memory references are equal at the level of accuracy provided by the MemRefExpr approximation
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 37 of file MemRefExpr.cpp.
References getOrder().
|
virtual |
Implements OA::Annotation.
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::RefOp, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 44 of file MemRefExpr.cpp.
References mMemRefType, OA::Annotation::sOutBuild, and toString().
Referenced by OA::Alias::ManagerFIAliasAliasMap::buildAliasMaps(), whirl2xaif::PUXlationContext::isActiveSym(), main(), OA::NamedRef::output(), OA::UnnamedRef::output(), OA::UnknownRef::output(), OA::RefOp::output(), OA::DataFlow::ManagerParamBindings::performAnalysis(), and OA::DataFlow::CalleeToCallerVisitor::visitInvisibleLoc().
|
inline |
specify the memory reference type
Definition at line 141 of file MemRefExpr.hpp.
References mMemRefType.
Referenced by Open64IRInterface::findAllMemRefsAndMapToMemRefExprs().
std::string OA::MemRefExpr::toString | ( | MemRefType | type) |
Definition at line 66 of file MemRefExpr.cpp.
References DEF, DEFUSE, mMemRefType, USE, and USEDEF.
|
inlinevirtual |
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, OA::AddressOf, OA::RefOp, OA::UnknownRef, OA::UnnamedRef, and OA::NamedRef.
Definition at line 164 of file MemRefExpr.hpp.
|
private |
Definition at line 178 of file MemRefExpr.hpp.
Referenced by dump(), getMRType(), isDef(), isDefUse(), isUse(), isUseDef(), output(), setMemRefType(), and toString().
|
staticprivate |
Definition at line 177 of file MemRefExpr.hpp.
Referenced by getOrder().