Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "wn.h"
#include <stack>
#include "mempool.h"
#include "wn_map.h"
#include "upc_symtab_utils.h"
Go to the source code of this file.
Definition at line 12 of file upc_wn_util.h.
typedef std::stack<WN*> SPTR_OFFSET_TERM_STACK |
Definition at line 11 of file upc_wn_util.h.
Definition at line 15 of file upc_wn_util.h.
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().
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.
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().
WN* WN_Convert_Shared_To_Local | ( | WN * | ptr, |
TY_IDX | ty = 0 , |
||
ST * | st = 0 |
||
) |
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 = 0 , |
||
BOOL | is_struct = FALSE , |
||
WN_OFFSET | xtra_offst = 0 , |
||
TY_IDX | access_ty = 0 , |
||
BOOL | has_off = FALSE , |
||
WN * | off_wn = 0 |
||
) |
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 = 0 , |
||
int | bsize = 0 , |
||
int | phaseless = 0 |
||
) |
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 = FALSE , |
||
WN_OFFSET | xtra_offst = 0 , |
||
BOOL | has_offt = FALSE , |
||
WN * | offt = 0 |
||
) |
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().
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().
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.