#include <MemRefExpr.hpp>


Public Member Functions | |
| Deref (MemRefType mrType, OA_ptr< MemRefExpr > mre, int numDeref) | |
| Deref (MemRefType mrType, OA_ptr< MemRefExpr > mre) | |
| Deref (Deref &mre) | |
| copy constructor | |
| ~Deref () | |
| void | acceptVisitor (MemRefExprVisitor &pVisitor) |
| OA_ptr< MemRefExpr > | clone () |
| return a ptr to a copy of self | |
| bool | isaDeref () |
| int | getNumDerefs () |
| virtual std::string | typeString () |
| bool | operator< (MemRefExpr &other) |
| bool | operator== (MemRefExpr &other) |
| OA_ptr< MemRefExpr > | composeWith (OA_ptr< MemRefExpr > mre) |
| Will make this Refop wrap the given mre and return the result. | |
| void | output (IRHandlesIRInterface &ir) |
| 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 () |
Private Attributes | |
| int | mNumDeref |
Static Private Attributes | |
| static const int | sOrder = 300 |
The Deref class indicates how many times a memory reference is being dereferenced.
Definition at line 506 of file MemRefExpr.hpp.
| OA::Deref::Deref | ( | MemRefType | mrType, | |
| OA_ptr< MemRefExpr > | mre, | |||
| int | numDeref | |||
| ) | [inline] |
Definition at line 509 of file MemRefExpr.hpp.
Referenced by clone(), and composeWith().
| OA::Deref::Deref | ( | MemRefType | mrType, | |
| OA_ptr< MemRefExpr > | mre | |||
| ) | [inline] |
Definition at line 515 of file MemRefExpr.hpp.
| OA::Deref::Deref | ( | Deref & | mre | ) | [inline] |
copy constructor
Definition at line 520 of file MemRefExpr.hpp.
| OA::Deref::~Deref | ( | ) | [inline] |
Definition at line 522 of file MemRefExpr.hpp.
| void OA::Deref::acceptVisitor | ( | MemRefExprVisitor & | pVisitor | ) | [virtual] |
Implements OA::MemRefExpr.
Definition at line 476 of file MemRefExpr.cpp.
References OA::MemRefExprVisitor::visitDeref().

| OA_ptr< MemRefExpr > OA::Deref::clone | ( | ) | [virtual] |
return a ptr to a copy of self
Implements OA::MemRefExpr.
Definition at line 481 of file MemRefExpr.cpp.
References Deref().
Referenced by OA::Alias::RecordMREsVisitor::visitDeref(), and OA::Alias::InvisibleLocationVisitor::visitDeref().

| OA_ptr< MemRefExpr > OA::Deref::composeWith | ( | OA_ptr< MemRefExpr > | mre | ) | [virtual] |
Will make this Refop wrap the given mre and return the result.
Implements OA::RefOp.
Definition at line 538 of file MemRefExpr.cpp.
References OA::OA_ptr< T >::convert(), Deref(), and OA::MemRefExpr::getMRType().

| void OA::Deref::dump | ( | std::ostream & | os | ) | [virtual] |
Reimplemented from OA::MemRefExpr.
Definition at line 567 of file MemRefExpr.cpp.
References OA::OA_ptr< T >::dump(), dump(), OA::RefOp::getMemRefExpr(), and getNumDerefs().

| void OA::Deref::dump | ( | std::ostream & | os, | |
| IRHandlesIRInterface & | pIR | |||
| ) | [virtual] |
Reimplemented from OA::MemRefExpr.
Definition at line 576 of file MemRefExpr.cpp.
References OA::OA_ptr< T >::dump(), dump(), OA::RefOp::getMemRefExpr(), and getNumDerefs().

| void OA::Deref::dump | ( | std::ostream & | os, | |
| OA_ptr< IRHandlesIRInterface > | pIR | |||
| ) | [virtual] |
Reimplemented from OA::MemRefExpr.
Definition at line 585 of file MemRefExpr.cpp.
Referenced by dump().
| int OA::Deref::getNumDerefs | ( | ) | [inline] |
Definition at line 537 of file MemRefExpr.hpp.
References mNumDeref.
Referenced by dump(), operator<(), operator==(), NotationGenerator::outputMemRefExpr(), OA::Alias::OuterRefOpVisitor::visitDeref(), and OA::DataFlow::ConstructMREVisitor::visitDeref().
| virtual int OA::Deref::getOrder | ( | ) | [inline, virtual] |
Reimplemented from OA::MemRefExpr.
Definition at line 569 of file MemRefExpr.hpp.
References sOrder.
Referenced by operator<(), and operator==().
| bool OA::Deref::isaDeref | ( | ) | [inline, virtual] |
Reimplemented from OA::MemRefExpr.
Definition at line 532 of file MemRefExpr.hpp.
| bool OA::Deref::operator< | ( | MemRefExpr & | other | ) |
References are ordered first between MemRefExpr subclasses in an specific order: NamedRef < UnnamedRef < Deref < SubSetRefs( IdxAccess < ... ) < UnknownRef. Then there is a consistent ordering within each subclass.
For Deref's ordering is done by underlying reference and then number of derefs.
Definition at line 497 of file MemRefExpr.cpp.
References OA::RefOp::getMemRefExpr(), getNumDerefs(), OA::MemRefExpr::getOrder(), and getOrder().

| bool OA::Deref::operator== | ( | MemRefExpr & | other | ) |
check if two memory references are equal at the level of accuracy provided by the MemRefExpr approximation
Definition at line 516 of file MemRefExpr.cpp.
References OA::RefOp::getMemRefExpr(), getNumDerefs(), OA::MemRefExpr::getOrder(), and getOrder().

| void OA::Deref::output | ( | IRHandlesIRInterface & | ir | ) | [virtual] |
Reimplemented from OA::RefOp.
Definition at line 558 of file MemRefExpr.cpp.
References OA::int2string(), mNumDeref, and OA::Annotation::sOutBuild.

| virtual std::string OA::Deref::typeString | ( | ) | [inline, virtual] |
Reimplemented from OA::RefOp.
Definition at line 538 of file MemRefExpr.hpp.
int OA::Deref::mNumDeref [private] |
Definition at line 573 of file MemRefExpr.hpp.
Referenced by getNumDerefs(), and output().
const int OA::Deref::sOrder = 300 [static, private] |
Reimplemented from OA::MemRefExpr.
Definition at line 572 of file MemRefExpr.hpp.
Referenced by getOrder().
1.6.1