OA::SubSetRef Class Reference

#include <MemRefExpr.hpp>

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

List of all members.

Public Member Functions

 SubSetRef (MemRefType mrType, OA_ptr< MemRefExpr > mre)
 SubSetRef (SubSetRef &mre)
 copy constructor
virtual ~SubSetRef ()
void acceptVisitor (MemRefExprVisitor &pVisitor)
OA_ptr< MemRefExprclone ()
 return a ptr to a copy of self
virtual bool isaSubSetRef ()
virtual bool isSubClassOfSubSetRef ()
virtual bool operator< (MemRefExpr &other)
virtual bool operator== (MemRefExpr &other)
OA_ptr< MemRefExprcomposeWith (OA_ptr< MemRefExpr > mre)
 Will make this Refop wrap the given mre and return the result.
void output (IRHandlesIRInterface &ir)
virtual std::string typeString ()
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 ()

Static Private Attributes

static const int sOrder = 600

Detailed Description

The SubSetRef implements a decorator pattern for memory references. If we decorate a memory reference with a subclass of SubSetRef it represents some operation such as a field access or array access occuring. Many sub set reference operations are possible abstractions are possible.

Definition at line 583 of file MemRefExpr.hpp.


Constructor & Destructor Documentation

OA::SubSetRef::SubSetRef ( MemRefType  mrType,
OA_ptr< MemRefExpr mre 
) [inline]

Definition at line 586 of file MemRefExpr.hpp.

Referenced by clone(), and composeWith().

OA::SubSetRef::SubSetRef ( SubSetRef mre  )  [inline]

copy constructor

Definition at line 590 of file MemRefExpr.hpp.

virtual OA::SubSetRef::~SubSetRef (  )  [inline, virtual]

Definition at line 592 of file MemRefExpr.hpp.


Member Function Documentation

void OA::SubSetRef::acceptVisitor ( MemRefExprVisitor pVisitor  )  [virtual]

Implements OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 600 of file MemRefExpr.cpp.

References OA::MemRefExprVisitor::visitSubSetRef().

Here is the call graph for this function:

OA_ptr< MemRefExpr > OA::SubSetRef::clone (  )  [virtual]

return a ptr to a copy of self

Implements OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 593 of file MemRefExpr.cpp.

References SubSetRef().

Referenced by OA::Alias::RecordMREsVisitor::visitSubSetRef().

Here is the call graph for this function:

OA_ptr< MemRefExpr > OA::SubSetRef::composeWith ( OA_ptr< MemRefExpr mre  )  [virtual]

Will make this Refop wrap the given mre and return the result.

Implements OA::RefOp.

Definition at line 607 of file MemRefExpr.cpp.

References SubSetRef().

Here is the call graph for this function:

void OA::SubSetRef::dump ( std::ostream &  os  )  [virtual]

Reimplemented from OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 655 of file MemRefExpr.cpp.

References OA::OA_ptr< T >::dump(), dump(), and OA::RefOp::getMemRefExpr().

Here is the call graph for this function:

void OA::SubSetRef::dump ( std::ostream &  os,
IRHandlesIRInterface pIR 
) [virtual]

Reimplemented from OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 664 of file MemRefExpr.cpp.

References OA::OA_ptr< T >::dump(), dump(), and OA::RefOp::getMemRefExpr().

Here is the call graph for this function:

void OA::SubSetRef::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface pIR 
) [virtual]

Reimplemented from OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 673 of file MemRefExpr.cpp.

Referenced by dump().

virtual int OA::SubSetRef::getOrder (  )  [inline, virtual]

Reimplemented from OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 636 of file MemRefExpr.hpp.

References sOrder.

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

virtual bool OA::SubSetRef::isaSubSetRef (  )  [inline, virtual]

Reimplemented from OA::MemRefExpr.

Definition at line 602 of file MemRefExpr.hpp.

virtual bool OA::SubSetRef::isSubClassOfSubSetRef (  )  [inline, virtual]

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 603 of file MemRefExpr.hpp.

bool OA::SubSetRef::operator< ( MemRefExpr other  )  [virtual]

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 627 of file MemRefExpr.cpp.

References OA::RefOp::getMemRefExpr(), OA::MemRefExpr::getOrder(), and getOrder().

Here is the call graph for this function:

bool OA::SubSetRef::operator== ( MemRefExpr other  )  [virtual]

check if two memory references are equal at the level of accuracy provided by the MemRefExpr approximation

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 641 of file MemRefExpr.cpp.

References OA::RefOp::getMemRefExpr(), OA::MemRefExpr::getOrder(), and getOrder().

Here is the call graph for this function:

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

Reimplemented from OA::RefOp.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 618 of file MemRefExpr.cpp.

References OA::Annotation::sOutBuild.

virtual std::string OA::SubSetRef::typeString (  )  [inline, virtual]

Reimplemented from OA::RefOp.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 626 of file MemRefExpr.hpp.


Member Data Documentation

const int OA::SubSetRef::sOrder = 600 [static, private]

Reimplemented from OA::MemRefExpr.

Reimplemented in OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 639 of file MemRefExpr.hpp.

Referenced by getOrder().


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

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