OpenADFortTk (basic)
src/xaif2whirl/xaif2whirl.cxx File Reference
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <vector>
#include <set>
#include <list>
#include <map>
#include "xercesc/dom/DOMDocument.hpp"
#include "xercesc/dom/DOMNode.hpp"
#include "xercesc/dom/DOMElement.hpp"
#include "Open64IRInterface/Open64BasicTypes.h"
#include "Open64IRInterface/Open64IRInterface.hpp"
#include "Open64IRInterface/SymTab.h"
#include "Open64IRInterface/IFDiagnostics.h"
#include "Open64IRInterface/wn_attr.h"
#include "Open64IRInterface/stab_attr.h"
#include "OpenAnalysis/Utils/DGraph/DGraphInterface.hpp"
#include "OpenAnalysis/Utils/DGraph/DGraphImplement.hpp"
#include "WhirlIDMaps.h"
#include "WhirlParentize.h"
#include "XAIFStrings.h"
#include "Diagnostics.h"
#include "xaif2whirl.h"
#include "Args.h"
#include "XlateExpression.h"
#include "XlateStmt.h"
#include "XAIF_DOMFilters.h"
#include "XercesStrX.h"
#include "InterfaceData.h"
Include dependency graph for xaif2whirl.cxx:

Go to the source code of this file.

Classes

class  xaif2whirl::ConvertModuleTypeFctr
struct  xaif2whirl::sort_CondVal

Namespaces

namespace  xaif2whirl

Functions

