OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
OA::IdxAccess Class Reference

#include <MemRefExpr.hpp>

Inheritance diagram for OA::IdxAccess:
Inheritance graph
Collaboration diagram for OA::IdxAccess:
Collaboration graph

Public Member Functions

 IdxAccess (MemRefType mrType, OA_ptr< MemRefExpr > mre, int idx)
 
 IdxAccess (IdxAccess &mre)
 copy constructor More...
 
 ~IdxAccess ()
 
void acceptVisitor (MemRefExprVisitor &pVisitor)
 
OA_ptr< MemRefExprclone ()
 return a ptr to a copy of self More...
 
bool isaIdxAccess ()
 
bool isSubClassOfSubSetRef ()
 
int getIdx ()
 
virtual std::string typeString ()
 
bool operator< (MemRefExpr &other)
 
bool operator== (MemRefExpr &other)
 
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 ()
 
- Public Member Functions inherited from OA::SubSetRef
 SubSetRef (MemRefType mrType, OA_ptr< MemRefExpr > mre)
 
 SubSetRef (SubSetRef &mre)
 copy constructor More...
 
virtual ~SubSetRef ()
 
virtual bool isaSubSetRef ()
 
OA_ptr< MemRefExprcomposeWith (OA_ptr< MemRefExpr > mre)
 Will make this Refop wrap the given mre and return the result. More...
 
- Public Member Functions inherited from OA::RefOp
 RefOp (MemRefType mrType, OA_ptr< MemRefExpr > mre)
 
 RefOp (RefOp &mre)
 copy constructor More...
 
virtual ~RefOp ()
 
bool isaRefOp ()
 
SymHandle getBaseSym ()
 
OA_ptr< MemRefExprgetBase ()
 
OA_ptr< MemRefExprgetMemRefExpr ()
 Return the MRE that decorating this object. More...
 
- Public Member Functions inherited from OA::MemRefExpr
 MemRefExpr (MemRefType mrType)
 
 MemRefExpr (MemRefExpr &mre)
 copy constructor More...
 
virtual ~MemRefExpr ()
 
virtual bool isaNamed ()
 
virtual bool isaUnnamed ()
 
virtual bool isaUnknown ()
 
virtual bool isaDeref ()
 
virtual bool isaAddressOf ()
 
virtual bool isaIdxExprAccess ()
 
virtual bool isaFieldAccess ()
 
MemRefType getMRType ()
 whether USE/DEF MemRefExpr More...
 
bool isDef ()
 is this a def mem ref More...
 
bool isUse ()
 is this a use mem ref More...
 
bool isDefUse ()
 is this a defuse mem ref More...
 
bool isUseDef ()
 is this a usedef mem ref More...
 
void setMemRefType (MemRefExpr::MemRefType mrType)
 specify the memory reference type More...
 
bool operator!= (MemRefExpr &other)
 
std::string toString (MemRefType)
 
- Public Member Functions inherited from OA::Annotation
 Annotation ()
 
virtual ~Annotation ()
 

Private Attributes

int mIdx
 

Static Private Attributes

static const int sOrder = 400
 

Additional Inherited Members

- Public Types inherited from OA::MemRefExpr
enum  MemRefType { USE, DEF, USEDEF, DEFUSE }
 
- Static Public Member Functions inherited from OA::Annotation
static void configOutput (OA_ptr< OutputBuilder > ob)
 
- Static Protected Attributes inherited from OA::Annotation
static OA_ptr< OutputBuildersOutBuild
 

Detailed Description

The IdxAccess class indicates a constant array index.

Definition at line 647 of file MemRefExpr.hpp.

Constructor & Destructor Documentation

OA::IdxAccess::IdxAccess ( MemRefType  mrType,
OA_ptr< MemRefExpr mre,
int  idx 
)
inline

Definition at line 650 of file MemRefExpr.hpp.

Referenced by clone().

OA::IdxAccess::IdxAccess ( IdxAccess mre)
inline

copy constructor

Definition at line 654 of file MemRefExpr.hpp.

OA::IdxAccess::~IdxAccess ( )
inline

Definition at line 656 of file MemRefExpr.hpp.

Member Function Documentation

void OA::IdxAccess::acceptVisitor ( MemRefExprVisitor pVisitor)
virtual

Reimplemented from OA::SubSetRef.

Definition at line 682 of file MemRefExpr.cpp.

References OA::MemRefExprVisitor::visitIdxAccess().

Here is the call graph for this function:

OA_ptr< MemRefExpr > OA::IdxAccess::clone ( )
virtual

return a ptr to a copy of self

Reimplemented from OA::SubSetRef.

Definition at line 687 of file MemRefExpr.cpp.

References IdxAccess().

Here is the call graph for this function:

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

Reimplemented from OA::SubSetRef.

Definition at line 769 of file MemRefExpr.cpp.

Referenced by main().

void OA::IdxAccess::dump ( std::ostream &  os,
IRHandlesIRInterface pIR 
)
virtual

Reimplemented from OA::SubSetRef.

Definition at line 760 of file MemRefExpr.cpp.

References OA::MemRefExpr::dump(), getIdx(), and OA::RefOp::getMemRefExpr().

Here is the call graph for this function:

void OA::IdxAccess::dump ( std::ostream &  os)
virtual

Reimplemented from OA::SubSetRef.

Definition at line 751 of file MemRefExpr.cpp.

References OA::MemRefExpr::dump(), getIdx(), and OA::RefOp::getMemRefExpr().

Here is the call graph for this function:

virtual int OA::IdxAccess::getOrder ( )
inlinevirtual

Reimplemented from OA::SubSetRef.

Definition at line 697 of file MemRefExpr.hpp.

References sOrder.

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

bool OA::IdxAccess::isaIdxAccess ( )
inlinevirtual

Reimplemented from OA::MemRefExpr.

Definition at line 666 of file MemRefExpr.hpp.

bool OA::IdxAccess::isSubClassOfSubSetRef ( )
inlinevirtual

Reimplemented from OA::SubSetRef.

Definition at line 667 of file MemRefExpr.hpp.

bool OA::IdxAccess::operator< ( MemRefExpr other)
virtual

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 IdxAccess ordering is done by underlying reference and then then idx.

Any subclasses to SubSetRef that are added later must handle IdxAccess specifically, otherwise there will be inconsistent ordering.

Reimplemented from OA::SubSetRef.

Definition at line 707 of file MemRefExpr.cpp.

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

Here is the call graph for this function:

bool OA::IdxAccess::operator== ( MemRefExpr other)
virtual

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

Reimplemented from OA::SubSetRef.

Definition at line 725 of file MemRefExpr.cpp.

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

Here is the call graph for this function:

void OA::IdxAccess::output ( IRHandlesIRInterface ir)
virtual

Reimplemented from OA::SubSetRef.

Definition at line 742 of file MemRefExpr.cpp.

References OA::int2string(), mIdx, OA::RefOp::output(), and OA::Annotation::sOutBuild.

Here is the call graph for this function:

virtual std::string OA::IdxAccess::typeString ( )
inlinevirtual

Reimplemented from OA::SubSetRef.

Definition at line 673 of file MemRefExpr.hpp.

Member Data Documentation

int OA::IdxAccess::mIdx
private

Definition at line 701 of file MemRefExpr.hpp.

Referenced by getIdx(), and output().

const int OA::IdxAccess::sOrder = 400
staticprivate

Definition at line 700 of file MemRefExpr.hpp.

Referenced by getOrder().


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