OpenADFortTk (basic)
Open64IRInterface Class Reference

#include <Open64IRInterface.hpp>

Collaboration diagram for Open64IRInterface:

List of all members.

Classes

class  FindUseMREVisitor

Public Member Functions

 Open64IRInterface ()
virtual ~Open64IRInterface ()
std::string toString (const OA::ProcHandle h)
std::string toString (const OA::StmtHandle h)
std::string toString (const OA::ExprHandle h)
std::string toString (const OA::OpHandle h)
std::string toString (const OA::MemRefHandle h)
std::string toString (const OA::SymHandle h)
std::string toString (const OA::ConstSymHandle h)
std::string toString (const OA::ConstValHandle h)
std::string toString (const OA::CallHandle h)
void dump (OA::StmtHandle stmt, std::ostream &os)
void dump (OA::MemRefHandle h, std::ostream &os)
void dump (OA::SymHandle h, std::ostream &os)
OA::OA_ptr< OA::IRStmtIterator > getStmtIterator (OA::ProcHandle h)
OA::OA_ptr< OA::IRStmtIterator > getPtrAsgnIterator (OA::ProcHandle h)
OA::OA_ptr
< OA::IRCallsiteIterator > 
getCallsites (OA::StmtHandle h)
 Return an iterator over all of the callsites in a given stmt.
OA::SymHandle getProcSymHandle (OA::ProcHandle h)
OA::OA_ptr
< OA::IRCallsiteParamIterator > 
getCallsiteParams (OA::CallHandle h)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
procBody (OA::ProcHandle h)
bool returnStatementsAllowed ()
 Are return statements allowed.
OA::CFG::IRStmtType getCFGStmtType (OA::StmtHandle h)
 Given a statement, return its CFG::IRStmtType.
OA::StmtLabel getLabel (OA::StmtHandle h)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
getFirstInCompound (OA::StmtHandle h)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
loopBody (OA::StmtHandle h)
OA::StmtHandle loopHeader (OA::StmtHandle h)
OA::StmtHandle getLoopIncrement (OA::StmtHandle h)
bool loopIterationsDefinedAtEntry (OA::StmtHandle h)
OA::ExprHandle getLoopCondition (OA::StmtHandle h)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
trueBody (OA::StmtHandle h)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
elseBody (OA::StmtHandle h)
OA::ExprHandle getCondition (OA::StmtHandle h)
int numMultiCases (OA::StmtHandle h)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
multiBody (OA::StmtHandle h, int bodyIndex)
bool isBreakImplied (OA::StmtHandle multicond)
bool isCatchAll (OA::StmtHandle h, int bodyIndex)
OA::OA_ptr
< OA::IRRegionStmtIterator > 
getMultiCatchall (OA::StmtHandle h)
OA::ExprHandle getSMultiCondition (OA::StmtHandle h, int bodyIndex)
OA::ExprHandle getSMultiTest (OA::StmtHandle h)
OA::StmtLabel getTargetLabel (OA::StmtHandle h, int n)
int numUMultiTargets (OA::StmtHandle h)
OA::StmtLabel getUMultiTargetLabel (OA::StmtHandle h, int targetIndex)
OA::StmtLabel getUMultiCatchallLabel (OA::StmtHandle h)
OA::ExprHandle getUMultiCondition (OA::StmtHandle h, int targetIndex)
OA::ExprHandle getUMultiTest (OA::StmtHandle h)
OA::OA_ptr
< OA::MemRefExprIterator > 
getUseMREs (OA::StmtHandle stmt)
 Get an Iterator over Use MREs.
OA::OA_ptr
< OA::MemRefExprIterator > 
getDefMREs (OA::StmtHandle stmt)
 Get an Iterator over Def MREs.
OA::OA_ptr
< OA::MemRefExprIterator > 
getDiffUseMREs (OA::StmtHandle stmt)
 Get an Iterator over DiffUse MREs.
OA::OA_ptr
< OA::MemRefExprIterator > 
getMemRefExprIterator (OA::MemRefHandle h)
OA::SymHandle getSymHandle (OA::ProcHandle h)
 Given a procedure return associated SymHandle.
OA::OA_ptr
< OA::Alias::PtrAssignPairStmtIterator > 
getPtrAssignStmtPairIterator (OA::StmtHandle stmt)
OA::OA_ptr
< OA::Alias::ParamBindPtrAssignIterator > 
getParamBindPtrAssignIterator (OA::CallHandle call)
OA::SymHandle getFormalSym (OA::ProcHandle, int)
OA::OA_ptr< OA::MemRefExpr > getCallMemRefExpr (OA::CallHandle h)
OA::OA_ptr< OA::Location > getLocation (OA::ProcHandle p, OA::SymHandle s)
OA::OA_ptr
< OA::MemRefExprIterator > 
getIndepMemRefExprIter (OA::ProcHandle h)
 Return an iterator over all independent MemRefExpr for given proc.
OA::OA_ptr
< OA::MemRefExprIterator > 
getDepMemRefExprIter (OA::ProcHandle h)
 Return an iterator over all dependent MemRefExpr for given proc.
int getSizeInBytes (OA::SymHandle h)
 given a symbol return the size in bytes of that symbol
OA::OA_ptr< OA::IRSymIterator > getRefSymIterator (OA::ProcHandle h)
OA::OA_ptr
< OA::MemRefHandleIterator > 
getAllMemRefs (OA::StmtHandle stmt)
OA::OA_ptr
< OA::MemRefHandleIterator > 
getDefMemRefs (OA::StmtHandle stmt)
OA::OA_ptr
< OA::MemRefHandleIterator > 
getUseMemRefs (OA::StmtHandle stmt)
OA::OA_ptr
< OA::AssignPairIterator > 
getAssignPairIterator (OA::StmtHandle h)
OA::OA_ptr
< OA::ExprHandleIterator > 
getExprHandleIterator (OA::StmtHandle stmt)
OA::OA_ptr
< OA::ConstValBasicInterface > 
evalOp (OA::OpHandle op, OA::OA_ptr< OA::ConstValBasicInterface > operand1, OA::OA_ptr< OA::ConstValBasicInterface > operand2)
OA::OA_ptr
< OA::ConstValBasicInterface > 
getConstValBasic (OA::ConstSymHandle c)
OA::OA_ptr
< OA::ConstValBasicInterface > 
getConstValBasic (OA::ConstValHandle c)
OA::StmtHandle getStmtFromMemRef (OA::MemRefHandle h)
 Return a stmt handle for the given memory reference handle.
std::string toString (OA::OA_ptr< OA::ConstValBasicInterface > cvPtr)
 Temporary routine for testing MPICFG // given a ConstValBasicInterface, print out value if any.
