OA::Location Class Reference

#include <Location.hpp>

Inheritance diagram for OA::Location:
Inheritance graph
[legend]
Collaboration diagram for OA::Location:
Collaboration graph
[legend]

List of all members.

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< LocationgetBaseLoc ()=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

Detailed Description

abstract base class that has default implementations for the methods that all Locations must provide

Definition at line 68 of file Location.hpp.


Constructor & Destructor Documentation

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.


Member Function Documentation

virtual void OA::Location::acceptVisitor ( LocationVisitor pVisitor  )  [pure virtual]
virtual void OA::Location::dump ( ostream &  os  )  [pure virtual]
virtual void OA::Location::dump ( ostream &  os,
OA_ptr< IRHandlesIRInterface pIR 
) [pure virtual]
virtual OA_ptr<Location> OA::Location::getBaseLoc (  )  [pure virtual]

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]
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==().

Here is the call graph for this function:

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]

Member Data Documentation

const int OA::Location::sOrder = -100 [static, private]

The documentation for this class was generated from the following files:

Generated on Sat Oct 31 05:26:19 2009 for OpenAnalysis by  doxygen 1.6.1