OA::Deref Class Reference

#include <MemRefExpr.hpp>

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

List of all members.

Public Member Functions

 Deref (MemRefType mrType, OA_ptr< MemRefExpr > mre, int numDeref)
 Deref (MemRefType mrType, OA_ptr< MemRefExpr > mre)
 Deref (Deref &mre)
 copy constructor
 ~Deref ()
void acceptVisitor (MemRefExprVisitor &pVisitor)
OA_ptr< MemRefExprclone ()
 return a ptr to a copy of self
bool isaDeref ()
int getNumDerefs ()
virtual std::string typeString ()
bool operator< (MemRefExpr &other)
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 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 ()

Private Attributes

int mNumDeref

Static Private Attributes

static const int sOrder = 300

Detailed Description

The Deref class indicates how many times a memory reference is being dereferenced.

Definition at line 506 of file MemRefExpr.hpp.


Constructor & Destructor Documentation

OA::Deref::Deref ( MemRefType  mrType,
OA_ptr< MemRefExpr mre,
int  numDeref 
) [inline]

Definition at line 509 of file MemRefExpr.hpp.

Referenced by clone(), and composeWith().

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

Definition at line 515 of file MemRefExpr.hpp.

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

copy constructor

Definition at line 520 of file MemRefExpr.hpp.

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

Definition at line 522 of file MemRefExpr.hpp.


Member Function Documentation

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

Implements OA::MemRefExpr.

Definition at line 476 of file MemRefExpr.cpp.

References OA::MemRefExprVisitor::visitDeref().

Here is the call graph for this function:

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

return a ptr to a copy of self

Implements OA::MemRefExpr.

Definition at line 481 of file MemRefExpr.cpp.

References Deref().

Referenced by OA::Alias::RecordMREsVisitor::visitDeref(), and OA::Alias::InvisibleLocationVisitor::visitDeref().

Here is the call graph for this function:

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

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

Implements OA::RefOp.

Definition at line 538 of file MemRefExpr.cpp.

References OA::OA_ptr< T >::convert(), Deref(), and OA::MemRefExpr::getMRType().

Here is the call graph for this function:

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

Reimplemented from OA::MemRefExpr.

Definition at line 567 of file MemRefExpr.cpp.

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

Here is the call graph for this function:

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

Reimplemented from OA::MemRefExpr.

Definition at line 576 of file MemRefExpr.cpp.

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

Here is the call graph for this function:

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

Reimplemented from OA::MemRefExpr.

Definition at line 585 of file MemRefExpr.cpp.

Referenced by dump().

int OA::Deref::getNumDerefs (  )  [inline]
virtual int OA::Deref::getOrder (  )  [inline, virtual]

Reimplemented from OA::MemRefExpr.

Definition at line 569 of file MemRefExpr.hpp.

References sOrder.

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

bool OA::Deref::isaDeref (  )  [inline, virtual]

Reimplemented from OA::MemRefExpr.

Definition at line 532 of file MemRefExpr.hpp.

bool OA::Deref::operator< ( MemRefExpr other  ) 

References are ordered first between MemRefExpr subclasses in an specific order: NamedRef < UnnamedRef < Deref < SubSetRefs( IdxAccess < ... ) < UnknownRef. Then there is a consistent ordering within each subclass.

For Deref's ordering is done by underlying reference and then number of derefs.

Definition at line 497 of file MemRefExpr.cpp.

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

Here is the call graph for this function:

bool OA::Deref::operator== ( MemRefExpr other  ) 

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

Definition at line 516 of file MemRefExpr.cpp.

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

Here is the call graph for this function:

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

Reimplemented from OA::RefOp.

Definition at line 558 of file MemRefExpr.cpp.

References OA::int2string(), mNumDeref, and OA::Annotation::sOutBuild.

Here is the call graph for this function:

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

Reimplemented from OA::RefOp.

Definition at line 538 of file MemRefExpr.hpp.


Member Data Documentation

int OA::Deref::mNumDeref [private]

Definition at line 573 of file MemRefExpr.hpp.

Referenced by getNumDerefs(), and output().

const int OA::Deref::sOrder = 300 [static, private]

Reimplemented from OA::MemRefExpr.

Definition at line 572 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:53 2009 for OpenAnalysis by  doxygen 1.6.1