OA::OA_ptr
< OA::ConstValBasicInterface > 
getConstValBasic (unsigned int val)
 Temporary routine for testing ReachConsts.
int returnOpEnumValInt (OA::OpHandle op)
 temporary routine to find things out
OA::Linearity::LinOpType getLinearityOpType (OA::OpHandle op)
 get the operation type and returns a LinOpType
OA::OA_ptr
< OA::SideEffect::SideEffectStandard > 
getSideEffect (OA::ProcHandle callerProc, OA::SymHandle calleeSym)
OA::OA_ptr< OA::ExprTree > getExprTree (OA::ExprHandle h)
 Given an ExprHandle, return an ExprTree*.
bool isParam (OA::SymHandle)
 returns true if given symbol is a parameter
OA::ProcHandle getProcHandle (OA::SymHandle sym)
 Given the callee symbol returns the callee proc handle.
OA::OA_ptr< OA::MemRefExpr > convertSymToMemRefExpr (OA::SymHandle sym)
OA::OA_ptr
< OA::MemRefHandleIterator > 
getMemRefIterator (OA::StmtHandle h)
OA::SymHandle getFormalForActual (OA::ProcHandle caller, OA::CallHandle call, OA::ProcHandle callee, OA::ExprHandle param)
 return the formal parameter that an actual parameter is associated with.
OA::SymHandle getSymHandle (OA::CallHandle h)
bool isRefParam (OA::SymHandle)
 returns true if given symbol is a pass by reference parameter

Static Public Member Functions

static void DumpWN (WN *wn, ostream &os)
static void setIgnoreBlackBoxRoutines ()
static bool ignoreBlackBoxRoutines ()
static bool haveDefinition (WN *wn)
static void initContextState (PU_Info *pu_forest)
 User is responsible for doing this. It should not be part of.
static void setContext (OA::IRHandle h, OA::ProcHandle proc)

Private Member Functions

void findAllMemRefsAndMapToMemRefExprs (OA::StmtHandle stmt, WN *wn, unsigned lvl)
void createAndMapNamedRef (OA::StmtHandle stmt, WN *wn, ST *st, OA::MemRefExpr::MemRefType hty)
void createAndMapDerefs (OA::StmtHandle stmt, WN *wn, WN *subMemRef)
bool isPassByReference (WN *)
ST * findBaseSymbol (WN *)
void currentProc (OA::ProcHandle p)
OA::MemRefHandle findTopMemRefHandle (WN *wn)
bool ExprTree_hack_for_MPI (OA::MemRefHandle h, OA::OA_ptr< OA::ExprTree > tree)
OA::OA_ptr< OA::ExprTree > createExprTree (WN *wn)
OA::OA_ptr< OA::ExprTree::Node > createExprTree (OA::OA_ptr< OA::ExprTree > tree, WN *wn)
OA::OA_ptr
< OA::ConstValBasicInterface > 
getConstValBasicFromST (ST *st)

Static Private Member Functions

static const char * createCharStarForST (ST *)
 use this to appropriately get a string for a symbol
static void DumpWNMemRef (WN *wn, ostream &os)
static void DumpWNLeaf (WN *wn, ostream &os)
static void DumpWNMemRefLeaf (WN *wn, ostream &os)
static void initProcContext (PU_Info *pu_forest, Open64IRProcIterator &procIter)
static void setCurrentProcToProcContext (OA::IRHandle h)
static OA::ProcHandle getCurrentProcContext ()
static void setCurrentProcContext (OA::ProcHandle)
static fully_qualified_name create_fqn (OA::SymHandle sym)
static void initCallSymToProcMap (Open64IRProcIterator &procIter)
static void initProcToSymRefSetMap (Open64IRProcIterator &procIter)

Static Private Attributes

static std::map
< OA::StmtHandle, std::set
< OA::MemRefHandle > > 
sStmt2allMemRefsMap
static std::map
< OA::StmtHandle, std::set
< OA::ExprHandle > > 
mStmt2allExprsMap
static std::map
< OA::MemRefHandle,
OA::StmtHandle > 
sMemRef2StmtMap
static std::map
< OA::MemRefHandle, set
< OA::OA_ptr< OA::MemRefExpr > > > 
sMemref2mreSetMap
static std::map< OA::SymHandle,
OA::ProcHandle > 
sCallSymToProc
static std::map
< fully_qualified_name,
std::set< OA::SymHandle > > 
sGlobalVarMap
static std::map
< fully_qualified_name,
std::map< OA::ProcHandle,
OA::SymHandle > > 
sFQNToProcToLocalSymMap
static std::map< OA::SymHandle,
fully_qualified_name
sSymToFQNMap
static std::map< OA::SymHandle,
std::string > 
sSymToVarStringMap
static std::map
< OA::ExprHandle,
OA::CallHandle > 
sParamToCallMap
static std::map
< OA::ProcHandle, std::set
< OA::SymHandle > > 
sProcToSymRefSetMap
static std::map< OA::IRHandle,
OA::ProcHandle > 
sProcContext
static PU_Info * sProgContext = NULL
static bool sContextInit = false
static bool ourIgnoreBlackBoxRoutines = false

Friends

class Open64IRProcIterator
class Open64IRMemRefIterator
class Open64IRExprHandleIterator
class InitContextVisitor

Detailed Description

Definition at line 585 of file Open64IRInterface.hpp.


Constructor & Destructor Documentation

Definition at line 568 of file Open64IRInterface.cpp.


Member Function Documentation

OA::OA_ptr< OA::MemRefExpr > Open64IRInterface::convertSymToMemRefExpr ( OA::SymHandle  sym)

Definition at line 2991 of file Open64IRInterface.cpp.

References isRefParam().

Referenced by getDepMemRefExprIter(), and getIndepMemRefExprIter().

Here is the call graph for this function:

fully_qualified_name Open64IRInterface::create_fqn ( OA::SymHandle  sym) [static, private]

only call if the symbol is in a module or a common block

Definition at line 5162 of file Open64IRInterface.cpp.

References createCharStarForST(), SexpTags::ST, Stab_Is_Based_At_Common_Block(), and Stab_Is_Common_Block().

Referenced by initProcContext().

Here is the call graph for this function:

void Open64IRInterface::createAndMapDerefs ( OA::StmtHandle  stmt,
WN *  wn,
WN *  subMemRef 
) [private]

Definition at line 2959 of file Open64IRInterface.cpp.

References sMemref2mreSetMap, and sStmt2allMemRefsMap.

void Open64IRInterface::createAndMapNamedRef ( OA::StmtHandle  stmt,
WN *  wn,
ST *  st,
OA::MemRefExpr::MemRefType  hty 
) [private]
const char * Open64IRInterface::createCharStarForST ( ST *  st) [static, private]

