Public Member Functions | Private Attributes | Static Private Attributes

OA::LocFieldSubSet Class Reference

#include <LocFieldSubSet.hpp>

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

List of all members.

Public Member Functions

 LocFieldSubSet (OA_ptr< Location > loc, std::string fieldName)
 LocFieldSubSet (LocFieldSubSet &other)
 copy constructor
 ~LocFieldSubSet ()
void acceptVisitor (LocationVisitor &pVisitor)
bool isaFieldSubSet ()
bool isFull ()
 something useful to have for all LocSubSet's
string getFieldName ()
bool operator< (Location &other)
bool operator== (Location &other)
 indicate whether this location is semantically equivalent
bool mayOverlap (Location &other)
bool mustOverlap (Location &other)
bool subSetOf (Location &other)
 Indicate whether this location is a subset of the given location.
void output (IRHandlesIRInterface &ir)
void dump (std::ostream &os)
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > pIR)
std::string toString (OA_ptr< IRHandlesIRInterface > pIR)
virtual int getOrder ()

Private Attributes

string mFieldName

Static Private Attributes

static const int sOrder = 500

Detailed Description

The LocFieldSubSet describes a subset for a location with a field access. For example, the memory reference a.b could be mapped to LocFieldSubSet( b, NamedLoc(a) ) and the memory reference a->b could be mapped to LocFieldSubSet( b, UnnamedLoc(a = new A;) ).

Definition at line 27 of file LocFieldSubSet.hpp.


Constructor & Destructor Documentation

OA::LocFieldSubSet::LocFieldSubSet ( OA_ptr< Location loc,
std::string  fieldName 
) [inline]

Definition at line 29 of file LocFieldSubSet.hpp.

OA::LocFieldSubSet::LocFieldSubSet ( LocFieldSubSet other  )  [inline]

copy constructor

Definition at line 33 of file LocFieldSubSet.hpp.

OA::LocFieldSubSet::~LocFieldSubSet (  )  [inline]

Definition at line 36 of file LocFieldSubSet.hpp.


Member Function Documentation

void OA::LocFieldSubSet::acceptVisitor ( LocationVisitor pVisitor  )  [virtual]

Reimplemented from OA::LocSubSet.

Definition at line 21 of file LocFieldSubSet.cpp.

References OA::debug, OA_DEBUG_CTRL_MACRO, and OA::LocationVisitor::visitLocFieldSubSet().

Here is the call graph for this function:

void OA::LocFieldSubSet::dump ( std::ostream &  os  ) 

Reimplemented from OA::LocSubSet.

Definition at line 135 of file LocFieldSubSet.cpp.

References OA::OA_ptr< T >::dump(), OA::LocSubSet::getLoc(), and mFieldName.

Here is the call graph for this function:

void OA::LocFieldSubSet::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface pIR 
)

Reimplemented from OA::LocSubSet.

Definition at line 143 of file LocFieldSubSet.cpp.

References OA::OA_ptr< T >::dump(), OA::LocSubSet::getLoc(), and mFieldName.

Here is the call graph for this function:

string OA::LocFieldSubSet::getFieldName (  )  [inline]
virtual int OA::LocFieldSubSet::getOrder (  )  [inline, virtual]

Reimplemented from OA::LocSubSet.

Definition at line 76 of file LocFieldSubSet.hpp.

References sOrder.

Referenced by operator<(), and operator==().

bool OA::LocFieldSubSet::isaFieldSubSet (  )  [inline, virtual]

Reimplemented from OA::LocSubSet.

Definition at line 43 of file LocFieldSubSet.hpp.

bool OA::LocFieldSubSet::isFull (  )  [inline, virtual]

something useful to have for all LocSubSet's

Reimplemented from OA::LocSubSet.

Definition at line 48 of file LocFieldSubSet.hpp.

bool OA::LocFieldSubSet::mayOverlap ( Location other  )  [virtual]

Indicate whether this location may overlap with the given location either fully or partially.

Reimplemented from OA::LocSubSet.

Definition at line 64 of file LocFieldSubSet.cpp.

References OA::LocSubSet::getLoc().

Here is the call graph for this function:

bool OA::LocFieldSubSet::mustOverlap ( Location other  )  [virtual]

Indicate whether this location must overlap fully with the given location.

Reimplemented from OA::LocSubSet.

Definition at line 99 of file LocFieldSubSet.cpp.

References OA::Location::acceptVisitor(), and OA::LocFieldSubSetMustOverlapVisitor::mMustOverlap.

Referenced by subSetOf().

Here is the call graph for this function:

bool OA::LocFieldSubSet::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 LocFieldSubSet's will first compare base locations and will then will compare field names.

Reimplemented from OA::LocSubSet.

Definition at line 36 of file LocFieldSubSet.cpp.

References getFieldName(), OA::LocSubSet::getLoc(), OA::Location::getOrder(), and getOrder().

Here is the call graph for this function:

bool OA::LocFieldSubSet::operator== ( Location other  )  [virtual]

indicate whether this location is semantically equivalent

Reimplemented from OA::LocSubSet.

Definition at line 51 of file LocFieldSubSet.cpp.

References getFieldName(), OA::LocSubSet::getLoc(), OA::Location::getOrder(), and getOrder().

Here is the call graph for this function:

void OA::LocFieldSubSet::output ( IRHandlesIRInterface ir  )  [virtual]

Reimplemented from OA::LocSubSet.

Definition at line 119 of file LocFieldSubSet.cpp.

References mFieldName, OA::LocSubSet::mLoc, and OA::Annotation::sOutBuild.

bool OA::LocFieldSubSet::subSetOf ( Location other  )  [virtual]

Indicate whether this location is a subset of the given location.

Reimplemented from OA::LocSubSet.

Definition at line 108 of file LocFieldSubSet.cpp.

References OA::LocSubSet::getLoc(), and mustOverlap().

Here is the call graph for this function:

std::string OA::LocFieldSubSet::toString ( OA_ptr< IRHandlesIRInterface pIR  )  [virtual]

Reimplemented from OA::LocSubSet.

Definition at line 151 of file LocFieldSubSet.cpp.

References OA::LocSubSet::getLoc(), and mFieldName.

Here is the call graph for this function:


Member Data Documentation

Definition at line 79 of file LocFieldSubSet.hpp.

Referenced by dump(), getFieldName(), output(), and toString().

const int OA::LocFieldSubSet::sOrder = 500 [static, private]

Reimplemented from OA::LocSubSet.

Definition at line 80 of file LocFieldSubSet.hpp.

Referenced by getOrder().


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