From 1d60af086712da018dbdf2a31b0fa6513ccc4487 Mon Sep 17 00:00:00 2001 From: Kenneth Zadeck Date: Tue, 6 May 2014 16:35:35 +0000 Subject: Update ChangeLogs for wide-int work. Co-Authored-By: Kyrylo Tkachov Co-Authored-By: Mike Stump Co-Authored-By: Richard Sandiford From-SVN: r210116 --- gcc/ChangeLog | 780 +++++++++++++++++++++++++++++++++++++++++ gcc/ChangeLog.wide-int | 899 ------------------------------------------------ gcc/ada/ChangeLog | 9 + gcc/c-family/ChangeLog | 26 ++ gcc/c/ChangeLog | 11 + gcc/cp/ChangeLog | 29 ++ gcc/fortran/ChangeLog | 25 ++ gcc/go/ChangeLog | 6 + gcc/java/ChangeLog | 14 + gcc/lto/ChangeLog | 7 + gcc/objc/ChangeLog | 7 + gcc/testsuite/ChangeLog | 6 + 12 files changed, 920 insertions(+), 899 deletions(-) delete mode 100644 gcc/ChangeLog.wide-int diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cd6a42f..0644a4d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,783 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + Kyrylo Tkachov + + * alias.c (ao_ref_from_mem): Use wide-int interfaces. + (rtx_equal_for_memref_p): Update comment. + (adjust_offset_for_component_ref): Use wide-int interfaces. + * builtins.c (get_object_alignment_2): Likewise. + (c_readstr): Likewise. + (target_char_cast): Add comment. + (determine_block_size): Use wide-int interfaces. + (expand_builtin_signbit): Likewise. + (fold_builtin_int_roundingfn): Likewise. + (fold_builtin_bitop): Likewise. + (fold_builtin_bswap): Likewise. + (fold_builtin_logarithm): Use signop. + (fold_builtin_pow): Likewise. + (fold_builtin_memory_op): Use wide-int interfaces. + (fold_builtin_object_size): Likewise. + * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and + nb_iterations_estimate. + (record_niter_bound): Use wide-int interfaces. + (get_estimated_loop_iterations_int): Likewise. + (get_estimated_loop_iterations): Likewise. + (get_max_loop_iterations): Likewise. + * cfgloop.h: Include wide-int.h. + (struct nb_iter_bound): Change bound to widest_int. + (struct loop): Change nb_iterations_upper_bound and + nb_iterations_estimate to widest_int. + (record_niter_bound): Switch to use widest_int. + (get_estimated_loop_iterations): Likewise. + (get_max_loop_iterations): Likewise. + (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and + update for wide-int. + * cgraph.c (cgraph_add_thunk): Use wide-int interfaces. + * combine.c (try_combine): Likewise. + (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P. + * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int + interfaces. + (aarch64_float_const_representable_p): Likewise. + * config/arc/arc.c: Include wide-int.h. + (arc_can_use_doloop_p): Use wide-int interfaces. + * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. + (vfp3_const_double_index): Likewise. + * config/avr/avr.c (avr_out_round): Likewise. + (avr_fold_builtin): Likewise. + * config/bfin/bfin.c (bfin_local_alignment): Likewise. + (bfin_can_use_doloop_p): Likewise. + * config/darwin.c (darwin_mergeable_constant_section): Likewise. + (machopic_select_rtx_section): Update to handle CONST_WIDE_INT. + * config/i386/i386.c: Include wide-int.h. + (ix86_data_alignment): Use wide-int interfaces. + (ix86_local_alignment): Likewise. + (ix86_emit_swsqrtsf): Update real_from_integer. + * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces. + * config/nds32/nds32.c (nds32_insert_attributes): Likewise. + * config/rs6000/predicates.md (any_operand): Add const_wide_int. + (zero_constant): Likewise. + (input_operand): Likewise. + (splat_input_operand): Likewise. + (non_logical_cint_operand): Change const_double to const_wide_int. + * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT. + (easy_altivec_constant): Remove comment. + (paired_expand_vector_init): Use CONSTANT_P. + (rs6000_legitimize_address): Handle CONST_WIDE_INT. + (rs6000_emit_move): Update checks. + (rs6000_aggregate_candidate): Use wide-int interfaces. + (rs6000_expand_ternop_builtin): Likewise. + (rs6000_output_move_128bit): Handle CONST_WIDE_INT. + (rs6000_assemble_integer): Likewise. + (rs6000_hash_constant): Likewise. + (output_toc): Likewise. + (rs6000_rtx_costs): Likewise. + (rs6000_emit_swrsqrt); Update call to real_from_integer. + * config/rs6000/rs6000-c.c: Include wide-int.h. + (altivec_resolve_overloaded_builtin): Use wide-int interfaces. + * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New. + * config/rs6000/rs6000.md: Use const_scalar_int_operand. + Handle CONST_WIDE_INT. + * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI. + Use tree_fits_uhwi_p. + * config/sparc/sparc.c: Include wide-int.h. + (sparc_fold_builtin): Use wide-int interfaces. + * config/vax/vax.c: Include wide-int.h. + (vax_float_literal): Use real_from_integer. + * coretypes.h (struct hwivec_def): New. + (hwivec): New. + (const_hwivec): New. + * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT. + (equiv_constant): Handle CONST_WIDE_INT. + * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE. + (cselib_hash_rtx): Handle CONST_WIDE_INT. + * dbxout.c (stabstr_U): Use wide-int interfaces. + (dbxout_type): Update to use cst_fits_shwi_p. + * defaults.h (LOG2_BITS_PER_UNIT): Define. + (TARGET_SUPPORTS_WIDE_INT): Add default. + * dfp.c: Include wide-int.h. + (decimal_real_to_integer2): Use wide-int interfaces and rename to + decimal_real_to_integer. + * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to + decimal_real_to_integer. + * doc/generic.texi (Constant expressions): Update for wide_int. + * doc/rtl.texi (const_double): Likewise. + (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New. + (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New. + * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove. + (REAL_VALUE_FROM_INT): Remove. + (TARGET_SUPPORTS_WIDE_INT): New. + * doc/tm.texi: Regenerate. + * dojump.c (prefer_and_bit_test): Use wide-int interfaces. + * double-int.h: Include wide-int.h. + (struct wi::int_traits): New. + * dwarf2out.c (get_full_len): New. + (dw_val_equal_p): Add case dw_val_class_wide_int. + (size_of_loc_descr): Likewise. + (output_loc_operands): Likewise. + (insert_double): Remove. + (insert_wide_int): New. + (add_AT_wide): New. + (print_die): Add case dw_val_class_wide_int. + (attr_checksum): Likewise. + (attr_checksum_ordered): Likewise. + (same_dw_val_p): Likewise. + (size_of_die): Likewise. + (value_format): Likewise. + (output_die): Likewise. + (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits. + Use wide-int. + (clz_loc_descriptor): Use wide-int interfaces. + (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT. + (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT. + (round_up_to_align): Use wide-int interfaces. + (field_byte_offset): Likewise. + (insert_double): Rename to insert_wide_int. Use wide-int interfaces. + (add_const_value_attribute): Handle CONST_WIDE_INT. Update + CONST_DOUBLE handling. Use wide-int interfaces. + (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces. + (gen_enumeration_type_die): Use add_AT_wide. + (hash_loc_operands): Add case dw_val_class_wide_int. + (compare_loc_operands): Likewise. + * dwarf2out.h: Include wide-int.h. + (wide_int_ptr): New. + (enum dw_val_class): Add dw_val_class_wide_int. + (struct dw_val_struct): Add val_wide. + * emit-rtl.c (const_wide_int_htab): New. + (const_wide_int_htab_hash): New. + (const_wide_int_htab_eq): New. + (lookup_const_wide_int): New. + (const_double_htab_hash): Use wide-int interfaces. + (const_double_htab_eq): Likewise. + (rtx_to_double_int): Conditionally compile for wide-int. + (immed_double_int_const): Rename to immed_wide_int_const and + update for wide-int. + (immed_double_const): Conditionally compile for wide-int. + (init_emit_once): Use wide-int interfaces. + * explow.c (plus_constant): Likewise. + * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces. + (lshift_value): Use wide-int interfaces. + (expand_mult): Likewise. + (choose_multiplier): Likewise. + (expand_smod_pow2): Likewise. + (make_tree): Likewise. + * expr.c (convert_modes): Consolidate handling of constants. + Use wide-int interfaces. + (emit_group_load_1): Add note. + (store_expr): Update comment. + (get_inner_reference): Use wide-int interfaces. + (expand_constructor): Update comment. + (expand_expr_real_2): Use wide-int interfaces. + (expand_expr_real_1): Likewise. + (reduce_to_bit_field_precision): Likewise. + (const_vector_from_tree): Likewise. + * final.c: Include wide-int-print.h. + (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P. + * fixed-value.c: Include wide-int.h. + (fixed_from_string): Use wide-int interfaces. + (fixed_to_decimal): Likewise. + (fixed_convert_from_real): Likewise. + (real_convert_from_fixed): Likewise. + * fold-const.h (mem_ref_offset): Return an offset_int. + (div_if_zero_remainder): Remove code parameter. + * fold-const.c (div_if_zero_remainder): Remove code parameter. + Use wide-int interfaces. + (may_negate_without_overflow_p): Use wide-int interfaces. + (negate_expr_p): Likewise. + (fold_negate_expr): Likewise. + (int_const_binop_1): Likewise. + (const_binop): Likewise. + (fold_convert_const_int_from_int): Likewise. + (fold_convert_const_int_from_real): Likewise. + (fold_convert_const_int_from_fixed): Likewise. + (fold_convert_const_fixed_from_int): Likewise. + (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces. + (sign_bit_p): Use wide-int interfaces. + (make_range_step): Likewise. + (build_range_check): Likewise. Pass an integer of the correct type + instead of using integer_one_node. + (range_predecessor): Pass an integer of the correct type instead + of using integer_one_node. + (range_successor): Likewise. + (merge_ranges): Likewise. + (unextend): Use wide-int interfaces. + (extract_muldiv_1): Likewise. + (fold_div_compare): Likewise. + (fold_single_bit_test): Likewise. + (fold_sign_changed_comparison): Likewise. + (try_move_mult_to_index): Update calls to div_if_zero_remainder. + (fold_plusminus_mult_expr): Use wide-int interfaces. + (native_encode_int): Likewise. + (native_interpret_int): Likewise. + (fold_unary_loc): Likewise. + (pointer_may_wrap_p): Likewise. + (size_low_cst): Likewise. + (mask_with_tz): Likewise. + (fold_binary_loc): Likewise. + (fold_ternary_loc): Likewise. + (multiple_of_p): Likewise. + (tree_call_nonnegative_warnv_p): Update calls to + tree_int_cst_min_precision and real_from_integer. + (fold_negate_const): Use wide-int interfaces. + (fold_abs_const): Likewise. + (fold_relational_const): Use tree_int_cst_lt. + (round_up_loc): Use wide-int interfaces. + * genemit.c (gen_exp): Add CONST_WIDE_INT case. + * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case. + * gengtype.c: Remove include of double-int.h. + (do_typedef): Use wide-int interfaces. + (open_base_files): Add wide-int.h. + (main): Add offset_int and widest_int typedefs. + * gengtype-lex.l: Handle "^". + (CXX_KEYWORD): Add "static". + * gengtype-parse.c (require3): New. + (require_template_declaration): Handle constant template arguments + and nested templates. + * gengtype-state.c: Don't include "double-int.h". + * genpreds.c (write_one_predicate_function): Update comment. + (write_tm_constrs_h): Add check for hval and lval use in + CONST_WIDE_INT. + * genrecog.c (validate_pattern): Add CONST_WIDE_INT case. + (add_to_sequence): Likewise. + * gensupport.c (struct std_pred_table): Add const_scalar_int_operand + and const_double_operand. + * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int + interfaces. + * gimple-fold.c (get_base_constructor): Likewise. + (fold_array_ctor_reference): Likewise. + (fold_nonarray_ctor_reference): Likewise. + (fold_const_aggregate_ref_1): Likewise. + (gimple_val_nonnegative_real_p): Likewise. + (gimple_fold_indirect_ref): Likewise. + * gimple-pretty-print.c (dump_ssaname_info): Likewise. + * gimple-ssa-strength-reduction.c: Include wide-int-print.h. + (struct slsr_cand_d): Change index to be widest_int. + (struct incr_info_d): Change incr to be widest_int. + (alloc_cand_and_find_basis): Use wide-int interfaces. + (slsr_process_phi): Likewise. + (backtrace_base_for_ref): Likewise. Return a widest_int. + (restructure_reference): Take a widest_int instead of a double_int. + (slsr_process_ref): Use wide-int interfaces. + (create_mul_ssa_cand): Likewise. + (create_mul_imm_cand): Likewise. + (create_add_ssa_cand): Likewise. + (create_add_imm_cand): Take a widest_int instead of a double_int. + (slsr_process_add): Use wide-int interfaces. + (slsr_process_cast): Likewise. + (slsr_process_copy): Likewise. + (dump_candidate): Likewise. + (dump_incr_vec): Likewise. + (replace_ref): Likewise. + (cand_increment): Likewise. Return a widest_int. + (cand_abs_increment): Likewise. + (replace_mult_candidate): Take a widest_int instead of a double_int. + (replace_unconditional_candidate): Use wide-int interfaces. + (incr_vec_index): Take a widest_int instead of a double_int. + (create_add_on_incoming_edge): Likewise. + (create_phi_basis): Use wide-int interfaces. + (replace_conditional_candidate): Likewise. + (record_increment): Take a widest_int instead of a double_int. + (record_phi_increments): Use wide-int interfaces. + (phi_incr_cost): Take a widest_int instead of a double_int. + (lowest_cost_path): Likewise. + (total_savings): Likewise. + (analyze_increments): Use wide-int interfaces. + (ncd_with_phi): Take a widest_int instead of a double_int. + (ncd_of_cand_and_phis): Likewise. + (nearest_common_dominator_for_cands): Likewise. + (insert_initializers): Use wide-int interfaces. + (all_phi_incrs_profitable): Likewise. + (replace_one_candidate): Likewise. + (replace_profitable_candidates): Likewise. + * godump.c: Include wide-int-print.h. + (go_output_typedef): Use wide-int interfaces. + * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise. + * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise. + (build_loop_iteration_domains): Likewise. + * hooks.h: Include wide-int.h rather than double-int.h. + (hook_bool_dint_dint_uint_bool_true): Delete. + (hook_bool_wint_wint_uint_bool_true): Declare. + * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed. + (hook_bool_wint_wint_uint_bool_true): New. + * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int + interfaces. + (ubsan_expand_si_overflow_mul_check): Likewise. + * ipa-devirt.c (get_polymorphic_call_info): Likewise. + * ipa-prop.c (compute_complex_assign_jump_func): Likewise. + (get_ancestor_addr_info): Likewise. + (ipa_modify_call_arguments): Likewise. + * loop-doloop.c (doloop_modify): Likewise. + (doloop_optimize): Likewise. + * loop-iv.c (iv_number_of_iterations): Likewise. + * loop-unroll.c (decide_unroll_constant_iterations): Likewise. + (unroll_loop_constant_iterations): Likewise. + (decide_unroll_runtime_iterations): Likewise. + (unroll_loop_runtime_iterations): Likewise. + (decide_peel_simple): Likewise. + (decide_unroll_stupid): Likewise. + * lto-streamer-in.c (streamer_read_wi): Add. + (input_cfg): Use wide-int interfaces. + (lto_input_tree_1): Likewise. + * lto-streamer-out.c (streamer_write_wi): Add. + (hash_tree): Use wide-int interfaces. + (output_cfg): Likewise. + * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o. + (GTFILES): Add wide-int.h and signop.h. + (TAGS): Look for .cc files too. + * omp-low.c (scan_omp_1_op): Use wide-int interfaces. + * optabs.c (expand_subword_shift): Likewise. + (expand_doubleword_shift): Likewise. + (expand_absneg_bit): Likewise. + (expand_copysign_absneg): Likewise. + (expand_copysign_bit): Likewise. + * postreload.c (reload_cse_simplify_set): Likewise. + * predict.c (predict_iv_comparison): Likewise. + * pretty-print.h: Include wide-int-print.h. + (pp_wide_int) New. + * print-rtl.c (print_rtx): Add CONST_WIDE_INT case. + * print-tree.c: Include wide-int-print.h. + (print_node_brief): Use wide-int interfaces. + (print_node): Likewise. + * read-rtl.c (validate_const_wide_int): New. + (read_rtx_code): Add CONST_WIDE_INT case. + * real.c: Include wide-int.h. + (real_to_integer2): Delete. + (real_to_integer): New function, returning a wide_int. + (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs. + (ten_to_ptwo): Update call to real_from_integer. + (real_digit): Likewise. + * real.h: Include signop.h, wide-int.h and insn-modes.h. + (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT) + (REAL_VALUE_TO_INT): Delete. + (real_to_integer): Declare a wide-int form. + (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs. + * recog.c (const_int_operand): Improve comment. + (const_scalar_int_operand): New. + (const_double_operand): Add a separate definition for CONST_WIDE_INT. + * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT. + (split_double): Likewise. + * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT. + (rtx_size): Likewise. + (rtx_alloc_stat_v): New. + (rtx_alloc_stat): Now calls rtx_alloc_stat_v. + (cwi_output_hex): New. + (iterative_hash_rtx): Handle CONST_WIDE_INT. + (cwi_check_failed_bounds): New. + * rtl.def (CONST_WIDE_INT): New. + * rtl.h: Include and wide-int.h. + (struct hwivec_def): New. + (CWI_GET_NUM_ELEM): New. + (CWI_PUT_NUM_ELEM): New. + (struct rtx_def): Add num_elem and hwiv. + (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT. + (CASE_CONST_UNIQUE): Likewise. + (CASE_CONST_ANY): Likewise. + (CONST_SCALAR_INT_P): Likewise. + (CONST_WIDE_INT_P): New. + (CWI_ELT): New. + (HWIVEC_CHECK): New. + (cwi_check_failed_bounds): New. + (CWI_ELT): New. + (HWIVEC_CHECK): New. + (CONST_WIDE_INT_VEC) New. + (CONST_WIDE_INT_NUNITS) New. + (CONST_WIDE_INT_ELT) New. + (rtx_mode_t): New type. + (wi::int_traits ): New. + (wi::shwi): New. + (wi::min_value): New. + (wi::max_value): New. + (rtx_alloc_v) New. + (const_wide_int_alloc): New. + (immed_wide_int_const): New. + * sched-vis.c (print_value): Handle CONST_WIDE_INT. + * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment. + * signop.h: New file. + * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT. + (simplify_const_unary_operation): Use wide-int interfaces. + (simplify_binary_operation_1): Likewise. + (simplify_const_binary_operation): Likewise. + (simplify_const_relational_operation): Likewise. + (simplify_immed_subreg): Likewise. + * stmt.c (expand_case): Likewise. + * stor-layout.h (set_min_and_max_values_for_integral_type): Take a + signop rather than a bool. + * stor-layout.c (layout_type): Use wide-int interfaces. + (initialize_sizetypes): Update calls to + set_min_and_max_values_for_integral_type. + (set_min_and_max_values_for_integral_type): Take a signop rather + than a bool. Use wide-int interfaces. + (fixup_signed_type): Update accordingly. Remove + HOST_BITS_PER_DOUBLE_INT limit. + (fixup_unsigned_type): Likewise. + * system.h (STATIC_CONSTANT_P): New. + (STATIC_ASSERT): New. + * target.def (can_use_doloop_p): Take widest_ints rather than + double_ints. + * target.h: Include wide-int.h rather than double-int.h. + * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather + than double_ints. + * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt + rather than INT_CST_LT_UNSIGNED. + (can_use_doloop_if_innermost): Take widest_ints rather than + double_ints. + * tree-affine.c: Include wide-int-print.h. + (double_int_ext_for_comb): Delete. + (wide_int_ext_for_comb): New. + (aff_combination_zero): Use wide-int interfaces. + (aff_combination_const): Take a widest_int instead of a double_int. + (aff_combination_elt): Use wide-int interfaces. + (aff_combination_scale): Take a widest_int instead of a double_int. + (aff_combination_add_elt): Likewise. + (aff_combination_add_cst): Likewise. + (aff_combination_add): Use wide-int interfaces. + (aff_combination_convert): Likewise. + (tree_to_aff_combination): Likewise. + (add_elt_to_tree): Take a widest_int instead of a double_int. + (aff_combination_to_tree): Use wide-int interfaces. + (aff_combination_remove_elt): Likewise. + (aff_combination_add_product): Take a widest_int instead of + a double_int. + (aff_combination_mult): Use wide-int interfaces. + (aff_combination_expand): Likewise. + (double_int_constant_multiple_p): Delete. + (wide_int_constant_multiple_p): New. + (aff_combination_constant_multiple_p): Take a widest_int pointer + instead of a double_int pointer. + (print_aff): Use wide-int interfaces. + (get_inner_reference_aff): Take a widest_int pointer + instead of a double_int pointer. + (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints. + * tree-affine.h: Include wide-int.h. + (struct aff_comb_elt): Change type of coef to widest_int. + (struct affine_tree_combination): Change type of offset to widest_int. + (double_int_ext_for_comb): Delete. + (wide_int_ext_for_comb): New. + (aff_combination_const): Use widest_int instead of double_int. + (aff_combination_scale): Likewise. + (aff_combination_add_elt): Likewise. + (aff_combination_constant_multiple_p): Likewise. + (get_inner_reference_aff): Likewise. + (aff_comb_cannot_overlap_p): Likewise. + (aff_combination_zero_p): Use wide-int interfaces. + * tree.c: Include tree.h. + (init_ttree): Use make_int_cst. + (tree_code_size): Removed code for INTEGER_CST case. + (tree_size): Add INTEGER_CST case. + (make_node_stat): Update comment. + (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New. + (build_int_cst_type): Use wide-int interfaces. + (double_int_to_tree): Likewise. + (double_int_fits_to_tree_p): Delete. + (force_fit_type_double): Delete. + (force_fit_type): New. + (int_cst_hash_hash): Use wide-int interfaces. + (int_cst_hash_eq): Likewise. + (build_int_cst_wide): Delete. + (wide_int_to_tree): New. + (cache_integer_cst): Use wide-int interfaces. + (build_low_bits_mask): Likewise. + (cst_and_fits_in_hwi): Likewise. + (real_value_from_int_cst): Likewise. + (make_int_cst_stat): New. + (integer_zerop): Use wide_int interfaces. + (integer_onep): Likewise. + (integer_all_onesp): Likewise. + (integer_pow2p): Likewise. + (integer_nonzerop): Likewise. + (tree_log2): Likewise. + (tree_floor_log2): Likewise. + (tree_ctz): Likewise. + (int_size_in_bytes): Likewise. + (mem_ref_offset): Return an offset_int rather than a double_int. + (build_type_attribute_qual_variant): Use wide_int interfaces. + (type_hash_eq): Likewise + (tree_int_cst_equal): Likewise. + (tree_int_cst_lt): Delete. + (tree_int_cst_compare): Likewise. + (tree_fits_shwi_p): Use wide_int interfaces. + (tree_fits_uhwi_p): Likewise. + (tree_int_cst_sign_bit): Likewise. + (tree_int_cst_sgn): Likewise. + (tree_int_cst_min_precision): Take a signop rather than a bool. + (simple_cst_equal): Use wide_int interfaces. + (compare_tree_int): Likewise. + (iterative_hash_expr): Likewise. + (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than + INT_CST_LT. + (get_type_static_bounds): Use wide_int interfaces. + (tree_int_cst_elt_check_failed): New. + (build_common_tree_nodes): Reordered to set prec before filling in + value. + (int_cst_value): Check cst_and_fits_in_hwi. + (widest_int_cst_value): Use wide_int interfaces. + (upper_bound_in_type): Likewise. + (lower_bound_in_type): Likewise. + (num_ending_zeros): Likewise. + (drop_tree_overflow): Likewise. + * tree-call-cdce.c (check_pow): Update call to real_from_integer. + (gen_conditions_for_pow_cst_base): Likewise. + * tree-cfg.c: Include wide-int.h and wide-int-print.h. + (group_case_labels_stmt): Use wide-int interfaces. + (verify_gimple_assign_binary): Likewise. + (print_loop): Likewise. + * tree-chrec.c (tree_fold_binomial): Likewise. + * tree-core.h (struct tree_base): Add int_length. + (struct tree_int_cst): Change rep of value. + * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces. + (dr_may_alias_p): Likewise. + (max_stmt_executions_tree): Likewise. + * tree.def (INTEGER_CST): Update comment. + * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces. + * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise. + * tree-dump.c: Include wide-int.h and wide-int-print.h. + (dequeue_and_dump): Use wide-int interfaces. + * tree.h: Include wide-int.h. + (NULL_TREE): Moved to earlier loc in file. + (TREE_INT_CST_ELT_CHECK): New. + (tree_int_cst_elt_check_failed): New. + (TYPE_SIGN): New. + (TREE_INT_CST): Delete. + (TREE_INT_CST_LOW): Use wide-int interfaces. + (TREE_INT_CST_HIGH): Delete. + (TREE_INT_CST_NUNITS): New. + (TREE_INT_CST_EXT_NUNITS): Likewise. + (TREE_INT_CST_OFFSET_NUNITS): Likewise. + (TREE_INT_CST_ELT): Likewise. + (INT_CST_LT): Delete. + (tree_int_cst_elt_check): New (two forms). + (type_code_size): Update comment. + (make_int_cst_stat, make_int_cst): New. + (tree_to_double_int): Delete. + (double_int_fits_to_tree_p): Delete. + (force_fit_type_double): Delete. + (build_int_cstu): Replace with out-of-line function. + (build_int_cst_wide): Delete. + (tree_int_cst_lt): Define inline. + (tree_int_cst_le): New. + (tree_int_cst_compare): Define inline. + (tree_int_cst_min_precision): Take a signop rather than a bool. + (wi::int_traits ): New. + (wi::int_traits ): New. + (wi::extended_tree): New. + (wi::int_traits ): New. + (wi::to_widest): New. + (wi::to_offset): New. + (wi::fits_to_tree_p): New. + (wi::min_value): New. + (wi::max_value): New. + * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces. + (copy_tree_body_r): Likewise. + * tree-object-size.c (compute_object_offset): Likewise. + (addr_object_size): Likewise. + * tree-predcom.c: Include wide-int-print.h. + (struct dref_d): Change type of offset to widest_int. + (dump_dref): Call wide-int printer. + (aff_combination_dr_offset): Use wide-int interfaces. + (determine_offset): Take a widest_int pointer rather than a + double_int pointer. + (split_data_refs_to_components): Use wide-int interfaces. + (suitable_component_p): Likewise. + (order_drefs): Likewise. + (add_ref_to_chain): Likewise. + (valid_initializer_p): Likewise. + (determine_roots_comp): Likewise. + * tree-pretty-print.c: Include wide-int-print.h. + (dump_generic_node): Use wide-int interfaces. + * tree-sra.c (sra_ipa_modify_expr): Likewise. + * tree-ssa-address.c (addr_for_mem_ref): Likewise. + (move_fixed_address_to_symbol): Likewise. + (move_hint_to_base): Likewise. + (move_pointer_to_base): Likewise. + (move_variant_to_index): Likewise. + (most_expensive_mult_to_index): Likewise. + (addr_to_parts): Likewise. + (copy_ref_info): Likewise. + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. + (indirect_refs_may_alias_p): Likewise. + (stmt_kills_ref_p_1): Likewise. + * tree-ssa.c (non_rewritable_mem_ref_base): Likewise. + * tree-ssa-ccp.c: Update comment at top of file. Include + wide-int-print.h. + (struct prop_value_d): Change type of mask to widest_int. + (extend_mask): New function. + (dump_lattice_value): Use wide-int interfaces. + (get_default_value): Likewise. + (set_constant_value): Likewise. + (set_value_varying): Likewise. + (valid_lattice_transition): Likewise. + (set_lattice_value): Likewise. + (value_to_double_int): Delete. + (value_to_wide_int): New. + (get_value_from_alignment): Use wide-int interfaces. + (get_value_for_expr): Likewise. + (do_dbg_cnt): Likewise. + (ccp_finalize): Likewise. + (ccp_lattice_meet): Likewise. + (bit_value_unop_1): Use widest_ints rather than double_ints. + (bit_value_binop_1): Likewise. + (bit_value_unop): Use wide-int interfaces. + (bit_value_binop): Likewise. + (bit_value_assume_aligned): Likewise. + (evaluate_stmt): Likewise. + (ccp_fold_stmt): Likewise. + (visit_cond_stmt): Likewise. + (ccp_visit_stmt): Likewise. + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. + (constant_pointer_difference): Likewise. + (associate_pointerplus): Likewise. + (combine_conversions): Likewise. + * tree-ssa-loop.h: Include wide-int.h. + (struct tree_niter_desc): Change type of max to widest_int. + * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces. + * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise. + (remove_redundant_iv_tests): Likewise. + (canonicalize_loop_induction_variables): Likewise. + * tree-ssa-loop-ivopts.c (alloc_iv): Likewise. + (constant_multiple_of): Take a widest_int pointer instead of + a double_int pointer. + (get_computation_aff): Use wide-int interfaces. + (ptr_difference_cost): Likewise. + (difference_cost): Likewise. + (get_loop_invariant_expr_id): Likewise. + (get_computation_cost_at): Likewise. + (iv_elimination_compare_lt): Likewise. + (may_eliminate_iv): Likewise. + * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int + instead of double_int. + (max_loop_iterations): Likewise. + (max_stmt_executions): Likewise. + (estimated_stmt_executions): Likewise. + * tree-ssa-loop-niter.c: Include wide-int-print.h. + (split_to_var_and_offset): Use wide-int interfaces. + (determine_value_range): Likewise. + (bound_difference_of_offsetted_base): Likewise. + (bounds_add): Take a widest_int instead of a double_int. + (number_of_iterations_ne_max): Use wide-int interfaces. + (number_of_iterations_ne): Likewise. + (number_of_iterations_lt_to_ne): Likewise. + (assert_loop_rolls_lt): Likewise. + (number_of_iterations_lt): Likewise. + (number_of_iterations_le): Likewise. + (number_of_iterations_cond): Likewise. + (number_of_iterations_exit): Likewise. + (finite_loop_p): Likewise. + (derive_constant_upper_bound_assign): Likewise. + (derive_constant_upper_bound): Return a widest_int. + (derive_constant_upper_bound_ops): Likewise. + (do_warn_aggressive_loop_optimizations): Use wide-int interfaces. + (record_estimate): Take a widest_int rather than a double_int. + (record_nonwrapping_iv): Use wide-int interfaces. + (double_int_cmp): Delete. + (wide_int_cmp): New. + (bound_index): Take a widest_int rather than a double_int. + (discover_iteration_bound_by_body_walk): Use wide-int interfaces. + (maybe_lower_iteration_bound): Likewise. + (estimate_numbers_of_iterations_loop): Likewise. + (estimated_loop_iterations): Take a widest_int pointer than than + a double_int pointer. + (estimated_loop_iterations_int): Use wide-int interfaces. + (max_loop_iterations): Take a widest_int pointer than than + a double_int pointer. + (max_loop_iterations_int): Use wide-int interfaces. + (max_stmt_executions): Take a widest_int pointer than than + a double_int pointer. + (estimated_stmt_executions): Likewise. + (n_of_executions_at_most): Use wide-int interfaces. + (scev_probably_wraps_p): Likewise. + * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls + to real_to_integer. + * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int + interfaces. + * tree-ssanames.c (set_range_info): Use wide_int_refs rather than + double_ints. Adjust for trailing_wide_ints <3> representation. + (set_nonzero_bits): Likewise. + (get_range_info): Return wide_ints rather than double_ints. + Adjust for trailing_wide_ints <3> representation. + (get_nonzero_bits): Likewise. + (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3> + representation. + * tree-ssanames.h (struct range_info_def): Replace min, max and + nonzero_bits with a trailing_wide_ints <3>. + (set_range_info): Use wide_int_refs rather than double_ints. + (set_nonzero_bits): Likewise. + (get_range_info): Return wide_ints rather than double_ints. + (get_nonzero_bits): Likewise. + * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces. + * tree-ssa-pre.c (phi_translate_1): Likewise. + * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer. + (acceptable_pow_call): Likewise. + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int + interfaces. + (vn_reference_fold_indirect): Likewise. + (vn_reference_maybe_forwprop_address): Likewise. + (valueize_refs_1): Likewise. + * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. + * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces, + tree_int_cst_lt and tree_int_cst_le. + * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int + interfaces. + (streamer_alloc_tree): Likewise. + * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise. + (streamer_write_tree_header): Likewise. + (streamer_write_integer_cst): Likewise. + * tree-switch-conversion.c (emit_case_bit_tests): Likewise. + (build_constructors): Likewise. + (array_value_type): Likewise. + * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise. + (vect_check_gather): Likewise. + * tree-vect-generic.c (build_replicated_const): Likewise. + (expand_vector_divmod): Likewise. + * tree-vect-loop.c (vect_transform_loop): Likewise. + * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise. + (vect_do_peeling_for_alignment): Likewise. + * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise. + * tree-vrp.c: Include wide-int.h. + (operand_less_p): Use wide-int interfaces and tree_int_cst_lt. + (extract_range_from_assert): Use wide-int interfaces. + (vrp_int_const_binop): Likewise. + (zero_nonzero_bits_from_vr): Take wide_int pointers rather than + double_int pointers. + (ranges_from_anti_range): Use wide-int interfaces. + (quad_int_cmp): Delete. + (quad_int_pair_sort): Likewise. + (extract_range_from_binary_expr_1): Use wide-int interfaces. + (extract_range_from_unary_expr_1): Likewise. + (adjust_range_with_scev): Likewise. + (masked_increment): Take and return wide_ints rather than double_ints. + (register_edge_assert_for_2): Use wide-int interfaces. + (check_array_ref): Likewise. + (search_for_addr_array): Likewise. + (maybe_set_nonzero_bits): Likewise. + (union_ranges): Pass an integer of the correct type instead of + using integer_one_node. + (intersect_ranges): Likewise. + (simplify_truth_ops_using_ranges): Likewise. + (simplify_bit_ops_using_ranges): Use wide-int interfaces. + (range_fits_type_p): Likewise. + (simplify_cond_using_ranges): Likewise. Take a signop rather than + a bool. + (simplify_conversion_using_ranges): Use wide-int interfaces. + (simplify_float_conversion_using_ranges): Likewise. + (vrp_finalize): Likewise. + * value-prof.c (gimple_divmod_fixed_value_transform): Likewise. + (gimple_stringops_transform): Likewise. + * varasm.c (decode_addr_const): Likewise. + (const_hash_1): Likewise. + (const_rtx_hash_1): Likewise + (output_constant): Likewise. + (array_size_for_constructor): Likewise. + (output_constructor_regular_field): Likewise. + (output_constructor_bitfield): Likewise. + * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT. + * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for + GENERATOR_FILEs. + * gencheck.c: Define BITS_PER_UNIT. + * wide-int.cc: New. + * wide-int.h: New. + * wide-int-print.cc: New. + * wide-int-print.h: New. + 2014-05-06 Jan-Benedict Glaw * config/avr/avr.c (avr_can_eliminate): Mark unused argument. diff --git a/gcc/ChangeLog.wide-int b/gcc/ChangeLog.wide-int deleted file mode 100644 index 71057cf..0000000 --- a/gcc/ChangeLog.wide-int +++ /dev/null @@ -1,899 +0,0 @@ -2013-11-21 Kenneth Zadeck - Mike Stump - Richard Sandiford - Kyrylo Tkachov - - * alias.c (ao_ref_from_mem): Use wide-int interfaces. - (rtx_equal_for_memref_p): Update comment. - (adjust_offset_for_component_ref): Use wide-int interfaces. - * builtins.c (get_object_alignment_2): Likewise. - (c_readstr): Likewise. - (target_char_cast): Add comment. - (determine_block_size): Use wide-int interfaces. - (expand_builtin_signbit): Likewise. - (fold_builtin_int_roundingfn): Likewise. - (fold_builtin_bitop): Likewise. - (fold_builtin_bswap): Likewise. - (fold_builtin_logarithm): Use signop. - (fold_builtin_pow): Likewise. - (fold_builtin_memory_op): Use wide-int interfaces. - (fold_builtin_object_size): Likewise. - * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and - nb_iterations_estimate. - (record_niter_bound): Use wide-int interfaces. - (get_estimated_loop_iterations_int): Likewise. - (get_estimated_loop_iterations): Likewise. - (get_max_loop_iterations): Likewise. - * cfgloop.h: Include wide-int.h. - (struct nb_iter_bound): Change bound to widest_int. - (struct loop): Change nb_iterations_upper_bound and - nb_iterations_estimate to widest_int. - (record_niter_bound): Switch to use widest_int. - (get_estimated_loop_iterations): Likewise. - (get_max_loop_iterations): Likewise. - (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and - update for wide-int. - * cgraph.c (cgraph_add_thunk): Use wide-int interfaces. - * combine.c (try_combine): Likewise. - (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P. - * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int - interfaces. - (aarch64_float_const_representable_p): Likewise. - * config/arc/arc.c: Include wide-int.h. - (arc_can_use_doloop_p): Use wide-int interfaces. - * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. - (vfp3_const_double_index): Likewise. - * config/avr/avr.c (avr_out_round): Likewise. - (avr_fold_builtin): Likewise. - * config/bfin/bfin.c (bfin_local_alignment): Likewise. - (bfin_can_use_doloop_p): Likewise. - * config/darwin.c (darwin_mergeable_constant_section): Likewise. - (machopic_select_rtx_section): Update to handle CONST_WIDE_INT. - * config/i386/i386.c: Include wide-int.h. - (ix86_data_alignment): Use wide-int interfaces. - (ix86_local_alignment): Likewise. - (ix86_emit_swsqrtsf): Update real_from_integer. - * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces. - * config/nds32/nds32.c (nds32_insert_attributes): Likewise. - * config/rs6000/predicates.md (any_operand): Add const_wide_int. - (zero_constant): Likewise. - (input_operand): Likewise. - (splat_input_operand): Likewise. - (non_logical_cint_operand): Change const_double to const_wide_int. - * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT. - (easy_altivec_constant): Remove comment. - (paired_expand_vector_init): Use CONSTANT_P. - (rs6000_legitimize_address): Handle CONST_WIDE_INT. - (rs6000_emit_move): Update checks. - (rs6000_aggregate_candidate): Use wide-int interfaces. - (rs6000_expand_ternop_builtin): Likewise. - (rs6000_output_move_128bit): Handle CONST_WIDE_INT. - (rs6000_assemble_integer): Likewise. - (rs6000_hash_constant): Likewise. - (output_toc): Likewise. - (rs6000_rtx_costs): Likewise. - (rs6000_emit_swrsqrt); Update call to real_from_integer. - * config/rs6000/rs6000-c.c: Include wide-int.h. - (altivec_resolve_overloaded_builtin): Use wide-int interfaces. - * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New. - * config/rs6000/rs6000.md: Use const_scalar_int_operand. - Handle CONST_WIDE_INT. - * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI. - Use tree_fits_uhwi_p. - * config/sparc/sparc.c: Include wide-int.h. - (sparc_fold_builtin): Use wide-int interfaces. - * config/vax/vax.c: Include wide-int.h. - (vax_float_literal): Use real_from_integer. - * coretypes.h (struct hwivec_def): New. - (hwivec): New. - (const_hwivec): New. - * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT. - (equiv_constant): Handle CONST_WIDE_INT. - * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE. - (cselib_hash_rtx): Handle CONST_WIDE_INT. - * dbxout.c (stabstr_U): Use wide-int interfaces. - (dbxout_type): Update to use cst_fits_shwi_p. - * defaults.h (LOG2_BITS_PER_UNIT): Define. - (TARGET_SUPPORTS_WIDE_INT): Add default. - * dfp.c: Include wide-int.h. - (decimal_real_to_integer2): Use wide-int interfaces and rename to - decimal_real_to_integer. - * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to - decimal_real_to_integer. - * doc/generic.texi (Constant expressions): Update for wide_int. - * doc/rtl.texi (const_double): Likewise. - (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New. - (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New. - * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove. - (REAL_VALUE_FROM_INT): Remove. - (TARGET_SUPPORTS_WIDE_INT): New. - * doc/tm.texi: Regenerate. - * dojump.c (prefer_and_bit_test): Use wide-int interfaces. - * double-int.h: Include wide-int.h. - (struct wi::int_traits): New. - * dwarf2out.c (get_full_len): New. - (dw_val_equal_p): Add case dw_val_class_wide_int. - (size_of_loc_descr): Likewise. - (output_loc_operands): Likewise. - (insert_double): Remove. - (insert_wide_int): New. - (add_AT_wide): New. - (print_die): Add case dw_val_class_wide_int. - (attr_checksum): Likewise. - (attr_checksum_ordered): Likewise. - (same_dw_val_p): Likewise. - (size_of_die): Likewise. - (value_format): Likewise. - (output_die): Likewise. - (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits. - Use wide-int. - (clz_loc_descriptor): Use wide-int interfaces. - (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT. - (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT. - (round_up_to_align): Use wide-int interfaces. - (field_byte_offset): Likewise. - (insert_double): Rename to insert_wide_int. Use wide-int interfaces. - (add_const_value_attribute): Handle CONST_WIDE_INT. Update - CONST_DOUBLE handling. Use wide-int interfaces. - (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces. - (gen_enumeration_type_die): Use add_AT_wide. - (hash_loc_operands): Add case dw_val_class_wide_int. - (compare_loc_operands): Likewise. - * dwarf2out.h: Include wide-int.h. - (wide_int_ptr): New. - (enum dw_val_class): Add dw_val_class_wide_int. - (struct dw_val_struct): Add val_wide. - * emit-rtl.c (const_wide_int_htab): New. - (const_wide_int_htab_hash): New. - (const_wide_int_htab_eq): New. - (lookup_const_wide_int): New. - (const_double_htab_hash): Use wide-int interfaces. - (const_double_htab_eq): Likewise. - (rtx_to_double_int): Conditionally compile for wide-int. - (immed_double_int_const): Rename to immed_wide_int_const and - update for wide-int. - (immed_double_const): Conditionally compile for wide-int. - (init_emit_once): Use wide-int interfaces. - * explow.c (plus_constant): Likewise. - * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces. - (lshift_value): Use wide-int interfaces. - (expand_mult): Likewise. - (choose_multiplier): Likewise. - (expand_smod_pow2): Likewise. - (make_tree): Likewise. - * expr.c (convert_modes): Consolidate handling of constants. - Use wide-int interfaces. - (emit_group_load_1): Add note. - (store_expr): Update comment. - (get_inner_reference): Use wide-int interfaces. - (expand_constructor): Update comment. - (expand_expr_real_2): Use wide-int interfaces. - (expand_expr_real_1): Likewise. - (reduce_to_bit_field_precision): Likewise. - (const_vector_from_tree): Likewise. - * final.c: Include wide-int-print.h. - (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P. - * fixed-value.c: Include wide-int.h. - (fixed_from_string): Use wide-int interfaces. - (fixed_to_decimal): Likewise. - (fixed_convert_from_real): Likewise. - (real_convert_from_fixed): Likewise. - * fold-const.h (mem_ref_offset): Return an offset_int. - (div_if_zero_remainder): Remove code parameter. - * fold-const.c (div_if_zero_remainder): Remove code parameter. - Use wide-int interfaces. - (may_negate_without_overflow_p): Use wide-int interfaces. - (negate_expr_p): Likewise. - (fold_negate_expr): Likewise. - (int_const_binop_1): Likewise. - (const_binop): Likewise. - (fold_convert_const_int_from_int): Likewise. - (fold_convert_const_int_from_real): Likewise. - (fold_convert_const_int_from_fixed): Likewise. - (fold_convert_const_fixed_from_int): Likewise. - (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces. - (sign_bit_p): Use wide-int interfaces. - (make_range_step): Likewise. - (build_range_check): Likewise. Pass an integer of the correct type - instead of using integer_one_node. - (range_predecessor): Pass an integer of the correct type instead - of using integer_one_node. - (range_successor): Likewise. - (merge_ranges): Likewise. - (unextend): Use wide-int interfaces. - (extract_muldiv_1): Likewise. - (fold_div_compare): Likewise. - (fold_single_bit_test): Likewise. - (fold_sign_changed_comparison): Likewise. - (try_move_mult_to_index): Update calls to div_if_zero_remainder. - (fold_plusminus_mult_expr): Use wide-int interfaces. - (native_encode_int): Likewise. - (native_interpret_int): Likewise. - (fold_unary_loc): Likewise. - (pointer_may_wrap_p): Likewise. - (size_low_cst): Likewise. - (mask_with_tz): Likewise. - (fold_binary_loc): Likewise. - (fold_ternary_loc): Likewise. - (multiple_of_p): Likewise. - (tree_call_nonnegative_warnv_p): Update calls to - tree_int_cst_min_precision and real_from_integer. - (fold_negate_const): Use wide-int interfaces. - (fold_abs_const): Likewise. - (fold_relational_const): Use tree_int_cst_lt. - (round_up_loc): Use wide-int interfaces. - * genemit.c (gen_exp): Add CONST_WIDE_INT case. - * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case. - * gengtype.c: Remove include of double-int.h. - (do_typedef): Use wide-int interfaces. - (open_base_files): Add wide-int.h. - (main): Add offset_int and widest_int typedefs. - * gengtype-lex.l: Handle "^". - (CXX_KEYWORD): Add "static". - * gengtype-parse.c (require3): New. - (require_template_declaration): Handle constant template arguments - and nested templates. - * gengtype-state.c: Don't include "double-int.h". - * genpreds.c (write_one_predicate_function): Update comment. - (write_tm_constrs_h): Add check for hval and lval use in - CONST_WIDE_INT. - * genrecog.c (validate_pattern): Add CONST_WIDE_INT case. - (add_to_sequence): Likewise. - * gensupport.c (struct std_pred_table): Add const_scalar_int_operand - and const_double_operand. - * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int - interfaces. - * gimple-fold.c (get_base_constructor): Likewise. - (fold_array_ctor_reference): Likewise. - (fold_nonarray_ctor_reference): Likewise. - (fold_const_aggregate_ref_1): Likewise. - (gimple_val_nonnegative_real_p): Likewise. - (gimple_fold_indirect_ref): Likewise. - * gimple-pretty-print.c (dump_ssaname_info): Likewise. - * gimple-ssa-strength-reduction.c: Include wide-int-print.h. - (struct slsr_cand_d): Change index to be widest_int. - (struct incr_info_d): Change incr to be widest_int. - (alloc_cand_and_find_basis): Use wide-int interfaces. - (slsr_process_phi): Likewise. - (backtrace_base_for_ref): Likewise. Return a widest_int. - (restructure_reference): Take a widest_int instead of a double_int. - (slsr_process_ref): Use wide-int interfaces. - (create_mul_ssa_cand): Likewise. - (create_mul_imm_cand): Likewise. - (create_add_ssa_cand): Likewise. - (create_add_imm_cand): Take a widest_int instead of a double_int. - (slsr_process_add): Use wide-int interfaces. - (slsr_process_cast): Likewise. - (slsr_process_copy): Likewise. - (dump_candidate): Likewise. - (dump_incr_vec): Likewise. - (replace_ref): Likewise. - (cand_increment): Likewise. Return a widest_int. - (cand_abs_increment): Likewise. - (replace_mult_candidate): Take a widest_int instead of a double_int. - (replace_unconditional_candidate): Use wide-int interfaces. - (incr_vec_index): Take a widest_int instead of a double_int. - (create_add_on_incoming_edge): Likewise. - (create_phi_basis): Use wide-int interfaces. - (replace_conditional_candidate): Likewise. - (record_increment): Take a widest_int instead of a double_int. - (record_phi_increments): Use wide-int interfaces. - (phi_incr_cost): Take a widest_int instead of a double_int. - (lowest_cost_path): Likewise. - (total_savings): Likewise. - (analyze_increments): Use wide-int interfaces. - (ncd_with_phi): Take a widest_int instead of a double_int. - (ncd_of_cand_and_phis): Likewise. - (nearest_common_dominator_for_cands): Likewise. - (insert_initializers): Use wide-int interfaces. - (all_phi_incrs_profitable): Likewise. - (replace_one_candidate): Likewise. - (replace_profitable_candidates): Likewise. - * godump.c: Include wide-int-print.h. - (go_output_typedef): Use wide-int interfaces. - * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise. - * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise. - (build_loop_iteration_domains): Likewise. - * hooks.h: Include wide-int.h rather than double-int.h. - (hook_bool_dint_dint_uint_bool_true): Delete. - (hook_bool_wint_wint_uint_bool_true): Declare. - * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed. - (hook_bool_wint_wint_uint_bool_true): New. - * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int - interfaces. - (ubsan_expand_si_overflow_mul_check): Likewise. - * ipa-devirt.c (get_polymorphic_call_info): Likewise. - * ipa-prop.c (compute_complex_assign_jump_func): Likewise. - (get_ancestor_addr_info): Likewise. - (ipa_modify_call_arguments): Likewise. - * loop-doloop.c (doloop_modify): Likewise. - (doloop_optimize): Likewise. - * loop-iv.c (iv_number_of_iterations): Likewise. - * loop-unroll.c (decide_unroll_constant_iterations): Likewise. - (unroll_loop_constant_iterations): Likewise. - (decide_unroll_runtime_iterations): Likewise. - (unroll_loop_runtime_iterations): Likewise. - (decide_peel_simple): Likewise. - (decide_unroll_stupid): Likewise. - * lto-streamer-in.c (streamer_read_wi): Add. - (input_cfg): Use wide-int interfaces. - (lto_input_tree_1): Likewise. - * lto-streamer-out.c (streamer_write_wi): Add. - (hash_tree): Use wide-int interfaces. - (output_cfg): Likewise. - * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o. - (GTFILES): Add wide-int.h and signop.h. - (TAGS): Look for .cc files too. - * omp-low.c (scan_omp_1_op): Use wide-int interfaces. - * optabs.c (expand_subword_shift): Likewise. - (expand_doubleword_shift): Likewise. - (expand_absneg_bit): Likewise. - (expand_copysign_absneg): Likewise. - (expand_copysign_bit): Likewise. - * postreload.c (reload_cse_simplify_set): Likewise. - * predict.c (predict_iv_comparison): Likewise. - * pretty-print.h: Include wide-int-print.h. - (pp_wide_int) New. - * print-rtl.c (print_rtx): Add CONST_WIDE_INT case. - * print-tree.c: Include wide-int-print.h. - (print_node_brief): Use wide-int interfaces. - (print_node): Likewise. - * read-rtl.c (validate_const_wide_int): New. - (read_rtx_code): Add CONST_WIDE_INT case. - * real.c: Include wide-int.h. - (real_to_integer2): Delete. - (real_to_integer): New function, returning a wide_int. - (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs. - (ten_to_ptwo): Update call to real_from_integer. - (real_digit): Likewise. - * real.h: Include signop.h, wide-int.h and insn-modes.h. - (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT) - (REAL_VALUE_TO_INT): Delete. - (real_to_integer): Declare a wide-int form. - (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs. - * recog.c (const_int_operand): Improve comment. - (const_scalar_int_operand): New. - (const_double_operand): Add a separate definition for CONST_WIDE_INT. - * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT. - (split_double): Likewise. - * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT. - (rtx_size): Likewise. - (rtx_alloc_stat_v): New. - (rtx_alloc_stat): Now calls rtx_alloc_stat_v. - (cwi_output_hex): New. - (iterative_hash_rtx): Handle CONST_WIDE_INT. - (cwi_check_failed_bounds): New. - * rtl.def (CONST_WIDE_INT): New. - * rtl.h: Include and wide-int.h. - (struct hwivec_def): New. - (CWI_GET_NUM_ELEM): New. - (CWI_PUT_NUM_ELEM): New. - (struct rtx_def): Add num_elem and hwiv. - (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT. - (CASE_CONST_UNIQUE): Likewise. - (CASE_CONST_ANY): Likewise. - (CONST_SCALAR_INT_P): Likewise. - (CONST_WIDE_INT_P): New. - (CWI_ELT): New. - (HWIVEC_CHECK): New. - (cwi_check_failed_bounds): New. - (CWI_ELT): New. - (HWIVEC_CHECK): New. - (CONST_WIDE_INT_VEC) New. - (CONST_WIDE_INT_NUNITS) New. - (CONST_WIDE_INT_ELT) New. - (rtx_mode_t): New type. - (wi::int_traits ): New. - (wi::shwi): New. - (wi::min_value): New. - (wi::max_value): New. - (rtx_alloc_v) New. - (const_wide_int_alloc): New. - (immed_wide_int_const): New. - * sched-vis.c (print_value): Handle CONST_WIDE_INT. - * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment. - * signop.h: New file. - * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT. - (simplify_const_unary_operation): Use wide-int interfaces. - (simplify_binary_operation_1): Likewise. - (simplify_const_binary_operation): Likewise. - (simplify_const_relational_operation): Likewise. - (simplify_immed_subreg): Likewise. - * stmt.c (expand_case): Likewise. - * stor-layout.h (set_min_and_max_values_for_integral_type): Take a - signop rather than a bool. - * stor-layout.c (layout_type): Use wide-int interfaces. - (initialize_sizetypes): Update calls to - set_min_and_max_values_for_integral_type. - (set_min_and_max_values_for_integral_type): Take a signop rather - than a bool. Use wide-int interfaces. - (fixup_signed_type): Update accordingly. Remove - HOST_BITS_PER_DOUBLE_INT limit. - (fixup_unsigned_type): Likewise. - * system.h (STATIC_CONSTANT_P): New. - (STATIC_ASSERT): New. - * target.def (can_use_doloop_p): Take widest_ints rather than - double_ints. - * target.h: Include wide-int.h rather than double-int.h. - * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather - than double_ints. - * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt - rather than INT_CST_LT_UNSIGNED. - (can_use_doloop_if_innermost): Take widest_ints rather than - double_ints. - * tree-affine.c: Include wide-int-print.h. - (double_int_ext_for_comb): Delete. - (wide_int_ext_for_comb): New. - (aff_combination_zero): Use wide-int interfaces. - (aff_combination_const): Take a widest_int instead of a double_int. - (aff_combination_elt): Use wide-int interfaces. - (aff_combination_scale): Take a widest_int instead of a double_int. - (aff_combination_add_elt): Likewise. - (aff_combination_add_cst): Likewise. - (aff_combination_add): Use wide-int interfaces. - (aff_combination_convert): Likewise. - (tree_to_aff_combination): Likewise. - (add_elt_to_tree): Take a widest_int instead of a double_int. - (aff_combination_to_tree): Use wide-int interfaces. - (aff_combination_remove_elt): Likewise. - (aff_combination_add_product): Take a widest_int instead of - a double_int. - (aff_combination_mult): Use wide-int interfaces. - (aff_combination_expand): Likewise. - (double_int_constant_multiple_p): Delete. - (wide_int_constant_multiple_p): New. - (aff_combination_constant_multiple_p): Take a widest_int pointer - instead of a double_int pointer. - (print_aff): Use wide-int interfaces. - (get_inner_reference_aff): Take a widest_int pointer - instead of a double_int pointer. - (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints. - * tree-affine.h: Include wide-int.h. - (struct aff_comb_elt): Change type of coef to widest_int. - (struct affine_tree_combination): Change type of offset to widest_int. - (double_int_ext_for_comb): Delete. - (wide_int_ext_for_comb): New. - (aff_combination_const): Use widest_int instead of double_int. - (aff_combination_scale): Likewise. - (aff_combination_add_elt): Likewise. - (aff_combination_constant_multiple_p): Likewise. - (get_inner_reference_aff): Likewise. - (aff_comb_cannot_overlap_p): Likewise. - (aff_combination_zero_p): Use wide-int interfaces. - * tree.c: Include tree.h. - (init_ttree): Use make_int_cst. - (tree_code_size): Removed code for INTEGER_CST case. - (tree_size): Add INTEGER_CST case. - (make_node_stat): Update comment. - (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New. - (build_int_cst_type): Use wide-int interfaces. - (double_int_to_tree): Likewise. - (double_int_fits_to_tree_p): Delete. - (force_fit_type_double): Delete. - (force_fit_type): New. - (int_cst_hash_hash): Use wide-int interfaces. - (int_cst_hash_eq): Likewise. - (build_int_cst_wide): Delete. - (wide_int_to_tree): New. - (cache_integer_cst): Use wide-int interfaces. - (build_low_bits_mask): Likewise. - (cst_and_fits_in_hwi): Likewise. - (real_value_from_int_cst): Likewise. - (make_int_cst_stat): New. - (integer_zerop): Use wide_int interfaces. - (integer_onep): Likewise. - (integer_all_onesp): Likewise. - (integer_pow2p): Likewise. - (integer_nonzerop): Likewise. - (tree_log2): Likewise. - (tree_floor_log2): Likewise. - (tree_ctz): Likewise. - (int_size_in_bytes): Likewise. - (mem_ref_offset): Return an offset_int rather than a double_int. - (build_type_attribute_qual_variant): Use wide_int interfaces. - (type_hash_eq): Likewise - (tree_int_cst_equal): Likewise. - (tree_int_cst_lt): Delete. - (tree_int_cst_compare): Likewise. - (tree_fits_shwi_p): Use wide_int interfaces. - (tree_fits_uhwi_p): Likewise. - (tree_int_cst_sign_bit): Likewise. - (tree_int_cst_sgn): Likewise. - (tree_int_cst_min_precision): Take a signop rather than a bool. - (simple_cst_equal): Use wide_int interfaces. - (compare_tree_int): Likewise. - (iterative_hash_expr): Likewise. - (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than - INT_CST_LT. - (get_type_static_bounds): Use wide_int interfaces. - (tree_int_cst_elt_check_failed): New. - (build_common_tree_nodes): Reordered to set prec before filling in - value. - (int_cst_value): Check cst_and_fits_in_hwi. - (widest_int_cst_value): Use wide_int interfaces. - (upper_bound_in_type): Likewise. - (lower_bound_in_type): Likewise. - (num_ending_zeros): Likewise. - (drop_tree_overflow): Likewise. - * tree-call-cdce.c (check_pow): Update call to real_from_integer. - (gen_conditions_for_pow_cst_base): Likewise. - * tree-cfg.c: Include wide-int.h and wide-int-print.h. - (group_case_labels_stmt): Use wide-int interfaces. - (verify_gimple_assign_binary): Likewise. - (print_loop): Likewise. - * tree-chrec.c (tree_fold_binomial): Likewise. - * tree-core.h (struct tree_base): Add int_length. - (struct tree_int_cst): Change rep of value. - * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces. - (dr_may_alias_p): Likewise. - (max_stmt_executions_tree): Likewise. - * tree.def (INTEGER_CST): Update comment. - * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces. - * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise. - * tree-dump.c: Include wide-int.h and wide-int-print.h. - (dequeue_and_dump): Use wide-int interfaces. - * tree.h: Include wide-int.h. - (NULL_TREE): Moved to earlier loc in file. - (TREE_INT_CST_ELT_CHECK): New. - (tree_int_cst_elt_check_failed): New. - (TYPE_SIGN): New. - (TREE_INT_CST): Delete. - (TREE_INT_CST_LOW): Use wide-int interfaces. - (TREE_INT_CST_HIGH): Delete. - (TREE_INT_CST_NUNITS): New. - (TREE_INT_CST_EXT_NUNITS): Likewise. - (TREE_INT_CST_OFFSET_NUNITS): Likewise. - (TREE_INT_CST_ELT): Likewise. - (INT_CST_LT): Delete. - (tree_int_cst_elt_check): New (two forms). - (type_code_size): Update comment. - (make_int_cst_stat, make_int_cst): New. - (tree_to_double_int): Delete. - (double_int_fits_to_tree_p): Delete. - (force_fit_type_double): Delete. - (build_int_cstu): Replace with out-of-line function. - (build_int_cst_wide): Delete. - (tree_int_cst_lt): Define inline. - (tree_int_cst_le): New. - (tree_int_cst_compare): Define inline. - (tree_int_cst_min_precision): Take a signop rather than a bool. - (wi::int_traits ): New. - (wi::int_traits ): New. - (wi::extended_tree): New. - (wi::int_traits ): New. - (wi::to_widest): New. - (wi::to_offset): New. - (wi::fits_to_tree_p): New. - (wi::min_value): New. - (wi::max_value): New. - * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces. - (copy_tree_body_r): Likewise. - * tree-object-size.c (compute_object_offset): Likewise. - (addr_object_size): Likewise. - * tree-predcom.c: Include wide-int-print.h. - (struct dref_d): Change type of offset to widest_int. - (dump_dref): Call wide-int printer. - (aff_combination_dr_offset): Use wide-int interfaces. - (determine_offset): Take a widest_int pointer rather than a - double_int pointer. - (split_data_refs_to_components): Use wide-int interfaces. - (suitable_component_p): Likewise. - (order_drefs): Likewise. - (add_ref_to_chain): Likewise. - (valid_initializer_p): Likewise. - (determine_roots_comp): Likewise. - * tree-pretty-print.c: Include wide-int-print.h. - (dump_generic_node): Use wide-int interfaces. - * tree-sra.c (sra_ipa_modify_expr): Likewise. - * tree-ssa-address.c (addr_for_mem_ref): Likewise. - (move_fixed_address_to_symbol): Likewise. - (move_hint_to_base): Likewise. - (move_pointer_to_base): Likewise. - (move_variant_to_index): Likewise. - (most_expensive_mult_to_index): Likewise. - (addr_to_parts): Likewise. - (copy_ref_info): Likewise. - * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. - (indirect_refs_may_alias_p): Likewise. - (stmt_kills_ref_p_1): Likewise. - * tree-ssa.c (non_rewritable_mem_ref_base): Likewise. - * tree-ssa-ccp.c: Update comment at top of file. Include - wide-int-print.h. - (struct prop_value_d): Change type of mask to widest_int. - (extend_mask): New function. - (dump_lattice_value): Use wide-int interfaces. - (get_default_value): Likewise. - (set_constant_value): Likewise. - (set_value_varying): Likewise. - (valid_lattice_transition): Likewise. - (set_lattice_value): Likewise. - (value_to_double_int): Delete. - (value_to_wide_int): New. - (get_value_from_alignment): Use wide-int interfaces. - (get_value_for_expr): Likewise. - (do_dbg_cnt): Likewise. - (ccp_finalize): Likewise. - (ccp_lattice_meet): Likewise. - (bit_value_unop_1): Use widest_ints rather than double_ints. - (bit_value_binop_1): Likewise. - (bit_value_unop): Use wide-int interfaces. - (bit_value_binop): Likewise. - (bit_value_assume_aligned): Likewise. - (evaluate_stmt): Likewise. - (ccp_fold_stmt): Likewise. - (visit_cond_stmt): Likewise. - (ccp_visit_stmt): Likewise. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. - (constant_pointer_difference): Likewise. - (associate_pointerplus): Likewise. - (combine_conversions): Likewise. - * tree-ssa-loop.h: Include wide-int.h. - (struct tree_niter_desc): Change type of max to widest_int. - * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces. - * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise. - (remove_redundant_iv_tests): Likewise. - (canonicalize_loop_induction_variables): Likewise. - * tree-ssa-loop-ivopts.c (alloc_iv): Likewise. - (constant_multiple_of): Take a widest_int pointer instead of - a double_int pointer. - (get_computation_aff): Use wide-int interfaces. - (ptr_difference_cost): Likewise. - (difference_cost): Likewise. - (get_loop_invariant_expr_id): Likewise. - (get_computation_cost_at): Likewise. - (iv_elimination_compare_lt): Likewise. - (may_eliminate_iv): Likewise. - * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int - instead of double_int. - (max_loop_iterations): Likewise. - (max_stmt_executions): Likewise. - (estimated_stmt_executions): Likewise. - * tree-ssa-loop-niter.c: Include wide-int-print.h. - (split_to_var_and_offset): Use wide-int interfaces. - (determine_value_range): Likewise. - (bound_difference_of_offsetted_base): Likewise. - (bounds_add): Take a widest_int instead of a double_int. - (number_of_iterations_ne_max): Use wide-int interfaces. - (number_of_iterations_ne): Likewise. - (number_of_iterations_lt_to_ne): Likewise. - (assert_loop_rolls_lt): Likewise. - (number_of_iterations_lt): Likewise. - (number_of_iterations_le): Likewise. - (number_of_iterations_cond): Likewise. - (number_of_iterations_exit): Likewise. - (finite_loop_p): Likewise. - (derive_constant_upper_bound_assign): Likewise. - (derive_constant_upper_bound): Return a widest_int. - (derive_constant_upper_bound_ops): Likewise. - (do_warn_aggressive_loop_optimizations): Use wide-int interfaces. - (record_estimate): Take a widest_int rather than a double_int. - (record_nonwrapping_iv): Use wide-int interfaces. - (double_int_cmp): Delete. - (wide_int_cmp): New. - (bound_index): Take a widest_int rather than a double_int. - (discover_iteration_bound_by_body_walk): Use wide-int interfaces. - (maybe_lower_iteration_bound): Likewise. - (estimate_numbers_of_iterations_loop): Likewise. - (estimated_loop_iterations): Take a widest_int pointer than than - a double_int pointer. - (estimated_loop_iterations_int): Use wide-int interfaces. - (max_loop_iterations): Take a widest_int pointer than than - a double_int pointer. - (max_loop_iterations_int): Use wide-int interfaces. - (max_stmt_executions): Take a widest_int pointer than than - a double_int pointer. - (estimated_stmt_executions): Likewise. - (n_of_executions_at_most): Use wide-int interfaces. - (scev_probably_wraps_p): Likewise. - * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls - to real_to_integer. - * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int - interfaces. - * tree-ssanames.c (set_range_info): Use wide_int_refs rather than - double_ints. Adjust for trailing_wide_ints <3> representation. - (set_nonzero_bits): Likewise. - (get_range_info): Return wide_ints rather than double_ints. - Adjust for trailing_wide_ints <3> representation. - (get_nonzero_bits): Likewise. - (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3> - representation. - * tree-ssanames.h (struct range_info_def): Replace min, max and - nonzero_bits with a trailing_wide_ints <3>. - (set_range_info): Use wide_int_refs rather than double_ints. - (set_nonzero_bits): Likewise. - (get_range_info): Return wide_ints rather than double_ints. - (get_nonzero_bits): Likewise. - * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces. - * tree-ssa-pre.c (phi_translate_1): Likewise. - * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer. - (acceptable_pow_call): Likewise. - * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int - interfaces. - (vn_reference_fold_indirect): Likewise. - (vn_reference_maybe_forwprop_address): Likewise. - (valueize_refs_1): Likewise. - * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. - * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces, - tree_int_cst_lt and tree_int_cst_le. - * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int - interfaces. - (streamer_alloc_tree): Likewise. - * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise. - (streamer_write_tree_header): Likewise. - (streamer_write_integer_cst): Likewise. - * tree-switch-conversion.c (emit_case_bit_tests): Likewise. - (build_constructors): Likewise. - (array_value_type): Likewise. - * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise. - (vect_check_gather): Likewise. - * tree-vect-generic.c (build_replicated_const): Likewise. - (expand_vector_divmod): Likewise. - * tree-vect-loop.c (vect_transform_loop): Likewise. - * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise. - (vect_do_peeling_for_alignment): Likewise. - * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise. - * tree-vrp.c: Include wide-int.h. - (operand_less_p): Use wide-int interfaces and tree_int_cst_lt. - (extract_range_from_assert): Use wide-int interfaces. - (vrp_int_const_binop): Likewise. - (zero_nonzero_bits_from_vr): Take wide_int pointers rather than - double_int pointers. - (ranges_from_anti_range): Use wide-int interfaces. - (quad_int_cmp): Delete. - (quad_int_pair_sort): Likewise. - (extract_range_from_binary_expr_1): Use wide-int interfaces. - (extract_range_from_unary_expr_1): Likewise. - (adjust_range_with_scev): Likewise. - (masked_increment): Take and return wide_ints rather than double_ints. - (register_edge_assert_for_2): Use wide-int interfaces. - (check_array_ref): Likewise. - (search_for_addr_array): Likewise. - (maybe_set_nonzero_bits): Likewise. - (union_ranges): Pass an integer of the correct type instead of - using integer_one_node. - (intersect_ranges): Likewise. - (simplify_truth_ops_using_ranges): Likewise. - (simplify_bit_ops_using_ranges): Use wide-int interfaces. - (range_fits_type_p): Likewise. - (simplify_cond_using_ranges): Likewise. Take a signop rather than - a bool. - (simplify_conversion_using_ranges): Use wide-int interfaces. - (simplify_float_conversion_using_ranges): Likewise. - (vrp_finalize): Likewise. - * value-prof.c (gimple_divmod_fixed_value_transform): Likewise. - (gimple_stringops_transform): Likewise. - * varasm.c (decode_addr_const): Likewise. - (const_hash_1): Likewise. - (const_rtx_hash_1): Likewise - (output_constant): Likewise. - (array_size_for_constructor): Likewise. - (output_constructor_regular_field): Likewise. - (output_constructor_bitfield): Likewise. - * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT. - * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for - GENERATOR_FILEs. - * gencheck.c: Define BITS_PER_UNIT. - * wide-int.cc: New. - * wide-int.h: New. - * wide-int-print.cc: New. - * wide-int-print.h: New. - - -ada: - * gcc-interface/cuintp.c (UI_From_gnu): Use wide-int interfaces. - * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_SIGN. - (annotate_value): Use wide-int interfaces. - * gcc-interface/utils.c (get_nonnull_operand): Use tree_fits_uhwi_p. - - -c: - * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN. - (finish_enum): Use wide-int interfaces. - * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise. - * c-typeck.c (build_c_cast): Likewise. - (set_nonincremental_init_from_string): Likewise. - (c_tree_equal): Likewise. - - -c-family: - * c-ada-spec.c: Include wide-int.h. - (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Remove. - (dump_generic_ada_node): Use wide-int interfaces. - * c-common.c: Include wide-int-print.h. - (shorten_compare): Use wide-int interfaces and tree_int_cst_lt. - (pointer_int_sum): Use wide-int interfaces. - (c_common_nodes_and_builtins): Use make_int_cst. - (match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p. - (handle_alloc_size_attribute): Use wide-int interfaces. - (get_nonnull_operand): Likewise. - * c-format.c (get_constant): Use tree_fits_uhwi_p. - * c-lex.c: Include wide-int.h. - (narrowest_unsigned_type): Take a widest_int rather than two - HOST_WIDE_INTs. - (narrowest_signed_type): Likewise. - (interpret_integer): Update accordingly. Use wide-int interfaces. - (lex_charconst): Use wide-int interfaces. - * c-pretty-print.c: Include wide-int.h. - (pp_c_integer_constant): Use wide-int interfaces. - * cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of - INT_CST_LT_UNSIGNED. - - -cp: - * call.c: Include wide-int.h. - (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. - (convert_for_arg_passing): Likewise. - * class.c: Include wide-int.h. - (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT. - (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. - (include_empty_classes): Likewise - (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT. - * cvt.c: Include wide-int.h. - (ignore_overflows): Use wide_int_to_tree. - * decl.c: Include wide-int.h. - (check_array_designated_initializer): Use wide-int interfaces. - (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT. - (finish_enum_value_list): Use signop. - (build_enumerator): Use wide-int interfaces. - * init.c: Include wide-int.h. - (build_new_1): Use wide-int interfaces. - * mangle.c: Include wide-int.h. - (write_integer_cst): Use wide-int interfaces. - (write_array_type): Likewise. - * tree.c: Include wide-int.h. - (cp_tree_equal): Use tree_int_cst_equal. - * typeck2.c: Include wide-int.h. - (process_init_constructor_array): Use wide-int interfaces. - - -fortran: - * target-memory.c: Include wide-int.h. - (gfc_interpret_logical): Use wide-int interfaces. - * trans-array.c: Include wide-int.h. - (gfc_conv_array_initializer): Use wide-int interfaces. - * trans-const.c: Include wide-int.h. - (gfc_conv_string_init): Use wide-int interfaces. - (gfc_conv_mpz_to_tree): Likewise. - (gfc_conv_tree_to_mpz): Likewise. - * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p. - * trans-expr.c: Include wide-int.h. - (gfc_conv_cst_int_power): Use wide-int interfaces. - (gfc_string_to_single_character): Likewise. - (gfc_optimize_len_trim): Likewise. - * trans-intrinsic.c: Include wide-int.h. - (trans_this_image): Use wide-int interfaces. - (gfc_conv_intrinsic_bound): Likewise. - (conv_intrinsic_cobound): Likewise. - * trans-types.c (gfc_init_types): Likewise. - (gfc_get_array_type_bounds): Pass an integer of the correct type - instead of using integer_one_node. - - -go: - * go-gcc.cc (Gcc_backend::type_size): Use tree_fits_uhwi_p. - - -java: - * boehm.c: Include wide-int.h. - (mark_reference_fields): Use a wide_int mask. - (get_boehm_type_descriptor): Use wide-int interfaces. - * expr.c: Include wide-int.h. - (build_newarray): Remove bogus "== INTEGER_CST". - (expand_java_pushc): Use real_from_integer. - (build_field_ref): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. - * jcf-parse.c: Include wide-int.h. - (get_constant): Use wide-int interfaces. - - -lto: - * lto.c (compare_tree_sccs_1): Use wide-int interfaces. - * lto-lang.c (get_nonnull_operand): Likewise. - - -objc: - * objc-act.c: Include wide-int.h. - (objc_decl_method_attributes): Use wide-int interfaces. - - -testsuite: - * gcc.dg/tree-ssa/pr45427.c: Update to look for 0x0 instead of 0. diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fb57af5..57c5176 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,12 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * gcc-interface/cuintp.c (UI_From_gnu): Use wide-int interfaces. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_SIGN. + (annotate_value): Use wide-int interfaces. + * gcc-interface/utils.c (get_nonnull_operand): Use tree_fits_uhwi_p. + 2014-04-28 Richard Henderson * gcc-interface/Makefile.in: Support aarch64-linux. diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index e347b32..4673a16 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,29 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * c-ada-spec.c: Include wide-int.h. + (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Remove. + (dump_generic_ada_node): Use wide-int interfaces. + * c-common.c: Include wide-int-print.h. + (shorten_compare): Use wide-int interfaces and tree_int_cst_lt. + (pointer_int_sum): Use wide-int interfaces. + (c_common_nodes_and_builtins): Use make_int_cst. + (match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p. + (handle_alloc_size_attribute): Use wide-int interfaces. + (get_nonnull_operand): Likewise. + * c-format.c (get_constant): Use tree_fits_uhwi_p. + * c-lex.c: Include wide-int.h. + (narrowest_unsigned_type): Take a widest_int rather than two + HOST_WIDE_INTs. + (narrowest_signed_type): Likewise. + (interpret_integer): Update accordingly. Use wide-int interfaces. + (lex_charconst): Use wide-int interfaces. + * c-pretty-print.c: Include wide-int.h. + (pp_c_integer_constant): Use wide-int interfaces. + * cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of + INT_CST_LT_UNSIGNED. + 2014-05-06 Richard Biener * c-opts.c (c_common_post_options): For -freestanding, diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index e408fef..379b8d7 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,14 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN. + (finish_enum): Use wide-int interfaces. + * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise. + * c-typeck.c (build_c_cast): Likewise. + (set_nonincremental_init_from_string): Likewise. + (c_tree_equal): Likewise. + 2014-05-02 Marek Polacek PR c/25801 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 374cd0f..dce8df6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,32 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * call.c: Include wide-int.h. + (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. + (convert_for_arg_passing): Likewise. + * class.c: Include wide-int.h. + (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT. + (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. + (include_empty_classes): Likewise + (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT. + * cvt.c: Include wide-int.h. + (ignore_overflows): Use wide_int_to_tree. + * decl.c: Include wide-int.h. + (check_array_designated_initializer): Use wide-int interfaces. + (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT. + (finish_enum_value_list): Use signop. + (build_enumerator): Use wide-int interfaces. + * init.c: Include wide-int.h. + (build_new_1): Use wide-int interfaces. + * mangle.c: Include wide-int.h. + (write_integer_cst): Use wide-int interfaces. + (write_array_type): Likewise. + * tree.c: Include wide-int.h. + (cp_tree_equal): Use tree_int_cst_equal. + * typeck2.c: Include wide-int.h. + (process_init_constructor_array): Use wide-int interfaces. + 2014-05-03 Paolo Carlini PR c++/58582 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b991dc0..5e39b13 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,28 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * target-memory.c: Include wide-int.h. + (gfc_interpret_logical): Use wide-int interfaces. + * trans-array.c: Include wide-int.h. + (gfc_conv_array_initializer): Use wide-int interfaces. + * trans-const.c: Include wide-int.h. + (gfc_conv_string_init): Use wide-int interfaces. + (gfc_conv_mpz_to_tree): Likewise. + (gfc_conv_tree_to_mpz): Likewise. + * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p. + * trans-expr.c: Include wide-int.h. + (gfc_conv_cst_int_power): Use wide-int interfaces. + (gfc_string_to_single_character): Likewise. + (gfc_optimize_len_trim): Likewise. + * trans-intrinsic.c: Include wide-int.h. + (trans_this_image): Use wide-int interfaces. + (gfc_conv_intrinsic_bound): Likewise. + (conv_intrinsic_cobound): Likewise. + * trans-types.c (gfc_init_types): Likewise. + (gfc_get_array_type_bounds): Pass an integer of the correct type + instead of using integer_one_node. + 2014-04-30 Tobias Burnus * trans-decl.c (create_function_arglist): Add hidden coarray arguments diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog index b4267ab..ca9b4a2 100644 --- a/gcc/go/ChangeLog +++ b/gcc/go/ChangeLog @@ -1,3 +1,9 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * go-gcc.cc (Gcc_backend::type_size): Use tree_fits_uhwi_p. + 2014-05-06 Chris Manghane * go-c.h (go_create_gogo): Update declaration to add diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 7bdc8ca..93c634d 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,17 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * boehm.c: Include wide-int.h. + (mark_reference_fields): Use a wide_int mask. + (get_boehm_type_descriptor): Use wide-int interfaces. + * expr.c: Include wide-int.h. + (build_newarray): Remove bogus "== INTEGER_CST". + (expand_java_pushc): Use real_from_integer. + (build_field_ref): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. + * jcf-parse.c: Include wide-int.h. + (get_constant): Use wide-int interfaces. + 2014-01-02 Richard Sandiford Update copyright years diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index edb5bb9..038f8a9 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,10 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * lto.c (compare_tree_sccs_1): Use wide-int interfaces. + * lto-lang.c (get_nonnull_operand): Likewise. + 2014-04-28 Richard Biener PR middle-end/60092 diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 5d77411..bcc5b82 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,10 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * objc-act.c: Include wide-int.h. + (objc_decl_method_attributes): Use wide-int interfaces. + 2014-04-24 Dimitris Papavasiliou PR objc/56044 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a3dd81c..cdd4924 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * gcc.dg/tree-ssa/pr45427.c: Update to look for 0x0 instead of 0. + 2014-05-05 Jan Hubicka PR ipa/60965 -- cgit v1.1