use this to appropriately get a string for a symbol

constant symbols get their strings from the TCON table?

Definition at line 4580 of file Open64IRInterface.cpp.

Referenced by create_fqn(), DumpWN(), DumpWNMemRefLeaf(), initProcContext(), and toString().

OA::OA_ptr< OA::ExprTree > Open64IRInterface::createExprTree ( WN *  wn) [private]

Definition at line 4245 of file Open64IRInterface.cpp.

Referenced by createExprTree(), and getExprTree().

OA::OA_ptr< OA::ExprTree::Node > Open64IRInterface::createExprTree ( OA::OA_ptr< OA::ExprTree >  tree,
WN *  wn 
) [private]

Initialize root node of ExprTree

If empty node, return root, end of recursion

identify type of node.

Intrinsic Op ======== Opode ========

Iterate over Operands of OpNode

get ExprTree for children

connect ExprTree of children with OpNode

If Callsite, =========== CallNode ===========

If Integer Constant ============ ConstValNode ============

If Constant Symbol, =========== ConstSymNode ============

Very Very Important Please do this check at the end because we dont want to treat Operators as MemRefNodes even if MemRefExprs are associated with the Operator nodes e.g. StatementHandle: foo( A+B ) MemRefHandles: &A+B is associated with OPR_PARM node A+B is associated with OPR_ADD node ExprTrees Expected: 1. MemRefNode(&A+B) 2. OpNode (+) /\ (MemRefNode) A B (MemRefNode)

If MemRefHandle associated with the node ========= MemRefNode =======

ARRAEXP may have multiple chlildren but we want to recurse on kid0

special case indicating section of an array for which index expression is created. ============ ConstValNode ============

We want to add special logic for every node that has more than one child.

For any other type of node, Recurse over children

Definition at line 4283 of file Open64IRInterface.cpp.

References createExprTree(), ExprTree_hack_for_MPI(), IntrinsicInfo::isIntrinsic(), and sMemref2mreSetMap.

Here is the call graph for this function:

void Open64IRInterface::currentProc ( OA::ProcHandle  p) [inline, private]

Definition at line 1014 of file Open64IRInterface.hpp.

References PU_SetGlobalState().

Referenced by getDepMemRefExprIter(), getIndepMemRefExprIter(), getSideEffect(), and procBody().

Here is the call graph for this function:

void Open64IRInterface::dump ( OA::StmtHandle  stmt,
std::ostream &  os 
)

Definition at line 964 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

void Open64IRInterface::dump ( OA::MemRefHandle  h,
std::ostream &  os 
)

Definition at line 977 of file Open64IRInterface.cpp.

References DumpWN(), setCurrentProcToProcContext(), and toString().

Here is the call graph for this function:

void Open64IRInterface::dump ( OA::SymHandle  h,
std::ostream &  os 
)

Definition at line 1000 of file Open64IRInterface.cpp.

References toString().

Here is the call graph for this function:

void Open64IRInterface::DumpWN ( WN *  wn,
ostream &  os 
) [static]

Definition at line 4608 of file Open64IRInterface.cpp.

References createCharStarForST(), DumpWNLeaf(), and DumpWNMemRefLeaf().

Referenced by dump(), DumpWNMemRef(), and toString().

Here is the call graph for this function:

void Open64IRInterface::DumpWNLeaf ( WN *  wn,
ostream &  os 
) [static, private]

Definition at line 5027 of file Open64IRInterface.cpp.

References DumpWNMemRefLeaf().

Referenced by DumpWN().

Here is the call graph for this function:

void Open64IRInterface::DumpWNMemRef ( WN *  wn,
ostream &  os 
) [static, private]

Definition at line 5040 of file Open64IRInterface.cpp.

References DumpWN(), and DumpWNMemRefLeaf().

Referenced by ExprTree_hack_for_MPI(), and toString().

Here is the call graph for this function:

void Open64IRInterface::DumpWNMemRefLeaf ( WN *  wn,
ostream &  os 
) [static, private]

Definition at line 5060 of file Open64IRInterface.cpp.

References createCharStarForST().

Referenced by DumpWN(), DumpWNLeaf(), and DumpWNMemRef().

Here is the call graph for this function:

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::elseBody ( OA::StmtHandle  h)

Definition at line 1541 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::ConstValBasicInterface > Open64IRInterface::evalOp ( OA::OpHandle  op,
OA::OA_ptr< OA::ConstValBasicInterface >  operand1,
OA::OA_ptr< OA::ConstValBasicInterface >  operand2 
)

Given an OpHandle and two operands (unary ops will just use the first operand and the second operand should be NULL) return a ConstValBasicInterface

Definition at line 3537 of file Open64IRInterface.cpp.

References Open64ConstVal::eval().

Here is the call graph for this function:

bool Open64IRInterface::ExprTree_hack_for_MPI ( OA::MemRefHandle  h,
OA::OA_ptr< OA::ExprTree >  tree 
) [private]

Definition at line 4255 of file Open64IRInterface.cpp.

References DumpWNMemRef().

Referenced by createExprTree().

Here is the call graph for this function:

void Open64IRInterface::findAllMemRefsAndMapToMemRefExprs ( OA::StmtHandle  stmt,
WN *  wn,
unsigned  lvl 
) [private]

create NamedRef

If Formal Reference Parameter

get mre for the current MemRefHandle

composedWith Deref

remove current association

associate new mre with the current node

If Pointer

get mre for the current MemRefHandle

composedWith deref mre

remove current association

associate new mre with the current node

iterate over kid0, RHS

iterate over kid1, LHS

=================== Processing LHS ====================

create NamedRef

get mre for the current MemRefHandle

If Formal Reference Parameter

change MRE to USE

composedWith deref mre

remove current association

associate new mre with the current node

=================== Processing RHS ====================

get the mre for topMemRefHandle

composedWith AddressOf

remove current association

associate new mre with the current node

iterate over kid0, RHS

iterate over kid1, LHS

create NamedRef

If Formal Reference Parameter

get the mre for current MemRefHandle

change MRE to USE

composedWith create deref mre

remove current association

associate new mre with the current node

If Formal Reference Parameter

get the mre for current MemRefHandle

change MRE to USE

composedWith deref mre

remove current association

associate new mre with the current node

iterate over kid

get the top MemRefHandle

get the current MemRefHandle

steals mre mapped to topMemRefHandle

disassociate mre from topMemRefHandle

get the mre for current MemRefHandle

change MRE to USE

composedWith deref mre

associate new mre with the current node

iterate over kid

get the top MemRefHandle

ILOAD LDA const_sym assert(mtop != OA::MemRefHandle(0));

get the current MemRefHandle

