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

#include <ManagerFIAlias.hpp>

Inheritance diagram for OA::Alias::InvisibleLocationVisitor:
Inheritance graph
Collaboration diagram for OA::Alias::InvisibleLocationVisitor:
Collaboration graph

Public Member Functions

 InvisibleLocationVisitor (OA_ptr< AliasIRInterface > ir, ProcHandle proc, std::set< SymHandle > &procFormalSet)
 
 ~InvisibleLocationVisitor ()
 
bool isInvisibleRef ()
 
OA_ptr< LocationgetInvisibleRefLoc ()
 
void visitNamedRef (NamedRef &ref)
 
void visitUnnamedRef (UnnamedRef &ref)
 
void visitUnknownRef (UnknownRef &ref)
 
void visitDeref (Deref &ref)
 
void visitAddressOf (AddressOf &ref)
 
void visitSubSetRef (SubSetRef &ref)
 
void visitFieldAccess (FieldAccess &ref)
 
void visitIdxAccess (IdxAccess &ref)
 
void visitIdxExprAccess (IdxExprAccess &ref)
 
- Public Member Functions inherited from OA::MemRefExprVisitor
virtual ~MemRefExprVisitor ()
 

Private Member Functions

void notInvisible ()
 

Private Attributes

bool mInvisibleRef
 
bool mBaseIsNotLocal
 
bool mBaseIsFormal
 
OA_ptr< LocationmLoc
 
OA_ptr< AliasIRInterfacemIR
 
ProcHandle mProc
 
std::set< SymHandle > & mProcFormalSet
 

Additional Inherited Members

- Protected Member Functions inherited from OA::MemRefExprVisitor
 MemRefExprVisitor ()
 

Detailed Description

Visitor over memory reference expressions that determines if a memory reference is some level of dereference involving a formal parameter or a symbol that is visible outside of the current procedure and inside the current proc. If so then an InvisibleLoc is created.

Definition at line 81 of file ManagerFIAlias.hpp.

Constructor & Destructor Documentation

OA::Alias::InvisibleLocationVisitor::InvisibleLocationVisitor ( OA_ptr< AliasIRInterface ir,
ProcHandle  proc,
std::set< SymHandle > &  procFormalSet 
)
inline

Definition at line 83 of file ManagerFIAlias.hpp.

OA::Alias::InvisibleLocationVisitor::~InvisibleLocationVisitor ( )
inline

Definition at line 87 of file ManagerFIAlias.hpp.

Member Function Documentation

OA_ptr< Location > OA::Alias::InvisibleLocationVisitor::getInvisibleRefLoc ( )
bool OA::Alias::InvisibleLocationVisitor::isInvisibleRef ( )
void OA::Alias::InvisibleLocationVisitor::notInvisible ( )
private

Definition at line 241 of file ManagerFIAlias.cpp.

References mInvisibleRef, and mLoc.

Referenced by visitAddressOf(), visitNamedRef(), visitUnknownRef(), and visitUnnamedRef().

void OA::Alias::InvisibleLocationVisitor::visitAddressOf ( AddressOf ref)
virtual

Implements OA::MemRefExprVisitor.

Definition at line 248 of file ManagerFIAlias.cpp.

References notInvisible().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitDeref ( Deref ref)
virtual

Implements OA::MemRefExprVisitor.

Definition at line 275 of file ManagerFIAlias.cpp.

References OA::Deref::clone(), OA::RefOp::getMemRefExpr(), mBaseIsFormal, mBaseIsNotLocal, mInvisibleRef, mLoc, and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitFieldAccess ( FieldAccess ref)
virtual

Reimplemented from OA::MemRefExprVisitor.

Definition at line 302 of file ManagerFIAlias.cpp.

References OA::FieldAccess::getFieldName(), OA::RefOp::getMemRefExpr(), mInvisibleRef, mLoc, and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitIdxAccess ( IdxAccess ref)
virtual

Reimplemented from OA::MemRefExprVisitor.

Definition at line 312 of file ManagerFIAlias.cpp.

References OA::IdxAccess::getIdx(), OA::RefOp::getMemRefExpr(), mInvisibleRef, mLoc, and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitIdxExprAccess ( IdxExprAccess ref)
virtual

Reimplemented from OA::MemRefExprVisitor.

Definition at line 322 of file ManagerFIAlias.cpp.

References OA::RefOp::getMemRefExpr(), mInvisibleRef, mLoc, and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitNamedRef ( NamedRef ref)
virtual

if NamedRef is the base of a derference then we need to know whether the NamedRef is a formal or not local

Implements OA::MemRefExprVisitor.

Definition at line 254 of file ManagerFIAlias.cpp.

References OA::NamedRef::getSymHandle(), OA::Location::isLocal(), mBaseIsFormal, mBaseIsNotLocal, mInvisibleRef, mIR, mLoc, mProc, mProcFormalSet, notInvisible(), and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitSubSetRef ( SubSetRef ref)
virtual

Implements OA::MemRefExprVisitor.

Definition at line 290 of file ManagerFIAlias.cpp.

References OA::RefOp::getMemRefExpr(), mInvisibleRef, mLoc, and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitUnknownRef ( UnknownRef ref)
virtual

Implements OA::MemRefExprVisitor.

Definition at line 236 of file ManagerFIAlias.cpp.

References notInvisible().

Here is the call graph for this function:

void OA::Alias::InvisibleLocationVisitor::visitUnnamedRef ( UnnamedRef ref)
virtual

Implements OA::MemRefExprVisitor.

Definition at line 231 of file ManagerFIAlias.cpp.

References notInvisible().

Here is the call graph for this function:

Member Data Documentation

bool OA::Alias::InvisibleLocationVisitor::mBaseIsFormal
private

Definition at line 117 of file ManagerFIAlias.hpp.

Referenced by visitDeref(), and visitNamedRef().

bool OA::Alias::InvisibleLocationVisitor::mBaseIsNotLocal
private

Definition at line 116 of file ManagerFIAlias.hpp.

Referenced by visitDeref(), and visitNamedRef().

bool OA::Alias::InvisibleLocationVisitor::mInvisibleRef
private
OA_ptr<AliasIRInterface> OA::Alias::InvisibleLocationVisitor::mIR
private

Definition at line 119 of file ManagerFIAlias.hpp.

Referenced by visitNamedRef().

OA_ptr<Location> OA::Alias::InvisibleLocationVisitor::mLoc
private
ProcHandle OA::Alias::InvisibleLocationVisitor::mProc
private

Definition at line 120 of file ManagerFIAlias.hpp.

Referenced by visitNamedRef().

std::set<SymHandle>& OA::Alias::InvisibleLocationVisitor::mProcFormalSet
private

Definition at line 121 of file ManagerFIAlias.hpp.

Referenced by visitNamedRef().


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