Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include <iostream>
#include <alloca.h>
#include "whirl2f_common.h"
#include "const.h"
#include "pf_cg.h"
#include "w2cf_parentize.h"
#include "PUinfo.h"
#include "wn2f.h"
#include "st2f.h"
#include "ty2f.h"
#include "tcon2f.h"
#include "wn2f_stmt.h"
#include "wn2f_load_store.h"
#include "wn2f_io.h"
#include "wn2f_pragma.h"
#include "init2f.h"
#include "be_symtab.h"
#include "intrn_info.h"
#include "unparse_target.h"
#include "ty_ftn.h"
Go to the source code of this file.
#define MAX_TEST_OPERATIONS 16 |
Definition at line 352 of file wn2f_stmt.cxx.
Referenced by WN2F_Get_DoLoop_Bound(), and WN2F_LoopBound_VarRef().
#define WN2F_Reverse_Bounds_Comparison | ( | comparison_opr | ) |
(comparison_opr == OPR_GE? OPR_LE : \ comparison_opr == OPR_LE? OPR_GE : \ comparison_opr == OPR_GT? OPR_LT : \ OPR_GT)
Definition at line 392 of file wn2f_stmt.cxx.
Referenced by WN2F_Get_DoLoop_Bound(), and WN2F_Get_Next_LoopBoundOp().
#define WN_pragma_nest | ( | wn | ) | WN_pragma_arg1(wn) |
Definition at line 96 of file wn2f_stmt.cxx.
Referenced by WN2F_Is_Loop_Region().
typedef struct Do_Loop_Bound DO_LOOP_BOUND |
typedef struct Partial_Op PARTIAL_OP |
WN2F_STATUS WN2F_agoto | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2175 of file wn2f_stmt.cxx.
References Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, NULL, OPR_AGOTO, WN2F_Stmt_Newline(), WN2F_translate(), WN_Get_Linenum(), WN_kid0(), and WN_operator().
void WN2F_Append_Block_Data | ( | TOKEN_BUFFER | tokens | ) |
Definition at line 1656 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_F77_Indented_Newline(), Append_Token_Special(), Append_Token_String(), Data_Stmt_Tokens, For_all(), GLOBAL_SYMTAB, Is_Empty_Token_Buffer(), New_Token_Buffer(), NULL, PUinfo_local_decls, St_Table, and WHIRL2F_Append_Comment().
Referenced by W2F_Outfile_Fini().
void WN2F_Append_Purple_Funcinfo | ( | TOKEN_BUFFER | tokens | ) |
Definition at line 1697 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), EXPORT_INTERNAL, name, Number_as_String(), PUINFO_FUNC_ST, SCLASS_TEXT, ST_export(), ST_sclass(), ST_st_idx(), W2F_Object_Name(), and WN2F_Purple_Region_Name.
Referenced by WN2F_Exit_PU_Block(), WN2F_pragma(), and WN2F_translate_purple_main().
static void WN2F_Append_Symtab_Consts | ( | TOKEN_BUFFER | tokens, |
SYMTAB_IDX | symtab, | ||
UINT | lines_between_decls | ||
) | [static] |
Definition at line 1189 of file wn2f_stmt.cxx.
References Append_F77_Indented_Newline(), New_Token_Buffer(), NULL, ST2F_decl_translate(), W2F_File, W2F_FTN_FILE, W2F_LOC_FILE, and Write_And_Reclaim_Tokens().
Referenced by WN2F_Exit_PU_Block().
static void WN2F_Append_Symtab_Vars | ( | TOKEN_BUFFER | tokens, |
SYMTAB_IDX | symtab, | ||
UINT | lines_between_decls | ||
) | [static] |
Definition at line 1435 of file wn2f_stmt.cxx.
References For_all(), and St_Table.
Referenced by WN2F_Exit_PU_Block().
WN2F_STATUS WN2F_ar_construct | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3458 of file wn2f_stmt.cxx.
References Append_Token_Special(), EMPTY_WN2F_STATUS, WN2F_translate(), WN_kid(), and WN_kid_count().
WN2F_STATUS WN2F_block | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 1726 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, New_Token_Buffer(), NULL, OPR_ASSERT, OPR_BACKWARD_BARRIER, OPR_BLOCK, OPR_FORWARD_BARRIER, OPR_LABEL, OPR_PRAGMA, OPR_REGION, OPR_TRAP, OPR_XPRAGMA, reset_WN2F_CONTEXT_induction_step, reset_WN2F_CONTEXT_new_pu, W2F_Emit_Frequency, W2F_Frequency_Map, WHIRL2F_number_as_name, WN2F_CONTEXT_induction_stmt, WN2F_CONTEXT_insert_induction, WN2F_CONTEXT_new_pu, WN2F_Enter_PU_Block(), WN2F_Exit_PU_Block(), WN2F_Skip_Stmt(), WN2F_translate(), WN_first(), WN_MAP32_Get, WN_MAP_UNDEFINED, WN_next(), and WN_operator().
WN2F_STATUS WN2F_call | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2506 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, ASSERT_DBG_WARN, CALLSITE_call, CALLSITE_next, Concat2_Strings(), DIAG_A_STRING, DIAG_W2F_UNEXPECTED_CALLSITE, DIAG_W2F_UNEXPECTED_CONTEXT, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, FALSE, fld_type_z, Unparse_Target::Func_Return_Character(), Unparse_Target::Func_Return_To_Param(), Unparse_Target::Func_Return_Type(), INTR_is_valtmp, KIND_VOID, MTYPE_M, New_Token_Buffer(), NULL, OPR_CALL, OPR_ICALL, OPR_IMPLICIT_BND, OPR_INTRINSIC_CALL, OPR_INTRINSIC_OP, OPR_LDA, OPR_PICCALL, Prepend_Token_String(), PU_prototype(), Pu_Table, PUinfo_Get_CallSites(), reset_WN2F_CONTEXT_has_no_arr_elmt, reset_WN2F_CONTEXT_no_parenthesis, set_WN2F_CONTEXT_has_no_arr_elmt, set_WN2F_CONTEXT_no_parenthesis, ST2F_FIRST_PARAM_IDX, ST2F_output_keyword(), ST2F_use_translate(), ST_name(), ST_pu(), ST_pu_type(), St_Table, ST_type(), TRUE, WN::ty_fields, TY_is_character(), TY_Is_Character_Reference(), TY_Is_Chararray_Reference(), TY_Is_Pointer(), TY_kind(), TY_mtype(), TY_pointed(), W2X_Unparse_Target, WN2F_Callsite_Directives(), WN2F_CONTEXT_io_stmt, WN2F_io_prefix_tokens(), WN2F_Offset_Memref(), WN2F_Stmt_Newline(), WN2F_String_Argument(), WN2F_translate(), WN_Get_Linenum(), WN_has_sym, WN_intrinsic(), WN_intrinsic_name(), WN_intrinsic_return_to_param(), WN_intrinsic_return_ty(), WN_kid(), WN_kid0(), WN_kid_count(), WN_opc_operator, WN_opcode(), WN_operator(), WN_Parm_By_Value, WN_st(), WN_Tree_Type(), and WN_ty().
Referenced by WN2F_intrinsic_call().
static void WN2F_Callsite_Directives | ( | TOKEN_BUFFER | tokens, |
WN * | call_wn, | ||
ST * | func_st | ||
) | [static] |
Definition at line 142 of file wn2f_stmt.cxx.
References Append_F77_Directive_Newline(), Append_Token_Special(), Append_Token_String(), ST2F_use_translate(), WN_Call_Dont_Inline, and WN_Call_Inline.
Referenced by WN2F_call().
WN2F_STATUS WN2F_casegoto | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3149 of file wn2f_stmt.cxx.
References Append_F77_Indented_Newline(), Append_Token_Special(), Append_Token_String(), EMPTY_WN2F_STATUS, FALSE, Host_To_Targ(), MTYPE_I4, NULL, ST2F_use_translate(), TCON2F_translate(), WHIRL2F_number_as_name, WN_const_val(), WN_label_number(), and WN_st().
WN2F_STATUS WN2F_compgoto | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 1801 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, NULL, OPR_BLOCK, OPR_COMPGOTO, OPR_GOTO, WHIRL2F_number_as_name, WN2F_goto(), WN2F_Stmt_Newline(), WN2F_translate(), WN_compgoto_has_default_case, WN_compgoto_idx, WN_compgoto_num_cases, WN_compgoto_table, WN_first(), WN_Get_Linenum(), WN_kid(), WN_label_number(), WN_next(), and WN_operator().
WN2F_STATUS WN2F_condbr | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2189 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, NULL, OPR_FALSEBR, OPR_TRUEBR, reset_WN2F_CONTEXT_has_logical_arg, reset_WN2F_CONTEXT_no_parenthesis, set_WN2F_CONTEXT_has_logical_arg, set_WN2F_CONTEXT_no_parenthesis, WHIRL2F_number_as_name, WN2F_Stmt_Newline(), WN2F_translate(), WN_condbr_cond, WN_Get_Linenum(), WN_label_number(), and WN_operator().
WN2F_STATUS WN2F_do_loop | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 1851 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, Concat2_Strings(), Decrement_Indentation(), DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, Increment_Indentation(), NULL, OPR_BLOCK, OPR_DO_LOOP, OPR_STID, reset_WN2F_CONTEXT_emit_stid, reset_WN2F_CONTEXT_has_logical_arg, reset_WN2F_CONTEXT_no_newline, reset_WN2F_CONTEXT_no_parenthesis, set_WN2F_CONTEXT_emit_stid, set_WN2F_CONTEXT_has_logical_arg, set_WN2F_CONTEXT_induction_step, set_WN2F_CONTEXT_no_newline, set_WN2F_CONTEXT_no_parenthesis, W2F_Emit_Cgtag, W2F_Prompf_Emission, WHIRL2F_Append_Comment(), WHIRL2F_number_as_name, WN2F_CONTEXT_no_newline, WN2F_End_Prompf_Transformed_Loop(), WN2F_Get_DoLoop_Bound(), WN2F_Get_DoLoop_StepSize(), WN2F_Start_Prompf_Transformed_Loop(), WN2F_Stmt_Newline(), WN2F_translate(), WN2F_Translate_DoLoop_Bound(), WN_do_body, WN_do_loop_info, WN_end, WN_Get_Linenum(), WN_idname_offset(), WN_index, WN_operator(), WN_st(), WN_start, and WN_step.
WN2F_STATUS WN2F_do_while | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2005 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, Decrement_Indentation(), DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, Increment_Indentation(), NULL, OPR_DO_WHILE, reset_WN2F_CONTEXT_has_logical_arg, set_WN2F_CONTEXT_has_logical_arg, ST2F_Declare_Tempvar(), Stab_Lock_Tmpvar(), Stab_Unlock_Tmpvar(), W2CF_Symtab_Nameof_Tempvar(), W2F_Prompf_Emission, WHIRL2F_Append_Comment(), WN2F_End_Prompf_Transformed_Loop(), WN2F_Start_Prompf_Transformed_Loop(), WN2F_Stmt_Newline(), WN2F_translate(), WN_Get_Linenum(), WN_operator(), WN_Tree_Type(), WN_while_body, and WN_while_test.
static void WN2F_End_Prompf_Transformed_Loop | ( | TOKEN_BUFFER | tokens, |
WN * | loop, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 1137 of file wn2f_stmt.cxx.
References W2CF_Get_Parent(), WN2F_Is_Loop_Region(), and WN2F_Prompf_Construct_End().
Referenced by WN2F_do_loop(), WN2F_do_while(), and WN2F_while_do().
static void WN2F_End_Prompf_Transformed_Region | ( | TOKEN_BUFFER | tokens, |
WN * | region, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 1168 of file wn2f_stmt.cxx.
References WN2F_Is_Loop_Region(), WN2F_Is_Parallel_Region(), and WN2F_Prompf_Construct_End().
static void WN2F_Enter_PU_Block | ( | void | ) | [static] |
Definition at line 1450 of file wn2f_stmt.cxx.
References Data_Stmt_Tokens, New_Token_Buffer(), NULL, and PUinfo_Get_ReturnSites().
Referenced by WN2F_block().
WN2F_STATUS WN2F_eval | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3044 of file wn2f_stmt.cxx.
References Append_F77_Comment_Newline(), Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, OPR_EVAL, set_WN2F_CONTEXT_has_logical_arg, set_WN2F_CONTEXT_no_parenthesis, TRUE, WN2F_translate(), WN_kid0(), and WN_operator().
static void WN2F_Exit_PU_Block | ( | TOKEN_BUFFER | tokens, |
TOKEN_BUFFER * | stmts | ||
) | [static] |
Definition at line 1465 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_F77_Indented_Newline(), Append_Token_String(), CURRENT_SYMTAB, Data_Stmt_Tokens, For_all(), Get_Current_PU(), GLOBAL_SYMTAB, haveCommonBlockName(), Is_Empty_Token_Buffer(), KIND_STRUCT, New_Token_Buffer(), NULL, PU_lexical_level(), PUINFO_FUNC_ST, PUinfo_local_decls, PUinfo_pragmas, Scope_tab, Set_TY_is_translated_to_c(), ST_pu(), St_Table, Stab_Reset_Referenced_Flag(), TY_kind(), TY_Table_Size(), W2F_Object_Name(), W2F_Purple_Emission, WHIRL2F_Append_Comment(), WN2F_Append_Purple_Funcinfo(), WN2F_Append_Symtab_Consts(), WN2F_Append_Symtab_Vars(), and WN2F_Purple_Region_Name.
Referenced by WN2F_block().
static void WN2F_Function_Call_Lhs | ( | TOKEN_BUFFER | rhs_tokens, |
TY_IDX | return_ty, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 166 of file wn2f_stmt.cxx.
References Append_Token_String(), ASSERT_DBG_FATAL, ASSERT_WARN, CALLSITE_in_regs, CALLSITE_return_var, CALLSITE_store1, CALLSITE_var_offset, CLASS_PREG, DIAG_W2F_INCOMPATIBLE_TYS, DIAG_W2F_UNEXPECTED_OPC, DIAG_W2F_UNEXPEXTED_RETURNREG_USE, FALSE, fld_type_z, KIND_STRUCT, MTYPE_V, New_Token_Buffer(), NULL, OPR_ISTORE, OPR_LDID, Prepend_And_Reclaim_Token_List(), Prepend_Token_Special(), PUinfo_Get_ReturnPreg(), RETURN_PREG_mtype, RETURN_PREG_num_pregs, RETURN_PREG_offset, ST2F_Declare_Tempvar(), ST2F_Use_Preg(), ST2F_use_translate(), ST_class(), ST_type(), Stab_Lock_Tmpvar(), Stab_Mtype_To_Ty(), Stab_Pointer_To(), Stab_Unlock_Tmpvar(), TRUE, TY_Is_Preg_Type(), TY_kind(), TY_pointed(), TY_size(), W2CF_Symtab_Nameof_Tempvar(), WN2F_Can_Assign_Types, WN2F_Load_Return_Reg(), WN2F_Offset_Memref(), WN2F_Offset_Symref(), WN2F_Stmt_Newline(), WN_kid0(), WN_kid1(), WN_operator(), WN_store_offset(), WN_Tree_Type(), and WN_ty().
static INTRINSIC WN2F_Get_Divceil_Intr | ( | MTYPE | mtype | ) | [static] |
Definition at line 426 of file wn2f_stmt.cxx.
References INTRN_I4DIVCEIL, INTRN_I8DIVCEIL, INTRN_U4DIVCEIL, INTRN_U8DIVCEIL, MTYPE_I4, MTYPE_I8, MTYPE_U4, and MTYPE_U8.
Referenced by WN2F_Get_Next_LoopBoundOp().
static INTRINSIC WN2F_Get_Divfloor_Intr | ( | MTYPE | mtype | ) | [static] |
Definition at line 400 of file wn2f_stmt.cxx.
References INTRN_I4DIVFLOOR, INTRN_I8DIVFLOOR, INTRN_U4DIVFLOOR, INTRN_U8DIVFLOOR, MTYPE_I4, MTYPE_I8, MTYPE_U4, and MTYPE_U8.
Referenced by WN2F_Get_Next_LoopBoundOp().
static DO_LOOP_BOUND* WN2F_Get_DoLoop_Bound | ( | WN * | end_test, |
ST * | idx_var, | ||
STAB_OFFSET | idx_ofst, | ||
WN * | step_size | ||
) | [static] |
Definition at line 742 of file wn2f_stmt.cxx.
References ASSERT_DBG_WARN, Do_Loop_Bound::comparison_opr, Do_Loop_Bound::const0, DIAG_W2F_UNEXPECTED_OPC, FALSE, MAX_TEST_OPERATIONS, NULL, Do_Loop_Bound::num_ops, Do_Loop_Bound::op, Do_Loop_Bound::opnd0, OPR_GE, OPR_GT, OPR_INTCONST, OPR_LDID, OPR_LE, OPR_LT, OPR_NE, TRUE, WN2F_Get_Next_LoopBoundOp(), WN2F_LoopBound_VarRef(), WN2F_Reverse_Bounds_Comparison, WN_const_val(), WN_kid(), WN_kid0(), WN_kid1(), WN_offset(), WN_operator(), and WN_st().
Referenced by WN2F_do_loop().
static WN* WN2F_Get_DoLoop_StepSize | ( | WN * | step, |
ST * | idx_var, | ||
STAB_OFFSET | idx_ofst | ||
) | [static] |
Definition at line 452 of file wn2f_stmt.cxx.
References ASSERT_DBG_FATAL, ASSERT_DBG_WARN, DIAG_W2F_UNEXPECTED_OPC, FALSE, NULL, OPR_ADD, OPR_LDID, OPR_STID, WN_kid0(), WN_kid1(), WN_offset(), WN_operator(), and WN_st().
Referenced by WN2F_do_loop().
static void WN2F_Get_Next_LoopBoundOp | ( | PARTIAL_OP * | op, |
OPERATOR * | comp_opr, | ||
BOOL * | ok, | ||
WN * | wn, | ||
INT | idx_kid | ||
) | [static] |
Definition at line 600 of file wn2f_stmt.cxx.
References ASSERT_DBG_WARN, DIAG_W2F_UNEXPECTED_OPC, FALSE, Partial_Op::intr, NULL, Partial_Op::opnd1, Partial_Op::opr, OPR_ADD, OPR_DIV, OPR_GE, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LE, OPR_MPY, OPR_NEG, OPR_SUB, Partial_Op::switch_opnds, TRUE, WN2F_Get_Divceil_Intr(), WN2F_Get_Divfloor_Intr(), WN2F_Reverse_Bounds_Comparison, WN_const_val(), WN_kid(), WN_kid0(), WN_kid1(), WN_opc_rtype, and WN_operator().
Referenced by WN2F_Get_DoLoop_Bound().
WN2F_STATUS WN2F_goto | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2160 of file wn2f_stmt.cxx.
References Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, NULL, OPR_GOTO, OPR_REGION_EXIT, WHIRL2F_number_as_name, WN2F_Stmt_Newline(), WN_Get_Linenum(), WN_label_number(), and WN_operator().
Referenced by WN2F_compgoto().
WN2F_STATUS WN2F_idname | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3501 of file wn2f_stmt.cxx.
References Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, OPR_IDNAME, Set_BE_ST_w2fc_referenced(), W2CF_Symtab_Nameof_St(), WN_operator(), and WN_st().
WN2F_STATUS WN2F_if | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2104 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, Decrement_Indentation(), DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, Increment_Indentation(), NULL, OPR_BLOCK, OPR_IF, reset_WN2F_CONTEXT_has_logical_arg, reset_WN2F_CONTEXT_no_parenthesis, set_WN2F_CONTEXT_has_logical_arg, set_WN2F_CONTEXT_no_parenthesis, WN2F_Stmt_Newline(), WN2F_translate(), WN_else, WN_else_is_empty, WN_first(), WN_Get_Linenum(), WN_if_test, WN_Is_If_Guard, WN_operator(), and WN_then.
WN2F_STATUS WN2F_implicit_bnd | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3108 of file wn2f_stmt.cxx.
References Append_Token_Special(), and EMPTY_WN2F_STATUS.
WN2F_STATUS WN2F_implied_do | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 1953 of file wn2f_stmt.cxx.
References Append_Token_Special(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_CONTEXT, EMPTY_WN2F_STATUS, ST_type(), Stab_Pointer_To(), WN2F_CONTEXT_io_stmt, WN2F_CONTEXT_no_newline, WN2F_io_item(), WN2F_Offset_Symref(), WN2F_translate(), WN_end, WN_index, WN_kid(), WN_kid_count(), WN_st(), WN_start, and WN_step.
Referenced by WN2F_io_list().
WN2F_STATUS WN2F_interface_blk | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3206 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_F77_Indented_Newline(), Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, BE_ST_w2fc_referenced(), Clear_BE_ST_w2fc_referenced(), Decrement_Indentation(), DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, FALSE, Unparse_Target::Func_Return_Type(), Get_Current_PU(), Increment_Indentation(), KIND_ARRAY, KIND_STRUCT, KIND_VOID, New_Token_Buffer(), NULL, OPR_INTERFACE, Prepend_Token_String(), PU_recursive(), ReorderParms(), Set_BE_ST_w2fc_referenced(), ST2F_decl_translate(), ST2F_FIRST_PARAM_IDX, ST_is_assign_interface(), ST_is_external(), ST_is_in_module(), ST_is_intent_in_argument(), ST_is_intent_out_argument(), ST_is_operator_interface(), ST_is_optional_argument(), ST_is_return_var(), ST_is_u_operator_interface(), ST_name(), ST_pu_type(), St_Table, ST_type(), Stab_Mtype_To_Ty(), STAB_PARAM_HAS_IMPLICIT_LENGTH(), TRUE, TY2F_translate(), TY_AR_etype(), TY_is_character(), TY_Is_Pointer(), TY_kind(), TY_mtype(), tyidx_modidx, unnamed_interface, W2CF_Symtab_Nameof_St(), W2X_Unparse_Target, WN_entry_name, WN_formal, WN_kid(), WN_kid_count(), WN_operator(), and WN_st().
Referenced by WN2F_pragma_list_begin().
WN2F_STATUS WN2F_intrinsic_call | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2400 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, ASSERT_DBG_WARN, CALLSITE_call, CALLSITE_next, DIAG_W2F_UNEXPECTED_CALLSITE, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, FALSE, fld_type_z, NULL, OPR_INTCONST, OPR_INTRINSIC_CALL, PUinfo_Get_CallSites(), TRUE, TY_pointed(), WN2F_call(), WN2F_CONTEXT_io_stmt, WN2F_Offset_Memref(), WN2F_Stmt_Newline(), WN2F_String_Argument(), WN_const_val(), WN_Get_Linenum(), WN_intrinsic(), WN_kid(), WN_kid0(), WN_kid1(), WN_kid_count(), WN_operator(), WN_Skip_Parm, and WN_Tree_Type().
static BOOL WN2F_Is_Loop_Region | ( | const WN * | region, |
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 1044 of file wn2f_stmt.cxx.
References Ignore_Synchronized_Construct(), NULL, OPR_REGION, WN_first(), WN_operator(), WN_pragma(), WN_PRAGMA_DOACROSS, WN_pragma_nest, WN_PRAGMA_PARALLEL_DO, WN_PRAGMA_PDO_BEGIN, and WN_region_pragmas.
Referenced by WN2F_End_Prompf_Transformed_Loop(), WN2F_End_Prompf_Transformed_Region(), WN2F_Start_Prompf_Transformed_Loop(), and WN2F_Start_Prompf_Transformed_Region().
static BOOL WN2F_Is_Parallel_Region | ( | WN * | region, |
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 1072 of file wn2f_stmt.cxx.
References Ignore_Synchronized_Construct(), NULL, OPR_REGION, WN_first(), WN_operator(), WN_pragma(), WN_PRAGMA_MASTER_BEGIN, WN_PRAGMA_PARALLEL_BEGIN, WN_PRAGMA_PARALLEL_SECTIONS, WN_PRAGMA_PARALLEL_WORKSHARE, WN_PRAGMA_PSECTION_BEGIN, WN_PRAGMA_SINGLE_PROCESS_BEGIN, and WN_region_pragmas.
Referenced by WN2F_End_Prompf_Transformed_Region(), and WN2F_Start_Prompf_Transformed_Region().
WN2F_STATUS WN2F_label | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2385 of file wn2f_stmt.cxx.
References Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, OPR_LABEL, WHIRL2F_number_as_name, WN2F_Stmt_Newline(), WN_Get_Linenum(), WN_label_number(), and WN_operator().
static void WN2F_Load_Return_Reg | ( | TOKEN_BUFFER | tokens, |
TY_IDX | return_ty, | ||
const char * | var_name, | ||
STAB_OFFSET | var_offset, | ||
MTYPE | preg_mtype, | ||
PREG_IDX | preg_offset, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 110 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_Token_Special(), Append_Token_String(), FALSE, New_Token_Buffer(), path, ST2F_Use_Preg(), Stab_Mtype_To_Ty(), TY2F_Free_Fld_Path(), TY2F_Get_Fld_Path(), TY2F_Translate_Fld_Path(), and WN2F_F90_pu.
Referenced by WN2F_Function_Call_Lhs().
static UINT WN2F_LoopBound_VarRef | ( | WN * | wn, |
ST * | st, | ||
STAB_OFFSET | st_ofst, | ||
INT * | ldid_in_kid, | ||
UINT | level | ||
) | [static] |
Definition at line 493 of file wn2f_stmt.cxx.
References MAX_TEST_OPERATIONS, OPR_ADD, OPR_DIV, OPR_LDID, OPR_MPY, OPR_NEG, OPR_SUB, WN_kid0(), WN_kid1(), WN_num_var_refs(), WN_offset(), WN_operator(), and WN_st().
Referenced by WN2F_Get_DoLoop_Bound().
WN2F_STATUS WN2F_namelist_stmt | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3073 of file wn2f_stmt.cxx.
References Append_F77_Indented_Newline(), Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, NULL, OPR_NAMELIST, Set_BE_ST_w2fc_referenced(), ST_is_external(), W2CF_Symtab_Nameof_St(), WN_kid(), WN_kid_count(), WN_operator(), and WN_st().
WN2F_STATUS WN2F_noio_implied_do | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3480 of file wn2f_stmt.cxx.
References Append_Token_Special(), EMPTY_WN2F_STATUS, WN2F_translate(), WN_kid(), WN_kid0(), and WN_kid1().
WN2F_STATUS WN2F_nullify_stmt | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3169 of file wn2f_stmt.cxx.
References Append_F77_Indented_Newline(), Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, NULL, OPR_ARRAY, OPR_ARRSECTION, OPR_NULLIFY, WN2F_translate(), WN_kid(), WN_kid0(), WN_kid_count(), and WN_operator().
WN2F_STATUS WN2F_prefetch | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2990 of file wn2f_stmt.cxx.
References Append_F77_Comment_Newline(), Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, Concat2_Strings(), Concat3_Strings(), Current_Indentation(), DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, OPR_PREFETCH, OPR_PREFETCHX, PF_GET_CONFIDENCE, PF_GET_READ, PF_GET_STRIDE_1L, PF_GET_STRIDE_2L, Ptr_as_String(), Set_Current_Indentation(), set_WN2F_CONTEXT_deref_addr, TRUE, WHIRL2F_number_as_name, WN2F_translate(), WN_kid0(), WN_kid1(), WN_offset(), WN_operator(), and WN_prefetch_flag().
static void WN2F_Prompf_Construct_End | ( | TOKEN_BUFFER | tokens, |
WN * | construct | ||
) | [static] |
Definition at line 1109 of file wn2f_stmt.cxx.
References Append_F77_Directive_Newline(), Append_Token_String(), Number_as_String(), sgi_comment_str, W2F_Construct_Map, and WN_MAP32_Get.
Referenced by WN2F_End_Prompf_Transformed_Loop(), and WN2F_End_Prompf_Transformed_Region().
static void WN2F_Prompf_Construct_Start | ( | TOKEN_BUFFER | tokens, |
WN * | construct | ||
) | [static] |
Definition at line 1095 of file wn2f_stmt.cxx.
References Append_F77_Directive_Newline(), Append_Token_String(), Number_as_String(), sgi_comment_str, W2F_Construct_Map, and WN_MAP32_Get.
Referenced by WN2F_Start_Prompf_Transformed_Loop(), and WN2F_Start_Prompf_Transformed_Region().
WN2F_STATUS WN2F_return | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2221 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, ASSERT_WARN, CLASS_PREG, DIAG_UNIMPLEMENTED, DIAG_W2F_INCOMPATIBLE_TYS, DIAG_W2F_UNEXPECTED_OPC, DIAG_W2F_UNEXPECTED_RETURNSITE, EMPTY_WN2F_STATUS, FALSE, Get_Current_PU(), KIND_STRUCT, KIND_VOID, MTYPE_V, NULL, OPR_RETURN, OPR_STID, PU_is_mainpu(), PUinfo_current_func, PUINFO_FUNC_ST, PUinfo_return_preg, PUINFO_RETURN_TO_PARAM, PUINFO_RETURN_TY, RETURN_PREG_mtype, RETURN_PREG_num_pregs, RETURN_PREG_offset, RETURNSITE_next, RETURNSITE_return, RETURNSITE_return_var, RETURNSITE_store1, RETURNSITE_var_offset, ST2F_Use_Preg(), ST2F_use_translate(), ST_class(), ST_is_return_var(), ST_name(), ST_type(), Stab_Mtype_To_Ty(), Stab_Pointer_To(), TY_Is_Preg_Type(), TY_kind(), W2F_OpenAD, WN2F_Can_Assign_Types, WN2F_Offset_Symref(), WN2F_Stmt_Newline(), WN2F_translate(), WN_entry_name, WN_Get_Linenum(), WN_kid(), WN_kid0(), WN_kid_count(), WN_last(), WN_operator(), and WN_Tree_Type().
WN2F_STATUS WN2F_return_val | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2369 of file wn2f_stmt.cxx.
References Append_Token_String(), EMPTY_WN2F_STATUS, Is_True, NULL, OPR_LDID, OPR_RETURN_VAL, WN2F_Stmt_Newline(), WN2F_translate(), WN_Get_Linenum(), WN_kid0(), and WN_operator().
BOOL WN2F_Skip_Stmt | ( | WN * | stmt | ) |
Definition at line 1605 of file wn2f_stmt.cxx.
References CALLSITE_store1, CALLSITE_store2, NULL, OPR_PRAGMA, OPR_PREFETCH, OPR_PREFETCHX, OPR_XPRAGMA, RETURNSITE_store1, RETURNSITE_store2, W2F_Emit_Prefetch, W2F_No_Pragmas, WN2F_Skip_Pragma_Stmt(), WN_operator(), WN_pragma(), and WN_PRAGMA_PREAMBLE_END.
Referenced by WN2F_block(), and WN2F_switch().
static void WN2F_Start_Prompf_Transformed_Loop | ( | TOKEN_BUFFER | tokens, |
WN * | loop, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 1123 of file wn2f_stmt.cxx.
References W2CF_Get_Parent(), WN2F_Is_Loop_Region(), and WN2F_Prompf_Construct_Start().
Referenced by WN2F_do_loop(), WN2F_do_while(), and WN2F_while_do().
static void WN2F_Start_Prompf_Transformed_Region | ( | TOKEN_BUFFER | tokens, |
WN * | region, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 1151 of file wn2f_stmt.cxx.
References WN2F_Is_Loop_Region(), WN2F_Is_Parallel_Region(), and WN2F_Prompf_Construct_Start().
void WN2F_Stmt_finalize | ( | void | ) |
Definition at line 1598 of file wn2f_stmt.cxx.
Referenced by WN2F_finalize().
void WN2F_Stmt_initialize | ( | void | ) |
Definition at line 1591 of file wn2f_stmt.cxx.
Referenced by WN2F_initialize().
WN2F_STATUS WN2F_switch | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3117 of file wn2f_stmt.cxx.
References EMPTY_WN2F_STATUS, NULL, OPR_CASEGOTO, WN2F_Skip_Stmt(), WN2F_translate(), WN_first(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid_count(), WN_next(), WN_operator(), and WN_st_idx().
static WN2F_STATUS WN2F_Translate_DoLoop_Bound | ( | TOKEN_BUFFER | tokens, |
DO_LOOP_BOUND * | bound, | ||
WN2F_CONTEXT | context | ||
) | [static] |
Definition at line 902 of file wn2f_stmt.cxx.
References Append_And_Reclaim_Token_List(), Append_Token_Special(), Append_Token_String(), ASSERT_FATAL, Do_Loop_Bound::const0, DIAG_W2F_UNEXPECTED_DOLOOP_BOUNDOP, EMPTY_WN2F_STATUS, FALSE, Partial_Op::intr, INTRN_I4DIVCEIL, INTRN_I4DIVFLOOR, INTRN_I8DIVCEIL, INTRN_I8DIVFLOOR, INTRN_U4DIVCEIL, INTRN_U4DIVFLOOR, INTRN_U8DIVCEIL, INTRN_U8DIVFLOOR, New_Token_Buffer(), NULL, Do_Loop_Bound::num_ops, Number_as_String(), Do_Loop_Bound::op, OPERATOR_name(), Do_Loop_Bound::opnd0, Partial_Op::opnd1, Partial_Op::opr, OPR_ADD, OPR_DIV, OPR_INTRINSIC_OP, OPR_MPY, OPR_NEG, OPR_SUB, Prepend_And_Reclaim_Token_List(), Prepend_Token_Special(), Prepend_Token_String(), Partial_Op::switch_opnds, TRUE, WHIRL2F_Parenthesize(), and WN2F_translate().
Referenced by WN2F_do_loop().
WN2F_STATUS WN2F_use_stmt | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 3067 of file wn2f_stmt.cxx.
References EMPTY_WN2F_STATUS.
WN2F_STATUS WN2F_while_do | ( | TOKEN_BUFFER | tokens, |
WN * | wn, | ||
WN2F_CONTEXT | context | ||
) |
Definition at line 2068 of file wn2f_stmt.cxx.
References Append_Token_Special(), Append_Token_String(), ASSERT_DBG_FATAL, Decrement_Indentation(), DIAG_W2F_UNEXPECTED_OPC, EMPTY_WN2F_STATUS, Increment_Indentation(), NULL, OPR_WHILE_DO, reset_WN2F_CONTEXT_has_logical_arg, reset_WN2F_CONTEXT_no_parenthesis, set_WN2F_CONTEXT_has_logical_arg, set_WN2F_CONTEXT_no_parenthesis, W2F_Prompf_Emission, WN2F_End_Prompf_Transformed_Loop(), WN2F_Start_Prompf_Transformed_Loop(), WN2F_Stmt_Newline(), WN2F_translate(), WN_Get_Linenum(), WN_operator(), WN_while_body, and WN_while_test.
Definition at line 137 of file st2f.cxx.
Referenced by TY2C_prototype_params().
const char unnamed_interface[] = "unnamed interface" [static] |
Definition at line 94 of file wn2f_stmt.cxx.
Referenced by WN2F_interface_blk().
Definition at line 172 of file w2f_driver.cxx.
Referenced by W2F_Set_Prompf_Emission(), WN2F_End_Prompf_Construct(), WN2F_func_entry(), WN2F_Prompf_Construct_End(), WN2F_Prompf_Construct_Start(), and WN2F_Start_Prompf_Construct().
Definition at line 159 of file w2f_driver.cxx.
Referenced by W2F_Process_Command_Line(), and WN2F_do_loop().
Definition at line 173 of file w2f_driver.cxx.
Referenced by W2F_Pop_PU(), W2F_Set_Frequency_Map(), and WN2F_block().
Definition at line 171 of file w2f_driver.cxx.
Referenced by Begin_New_Locations_File(), End_Locations_File(), Process_Filename_Options(), Put_Pragma_Start_With_Caveats(), W2F_Init(), W2F_Outfile_Fini(), W2F_Outfile_Init(), W2F_Set_Prompf_Emission(), WN2F_do_loop(), WN2F_do_while(), WN2F_Emit_End_Stmt(), WN2F_End_Routine_Strings(), WN2F_func_entry(), WN2F_process_pragma(), and WN2F_while_do().
RETURNSITE* WN2F_Next_ReturnSite = NULL [static] |
Definition at line 105 of file wn2f_stmt.cxx.
CALLSITE* WN2F_Prev_CallSite = NULL [static] |
Definition at line 106 of file wn2f_stmt.cxx.
const char WN2F_Purple_Region_Name[] = "prp___region" [static] |
Definition at line 93 of file wn2f_stmt.cxx.
Referenced by WN2F_Append_Purple_Funcinfo(), and WN2F_Exit_PU_Block().