OpenADFortTk (including Open64 and OpenAnalysis references)
|
#include <MemRefExpr.hpp>
Public Member Functions | |
RefOp (MemRefType mrType, OA_ptr< MemRefExpr > mre) | |
RefOp (RefOp &mre) | |
copy constructor More... | |
virtual | ~RefOp () |
bool | isaRefOp () |
SymHandle | getBaseSym () |
virtual std::string | typeString () |
OA_ptr< MemRefExpr > | getBase () |
OA_ptr< MemRefExpr > | getMemRefExpr () |
Return the MRE that decorating this object. More... | |
virtual OA_ptr< MemRefExpr > | composeWith (OA_ptr< MemRefExpr > mre)=0 |
Will make this Refop wrap the given mre and return the result. More... | |
virtual void | output (IRHandlesIRInterface &ir) |
Public Member Functions inherited from OA::MemRefExpr | |
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 | 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) |
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 | |
OA_ptr< MemRefExpr > | mMRE |
Additional Inherited Members | |
Public Types inherited from OA::MemRefExpr | |
enum | MemRefType { USE, DEF, USEDEF, DEFUSE } |
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 |
The RefOp implements a decorator pattern for memory references. If we decorate a memory reference with a RefOp it represents either a dereference or referencing a subset of a location (eg. field access or array access).
Definition at line 387 of file MemRefExpr.hpp.
|
inline |
Definition at line 390 of file MemRefExpr.hpp.
|
inline |
copy constructor
Definition at line 395 of file MemRefExpr.hpp.
|
inlinevirtual |
Definition at line 397 of file MemRefExpr.hpp.
|
pure virtual |
Will make this Refop wrap the given mre and return the result.
Implemented in OA::SubSetRef, OA::Deref, and OA::AddressOf.
OA_ptr< MemRefExpr > OA::RefOp::getBase | ( | ) |
iterate up through every decorating MRE until we find the base and return it.
Definition at line 339 of file MemRefExpr.cpp.
References OA::OA_ptr< T >::convert(), and mMRE.
SymHandle OA::RefOp::getBaseSym | ( | ) |
iterate up every decorating MRE until we find the base, then return the symbol handle for this base.
Definition at line 323 of file MemRefExpr.cpp.
References OA::OA_ptr< T >::convert(), OA::NamedRef::getSymHandle(), and mMRE.
|
inline |
Return the MRE that decorating this object.
Definition at line 418 of file MemRefExpr.hpp.
References mMRE.
Referenced by OA::AddressOf::dump(), OA::Deref::dump(), OA::SubSetRef::dump(), OA::IdxAccess::dump(), OA::IdxExprAccess::dump(), OA::FieldAccess::dump(), Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), OA::AddressOf::operator<(), OA::Deref::operator<(), OA::SubSetRef::operator<(), OA::IdxAccess::operator<(), OA::IdxExprAccess::operator<(), OA::FieldAccess::operator<(), OA::AddressOf::operator==(), OA::Deref::operator==(), OA::SubSetRef::operator==(), OA::IdxAccess::operator==(), OA::IdxExprAccess::operator==(), OA::FieldAccess::operator==(), NotationGenerator::outputMemRefExpr(), OA::equivalentMREsVisitor::visitAddressOf(), OA::DataFlow::ConstructMREVisitor::visitAddressOf(), Open64IRInterface::FindUseMREVisitor::visitAddressOf(), OA::Alias::RecordMREsVisitor::visitAddressOf(), OA::Alias::SymHandleCollector::visitDeref(), OA::DataFlow::FormalFinderVisitor::visitDeref(), OA::Alias::InvisibleLocationVisitor::visitDeref(), OA::equivalentMREsVisitor::visitDeref(), OA::Alias::VisibleBaseVisitor::visitDeref(), OA::DataFlow::ConstructMREVisitor::visitDeref(), Open64IRInterface::FindUseMREVisitor::visitDeref(), OA::Alias::RecordMREsVisitor::visitDeref(), OA::Alias::FixedLocationVisitor::visitFieldAccess(), OA::Alias::InvisibleLocationVisitor::visitFieldAccess(), OA::Alias::OuterRefOpVisitor::visitFieldAccess(), OA::Alias::InvisibleLocationVisitor::visitIdxAccess(), OA::Alias::OuterRefOpVisitor::visitIdxAccess(), OA::Alias::InvisibleLocationVisitor::visitIdxExprAccess(), OA::Alias::SymHandleCollector::visitSubSetRef(), OA::DUG::CreateLocationVisitor::visitSubSetRef(), OA::Alias::FixedLocationVisitor::visitSubSetRef(), OA::Alias::CreateLocationVisitor::visitSubSetRef(), OA::DataFlow::FormalFinderVisitor::visitSubSetRef(), OA::Alias::InvisibleLocationVisitor::visitSubSetRef(), OA::equivalentMREsVisitor::visitSubSetRef(), OA::Alias::VisibleBaseVisitor::visitSubSetRef(), OA::DataFlow::ConstructMREVisitor::visitSubSetRef(), Open64IRInterface::FindUseMREVisitor::visitSubSetRef(), and OA::Alias::RecordMREsVisitor::visitSubSetRef().
|
inlinevirtual |
Reimplemented from OA::MemRefExpr.
Definition at line 402 of file MemRefExpr.hpp.
|
virtual |
Reimplemented from OA::MemRefExpr.
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, and OA::AddressOf.
Definition at line 354 of file MemRefExpr.cpp.
References mMRE, OA::MemRefExpr::output(), and OA::Annotation::sOutBuild.
Referenced by OA::AddressOf::output(), OA::Deref::output(), OA::SubSetRef::output(), OA::IdxAccess::output(), OA::IdxExprAccess::output(), and OA::FieldAccess::output().
|
inlinevirtual |
Reimplemented from OA::MemRefExpr.
Reimplemented in OA::FieldAccess, OA::IdxExprAccess, OA::IdxAccess, OA::SubSetRef, OA::Deref, and OA::AddressOf.
Definition at line 411 of file MemRefExpr.hpp.
|
private |
Definition at line 438 of file MemRefExpr.hpp.
Referenced by getBase(), getBaseSym(), getMemRefExpr(), and output().