|
OpenADFortTk (basic)
|
#include <XlateStmt.h>
Static Public Member Functions | |
| static WN * | translateStmt (const DOMElement *stmt, PUXlationContext &ctxt) |
| static WN * | translateAssignmentSimple (const DOMElement *stmt, PUXlationContext &ctxt) |
| static WN * | patchWNStmt (WN *wn, PUXlationContext &ctxt) |
Static Private Member Functions | |
| static WN * | xlate_Assignment (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_AssignmentLHS (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_AssignmentRHS (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_SubroutineCall (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_InlinableSubroutineCall (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_DerivativePropagator (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_SetDeriv (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_SetNegDeriv (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_IncDeriv (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_DecDeriv (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_ZeroDeriv (const DOMElement *elem, PUXlationContext &ctxt) |
| static WN * | xlate_Saxpy (const DOMElement *elem, PUXlationContext &ctxt, bool saxpy) |
| static void | patchWN_IO (WN *wn, PUXlationContext &ctxt) |
| static void | patchWN_IO_cray (WN *wn, PUXlationContext &ctxt) |
| static void | patchWN_IO_ITEM_list (WN *wn, PUXlationContext &ctxt) |
| static WN * | createAssignment (WN *lhs, WN *rhs) |
| static WN * | createAssignment (ST *lhs, WN_OFFSET oset, WN *rhs) |
| static WN * | createZeroConst (TYPE_ID ty) |
| static WN * | createOpenADInline (const char *fname, std::vector< WN * > &args) |
Definition at line 17 of file XlateStmt.h.
| WN * xaif2whirl::XlateStmt::createAssignment | ( | WN * | lhs, |
| WN * | rhs | ||
| ) | [static, private] |
Definition at line 514 of file XlateStmt.cxx.
References TY_Is_Array(), TY_Is_Pointer(), and WN_Tree_Type().
Referenced by translateAssignmentSimple(), and xlate_Assignment().

| WN * xaif2whirl::XlateStmt::createAssignment | ( | ST * | lhs, |
| WN_OFFSET | oset, | ||
| WN * | rhs | ||
| ) | [static, private] |
Definition at line 533 of file XlateStmt.cxx.
References WN_Tree_Type().

| WN * xaif2whirl::XlateStmt::createOpenADInline | ( | const char * | fname, |
| std::vector< WN * > & | args | ||
| ) | [static, private] |
Definition at line 547 of file XlateStmt.cxx.
Referenced by xlate_InlinableSubroutineCall().
| WN * xaif2whirl::XlateStmt::createZeroConst | ( | TYPE_ID | ty | ) | [static, private] |
Definition at line 543 of file XlateStmt.cxx.
| void xaif2whirl::XlateStmt::patchWN_IO | ( | WN * | wn, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 458 of file XlateStmt.cxx.
References patchWN_IO_cray().
Referenced by patchWNStmt().

| void xaif2whirl::XlateStmt::patchWN_IO_cray | ( | WN * | wn, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 464 of file XlateStmt.cxx.
References FORTTK_ASSERT_WARN, IS_IO_ITEM_IOL, patchWN_IO_ITEM_list(), and fortTkSupport::Diagnostics::UnexpectedInput.
Referenced by patchWN_IO().

| void xaif2whirl::XlateStmt::patchWN_IO_ITEM_list | ( | WN * | wn, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 482 of file XlateStmt.cxx.
References FORTTK_DIE, xaif2whirl::XlateExpression::patchWNExpr(), and fortTkSupport::Diagnostics::UnexpectedOpr.
Referenced by patchWN_IO_cray().

| WN * xaif2whirl::XlateStmt::patchWNStmt | ( | WN * | wn, |
| PUXlationContext & | ctxt | ||
| ) | [static] |
Definition at line 74 of file XlateStmt.cxx.
References patchWN_IO(), and xaif2whirl::XlateExpression::patchWNExpr().
Referenced by xaif2whirl::TranslateBasicBlock(), and xaif2whirl::xlate_BasicBlock_OLD().

| WN * xaif2whirl::XlateStmt::translateAssignmentSimple | ( | const DOMElement * | stmt, |
| PUXlationContext & | ctxt | ||
| ) | [static] |
TranslateAssignmentSimple: Translates certain XAIF constructs into special WHIRL assignment statements in order to conform to WHIRL requirements.
Definition at line 59 of file XlateStmt.cxx.
References createAssignment(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), XAIFStringRepository::elem_AssignLHS_x(), XAIFStringRepository::elem_AssignRHS_x(), xaif2whirl::XlationContext::EXPRSIMPLE, xaif2whirl::GetChildElement(), xaif2whirl::GetFirstChildElement(), SexpTags::ST, xaif2whirl::XlateExpression::translateVarRefSimple(), XAIFStrings, and xlate_AssignmentRHS().
Referenced by translateStmt().

| WN * xaif2whirl::XlateStmt::translateStmt | ( | const DOMElement * | stmt, |
| PUXlationContext & | ctxt | ||
| ) | [static] |
Definition at line 30 of file XlateStmt.cxx.
References XAIFStringRepository::elem_Assign_x(), XAIFStringRepository::elem_DerivProp_x(), XAIFStringRepository::elem_InlinableSubCall_x(), XAIFStringRepository::elem_LpInit_x(), XAIFStringRepository::elem_LpUpdate_x(), XAIFStringRepository::elem_Marker_x(), XAIFStringRepository::elem_SubCall_x(), FORTTK_DIE, translateAssignmentSimple(), XAIFStrings, xlate_Assignment(), xlate_DerivativePropagator(), xlate_InlinableSubroutineCall(), and xlate_SubroutineCall().
Referenced by xaif2whirl::TranslateBasicBlock(), xaif2whirl::xlate_BasicBlock_OLD(), xaif2whirl::xlate_CFGstruct(), and xaif2whirl::xlate_CFGunstruct().

| WN * xaif2whirl::XlateStmt::xlate_Assignment | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 92 of file XlateStmt.cxx.
References createAssignment(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), XAIFStringRepository::elem_AssignLHS_x(), XAIFStringRepository::elem_AssignRHS_x(), xaif2whirl::GetChildElement(), xaif2whirl::XlationContext::NOFLAG, XAIFStrings, xlate_AssignmentLHS(), and xlate_AssignmentRHS().
Referenced by translateStmt().

| WN * xaif2whirl::XlateStmt::xlate_AssignmentLHS | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 111 of file XlateStmt.cxx.
References xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::currentXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, xaif2whirl::GetDerivAttr(), xaif2whirl::GetFirstChildElement(), xaif2whirl::XlationContext::LVALUE, xaif2whirl::XlationContext::setFlag(), xaif2whirl::XlateExpression::translateVarRef(), and xaif2whirl::XlationContext::VALUESELECTOR.
Referenced by xlate_Assignment(), and xlate_ZeroDeriv().

| WN * xaif2whirl::XlateStmt::xlate_AssignmentRHS | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 123 of file XlateStmt.cxx.
References xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::GetFirstChildElement(), xaif2whirl::XlationContext::NOFLAG, and xaif2whirl::XlateExpression::translateExpression().
Referenced by translateAssignmentSimple(), and xlate_Assignment().

| WN * xaif2whirl::XlateStmt::xlate_DecDeriv | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 390 of file XlateStmt.cxx.
References xaif2whirl::CreateCallToIntrin(), xaif2whirl::CreateParm(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_Src_x(), XAIFStringRepository::elem_Tgt_x(), xaif2whirl::GetChildElement(), xaif2whirl::GetDerivAttr(), xaif2whirl::GetFirstChildElement(), xaif2whirl::XlateExpression::translateVarRef(), xaif2whirl::XlationContext::VALUESELECTOR, and XAIFStrings.
Referenced by xlate_DerivativePropagator().

| WN * xaif2whirl::XlateStmt::xlate_DerivativePropagator | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Must not return an empty block
Definition at line 288 of file XlateStmt.cxx.
References FORTTK_DIE, xaif2whirl::GetChildElement(), xaif2whirl::GetNextSiblingElement(), xaif2whirl::XAIF_DerivPropStmt::IsDecDeriv(), xaif2whirl::XAIF_DerivPropStmt::IsIncDeriv(), xaif2whirl::XAIF_DerivPropStmt::IsSax(), xaif2whirl::XAIF_DerivPropStmt::IsSaxpy(), xaif2whirl::XAIF_DerivPropStmt::IsSetDeriv(), xaif2whirl::XAIF_DerivPropStmt::IsSetNegDeriv(), xaif2whirl::XAIF_DerivPropStmt::IsZeroDeriv(), xlate_DecDeriv(), xlate_IncDeriv(), xlate_Saxpy(), xlate_SetDeriv(), xlate_SetNegDeriv(), and xlate_ZeroDeriv().
Referenced by translateStmt().

| WN * xaif2whirl::XlateStmt::xlate_IncDeriv | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 370 of file XlateStmt.cxx.
References xaif2whirl::CreateCallToIntrin(), xaif2whirl::CreateParm(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_Src_x(), XAIFStringRepository::elem_Tgt_x(), xaif2whirl::GetChildElement(), xaif2whirl::GetDerivAttr(), xaif2whirl::GetFirstChildElement(), xaif2whirl::XlateExpression::translateVarRef(), xaif2whirl::XlationContext::VALUESELECTOR, and XAIFStrings.
Referenced by xlate_DerivativePropagator().

| WN * xaif2whirl::XlateStmt::xlate_InlinableSubroutineCall | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 221 of file XlateStmt.cxx.
References XAIFStringRepository::attr_subname_x(), xaif2whirl::XercesStrX::c_str(), xaif2whirl::CreateCallToIntrin(), createOpenADInline(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_Argument(), XAIFStringRepository::elem_Argument_x(), XAIFStringRepository::elem_Constant_x(), XAIFStringRepository::elem_VarRef_x(), FORTTK_ASSERT, FORTTK_DIE, xaif2whirl::GetChildElementCount(), xaif2whirl::GetFirstChildElement(), xaif2whirl::GetNextSiblingElement(), xaif2whirl::GetOrCreateBogusTmpSymbol(), xaif2whirl::GetPositionAttr(), fortTkSupport::Symbol::GetST(), SexpTags::ST, xaif2whirl::XlateExpression::translateConstant(), xaif2whirl::XlateExpression::translateVarRef(), and XAIFStrings.
Referenced by translateStmt().

| WN * xaif2whirl::XlateStmt::xlate_Saxpy | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt, | ||
| bool | saxpy | ||
| ) | [static, private] |
xlate_Saxpy: handles calls to both saxpy(a,x,y): Y=A1*X1+A2*X2+...+Y sax(a,x,y) : Y=A1*X1+A2*X2+...
Definition at line 418 of file XlateStmt.cxx.
References xaif2whirl::CreateCallToIntrin(), xaif2whirl::CreateParm(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_A_x(), XAIFStringRepository::elem_AX_x(), XAIFStringRepository::elem_X_x(), XAIFStringRepository::elem_Y_x(), xaif2whirl::GetChildElement(), xaif2whirl::GetChildElementCount(), xaif2whirl::GetDerivAttr(), xaif2whirl::GetFirstChildElement(), xaif2whirl::GetNextSiblingElement(), xaif2whirl::XlateExpression::translateExpression(), xaif2whirl::XlateExpression::translateVarRef(), xaif2whirl::XlationContext::VALUESELECTOR, and XAIFStrings.
Referenced by xlate_DerivativePropagator().

| WN * xaif2whirl::XlateStmt::xlate_SetDeriv | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 330 of file XlateStmt.cxx.
References xaif2whirl::CreateCallToIntrin(), xaif2whirl::CreateParm(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_Src_x(), XAIFStringRepository::elem_Tgt_x(), xaif2whirl::GetChildElement(), xaif2whirl::GetDerivAttr(), xaif2whirl::GetFirstChildElement(), xaif2whirl::XlateExpression::translateVarRef(), xaif2whirl::XlationContext::VALUESELECTOR, and XAIFStrings.
Referenced by xlate_DerivativePropagator().

| WN * xaif2whirl::XlateStmt::xlate_SetNegDeriv | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 350 of file XlateStmt.cxx.
References xaif2whirl::CreateCallToIntrin(), xaif2whirl::CreateParm(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_Src_x(), XAIFStringRepository::elem_Tgt_x(), xaif2whirl::GetChildElement(), xaif2whirl::GetDerivAttr(), xaif2whirl::GetFirstChildElement(), xaif2whirl::XlateExpression::translateVarRef(), xaif2whirl::XlationContext::VALUESELECTOR, and XAIFStrings.
Referenced by xlate_DerivativePropagator().

| WN * xaif2whirl::XlateStmt::xlate_SubroutineCall | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 133 of file XlateStmt.cxx.
References XAIFStringRepository::attr_formalArgCount_x(), xaif2whirl::CreateParm(), xaif2whirl::PUXlationContext::createXlationContext(), xaif2whirl::PUXlationContext::deleteXlationContext(), xaif2whirl::XlationContext::DERIVSELECTOR, XAIFStringRepository::elem_Argument(), XAIFStringRepository::elem_Argument_x(), XAIFStringRepository::elem_Constant_x(), XAIFStringRepository::elem_VarRef_x(), FORTTK_ASSERT, FORTTK_DIE, xaif2whirl::GetFirstChildElement(), xaif2whirl::GetIntAttr(), xaif2whirl::GetNextSiblingElement(), xaif2whirl::GetPositionAttr(), fortTkSupport::Symbol::GetST(), xaif2whirl::GetSymbol(), xaif2whirl::GetSymId(), xaif2whirl::XlateExpression::translateConstant(), xaif2whirl::XlateExpression::translateVarRef(), TY_Is_Character_Reference(), TY_Is_Chararray_Reference(), WN_Tree_Type(), and XAIFStrings.
Referenced by translateStmt().

| WN * xaif2whirl::XlateStmt::xlate_ZeroDeriv | ( | const DOMElement * | elem, |
| PUXlationContext & | ctxt | ||
| ) | [static, private] |
Definition at line 410 of file XlateStmt.cxx.
References xaif2whirl::CreateCallToIntrin(), xaif2whirl::CreateParm(), and xlate_AssignmentLHS().
Referenced by xlate_DerivativePropagator().