steals mre mapped to topMemRefHandle

disassociate mre from topMemRefHandle

associate mre with the current node

iterate over kid0, RHS

iterate over kid1, LHS

get the top MemRefHandle

ILOAD LDA const_sym assert(mtop != OA::MemRefHandle(0));

get the current MemRefHandle

steals mre mapped to topMemRefHandle

disassociate mre from topMemRefHandle

Change type of mre

associate mre with the current MemRegfHandle

iterate over kid0, RHS

iterate over kid1, LHS

get the top MemRefHandle

get the current MemRefHandle

steals mre mapped to topMemRefHandle

disassociate mre from topMemRefHandle

Remove SubSetRef

remove Deref

associate mre with the current MemRegfHandle

=========== Processing RHS ==============

steals mre mapped to topMemRefHandle

disassociate mre from topMemRefHandle

RHS composedWith AddressOf

iterate over kid0

get the top MemRefHandle

get the current MemRefHandle

steals mre mapped to topMemRefHandle

disassociate mre from topMemRefHandle

associate mre with the current MemRefHandle

Array Indexes are expressions

Array Index Expressions are ExprHandles for which ExprTree exists.

iterate over kid0

Create MemRefExpr for each PARM

If Formal Reference Parameter, then apply AddressOf

composedWith AddressOf

remove current association

associate new mre with the current node

Iterate over the param nodes

get the MemRefHandle

Do not store ExprHandle mStmt2allExprsMap[stmt].erase((OA::irhandle_t)param);

steals mre mapped to topMemRefHandle

Remove AddressOf

remove Param MemRefHandle

remove UnnamedMRE associated with PARM kid

disassociate mre from topMemRefHandle

Remove ExprHandle

Remove AssignPairs

get the Symbol Table Entry

get the MemRefHandle

get associated MemRefExpr

disassociate Old MemRefExpr

Remove AddressOf

Remove SubSetRef

Remove Deref

Change MemRefType = DEF

associate new MRE

Create AddressOf(UnnamedRef) and associate with the kid of the param node.

create AddressOf(UnnamedRef(CALL))

composedWith AddressOf

associate new MemRefExpr

Create Pointer AssignPairs

UnnamedRef is PARM_kid, not PARM

Remove MemRefExpr associated with the last PARM and its kid.

get the MemRefHandle

remove MemRefHandle and mre

For the second PARM child

Remove MemRefHandle and mre again

this is an exprHandle

Iterate over the param nodes

create MemRefExpr

Remove ExprHandle

get the MemRefHandle

steals mre mapped to topMemRefHandle

Remove AddressOf

remove Param MemRefHandle

remove UnnamedMRE associated with PARM kid

Remove ExprHandle

Remove AssignPairs

disassociate mre from topMemRefHandle

Do not store this ExprHandle

get the MemRefHandle

steals mre mapped to topMemRefHandle

Remove ExprHandle for LHS of string assignment

iterate over kid0

get the top MemRefHandle

store ExprHandle

Create DEF UnnamedRef

associate UnnamedRef with the kid

steals mre mapped to topMemRefHandle

Disassociate mre

set UnnamedRef to USE MRE

composedWith AddressOf

associate mre with the current MemRefHandle

Definition at line 1857 of file Open64IRInterface.cpp.

References createAndMapNamedRef(), findBaseSymbol(), findTopMemRefHandle(), getCurrentProcContext(), IntrinsicInfo::intrinsicBaseName(), IntrinsicInfo::isIntrinsic(), isRefParam(), mStmt2allExprsMap, mStmtToAssignPairs, mStmtToPtrPairs, sMemref2mreSetMap, sStmt2allMemRefsMap, SexpTags::ST, WN2F_Can_Assign_Types(), WN_GetBaseObjType(), and WN_GetRefObjType().

Referenced by getAssignPairIterator(), and getMemRefIterator().

Here is the call graph for this function:

ST * Open64IRInterface::findBaseSymbol ( WN *  wn) [private]

Definition at line 2888 of file Open64IRInterface.cpp.

References DBGMSG_PUB, SexpTags::ST, and WN_intrinsic_name().

Referenced by findAllMemRefsAndMapToMemRefExprs().

Here is the call graph for this function:

OA::MemRefHandle Open64IRInterface::findTopMemRefHandle ( WN *  wn) [private]

Definition at line 4190 of file Open64IRInterface.cpp.

References IntrinsicInfo::intrinsicBaseName(), and sMemref2mreSetMap.

Referenced by findAllMemRefsAndMapToMemRefExprs().

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefHandleIterator > Open64IRInterface::getAllMemRefs ( OA::StmtHandle  stmt)

Return a list of all the memory reference handles that appear in the given statement.

Return a list of all the memory reference handles that appear in the given statement. User is responsible for deleting the list

Definition at line 3299 of file Open64IRInterface.cpp.

References getMemRefIterator(), and setCurrentProcToProcContext().

Referenced by getDiffUseMREs(), and getUseMemRefs().

Here is the call graph for this function:

OA::OA_ptr< OA::AssignPairIterator > Open64IRInterface::getAssignPairIterator ( OA::StmtHandle  h)

Given a statement return a list to the pairs of target MemRefHandle, ExprHandle where target = expr

Definition at line 3464 of file Open64IRInterface.cpp.

References findAllMemRefsAndMapToMemRefExprs(), mStmtToAssignPairs, and sStmt2allMemRefsMap.

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefExpr > Open64IRInterface::getCallMemRefExpr ( OA::CallHandle  h)

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.

Definition at line 3142 of file Open64IRInterface.cpp.

References getSymHandle().

Here is the call graph for this function:

OA::OA_ptr< OA::IRCallsiteParamIterator > Open64IRInterface::getCallsiteParams ( OA::CallHandle  h)

Definition at line 1055 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext().

Referenced by getMemRefIterator(), and getParamBindPtrAssignIterator().

Here is the call graph for this function:

OA::OA_ptr< OA::IRCallsiteIterator > Open64IRInterface::getCallsites ( OA::StmtHandle  h)

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

Definition at line 1041 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext().

Referenced by getMemRefIterator().

Here is the call graph for this function:

OA::CFG::IRStmtType Open64IRInterface::getCFGStmtType ( OA::StmtHandle  h)

Given a statement, return its CFG::IRStmtType.

Definition at line 1270 of file Open64IRInterface.cpp.

OA::ExprHandle Open64IRInterface::getCondition ( OA::StmtHandle  h)

Definition at line 1557 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::ConstValBasicInterface > Open64IRInterface::getConstValBasic ( OA::ConstSymHandle  c)

Given a ConstSymHandle return an abstraction representing the constant value

Definition at line 3549 of file Open64IRInterface.cpp.

