Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "defs.h"
#include "glob.h"
#include "config.h"
#include "wn.h"
#include "wn_util.h"
#include "const.h"
#include <cmplrs/rcodes.h>
#include <upc_wn_util.h>
#include <upc_symtab_utils.h>
#include <stack>
Go to the source code of this file.
WN* Combine_Offset_Terms | ( | SPTR_OFFSET_TERM_STACK & | stack | ) |
Definition at line 1306 of file upc_wn_util.cxx.
References MTYPE_I4, OPR_ADD, and WN_Binary().
void fdump_tree | ( | FILE * | f, |
WN * | wn | ||
) |
Definition at line 1533 of file ir_reader.cxx.
References fprintf(), IR_Dwarf_Gen_File_Table(), ir_ofile, ir_put_expr(), IR_put_func(), ir_put_stmt(), IR_reader_init(), is_initialized, NULL, OPC_FUNC_ENTRY, OPCODE_is_expression(), OPCODE_is_scf(), OPCODE_is_stmt(), TRUE, and WN_opcode().
Referenced by Check_for_IR_Dump(), Do_WOPT_and_CG_with_Regions(), dump_region_tree(), dump_tree(), fdump_region_tree(), fdump_tree_no_st(), fdump_tree_with_alias(), fdump_tree_with_freq(), LNO_Processing(), PDGCS_do_proc(), show_tree(), and WOPT_Processing().
static CONSISTENCY_class Get_Access_Consistency | ( | TY_IDX | idx | ) | [static] |
Definition at line 254 of file upc_wn_util.cxx.
References consistency_stack, Get_Inner_Array_Type(), KIND_ARRAY, KIND_POINTER, RELAXED_CONSISTENCY, STRICT_CONSISTENCY, TY_is_relaxed(), TY_is_strict(), TY_kind(), and TY_pointed().
Referenced by WN_Create_Shared_Load(), and WN_Create_Shared_Store().
TY_IDX Get_Type_From_ArrayOp | ( | WN * | array_wn | ) |
Definition at line 1330 of file upc_wn_util.cxx.
References OPR_ARRAY, OPR_LDA, result, TY_pointed(), WN_array_base, WN_operator(), and WN_ty().
void LowerUPC_Init_Consistency | ( | ) |
Definition at line 1166 of file upc_wn_util.cxx.
References consistency_map, FALSE, WN::first, MEM_POOL_Initialize, MEM_POOL_Push, and WN_MAP_Create.
static TYPE_ID Shared_Load_Extend_Mtyp | ( | TYPE_ID | typ | ) | [static] |
Definition at line 223 of file upc_wn_util.cxx.
References Is_True, MTYPE_B, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_To_TY, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, Pointer_type, and TY_size().
Referenced by WN_Create_Shared_Load(), and WN_Create_Shared_Ptr_Arithmetic().
static WN* Spill_And_Take_Address | ( | WN * | wn | ) | [static] |
Definition at line 191 of file upc_wn_util.cxx.
References WN::desc, Gen_Temp_Symbol(), Get_Field_Type(), MTYPE_To_TY, MTYPE_V, OPR_COMMA, OPR_ILOAD, OPR_LDA, OPR_TAS, Pointer_Mtype, result, Strip_TAS(), TY_mtype(), TY_To_Sptr_Idx(), Type_Is_Shared_Ptr(), wn, WN_CreateBlock(), WN_CreateComma(), WN_field_id(), WN_INSERT_BlockLast, WN_Lda(), WN_operator(), WN_rtype(), WN_Stid(), and WN_ty().
Referenced by WN_Create_Shared_Store().
WN* Spill_Shared_Load | ( | WN * | ld | ) |
Definition at line 1151 of file upc_wn_util.cxx.
References block, Gen_Temp_Symbol(), idx, Index_To_Str(), Is_True, MTYPE_V, OPR_COMMA, OPR_LDID, Save_Str2(), TY_mtype(), Widen_Mtype(), WN_CreateBlock(), WN_CreateComma(), WN_INSERT_BlockLast, WN_kid1(), WN_Ldid(), WN_operator(), WN_Stid(), and WN_ty().
Definition at line 1299 of file upc_wn_util.cxx.
References OPR_TAS, wn, WN_kid0(), and WN_operator().
Referenced by Spill_And_Take_Address(), WN_Create_Shared_Load(), and WN_Create_Shared_Store().
static TYPE_ID Widen_Mtype | ( | TYPE_ID | t | ) | [inline, static] |
Definition at line 27 of file upc_wn_util.cxx.
References Fail_FmtAssertion(), MTYPE_BS, MTYPE_byte_size, MTYPE_I4, MTYPE_is_m, MTYPE_is_void, and Mtype_TransferSize().
Referenced by Spill_Shared_Load(), and WN_Create_Shared_Load().
WN* WN_Convert_Shared_To_Local | ( | WN * | ptr, |
TY_IDX | ty, | ||
ST * | st | ||
) |
Definition at line 961 of file upc_wn_util.cxx.
References Gen_Temp_Symbol(), Is_True, MTYPE_To_TY, MTYPE_V, OPR_COMMA, OPR_INTRINSIC_CALL, OPR_STID, OPR_TAS, Pointer_Mtype, Return_Val_Preg, shared_ptr_idx, TY_mtype(), TY_To_Sptr_Idx(), WN_Create(), WN_CreateBlock(), WN_CreateComma(), WN_CreateParm(), WN_CreateStid(), WN_INSERT_BlockLast, WN_intrinsic(), WN_kid0(), WN_kid1(), WN_Ldid(), WN_operator(), WN_PARM_BY_VALUE, WN_rtype(), and WN_ty().
Definition at line 1016 of file upc_wn_util.cxx.
References FALSE, Gen_Temp_Symbol(), Is_True, MTYPE_I4, MTYPE_To_TY, MTYPE_V, OPR_COMMA, OPR_EQ, OPR_INTCONST, OPR_INTRINSIC_CALL, OPR_LDID, OPR_NE, OPR_STID, pshared_ptr_idx, Return_Val_Preg, TRUE, TY_mtype(), TY_To_Sptr_Idx(), Type_Is_Shared_Ptr(), WN_Create(), WN_CreateBlock(), WN_CreateComma(), WN_CreateParm(), WN_CreateStid(), WN_INSERT_BlockLast, WN_intrinsic(), WN_kid0(), WN_kid1(), WN_Ldid(), WN_LNOT, WN_operator(), WN_Operator_To_Intrinsic(), WN_PARM_BY_VALUE, WN_rtype(), and WN_ty().
WN* WN_Create_Shared_Load | ( | WN * | ld, |
WN * | dest, | ||
BOOL | is_struct, | ||
WN_OFFSET | xtra_offst, | ||
TY_IDX | access_ty, | ||
BOOL | has_off, | ||
WN * | off_wn | ||
) |
Definition at line 526 of file upc_wn_util.cxx.
References Adjust_Field_Offset(), WN::desc, FLD_get_to_field(), FLD_type(), Gen_Temp_Symbol(), Get_Access_Consistency(), Get_Field_Type(), Integer_type, Is_True, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, Make_Pointer_Type(), MTYPE_B, MTYPE_F4, MTYPE_F8, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_is_integral, MTYPE_is_unsigned, MTYPE_M, MTYPE_signed, MTYPE_size_min, MTYPE_To_TY, Mtype_TransferSign(), MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, MTYPE_V, OPR_COMMA, OPR_ILOAD, OPR_INTRINSIC_CALL, OPR_LDID, OPR_MLOAD, OPR_TAS, Pointer_Mtype, Pointer_type, pshared_ptr_idx, RELAXED_CONSISTENCY, Return_Val_Preg, WN::rtype, Shared_Load_Extend_Mtyp(), shared_ptr_idx, size, ST_ofst(), STRICT_CONSISTENCY, Strip_TAS(), TRUE, TY_is_shared(), TY_kind(), TY_mtype(), TY_pointed(), TY_size(), TY_To_Sptr_Idx(), Type_Is_Shared_Ptr(), upc_hsync_mem_ty, upc_hsync_reg_ty, Widen_Mtype(), WN_COPY_Tree(), WN_Create(), WN_CreateBlock(), WN_CreateComma(), WN_CreateLdid(), WN_CreateParm(), WN_desc(), WN_field_id(), WN_INSERT_BlockLast, WN_Intconst(), WN_intrinsic(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid3(), WN_Lda(), WN_Ldid(), WN_load_addr_ty(), WN_object_ty(), WN_offset(), WN_operator(), WN_PARM_BY_VALUE, WN_rtype(), WN_set_desc(), WN_set_field_id(), WN_set_rtype(), WN_set_ty(), WN_Stid(), WN_ty(), WN_Type_To_Intrinsic(), and WN_Type_To_SyncIntrinsic().
WN* WN_Create_Shared_Ptr_Arithmetic | ( | WN * | base, |
WN * | disp, | ||
OPERATOR | opr, | ||
int | esize, | ||
int | bsize, | ||
int | phaseless | ||
) |
Definition at line 904 of file upc_wn_util.cxx.
References Gen_Temp_Symbol(), Integer_type, MTYPE_M, MTYPE_To_TY, MTYPE_V, OPR_COMMA, OPR_INTRINSIC_CALL, OPR_LDID, OPR_TAS, pshared_ptr_idx, Return_Val_Preg, WN::rtype, Shared_Load_Extend_Mtyp(), shared_ptr_idx, ST_ofst(), TY_mtype(), WN_Create(), WN_CreateBlock(), WN_CreateComma(), WN_CreateLdid(), WN_CreateParm(), WN_INSERT_BlockLast, WN_Intconst(), WN_intrinsic(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid3(), WN_Ldid(), WN_operator(), WN_Operator_To_Intrinsic(), WN_PARM_BY_VALUE, WN_rtype(), WN_Stid(), and WN_ty().
Definition at line 1180 of file upc_wn_util.cxx.
References Gen_Temp_Symbol(), Get_Type_Block_Size(), Get_Type_Inner_Size(), Integer_type, MTYPE_I4, MTYPE_To_TY, MTYPE_V, OPR_COMMA, OPR_INTRINSIC_CALL, OPR_LDID, pshared_ptr_idx, Return_Val_Preg, WN::rtype, shared_ptr_idx, ST_ofst(), TY_block_size(), TY_is_pshared(), TY_mtype(), TY_pointed(), WN_Create(), WN_Create_StoP_Cvt(), WN_CreateBlock(), WN_CreateComma(), WN_CreateLdid(), WN_CreateParm(), WN_INSERT_BlockLast, WN_Intconst(), WN_intrinsic(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid3(), WN_Ldid(), WN_PARM_BY_VALUE, and WN_Stid().
WN* WN_Create_Shared_Store | ( | WN * | st, |
BOOL | src_is_shared, | ||
WN_OFFSET | xtra_offst, | ||
BOOL | has_offt, | ||
WN * | offt | ||
) |
Definition at line 275 of file upc_wn_util.cxx.
References Adjust_Field_Offset(), CLASS_PREG, WN::desc, Gen_Temp_Symbol(), Get_Access_Consistency(), Get_Field_Type(), Integer_type, Is_True, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, MTYPE_A8, Mtype_comparison(), MTYPE_F4, MTYPE_F8, MTYPE_I8, MTYPE_M, MTYPE_To_TY, MTYPE_U8, MTYPE_V, OPR_COMMA, OPR_INTCONST, OPR_INTRINSIC_CALL, OPR_ISTORE, OPR_LDID, OPR_MSTORE, OPR_STID, Pointer_Mtype, Pointer_type, pshared_ptr_idx, RELAXED_CONSISTENCY, Return_Val_Preg, WN::rtype, Spill_And_Take_Address(), ST_class(), ST_ofst(), ST_st_idx(), ST_type(), STRICT_CONSISTENCY, Strip_TAS(), TRUE, TY_is_shared(), TY_kind(), TY_mtype(), TY_pointed(), TY_size(), TY_To_Sptr_Idx(), Type_Is_Shared_Ptr(), upc_hsync_mem_ty, upc_hsync_reg_ty, WN_COPY_Tree(), WN_Create(), WN_CreateBlock(), WN_CreateComma(), WN_CreateLdid(), WN_CreateParm(), WN_desc(), WN_field_id(), WN_INSERT_BlockLast, WN_Intconst(), WN_intrinsic(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid3(), WN_Lda(), WN_Ldid(), WN_offset(), WN_operator(), WN_PARM_BY_VALUE, WN_rtype(), WN_SetNull_Sptr(), WN_st(), WN_st_idx(), WN_Stid(), WN_ty(), WN_Type_To_Intrinsic(), and WN_Type_To_SyncIntrinsic().
WN* WN_Create_StoP_Cvt | ( | WN * | init_wn, |
INTRINSIC | iop | ||
) |
Definition at line 1098 of file upc_wn_util.cxx.
References Gen_Temp_Symbol(), Is_True, MTYPE_V, OPR_COMMA, OPR_INTRINSIC_CALL, OPR_LDID, pshared_ptr_idx, Return_Val_Preg, shared_ptr_idx, TY_mtype(), WN_Create(), WN_CreateBlock(), WN_CreateComma(), WN_CreateLdid(), WN_CreateParm(), WN_INSERT_BlockLast, WN_intrinsic(), WN_kid0(), WN_Ldid(), WN_PARM_BY_VALUE, WN_rtype(), and WN_Stid().
Referenced by WN_Create_Shared_Ptr_Diff(), and WN_SetNull_Sptr().
INTRINSIC WN_Operator_To_Intrinsic | ( | OPERATOR | opr, |
INT | bsize = 0 , |
||
INT | idx1 = 0 |
||
) |
Definition at line 154 of file upc_wn_util.cxx.
References Is_True, OPR_ADD, OPR_EQ, OPR_SUB, pshared_ptr_idx, and shared_ptr_idx.
Referenced by WN_Create_PtrEq_Test(), and WN_Create_Shared_Ptr_Arithmetic().
WN* WN_SetNull_Sptr | ( | WN * | st | ) |
Definition at line 1251 of file upc_wn_util.cxx.
References arg, Is_True, MTYPE_To_TY, MTYPE_V, OPR_INTRINSIC_CALL, OPR_ISTORE, OPR_MSTORE, OPR_STID, Pointer_Mtype, pshared_ptr_idx, shared_ptr_idx, TY_mtype(), TY_pointed(), TY_To_Sptr_Idx(), WN_Create(), WN_Create_StoP_Cvt(), WN_CreateParm(), WN_intrinsic(), WN_kid0(), WN_kid1(), WN_Lda(), WN_operator(), WN_PARM_BY_VALUE, WN_st(), and WN_ty().
Referenced by WN_Create_Shared_Store().
INTRINSIC WN_Type_To_Intrinsic | ( | OPERATOR | opr, |
int | mtype, | ||
int | strict = 1 , |
||
BOOL | phaseless = TRUE |
||
) |
Definition at line 70 of file upc_wn_util.cxx.
References Is_True, MTYPE_A4, MTYPE_A8, MTYPE_BS, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F10, MTYPE_F16, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_M, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, OPR_ILOAD, OPR_ISTORE, OPR_LDID, OPR_MLOAD, OPR_MSTORE, and OPR_STID.
Referenced by WN_Create_Shared_Load(), and WN_Create_Shared_Store().
INTRINSIC WN_Type_To_SyncIntrinsic | ( | TYPE_ID | mtype | ) |
Definition at line 22 of file upc_wn_util.cxx.
Referenced by LowerUPC_Init_Consistency().
Definition at line 21 of file upc_wn_util.cxx.
Definition at line 18 of file upc_wn_util.cxx.
Referenced by Get_Access_Consistency().
Definition at line 15 of file upc_wn_util.cxx.
Definition at line 18 of file upc_wn_util.cxx.
Definition at line 17 of file upc_wn_util.cxx.