#include <MemRefExpr.hpp>


Public Types | |
| enum | MemRefType { USE, DEF, USEDEF, DEFUSE } |
Public Member Functions | |
| MemRefExpr (MemRefType mrType) | |
| MemRefExpr (MemRefExpr &mre) | |
| copy constructor | |
| 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 | |
| bool | isDef () |
| is this a def mem ref | |
| bool | isUse () |
| is this a use mem ref | |
| bool | isDefUse () |
| is this a defuse mem ref | |
| bool | isUseDef () |
| is this a usedef mem ref | |
| void | setMemRefType (MemRefExpr::MemRefType mrType) |
| specify the memory reference type | |
| virtual bool | operator< (MemRefExpr &other) |
| an ordering for locations, needed for use within STL containers | |
| 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 () |
Private Attributes | |
| MemRefType | mMemRefType |
Static Private Attributes | |
| static const int | sOrder = -100 |
abstract base class that has default implementations for the methods that all MemRefExpr's must provide
Definition at line 76 of file MemRefExpr.hpp.
Definition at line 78 of file MemRefExpr.hpp.
| OA::MemRefExpr::MemRefExpr | ( | MemRefType | mrType | ) | [inline] |
Definition at line 87 of file MemRefExpr.hpp.
| OA::MemRefExpr::MemRefExpr | ( | MemRefExpr & | mre | ) | [inline] |
copy constructor
Definition at line 90 of file MemRefExpr.hpp.
| virtual OA::MemRefExpr::~MemRefExpr | ( | ) | [inline, virtual] |
Definition at line 92 of file MemRefExpr.hpp.
| virtual void OA::MemRefExpr::acceptVisitor | ( | MemRefExprVisitor & | pVisitor | ) | [pure virtual] |
Implemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
| virtual OA_ptr<MemRefExpr> OA::MemRefExpr::clone | ( | ) | [pure virtual] |
Implemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Referenced by OA::Alias::EquivSets::getMayLocs(), OA::Alias::AliasMap::getMayLocs(), and OA::Alias::AliasMap::getMustLocs().
| void OA::MemRefExpr::dump | ( | std::ostream & | os | ) | [virtual] |
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 60 of file MemRefExpr.cpp.
References mMemRefType, and toString().

| void OA::MemRefExpr::dump | ( | std::ostream & | os, | |
| IRHandlesIRInterface & | pIR | |||
| ) | [virtual] |
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 49 of file MemRefExpr.cpp.
References dump().

| void OA::MemRefExpr::dump | ( | std::ostream & | os, | |
| OA_ptr< IRHandlesIRInterface > | pIR | |||
| ) | [virtual] |
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 55 of file MemRefExpr.cpp.
Referenced by dump().
| MemRefType OA::MemRefExpr::getMRType | ( | ) | [inline] |
whether USE/DEF MemRefExpr
Definition at line 120 of file MemRefExpr.hpp.
References mMemRefType.
Referenced by OA::Deref::composeWith(), OA::AddressOf::composeWith(), and OA::DataFlow::ConstructMREVisitor::visitDeref().
| virtual int OA::MemRefExpr::getOrder | ( | ) | [inline, virtual] |
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 174 of file MemRefExpr.hpp.
References sOrder.
Referenced by OA::FieldAccess::operator<(), OA::IdxExprAccess::operator<(), OA::IdxAccess::operator<(), OA::SubSetRef::operator<(), OA::Deref::operator<(), OA::AddressOf::operator<(), OA::UnknownRef::operator<(), OA::UnnamedRef::operator<(), OA::NamedRef::operator<(), operator<(), OA::FieldAccess::operator==(), OA::IdxExprAccess::operator==(), OA::IdxAccess::operator==(), OA::SubSetRef::operator==(), OA::Deref::operator==(), OA::AddressOf::operator==(), OA::UnknownRef::operator==(), OA::UnnamedRef::operator==(), OA::NamedRef::operator==(), and operator==().
| virtual bool OA::MemRefExpr::isaAddressOf | ( | ) | [inline, virtual] |
Reimplemented in OA::AddressOf.
Definition at line 108 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaDeref | ( | ) | [inline, virtual] |
Reimplemented in OA::Deref.
Definition at line 107 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaFieldAccess | ( | ) | [inline, virtual] |
Reimplemented in OA::FieldAccess.
Definition at line 113 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaIdxAccess | ( | ) | [inline, virtual] |
Reimplemented in OA::IdxAccess.
Definition at line 111 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaIdxExprAccess | ( | ) | [inline, virtual] |
Reimplemented in OA::IdxExprAccess.
Definition at line 112 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaNamed | ( | ) | [inline, virtual] |
Reimplemented in OA::NamedRef.
Definition at line 102 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaRefOp | ( | ) | [inline, virtual] |
Reimplemented in OA::RefOp.
Definition at line 105 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaSubSetRef | ( | ) | [inline, virtual] |
Reimplemented in OA::SubSetRef.
Definition at line 110 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaUnknown | ( | ) | [inline, virtual] |
Reimplemented in OA::UnknownRef.
Definition at line 104 of file MemRefExpr.hpp.
| virtual bool OA::MemRefExpr::isaUnnamed | ( | ) | [inline, virtual] |
Reimplemented in OA::UnnamedRef.
Definition at line 103 of file MemRefExpr.hpp.
| bool OA::MemRefExpr::isDef | ( | ) | [inline] |
is this a def mem ref
Definition at line 123 of file MemRefExpr.hpp.
References DEF, DEFUSE, mMemRefType, and USEDEF.
Referenced by NotationGenerator::outputMemRefType().
| bool OA::MemRefExpr::isDefUse | ( | ) | [inline] |
is this a defuse mem ref
Definition at line 131 of file MemRefExpr.hpp.
References DEFUSE, and mMemRefType.
Referenced by NotationGenerator::outputMemRefType().
| bool OA::MemRefExpr::isUse | ( | ) | [inline] |
is this a use mem ref
Definition at line 127 of file MemRefExpr.hpp.
References DEFUSE, mMemRefType, USE, and USEDEF.
Referenced by NotationGenerator::outputMemRefType().
| bool OA::MemRefExpr::isUseDef | ( | ) | [inline] |
is this a usedef mem ref
Definition at line 134 of file MemRefExpr.hpp.
References mMemRefType, and USEDEF.
Referenced by NotationGenerator::outputMemRefType().
| bool OA::MemRefExpr::operator!= | ( | MemRefExpr & | other | ) | [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.
| bool OA::MemRefExpr::operator< | ( | MemRefExpr & | other | ) | [virtual] |
an ordering for locations, needed for use within STL containers
Need consistent ordering.
Definition at line 30 of file MemRefExpr.cpp.
References getOrder().

| bool OA::MemRefExpr::operator== | ( | MemRefExpr & | other | ) | [virtual] |
check if two memory references are equal at the level of accuracy provided by the MemRefExpr approximation
Definition at line 37 of file MemRefExpr.cpp.
References getOrder().

| void OA::MemRefExpr::output | ( | IRHandlesIRInterface & | ir | ) | [virtual] |
Implements OA::Annotation.
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::RefOp, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 44 of file MemRefExpr.cpp.
References mMemRefType, OA::Annotation::sOutBuild, and toString().

| void OA::MemRefExpr::setMemRefType | ( | MemRefExpr::MemRefType | mrType | ) | [inline] |
specify the memory reference type
Definition at line 141 of file MemRefExpr.hpp.
References mMemRefType.
| std::string OA::MemRefExpr::toString | ( | MemRefType | type | ) |
Definition at line 66 of file MemRefExpr.cpp.
References DEF, DEFUSE, mMemRefType, USE, and USEDEF.
| virtual std::string OA::MemRefExpr::typeString | ( | ) | [inline, virtual] |
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::RefOp, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 164 of file MemRefExpr.hpp.
MemRefType OA::MemRefExpr::mMemRefType [private] |
Definition at line 178 of file MemRefExpr.hpp.
Referenced by dump(), getMRType(), isDef(), isDefUse(), isUse(), isUseDef(), output(), setMemRefType(), and toString().
const int OA::MemRefExpr::sOrder = -100 [static, private] |
Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.
Definition at line 177 of file MemRefExpr.hpp.
Referenced by getOrder().
1.6.1