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

#include <AliasIRInterface.hpp>

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

Public Member Functions

 AliasIRInterface ()
 
virtual ~AliasIRInterface ()
 
virtual OA_ptr< IRStmtIteratorgetStmtIterator (ProcHandle h)=0
 
virtual OA_ptr
< MemRefHandleIterator
getAllMemRefs (StmtHandle stmt)=0
 
virtual OA_ptr
< PtrAssignPairStmtIterator
getPtrAssignStmtPairIterator (StmtHandle stmt)=0
 
virtual OA_ptr
< ParamBindPtrAssignIterator
getParamBindPtrAssignIterator (CallHandle call)=0
 
virtual SymHandle getFormalSym (ProcHandle, int)=0
 
virtual OA_ptr
< IRCallsiteIterator
getCallsites (StmtHandle h)=0
 Return an iterator over all of the callsites in a given stmt. More...
 
virtual OA_ptr< MemRefExprgetCallMemRefExpr (CallHandle h)=0
 
virtual ProcHandle getProcHandle (SymHandle sym)=0
 Given the callee symbol returns the callee proc handle. More...
 
virtual SymHandle getSymHandle (ProcHandle h)=0
 Given a procedure return associated SymHandle. More...
 
virtual OA_ptr< LocationgetLocation (ProcHandle p, SymHandle s)=0
 
virtual OA_ptr
< MemRefExprIterator
getMemRefExprIterator (MemRefHandle h)=0
 
- Public Member Functions inherited from OA::IRHandlesIRInterface
virtual ~IRHandlesIRInterface ()
 
virtual std::string toString (const ProcHandle h)=0
 
virtual std::string toString (const StmtHandle h)=0
 
virtual std::string toString (const ExprHandle h)=0
 
virtual std::string toString (const OpHandle h)=0
 
virtual std::string toString (const MemRefHandle h)=0
 
virtual std::string toString (const CallHandle h)=0
 
virtual std::string toString (const SymHandle h)=0
 
virtual std::string toString (const ConstSymHandle h)=0
 
virtual std::string toString (const ConstValHandle h)=0
 
virtual void dump (MemRefHandle h, std::ostream &os)=0
 Given a memory reference, pretty-print it to the output stream os. More...
 
virtual void dump (StmtHandle stmt, std::ostream &os)=0
 Given a statement, pretty-print it to the output stream os. More...
 
virtual void dump (SymHandle sym, std::ostream &os)=0
 Given a statement, pretty-print it to the output stream os. More...
 

Detailed Description

The AliasIRInterface abstract base class gives a set of methods for querying the source IR for information relevant to alias analysis. This is the primary interface for Alias to the underlying intermediate representation.

Definition at line 71 of file AliasIRInterface.hpp.

Constructor & Destructor Documentation

OA::Alias::AliasIRInterface::AliasIRInterface ( )
inline

Definition at line 73 of file AliasIRInterface.hpp.

virtual OA::Alias::AliasIRInterface::~AliasIRInterface ( )
inlinevirtual

Definition at line 74 of file AliasIRInterface.hpp.

Member Function Documentation

virtual OA_ptr<MemRefHandleIterator> OA::Alias::AliasIRInterface::getAllMemRefs ( StmtHandle  stmt)
pure virtual

Return an iterator over all the memory reference handles that appear in the given statement. Order that memory references are iterated over can be arbitrary.

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

Referenced by NotationGenerator::outputMemRefExprs().

virtual OA_ptr<MemRefExpr> OA::Alias::AliasIRInterface::getCallMemRefExpr ( CallHandle  h)
pure virtual

Given a procedure call create a memory reference expression to describe that call. For example, a normal call is a NamedRef. A call involving a function ptr is a Deref.

Implemented in Open64IRInterface.

Referenced by NotationGenerator::outputCallSites().

virtual OA_ptr<IRCallsiteIterator> OA::Alias::AliasIRInterface::getCallsites ( StmtHandle  h)
pure virtual

Return an iterator over all of the callsites in a given stmt.

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

Referenced by NotationGenerator::outputCallSites(), and NotationGenerator::outputParamBindPtrAssignPairs().

virtual SymHandle OA::Alias::AliasIRInterface::getFormalSym ( ProcHandle  ,
int   
)
pure virtual

Return the symbol handle for the nth formal parameter to proc Number starts at 0 and implicit parameters should be given a number in the order as well. This number should correspond to the number provided in getParamBindPtrAssign pairs Should return SymHandle(0) if there is no formal parameter for given num

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

Referenced by NotationGenerator::outputFormals().

virtual OA_ptr<Location> OA::Alias::AliasIRInterface::getLocation ( ProcHandle  p,
SymHandle  s 
)
pure virtual

Given a subprogram return an IRSymIterator for all symbols that are visible in the subprogram Given a subprogram return an IRStmtIterator for all statements that involve an unnamed dynamic memory allocation in the subprogram For the given symbol create a Location that indicates statically overlapping locations and information about whether the location is local or not for the given procedure, local means only visible in this procedure

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

Referenced by NotationGenerator::outputLocation().

virtual OA_ptr<MemRefExprIterator> OA::Alias::AliasIRInterface::getMemRefExprIterator ( MemRefHandle  h)
pure virtual

Given a MemRefHandle return an iterator over MemRefExprs that describe this memory reference

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

Referenced by NotationGenerator::outputMemRefExprs().

virtual OA_ptr<ParamBindPtrAssignIterator> OA::Alias::AliasIRInterface::getParamBindPtrAssignIterator ( CallHandle  call)
pure virtual

Return an iterator over <int, MemRefExpr> pairs where the integer represents which formal parameter and the MemRefExpr describes the corresponding actual argument.

Implemented in Open64IRInterface.

Referenced by NotationGenerator::outputParamBindPtrAssignPairs().

virtual ProcHandle OA::Alias::AliasIRInterface::getProcHandle ( SymHandle  sym)
pure virtual

Given the callee symbol returns the callee proc handle.

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

virtual OA_ptr<PtrAssignPairStmtIterator> OA::Alias::AliasIRInterface::getPtrAssignStmtPairIterator ( StmtHandle  stmt)
pure virtual

If this is a PTR_ASSIGN_STMT then return an iterator over MemRefHandle pairs where there is a source and target such that target

Implemented in Open64IRInterface.

Referenced by NotationGenerator::outputPtrAssignPairs().

virtual OA_ptr<IRStmtIterator> OA::Alias::AliasIRInterface::getStmtIterator ( ProcHandle  h)
pure virtual

Given a subprogram return an IRStmtIterator for the entire subprogram

Implemented in Open64IRInterface, and OA::DUG::DUGIRInterface.

Referenced by NotationGenerator::generate().

virtual SymHandle OA::Alias::AliasIRInterface::getSymHandle ( ProcHandle  h)
pure virtual

Given a procedure return associated SymHandle.

Implemented in Open64IRInterface.

Referenced by NotationGenerator::outputProcedure().


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