static void xaif2whirl::TranslateCFG (WN *wn_pu, const xercesc::DOMElement *cfgElem, PUXlationContext &ctxt)
static WN * xaif2whirl::xlate_CFG (WN *wn_pu, OA::OA_ptr< OA::DGraph::DGraphInterface > cfg, OA::OA_ptr< MyDGNode > root, PUXlationContext &ctxt, unsigned &startLabel_r, bool structuredCF)
static WN * xaif2whirl::TranslateBasicBlock (WN *wn_pu, const xercesc::DOMElement *bbElem, PUXlationContext &ctxt, bool skipMarkeredGotoAndLabels, unsigned endLabel)
static void xaif2whirl::TranslateBB_OLD (WN *wn_pu, const xercesc::DOMElement *bbElem, PUXlationContext &ctxt)
static void xaif2whirl::xlate_BasicBlock_OLD (WN *wn_pu, const xercesc::DOMElement *bbElem, PUXlationContext &ctxt)
static void xaif2whirl::xlate_BBCond_OLD (WN *wn_pu, const xercesc::DOMElement *bbElem, PUXlationContext &ctxt)
static bool xaif2whirl::FindNextStmtInterval (const xercesc::DOMElement *bbElem, fortTkSupport::IdList< fortTkSupport::WNId > *bbIdList, fortTkSupport::WNIdToWNMap *wnmap, WN *blkWN, xercesc::DOMElement *&begXAIF, xercesc::DOMElement *&endXAIF, WN *&begWN, WN *&endWN)
static WN * xaif2whirl::FindIntervalBoundary (const xercesc::DOMElement *elem, fortTkSupport::IdList< fortTkSupport::WNId > *bbIdList, fortTkSupport::WNIdToWNMap *wnmap, WN *blkWN, int boundary)
static WN * xaif2whirl::FindWNBlock (const xercesc::DOMElement *bbElem, fortTkSupport::IdList< fortTkSupport::WNId > *idlist, PUXlationContext &ctxt)
static WN * xaif2whirl::FindSafeInsertionPoint (WN *blckWN, WN *stmtWN)
static void xaif2whirl::RemoveFromWhirlIdMaps (WN *wn, fortTkSupport::WNToWNIdMap *wn2idmap, fortTkSupport::WNIdToWNMap *id2wnmap)
static void xaif2whirl::xlate_SymbolTable (const xercesc::DOMElement *elem, const char *scopeId, PU_Info *pu, PUXlationContext &ctxt)
static void xaif2whirl::xlate_Symbol (const xercesc::DOMElement *elem, const char *scopeId, PU_Info *pu, PUXlationContext &ctxt, bool doTempSymbols)
static WN * xaif2whirl::CreateOpenADReplacementBeg (const char *placeholder)
static WN * xaif2whirl::CreateOpenADReplacementEnd ()
static WN * xaif2whirl::CreateIfCondition (WN *condWN)
static ST * xaif2whirl::CreateST (const xercesc::DOMElement *elem, SYMTAB_IDX level, const char *nm, fortTkSupport::XAIFSymToSymbolMap &symMap, const char *scopeId)
static ST * xaif2whirl::ConvertIntoGlobalST (ST *st)
static void xaif2whirl::ConvertToActiveType (ST *st)
static void xaif2whirl::ConvertStructMemberToActiveType (TY_IDX base_ty, TY_IDX ref_ty, UINT field_id)
static void xaif2whirl::ConvertScalarizedRefToActiveType (WN *wn)
static FLD_HANDLE xaif2whirl::TY_Lookup_FLD (TY_IDX struct_ty, TY_IDX ref_ty, UINT64 ref_ofst, unsigned short eqInst=1)
static TY_IDX xaif2whirl::MY_Make_Array_Type (TY_IDX elem_ty, INT32 ndim, bool fixed, const INT64 *lower, const INT64 *upper)
static TY_IDX xaif2whirl::XAIFTyToWHIRLTy (const char *type, const TYPE_ID mtype)
static OA::OA_ptr
< OA::DGraph::DGraphInterface > 
xaif2whirl::CreateCFGraph (const xercesc::DOMElement *elem)
void xaif2whirl::TranslateCFG (PU_Info *pu_forest, const xercesc::DOMElement *cfgElem, PUXlationContext &ctxt)
static WN * xaif2whirl::xlate_CFG_BasicBlock (WN *wn_pu, OA::OA_ptr< MyDGNode > curBB, PUXlationContext &ctxt, bool skipMarkeredGotoAndLabels, unsigned newCurBBLbl, unsigned newNextBBLbl, unsigned endLabel)
static WN * xaif2whirl::xlate_CFG_BranchMulti (OA::OA_ptr< MyDGNode > curNode, WN *condWN, unsigned lastLbl, vector< OA::OA_ptr< MyDGEdge > > &outedges, map< OA::OA_ptr< MyDGNode >, unsigned > &nodeToLblMap)
static pair< WN *, OA::OA_ptr
< MyDGNode > > 
xaif2whirl::xlate_CFGstruct (WN *wn_pu, OA::OA_ptr< OA::DGraph::DGraphInterface > cfg, OA::OA_ptr< MyDGNode > startNode, set< xercesc::DOMElement * > &xlated, PUXlationContext &ctxt, unsigned int &startLabel_r)
static WN * xaif2whirl::xlate_CFGunstruct (WN *wn_pu, OA::OA_ptr< OA::DGraph::DGraphInterface > cfg, OA::OA_ptr< MyDGNode > startNode, set< xercesc::DOMElement * > &xlated, PUXlationContext &ctxt, unsigned int &startLabel_r)
static WN * xaif2whirl::xlate_CFG (WN *wn_pu, OA::OA_ptr< OA::DGraph::DGraphInterface > cfg, OA::OA_ptr< MyDGNode > root, PUXlationContext &ctxt, unsigned int &startLabel_r, bool structuredCF)
OA::OA_ptr< std::list
< OA::OA_ptr
< OA::DGraph::NodeInterface > > > 
xaif2whirl::getOrderedSinkNodesList (OA::OA_ptr< OA::DGraph::DGraphInterface > cfg, OA::OA_ptr< OA::DGraph::NodeInterface > pNode)
void xaif2whirl::getReversePostDFSListR (OA::OA_ptr< OA::DGraph::DGraphInterface > cfg, OA::OA_ptr< OA::DGraph::NodeInterface > pNode, std::map< OA::OA_ptr< OA::DGraph::NodeInterface >, bool > &visitMap, OA::OA_ptr< std::list< OA::OA_ptr< OA::DGraph::NodeInterface > > > pList)
OA::OA_ptr< std::list
< OA::OA_ptr
< OA::DGraph::NodeInterface > > > 
xaif2whirl::getReversePostDFSList (OA::OA_ptr< OA::DGraph::DGraphInterface > cfg)
fortTkSupport::Symbolxaif2whirl::GetSymbol (const xercesc::DOMElement *elem, PUXlationContext &ctxt)
fortTkSupport::Symbolxaif2whirl::GetOrCreateSymbol (const char *sname, PUXlationContext &ctxt)
fortTkSupport::Symbolxaif2whirl::GetOrCreateBogusTmpSymbol (PUXlationContext &ctxt)
void xaif2whirl::xlate_Scope (const xercesc::DOMElement *elem, PUXlationContext &ctxt)
bool xaif2whirl::GetBoolAttr (const xercesc::DOMElement *elem, XMLCh *attr, bool default_val)
int xaif2whirl::GetIntAttr (const xercesc::DOMElement *elem, XMLCh *attr, int default_val)
bool xaif2whirl::GetHasConditionAttr (const xercesc::DOMElement *elem)
unsigned int xaif2whirl::GetCondAttr (const xercesc::DOMElement *elem)
bool xaif2whirl::GetActiveAttr (const xercesc::DOMElement *elem)
bool xaif2whirl::GetDerivAttr (const xercesc::DOMElement *elem)
unsigned int xaif2whirl::GetPositionAttr (const xercesc::DOMElement *elem)
bool xaif2whirl::IsTagPresent (const xercesc::DOMElement *elem, const char *tag)
bool xaif2whirl::IsTagPresent (const char *annotstr, const char *tag)
fortTkSupport::SymTabId xaif2whirl::GetSymTabId (const xercesc::DOMElement *elem)
fortTkSupport::SymId xaif2whirl::GetSymId (const xercesc::DOMElement *elem)
fortTkSupport::PUId xaif2whirl::GetPUId (const xercesc::DOMElement *elem)
fortTkSupport::WNId xaif2whirl::GetWNId (const xercesc::DOMElement *elem)
fortTkSupport::IdList
< fortTkSupport::WNId > * 
xaif2whirl::GetWNIdList (const xercesc::DOMElement *elem)
std::string xaif2whirl::GetIntrinsicKey (const xercesc::DOMElement *elem)
PREG_IDX xaif2whirl::GetPregId (const xercesc::DOMElement *elem)
template<class T >
xaif2whirl::GetId (const xercesc::DOMElement *elem, const char *tag)
template<class T >
fortTkSupport::IdList< T > * xaif2whirl::GetIdList (const xercesc::DOMElement *elem, const char *tag)
template<class T >
xaif2whirl::GetId (const char *idstr, const char *tag)
template<class T >
fortTkSupport::IdList< T > * xaif2whirl::GetIdList (const char *idstr, const char *tag)
WN * xaif2whirl::CreateCallToIntrin (TYPE_ID rtype, const char *fname, unsigned int argc)
WN * xaif2whirl::CreateCallToIntrin (TYPE_ID rtype, const char *fname, std::vector< WN * > &args)
WN * xaif2whirl::CreateIntrinsicCall (OPERATOR opr, INTRINSIC intrn, TYPE_ID rtype, TYPE_ID dtype, std::vector< WN * > &args)
WN * xaif2whirl::CreateBoolConst (unsigned int val)
void xaif2whirl::DeclareActiveTypes ()
TYPE_ID xaif2whirl::XAIFFETypeToWHIRLMTy (const char *anFETypeName)
OA::OA_ptr< MyDGNode > xaif2whirl::GetSuccessor (OA::OA_ptr< MyDGNode > node, bool succIsOutEdge)
OA::OA_ptr< MyDGNode > xaif2whirl::GetSuccessorAlongEdge (OA::OA_ptr< MyDGNode > node, unsigned int condition, bool succIsOutEdge)
static std::string xaif2whirl::DumpDotGraph_GetNodeName (OA::OA_ptr< MyDGNode > n)
void xaif2whirl::DDumpDotGraph (OA::OA_ptr< OA::DGraph::DGraphInterface > graph)
void xaif2whirl::DumpDotGraph (std::ostream &os, OA::OA_ptr< OA::DGraph::DGraphInterface > graph)

Variables

fortTkSupport::IntrinsicXlationTable xaif2whirl::IntrinsicTable (fortTkSupport::IntrinsicXlationTable::X2W)
fortTkSupport::WNIdToWNTabMap xaif2whirl::WNIdToWNTableMap
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines