1. 30 Aug, 2017 7 commits
    • Add a partial_subreg_p predicate · bd4288c0
      This patch adds a partial_subreg_p predicate to go alongside
      paradoxical_subreg_p.
      
      Like the paradoxical_subreg_p patch, this one replaces some tests that
      were based on GET_MODE_SIZE rather than GET_MODE_PRECISION.  In each
      case the change should be a no-op or an improvement.
      
      The regcprop.c patch prevents some replacements of the 82-bit RFmode
      with the 80-bit XFmode on ia64.  I don't understand the target details
      here particularly well, but from the way the modes are described in
      ia64-modes.def, it isn't valid to assume that an XFmode can carry an
      RFmode payload.  A comparison of the testsuite assembly output for one
      target per CPU showed no other differences.
      
      Some of the places changed here are tracking the widest access mode
      found for a register.  The series tries to standardise on:
      
        if (partial_subreg_p (widest_seen, new_mode))
          widest_seen = new_mode;
      
      rather than:
      
        if (paradoxical_subreg_p (new_mode, widest_seen))
          widest_seen = new_mode;
      
      Either would have been OK.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* rtl.h (partial_subreg_p): New function.
      	* caller-save.c (save_call_clobbered_regs): Use it.
      	* calls.c (expand_call): Likewise.
      	* combine.c (combinable_i3pat): Likewise.
      	(simplify_set): Likewise.
      	(make_extraction): Likewise.
      	(make_compound_operation_int): Likewise.
      	(gen_lowpart_or_truncate): Likewise.
      	(force_to_mode): Likewise.
      	(make_field_assignment): Likewise.
      	(reg_truncated_to_mode): Likewise.
      	(record_truncated_value): Likewise.
      	(move_deaths): Likewise.
      	* cse.c (record_jump_cond): Likewise.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_lookup_1): Likewise.
      	* expmed.c (extract_bit_field_using_extv): Likewise.
      	* function.c (assign_parm_setup_reg): Likewise.
      	* ifcvt.c (noce_convert_multiple_sets): Likewise.
      	* ira-build.c (create_insn_allocnos): Likewise.
      	* lra-coalesce.c (merge_pseudos): Likewise.
      	* lra-constraints.c (match_reload): Likewise.
      	(simplify_operand_subreg): Likewise.
      	(curr_insn_transform): Likewise.
      	* lra-lives.c (process_bb_lives): Likewise.
      	* lra.c (new_insn_reg): Likewise.
      	(lra_substitute_pseudo): Likewise.
      	* regcprop.c (mode_change_ok): Likewise.
      	(maybe_mode_change): Likewise.
      	(copyprop_hardreg_forward_1): Likewise.
      	* reload.c (push_reload): Likewise.
      	(find_reloads): Likewise.
      	(find_reloads_subreg_address): Likewise.
      	* reload1.c (alter_reg): Likewise.
      	(eliminate_regs_1): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251536
      Richard Sandiford committed
    • [51/77] Use opt_scalar_int_mode when iterating over integer modes · 59b51186
      This patch uses opt_scalar_int_mode rather than machine_mode
      when iterating over scalar_int_modes, in cases where that helps
      with future patches.  (Using machine_mode is still OK in places
      that don't really care about the mode being a scalar integer.)
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
      	* explow.c (hard_function_value): Likewise.
      	* expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
      	convert_to_mode call outside the loop.
      	* expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
      	for the mode iterator.  Require the mode specified by max_pieces
      	to exist.
      	(emit_block_move_via_movmem): Use opt_scalar_int_mode for the
      	mode iterator.
      	(copy_blkmode_to_reg): Likewise.
      	(set_storage_via_setmem): Likewise.
      	* optabs.c (prepare_cmp_insn): Likewise.
      	* rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
      	* stor-layout.c (finish_bitfield_representative): Likewise.
      
      gcc/fortran/
      	* trans-types.c (gfc_init_kinds): Use opt_scalar_int_mode for
      	the mode iterator.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251503
      Richard Sandiford committed
    • [35/77] Add uses of as_a <scalar_int_mode> · c7ad039d
      This patch adds asserting as_a <scalar_int_mode> conversions
      to contexts in which the input is known to be a scalar integer mode.
      
      In expand_divmod, op1 is always a scalar_int_mode if
      op1_is_constant (but might not be otherwise).
      
      In expand_binop, the patch reverses a < comparison in order to
      avoid splitting a long line.
      
      gcc/
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      	* cfgexpand.c (convert_debug_memory_address): Use
      	as_a <scalar_int_mode>.
      	* combine.c (expand_compound_operation): Likewise.
      	(make_extraction): Likewise.
      	(change_zero_ext): Likewise.
      	(simplify_comparison): Likewise.
      	* cse.c (cse_insn): Likewise.
      	* dwarf2out.c (minmax_loc_descriptor): Likewise.
      	(mem_loc_descriptor): Likewise.
      	(loc_descriptor): Likewise.
      	* expmed.c (init_expmed_one_mode): Likewise.
      	(synth_mult): Likewise.
      	(emit_store_flag_1): Likewise.
      	(expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
      	of a comparison with size.
      	* expr.c (expand_assignment): Use as_a <scalar_int_mode>.
      	(reduce_to_bit_field_precision): Likewise.
      	* function.c (expand_function_end): Likewise.
      	* internal-fn.c (expand_arith_overflow_result_store): Likewise.
      	* loop-doloop.c (doloop_modify): Likewise.
      	* optabs.c (expand_binop): Likewise.
      	(expand_unop): Likewise.
      	(expand_copysign_absneg): Likewise.
      	(prepare_cmp_insn): Likewise.
      	(maybe_legitimize_operand): Likewise.
      	* recog.c (const_scalar_int_operand): Likewise.
      	* rtlanal.c (get_address_mode): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_cond_clz_ctz): Likewise.
      	* tree-nested.c (get_nl_goto_field): Likewise.
      	* tree.c (build_vector_type_for_mode): Likewise.
      	* var-tracking.c (use_narrower_mode): Likewise.
      
      gcc/c-family/
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      	* c-common.c (c_common_type_for_mode): Use as_a <scalar_int_mode>.
      
      gcc/lto/
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      	* lto-lang.c (lto_type_for_mode): Use as_a <scalar_int_mode>.
      
      From-SVN: r251487
      Richard Sandiford committed
    • [28/77] Use is_a <scalar_int_mode> for miscellaneous types of test · 54651377
      This patch adds is_a <scalar_int_mode> checks to various places
      that were explicitly or implicitly restricted to integers already,
      in cases where adding an explicit is_a <scalar_int_mode> is useful
      for later patches.
      
      In simplify_if_then_else, the:
      
        GET_MODE (XEXP (XEXP (t, 0), N))
      
      expressions were equivalent to:
      
        GET_MODE (XEXP (t, 0))
      
      due to the type of operation.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
      	checks.
      	(try_combine): Likewise.
      	(simplify_if_then_else): Likewise.
      	* cse.c (cse_insn): Likewise.
      	* dwarf2out.c (mem_loc_descriptor): Likewise.
      	* emit-rtl.c (gen_lowpart_common): Likewise.
      	* simplify-rtx.c (simplify_truncation): Likewise.
      	(simplify_binary_operation_1): Likewise.
      	(simplify_const_relational_operation): Likewise.
      	(simplify_ternary_operation): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251480
      Richard Sandiford committed
    • [27/77] Use is_a <scalar_int_mode> before LOAD_EXTEND_OP · 095a49c8
      This patch adds is_a <scalar_int_mode> checks before load_extend_op/
      LOAD_EXTEND_OP calls, if that becomes useful for later patches.
      (load_extend_op will return UNKNOWN for any other type of mode.)
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
      	* reload.c (push_reload): Likewise.
      	(find_reloads): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251479
      Richard Sandiford committed
    • [20/77] Replace MODE_INT checks with is_int_mode · b4206259
      Replace checks of "GET_MODE_CLASS (...) == MODE_INT" with
      "is_int_mode (..., &var)", in cases where it becomes useful
      to refer to the mode as a scalar_int_mode.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* machmode.h (is_int_mode): New fuction.
      	* combine.c (find_split_point): Use it.
      	(combine_simplify_rtx): Likewise.
      	(simplify_if_then_else): Likewise.
      	(simplify_set): Likewise.
      	(simplify_shift_const_1): Likewise.
      	(simplify_comparison): Likewise.
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
      	* cse.c (notreg_cost): Likewise.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_lookup_1): Likewise.
      	* dojump.c (do_jump_1): Likewise.
      	(do_compare_rtx_and_jump): Likewise.
      	* dse.c (get_call_args): Likewise.
      	* dwarf2out.c (rtl_for_decl_init): Likewise.
      	(native_encode_initializer): Likewise.
      	* expmed.c (emit_store_flag_1): Likewise.
      	(emit_store_flag): Likewise.
      	* expr.c (convert_modes): Likewise.
      	(store_field): Likewise.
      	(expand_expr_real_1): Likewise.
      	* fold-const.c (fold_read_from_constant_string): Likewise.
      	* gimple-ssa-sprintf.c (get_format_string): Likewise.
      	* optabs-libfuncs.c (gen_int_libfunc): Likewise.
      	* optabs.c (expand_binop): Likewise.
      	(expand_unop): Likewise.
      	(expand_abs_nojump): Likewise.
      	(expand_one_cmpl_abs_nojump): Likewise.
      	* simplify-rtx.c (mode_signbit_p): Likewise.
      	(val_signbit_p): Likewise.
      	(val_signbit_known_set_p): Likewise.
      	(val_signbit_known_clear_p): Likewise.
      	(simplify_relational_operation_1): Likewise.
      	* tree.c (vector_type_mode): Likewise.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Use is_int_mode.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251472
      Richard Sandiford committed
    • [4/77] Add FOR_EACH iterators for modes · c94843d2
      The new iterators are:
      
      - FOR_EACH_MODE_IN_CLASS: iterate over all the modes in a mode class.
      
      - FOR_EACH_MODE_FROM: iterate over all the modes in a class,
        starting at a given mode.
      
      - FOR_EACH_WIDER_MODE: iterate over all the modes in a class,
        starting at the next widest mode after a given mode.
      
      - FOR_EACH_2XWIDER_MODE: same, but considering only modes that
        are two times wider than the previous mode.
      
      - FOR_EACH_MODE_UNTIL: iterate over all the modes in a class until
        a given mode is reached.
      
      - FOR_EACH_MODE: iterate over all the modes in a class between
        two given modes, inclusive of the first but not the second.
      
      These help with the stronger type checking added by later patches,
      since every new mode will be in the same class as the previous one.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
                  Alan Hayward  <alan.hayward@arm.com>
                  David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* machmode.h (mode_traits): New structure.
      	(get_narrowest_mode): New function.
      	(mode_iterator::start): Likewise.
      	(mode_iterator::iterate_p): Likewise.
      	(mode_iterator::get_wider): Likewise.
      	(mode_iterator::get_known_wider): Likewise.
      	(mode_iterator::get_2xwider): Likewise.
      	(FOR_EACH_MODE_IN_CLASS): New mode iterator.
      	(FOR_EACH_MODE): Likewise.
      	(FOR_EACH_MODE_FROM): Likewise.
      	(FOR_EACH_MODE_UNTIL): Likewise.
      	(FOR_EACH_WIDER_MODE): Likewise.
      	(FOR_EACH_2XWIDER_MODE): Likewise.
      	* builtins.c (expand_builtin_strlen): Use new mode iterators.
      	* combine.c (simplify_comparison): Likewise
      	* config/i386/i386.c (type_natural_mode): Likewise.
      	* cse.c (cse_insn): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* emit-rtl.c (init_derived_machine_modes): Likewise.
      	(init_emit_once): Likewise.
      	* explow.c (hard_function_value): Likewise.
      	* expmed.c (extract_fixed_bit_field_1): Likewise.
      	(extract_bit_field_1): Likewise.
      	(expand_divmod): Likewise.
      	(emit_store_flag_1): Likewise.
      	* expr.c (init_expr_target): Likewise.
      	(convert_move): Likewise.
      	(alignment_for_piecewise_move): Likewise.
      	(widest_int_mode_for_size): Likewise.
      	(emit_block_move_via_movmem): Likewise.
      	(copy_blkmode_to_reg): Likewise.
      	(set_storage_via_setmem): Likewise.
      	(compress_float_constant): Likewise.
      	* omp-low.c (omp_clause_aligned_alignment): Likewise.
      	* optabs-query.c (get_best_extraction_insn): Likewise.
      	* optabs.c (expand_binop): Likewise.
      	(expand_twoval_unop): Likewise.
      	(expand_twoval_binop): Likewise.
      	(widen_leading): Likewise.
      	(widen_bswap): Likewise.
      	(expand_parity): Likewise.
      	(expand_unop): Likewise.
      	(prepare_cmp_insn): Likewise.
      	(prepare_float_lib_cmp): Likewise.
      	(expand_float): Likewise.
      	(expand_fix): Likewise.
      	(expand_sfix_optab): Likewise.
      	* postreload.c (move2add_use_add2_insn): Likewise.
      	* reg-stack.c (reg_to_stack): Likewise.
      	* reginfo.c (choose_hard_reg_mode): Likewise.
      	* rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
      	* stor-layout.c (mode_for_size): Likewise.
      	(smallest_mode_for_size): Likewise.
      	(mode_for_vector): Likewise.
      	(finish_bitfield_representative): Likewise.
      	* tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
      	* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
      	* tree-vect-stmts.c (vectorizable_conversion): Likewise.
      	* var-tracking.c (prepare_call_arguments): Likewise.
      
      gcc/ada/
      	* gcc-interface/misc.c (fp_prec_to_size): Use new mode iterators.
      	(fp_size_to_prec): Likewise.
      
      gcc/c-family/
      	* c-common.c (c_common_fixed_point_type_for_size): Use new mode
      	iterators.
      	* c-cppbuiltin.c (c_cpp_builtins): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251455
      Richard Sandiford committed
  2. 25 Aug, 2017 1 commit
    • PR81747, ICE in operator[] · e2da9ffe
      	PR rtl-optimization/81747
      	* cse.c (cse_extended_basic_block): Don't attempt to record
      	equivalences for degenerate conditional branches that branch
      	to their fall-through.
      
      From-SVN: r251349
      Alan Modra committed
  3. 22 Aug, 2017 1 commit
    • Make more use of paradoxical_subreg_p · 03a95621
      This patch makes more use of the existing paradoxical_subreg_p
      predicate and also adds a version that operates on outer and
      inner modes.
      
      Some of the affected tests were based on GET_MODE_SIZE rather than
      GET_MODE_PRECISION and so the patch could change the result for modes
      that have the same size but different precisions.  I think in each
      case the change should be a no-op or more correct, since a mode with
      precision N bits can't be expected to hold all of a mode with precision
      M>N bits.
      
      The patch changes the branch taken in simplify_subreg for modes with
      equal precision, but the new form matches the commentary more closely.
      Both branches should be equally good in that situation.
      
      2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* rtl.h (paradoxical_subreg_p): Define inline, and add a version
      	that takes the outer and inner modes.
      	* doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
      	comparison as the canonical test for a paradoxical subreg.
      	* combine.c (simplify_set): Use paradoxical_subreg_p.
      	(make_extraction): Likewise.
      	(force_to_mode): Likewise.
      	(rtx_equal_for_field_assignment_p): Likewise.
      	(gen_lowpart_for_combine): Likewise.
      	(simplify_comparison): Likewise.
      	* cse.c (equiv_constant): Likewise.
      	* expmed.c (store_bit_field_1): Likewise.
      	* final.c (alter_subreg): Likewise.
      	* fwprop.c (propagate_rtx): Likewise.
      	(forward_propagate_subreg): Likewise.
      	* ira-conflicts.c (ira_build_conflicts): Likewise.
      	* lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
      	* lra-constraints.c (curr_insn_transform): Likewise.
      	(split_reg): Likewise.
      	* lra-eliminations.c (move_plus_up): Likewise.
      	(lra_eliminate_regs_1): Likewise.
      	* recog.c (general_operand): Likewise.
      	* ree.c (combine_reaching_defs): Likewise.
      	* reload.c (push_reload): Likewise.
      	(find_reloads): Likewise.
      	* reload1.c (elimination_effects): Likewise.
      	(compute_reload_subreg_offset): Likewise.
      	(choose_reload_regs): Likewise.
      	* rtlanal.c (subreg_lsb_1): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_subreg): Likewise.
      	* var-tracking.c (track_loc_p): Likewise.
      	* emit-rtl.c (byte_lowpart_offset): Likewise.
      	(paradoxical_subreg_p): Delete out-of-line definition.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251282
      Richard Sandiford committed
  4. 14 Mar, 2017 1 commit
    • alias.c (struct alias_set_entry): Pack properly. · 34e82342
      2017-03-14  Richard Biener  <rguenther@suse.de>
      
      	* alias.c (struct alias_set_entry): Pack properly.
      	* cfgloop.h (struct loop): Likewise.
      	* cse.c (struct set): Likewise.
      	* ipa-utils.c (struct searchc_env): Likewise.
      	* loop-invariant.c (struct invariant): Likewise.
      	* lra-remat.c (struct cand): Likewise.
      	* recog.c (struct change_t): Likewise.
      	* rtl.h (struct address_info): Likewise.
      	* symbol-summary.h (function_summary): Likewise.
      	* tree-loop-distribution.c (struct partition): Likewise.
      	* tree-object-size.c (struct object_size_info): Likewise.
      	* tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
      	* tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
      	* tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
      	* tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
      	* tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
      	* tree-vectorizer.h (struct _loop_vec_info): Likewise.
      	(struct _stmt_vec_info): Likewise.
      
      From-SVN: r246121
      Richard Biener committed
  5. 01 Jan, 2017 1 commit
  6. 15 Nov, 2016 1 commit
    • Add a load_extend_op wrapper · 3712c7a3
      LOAD_EXTEND_OP only applies to scalar integer modes that are narrower
      than a word.  However, callers weren't consistent about which of these
      checks they made beforehand, and also weren't consistent about whether
      "smaller" was based on (bit)size or precision (IMO it's the latter).
      This patch adds a wrapper to try to make the macro easier to use.
      
      LOAD_EXTEND_OP is often used to disable transformations that aren't
      beneficial when extends from memory are free, so being stricter about
      the check accidentally exposed more optimisation opportunities.
      
      "SUBREG_BYTE (...) == 0" and subreg_lowpart_p are implied by
      paradoxical_subreg_p, so the patch also removes some redundant tests.
      
      The patch doesn't change reload, since different checks could have
      unforeseen consequences.
      
      gcc/
      2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      	* rtl.h (load_extend_op): Declare.
      	* rtlanal.c (load_extend_op): New function.
      	(nonzero_bits1): Use it.
      	(num_sign_bit_copies1): Likewise.
      	* cse.c (cse_insn): Likewise.
      	* fold-const.c (fold_single_bit_test): Likewise.
      	(fold_unary_loc): Likewise.
      	* fwprop.c (free_load_extend): Likewise.
      	* postreload.c (reload_cse_simplify_set): Likewise.
      	(reload_cse_simplify_operands): Likewise.
      	* combine.c (try_combine): Likewise.
      	(simplify_set): Likewise.  Remove redundant SUBREG_BYTE and
      	subreg_lowpart_p checks.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r242444
      Richard Sandiford committed
  7. 04 Nov, 2016 1 commit
    • defaults.h (LOAD_EXTEND_OP): Define if not already defined. · 6a4cf418
      	* defaults.h (LOAD_EXTEND_OP): Define if not already defined.
      	* combine.c (LOAD_EXTEND_OP): Delete.
      	(simplify_comparison): Fix comment about LOAD_EXTEND_OP.
      	* cse.c (LOAD_EXTEND_OP): Delete.
      	* fold-const.c (LOAD_EXTEND_OP): Likewise.
      	* fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif.
      	* postreload.c (LOAD_EXTEND_OP): Delete.
      	* reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif.
      	Convert conditional compilation based on WORD_REGISTER_OPERATIONS.
      	(find_reloads): Likewise.
      	* reload1.c (eliminate_regs_1): Likewise.
      	* rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif.
      	(num_sign_bit_copies1): Likewise.
      
      From-SVN: r241855
      Eric Botcazou committed
  8. 21 Oct, 2016 1 commit
    • make LABEL_REF_LABEL a rtx_insn * · 04a121a7
      While changing LABEL_REF_LABEL it might as well become an inline
      function, so that its clearer what types are involved.  Unfortunately
      because it is still possible to use XEXP and related macros on a
      LABEL_REF rtx you can still set the field to be a non insn rtx.  The
      other unfortunate thing is that the generators actually create LABEL_REF
      rtx that refer to MATCH_x rtx, so there we actually need to use XEXP to
      bypass the checking this patch adds.
      
      gcc/ChangeLog:
      
      2016-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* rtl.h (label_ref_label): New function.
      	(set_label_ref_label): New function.
      	(LABEL_REF_LABEL): Delete.
      	* alias.c (rtx_equal_for_memref_p): Adjust.
      	* cfgbuild.c (make_edges): Likewise.
      	(purge_dead_tablejump_edges): Likewise.
      	* cfgexpand.c (convert_debug_memory_address): Likewise.
      	* cfgrtl.c (patch_jump_insn): Likewise.
      	* combine.c (distribute_notes): Likewise.
      	* cse.c (hash_rtx_cb): Likewise.
      	(exp_equiv_p): Likewise.
      	(fold_rtx): Likewise.
      	(check_for_label_ref): Likewise.
      	* cselib.c (rtx_equal_for_cselib_1): Likewise.
      	(cselib_hash_rtx): Likewise.
      	* emit-rtl.c (mark_label_nuses): Likewise.
      	* explow.c (convert_memory_address_addr_space_1): Likewise.
      	* final.c (output_asm_label): Likewise.
      	(output_addr_const): Likewise.
      	* gcse.c (add_label_notes): Likewise.
      	* genconfig.c (walk_insn_part): Likewise.
      	* genrecog.c (validate_pattern): Likewise.
      	* ifcvt.c (cond_exec_get_condition): Likewise.
      	(noce_emit_store_flag): Likewise.
      	(noce_get_alt_condition): Likewise.
      	(noce_get_condition): Likewise.
      	* jump.c (maybe_propagate_label_ref): Likewise.
      	(mark_jump_label_1): Likewise.
      	(redirect_exp_1): Likewise.
      	(rtx_renumbered_equal_p): Likewise.
      	* lra-constraints.c (operands_match_p): Likewise.
      	* print-rtl.c (print_value): Likewise.
      	* reload.c (find_reloads): Likewise.
      	* reload1.c (set_label_offsets): Likewise.
      	* reorg.c (get_branch_condition): Likewise.
      	* rtl-tests.c (test_uncond_jump): Likewise.
      	* rtl.c (rtx_equal_p_cb): Likewise.
      	(rtx_equal_p): Likewise.
      	* rtlanal.c (reg_mentioned_p): Likewise.
      	(rtx_referenced_p): Likewise.
      	(get_condition): Likewise.
      	* varasm.c (const_hash_1): Likewise.
      	(compare_constant): Likewise.
      	(const_rtx_hash_1): Likewise.
      	(output_constant_pool_1): Likewise.
      
      From-SVN: r241401
      Trevor Saunders committed
  9. 13 Oct, 2016 1 commit
    • Move MEMMODEL_* from coretypes.h to memmodel.h · 4d0cdd0c
      2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
          into ...
          * memmodel.h: This file.
          * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
            caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
            cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
            combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
            common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
            common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
            common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
            compare-elim.c, config/aarch64/aarch64-builtins.c,
            config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
            config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
            config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
            config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
            config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
            config/darwin.c, config/epiphany/epiphany.c,
            config/epiphany/mode-switch-use.c,
            config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
            config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
            config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
            config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
            config/m68k/m68k.c, config/mcore/mcore.c,
            config/microblaze/microblaze.c, config/mmix/mmix.c,
            config/mn10300/mn10300.c, config/moxie/moxie.c,
            config/msp430/msp430.c, config/nds32/nds32-cost.c,
            config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
            config/nds32/nds32-memory-manipulation.c,
            config/nds32/nds32-predicates.c, config/nds32/nds32.c,
            config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
            config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
            config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
            config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
            config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
            config/stormy16/stormy16.c, config/tilegx/tilegx.c,
            config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
            config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
            coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
            df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
            dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
            expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
            ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
            ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
            ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
            loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
            lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
            lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
            lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
            postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
            recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
            reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
            rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
            sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
            stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
            targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
            tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
            tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
            tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
            var-tracking.c, varasm.c: Include memmodel.h.
          * genattrtab.c (write_header): Include memmodel.h in generated file.
          * genautomata.c (main): Likewise.
          * gengtype.c (open_base_files): Likewise.
          * genopinit.c (main): Likewise.
          * genconditions.c (write_header): Include memmodel.h earlier in
          generated file.
          * genemit.c (main): Likewise.
          * genoutput.c (output_prologue): Likewise.
          * genpeep.c (main): Likewise.
          * genpreds.c (write_insn_preds_c): Likewise.
          * genrecog.c (write_header): Likewise.
          * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
      
          gcc/ada/
          * gcc-interface/utils2.c: Include memmodel.h.
      
          gcc/c-family/
          * c-cppbuiltin.c: Include memmodel.h.
          * c-opts.c: Likewise.
          * c-pragma.c: Likewise.
          * c-warn.c: Likewise.
      
          gcc/c/
          * c-typeck.c: Include memmodel.h.
      
          gcc/cp/
          * decl2.c: Include memmodel.h.
          * rtti.c: Likewise.
      
          gcc/fortran/
          * trans-intrinsic.c: Include memmodel.h.
      
          gcc/go/
          * go-backend.c: Include memmodel.h.
      
          libgcc/
          * libgcov-profiler.c: Replace MEMMODEL_* macros by their __ATOMIC_*
          equivalent.
          * config/tilepro/atomic.c: Likewise and stop casting model to
          enum memmodel.
      
      From-SVN: r241121
      Thomas Preud'homme committed
  10. 22 Sep, 2016 1 commit
    • make next/prev _nonnote_insn take rtx_insn * · c9b0a227
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (next_nonnote_insn): Change argument type to
      	rtx_insn *.
      	(prev_nonnote_insn): Likewise.
      	* jump.c (reversed_comparison_code_parts): Likewise.
      	(reversed_comparison): Likewise.
      	* rtl.h: Adjust prototypes.
      	* config/arc/arc.md: Adjust.
      	* cse.c (find_comparison_args): Likewise.
      	* reorg.c (redundant_insn): Change return type to rtx_insn *.
      	(fix_reg_dead_note): Change argument type to rtx_insn *.
      	(delete_prior_computation): Likewise.
      	(delete_computation): Likewise.
      	(fill_slots_from_thread): Adjust.
      	(relax_delay_slots): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_relational_operation_1): Likewise.
      	(simplify_ternary_operation): Likewise.
      
      From-SVN: r240357
      Trevor Saunders committed
  11. 16 Sep, 2016 1 commit
    • Add inline functions for various bitwise operations. · 146ec50f
      	* hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
      	New.
      	* hwint.c (exact_log2): Use pow2p_hwi.
      	(ctz_hwi, ffs_hwi): Use least_bit_hwi.
      	* alias.c (memrefs_conflict_p): Use pow2_or_zerop.
      	* builtins.c (get_object_alignment_2, get_object_alignment)
      	(get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
      	least_bit_hwi.
      	* calls.c (compute_argument_addresses, store_one_arg): Use
      	least_bit_hwi.
      	* cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
      	* combine.c (force_to_mode): Use least_bit_hwi.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
      	Use least_bit_hwi.
      	* expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
      	(init_expmed_one_conv): Use pow2p_hwi.
      	* fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
      	(fold_binary_loc): Use pow2p_hwi.
      	* function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
      	* gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
      	* hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
      	Use least_bit_hwi.
      	* ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
      	* ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
      	* omp-low.c (oacc_loop_fixed_partitions)
      	(oacc_loop_auto_partitions): Use least_bit_hwi.
      	* rtlanal.c (nonzero_bits1): Use ctz_or_zero.
      	* stor-layout.c (place_field): Use least_bit_hwi.
      	* tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
      	* tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
      	* tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
      	* tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
      	* tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
      	* tree-vect-data-refs.c (vect_analyze_group_access_1)
      	(vect_grouped_store_supported, vect_grouped_load_supported)
      	(vect_permute_load_chain, vect_shift_permute_load_chain)
      	(vect_transform_grouped_load): Use pow2p_hwi.
      	* tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
      	* tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Use
      	least_bit_hwi.
      	* tsan.c (instrument_expr): Use least_bit_hwi.
      	* var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
      
      From-SVN: r240194
      Jason Merrill committed
  12. 04 Aug, 2016 1 commit
  13. 20 Jul, 2016 1 commit
    • cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0. · dd4786fe
      	* cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
      	* combine.c: Use HOST_WIDE_INT_M1U instead of
      	~(unsigned HOST_WIDE_INT) 0.
      	* double-int.h: Ditto.
      	* dse.c: Ditto.
      	* dwarf2asm.c:Ditto.
      	* expmed.c: Ditto.
      	* genmodes.c: Ditto.
      	* match.pd: Ditto.
      	* read-rtl.c: Ditto.
      	* tree-ssa-loop-ivopts.c: Ditto.
      	* tree-ssa-loop-prefetch.c: Ditto.
      	* tree-vect-generic.c: Ditto.
      	* tree-vect-patterns.c: Ditto.
      	* tree.c: Ditto.
      
      From-SVN: r238529
      Uros Bizjak committed
  14. 19 Jul, 2016 1 commit
    • builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1... · fecfbfa4
      	* builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
      	HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
      	HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
      	HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
      	* combine.c: Ditto.
      	* cse.c: Ditto.
      	* dojump.c: Ditto.
      	* double-int.c: Ditto.
      	* dse.c: Ditto.
      	* dwarf2out.c: Ditto.
      	* expmed.c: Ditto.
      	* expr.c: Ditto.
      	* fold-const.c: Ditto.
      	* function.c: Ditto.
      	* fwprop.c: Ditto.
      	* genmodes.c: Ditto.
      	* hwint.c: Ditto.
      	* hwint.h: Ditto.
      	* ifcvt.c: Ditto.
      	* loop-doloop.c: Ditto.
      	* loop-invariant.c: Ditto.
      	* loop-iv.c: Ditto.
      	* match.pd: Ditto.
      	* optabs.c: Ditto.
      	* real.c: Ditto.
      	* reload.c: Ditto.
      	* rtlanal.c: Ditto.
      	* simplify-rtx.c: Ditto.
      	* stor-layout.c: Ditto.
      	* toplev.c: Ditto.
      	* tree-ssa-loop-ivopts.c: Ditto.
      	* tree-vect-generic.c: Ditto.
      	* tree-vect-patterns.c: Ditto.
      	* tree.c: Ditto.
      	* tree.h: Ditto.
      	* ubsan.c: Ditto.
      	* varasm.c: Ditto.
      	* wide-int-print.cc: Ditto.
      	* wide-int.cc: Ditto.
      	* wide-int.h: Ditto.
      
      From-SVN: r238481
      Uros Bizjak committed
  15. 21 Jun, 2016 1 commit
  16. 16 Jun, 2016 1 commit
  17. 19 May, 2016 1 commit
    • cse.c (cse_main): Free dominance info. · afb72432
      gcc/
      
      	* cse.c (cse_main): Free dominance info.
      	(rest_of_handle_cse): Don't free dominance info.
      	(rest_of_handle_cse2): Likewise.
      	(rest_of_handle_cse_after_global_opts): Likewise.
      
      gcc/testsuite/
      
      	* gcc.dg/pr71148.c: New test.
      
      From-SVN: r236460
      Ilya Enkovich committed
  18. 13 May, 2016 1 commit
  19. 11 May, 2016 1 commit
    • re PR middle-end/70807 (fwprop pass ICE with incoming CDI_DOMINATORS) · 98ccd1d7
      gcc/
      
      	PR middle-end/70807
      	* cfgrtl.h (delete_insn_and_edges): Now return bool.
      	* cfgrtl.c (delete_insn_and_edges): Likewise.
      	* config/i386/i386.c (convert_scalars_to_vector): Remove
      	redundant code.
      	* cse.c (cse_insn): Compute cse_cfg_altered.
      	(delete_trivially_dead_insns): Likewise.
      	(cse_cc_succs): Likewise.
      	(rest_of_handle_cse): Free dominance info if required.
      	(rest_of_handle_cse2): Likewise.
      	(rest_of_handle_cse_after_global_opts): Likewise.
      
      gcc/testsuite/
      
      	PR middle-end/70807
      	* gcc.dg/pr70807.c: New test.
      
      From-SVN: r236114
      Ilya Enkovich committed
  20. 02 May, 2016 1 commit
  21. 04 Feb, 2016 1 commit
  22. 04 Jan, 2016 1 commit
  23. 18 Dec, 2015 1 commit
  24. 30 Oct, 2015 1 commit
    • alias.c: Remove unused headers. · 68a750e9
      2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
      	
      	* alias.c: Remove unused headers.
      	* asan.c: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* auto-profile.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* bitmap.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* ccmp.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cilk-common.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* compare-elim.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* cppbuiltin.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* data-streamer.c: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* debug.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dojump.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* dse.c: Likewise.
      	* dumpfile.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* final.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* generic-match-head.c: Likewise.
      	* ggc-common.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-match-head.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* gimplify.c: Likewise.
      	* godump.c: Likewise.
      	* graph.c: Likewise.
      	* graphds.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* ifcvt.c: Likewise.
      	* init-regs.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-ref.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-coalesce.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* lra-spills.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* optabs.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* real.c: Likewise.
      	* realmpfr.c: Likewise.
      	* recog.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regrename.c: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl-chkp.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* rtlhooks.c: Likewise.
      	* sanopt.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched.c: Likewise.
      	* sese.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* statistics.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* symtab.c: Likewise.
      	* target-globals.c: Likewise.
      	* targhooks.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chkp-opt.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-diagnostic.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-scopedtables.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vmsdbgout.c: Likewise.
      	* vtable-verify.c: Likewise.
      	* web.c: Likewise.
      	* wide-int-print.cc: Likewise.
      	* wide-int.cc: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r229585
      Andrew MacLeod committed
  25. 29 Oct, 2015 1 commit
    • alias.c: Reorder #include statements and remove duplicates. · 957060b5
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* alias.c: Reorder #include statements and remove duplicates.
      	* asan.c: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* auto-profile.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* ccmp.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cilk-common.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* compare-elim.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* cppbuiltin.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* data-streamer.c: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* debug.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dojump.c: Likewise.
      	* dominance.c: Likewise.
      	* double-int.c: Likewise.
      	* dse.c: Likewise.
      	* dumpfile.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* final.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* generic-match-head.c: Likewise.
      	* ggc-common.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-match-head.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* gimplify.c: Likewise.
      	* godump.c: Likewise.
      	* graph.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-ref.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-coalesce.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* lra-spills.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* real.c: Likewise.
      	* realmpfr.c: Likewise.
      	* recog.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regrename.c: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl-chkp.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* rtlhooks.c: Likewise.
      	* sanopt.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sese.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* statistics.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* symtab.c: Likewise.
      	* target-globals.c: Likewise.
      	* targhooks.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chkp-opt.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-diagnostic.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-scopedtables.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vtable-verify.c: Likewise.
      	* web.c: Likewise.
      	* wide-int-print.cc: Likewise.
      	* wide-int.cc: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r229526
      Andrew MacLeod committed
  26. 05 Oct, 2015 1 commit
    • Remove remaining uses of CONST_DOUBLE_FROM_REAL_VALUE · 555affd7
      This patch replaces all uses of CONST_DOUBLE_FROM_REAL_VALUE
      with the already-existing const_double_from_real_value.
      
      Bootstrapped & regression-tested on x86_64-linux-gnu.  Also tested by
      building one target per CPU directory and checking that there were
      no new warnings and no changes in testsuite output at -O2.
      
      gcc/
      	* real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
      	instead of CONST_DOUBLE_FROM_REAL_VALUE.
      	(CONST_DOUBLE_FROM_REAL_VALUE): Delete.
      	* config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
      	instead of CONST_DOUBLE_FROM_REAL_VALUE.
      	* config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
      	* config/i386/i386.c (standard_80387_constant_rtx): Likewise.
      	(ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
      	(ix86_emit_swsqrtsf): Likewise.
      	* config/ia64/ia64.c (ia64_expand_builtin): Likewise.
      	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
      	(fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
      	* config/pa/pa.c (pa_expand_builtin): Likewise.
      	* config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
      	(rs6000_scale_v2df): Likewise.
      	* config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
      	* config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
      	(fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
      	* config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
      	(vec_ctul): Likewise.
      	* config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
      	* config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
      	* config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
      	* cse.c (fold_rtx): Likewise.
      	* emit-rtl.c (immed_double_const): Likewise (in comments).
      	(init_emit_once): Likewise.
      	* expr.c (compress_float_constant, expand_expr_real_1)
      	(const_vector_from_tree): Likewise.
      	* optabs.c (expand_float, expand_fix): Likewise.
      	* reg-stack.c (reg_to_stack): Likewise.
      	* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
      	(simplify_const_unary_operation, simplify_binary_operation_1)
      	(simplify_const_binary_operation, simplify_relational_operation)
      	(simplify_immed_subreg): Likewise.
      
      From-SVN: r228477
      Richard Sandiford committed
  27. 05 Aug, 2015 1 commit
  28. 24 Jul, 2015 2 commits
  29. 13 Jul, 2015 1 commit
  30. 12 Jul, 2015 1 commit
  31. 10 Jul, 2015 1 commit
    • gimple-predict.h: New file. · 9fdcd34e
      2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
      
      	* gimple-predict.h: New file. 
      	(gimple_predict_predictor, gimple_predict_set_predictor,
      	gimple_predict_outcome, gimple_predict_set_outcome,
      	gimple_build_predict): Relocate here.
      	* gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
      	gimple_predict_outcome, gimple_predict_set_outcome): Move to 
      	gimple-predict.h.
      	* gimple.c (gimple_build_predict): Move to gimple-predict.h
      	* basic-block.h: Don't include cfghooks.h.
      	* backend.h: Don't include predict.h.
      	* cfghooks.h: Include predict.h.
      	* gimple-pretty-print.c: Include gimple-predict.h.
      	* gimplify.c: Likwise.
      	* predict.c: Adjust includes.
      	* tree-inline.c: Likewise.
      	* asan.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* auto-profile.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfg.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* dce.c: Likewise.
      	* dojump.c: Likewise.
      	* dse.c: Likewise.
      	* except.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcc-plugin.h: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genemit.c: Likewise.
      	* gengtype.c: Likewise.
      	* genopinit.c: Likewise.
      	* genoutput.c: Likewise.
      	* genpreds.c: Likewise.
      	* genrecog.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* graph.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-isl-ast-to-gimple.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* ifcvt.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-lives.c: Likewise.
      	* jump.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra.c: Likewise.
      	* lra-coalesce.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* passes.c: Likewise.
      	* postreload.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* profile.c: Likewise.
      	* recog.c: Likewise.
      	* regstat.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sese.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stmt.c: Likewise.
      	* store-motion.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* varasm.c: Likewise.
      	* var-tracking.c: Likewise.
      	* config/aarch64/aarch64-builtins.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/cr16/cr16.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/darwin-c.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/epiphany/mode-switch-use.c: Likewise.
      	* config/epiphany/resolve-sw-modes.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/ft32/ft32.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/msp430/msp430.c: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nds32/nds32-cost.c: Likewise.
      	* config/nds32/nds32-fp-as-gp.c: Likewise.
      	* config/nds32/nds32-intrinsic.c: Likewise.
      	* config/nds32/nds32-isr.c: Likewise.
      	* config/nds32/nds32-md-auxiliary.c: Likewise.
      	* config/nds32/nds32-memory-manipulation.c: Likewise.
      	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
      	* config/nds32/nds32-predicates.c: Likewise.
      	* config/nios2/nios2.c: Likewise.
      	* config/nvptx/nvptx.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/sh-mem.cc: Likewise.
      	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
      	* config/sh/sh_treg_combine.cc: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/visium/visium.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      
      java
      2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
      
      	* java-gimplify.c: Include cfghooks.h rather than predict.h.
      
      lto
      2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
      
      	* lto.c: Include cfghooks.h rather than predict.h.
      
      From-SVN: r225668
      Andrew MacLeod committed
  32. 09 Jul, 2015 1 commit
    • reduce conditional compilation for LOAD_EXTEND_OP · f1657f05
      Provide a default in files where that is possible, so that everything
      else there can be unconditionally compiled.  However rtlanal.c and
      reload.c do tricky things that break providing a global default, so we
      can't do that yet.
      
      gcc/ChangeLog:
      
      2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
      	defined.
      	(simplify_set): Likewise.
      	* cse.c (cse_insn): Likewise.
      	* fold-const.c (fold_single_bit_test): Likewise.
      	(fold_unary_loc): Likewise.
      	* postreload.c (reload_cse_simplify_set): Likewise.
      	(reload_cse_simplify_operands): Likewise.
      
      From-SVN: r225591
      Trevor Saunders committed
  33. 08 Jul, 2015 1 commit
    • target.def (rtx_costs): Remove "code" param, add "mode". · e548c9df
      	* target.def (rtx_costs): Remove "code" param, add "mode".
      	* rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
      	(set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
      	(set_rtx_cost, get_full_set_rtx_cost): Move later in file.
      	* rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
      	call.  Track mode when given in rtx.
      	(get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
      	(default_address_cost): Pass Pmode to rtx_cost.
      	(insn_rtx_cost): Pass dest mode of set to set_src_cost.
      	* cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
      	with NULL set.
      	* cse.c (COST, COST_IN): Add MODE param.  Update all uses.
      	(notreg_cost): Add mode param.  Use it.
      	* gcse.c (want_to_gcse_p): Delete forward declaration.  Add
      	mode param and pass to set_src_cost.  Update all calls.
      	(hash_scan_set): Formatting.
      	* hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
      	(hook_bool_rtx_mode_int_int_intp_bool_false): New function.
      	* hooks.h: Ditto.
      	* expmed.c (init_expmed_one_conv, init_expmed_one_mode,
      	init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
      	emit_store_flag): Update set_src_cost and rtx_cost calls.
      	* auto-inc-dec.c (attempt_change): Likewise.
      	* calls.c (precompute_register_parameters): Likewise.
      	* combine.c (expand_compound_operation, make_extraction,
      	force_to_mode, distribute_and_simplify_rtx): Likewise.
      	* dojump.c (prefer_and_bit_test): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* expr.c (compress_float_constant): Likewise.
      	* fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
      	* ifcvt.c (noce_try_sign_mask): Likewise.
      	* loop-doloop.c (doloop_optimize): Likewise.
      	* loop-invariant.c (create_new_invariant): Likewise.
      	* lower-subreg.c (shift_cost, compute_costs): Likewise.
      	* optabs.c (avoid_expensive_constant, prepare_cmp_insn,
      	lshift_cheap_p): Likewise.
      	* postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
      	try_replace_in_use, reload_cse_move2add): Likewise.
      	* reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
      	Likewise.
      	* simplify-rtx.c (simplify_binary_operation_1): Likewise.
      	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
      	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
      	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
      	add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
      	to rtx_cost calls.
      	* config/alpha/alpha.c (alpha_rtx_costs): Likewise.
      	* config/arc/arc.c (arc_rtx_costs): Likewise.
      	* config/arm/arm.c (arm_rtx_costs): Likewise.
      	* config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
      	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
      	* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
      	* config/cris/cris.c (cris_rtx_costs): Likewise.
      	* config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
      	* config/frv/frv.c (frv_rtx_costs): Likewise.
      	* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
      	* config/i386/i386.c (ix86_rtx_costs): Likewise.
      	* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
      	* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
      	* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
      	* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
      	* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
      	* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
      	* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
      	* config/mep/mep.c (mep_rtx_cost): Likewise.
      	* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
      	* config/mips/mips.c (mips_rtx_costs): Likewise.
      	* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
      	* config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
      	* config/msp430/msp430.c (msp430_rtx_costs): Likewise.
      	* config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
      	* config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
      	* config/nds32/nds32.c (nds32_rtx_costs): Likewise.
      	* config/nios2/nios2.c (nios2_rtx_costs): Likewise.
      	* config/pa/pa.c (hppa_rtx_costs): Likewise.
      	* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
      	* config/rl78/rl78.c (rl78_rtx_costs): Likewise.
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
      	* config/s390/s390.c (s390_rtx_costs): Likewise.
      	* config/sh/sh.c (sh_rtx_costs): Likewise.
      	* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
      	* config/spu/spu.c (spu_rtx_costs): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
      	* config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
      	* config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
      	* config/v850/v850.c (v850_rtx_costs): Likewise.
      	* config/vax/vax.c (vax_rtx_costs): Likewise.
      	* config/visium/visium.c (visium_rtx_costs): Likewise.
      	* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
      	* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
      	"code" param, and pass as outer_code to first rtx_cost call.  Pass
      	mode to rtx_cost calls.
      	(aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
      	calls.
      	(aarch64_rtx_costs_wrapper): Update.
      	* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
      	arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
      	rtx_cost calls.
      	* config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
      	and rtx_cost calls.
      	(avr_operand_rtx_cost): Similarly.
      	(avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
      	for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
      	* config/mips/mips.c (mips_stack_address_p): Comment typo.
      	(mips_binary_cost): Update rtx_cost and set_src_cost calls.
      	(mips_rtx_costs): Use GET_MODE (x) to detect const_int.
      	* config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
      	rtx_cost.
      	(mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
      	* config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
      	* config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r225532
      Alan Modra committed