OA::MemRefExpr Class Reference

#include <MemRefExpr.hpp>

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

List of all members.

Public Types

enum  MemRefType { USE, DEF, USEDEF, DEFUSE }

Public Member Functions

 MemRefExpr (MemRefType mrType)
 MemRefExpr (MemRefExpr &mre)
 copy constructor
virtual ~MemRefExpr ()
virtual void acceptVisitor (MemRefExprVisitor &pVisitor)=0
virtual OA_ptr< MemRefExprclone ()=0
virtual bool isaNamed ()
virtual bool isaUnnamed ()
virtual bool isaUnknown ()
virtual bool isaRefOp ()
virtual bool isaDeref ()
virtual bool isaAddressOf ()
virtual bool isaSubSetRef ()
virtual bool isaIdxAccess ()
virtual bool isaIdxExprAccess ()
virtual bool isaFieldAccess ()
MemRefType getMRType ()
 whether USE/DEF MemRefExpr
bool isDef ()
 is this a def mem ref
bool isUse ()
 is this a use mem ref
bool isDefUse ()
 is this a defuse mem ref
bool isUseDef ()
 is this a usedef mem ref
void setMemRefType (MemRefExpr::MemRefType mrType)
 specify the memory reference type
virtual bool operator< (MemRefExpr &other)
 an ordering for locations, needed for use within STL containers
virtual bool operator== (MemRefExpr &other)
bool operator!= (MemRefExpr &other)
void output (IRHandlesIRInterface &ir)
virtual std::string typeString ()
std::string toString (MemRefType)
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

MemRefType mMemRefType

Static Private Attributes

static const int sOrder = -100

Detailed Description

abstract base class that has default implementations for the methods that all MemRefExpr's must provide

Definition at line 76 of file MemRefExpr.hpp.


Member Enumeration Documentation

Enumerator:
USE 
DEF 
USEDEF 
DEFUSE 

Definition at line 78 of file MemRefExpr.hpp.


Constructor & Destructor Documentation

OA::MemRefExpr::MemRefExpr ( MemRefType  mrType  )  [inline]

Definition at line 87 of file MemRefExpr.hpp.

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

copy constructor

Definition at line 90 of file MemRefExpr.hpp.

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

Definition at line 92 of file MemRefExpr.hpp.


Member Function Documentation

virtual void OA::MemRefExpr::acceptVisitor ( MemRefExprVisitor pVisitor  )  [pure virtual]
virtual OA_ptr<MemRefExpr> OA::MemRefExpr::clone (  )  [pure virtual]
void OA::MemRefExpr::dump ( std::ostream &  os  )  [virtual]

Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 60 of file MemRefExpr.cpp.

References mMemRefType, and toString().

Here is the call graph for this function:

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

Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 49 of file MemRefExpr.cpp.

References dump().

Here is the call graph for this function:

void OA::MemRefExpr::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface pIR 
) [virtual]
MemRefType OA::MemRefExpr::getMRType (  )  [inline]
virtual int OA::MemRefExpr::getOrder (  )  [inline, virtual]
virtual bool OA::MemRefExpr::isaAddressOf (  )  [inline, virtual]

Reimplemented in OA::AddressOf.

Definition at line 108 of file MemRefExpr.hpp.

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

Reimplemented in OA::Deref.

Definition at line 107 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaFieldAccess (  )  [inline, virtual]

Reimplemented in OA::FieldAccess.

Definition at line 113 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaIdxAccess (  )  [inline, virtual]

Reimplemented in OA::IdxAccess.

Definition at line 111 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaIdxExprAccess (  )  [inline, virtual]

Reimplemented in OA::IdxExprAccess.

Definition at line 112 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaNamed (  )  [inline, virtual]

Reimplemented in OA::NamedRef.

Definition at line 102 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaRefOp (  )  [inline, virtual]

Reimplemented in OA::RefOp.

Definition at line 105 of file MemRefExpr.hpp.

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

Reimplemented in OA::SubSetRef.

Definition at line 110 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaUnknown (  )  [inline, virtual]

Reimplemented in OA::UnknownRef.

Definition at line 104 of file MemRefExpr.hpp.

virtual bool OA::MemRefExpr::isaUnnamed (  )  [inline, virtual]

Reimplemented in OA::UnnamedRef.

Definition at line 103 of file MemRefExpr.hpp.

bool OA::MemRefExpr::isDef (  )  [inline]

is this a def mem ref

Definition at line 123 of file MemRefExpr.hpp.

References DEF, DEFUSE, mMemRefType, and USEDEF.

Referenced by NotationGenerator::outputMemRefType().

bool OA::MemRefExpr::isDefUse (  )  [inline]

is this a defuse mem ref

Definition at line 131 of file MemRefExpr.hpp.

References DEFUSE, and mMemRefType.

Referenced by NotationGenerator::outputMemRefType().

bool OA::MemRefExpr::isUse (  )  [inline]

is this a use mem ref

Definition at line 127 of file MemRefExpr.hpp.

References DEFUSE, mMemRefType, USE, and USEDEF.

Referenced by NotationGenerator::outputMemRefType().

bool OA::MemRefExpr::isUseDef (  )  [inline]

is this a usedef mem ref

Definition at line 134 of file MemRefExpr.hpp.

References mMemRefType, and USEDEF.

Referenced by NotationGenerator::outputMemRefType().

bool OA::MemRefExpr::operator!= ( MemRefExpr other  )  [inline]

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

Definition at line 156 of file MemRefExpr.hpp.

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

an ordering for locations, needed for use within STL containers

Need consistent ordering.

Definition at line 30 of file MemRefExpr.cpp.

References getOrder().

Here is the call graph for this function:

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

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

Definition at line 37 of file MemRefExpr.cpp.

References getOrder().

Here is the call graph for this function:

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

Implements OA::Annotation.

Reimplemented in OA::NamedRef, OA::UnnamedRef, OA::UnknownRef, OA::RefOp, OA::AddressOf, OA::Deref, OA::SubSetRef, OA::IdxAccess, OA::IdxExprAccess, and OA::FieldAccess.

Definition at line 44 of file MemRefExpr.cpp.

References mMemRefType, OA::Annotation::sOutBuild, and toString().

Here is the call graph for this function:

void OA::MemRefExpr::setMemRefType ( MemRefExpr::MemRefType  mrType  )  [inline]

specify the memory reference type

Definition at line 141 of file MemRefExpr.hpp.

References mMemRefType.

std::string OA::MemRefExpr::toString ( MemRefType  type  ) 

Definition at line 66 of file MemRefExpr.cpp.

References DEF, DEFUSE, mMemRefType, USE, and USEDEF.

Referenced by dump(), and output().

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

Member Data Documentation

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

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

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