1. 17 Apr, 2018 1 commit
  2. 26 Jan, 2018 1 commit
    • re PR rtl-optimization/84003 (FAIL: g++.dg/torture/pr77745.C with noinline foo) · d7e1f499
      2018-01-26  Richard Biener  <rguenther@suse.de>
      
      	PR rtl-optimization/84003
      	* dse.c (record_store): Only record redundant stores when
      	the earlier store aliases at least all accesses the later one does.
      
      	* g++.dg/torture/pr77745.C: Mark foo noinline to trigger
      	latent bug in DSE if NOINLINE is appropriately defined.
      	* g++.dg/torture/pr77745-2.C: New testcase including pr77745.C
      	and defining NOINLINE.
      
      From-SVN: r257091
      Richard Biener committed
  3. 03 Jan, 2018 2 commits
    • poly_int: GET_MODE_BITSIZE · 73a699ae
      This patch changes GET_MODE_BITSIZE from an unsigned short
      to a poly_uint16.
      
      2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* machmode.h (mode_to_bits): Return a poly_uint16 rather than an
      	unsigned short.
      	(GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
      	or if measurement_type is polynomial.
      	* calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial.
      	* combine.c (make_extraction): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* dwarf2out.c (mem_loc_descriptor): Likewise.
      	* expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise.
      	(extract_bit_field, extract_low_bits): Likewise.
      	* expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise.
      	(optimize_bitfield_assignment_op, expand_assignment): Likewise.
      	(store_expr_with_bounds, store_field, expand_expr_real_1): Likewise.
      	* fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise.
      	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
      	* reload.c (find_reloads): Likewise.
      	* reload1.c (alter_reg): Likewise.
      	* stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise.
      	* targhooks.c (default_secondary_memory_needed_mode): Likewise.
      	* tree-if-conv.c (predicate_mem_writes): Likewise.
      	* tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
      	* tree-vect-patterns.c (adjust_bool_pattern): Likewise.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
      	* valtrack.c (dead_debug_insert_temp): Likewise.
      	* varasm.c (mergeable_constant_section): Likewise.
      	* config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>.
      
      gcc/ada/
      	* gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE
      	as polynomial.
      
      gcc/c-family/
      	* c-ubsan.c (ubsan_instrument_shift): Treat GET_MODE_BITSIZE
      	as polynomial.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r256200
      Richard Sandiford committed
    • Update copyright years. · 85ec4feb
      From-SVN: r256169
      Jakub Jelinek committed
  4. 20 Dec, 2017 4 commits
    • poly_int: SUBREG_BYTE · 91914e56
      This patch changes SUBREG_BYTE from an int to a poly_int.
      Since valid SUBREG_BYTEs must be contained within the mode of the
      SUBREG_REG, the required range is the same as for GET_MODE_SIZE,
      i.e. unsigned short.  The patch therefore uses poly_uint16(_pod)
      for the SUBREG_BYTE.
      
      Using poly_uint16_pod rtx fields requires a new field code ('p').
      Since there are no other uses of 'p' besides SUBREG_BYTE, the patch
      doesn't add an XPOLY or whatever; all uses should go via SUBREG_BYTE
      instead.
      
      The patch doesn't bother implementing 'p' support for legacy
      define_peepholes, since none of the remaining ones have subregs
      in their patterns.
      
      As it happened, the rtl documentation used SUBREG as an example of a
      code with mixed field types, accessed via XEXP (x, 0) and XINT (x, 1).
      Since there's no direct replacement for XINT, and since people should
      never use it even if there were, the patch changes the example to use
      INT_LIST instead.
      
      The patch also changes subreg-related helper functions so that they too
      take and return polynomial offsets.  This makes the patch quite big, but
      it's mostly mechanical.  The patch generally sticks to existing choices
      wrt signedness.
      
      2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
      	'p' format code.  Use INT_LIST rather than SUBREG as the example of
      	a code with an XINT and an XEXP.  Remove the implication that
      	accessing an rtx field using XINT is expected to work.
      	* rtl.def (SUBREG): Change format from "ei" to "ep".
      	* rtl.h (rtunion::rt_subreg): New field.
      	(XCSUBREG): New macro.
      	(SUBREG_BYTE): Use it.
      	(subreg_shape): Change offset from an unsigned int to a poly_uint16.
      	Update constructor accordingly.
      	(subreg_shape::operator ==): Update accordingly.
      	(subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
      	than an unsigned int.
      	(subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
      	a poly_uint64 rather than an unsigned int.
      	(subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
      	than an unsigned int.
      	(subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
      	(subreg_size_highpart_offset): Return a poly_uint64 rather than
      	an unsigned int.  Take the sizes as poly_uint64s.
      	(subreg_offset_from_lsb): Return a poly_uint64 rather than
      	an unsigned int.  Take the shift as a poly_uint64 rather than
      	an unsigned int.
      	(subreg_regno_offset, subreg_offset_representable_p): Take the offset
      	as a poly_uint64 rather than an unsigned int.
      	(simplify_subreg_regno): Likewise.
      	(byte_lowpart_offset): Return the memory offset as a poly_int64
      	rather than an int.
      	(subreg_memory_offset): Likewise.  Take the subreg offset as a
      	poly_uint64 rather than an unsigned int.
      	(simplify_subreg, simplify_gen_subreg, subreg_get_info)
      	(gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
      	poly_uint64 rather than an unsigned int.
      	* rtl.c (rtx_format): Describe 'p' in comment.
      	(copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
      	* emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
      	offset as a poly_uint64 rather than an unsigned int.
      	(byte_lowpart_offset): Return the memory offset as a poly_int64
      	rather than an int.
      	(subreg_memory_offset): Likewise.  Take the subreg offset as a
      	poly_uint64 rather than an unsigned int.
      	(subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
      	mode sizes as poly_uint64s rather than unsigned ints.  Return a
      	poly_uint64 rather than an unsigned int.
      	(subreg_lowpart_p): Treat subreg offsets as poly_ints.
      	(copy_insn_1): Handle 'p'.
      	* rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
      	(subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
      	an unsigned int.  Return the shift in the same way.
      	(subreg_lsb): Return the shift as a poly_uint64 rather than an
      	unsigned int.
      	(subreg_size_offset_from_lsb): Take the sizes and shift as
      	poly_uint64s rather than unsigned ints.  Return the offset as
      	a poly_uint64.
      	(subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
      	(simplify_subreg_regno): Take the offset as a poly_uint64 rather than
      	an unsigned int.
      	* rtlhash.c (add_rtx): Handle 'p'.
      	* genemit.c (gen_exp): Likewise.
      	* gengenrtl.c (type_from_format, gendef): Likewise.
      	* gensupport.c (subst_pattern_match, get_alternatives_number)
      	(collect_insn_data, alter_predicate_for_insn, alter_constraints)
      	(subst_dup): Likewise.
      	* gengtype.c (adjust_field_rtx_def): Likewise.
      	* genrecog.c (find_operand, find_matching_operand, validate_pattern)
      	(match_pattern_2): Likewise.
      	(rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
      	(rtx_test::subreg_field): New function.
      	(operator ==, safe_to_hoist_p, transition_parameter_type)
      	(print_nonbool_test, print_test): Handle SUBREG_FIELD.
      	* genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
      	* genpeep.c (match_rtx): Likewise.
      	* print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
      	(rtx_writer::print_rtx_operand): Handle 'p'.
      	(print_value): Handle SUBREG.
      	* read-rtl.c (apply_int_iterator): Likewise.
      	(rtx_reader::read_rtx_operand): Handle 'p'.
      	* alias.c (rtx_equal_for_memref_p): Likewise.
      	* cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
      	* caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
      	as poly_ints.
      	* calls.c (expand_call): Likewise.
      	* combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
      	(make_extraction, gen_lowpart_for_combine): Likewise.
      	* loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
      	Likewise.
      	* cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
      	rather than an unsigned int.  Treat subreg offsets as poly_ints.
      	(exp_equiv_p): Handle 'p'.
      	(hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
      	(equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
      	* dse.c (find_shift_sequence): Likewise.
      	* dwarf2out.c (rtl_for_decl_location): Likewise.
      	* expmed.c (extract_low_bits): Likewise.
      	* expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
      	(expand_expr_real_2): Likewise.
      	* final.c (alter_subreg): Likewise.
      	(leaf_renumber_regs_insn): Handle 'p'.
      	* function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
      	Treat subreg offsets as poly_ints.
      	* fwprop.c (forward_propagate_and_simplify): Likewise.
      	* ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
      	* ira.c (get_subreg_tracking_sizes): Likewise.
      	* ira-conflicts.c (go_through_subreg): Likewise.
      	* ira-lives.c (process_single_reg_class_operands): Likewise.
      	* jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
      	* lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
      	as a poly_uint64 rather than an unsigned int.
      	(simplify_gen_subreg_concatn, resolve_simple_move): Treat
      	subreg offsets as poly_ints.
      	* lra-constraints.c (operands_match_p): Handle 'p'.
      	(match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
      	* lra-spills.c (assign_mem_slot): Likewise.
      	* postreload.c (move2add_valid_value_p): Likewise.
      	* recog.c (general_operand, indirect_operand): Likewise.
      	* regcprop.c (copy_value, maybe_mode_change): Likewise.
      	(copyprop_hardreg_forward_1): Likewise.
      	* reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
      	(record_subregs_of_mode): Likewise.
      	* rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
      	* reload.c (operands_match_p): Handle 'p'.
      	(find_reloads_subreg_address): Treat subreg offsets as poly_ints.
      	* reload1.c (alter_reg, choose_reload_regs): Likewise.
      	(compute_reload_subreg_offset): Likewise, and return an poly_int64.
      	* simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
      	(test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
      	(simplify_const_poly_int_tests<N>::run): Likewise.
      	(simplify_subreg, simplify_gen_subreg): Take the subreg offset as
      	a poly_uint64 rather than an unsigned int.
      	* valtrack.c (debug_lowpart_subreg): Likewise.
      	* var-tracking.c (var_lowpart): Likewise.
      	(loc_cmp): Handle 'p'.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255882
      Richard Sandiford committed
    • poly_int: MEM_OFFSET and MEM_SIZE · d05d7551
      This patch changes the MEM_OFFSET and MEM_SIZE memory attributes
      from HOST_WIDE_INT to poly_int64.  Most of it is mechanical,
      but there is one nonbovious change in widen_memory_access.
      Previously the main while loop broke with:
      
            /* Similarly for the decl.  */
            else if (DECL_P (attrs.expr)
                     && DECL_SIZE_UNIT (attrs.expr)
                     && TREE_CODE (DECL_SIZE_UNIT (attrs.expr)) == INTEGER_CST
                     && compare_tree_int (DECL_SIZE_UNIT (attrs.expr), size) >= 0
                     && (! attrs.offset_known_p || attrs.offset >= 0))
              break;
      
      but it seemed wrong to optimistically assume the best case
      when the offset isn't known (and thus might be negative).
      As it happens, the "! attrs.offset_known_p" condition was
      always false, because we'd already nullified attrs.expr in
      that case:
      
        /* If we don't know what offset we were at within the expression, then
           we can't know if we've overstepped the bounds.  */
        if (! attrs.offset_known_p)
          attrs.expr = NULL_TREE;
      
      The patch therefore drops "! attrs.offset_known_p ||" when
      converting the offset check to the may/must interface.
      
      2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* rtl.h (mem_attrs): Add a default constructor.  Change size and
      	offset from HOST_WIDE_INT to poly_int64.
      	* emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
      	(adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
      	(widen_memory_access): Take the sizes and offsets as poly_int64s
      	rather than HOST_WIDE_INTs.
      	* alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
      	(offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
      	and ints.
      	(adjust_offset_for_component_ref): Change the offset from a
      	HOST_WIDE_INT to a poly_int64.
      	(nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
      	* cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
      	* dce.c (find_call_stack_args): Likewise.
      	* dse.c (record_store): Likewise.
      	* dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
      	* print-rtl.c (rtx_writer::print_rtx): Likewise.
      	* read-rtl-function.c (test_loading_mem): Likewise.
      	* rtlanal.c (may_trap_p_1): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* var-tracking.c (int_mem_offset, track_expr_p): Likewise.
      	* emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
      	(mem_attrs::mem_attrs): New function.
      	(set_mem_attributes_minus_bitpos): Change bitpos from a
      	HOST_WIDE_INT to poly_int64.
      	(set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
      	(clear_mem_offset, clear_mem_size, change_address)
      	(get_spill_slot_decl, set_mem_attrs_for_spill): Directly
      	initialize mem_attrs.
      	(set_mem_offset, set_mem_size, adjust_address_1)
      	(adjust_automodify_address_1, offset_address, widen_memory_access):
      	Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255875
      Richard Sandiford committed
    • poly_int: dse.c · 02ce5d90
      This patch makes RTL DSE use poly_int for offsets and sizes.
      The local phase can optimise them normally but the global phase
      treats them as wild accesses.
      
      2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* dse.c (store_info): Change offset and width from HOST_WIDE_INT
      	to poly_int64.  Update commentary for positions_needed.large.
      	(read_info_type): Change offset and width from HOST_WIDE_INT
      	to poly_int64.
      	(set_usage_bits): Likewise.
      	(canon_address): Return the offset as a poly_int64 rather than
      	a HOST_WIDE_INT.  Use strip_offset_and_add.
      	(set_all_positions_unneeded, any_positions_needed_p): Use
      	positions_needed.large to track stores with non-constant widths.
      	(all_positions_needed_p): Likewise.  Take the offset and width
      	as poly_int64s rather than ints.  Assert that rhs is nonnull.
      	(record_store): Cope with non-constant offsets and widths.
      	Nullify the rhs of an earlier store if we can't tell which bytes
      	of it are needed.
      	(find_shift_sequence): Take the access_size and shift as poly_int64s
      	rather than ints.
      	(get_stored_val): Take the read_offset and read_width as poly_int64s
      	rather than HOST_WIDE_INTs.
      	(check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
      	non-constant offsets and widths.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255873
      Richard Sandiford committed
    • Add a gen_int_shift_amount helper function · abd3c800
      This patch adds a helper routine that constructs rtxes
      for constant shift amounts, given the mode of the value
      being shifted.  As well as helping with the SVE patches, this
      is one step towards allowing CONST_INTs to have a real mode.
      
      One long-standing problem has been to decide what the mode
      of a shift count should be for arbitrary rtxes (as opposed to those
      directly tied to a target pattern).  Realistic choices would be
      the mode of the shifted elements, word_mode, QImode, a 64-bit mode,
      or the same mode as the shift optabs (in which case what should the
      mode be when the target doesn't have a pattern?)
      
      For now the patch picks a 64-bit mode, but with a ??? comment.
      
      2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* emit-rtl.h (gen_int_shift_amount): Declare.
      	* emit-rtl.c (gen_int_shift_amount): New function.
      	* asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
      	instead of GEN_INT.
      	* calls.c (shift_return_value): Likewise.
      	* cse.c (fold_rtx): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
      	(expand_shift, expand_smod_pow2): Likewise.
      	* lower-subreg.c (shift_cost): Likewise.
      	* optabs.c (expand_superword_shift, expand_doubleword_mult)
      	(expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
      	(expand_vec_perm_var): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_binary_operation_1): Likewise.
      	* combine.c (try_combine, find_split_point, force_int_to_mode)
      	(simplify_shift_const_1, simplify_shift_const): Likewise.
      	(change_zero_ext): Likewise.  Use simplify_gen_binary.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255861
      Richard Sandiford committed
  5. 16 Dec, 2017 2 commits
    • Revert accidental commit · b4ddce36
      From-SVN: r255746
      Richard Sandiford committed
    • Add a gen_int_shift_amount helper function · 7e594332
      This patch adds a helper routine that constructs rtxes
      for constant shift amounts, given the mode of the value
      being shifted.  As well as helping with the SVE patches, this
      is one step towards allowing CONST_INTs to have a real mode.
      
      One long-standing problem has been to decide what the mode
      of a shift count should be for arbitrary rtxes (as opposed to those
      directly tied to a target pattern).  Realistic choices would be
      the mode of the shifted elements, word_mode, QImode, or the same
      mode as the shift optabs (in which case what should the mode
      be when the target doesn't have a pattern?)
      
      For now the patch picks the mode of the shifted elements,
      but with a ??? comment.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* emit-rtl.h (gen_int_shift_amount): Declare.
      	* emit-rtl.c (gen_int_shift_amount): New function.
      	* asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
      	instead of GEN_INT.
      	* calls.c (shift_return_value): Likewise.
      	* cse.c (fold_rtx): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
      	(expand_shift, expand_smod_pow2): Likewise.
      	* lower-subreg.c (shift_cost): Likewise.
      	* optabs.c (expand_superword_shift, expand_doubleword_mult)
      	(expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
      	(expand_vec_perm_var): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_binary_operation_1): Likewise.
      	* combine.c (try_combine, find_split_point, force_int_to_mode)
      	(simplify_shift_const_1, simplify_shift_const): Likewise.
      	(change_zero_ext): Likewise.  Use simplify_gen_binary.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255745
      Richard Sandiford committed
  6. 15 Dec, 2017 1 commit
    • Make dse.c use offset/width instead of start/end · 71d6a386
      store_info and read_info_type in dse.c represented the ranges as
      start/end, but a lot of the internal code used offset/width instead.
      Using offset/width throughout fits better with the poly_int.h
      range-checking functions.
      
      2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* dse.c (store_info, read_info_type): Replace begin and end with
      	offset and width.
      	(print_range): New function.
      	(set_all_positions_unneeded, any_positions_needed_p)
      	(check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
      	accordingly.
      	(record_store): Likewise.  Optimize the case in which all positions
      	are unneeded.
      	(get_stored_val): Replace read_begin and read_end with read_offset
      	and read_width.
      	(replace_read): Update call accordingly.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255692
      Richard Sandiford committed
  7. 22 Nov, 2017 1 commit
    • re PR rtl-optimization/82044 (runtime signed integer overflow in… · 213ffde2
      re PR rtl-optimization/82044 (runtime signed integer overflow in check_mem_read_rtx() and all_positions_needed_p() in dse.c)
      
      	PR rtl-optimization/82044
      	PR tree-optimization/82042
      	* dse.c (record_store): Check for overflow.
      	(check_mem_read_rtx): Properly check for overflow if width == -1, call
      	add_wild_read instead of clear_rhs_from_active_local_stores on
      	overflow and log it into dump_file.
      
      From-SVN: r255048
      Jakub Jelinek committed
  8. 21 Nov, 2017 1 commit
  9. 09 Oct, 2017 1 commit
    • Replace insn_rtx_cost with insn_cost and pattern_cost · d09e78e8
      This replaces insn_rtx_cost with insn_cost if an insn is readily
      available, and with pattern_cost otherwise.
      
      
      	* cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
      	insn_cost.
      	* combine.c (uid_insn_cost): Adjust comment.
      	(combine_validate_cost): Adjust comment.  Use pattern_cost instead
      	of insn_rtx_cost
      	(combine_instructions): Use insn_cost instead of insn_rtx_cost.
      	* dse.c (find_shift_sequence): Ditto.
      	* ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
      	(bb_valid_for_noce_process_p): Use pattern_cost.
      	* rtl.h (insn_rtx_cost): Delete.
      	(pattern_cost): New prototype.
      	(insn_cost): New prototype.
      	* rtlanal.c (insn_rtx_cost): Rename to...
      	(pattern_cost): ... this.
      	(insn_cost): New.
      
      From-SVN: r253560
      Segher Boessenkool committed
  10. 04 Sep, 2017 1 commit
    • Turn MODES_TIEABLE_P into a target hook · 99e1629f
      2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* target.def (modes_tieable_p): New hook.
      	* doc/tm.texi (MODES_TIEABLE_P): Replace with...
      	(TARGET_MODES_TIEABLE_P): ...this.
      	* doc/tm.texi.in: Regenerate.
      	* hooks.h (hook_bool_mode_mode_true): Declare.
      	* hooks.c (hook_bool_mode_mode_true): New function.
      	* combine.c (subst): Use targetm.modes_tieable_p instead of
      	MODES_TIEABLE_P.
      	* dse.c (find_shift_sequence): Likewise.
      	* expmed.c (extract_low_bits): Likewise.
      	* lower-subreg.c: Include target.h.
      	(find_decomposable_subregs): Use targetm.modes_tieable_p instead of
      	MODES_TIEABLE_P.
      	* rtlanal.c (rtx_cost): Likewise.
      	* config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
      	* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
      	* config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
      	* config/alpha/alpha.c (alpha_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/arc/arc.h (MODES_TIEABLE_P): Delete.
      	* config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(arc_modes_tieable_p): New function.
      	* config/arm/arm.h (MODES_TIEABLE_P): Delete.
      	* config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
      	* config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(arm_modes_tieable_p): Make static.
      	* config/avr/avr.h (MODES_TIEABLE_P): Delete.
      	* config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
      	* config/bfin/bfin.c (bfin_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
      	* config/c6x/c6x.c (c6x_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
      	* config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(cr16_modes_tieable_p): New function.
      	* config/cris/cris.h (MODES_TIEABLE_P): Delete.
      	* config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
      	* config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
      	(TRULY_NOOP_TRUNCATION): Update comment.
      	* config/frv/frv.h (MODES_TIEABLE_P): Delete.
      	(TRULY_NOOP_TRUNCATION): Update comment.
      	* config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(frv_modes_tieable_p): New function.
      	* config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
      	* config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
      	* config/h8300/h8300.c (h8300_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/i386/i386.h (MODES_TIEABLE_P): Delete.
      	* config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
      	* config/i386/i386.c (ix86_modes_tieable_p): Make static.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
      	* config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(ia64_modes_tieable_p): New function.
      	* config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
      	* config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(iq2000_modes_tieable_p): New function.
      	* config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
      	* config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(lm32_modes_tieable_p): New function.
      	* config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
      	* config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
      	* config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
      	* config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(m32r_modes_tieable_p): New function.
      	* config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
      	* config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(m68k_modes_tieable_p): New function.
      	* config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
      	* config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(mcore_modes_tieable_p): New function.
      	* config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
      	* config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
      	function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/mips/mips.h (MODES_TIEABLE_P): Delete.
      	* config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
      	* config/mips/mips.c (mips_modes_tieable_p): Make static.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
      	* config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
      	* config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
      	* config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
      	(mn10300_modes_tieable_p): ...this and make static.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
      	* config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
      	* config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
      	* config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(msp430_modes_tieable_p): Make static.
      	* config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
      	* config/nds32/nds32.c (nds32_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
      	* config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
      	* config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/pa/pa.h (MODES_TIEABLE_P): Delete.
      	* config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
      	* config/pa/pa.c (pa_modes_tieable_p): Make static.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
      	* config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(pdp11_modes_tieable_p): New function.
      	* config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
      	* config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(rs6000_modes_tieable_p): New function.
      	(rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
      	* config/powerpcspe/powerpcspe.md: Update comment.
      	* config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
      	* config/riscv/riscv.c (riscv_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
      	* config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(rl78_modes_tieable_p): New function.
      	* config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
      	* config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(rs6000_modes_tieable_p): New function.
      	(rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
      	* config/rs6000/rs6000.md: Update comment.
      	* config/rx/rx.h (MODES_TIEABLE_P): Delete.
      	* config/rx/rx.c (rx_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/s390/s390.h (MODES_TIEABLE_P): Delete.
      	* config/s390/s390.c (s390_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/sh/sh.h (MODES_TIEABLE_P): Delete.
      	* config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(sh_modes_tieable_p): New function.
      	* config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
      	* config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
      	* config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(sparc_modes_tieable_p): Make static.
      	* config/spu/spu.h (MODES_TIEABLE_P): Delete.
      	* config/spu/spu.c (spu_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
      	* config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
      	* config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
      	* config/v850/v850.h (MODES_TIEABLE_P): Delete.
      	* config/v850/v850.c (v850_modes_tieable_p): New function.
      	(TARGET_MODES_TIEABLE_P): Redefine.
      	* config/vax/vax.h (MODES_TIEABLE_P): Delete.
      	* config/visium/visium.h (MODES_TIEABLE_P): Delete.
      	* config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(visium_modes_tieable_p): New function.
      	* config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
      	* config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
      	(xtensa_modes_tieable_p): New function.
      	* system.h (MODES_TIEABLE_P): Poison.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251647
      Richard Sandiford committed
  11. 30 Aug, 2017 4 commits
    • [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
    • [19/77] Add a smallest_int_mode_for_size helper function · f67f4dff
      This patch adds a wrapper around smallest_mode_for_size
      for cases in which the mode class is MODE_INT.  Unlike
      (int_)mode_for_size, smallest_mode_for_size always returns
      a mode of the specified class, asserting if no such mode exists.
      smallest_int_mode_for_size therefore returns a scalar_int_mode
      rather than an opt_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 (smallest_mode_for_size): Fix formatting.
      	(smallest_int_mode_for_size): New function.
      	* cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
      	instead of smallest_mode_for_size.
      	* combine.c (make_extraction): Likewise.
      	* config/arc/arc.c (arc_expand_movmem): Likewise.
      	* config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
      	* config/i386/i386.c (ix86_get_mask_mode): Likewise.
      	* config/s390/s390.c (s390_expand_insv): Likewise.
      	* config/sparc/sparc.c (assign_int_registers): Likewise.
      	* config/spu/spu.c (spu_function_value): Likewise.
      	(spu_function_arg): Likewise.
      	* coverage.c (get_gcov_type): Likewise.
      	(get_gcov_unsigned_t): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* expmed.c (store_bit_field_1): Likewise.
      	* expr.c (convert_move): Likewise.
      	(store_field): Likewise.
      	* internal-fn.c (expand_arith_overflow): Likewise.
      	* optabs-query.c (get_best_extraction_insn): Likewise.
      	* optabs.c (expand_twoval_binop_libfunc): Likewise.
      	* stor-layout.c (layout_type): Likewise.
      	(initialize_sizetypes): Likewise.
      	* targhooks.c (default_get_mask_mode): Likewise.
      	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251471
      Richard Sandiford committed
    • [18/77] Make int_mode_for_mode return an opt_scalar_int_mode · 304b9962
      Also use int_mode_for_mode instead of (int_)mode_for_size
      in cases where the requested size was the bitsize of an
      existing 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 (opt_mode::else_blk): New function.
      	(int_mode_for_mode): Declare.
      	* stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
      	* builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
      	return type.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* combine.c (gen_lowpart_or_truncate): Likewise.
      	(gen_lowpart_for_combine): Likewise.
      	* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
      	* config/avr/avr.c (avr_to_int_mode): Likewise.
      	(avr_out_plus_1): Likewise.
      	(avr_out_plus): Likewise.
      	(avr_out_round): Likewise.
      	* config/i386/i386.c (ix86_split_to_parts): Likewise.
      	* config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
      	(s390_expand_vcond): Likewise.
      	* config/spu/spu.c (spu_split_immediate): Likewise.
      	(spu_expand_mov): Likewise.
      	* dse.c (get_stored_val): Likewise.
      	* expmed.c (store_bit_field_1): Likewise.
      	(convert_extracted_bit_field): Use int_mode_for_mode instead of
      	int_mode_for_size.
      	(extract_bit_field_1): Adjust for new int_mode_for_mode return type.
      	(extract_low_bits): Likewise.
      	* expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
      	handling rather than repeating the check.
      	(emit_group_store): Likewise.
      	(emit_move_via_integer): Adjust for new int_mode_for_mode return type.
      	* optabs.c (expand_absneg_bit): Likewise.
      	(expand_copysign_absneg): Likewise.
      	(expand_copysign_bit): Likewise.
      	* tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
      	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
      	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
      	* var-tracking.c (prepare_call_arguments):  Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
      	int_mode_for_mode instead of mode_for_size.
      	* config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251470
      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
  12. 01 Jan, 2017 1 commit
  13. 07 Nov, 2016 1 commit
  14. 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
  15. 09 Oct, 2016 1 commit
    • tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. · 8813a647
      	* tree-ssa.c (target_for_debug_bind, verify_phi_args,
      	ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
      	VAR_OR_FUNCTION_DECL_P macros.
      	* tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
      	chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
      	chkp_find_bounds_1): Likewise.
      	* ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
      	* hsa-gen.c (get_symbol_for_decl): Likewise.
      	* cgraphunit.c (check_global_declaration, analyze_functions,
      	handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
      	Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p,
      	canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
      	Likewise.
      	* tree.c (set_decl_section_name, copy_node_stat,
      	need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
      	merge_dllimport_decl_attributes, handle_dll_attribute,
      	decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
      	verify_type): Likewise.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
      	find_explicit_erroneous_behavior): Likewise.
      	* sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
      	* ipa.c (process_references): Likewise.
      	* tree-chkp-opt.c (chkp_get_check_result): Likewise.
      	* varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
      	notice_global_symbol, assemble_variable, mark_decl_referenced,
      	build_constant_desc, output_constant_def_contents, do_assemble_alias,
      	make_decl_one_only, default_section_type_flags,
      	categorize_decl_for_section, default_encode_section_info): Likewise.
      	* trans-mem.c (requires_barrier): Likewise.
      	* gimple-expr.c (mark_addressable): Likewise.
      	* cfgexpand.c (add_scope_conflicts_1, expand_one_var,
      	expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
      	expand_debug_expr): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* ubsan.c (instrument_bool_enum_load): Likewise.
      	* tree-pretty-print.c (print_declaration): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
      	* asan.c (asan_protect_global, instrument_derefs): Likewise.
      	* tree-into-ssa.c (rewrite_stmt, maybe_register_def,
      	pass_build_ssa::execute): Likewise.
      	* var-tracking.c (var_debug_decl, track_expr_p): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
      	Likewise.
      	* ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
      	Likewise.
      	* tree-inline.c (insert_debug_decl_map, remap_ssa_name,
      	can_be_nonlocal, remap_decls, copy_debug_stmt,
      	initialize_inlined_parameters, add_local_variables,
      	reset_debug_binding, replace_locals_op): Likewise.
      	* dse.c (can_escape): Likewise.
      	* ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
      	Likewise.
      	* tree-diagnostic.c (default_tree_printer): Likewise.
      	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
      	unpack_ts_decl_with_vis_value_fields,
      	lto_input_ts_decl_common_tree_pointers): Likewise.
      	* builtins.c (builtin_save_expr, fold_builtin_expect,
      	readonly_data_expr): Likewise.
      	* tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
      	create_variable_info_for, set_uids_in_ptset, visit_loadstore):
      	Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* gimplify.c (force_constant_size, gimplify_bind_expr,
      	gimplify_decl_expr, gimplify_var_or_parm_decl,
      	gimplify_compound_lval, gimplify_init_constructor,
      	gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
      	gimplify_type_sizes): Likewise.
      	* cgraphbuild.c (record_reference, record_type_list, mark_address,
      	mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
      	* tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
      	remove_unused_locals): Likewise.
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
      	ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
      	* function.c (instantiate_expr, instantiate_decls_1,
      	setjmp_vars_warning, add_local_decl): Likewise.
      	* alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
      	Likewise.
      	* tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
      	va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
      	optimize_va_list_gpr_fpr_size): Likewise.
      	* tree-nrv.c (pass_nrv::execute): Likewise.
      	* tsan.c (instrument_expr): Likewise.
      	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
      	* vtable-verify.c (verify_bb_vtables): Likewise.
      	* tree-dfa.c (ssa_default_def, set_ssa_default_def,
      	get_ref_base_and_extent): Likewise.
      	* toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
      	Likewise.
      	* tree-sra.c (static bool constant_decl_p, find_var_candidates,
      	analyze_all_variable_accesses): Likewise.
      	* tree-nested.c (get_nonlocal_debug_decl,
      	convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
      	note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
      	get_local_debug_decl, convert_local_omp_clauses,
      	convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
      	Likewise.
      	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
      	* dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
      	dbxout_symbol, dbxout_common_check): Likewise.
      	* expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
      	string_constant): Likewise.
      	* hsa.c (hsa_get_declaration_name): Likewise.
      	* passes.c (rest_of_decl_compilation): Likewise.
      	* tree-ssanames.c (make_ssa_name_fn): Likewise.
      	* tree-streamer-out.c (pack_ts_decl_common_value_fields,
      	pack_ts_decl_with_vis_value_fields,
      	write_ts_decl_common_tree_pointers): Likewise.
      	* stor-layout.c (place_field): Likewise.
      	* symtab.c (symtab_node::maybe_create_reference,
      	symtab_node::verify_base, symtab_node::make_decl_local,
      	symtab_node::copy_visibility_from,
      	symtab_node::can_increase_alignment_p): Likewise.
      	* dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
      	decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
      	fortran_common, add_location_or_const_value_attribute,
      	add_scalar_info, add_linkage_name, set_block_abstract_flags,
      	local_function_static, gen_variable_die, dwarf2out_late_global_decl,
      	optimize_one_addr_into_implicit_ptr,
      	optimize_location_into_implicit_ptr): Likewise.
      	* gimple-low.c (record_vars_into): Likewise.
      	* ipa-visibility.c (update_vtable_references): Likewise.
      	* tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
      	Likewise.
      	* lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
      	DFS::DFS_write_tree_body, write_symbol): Likewise.
      	* langhooks.c (lhd_warn_unused_global_decl,
      	lhd_set_decl_assembler_name): Likewise.
      	* attribs.c (decl_attributes): Likewise.
      	* except.c (output_ttype): Likewise.
      	* varpool.c (varpool_node::get_create, ctor_for_folding,
      	varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
      	* fold-const.c (fold_unary_loc): Likewise.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge,
      	ipa_find_agg_cst_from_init): Likewise.
      	* omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
      	expand_omp_target, lower_omp_regimplify_p,
      	grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
      	find_link_var_op): Likewise.
      	* tree-chrec.c (chrec_contains_symbols): Likewise.
      	* tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
      	gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
      	execute_fixup_cfg): Likewise.
      
      From-SVN: r240900
      Jakub Jelinek committed
  16. 26 Jul, 2016 1 commit
    • use auto_sbitmap in various places · 7ba9e72d
      gcc/ChangeLog:
      
      2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bt-load.c (compute_out): Use auto_sbitmap class.
      	(link_btr_uses): Likewise.
      	* cfganal.c (mark_dfs_back_edges): Likewise.
      	(post_order_compute): Likewise.
      	(inverted_post_order_compute): Likewise.
      	(pre_and_rev_post_order_compute_fn): Likewise.
      	(single_pred_before_succ_order): Likewise.
      	* cfgexpand.c (pass_expand::execute): Likewise.
      	* cfgloop.c (verify_loop_structure): Likewise.
      	* cfgloopmanip.c (fix_bb_placements): Likewise.
      	(remove_path): Likewise.
      	(update_dominators_in_loop): Likewise.
      	* cfgrtl.c (break_superblocks): Likewise.
      	* ddg.c (check_sccs): Likewise.
      	(create_ddg_all_sccs): Likewise.
      	* df-core.c (df_worklist_dataflow): Likewise.
      	* dse.c (dse_step3): Likewise.
      	* except.c (eh_region_outermost): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Likewise.
      	* gcse.c (prune_expressions): Likewise.
      	(prune_insertions_deletions): Likewise.
      	* gimple-ssa-backprop.c (backprop::~backprop): Likewise.
      	* graph.c (draw_cfg_nodes_no_loops): Likewise.
      	* ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
      	* lcm.c (compute_earliest): Likewise.
      	(compute_farthest): Likewise.
      	* loop-unroll.c (unroll_loop_constant_iterations): Likewise.
      	(unroll_loop_runtime_iterations): Likewise.
      	(unroll_loop_stupid): Likewise.
      	* lower-subreg.c (decompose_multiword_subregs): Likewise.
      	* lra-lives.c: Likewise.
      	* lra.c (lra): Likewise.
      	* modulo-sched.c (schedule_reg_moves): Likewise.
      	(optimize_sc): Likewise.
      	(get_sched_window): Likewise.
      	(sms_schedule_by_order): Likewise.
      	(check_nodes_order): Likewise.
      	(order_nodes_of_sccs): Likewise.
      	(order_nodes_in_scc): Likewise.
      	* recog.c (split_all_insns): Likewise.
      	* regcprop.c (pass_cprop_hardreg::execute): Likewise.
      	* reload1.c (reload): Likewise.
      	* sched-rgn.c (haifa_find_rgns): Likewise.
      	(split_edges): Likewise.
      	(compute_trg_info): Likewise.
      	* sel-sched.c (init_seqno): Likewise.
      	* store-motion.c (remove_reachable_equiv_notes): Likewise.
      	* tree-into-ssa.c (update_ssa): Likewise.
      	* tree-ssa-live.c (live_worklist): Likewise.
      	* tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
      	* Likewise.
      	(try_peel_loop): Likewise.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
      	* Likewise.
      	* tree-ssa-pre.c (compute_antic): Likewise.
      	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
      	* var-tracking.c (vt_find_locations): Likewise.
      
      From-SVN: r238748
      Trevor Saunders committed
  17. 20 Jul, 2016 2 commits
    • hwint.h (HOST_WIDE_INT_0): New define. · 07e96250
      	* hwint.h (HOST_WIDE_INT_0): New define.
      	(HOST_WIDE_INT_0U): Ditto.
      	* double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
      	* dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
      	* simplify-rtx.c: Ditto.
      	* tree-object-size.c: Ditto.
      
      From-SVN: r238545
      Uros Bizjak committed
    • 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
  18. 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
  19. 13 May, 2016 1 commit
    • builtins.c (expand_builtin_memcmp): Do not emit the call here. · ee516de9
      	* builtins.c (expand_builtin_memcmp): Do not emit the call here.
      	(expand_builtin_trap): Emit a regular call.
      	(set_builtin_user_assembler_name): Remove obsolete cases.
      	* dse.c (scan_insn): Adjust.
      	* except.c: Include calls.h.
      	(sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
      	emit a regular call to setjmp.
      	* expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
      	(block_move_libcall_safe_for_call_parm): Use memcpy builtin.
      	(emit_block_move_via_libcall): Delete.
      	(block_move_fn): Delete.
      	(init_block_move_fn): Likewise.
      	(emit_block_move_libcall_fn): Likewise.
      	(emit_block_op_via_libcall): New function.
      	(set_storage_via_libcall): Tidy up and use memset builtin.
      	(block_clear_fn): Delete.
      	(init_block_clear_fn): Likewise.
      	(clear_storage_libcall_fn): Likewise.
      	(expand_assignment): Call emit_block_move_via_libcall.
      	Do not include gt-expr.h.
      	* expr.h (emit_block_op_via_libcall): Declare.
      	(emit_block_copy_via_libcall): New inline function.
      	(emit_block_move_via_libcall): Likewise.
      	(emit_block_comp_via_libcall): Likewise.
      	(block_clear_fn): Delete.
      	(init_block_move_fn): Likewise.
      	(init_block_clear_fn): Likewise.
      	(emit_block_move_via_libcall): Likewise.
      	(set_storage_via_libcall): Add default parameter value.
      	* libfuncs.h (enum libfunc_index): Remove obsolete values.
      	(abort_libfunc): Delete.
      	(memcpy_libfunc): Likewise.
      	(memmove_libfunc): Likewise.
      	(memcmp_libfunc): Likewise.
      	(memset_libfunc): Likewise.
      	(setbits_libfunc): Likewise.
      	(setjmp_libfunc): Likewise.
      	(longjmp_libfunc): Likewise.
      	(profile_function_entry_libfunc): Likewise.
      	(profile_function_exit_libfunc): Likewise.
      	(gcov_flush_libfunc): Likewise.
      	* optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
      	and DECL_VISIBILITY on the declaration.
      	(init_optabs): Do not initialize obsolete libfuncs.
      	* optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
      	* tree-core.h (ECF_RET1): Define.
      	(ECF_TM_PURE): Adjust.
      	(ECF_TM_BUILTIN): Likewise.
      	* tree.c (set_call_expr_flags): Deal with ECF_RET1.
      	(build_common_builtin_nodes): Initialize abort builtin.
      	Add ECF_RET1 on memcpy, memmove and memset builtins.
      	Pass final flags for alloca and alloca_with_align builtins.
      	* config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
      	obsolete builtins.
      	* config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
      	* config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
      	set_storage_via_libcall and call emit_block_copy_via_libcall.
      
      From-SVN: r236195
      Eric Botcazou committed
  20. 05 Apr, 2016 1 commit
    • dse.c (struct store_info): Remove alias_set member. · ac6929b5
      2016-04-05  Richard Biener  <rguenther@suse.de>
      
      	* dse.c (struct store_info): Remove alias_set member.
      	(struct read_info_type): Likewise.
      	(clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
      	spill_deleted, clear_alias_set_lookup): Remove.
      	(get_group_info): Remove dead base == NULL_RTX case.
      	(dse_step0): Remove initialization of removed variables.
      	(delete_dead_store_insn): Reomve alias set dumping.
      	(free_read_records): Remove alias_set handling.
      	(canon_address): Remove alias_set_out parameter.
      	(record_store): Remove spill_alias_set, it's always zero.
      	(check_mem_read_rtx): Likewise.
      	(dse_step2): Rename from ...
      	(dse_step2_nospill): ... this.  Adjust.
      	(scan_stores): Rename from ...
      	(scan_stores_nospill): ... this.
      	(scan_reads): Rename from ...
      	(scan_reads_nospill): ... this.
      	(scan_stores_spill, scan_reads_spill): Remove.
      	(dse_step3_scan): Remove for_spills argument which is always false.
      	(dse_step3): Likewise.
      	(dse_step5): Rename from ...
      	(dse_step5_nospill): ... this.  Remove alias_set handling.
      	(rest_of_handle_dse): Adjust.
      
      From-SVN: r234748
      Richard Biener committed
  21. 04 Apr, 2016 1 commit
  22. 26 Feb, 2016 1 commit
  23. 19 Jan, 2016 1 commit
  24. 04 Jan, 2016 1 commit
  25. 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
  26. 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
  27. 16 Sep, 2015 1 commit
    • Share memory blocks between pool allocators · fcb87c50
      gcc/
      	* Makefile.in: Add memory-block.cc
      	(pool_allocator::initialize): Use fixed block size.
      	(pool_allocator::release): Use memory_block_pool.
      	(pool_allocator::allocate): Likewise.
      	* asan.c (asan_mem_ref_pool): Adjust to use common block size in all
      	object pools.
      	* cfg.c (initialize_original_copy_tables): Likewise.
      	* cselib.c (elt_list_pool, elt_loc_list_pool,
      	cselib_val_pool): Likewise.
      	* df-problems.c (df_chain_alloc): Likewise.
      	* df-scan.c (df_scan_alloc): Likewise.
      	* dse.c (cse_store_info_pool, rtx_store_info_pool,
      	read_info_type_pool, insn_info_type_pool, bb_info_pool,
      	group_info_pool, deferred_change_pool): Likewise.
      	* et-forest.c (et_nodes, et_occurrences): Likewise.
      	* ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
      	ipcp_agg_lattice_pool): Likewise.
      	* ipa-inline-analysis.c (edge_predicate_pool): Likewise.
      	* ipa-profile.c (histogram_pool): Likewise.
      	* ipa-prop.c (ipa_refdesc_pool): Likewise.
      	* ira-build.c (live_range_pool, allocno_pool, object_pool,
      	initiate_cost_vectors, pref_pool, copy_pool): Likewise.
      	* ira-color.c (update_cost_record_pool): Likewise.
      	* lra-lives.c (lra_live_range_pool): Likewise.
      	* lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
      	* memory-block.cc: New file.
      	* memory-block.h: New file.
      	* regcprop.c (queued_debug_insn_change_pool): Use common block size.
      	* sched-deps.c (sched_deps_init): Likewise.
      	* sel-sched-ir.c (sched_lists_pool): Likewise.
      	* stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
      	* tree-sra.c (access_pool): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	* tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
      	* tree-ssa-reassoc.c (operand_entry_pool): Likewise.
      	* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
      	* tree-ssa-strlen.c (strinfo_pool): Likewise.
      	* tree-ssa-structalias.c (variable_info_pool): Likewise.
      	* var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
      	location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
      
      gcc/c-family/
      	* c-format.c (check_format_arg): Adjust to use common block size in all
      	object pools.
      
      From-SVN: r227817
      Mikhail Maltsev committed
  28. 13 Sep, 2015 1 commit
    • dse.c: remove some typedefs that hide pointerness · fd6daec9
      gcc/ChangeLog:
      
      2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* dse.c (store_info_t): Remove typedef.
      	(group_info_t): Likewise.
      	(const_group_info_t): Likewise.
      	(deferred_change_t): Likewise.
      	(get_group_info): Adjust.
      	(free_store_info): Likewise.
      	(canon_address): Likewise.
      	(clear_rhs_from_active_local_stores): Likewise.
      	(record_store): Likewise.
      	(replace_read): Likewise.
      	(check_mem_read_rtx): Likewise.
      	(scan_insn): Likewise.
      	(remove_useless_values): Likewise.
      	(dse_step1): Likewise.
      	(dse_step2_init): Likewise.
      	(dse_step2_nospill): Likewise.
      	(scan_stores_nospill): Likewise.
      	(scan_reads_nospill): Likewise.
      	(dse_step3_exit_block_scan): Likewise.
      	(dse_step3): Likewise.
      	(dse_step5_nospill): Likewise.
      	(dse_step6): Likewise.
      
      From-SVN: r227719
      Trevor Saunders committed
  29. 19 Aug, 2015 1 commit
    • remove more useless typedefs · a79683d5
      gcc/c-family/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
      	c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless
       typedefs.
      
      gcc/c/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
      
      gcc/cp/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* call.c, class.c, cp-tree.h, decl.c, except.c, mangle.c,
      	method.c, name-lookup.h, parser.c, parser.h, rtti.c,
      	semantics.c, typeck2.c: Remove useless typedefs.
      
      gcc/fortran/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* dependency.c, dependency.h, gfortran.h, io.c, module.c,
      	parse.h, resolve.c, trans-types.h, trans.h: remove useless
      typedefs.
      
      gcc/lto/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* lto.h: Remove useless typedefs.
      
      gcc/objc/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
      	Remove useless typedefs.
      
      gcc/ChangeLog:
      
      2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
      	dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
      	mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
      	signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
      	tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
      	tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
      	tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
      	tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
      typedefs.
      
      From-SVN: r227001
      Trevor Saunders committed
  30. 12 Aug, 2015 1 commit
  31. 11 Aug, 2015 1 commit
    • replace several uses of the anon namespace with GCC_FINAL · 63ab94b6
      gcc/ChangeLog:
      
      2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
      	gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
      	ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
      	omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
      	tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
      	tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
      	tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
      	vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
      namespace.
      
      From-SVN: r226793
      Trevor Saunders committed