References getConstValBasicFromST(), setCurrentProcToProcContext(), and SexpTags::ST.

Here is the call graph for this function:

OA::OA_ptr< OA::ConstValBasicInterface > Open64IRInterface::getConstValBasic ( OA::ConstValHandle  c)

Given a ConstValHandle return an abstraction representing the constant value User must free the ConstValBasicInterface

Definition at line 3557 of file Open64IRInterface.cpp.

References getConstValBasicFromST(), setCurrentProcToProcContext(), and SexpTags::ST.

Here is the call graph for this function:

OA::OA_ptr< OA::ConstValBasicInterface > Open64IRInterface::getConstValBasic ( unsigned int  val)

Temporary routine for testing ReachConsts.

Definition at line 3633 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::ConstValBasicInterface > Open64IRInterface::getConstValBasicFromST ( ST *  st) [private]

Definition at line 4510 of file Open64IRInterface.cpp.

Referenced by getConstValBasic().

OA::OA_ptr< OA::MemRefHandleIterator > Open64IRInterface::getDefMemRefs ( OA::StmtHandle  stmt)

Return a list of all the target memory reference handles that appear in the given statement.

Return a list of all def memory reference handles that appear in the given statement. User is responsible for deleting the list

================================================ only map those MREs that do not involve an addressOf operation added by PLM 09/14/06 ================================================

Definition at line 3252 of file Open64IRInterface.cpp.

References getMemRefIterator(), setCurrentProcToProcContext(), and sMemref2mreSetMap.

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefExprIterator > Open64IRInterface::getDefMREs ( OA::StmtHandle  stmt)

Get an Iterator over Def MREs.

Get an Iterator over Use MREs.

================================================ only map those MREs that do not involve an addressOf operation added by PLM 09/14/06 ================================================

Definition at line 4028 of file Open64IRInterface.cpp.

References getMemRefIterator(), and sMemref2mreSetMap.

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefExprIterator > Open64IRInterface::getDepMemRefExprIter ( OA::ProcHandle  h)

Return an iterator over all dependent MemRefExpr for given proc.

Return an iterator over all dependent MemRefExpr's for given proc.

Get MRE for the Independent Variable

Definition at line 3195 of file Open64IRInterface.cpp.

References convertSymToMemRefExpr(), currentProc(), and SexpTags::ST.

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefExprIterator > Open64IRInterface::getDiffUseMREs ( OA::StmtHandle  stmt)

Get an Iterator over DiffUse MREs.

Get an Iterator over Use MREs.

getDiffUses

Do not process Index Expressions.

dont need pointer expressions

Definition at line 4070 of file Open64IRInterface.cpp.

References getAllMemRefs(), and getMemRefExprIterator().

Here is the call graph for this function:

OA::OA_ptr< OA::ExprHandleIterator > Open64IRInterface::getExprHandleIterator ( OA::StmtHandle  stmt)

Definition at line 3453 of file Open64IRInterface.cpp.

References Open64IRExprHandleIterator.

OA::OA_ptr< OA::ExprTree > Open64IRInterface::getExprTree ( OA::ExprHandle  h)

Given an ExprHandle, return an ExprTree*.

Given an ExprHandle, return an ExprTree* The user must free the expr tree

Definition at line 3771 of file Open64IRInterface.cpp.

References createExprTree(), and setCurrentProcToProcContext().

Referenced by getParamBindPtrAssignIterator().

Here is the call graph for this function:

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::getFirstInCompound ( OA::StmtHandle  h)

Definition at line 1410 of file Open64IRInterface.cpp.

OA::SymHandle Open64IRInterface::getFormalForActual ( OA::ProcHandle  caller,
OA::CallHandle  call,
OA::ProcHandle  callee,
OA::ExprHandle  param 
)

return the formal parameter that an actual parameter is associated with.

return the formal parameter that an actual parameter is associated with. 'call' is a handle to the call node; 'param' is the actual parameter within the call node that we want info about.

PLM Important node regarding Optional Parameters: Reference :http://www.sesp.cse.clrc.ac.uk/Publications/felib90_design/design/node6.html

Occasionally, not all arguments are required every time a procedure is used. Therefore some arguments may be specified as optional, using the OPTIONAL attribute:

SUBROUTINE sub1(a, b, c, d) INTEGER, INTENT(INOUT):: a, b REAL, INTENT(IN), OPTIONAL :: c, d ... END SUBROUTINE sub1

Here a and b are always required when calling sub1. The arguments c and d are optional and so sub1 may be referenced by:

CALL sub1( a, b ) CALL sub1( a, b, c, d ) CALL sub1( a, b, c )

Note that the order in which arguments appear is important (unless keyword arguments are used) so that it is not possible to call sub1 with argument d but no argument c.

CALL sub1( a, b, d ) ! illegal

Optional arguments must come after all arguments associated by position in a referencing statement and require an explicit interface.

PLM : Places where explicit formal to actual matching needed.

For functions excluding following cases: 1. PURE INTEGER FUNCTION 2. ELEMENTAL REAL 3. RECURSIVE FUNCTIONS WITH RESULT (mentioned explicitely in the prototype) WHERE RESULT IS SCALAR VARIABLE 4. RECURSIVE FUNCTIONS WITHOUT RESULT (mentioned explicitely in the prototype)

Return type is one of the member of formal Parameter list. It appears as the first argument in the formal Parameter list. We need to match actual to formal starting from ParmIdx=1.

In case of Subroutine, we do not have Return-Type and therefore, We need to match actual to formal starting from ParmIdx=0.

The algorithm is as Follows:

  • In the list of formal argument of callee proc,
    • Get the ST entry for the first argument.
    • If the ST entry of the first argument is of "Return" type. start mapping from argument(1) in the parameter list
    • else start mapping from argument(0) in the parameter list.

PLM more details: in case of Indirect Function Calls (e.g. using function pointers), function pointer is also one of the member of parameter list.

Definition at line 1108 of file Open64IRInterface.cpp.

References PU_SetGlobalState(), setCurrentProcToProcContext(), and SexpTags::ST.

Referenced by isPassByReference().

Here is the call graph for this function:

OA::SymHandle Open64IRInterface::getFormalSym ( OA::ProcHandle  proc,
int  formalID 
)

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

Definition at line 3114 of file Open64IRInterface.cpp.

References PU_SetGlobalState(), and SexpTags::ST.

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefExprIterator > Open64IRInterface::getIndepMemRefExprIter ( OA::ProcHandle  h)

Return an iterator over all independent MemRefExpr for given proc.

Return an iterator over all independent locations for given proc.

Get MRE for the Independent Variable

Definition at line 3158 of file Open64IRInterface.cpp.

References convertSymToMemRefExpr(), currentProc(), and SexpTags::ST.

