Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
Go to the source code of this file.
Defines | |
#define | DELETE_ARRAYEXP_WN NULL |
Enumerations | |
enum | FLAG { f_NONE = 0, f_T_PASSED = 1, f_T_SAVED = 2 } |
Functions | |
WN * | cwh_expr_operand (WN **arrexp) |
WN * | cwh_expr_address (FLAG flag) |
WN * | cwh_expr_bincalc (OPERATOR op, WN *wn1, WN *wn2) |
WN * | cwh_get_typed_operand (TYPE_ID ty, WN **arrexp) |
OPCODE | cwh_make_typed_opcode (OPERATOR op, TYPE_ID ty1, TYPE_ID ty2) |
WN * | cwh_convert_to_ty (WN *wn, TYPE_ID ty) |
WN * | cwh_wrap_cvtl (WN *wn, TYPE_ID ty) |
TYPE_ID | cwh_get_highest_type (WN *lhs, WN *rhs) |
WN * | cwh_expr_temp (TY_IDX ty, WN *sz, FLAG flag) |
void | cwh_expr_compare (OPERATOR op, TY_IDX ty) |
void | cwh_expr_str_operand (W_node expr[2]) |
void | cwh_expr_set_flags (ST *st, FLAG flag) |
WN * | cwh_generate_bitmask (WN *len, TYPE_ID ty) |
WN * | cwh_expr_extract_arrayexp (WN *node, WN **arrayexp) |
WN * | cwh_expr_restore_arrayexp (WN *node, WN *arrayexp) |
void | cwh_expr_temp_set_pragma (ST *st) |
WN * | cwh_expr_dispose_of_char (WN *wn) |
#define DELETE_ARRAYEXP_WN NULL |
Definition at line 83 of file cwh_expr.h.
Referenced by cwh_expr_extract_arrayexp(), cwh_expr_operand(), cwh_io_no_desc(), fei_control_list(), fei_iotype(), fei_non_conform_store(), fei_nullify(), and fei_store().
enum FLAG |
Definition at line 55 of file cwh_expr.h.
WN* cwh_convert_to_ty | ( | WN * | wn, |
TYPE_ID | ty | ||
) |
Definition at line 191 of file cwh_expr.cxx.
References cwh_convert_to_ty(), cwh_wrap_cvtl(), Mtype_complex_to_real(), MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_is_complex, MTYPE_is_float, MTYPE_size_reg, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_V, OPCODE_UNKNOWN, OPR_COMPLEX, OPR_CVT, OPR_IMAGPART, OPR_REALPART, OPR_TAS, OPR_TRUNC, wn, WN_COPY_Tree(), WN_CreateExp1(), WN_CreateExp2(), WN_set_opcode(), WNOPR, and WNRTY.
Referenced by cwh_addr_pstid(), cwh_addr_stid(), cwh_convert_to_ty(), cwh_do_tranformational(), cwh_dope_read_bound(), cwh_expr_bincalc(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_compare(), cwh_funny_fp_intrinsic(), cwh_get_typed_operand(), cwh_intrin_popcnt_leadz_helper(), cwh_stmt_insert_conformance_check(), do_simple(), fei_doloop(), fei_dot_product(), fei_dot_product_logical(), fei_exponentiate(), fei_ieee_trunc(), fei_imag(), fei_leqv(), fei_lxor(), fei_matmul(), fei_multiply_high(), fei_remainder(), fei_round(), fei_rtc(), fei_trunc(), and simple_intrinsic().
WN* cwh_expr_address | ( | FLAG | flag | ) |
Definition at line 1009 of file cwh_expr.cxx.
References ADDR_item, cwh_addr_address_ST(), cwh_addr_offset(), cwh_addr_WN_ST(), cwh_expr_address(), cwh_expr_bincalc(), cwh_expr_operand(), cwh_expr_set_flags(), cwh_stk_get_class(), cwh_stk_pop_ST(), cwh_stk_pop_STR(), cwh_stk_pop_WHIRL(), DEREF_item, DevAssert, FLD_item, NULL, FLD_det::off, OPR_ADD, Pointer_Mtype, ST_item, ST_item_whole_array, STR_item, FLD_det::type, wn, WN_Delete, WN_Intconst(), WN_item, and WN_item_whole_array.
Referenced by cwh_addr_substr_util(), cwh_char_intrin(), cwh_do_tranformational(), cwh_dope_read_bound(), cwh_dope_store_bound(), cwh_expr_address(), cwh_expr_compare_char(), cwh_intrin_sync_intrin(), cwh_io_char_ioitem(), cwh_io_ioitem(), cwh_io_no_desc(), cwh_mp_region(), cwh_stmt_call_helper(), cwh_stmt_character_icall(), fei_addr(), fei_addr_con(), fei_arg_addr(), fei_assert(), fei_close(), fei_concat(), fei_control_list(), fei_copy_in(), fei_criticalsection(), fei_dv_def(), fei_dv_deref(), fei_dv_ptr_asg(), fei_get_dv_hdr_fld(), fei_inquire(), fei_iolength(), fei_length(), fei_nseq_subscr(), fei_omp_set_lock(), fei_omp_test_lock(), fei_omp_unset_lock(), fei_open(), fei_page_place(), fei_prefetch_ref(), fei_present(), fei_pstore(), fei_ranget(), fei_ranset(), fei_seq_subscr(), fei_set_dv_hdr_fld(), fei_store(), and fei_unit().
WN* cwh_expr_bincalc | ( | OPERATOR | op, |
WN * | wn1, | ||
WN * | wn2 | ||
) |
Definition at line 882 of file cwh_expr.cxx.
References cwh_convert_to_ty(), cwh_get_highest_type(), MTYPE_V, and WN_CreateExp2().
Referenced by cwh_addr_address_ST(), cwh_addr_adjust_array(), cwh_addr_do_bounds_check(), cwh_addr_extent(), cwh_addr_iload(), cwh_addr_istore(), cwh_addr_lda(), cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_nonc_recast(), cwh_addr_pstore(), cwh_addr_substr_util(), cwh_addr_temp_section(), cwh_addr_ubound_from_triplet(), cwh_addr_zero_based(), cwh_dope_from_expression(), cwh_dope_initialize(), cwh_expr_address(), cwh_inline_allocate(), cwh_intrin_popcnt_leadz_helper(), cwh_types_array_temp_TY(), cwh_types_size_WN(), fei_as_ref(), fei_concat(), fei_doloop(), fei_get_dv_hdr_fld(), fei_ibits(), fei_ieee_sign_xfer(), fei_mvbits(), fei_nseq_subscr(), fei_nullify(), fei_poppar(), fei_pstore(), fei_seq_subscr(), fei_set_dv_hdr_fld(), and fei_store().
void cwh_expr_compare | ( | OPERATOR | op, |
TY_IDX | ty | ||
) |
Definition at line 553 of file cwh_expr.cxx.
References cwh_convert_to_ty(), cwh_expr_compare_char(), cwh_expr_operand(), cwh_expr_restore_arrayexp(), cwh_get_highest_type(), cwh_make_typed_opcode(), cwh_stk_get_class(), cwh_stk_push_typed(), Mtype_comparison(), MTYPE_I4, NULL, STR_item, wn, WN_CreateExp2(), WN_item, and WN_set_ty().
Referenced by cwh_stmt_str_falsebr_util(), and fei_islg().
WN* cwh_expr_dispose_of_char | ( | WN * | wn | ) |
Referenced by cwh_stmt_character_store().
WN* cwh_expr_extract_arrayexp | ( | WN * | node, |
WN ** | arrayexp | ||
) |
Definition at line 118 of file cwh_expr.cxx.
References DELETE_ARRAYEXP_WN, Full_arrayexp, NULL, OPR_ARRAYEXP, wn, WN_Delete, WN_DELETE_Tree(), WN_kid(), WN_kid0(), WN_kid_count(), and WNOPR.
Referenced by cwh_expr_operand(), fei_non_conform_store(), fei_nullify(), and fei_store().
WN* cwh_expr_operand | ( | WN ** | arrexp | ) |
Definition at line 913 of file cwh_expr.cxx.
References ADDR_item, cwh_addr_address_ST(), cwh_addr_is_array(), cwh_addr_is_section(), cwh_addr_load_ST(), cwh_addr_load_WN(), cwh_addr_offset(), cwh_expr_extract_arrayexp(), cwh_stk_get_class(), cwh_stk_get_TY(), cwh_stk_pop_ADDR(), cwh_stk_pop_DEREF(), cwh_stk_pop_PCONST(), cwh_stk_pop_ST(), cwh_stk_pop_WHIRL(), cwh_stk_pop_WN(), DELETE_ARRAYEXP_WN, DEREF_item, DevAssert, F90_Wrap_ARREXP(), FLD_item, Full_arrayexp, NULL, FLD_det::off, PCONST_item, ST_item, ST_item_whole_array, FLD_det::type, wn, WN_item, and WN_item_whole_array.
Referenced by cwh_addr_do_bounds_check(), cwh_ceiling_floor(), cwh_char_intrin(), cwh_do_tranformational(), cwh_dope_store_bound(), cwh_expr_address(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_compare(), cwh_expr_compare_bitwise(), cwh_expr_compare_char(), cwh_expr_compare_logical(), cwh_get_typed_operand(), cwh_inline_allocate(), cwh_intrin_get_return_value(), cwh_intrin_ieee_intrin_call_helper(), cwh_intrin_ieee_intrin_helper(), cwh_intrin_popcnt_leadz_helper(), cwh_intrin_sync_intrin(), cwh_io_ioitem(), cwh_io_no_desc(), cwh_io_str_ioitem(), cwh_mp_region(), cwh_reorder(), cwh_stmt_assigned_goto(), cwh_stmt_call_helper(), cwh_stmt_character_icall(), cwh_stmt_character_store(), cwh_stmt_computed_goto(), cwh_stmt_select_case_char(), cwh_stmt_str_falsebr_util(), do_simple(), fei_abs(), fei_alloc(), fei_allocate(), fei_arith_goto(), fei_array_construct(), fei_array_dimen(), fei_assert(), fei_blocking_size(), fei_bneg(), fei_brtrue(), fei_close(), fei_co_array_dimen(), fei_control_list(), fei_cot(), fei_count(), fei_doloop(), fei_dot_product(), fei_dot_product_logical(), fei_dowhile(), fei_dv_def(), fei_dv_deref(), fei_exponent(), fei_exponentiate(), fei_fission(), fei_fpclass(), fei_free(), fei_fuse(), fei_ibits(), fei_ieee_sign_xfer(), fei_ieee_trunc(), fei_if(), fei_imag(), fei_implied_do(), fei_inquire(), fei_IO_list(), fei_iolength(), fei_iotype(), fei_isfinite(), fei_islg(), fei_isnan(), fei_isunordered(), fei_label_def_named(), fei_leqv(), fei_lneg(), fei_logb(), fei_lxor(), fei_malloc(), fei_matmul(), fei_mfree(), fei_multiply_high(), fei_mvbits(), fei_near(), fei_new_select(), fei_new_select_case(), fei_noio_implied_do(), fei_nseq_subscr(), fei_nullify(), fei_open(), fei_page_place(), fei_poppar(), fei_prefetch_ref(), fei_pstore(), fei_purple_conditional(), fei_redistribute(), fei_remainder(), fei_return(), fei_round(), fei_scalb(), fei_scale(), fei_seq_subscr(), fei_set_dv_hdr_fld(), fei_set_exponent(), fei_sign_xfer(), fei_static_simple_reloc_init(), fei_store(), fei_subscr_src_triplet(), fei_subscr_triplet(), fei_substr(), fei_trunc(), fei_unroll(), fei_where(), simple_intrinsic(), and simple_intrinsic_nt().
WN* cwh_expr_restore_arrayexp | ( | WN * | node, |
WN * | arrayexp | ||
) |
Definition at line 152 of file cwh_expr.cxx.
References cwh_make_typed_opcode(), Full_arrayexp, MTYPE_V, OPR_ARRAYEXP, wn, WN_kid0(), WN_rtype(), and WN_set_opcode().
Referenced by cwh_ceiling_floor(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_compare(), cwh_expr_compare_bitwise(), cwh_expr_compare_logical(), cwh_expr_unop(), cwh_funny_fp_intrinsic(), cwh_intrin_popcnt_leadz_helper(), do_simple(), fei_abs(), fei_bneg(), fei_count(), fei_dot_product(), fei_dot_product_logical(), fei_exponent(), fei_exponentiate(), fei_ibits(), fei_ieee_sign_xfer(), fei_ieee_trunc(), fei_imag(), fei_leqv(), fei_lneg(), fei_logb(), fei_lxor(), fei_multiply_high(), fei_mvbits(), fei_near(), fei_poppar(), fei_round(), fei_scale(), fei_set_exponent(), fei_sign_xfer(), fei_trunc(), simple_intrinsic(), and simple_intrinsic_nt().
void cwh_expr_set_flags | ( | ST * | st, |
FLAG | flag | ||
) |
Referenced by cwh_expr_address(), cwh_intrin_sync_intrin(), fei_allocate(), fei_object(), and fei_static_simple_reloc_init().
void cwh_expr_str_operand | ( | W_node | expr[2] | ) |
Referenced by cwh_stmt_select_case_char(), and cwh_stmt_select_char().
WN* cwh_expr_temp | ( | TY_IDX | ty, |
WN * | sz, | ||
FLAG | flag | ||
) |
Referenced by cwh_dope_from_expression(), and fei_concat().
void cwh_expr_temp_set_pragma | ( | ST * | st | ) |
Referenced by cwh_stab_address_temp_ST(), and cwh_stab_temp_ST().
WN* cwh_generate_bitmask | ( | WN * | len, |
TYPE_ID | ty | ||
) |
Referenced by fei_ibits(), and fei_mvbits().
TYPE_ID cwh_get_highest_type | ( | WN * | lhs, |
WN * | rhs | ||
) |
Definition at line 296 of file cwh_expr.cxx.
References MTYPE_C4, MTYPE_C8, Mtype_complex_to_real(), MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_is_complex, MTYPE_type_order, t1, and WN_rtype().
Referenced by cwh_expr_bincalc(), cwh_expr_binop(), cwh_expr_compare(), fei_dot_product_logical(), fei_leqv(), fei_lxor(), fei_multiply_high(), and fei_remainder().
WN* cwh_get_typed_operand | ( | TYPE_ID | ty, |
WN ** | arrexp | ||
) |
Definition at line 356 of file cwh_expr.cxx.
References cwh_convert_to_ty(), and cwh_expr_operand().
Referenced by cwh_expr_unop(), fei_exponentiate(), fei_logb(), fei_scalb(), fei_scale(), and fei_set_exponent().
OPCODE cwh_make_typed_opcode | ( | OPERATOR | op, |
TYPE_ID | ty1, | ||
TYPE_ID | ty2 | ||
) |
Definition at line 375 of file cwh_expr.cxx.
References MTYPE_B, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_U1, MTYPE_U2, and MTYPE_U4.
Referenced by cwh_ceiling_floor(), cwh_do_tranformational(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_compare(), cwh_expr_compare_bitwise(), cwh_expr_restore_arrayexp(), cwh_expr_unop(), cwh_funny_fp_intrinsic(), cwh_intrin_build(), cwh_intrin_call(), cwh_intrin_op(), cwh_stmt_append_truebr(), cwh_stmt_call_helper(), cwh_stmt_falsebr(), cwh_stmt_truebr(), fei_arith_goto(), fei_bneg(), fei_count(), fei_dot_product(), fei_dot_product_logical(), fei_imag(), fei_leqv(), fei_lxor(), and fei_round().
WN* cwh_wrap_cvtl | ( | WN * | wn, |
TYPE_ID | ty | ||
) |
Definition at line 175 of file cwh_expr.cxx.
References F90_wrap_cvtl().
Referenced by cwh_convert_to_ty(), cwh_do_tranformational(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_unop(), fei_abs(), fei_bneg(), fei_dot_product(), fei_ibits(), fei_ieee_trunc(), fei_logb(), fei_matmul(), fei_mvbits(), and fei_round().