#include <MemRefExpr.hpp>


Public Member Functions | |
| RefOp (MemRefType mrType, OA_ptr< MemRefExpr > mre) | |
| RefOp (RefOp &mre) | |
| copy constructor | |
| 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. | |
| virtual OA_ptr< MemRefExpr > | composeWith (OA_ptr< MemRefExpr > mre)=0 |
| Will make this Refop wrap the given mre and return the result. | |
| virtual void | output (IRHandlesIRInterface &ir) |
Private Attributes | |
| OA_ptr< MemRefExpr > | mMRE |
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.
| OA::RefOp::RefOp | ( | MemRefType | mrType, | |
| OA_ptr< MemRefExpr > | mre | |||
| ) | [inline] |
Definition at line 390 of file MemRefExpr.hpp.
| OA::RefOp::RefOp | ( | RefOp & | mre | ) | [inline] |
copy constructor
Definition at line 395 of file MemRefExpr.hpp.
| virtual OA::RefOp::~RefOp | ( | ) | [inline, virtual] |
Definition at line 397 of file MemRefExpr.hpp.
| virtual OA_ptr<MemRefExpr> OA::RefOp::composeWith | ( | OA_ptr< MemRefExpr > | mre | ) | [pure virtual] |
Will make this Refop wrap the given mre and return the result.
Implemented in OA::AddressOf, OA::Deref, and OA::SubSetRef.
| 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(), and mMRE.

| OA_ptr<MemRefExpr> OA::RefOp::getMemRefExpr | ( | ) | [inline] |
Return the MRE that decorating this object.
Definition at line 418 of file MemRefExpr.hpp.
References mMRE.
Referenced by OA::FieldAccess::dump(), OA::IdxExprAccess::dump(), OA::IdxAccess::dump(), OA::SubSetRef::dump(), OA::Deref::dump(), OA::AddressOf::dump(), OA::FieldAccess::operator<(), OA::IdxExprAccess::operator<(), OA::IdxAccess::operator<(), OA::SubSetRef::operator<(), OA::Deref::operator<(), OA::AddressOf::operator<(), OA::FieldAccess::operator==(), OA::IdxExprAccess::operator==(), OA::IdxAccess::operator==(), OA::SubSetRef::operator==(), OA::Deref::operator==(), OA::AddressOf::operator==(), NotationGenerator::outputMemRefExpr(), OA::Alias::RecordMREsVisitor::visitAddressOf(), OA::equivalentMREsVisitor::visitAddressOf(), OA::DataFlow::ConstructMREVisitor::visitAddressOf(), OA::Alias::SymHandleCollector::visitDeref(), OA::DataFlow::FormalFinderVisitor::visitDeref(), OA::Alias::RecordMREsVisitor::visitDeref(), OA::Alias::VisibleBaseVisitor::visitDeref(), OA::Alias::InvisibleLocationVisitor::visitDeref(), OA::equivalentMREsVisitor::visitDeref(), OA::DataFlow::ConstructMREVisitor::visitDeref(), OA::Alias::InvisibleLocationVisitor::visitFieldAccess(), OA::Alias::OuterRefOpVisitor::visitFieldAccess(), OA::Alias::FixedLocationVisitor::visitFieldAccess(), OA::Alias::InvisibleLocationVisitor::visitIdxAccess(), OA::Alias::OuterRefOpVisitor::visitIdxAccess(), OA::Alias::InvisibleLocationVisitor::visitIdxExprAccess(), OA::Alias::SymHandleCollector::visitSubSetRef(), OA::DataFlow::FormalFinderVisitor::visitSubSetRef(), OA::Alias::RecordMREsVisitor::visitSubSetRef(), OA::Alias::VisibleBaseVisitor::visitSubSetRef(), OA::Alias::InvisibleLocationVisitor::visitSubSetRef(), OA::Alias::FixedLocationVisitor::visitSubSetRef(), OA::DUG::CreateLocationVisitor::visitSubSetRef(), OA::Alias::CreateLocationVisitor::visitSubSetRef(), OA::equivalentMREsVisitor::visitSubSetRef(), and OA::DataFlow::ConstructMREVisitor::visitSubSetRef().
| bool OA::RefOp::isaRefOp | ( | ) | [inline, virtual] |
Reimplemented from OA::MemRefExpr.
Definition at line 402 of file MemRefExpr.hpp.
| void OA::RefOp::output | ( | IRHandlesIRInterface & | ir | ) | [virtual] |
Reimplemented from OA::MemRefExpr.
Reimplemented in OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 354 of file MemRefExpr.cpp.
References mMRE, OA::OA_ptr< T >::ptrEqual(), and OA::Annotation::sOutBuild.

| virtual std::string OA::RefOp::typeString | ( | ) | [inline, virtual] |
Reimplemented from OA::MemRefExpr.
Reimplemented in OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 411 of file MemRefExpr.hpp.
OA_ptr<MemRefExpr> OA::RefOp::mMRE [private] |
Definition at line 438 of file MemRefExpr.hpp.
Referenced by getBase(), getBaseSym(), getMemRefExpr(), and output().
1.6.1