Here is the call graph for this function:

OA::StmtLabel Open64IRInterface::getLabel ( OA::StmtHandle  h)

Definition at line 1397 of file Open64IRInterface.cpp.

OA::Linearity::LinOpType Open64IRInterface::getLinearityOpType ( OA::OpHandle  op)

get the operation type and returns a LinOpType

gets the operation type and returns a LinOpType

Definition at line 3645 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext().

Here is the call graph for this function:

OA::OA_ptr< OA::Location > Open64IRInterface::getLocation ( OA::ProcHandle  p,
OA::SymHandle  s 
)

For the given symbol create a Location that indicates statically overlapping locations and information about whether the location is local or not, local means visible in only this procedure

For the given symbol create a Location that indicates statically overlapping locations and information about whether the location is local or not, local means visible in only this procedure If the symbol is not visible within the current procedure then a null location is returned. FIXME: does Fortran90 allow nested procedures? if so then variables visible to a nested procedure should not be labeled local

Definition at line 3804 of file Open64IRInterface.cpp.

References debug, getCurrentProcContext(), setCurrentProcContext(), setCurrentProcToProcContext(), sFQNToProcToLocalSymMap, sGlobalVarMap, sProcToSymRefSetMap, sSymToFQNMap, SexpTags::ST, Stab_Is_Based_At_Common_Block(), and toString().

Here is the call graph for this function:

OA::ExprHandle Open64IRInterface::getLoopCondition ( OA::StmtHandle  h)

Definition at line 1498 of file Open64IRInterface.cpp.

OA::StmtHandle Open64IRInterface::getLoopIncrement ( OA::StmtHandle  h)

Definition at line 1468 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::MemRefExprIterator > Open64IRInterface::getMemRefExprIterator ( OA::MemRefHandle  memref)

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

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

Definition at line 4118 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext(), and sMemref2mreSetMap.

Referenced by getDiffUseMREs(), and getParamBindPtrAssignIterator().

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefHandleIterator > Open64IRInterface::getMemRefIterator ( OA::StmtHandle  h)

Given a statement return an iterator over all memory references During its creation it also sets up sStmt2allMemRefs and memRefs2mreSetMap.

Definition at line 1812 of file Open64IRInterface.cpp.

References findAllMemRefsAndMapToMemRefExprs(), getCallsiteParams(), getCallsites(), Open64IRMemRefIterator, setCurrentProcToProcContext(), sParamToCallMap, and sStmt2allMemRefsMap.

Referenced by getAllMemRefs(), getDefMemRefs(), getDefMREs(), and getUseMREs().

Here is the call graph for this function:

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::getMultiCatchall ( OA::StmtHandle  h)

Definition at line 1613 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::Alias::ParamBindPtrAssignIterator > Open64IRInterface::getParamBindPtrAssignIterator ( OA::CallHandle  call)

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

skip over Optional Parameters

Definition at line 3050 of file Open64IRInterface.cpp.

References getCallsiteParams(), getExprTree(), getMemRefExprIterator(), isRefParam(), and setCurrentProcToProcContext().

Here is the call graph for this function:

OA::ProcHandle Open64IRInterface::getProcHandle ( OA::SymHandle  sym)

Given the callee symbol returns the callee proc handle.

Definition at line 4147 of file Open64IRInterface.cpp.

Referenced by isPassByReference().

OA::SymHandle Open64IRInterface::getProcSymHandle ( OA::ProcHandle  h)

Definition at line 1021 of file Open64IRInterface.cpp.

References PU_SetGlobalState(), and SexpTags::ST.

Referenced by getSymHandle().

Here is the call graph for this function:

OA::OA_ptr< OA::IRStmtIterator > Open64IRInterface::getPtrAsgnIterator ( OA::ProcHandle  h)

Definition at line 3517 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::Alias::PtrAssignPairStmtIterator > Open64IRInterface::getPtrAssignStmtPairIterator ( OA::StmtHandle  stmt)

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

Definition at line 3527 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::IRSymIterator > Open64IRInterface::getRefSymIterator ( OA::ProcHandle  h)

Given a subprogram return an IRSymIterator for all symbols that are visible in the subprogram Given a subprogram return an IRSymIterator for all symbols that are referenced in the subprogram

Definition at line 3240 of file Open64IRInterface.cpp.

Referenced by initProcToSymRefSetMap().

OA::OA_ptr< OA::SideEffect::SideEffectStandard > Open64IRInterface::getSideEffect ( OA::ProcHandle  callerProc,
OA::SymHandle  calleeSym 
)

Note: This routine uses sSymToVarStringMap, which is initialized in initProcContext

Definition at line 3698 of file Open64IRInterface.cpp.

References currentProc(), setCurrentProcToProcContext(), and sSymToVarStringMap.

Here is the call graph for this function:

int Open64IRInterface::getSizeInBytes ( OA::SymHandle  h)

given a symbol return the size in bytes of that symbol

Definition at line 3229 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext(), and SexpTags::ST.

Here is the call graph for this function:

OA::ExprHandle Open64IRInterface::getSMultiCondition ( OA::StmtHandle  h,
int  bodyIndex 
)

Definition at line 1622 of file Open64IRInterface.cpp.

OA::ExprHandle Open64IRInterface::getSMultiTest ( OA::StmtHandle  h)

Definition at line 1630 of file Open64IRInterface.cpp.

OA::StmtHandle Open64IRInterface::getStmtFromMemRef ( OA::MemRefHandle  h)

Return a stmt handle for the given memory reference handle.

Definition at line 3602 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext(), and sMemRef2StmtMap.

Here is the call graph for this function:

OA::OA_ptr< OA::IRStmtIterator > Open64IRInterface::getStmtIterator ( OA::ProcHandle  h)

Given a subprogram return an IRStmtIterator for the entire subprogram

Definition at line 1013 of file Open64IRInterface.cpp.

OA::SymHandle Open64IRInterface::getSymHandle ( OA::ProcHandle  h) [inline]

Given a procedure return associated SymHandle.

Definition at line 765 of file Open64IRInterface.hpp.

References getProcSymHandle().

Referenced by getCallMemRefExpr(), initCallSymToProcMap(), isPassByReference(), and toString().

Here is the call graph for this function:

OA::SymHandle Open64IRInterface::getSymHandle ( OA::CallHandle  h)

get callee SymHandle from CallHandle (outermost or first, if multiple calls)

Definition at line 1234 of file Open64IRInterface.cpp.

References SexpTags::ST.

OA::StmtLabel Open64IRInterface::getTargetLabel ( OA::StmtHandle  h,
int  n 
)

Definition at line 1652 of file Open64IRInterface.cpp.

OA::StmtLabel Open64IRInterface::getUMultiCatchallLabel ( OA::StmtHandle  h)

Definition at line 1735 of file Open64IRInterface.cpp.

OA::ExprHandle Open64IRInterface::getUMultiCondition ( OA::StmtHandle  h,
int  targetIndex 
)

Definition at line 1762 of file Open64IRInterface.cpp.

OA::StmtLabel Open64IRInterface::getUMultiTargetLabel ( OA::StmtHandle  h,
int  targetIndex 
)

Definition at line 1690 of file Open64IRInterface.cpp.

OA::ExprHandle Open64IRInterface::getUMultiTest ( OA::StmtHandle  h)

Definition at line 1788 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::MemRefHandleIterator > Open64IRInterface::getUseMemRefs ( OA::StmtHandle  stmt)

Return a list of all the source and sub memory reference handles that appear in the given statement.

Return a list of all use memory reference handles that appear in the given statement. User is responsible for deleting the list

================================================ only map those MREs that do not involve an addressOf operation added by PLM 09/14/06 ================================================

Definition at line 3326 of file Open64IRInterface.cpp.

References getAllMemRefs(), setCurrentProcToProcContext(), and sMemref2mreSetMap.

Here is the call graph for this function:

OA::OA_ptr< OA::MemRefExprIterator > Open64IRInterface::getUseMREs ( OA::StmtHandle  stmt)

Get an Iterator over Use MREs.

Definition at line 3988 of file Open64IRInterface.cpp.

References Open64IRInterface::FindUseMREVisitor::getAllUseMREs(), getMemRefIterator(), and sMemref2mreSetMap.

Here is the call graph for this function:

bool Open64IRInterface::haveDefinition ( WN *  wn) [static]

Definition at line 5291 of file Open64IRInterface.cpp.

References DBGMSG_PUB, and sCallSymToProc.

Referenced by Open64IRCallsiteIterator::build_func_call_list().

void Open64IRInterface::initCallSymToProcMap ( Open64IRProcIterator procIter) [static, private]

creates a mapping of call symbol handles to the associated proc handle

Definition at line 5079 of file Open64IRInterface.cpp.

References Open64IRProcIterator::current(), getSymHandle(), Open64IRProcIterator::isValid(), and Open64IRProcIterator::reset().

Referenced by initContextState().

Here is the call graph for this function:

void Open64IRInterface::initContextState ( PU_Info *  pu_forest) [static]

User is responsible for doing this. It should not be part of.

Definition at line 4161 of file Open64IRInterface.cpp.

References initCallSymToProcMap(), initProcContext(), initProcToSymRefSetMap(), and sContextInit.

Referenced by whirl2xaif::Whirl2Xaif::translateIR().

Here is the call graph for this function:

void Open64IRInterface::initProcContext ( PU_Info *  pu_forest,
Open64IRProcIterator procIter 
) [static, private]

maps all handles to a procedure handle that indicates their context assumes that all handles except for SymHandle's and ProcHandle's are only valid in one procedure context.

Definition at line 5188 of file Open64IRInterface.cpp.

References create_fqn(), createCharStarForST(), Open64IRProcIterator::current(), debug, Open64IRProcIterator::isValid(), fully_qualified_name::mContext, fully_qualified_name::mVar, Open64IRProcIterator::reset(), sContextInit, sGlobalVarMap, sProcContext, sProgContext, sSymToFQNMap, sSymToVarStringMap, SexpTags::ST, Stab_Is_Based_At_Common_Block(), and toString().

Referenced by initContextState().

Here is the call graph for this function:

void Open64IRInterface::initProcToSymRefSetMap ( Open64IRProcIterator procIter) [static, private]

creates a mapping of procedure handles to the set of symbols referenced in that procedure get a set of all referenced symbols in this procedure Using this to approximate what is visible in F90 because Open64 module scoping is messed up and all module variables are put in the global scope

Definition at line 5101 of file Open64IRInterface.cpp.

References Open64IRProcIterator::current(), getRefSymIterator(), Open64IRProcIterator::isValid(), Open64IRProcIterator::reset(), and sProcToSymRefSetMap.

Referenced by initContextState().

Here is the call graph for this function:

bool Open64IRInterface::isBreakImplied ( OA::StmtHandle  multicond)

Definition at line 1597 of file Open64IRInterface.cpp.

bool Open64IRInterface::isCatchAll ( OA::StmtHandle  h,
int  bodyIndex 
)

Definition at line 1605 of file Open64IRInterface.cpp.

bool Open64IRInterface::isParam ( OA::SymHandle  anOASymbolHandle)

returns true if given symbol is a parameter

Definition at line 3780 of file Open64IRInterface.cpp.

References SexpTags::ST.

bool Open64IRInterface::isPassByReference ( WN *  opr_parm_wn) [private]

Definition at line 4535 of file Open64IRInterface.cpp.

References getFormalForActual(), getProcHandle(), getSymHandle(), isRefParam(), setCurrentProcToProcContext(), sParamToCallMap, and sProcContext.

Here is the call graph for this function:

bool Open64IRInterface::isRefParam ( OA::SymHandle  sym)

returns true if given symbol is a pass by reference parameter

Definition at line 1063 of file Open64IRInterface.cpp.

References getCurrentProcContext(), setCurrentProcContext(), setCurrentProcToProcContext(), and SexpTags::ST.

Referenced by convertSymToMemRefExpr(), findAllMemRefsAndMapToMemRefExprs(), getParamBindPtrAssignIterator(), and isPassByReference().

Here is the call graph for this function:

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::loopBody ( OA::StmtHandle  h)

Definition at line 1425 of file Open64IRInterface.cpp.

OA::StmtHandle Open64IRInterface::loopHeader ( OA::StmtHandle  h)

Definition at line 1451 of file Open64IRInterface.cpp.

Definition at line 1485 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::multiBody ( OA::StmtHandle  h,
int  bodyIndex 
)

Definition at line 1588 of file Open64IRInterface.cpp.

int Open64IRInterface::numMultiCases ( OA::StmtHandle  h)

Definition at line 1580 of file Open64IRInterface.cpp.

int Open64IRInterface::numUMultiTargets ( OA::StmtHandle  h)

Definition at line 1673 of file Open64IRInterface.cpp.

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::procBody ( OA::ProcHandle  h)

Given a ProcHandle, return an IRRegionStmtIterator* for the procedure. The user must free the iterator's memory via delete.

Definition at line 1250 of file Open64IRInterface.cpp.

References currentProc().

Here is the call graph for this function:

int Open64IRInterface::returnOpEnumValInt ( OA::OpHandle  op)

temporary routine to find things out

FIXME: temporary routine to find things out should be removed after testing

