#include <LocSubSet.hpp>


Public Member Functions | |
| LocSubSet (OA_ptr< Location > baseLoc) | |
| LocSubSet (OA_ptr< Location > baseLoc, bool full) | |
| LocSubSet (LocSubSet &other) | |
| copy constructor | |
| virtual | ~LocSubSet () |
| virtual void | acceptVisitor (LocationVisitor &pVisitor) |
| bool | isaSubSet () |
| bool | isSubClassOfLocSubSet () |
| virtual bool | isaIdxSubSet () |
| virtual bool | isaFieldSubSet () |
| OA_ptr< Location > | getBaseLoc () |
| LocSubSets will return the location for which they indicate subsetting. | |
| OA_ptr< Location > | getLoc () |
| virtual bool | isFull () |
| something useful to have for all LocSubSet's | |
| bool | isLocal () |
| bool | isUnique () |
| virtual bool | operator< (Location &other) |
| virtual bool | operator== (Location &other) |
| virtual bool | mayOverlap (Location &other) |
| virtual bool | mustOverlap (Location &other) |
| virtual bool | subSetOf (Location &other) |
| void | dump (std::ostream &os) |
| void | dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > pIR) |
| std::string | toString (OA_ptr< IRHandlesIRInterface > pIR) |
| void | output (IRHandlesIRInterface &ir) |
| virtual int | getOrder () |
Protected Attributes | |
| OA_ptr< Location > | mLoc |
Private Member Functions | |
| void | composeWithBaseLoc (OA_ptr< Location > baseLoc) |
| helper function for constructor | |
Private Attributes | |
| bool | mFull |
Static Private Attributes | |
| static const int | sOrder = 600 |
The LocSubSet implements a decorator pattern for locations. If we decorate a location with a LocSubSet that represents some subset of the location depending on what subset abstraction is being used. Many subset abstractions are possible.
Definition at line 27 of file LocSubSet.hpp.
Definition at line 21 of file LocSubSet.cpp.
References composeWithBaseLoc(), OA::debug, and OA_DEBUG_CTRL_MACRO.

Definition at line 30 of file LocSubSet.cpp.
References composeWithBaseLoc().

| OA::LocSubSet::LocSubSet | ( | LocSubSet & | other | ) | [inline] |
copy constructor
Definition at line 33 of file LocSubSet.hpp.
| virtual OA::LocSubSet::~LocSubSet | ( | ) | [inline, virtual] |
Definition at line 35 of file LocSubSet.hpp.
| void OA::LocSubSet::acceptVisitor | ( | LocationVisitor & | pVisitor | ) | [virtual] |
Implements OA::Location.
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 56 of file LocSubSet.cpp.
References OA::LocationVisitor::visitLocSubSet().

helper function for constructor
If the given location is a subset then we will be subset of the baseLoc's base location. This method also has logic for determining what our accuracy should be based on our initially specified accuracy and the accuracy of baseLoc
Definition at line 43 of file LocSubSet.cpp.
References mLoc.
Referenced by LocSubSet().
| void OA::LocSubSet::dump | ( | std::ostream & | os, | |
| OA_ptr< IRHandlesIRInterface > | pIR | |||
| ) |
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 190 of file LocSubSet.cpp.
References OA::OA_ptr< T >::dump(), getLoc(), and isFull().

| void OA::LocSubSet::dump | ( | std::ostream & | os | ) |
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 182 of file LocSubSet.cpp.
References OA::OA_ptr< T >::dump(), getLoc(), and isFull().

LocSubSets will return the location for which they indicate subsetting.
Implements OA::Location.
Definition at line 59 of file LocSubSet.hpp.
References mLoc.
Referenced by OA::DUG::depLocVisitor::visitLocSubSet(), and OA::DUG::IndepLocVisitor::visitLocSubSet().
Definition at line 61 of file LocSubSet.hpp.
References mLoc.
Referenced by dump(), OA::LocIdxSubSet::dump(), OA::LocFieldSubSet::dump(), OA::LocSubSetMustOverlapVisitor::fullAndLocMustOverlap(), mayOverlap(), OA::LocIdxSubSet::mayOverlap(), OA::LocFieldSubSet::mayOverlap(), operator<(), OA::LocIdxSubSet::operator<(), OA::LocFieldSubSet::operator<(), operator==(), OA::LocIdxSubSet::operator==(), OA::LocFieldSubSet::operator==(), subSetOf(), OA::LocIdxSubSet::subSetOf(), OA::LocFieldSubSet::subSetOf(), toString(), OA::LocIdxSubSet::toString(), OA::LocFieldSubSet::toString(), OA::LocFieldSubSetMustOverlapVisitor::visitLocFieldSubSet(), OA::LocIdxSubSetMustOverlapVisitor::visitLocIdxSubSet(), OA::SideEffect::VisibleVisitor::visitLocSubSet(), and OA::DataFlow::CalleeToCallerVisitor::visitLocSubSet().
| virtual int OA::LocSubSet::getOrder | ( | ) | [inline, virtual] |
Reimplemented from OA::Location.
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 95 of file LocSubSet.hpp.
References sOrder.
Referenced by operator<(), and operator==().
| virtual bool OA::LocSubSet::isaFieldSubSet | ( | ) | [inline, virtual] |
Reimplemented in OA::LocFieldSubSet.
Definition at line 53 of file LocSubSet.hpp.
Referenced by isSubClassOfLocSubSet().
| virtual bool OA::LocSubSet::isaIdxSubSet | ( | ) | [inline, virtual] |
Reimplemented in OA::LocIdxSubSet.
Definition at line 52 of file LocSubSet.hpp.
Referenced by isSubClassOfLocSubSet().
| bool OA::LocSubSet::isaSubSet | ( | ) | [inline, virtual] |
Reimplemented from OA::Location.
Definition at line 42 of file LocSubSet.hpp.
Referenced by OA::Activity::ManagerICFGUseful::callerToCallee().
| virtual bool OA::LocSubSet::isFull | ( | ) | [inline, virtual] |
something useful to have for all LocSubSet's
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 64 of file LocSubSet.hpp.
References mFull.
Referenced by dump(), OA::LocSubSetMustOverlapVisitor::fullAndLocMustOverlap(), operator<(), operator==(), and toString().
| bool OA::LocSubSet::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 from OA::Location.
Definition at line 66 of file LocSubSet.hpp.
References mLoc, and OA::OA_ptr< T >::ptrEqual().

| bool OA::LocSubSet::isSubClassOfLocSubSet | ( | ) | [inline] |
This needs to be logical OR of all isa methods below it If a direct instance of this class then will return false
Definition at line 49 of file LocSubSet.hpp.
References isaFieldSubSet(), and isaIdxSubSet().

| bool OA::LocSubSet::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 from OA::Location.
Definition at line 68 of file LocSubSet.hpp.
References mLoc, and OA::OA_ptr< T >::ptrEqual().

| bool OA::LocSubSet::mayOverlap | ( | Location & | other | ) | [virtual] |
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 113 of file LocSubSet.cpp.
References getLoc().
Referenced by OA::UnnamedLocMayOverlapVisitor::visitLocSubSet(), OA::NamedLocMayOverlapVisitor::visitLocSubSet(), and OA::InvisibleLocMayOverlapVisitor::visitLocSubSet().

| bool OA::LocSubSet::mustOverlap | ( | Location & | other | ) | [virtual] |
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 160 of file LocSubSet.cpp.
References OA::Location::acceptVisitor(), and OA::LocSubSetMustOverlapVisitor::mMustOverlap.
Referenced by subSetOf(), OA::NamedLocMustOverlapVisitor::visitLocSubSet(), and OA::InvisibleLocMustOverlapVisitor::visitLocSubSet().

| bool OA::LocSubSet::operator< | ( | Location & | other | ) | [virtual] |
Locations are ordered first between Location subclasses based on their sOrder value. Then there is an ordering within each subclass.
When comparing between direct instances of LocSubSet's will first compare base locations and will then let FULL < PARTIAL.
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 81 of file LocSubSet.cpp.
References getLoc(), OA::Location::getOrder(), getOrder(), and isFull().

| bool OA::LocSubSet::operator== | ( | Location & | other | ) | [virtual] |
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 99 of file LocSubSet.cpp.
References getLoc(), OA::Location::getOrder(), getOrder(), and isFull().

| void OA::LocSubSet::output | ( | IRHandlesIRInterface & | ir | ) | [virtual] |
Implements OA::Annotation.
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 61 of file LocSubSet.cpp.
References OA::bool2string(), mFull, mLoc, and OA::Annotation::sOutBuild.

| bool OA::LocSubSet::subSetOf | ( | Location & | other | ) | [virtual] |
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 169 of file LocSubSet.cpp.
References getLoc(), and mustOverlap().

| std::string OA::LocSubSet::toString | ( | OA_ptr< IRHandlesIRInterface > | pIR | ) | [virtual] |
Implements OA::Location.
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 198 of file LocSubSet.cpp.
References getLoc(), and isFull().

bool OA::LocSubSet::mFull [private] |
Definition at line 102 of file LocSubSet.hpp.
OA_ptr<Location> OA::LocSubSet::mLoc [protected] |
Definition at line 99 of file LocSubSet.hpp.
Referenced by composeWithBaseLoc(), getBaseLoc(), getLoc(), isLocal(), isUnique(), output(), and OA::LocFieldSubSet::output().
const int OA::LocSubSet::sOrder = 600 [static, private] |
Reimplemented from OA::Location.
Reimplemented in OA::LocFieldSubSet, and OA::LocIdxSubSet.
Definition at line 107 of file LocSubSet.hpp.
Referenced by getOrder().
1.6.1