#include <Location.hpp>


Public Member Functions | |
| Location () | |
| Location (Location &loc) | |
| virtual | ~Location () |
| virtual void | acceptVisitor (LocationVisitor &pVisitor)=0 |
| virtual bool | isaNamed () |
| virtual bool | isaUnnamed () |
| virtual bool | isaUnknown () |
| virtual bool | isaInvisible () |
| virtual bool | isaSubSet () |
| virtual OA_ptr< Location > | getBaseLoc ()=0 |
| virtual bool | isLocal () |
| virtual bool | isUnique () |
| virtual bool | operator< (Location &other)=0 |
| an ordering for locations, needed for use within STL containers | |
| virtual bool | operator== (Location &other)=0 |
| indicate whether this location is semantically equivalent | |
| virtual bool | operator!= (Location &other) |
| indicate whether this location is semantically equivalent | |
| virtual bool | mayOverlap (Location &other) |
| virtual bool | mustOverlap (Location &other) |
| virtual bool | subSetOf (Location &other) |
| Indicate whether this location is a subset of the given location. | |
| virtual void | dump (ostream &os, OA_ptr< IRHandlesIRInterface > pIR)=0 |
| virtual void | dump (ostream &os)=0 |
| virtual string | toString (OA_ptr< IRHandlesIRInterface > pIR)=0 |
| virtual int | getOrder () |
Static Private Attributes | |
| static const int | sOrder = -100 |
abstract base class that has default implementations for the methods that all Locations must provide
Definition at line 68 of file Location.hpp.
| OA::Location::Location | ( | ) |
Definition at line 144 of file Location.cpp.
References OA::debug, and OA_DEBUG_CTRL_MACRO.
| OA::Location::Location | ( | Location & | loc | ) | [inline] |
Definition at line 71 of file Location.hpp.
| virtual OA::Location::~Location | ( | ) | [inline, virtual] |
Definition at line 72 of file Location.hpp.
| virtual void OA::Location::acceptVisitor | ( | LocationVisitor & | pVisitor | ) | [pure virtual] |
Implemented in OA::InvisibleLoc, OA::LocFieldSubSet, OA::LocIdxSubSet, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
Referenced by OA::UnnamedLoc::mayOverlap(), OA::NamedLoc::mayOverlap(), OA::InvisibleLoc::mayOverlap(), OA::NamedLoc::mustOverlap(), OA::LocSubSet::mustOverlap(), OA::LocIdxSubSet::mustOverlap(), OA::LocFieldSubSet::mustOverlap(), and OA::InvisibleLoc::mustOverlap().
| virtual void OA::Location::dump | ( | ostream & | os | ) | [pure virtual] |
| virtual void OA::Location::dump | ( | ostream & | os, | |
| OA_ptr< IRHandlesIRInterface > | pIR | |||
| ) | [pure virtual] |
Referenced by OA::NamedLoc::operator<(), and OA::NamedLoc::operator==().
Return base location for this location if this location contains another location. If not just return this location.
Implemented in OA::InvisibleLoc, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
| virtual int OA::Location::getOrder | ( | ) | [inline, virtual] |
Reimplemented in OA::InvisibleLoc, OA::LocFieldSubSet, OA::LocIdxSubSet, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
Definition at line 148 of file Location.hpp.
References sOrder.
Referenced by OA::UnnamedLoc::operator<(), OA::UnknownLoc::operator<(), OA::NamedLoc::operator<(), OA::LocSubSet::operator<(), OA::LocIdxSubSet::operator<(), OA::LocFieldSubSet::operator<(), OA::InvisibleLoc::operator<(), OA::UnnamedLoc::operator==(), OA::UnknownLoc::operator==(), OA::NamedLoc::operator==(), OA::LocSubSet::operator==(), OA::LocIdxSubSet::operator==(), OA::LocFieldSubSet::operator==(), and OA::InvisibleLoc::operator==().
| virtual bool OA::Location::isaInvisible | ( | ) | [inline, virtual] |
Reimplemented in OA::InvisibleLoc.
Definition at line 82 of file Location.hpp.
| virtual bool OA::Location::isaNamed | ( | ) | [inline, virtual] |
Reimplemented in OA::NamedLoc.
Definition at line 79 of file Location.hpp.
Referenced by OA::Activity::ManagerICFGUseful::callerToCallee().
| virtual bool OA::Location::isaSubSet | ( | ) | [inline, virtual] |
Reimplemented in OA::LocSubSet.
Definition at line 83 of file Location.hpp.
| virtual bool OA::Location::isaUnknown | ( | ) | [inline, virtual] |
Reimplemented in OA::UnknownLoc.
Definition at line 81 of file Location.hpp.
Referenced by OA::UnknownLoc::operator==().
| virtual bool OA::Location::isaUnnamed | ( | ) | [inline, virtual] |
Reimplemented in OA::UnnamedLoc.
Definition at line 80 of file Location.hpp.
| virtual bool OA::Location::isLocal | ( | ) | [inline, virtual] |
true if the location block represents a local variable that is only visible within the current procedure or an unnamed variable that is allocated in the current procedure. If the current procedure is nested and has access to local variables of a parent procedure, those variables are not considered local for the current procedure.
Reimplemented in OA::InvisibleLoc, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
Definition at line 98 of file Location.hpp.
| virtual bool OA::Location::isUnique | ( | ) | [inline, virtual] |
be because there could be multiple allocations at the same statement and they maybe lumped together depending on how much context is maintained. A LocBlock for an unnamed allocated memory block could be Unique if there is a different LocBlock for each possible context of the alloc. A local variable is always unique, allocated memory blocks may
Reimplemented in OA::InvisibleLoc, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
Definition at line 106 of file Location.hpp.
| virtual bool OA::Location::mayOverlap | ( | Location & | other | ) | [inline, virtual] |
Indicate whether this location may overlap with the given location either fully or partially.
Definition at line 131 of file Location.hpp.
| virtual bool OA::Location::mustOverlap | ( | Location & | other | ) | [inline, virtual] |
Indicate whether this location must overlap fully with the given location.
Definition at line 135 of file Location.hpp.
Referenced by OA::LocSubSetMustOverlapVisitor::fullAndLocMustOverlap().
| virtual bool OA::Location::operator!= | ( | Location & | other | ) | [inline, virtual] |
indicate whether this location is semantically equivalent
Definition at line 127 of file Location.hpp.
References operator==().

| virtual bool OA::Location::operator< | ( | Location & | other | ) | [pure virtual] |
an ordering for locations, needed for use within STL containers
does the Location abstraction accurately represent a specific memory location, for example, if a range in an array then false, if one index of an array then true
| virtual bool OA::Location::operator== | ( | Location & | other | ) | [pure virtual] |
indicate whether this location is semantically equivalent
Referenced by operator!=().
| virtual bool OA::Location::subSetOf | ( | Location & | other | ) | [inline, virtual] |
Indicate whether this location is a subset of the given location.
Definition at line 138 of file Location.hpp.
| virtual string OA::Location::toString | ( | OA_ptr< IRHandlesIRInterface > | pIR | ) | [pure virtual] |
Implemented in OA::InvisibleLoc, OA::LocFieldSubSet, OA::LocIdxSubSet, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
const int OA::Location::sOrder = -100 [static, private] |
Reimplemented in OA::InvisibleLoc, OA::LocFieldSubSet, OA::LocIdxSubSet, OA::LocSubSet, OA::NamedLoc, OA::UnknownLoc, and OA::UnnamedLoc.
Definition at line 151 of file Location.hpp.
Referenced by getOrder().
1.6.1