Definition at line 3591 of file Open64IRInterface.cpp.

References setCurrentProcToProcContext().

Here is the call graph for this function:

Are return statements allowed.

Definition at line 681 of file Open64IRInterface.hpp.

static void Open64IRInterface::setContext ( OA::IRHandle  h,
OA::ProcHandle  proc 
) [inline, static]

add a new IRHandle to the given procedure after context has already been initialized with initProcContext

Definition at line 1108 of file Open64IRInterface.hpp.

References sProcContext.

void Open64IRInterface::setCurrentProcContext ( OA::ProcHandle  proc) [static, private]

Definition at line 5150 of file Open64IRInterface.cpp.

References PU_SetGlobalState().

Referenced by getLocation(), and isRefParam().

Here is the call graph for this function:

void Open64IRInterface::setCurrentProcToProcContext ( OA::IRHandle  h) [static, private]

Determines the current context for given handle and makes sure that Open64 is properly set up to answer the query on the handle

Definition at line 5126 of file Open64IRInterface.cpp.

References PU_SetGlobalState(), and sProcContext.

Referenced by dump(), getAllMemRefs(), getCallsiteParams(), getCallsites(), getConstValBasic(), getDefMemRefs(), getExprTree(), getFormalForActual(), getLinearityOpType(), getLocation(), getMemRefExprIterator(), getMemRefIterator(), getParamBindPtrAssignIterator(), getSideEffect(), getSizeInBytes(), getStmtFromMemRef(), getUseMemRefs(), isPassByReference(), isRefParam(), returnOpEnumValInt(), and toString().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::ProcHandle  h)

Definition at line 577 of file Open64IRInterface.cpp.

References getSymHandle().

Referenced by dump(), getLocation(), initProcContext(), and whirl2xaif::xlate_SideEffectEntry().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::StmtHandle  h)

Definition at line 592 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::ExprHandle  h)

Definition at line 607 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::OpHandle  h)

Definition at line 622 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::MemRefHandle  h)

Definition at line 882 of file Open64IRInterface.cpp.

References DumpWNMemRef(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::SymHandle  h)

Definition at line 892 of file Open64IRInterface.cpp.

References createCharStarForST(), setCurrentProcToProcContext(), and SexpTags::ST.

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::ConstSymHandle  h)

Definition at line 913 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::ConstValHandle  h)

Definition at line 930 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( const OA::CallHandle  h)

Definition at line 948 of file Open64IRInterface.cpp.

References DumpWN(), and setCurrentProcToProcContext().

Here is the call graph for this function:

std::string Open64IRInterface::toString ( OA::OA_ptr< OA::ConstValBasicInterface >  cvPtr)

Temporary routine for testing MPICFG // given a ConstValBasicInterface, print out value if any.

Temporary routine for testing MPICFG.

Definition at line 3613 of file Open64IRInterface.cpp.

References Open64ConstVal::getIntegerVal().

Here is the call graph for this function:

OA::OA_ptr< OA::IRRegionStmtIterator > Open64IRInterface::trueBody ( OA::StmtHandle  h)

Definition at line 1525 of file Open64IRInterface.cpp.


Friends And Related Function Documentation

friend class InitContextVisitor [friend]

Definition at line 1067 of file Open64IRInterface.hpp.

friend class Open64IRExprHandleIterator [friend]

Definition at line 1066 of file Open64IRInterface.hpp.

Referenced by getExprHandleIterator().

friend class Open64IRMemRefIterator [friend]

Definition at line 1065 of file Open64IRInterface.hpp.

Referenced by getMemRefIterator().

friend class Open64IRProcIterator [friend]

Definition at line 1064 of file Open64IRInterface.hpp.


Member Data Documentation

std::map< OA::StmtHandle, std::set< OA::ExprHandle > > Open64IRInterface::mStmt2allExprsMap [static, private]

Definition at line 956 of file Open64IRInterface.hpp.

Referenced by findAllMemRefsAndMapToMemRefExprs().

bool Open64IRInterface::ourIgnoreBlackBoxRoutines = false [static, private]

Definition at line 1074 of file Open64IRInterface.hpp.

Referenced by ignoreBlackBoxRoutines(), and setIgnoreBlackBoxRoutines().

std::map< OA::SymHandle, OA::ProcHandle > Open64IRInterface::sCallSymToProc [static, private]

Definition at line 964 of file Open64IRInterface.hpp.

Referenced by haveDefinition().

bool Open64IRInterface::sContextInit = false [static, private]

Definition at line 1047 of file Open64IRInterface.hpp.

Referenced by initContextState(), and initProcContext().

std::map< fully_qualified_name, std::map< OA::ProcHandle, OA::SymHandle > > Open64IRInterface::sFQNToProcToLocalSymMap [static, private]

Definition at line 973 of file Open64IRInterface.hpp.

Referenced by createAndMapNamedRef(), and getLocation().

std::map< fully_qualified_name, std::set< OA::SymHandle > > Open64IRInterface::sGlobalVarMap [static, private]

Definition at line 969 of file Open64IRInterface.hpp.

Referenced by createAndMapNamedRef(), getLocation(), and initProcContext().

std::map< OA::MemRefHandle, OA::StmtHandle > Open64IRInterface::sMemRef2StmtMap [static, private]

Definition at line 958 of file Open64IRInterface.hpp.

Referenced by getStmtFromMemRef().

std::map< OA::ExprHandle, OA::CallHandle > Open64IRInterface::sParamToCallMap [static, private]

Definition at line 981 of file Open64IRInterface.hpp.

Referenced by getMemRefIterator(), and isPassByReference().

std::map< OA::IRHandle, OA::ProcHandle > Open64IRInterface::sProcContext [static, private]
std::map< OA::ProcHandle, std::set< OA::SymHandle > > Open64IRInterface::sProcToSymRefSetMap [static, private]

Definition at line 985 of file Open64IRInterface.hpp.

Referenced by getLocation(), and initProcToSymRefSetMap().

PU_Info * Open64IRInterface::sProgContext = NULL [static, private]

Definition at line 1045 of file Open64IRInterface.hpp.

Referenced by initProcContext().

std::map< OA::StmtHandle, std::set< OA::MemRefHandle > > Open64IRInterface::sStmt2allMemRefsMap [static, private]
std::map< OA::SymHandle, fully_qualified_name > Open64IRInterface::sSymToFQNMap [static, private]

Definition at line 975 of file Open64IRInterface.hpp.

Referenced by createAndMapNamedRef(), getLocation(), and initProcContext().

std::map< OA::SymHandle, std::string > Open64IRInterface::sSymToVarStringMap [static, private]

Definition at line 978 of file Open64IRInterface.hpp.

Referenced by getSideEffect(), and initProcContext().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines