Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "defs.h"
#include "glob.h"
#include "stab.h"
#include "strtab.h"
#include "errors.h"
#include "config_targ.h"
#include "config_debug.h"
#include "wn.h"
#include "wn_util.h"
#include "wn_trap.h"
#include "f90_utils.h"
#include "pu_info.h"
#include "i_cvrt.h"
#include "cwh_defines.h"
#include "cwh_stk.h"
#include "cwh_preg.h"
#include "cwh_stab.h"
#include "cwh_auxst.h"
#include "cwh_block.h"
#include "cwh_types.h"
#include "cwh_stmt.h"
#include "cwh_expr.h"
#include "cwh_io.h"
#include "cwh_intrin.h"
#include "cwh_dst.h"
#include "sgi_cmd_line.h"
#include "cwh_addr.h"
#include "cwh_addr.i"
Go to the source code of this file.
Referenced by cwh_addr_compute_stride_fudge_factor().
Referenced by cwh_addr_compute_stride_fudge_factor().
Referenced by cwh_addr_compute_stride_fudge_factor().
WN* addr_gen_iload_for_strctfld | ( | WN * | wn | ) |
Definition at line 3144 of file cwh_addr.cxx.
References Load_Opcode, TY_mtype(), WN_CreateIload(), and WN_ty().
Referenced by cwh_expr_binop(), and fei_store().
static void cwh_addr_access_flags | ( | ST * | st, |
INT | fg | ||
) | [static] |
Definition at line 2916 of file cwh_addr.cxx.
References cwh_stab_add_pragma(), HOST_ASSOCIATED, and IN_NESTED_PU.
Referenced by cwh_addr_address_ST(), cwh_addr_lda(), cwh_addr_ldid(), cwh_addr_load_ST(), cwh_addr_pstid(), cwh_addr_pstore_ST(), cwh_addr_stid(), and cwh_addr_store_ST().
static WN* cwh_addr_add_bound | ( | WN * | ar, |
WN * | sz, | ||
WN * | subscript | ||
) | [static] |
Definition at line 1127 of file cwh_addr.cxx.
References FOREACH_AXIS, NULL, SUB_OFF, subscript, SZ_OFF, WN_kid(), and WN_kid_count().
Referenced by cwh_addr_temp_section(), fei_as_ref(), fei_nseq_subscr(), fei_seq_subscr(), and fei_substr().
WN* cwh_addr_address_ST | ( | ST * | st, |
OFFSET_64 | off, | ||
TY_IDX | ty | ||
) |
Definition at line 2201 of file cwh_addr.cxx.
References ACCESSED_ILOAD, ACCESSED_ISTORE, ACCESSED_LOAD, ACCESSED_PSTORE, CLASS_FUNC, cwh_addr_access_flags(), cwh_addr_lda(), cwh_addr_ldid(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), DevAssert, FALSE, Has_Base_Block(), KIND_POINTER, OPR_ADD, Pointer_Mtype, SCLASS_FORMAL, ST_auxst_is_auto_or_cpointer, ST_base(), ST_class(), ST_pu_type(), ST_sclass(), ST_type(), TY_kind(), wn, and WN_Intconst().
Referenced by cwh_addr_load_ST(), cwh_addr_pstore_ST(), cwh_addr_store_ST(), cwh_addr_substr_util(), cwh_directive_barrier_insert(), cwh_expr_address(), cwh_expr_operand(), cwh_intrin_sync_intrin(), cwh_io_no_desc(), fei_addr_con(), fei_allocate(), fei_close(), fei_control_list(), fei_field_dot(), fei_inquire(), fei_nseq_subscr(), fei_open(), fei_pstore(), fei_seq_subscr(), fei_store(), and fei_task_var().
static WN* cwh_addr_adjust_array | ( | WN * | wn, |
TY_IDX | ty | ||
) | [static] |
Definition at line 2423 of file cwh_addr.cxx.
References cwh_expr_bincalc(), cwh_types_bound_WN(), KIND_ARRAY, OPR_MPY, TY_AR_etype(), TY_kind(), UPPER, WN_array_dim, WN_COPY_Tree(), WN_DELETE_Tree(), WN_element_size(), and WN_num_dim.
Referenced by cwh_addr_substr_util().
static WN* cwh_addr_array | ( | OPCODE | op, |
WN * | addr, | ||
TY_IDX | ty | ||
) | [static] |
Definition at line 891 of file cwh_addr.cxx.
References cwh_types_array_TY(), FOREACH_AXIS, NULL, SUB_OFF, SZ_OFF, TY_AR_ndims(), TY_etype(), TY_size(), Ty_Table, wn, WN_Create(), WN_element_size(), and WN_kid().
Referenced by cwh_addr_substr_util(), cwh_addr_temp_section(), fei_as_ref(), and fei_nseq_subscr().
Definition at line 916 of file cwh_addr.cxx.
References cwh_types_array_TY(), FOREACH_AXIS, NULL, SUB_OFF, SZ_OFF, TY_etype(), TY_size(), Ty_Table, wn, WN_Create(), WN_element_size(), and WN_kid().
Referenced by fei_seq_subscr().
static INT64 cwh_addr_compute_stride_fudge_factor | ( | TY_IDX | in | ) | [static] |
Definition at line 321 of file cwh_addr.cxx.
References cwh_types_array_TY(), DevAssert, KIND_ARRAY, KIND_SCALAR, KIND_STRUCT, RETURN1, RETURN2, RETURN4, TY_etype(), TY_is_packed(), TY_kind(), TY_size(), and Ty_Table.
Referenced by fei_nseq_subscr().
static WN* cwh_addr_do_bounds_check | ( | WN * | subscript_in, |
WN * | lbound, | ||
WN * | extent | ||
) | [static] |
Definition at line 966 of file cwh_addr.cxx.
References cast_to_int, check_bounds_this_access, Create_Preg(), cwh_addr_ubound_from_triplet(), cwh_block_append(), cwh_bound_int_typeid, cwh_expr_bincalc(), cwh_expr_operand(), cwh_stk_push(), DEBUG_Subscript_Check, F90_Wrap_ARREXP(), fei_all(), fei_null_expr(), logical4_ty, MTYPE_I4, NULL, OPCODE_UNKNOWN, OPR_ADD, OPR_ARRAYEXP, OPR_GE, OPR_INTCONST, OPR_LE, OPR_LT, OPR_SRCTRIPLET, stride, subscript, t_TY, WN_const_val(), WN_COPY_Tree(), WN_CreateExp2(), WN_DELETE_Tree(), WN_item, WN_kid0(), WN_kid1(), WN_LAND, WN_LdidPreg(), WN_StidPreg, and WNOPR.
Referenced by fei_nseq_subscr(), and fei_seq_subscr().
WN* cwh_addr_extent | ( | WN * | lb, |
WN * | ub, | ||
WN * | str | ||
) |
Definition at line 2359 of file cwh_addr.cxx.
References cwh_expr_bincalc(), OPR_ADD, OPR_DIV, OPR_SUB, and WN_COPY_Tree().
Referenced by cwh_addr_triplet(), cwh_types_size_WN(), fei_descriptor(), fei_doloop(), and fei_redistribute().
BOOL cwh_addr_f90_pointer_reference | ( | WN * | addr | ) |
Definition at line 3020 of file cwh_addr.cxx.
References CLASS_VAR, cwh_addr_f90_pointer_reference(), cwh_addr_f90_pointer_reference_ls(), FALSE, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ILOAD, OPR_INTCONST, OPR_LDA, OPR_LDID, OPR_STRCTFLD, ST_auxst_is_f90_pointer, ST_class(), TRUE, TY_is_f90_pointer(), TY_pointed(), WN_kid0(), WN_load_addr_ty(), WN_operator(), and WN_st().
Referenced by cwh_addr_f90_pointer_reference(), cwh_addr_f90_pointer_reference_ls(), cwh_addr_iload(), cwh_addr_istore(), cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_pstore(), and fei_dv_deref().
static BOOL cwh_addr_f90_pointer_reference_ls | ( | WN * | ls | ) | [static] |
Definition at line 2988 of file cwh_addr.cxx.
References cwh_addr_f90_pointer_reference(), FALSE, OPR_ILOAD, OPR_ISTORE, OPR_LDA, OPR_LDID, OPR_MLOAD, OPR_MSTORE, OPR_PSTORE, WN_kid(), WN_kid0(), WN_kid1(), WN_kid_count(), and WN_operator().
Referenced by cwh_addr_f90_pointer_reference().
WN* cwh_addr_find_address | ( | WN * | wn | ) |
Definition at line 2575 of file cwh_addr.cxx.
References cwh_addr_find_address(), OPCODE_is_expression(), OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ILOAD, OPR_LDA, OPR_LDID, OPR_MLOAD, WN_kid0(), WN_opcode(), and WNOPR.
Referenced by cwh_addr_find_address(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), cwh_io_split_io_items(), and fei_control_list().
WN* cwh_addr_find_section | ( | WN * | awn, |
enum p_flag | flag | ||
) |
Definition at line 2515 of file cwh_addr.cxx.
References cwh_addr_find_section(), NULL, OPR_ADD, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ILOAD, OPR_MLOAD, OPR_SUB, p_RETURN_PARENT, wn, WN_kid0(), WN_kid1(), and WNOPR.
Referenced by cwh_addr_find_section(), cwh_addr_nonc_util(), cwh_dope_from_expression(), cwh_io_char_ioitem(), cwh_io_conv_arrsection_to_dope(), cwh_io_split_io_items(), and fei_control_list().
static void cwh_addr_fixup_nseq | ( | WN ** | ex, |
WN ** | sb, | ||
WN * | sm | ||
) | [static] |
Definition at line 400 of file cwh_addr.cxx.
References may_be_noncontig, and WN_DELETE_Tree().
Referenced by fei_nseq_subscr().
static WN* cwh_addr_iload | ( | WN * | wt, |
OFFSET_64 | off, | ||
TY_IDX | ty | ||
) | [static] |
Definition at line 1296 of file cwh_addr.cxx.
References BIG_OFFSET, cwh_addr_f90_pointer_reference(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), cwh_types_mk_f90_pointer_ty(), FALSE, Load_Opcode, OPR_ADD, Pointer_Mtype, TY_mtype(), wn, WN_CreateIload(), and WN_Intconst().
Referenced by cwh_addr_ldid(), and cwh_addr_load_WN().
void cwh_addr_init_target | ( | void | ) |
Definition at line 2937 of file cwh_addr.cxx.
References cwh_addr_char_len_typeid, cwh_bound_int_typeid, cwh_doloop_typeid, cwh_types_init_target(), MTYPE_I4, MTYPE_I8, opc_array, opc_call, OPC_I4INTCONST, OPC_I4SRCTRIPLET, OPC_I8INTCONST, OPC_I8SRCTRIPLET, opc_lda, opc_pint, opc_section, opc_sint, opc_src_triplet, opc_triplet, OPC_U4ARRAY, OPC_U4ARRSECTION, OPC_U4CALL, OPC_U4INTCONST, OPC_U4LDA, OPC_U8ARRAY, OPC_U8ARRSECTION, OPC_U8CALL, OPC_U8INTCONST, OPC_U8LDA, and Pointer_Size.
Referenced by cwh_stmt_init_file().
static void cwh_addr_insert_bounds_check | ( | WN * | assertion, |
WN * | ar | ||
) | [static] |
Definition at line 1062 of file cwh_addr.cxx.
References current_srcpos, cwh_block_append(), cwh_block_exchange_current(), cwh_block_set_current(), cwh_dst_filename_from_filenum(), cwh_intrin_call(), GET_ARRAY_NAME_MAP, MTYPE_I4, MTYPE_V, NULL, Pointer_Mtype, SRCPOS_filenum, TRUE, USRCPOS_linenum, WN_array_dim, WN_CreateBlock(), WN_CreateIf(), WN_Intconst(), WN_LdaString(), and WN_num_dim.
Referenced by fei_nseq_subscr(), and fei_seq_subscr().
BOOL cwh_addr_is_array | ( | WN * | wn | ) |
Definition at line 2484 of file cwh_addr.cxx.
References opc_array, and WN_opcode().
Referenced by cwh_expr_operand(), fei_addr(), fei_nseq_subscr(), and fei_seq_subscr().
BOOL cwh_addr_is_section | ( | WN * | wn | ) |
Definition at line 2489 of file cwh_addr.cxx.
References opc_section, and WN_opcode().
Referenced by cwh_expr_operand().
static BOOL cwh_addr_is_triplet | ( | WN * | wn | ) | [static] |
Definition at line 2494 of file cwh_addr.cxx.
References opc_src_triplet, opc_triplet, and WN_opcode().
Referenced by cwh_addr_zero_based(), fei_nseq_subscr(), and fei_seq_subscr().
Definition at line 1706 of file cwh_addr.cxx.
References BIG_OFFSET, cwh_addr_f90_pointer_reference(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), cwh_types_mk_f90_pointer_ty(), FALSE, OPR_ADD, Pointer_Mtype, Store_Opcode, TY_mtype(), wn, WN_CreateIstore(), and WN_Intconst().
Referenced by cwh_addr_stid(), cwh_addr_store_WN(), and fei_doloop().
static WN* cwh_addr_lda | ( | ST * | st, |
OFFSET_64 | off, | ||
TY_IDX | ty | ||
) | [static] |
Definition at line 2253 of file cwh_addr.cxx.
References ACCESSED_ILOAD, ACCESSED_LOAD, BIG_OFFSET, cwh_addr_access_flags(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), FALSE, opc_lda, OPR_ADD, Pointer_Mtype, wn, WN_CreateLda(), and WN_Intconst().
Referenced by cwh_addr_address_ST(), cwh_addr_ldid(), cwh_addr_pstid(), and cwh_addr_stid().
WN* cwh_addr_ldid | ( | ST * | st, |
OFFSET_64 | off, | ||
TY_IDX | ty | ||
) |
Definition at line 1179 of file cwh_addr.cxx.
References ACCESSED_LOAD, BIG_OFFSET, cwh_addr_access_flags(), cwh_addr_iload(), cwh_addr_lda(), cwh_addr_mk_ldid(), cwh_addr_use_mstid_mldid(), KIND_SCALAR, KIND_STRUCT, Pointer_Mtype, TY_kind(), TY_mtype(), and wn.
Referenced by cwh_addr_address_ST(), cwh_addr_load_ST(), cwh_stmt_return_altentry(), cwh_stmt_return_scalar(), and fei_nullify().
WN* cwh_addr_load_ST | ( | ST * | st, |
OFFSET_64 | off, | ||
TY_IDX | dty | ||
) |
Definition at line 1441 of file cwh_addr.cxx.
References ACCESSED_ILOAD, ACCESSED_ISTORE, ACCESSED_LOAD, ACCESSED_PSTORE, ACCESSED_STORE, BY_VALUE, CLASS_VAR, cwh_addr_access_flags(), cwh_addr_address_ST(), cwh_addr_ldid(), cwh_addr_load_WN(), cwh_addr_use_mstid_mldid(), DevAssert, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, SCLASS_AUTO, SCLASS_COMMON, SCLASS_COMMON1, SCLASS_DGLOBAL, SCLASS_FORMAL, SCLASS_FORMAL_REF, SCLASS_FSTATIC, SCLASS_MODULE, SCLASS_PSTATIC, SCLASS_REG, ST_auxst_is_auto_or_cpointer, ST_class(), ST_sclass(), ST_type(), TY_kind(), TY_pointed(), and wn.
Referenced by cwh_addr_pstore_ST(), cwh_addr_store_ST(), cwh_directive_load_value_pragma(), cwh_dope_read_bound(), cwh_expr_operand(), cwh_stmt_call_helper(), cwh_stmt_return_altentry(), cwh_stmt_return_scalar(), cwh_types_array_temp_TY(), cwh_types_bound_WN(), cwh_types_copyin_pragma(), fei_copyin_bound(), fei_doloop(), fei_dv_deref(), fei_get_dv_hdr_fld(), fei_new_select(), and fei_set_dv_hdr_fld().
WN* cwh_addr_load_WN | ( | WN * | awn, |
OFFSET_64 | off, | ||
TY_IDX | dty | ||
) |
Definition at line 1390 of file cwh_addr.cxx.
References cwh_addr_iload(), cwh_addr_mload(), cwh_types_scalar_TY(), cwh_types_WN_TY(), DevAssert, FALSE, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, NULL, TY_kind(), and wn.
Referenced by cwh_addr_load_ST(), cwh_dope_read_bound(), cwh_expr_operand(), fei_doloop(), fei_get_dv_hdr_fld(), and fei_set_dv_hdr_fld().
Definition at line 1226 of file cwh_addr.cxx.
References cwh_addr_use_mstid_mldid(), KIND_STRUCT, Ldid_Opcode, MTYPE_byte_size, MTYPE_To_TY, Set_TY_IDX_index(), TY_IDX_index(), TY_kind(), TY_size(), wn, and WN_CreateLdid().
Referenced by cwh_addr_ldid(), and cwh_stmt_return_scalar().
Definition at line 1262 of file cwh_addr.cxx.
References BIG_OFFSET, cwh_addr_f90_pointer_reference(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), cwh_types_mk_f90_pointer_ty(), FALSE, opc_pint, OPR_ADD, Pointer_Mtype, TY_size(), wn, WN_CreateIntconst(), WN_CreateMload(), and WN_Intconst().
Referenced by cwh_addr_load_WN(), fei_pstore(), and fei_store().
Definition at line 1778 of file cwh_addr.cxx.
References BIG_OFFSET, cwh_addr_f90_pointer_reference(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), cwh_types_mk_f90_pointer_ty(), FALSE, opc_pint, OPR_ADD, Pointer_Mtype, TY_size(), wn, WN_CreateIntconst(), WN_CreateMstore(), and WN_Intconst().
Referenced by cwh_addr_pstore_WN(), cwh_addr_store_WN(), fei_pstore(), and fei_store().
static WN* cwh_addr_nonc_recast | ( | WN * | wt, |
WN * | wa | ||
) | [static] |
Definition at line 2833 of file cwh_addr.cxx.
References cwh_addr_triplet(), cwh_bound_int_typeid, cwh_expr_bincalc(), DevAssert, FOREACH_AXIS, NULL, one, opc_pint, opc_section, OPR_ADD, OPR_ARRAYEXP, OPR_INTCONST, OPR_MPY, OPR_SRCTRIPLET, OPR_SUB, SUB_OFF, SZ_OFF, wn, WN_const_val(), WN_COPY_Tree(), WN_Create(), WN_CreateIntconst(), WN_DELETE_Tree(), WN_element_size(), WN_Intconst(), WN_kid(), WN_kid0(), WN_kid2(), WN_kid_count(), and WNOPR.
Referenced by cwh_addr_nonc_util().
void cwh_addr_nonc_util | ( | WN ** | aa, |
WN ** | bb | ||
) |
Definition at line 2754 of file cwh_addr.cxx.
References cwh_addr_find_section(), cwh_addr_nonc_recast(), DevAssert, NULL, p_RETURN_PARENT, p_RETURN_SECTION, return(), wn, WN_kid0(), WN_kid1(), and WN_kid_count().
Referenced by fei_non_conform_store().
FLD_det cwh_addr_offset | ( | void | ) |
Definition at line 2461 of file cwh_addr.cxx.
References cwh_stk_get_class(), cwh_stk_pop_FLD(), FLD_item, FLD_ofst(), FLD_type(), FLD_det::off, and FLD_det::type.
Referenced by cwh_expr_address(), cwh_expr_operand(), fei_arg_addr(), fei_non_conform_store(), fei_nseq_subscr(), fei_nullify(), fei_pstore(), fei_seq_subscr(), fei_store(), and fei_substr().
Definition at line 1558 of file cwh_addr.cxx.
References ACCESSED_STORE, Be_Type_Tbl, BIG_OFFSET, cast_to_uint, cwh_addr_access_flags(), cwh_addr_lda(), cwh_addr_pstore(), cwh_block_append(), cwh_convert_to_ty(), cwh_stab_altentry_TY(), cwh_stk_pop_WN(), cwh_stk_push(), fei_imag(), IS_ALTENTRY_TEMP, MTYPE_C4, MTYPE_F4, MTYPE_is_integral, PStid_Opcode, ST_auxst_altentry_shareTY, ST_base(), ST_ofst(), Stid_Opcode, t_TY, TRUE, TY_mtype(), wn, WN_COPY_Tree(), WN_CreatePStid(), and WN_item.
Referenced by cwh_addr_pstore_ST().
Definition at line 1745 of file cwh_addr.cxx.
References BIG_OFFSET, cwh_addr_f90_pointer_reference(), cwh_expr_bincalc(), cwh_types_make_pointer_type(), cwh_types_mk_f90_pointer_ty(), FALSE, OPR_ADD, Pointer_Mtype, PStore_Opcode, TY_mtype(), wn, WN_CreatePstore(), and WN_Intconst().
Referenced by cwh_addr_pstid(), and cwh_addr_pstore_WN().
void cwh_addr_pstore_ST | ( | ST * | st, |
OFFSET_64 | off, | ||
TY_IDX | dty, | ||
WN * | rhs | ||
) |
Definition at line 1952 of file cwh_addr.cxx.
References ACCESSED_ILOAD, ACCESSED_ISTORE, ACCESSED_LOAD, ACCESSED_PSTORE, Altaddress_ST, BY_VALUE, CLASS_VAR, cwh_addr_access_flags(), cwh_addr_address_ST(), cwh_addr_load_ST(), cwh_addr_pstid(), cwh_addr_pstore_ST(), cwh_addr_pstore_WN(), cwh_addr_use_mstid_mldid(), cwh_block_append(), DevAssert, IS_ALTENTRY_TEMP, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, MTYPE_CQ, NULL, SCLASS_AUTO, SCLASS_COMMON, SCLASS_COMMON1, SCLASS_DGLOBAL, SCLASS_FORMAL, SCLASS_FORMAL_REF, SCLASS_FSTATIC, SCLASS_MODULE, SCLASS_PSTATIC, SCLASS_REG, ST_auxst_altentry_shareTY, ST_auxst_is_auto_or_cpointer, ST_base(), ST_class(), ST_sclass(), ST_type(), TY_kind(), TY_mtype(), TY_pointed(), and wn.
Referenced by cwh_addr_pstore_ST(), and fei_pstore().
void cwh_addr_pstore_WN | ( | WN * | lhs, |
OFFSET_64 | off, | ||
TY_IDX | dty, | ||
WN * | rhs | ||
) |
Definition at line 2144 of file cwh_addr.cxx.
References cwh_addr_mstore(), cwh_addr_pstore(), cwh_block_append(), cwh_types_scalar_TY(), cwh_types_WN_TY(), DevAssert, FALSE, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, TY_kind(), and wn.
Referenced by cwh_addr_pstore_ST(), and fei_pstore().
static WN* cwh_addr_src_triplet | ( | WN * | lb, |
WN * | ub, | ||
WN * | str | ||
) | [static] |
Definition at line 2315 of file cwh_addr.cxx.
References opc_src_triplet, wn, WN_Create(), WN_kid0(), WN_kid1(), and WN_kid2().
Referenced by fei_subscr_src_triplet().
Definition at line 1632 of file cwh_addr.cxx.
References ACCESSED_STORE, Be_Type_Tbl, BIG_OFFSET, cast_to_uint, cwh_addr_access_flags(), cwh_addr_istore(), cwh_addr_lda(), cwh_block_append(), cwh_convert_to_ty(), cwh_stab_altentry_TY(), cwh_stk_pop_WN(), cwh_stk_push(), fei_imag(), IS_ALTENTRY_TEMP, KIND_POINTER, MTYPE_C4, MTYPE_F4, MTYPE_is_integral, ST_auxst_altentry_shareTY, ST_base(), ST_ofst(), Stid_Opcode, t_TY, TRUE, TY_kind(), TY_mtype(), wn, WN_COPY_Tree(), WN_CreateStid(), and WN_item.
Referenced by cwh_addr_store_ST(), fei_allocate(), fei_doloop(), and fei_new_select_case().
void cwh_addr_store_ST | ( | ST * | st, |
OFFSET_64 | off, | ||
TY_IDX | dty, | ||
WN * | rhs | ||
) |
Definition at line 1811 of file cwh_addr.cxx.
References ACCESSED_ILOAD, ACCESSED_ISTORE, ACCESSED_LOAD, ACCESSED_PSTORE, ACCESSED_STORE, Altaddress_ST, BY_VALUE, CLASS_VAR, cwh_addr_access_flags(), cwh_addr_address_ST(), cwh_addr_load_ST(), cwh_addr_stid(), cwh_addr_store_ST(), cwh_addr_store_WN(), cwh_addr_use_mstid_mldid(), cwh_block_append(), cwh_block_append_given_id(), cwh_types_copyin_pragma(), DevAssert, FALSE, First_Block, IS_ALTENTRY_TEMP, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, MTYPE_CQ, NULL, SCLASS_AUTO, SCLASS_COMMON, SCLASS_COMMON1, SCLASS_DGLOBAL, SCLASS_FORMAL, SCLASS_FORMAL_REF, SCLASS_FSTATIC, SCLASS_MODULE, SCLASS_PSTATIC, SCLASS_REG, ST_auxst_altentry_shareTY, ST_auxst_is_auto_or_cpointer, ST_base(), ST_class(), ST_sclass(), ST_type(), still_in_preamble, TY_kind(), TY_mtype(), TY_pointed(), and wn.
Referenced by cwh_addr_store_ST(), cwh_dope_store(), cwh_dope_store_bound(), cwh_intrin_sync_intrin(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), cwh_preg_temp_save(), cwh_stmt_return_altentry(), cwh_stmt_return_scalar(), cwh_types_array_temp_TY(), cwh_types_mk_character_TY(), fei_doloop(), fei_new_select(), fei_set_dv_hdr_fld(), and fei_store().
void cwh_addr_store_WN | ( | WN * | lhs, |
OFFSET_64 | off, | ||
TY_IDX | dty, | ||
WN * | rhs | ||
) |
Definition at line 2091 of file cwh_addr.cxx.
References cwh_addr_istore(), cwh_addr_mstore(), cwh_block_append(), cwh_types_scalar_TY(), cwh_types_WN_TY(), DevAssert, FALSE, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, NULL, TY_kind(), and wn.
Referenced by cwh_addr_store_ST(), cwh_dope_store(), cwh_dope_store_bound(), cwh_inline_allocate(), fei_doloop(), fei_set_dv_hdr_fld(), and fei_store().
static W_node cwh_addr_substr_util | ( | OFFSET_64 | off, |
TY_IDX | dty | ||
) | [static] |
Definition at line 2624 of file cwh_addr.cxx.
References cwh_addr_address_ST(), cwh_addr_adjust_array(), cwh_addr_array(), cwh_expr_address(), cwh_expr_bincalc(), cwh_stk_get_class(), cwh_stk_pop_ST(), cwh_types_array_TY(), cwh_types_WN_TY(), f_NONE, KIND_ARRAY, opc_array, OPR_ADD, OPR_ARRAY, OPR_ARRSECTION, Pointer_Mtype, ST_item, ST_item_whole_array, ST_type(), TRUE, TY_AR_etype(), TY_kind(), W_ty, W_wn, WN_element_size(), WN_Intconst(), and WNOPR.
Referenced by fei_substr().
WN* cwh_addr_temp_section | ( | WN * | ad, |
TY_IDX | ty | ||
) |
Definition at line 2681 of file cwh_addr.cxx.
References cwh_addr_add_bound(), cwh_addr_array(), cwh_addr_triplet(), cwh_addr_zero_based(), cwh_bound_int_typeid, cwh_expr_bincalc(), cwh_types_array_TY(), cwh_types_bound_WN(), FALSE, LOW, opc_section, OPR_ADD, OPR_MPY, TRUE, TY_AR_etype(), TY_AR_ndims(), Ty_Table, UPPER, WN_COPY_Tree(), WN_DELETE_Tree(), WN_element_size(), and WN_Intconst().
Referenced by fei_concat().
static WN* cwh_addr_triplet | ( | WN * | lb, |
WN * | ub, | ||
WN * | str | ||
) | [static] |
Definition at line 2287 of file cwh_addr.cxx.
References cwh_addr_extent(), NULL, opc_triplet, OPR_IMPLICIT_BND, wn, WN_Create(), WN_kid0(), WN_kid1(), WN_kid2(), and WNOPR.
Referenced by cwh_addr_nonc_recast(), cwh_addr_temp_section(), fei_as_ref(), and fei_subscr_triplet().
WN* cwh_addr_ubound_from_triplet | ( | WN * | triplet | ) |
Definition at line 2388 of file cwh_addr.cxx.
References cwh_bound_int_typeid, cwh_expr_bincalc(), OPR_ADD, OPR_MPY, OPR_SUB, WN_COPY_Tree(), WN_Intconst(), WN_kid0(), WN_kid1(), and WN_kid2().
Referenced by cwh_addr_do_bounds_check().
static bool cwh_addr_use_mstid_mldid | ( | ST * | st | ) | [inline, static] |
Definition at line 1159 of file cwh_addr.cxx.
References ST_is_equivalenced(), ST_is_f90_target(), and WHIRL_Mldid_Mstid_On.
Referenced by cwh_addr_ldid(), cwh_addr_load_ST(), cwh_addr_mk_ldid(), cwh_addr_pstore_ST(), and cwh_addr_store_ST().
ST* cwh_addr_WN_ST | ( | WN * | wn | ) |
Definition at line 1330 of file cwh_addr.cxx.
References cwh_addr_WN_ST(), DevAssert, NULL, OPCODE_is_expression(), OPR_ADD, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ILOAD, OPR_INTCONST, OPR_LDA, OPR_LDID, WN_kid(), WN_kid0(), WN_opcode(), WN_st(), and WNOPR.
Referenced by cwh_addr_WN_ST(), cwh_expr_address(), and fei_nseq_subscr().
static WN* cwh_addr_zero_based | ( | WN * | sub, |
WN * | lb | ||
) | [static] |
Definition at line 2338 of file cwh_addr.cxx.
References cwh_addr_is_triplet(), cwh_expr_bincalc(), OPR_SUB, and WN_kid0().
Referenced by cwh_addr_temp_section(), fei_nseq_subscr(), and fei_substr().
Definition at line 819 of file cwh_addr.cxx.
References ADDR_item, cwh_addr_is_array(), cwh_expr_address(), cwh_stk_push(), f_T_SAVED, MTYPE_V, OPR_COMMA, Pointer_Mtype, wn, WN_CreateBlock(), and WN_CreateComma().
Referenced by cvrt_exp_to_pdg().
void fei_as_ref | ( | TYPE | result_type | ) |
Definition at line 851 of file cwh_addr.cxx.
References cwh_addr_add_bound(), cwh_addr_array(), cwh_addr_triplet(), cwh_bound_int_typeid, cwh_expr_bincalc(), cwh_stk_pop_DEREF(), cwh_stk_pop_WN(), cwh_stk_push(), cwh_types_dope_basic_TY(), cwh_types_dope_rank(), fei_get_dv_extent(), opc_section, OPR_SUB, ST_item, ST_type(), WN_COPY_Tree(), WN_Intconst(), WN_item, and WN_st().
Referenced by cvrt_exp_to_pdg().
void fei_field_dot | ( | TYPE | type | ) |
Definition at line 3068 of file cwh_addr.cxx.
References cast_to_TY, cwh_addr_address_ST(), cwh_stk_get_class(), cwh_stk_pop_FLD(), cwh_stk_pop_ST(), cwh_stk_pop_whatever(), cwh_stk_pop_WN(), cwh_stk_push_typed(), FLD_HANDLE::Entry(), FLD_last_field(), FLD_next(), FLD_ofst(), FLD_type(), FLD_HANDLE::Idx(), Load_Opcode, MTYPE_U8, NULL, FLD_det::off, OPR_STRCTFLD, ST_item, ST_item_whole_array, t_TY, TY_etype(), TY_fld(), TY_is_f90_deferred_shape(), TY_is_f90_pointer(), TY_pointed(), FLD_det::type, FLD::type, wn, WN_Create(), WN_CreateIload(), WN_item, WN_kid0(), WN_set_field_id(), WN_set_load_addr_ty(), and WN_set_ty().
Referenced by cvrt_exp_to_pdg().
void fei_nseq_subscr | ( | TYPE | result_type | ) |
Definition at line 431 of file cwh_addr.cxx.
References ADDR_item, cwh_addr_add_bound(), cwh_addr_address_ST(), cwh_addr_array(), cwh_addr_compute_stride_fudge_factor(), cwh_addr_do_bounds_check(), cwh_addr_fixup_nseq(), cwh_addr_insert_bounds_check(), cwh_addr_is_array(), cwh_addr_is_triplet(), cwh_addr_offset(), cwh_addr_WN_ST(), cwh_addr_zero_based(), cwh_expr_address(), cwh_expr_bincalc(), cwh_expr_operand(), cwh_stk_fld_name(), cwh_stk_get_class(), cwh_stk_get_TY(), cwh_stk_pop_ST(), cwh_stk_push(), cwh_stk_push_typed(), cwh_types_dope_basic_TY(), DEREF_item, DevAssert, F90_Wrap_ARREXP(), f_NONE, FALSE, FLD_item, FLD_type(), free(), GET_ARRAY_NAME_MAP, Index_To_Str(), may_be_noncontig, NULL, FLD_det::off, opc_array, opc_pint, opc_section, OPR_ADD, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, Save_Str2(), SCLASS_FORMAL, SET_ARRAY_NAME_MAP, ST_auxst_is_non_contiguous, ST_item, ST_item_whole_array, ST_name(), ST_sclass(), ST_type(), TRUE, TY_fld(), TY_is_f90_pointer(), Ty_Table, FLD_det::type, WN_CreateIntconst(), WN_element_size(), WN_item, WN_item_whole_array, WN_set_opcode(), and WNOPR.
Referenced by cvrt_exp_to_pdg().
void fei_seq_subscr | ( | TYPE | result_type, |
INT32 | kidsnum | ||
) |
Definition at line 146 of file cwh_addr.cxx.
References ADDR_item, cwh_addr_add_bound(), cwh_addr_address_ST(), cwh_addr_array1(), cwh_addr_do_bounds_check(), cwh_addr_insert_bounds_check(), cwh_addr_is_array(), cwh_addr_is_triplet(), cwh_addr_offset(), cwh_expr_address(), cwh_expr_bincalc(), cwh_expr_operand(), cwh_stk_fld_name(), cwh_stk_get_class(), cwh_stk_get_TY(), cwh_stk_pop_ST(), cwh_stk_pop_whatever(), cwh_stk_pop_WN(), cwh_stk_push(), cwh_stk_push_typed(), DEREF_item, DevAssert, F90_Wrap_ARREXP(), f_NONE, FLD_item, free(), GET_ARRAY_NAME_MAP, Index_To_Str(), NULL, FLD_det::off, opc_array, opc_pint, opc_section, OPR_ADD, OPR_ARRAYEXP, OPR_ILOAD, OPR_STRCTFLD, Save_Str2(), SET_ARRAY_NAME_MAP, ST_item, ST_item_whole_array, ST_name(), ST_type(), FLD_det::type, WN_CreateIntconst(), WN_item, WN_item_whole_array, WN_kid0(), WN_operator(), WN_set_opcode(), and WNOPR.
Referenced by cvrt_exp_to_pdg().
void fei_subscr_size | ( | TYPE | result_type, |
INT32 | bounds_check | ||
) |
Definition at line 733 of file cwh_addr.cxx.
References check_bounds_this_access, and cwh_io_in_ioblock.
Referenced by cvrt_exp_to_pdg().
void fei_subscr_src_triplet | ( | TYPE | result_type | ) |
Definition at line 689 of file cwh_addr.cxx.
References cwh_addr_src_triplet(), cwh_expr_operand(), cwh_stk_get_class(), cwh_stk_pop_WN(), cwh_stk_push(), NULL, wn, and WN_item.
Referenced by cvrt_exp_to_pdg().
void fei_subscr_triplet | ( | TYPE | result_type | ) |
Definition at line 620 of file cwh_addr.cxx.
References cwh_addr_triplet(), cwh_expr_operand(), cwh_stk_get_class(), cwh_stk_pop_WN(), cwh_stk_push(), NULL, OPR_IMPLICIT_BND, wn, WN_item, and WNOPR.
void fei_substr | ( | INT32 | bounds_check | ) |
Definition at line 761 of file cwh_addr.cxx.
References cwh_addr_add_bound(), cwh_addr_offset(), cwh_addr_substr_util(), cwh_addr_zero_based(), cwh_expr_operand(), cwh_stk_get_class(), cwh_stk_get_TY(), cwh_stk_push_STR(), DEREF_item, DevAssert, FLD_item, NULL, FLD_det::off, one, opc_pint, ST_item, ST_item_whole_array, FLD_det::type, W_ty, W_wn, WN_COPY_Tree(), WN_CreateIntconst(), WN_item, and WN_item_whole_array.
Referenced by cvrt_exp_to_pdg().
char* source_file = __FILE__ [static] |
Definition at line 61 of file cwh_addr.cxx.