poly_int: lra frame offsets
[official-gcc.git] / gcc / ChangeLog
blobb87072762644cc634c1a00a022a251d4665e08aa
1 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
2             Alan Hayward  <alan.hayward@arm.com>
3             David Sherwood  <david.sherwood@arm.com>
5         * lra-int.h (lra_reg): Change offset from int to poly_int64.
6         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
7         to poly_int64.
8         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
9         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
10         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
11         offset as a poly_int64 rather than an int.
12         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
13         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
14         * lra-constraints.c (equiv_address_substitution): Track offsets
15         as poly_int64s.
16         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
17         (curr_insn_transform): Handle the new form of sp_offset.
18         * lra-eliminations.c (lra_elim_table): Change previous_offset
19         and offset from HOST_WIDE_INT to poly_int64.
20         (print_elim_table, update_reg_eliminate): Update accordingly.
21         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
22         (get_elimination): Update accordingly.
23         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
24         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
25         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
26         poly_int64 offsets generally.
27         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
28         (mark_not_eliminable, init_elimination): Update accordingly.
29         (remove_reg_equal_offset_note): Return a bool and pass the new
30         offset back by pointer as a poly_int64.
31         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
32         rather than a HOST_WIDE_INT.
33         (do_remat): Track offsets poly_int64s.
34         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
36 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
37             Alan Hayward  <alan.hayward@arm.com>
38             David Sherwood  <david.sherwood@arm.com>
40         * rtl.h (mem_attrs): Add a default constructor.  Change size and
41         offset from HOST_WIDE_INT to poly_int64.
42         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
43         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
44         (widen_memory_access): Take the sizes and offsets as poly_int64s
45         rather than HOST_WIDE_INTs.
46         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
47         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
48         and ints.
49         (adjust_offset_for_component_ref): Change the offset from a
50         HOST_WIDE_INT to a poly_int64.
51         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
52         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
53         * dce.c (find_call_stack_args): Likewise.
54         * dse.c (record_store): Likewise.
55         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
56         * print-rtl.c (rtx_writer::print_rtx): Likewise.
57         * read-rtl-function.c (test_loading_mem): Likewise.
58         * rtlanal.c (may_trap_p_1): Likewise.
59         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
60         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
61         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
62         (mem_attrs::mem_attrs): New function.
63         (set_mem_attributes_minus_bitpos): Change bitpos from a
64         HOST_WIDE_INT to poly_int64.
65         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
66         (clear_mem_offset, clear_mem_size, change_address)
67         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
68         initialize mem_attrs.
69         (set_mem_offset, set_mem_size, adjust_address_1)
70         (adjust_automodify_address_1, offset_address, widen_memory_access):
71         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
73 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
74             Alan Hayward  <alan.hayward@arm.com>
75             David Sherwood  <david.sherwood@arm.com>
77         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
78         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
79         rather than 0 to represent an unknown size.  Assert that the size
80         is known when the mode isn't BLKmode.
81         (may_trap_p_1): Use -1 for unknown sizes.
82         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
84 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
85             Alan Hayward  <alan.hayward@arm.com>
86             David Sherwood  <david.sherwood@arm.com>
88         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
89         to poly_int64.  Update commentary for positions_needed.large.
90         (read_info_type): Change offset and width from HOST_WIDE_INT
91         to poly_int64.
92         (set_usage_bits): Likewise.
93         (canon_address): Return the offset as a poly_int64 rather than
94         a HOST_WIDE_INT.  Use strip_offset_and_add.
95         (set_all_positions_unneeded, any_positions_needed_p): Use
96         positions_needed.large to track stores with non-constant widths.
97         (all_positions_needed_p): Likewise.  Take the offset and width
98         as poly_int64s rather than ints.  Assert that rhs is nonnull.
99         (record_store): Cope with non-constant offsets and widths.
100         Nullify the rhs of an earlier store if we can't tell which bytes
101         of it are needed.
102         (find_shift_sequence): Take the access_size and shift as poly_int64s
103         rather than ints.
104         (get_stored_val): Take the read_offset and read_width as poly_int64s
105         rather than HOST_WIDE_INTs.
106         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
107         non-constant offsets and widths.
109 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
110             Alan Hayward  <alan.hayward@arm.com>
111             David Sherwood  <david.sherwood@arm.com>
113         * inchash.h (inchash::hash::add_poly_int): New function.
114         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
115         Use poly_int64 rather than HOST_WIDE_INT.
116         (ao_ref::max_size_known_p): New function.
117         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
118         rather than HOST_WIDE_INT.
119         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
120         to temporaries until its interface is adjusted to match.
121         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
122         (aliasing_component_refs_p, decl_refs_may_alias_p)
123         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
124         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
125         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
126         ao_ref fields.
127         * alias.c (ao_ref_from_mem): Likewise.
128         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
129         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
130         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
131         (maybe_trim_complex_store, maybe_trim_constructor_store)
132         (live_bytes_read, dse_classify_store): Likewise.
133         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
134         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
135         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
136         (vn_reference_lookup_3): Likewise.
137         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
139 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
140             Alan Hayward  <alan.hayward@arm.com>
141             David Sherwood  <david.sherwood@arm.com>
143         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
144         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
145         instead of ranges_overlap_p.
147 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
148             Alan Hayward  <alan.hayward@arm.com>
149             David Sherwood  <david.sherwood@arm.com>
151         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
152         sizes as poly_int64s rather than HOST_WIDE_INTs.
154 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
155             Alan Hayward  <alan.hayward@arm.com>
156             David Sherwood  <david.sherwood@arm.com>
158         * gimple-fold.h (fold_ctor_reference): Take the offset and size
159         as poly_uint64 rather than unsigned HOST_WIDE_INT.
160         * gimple-fold.c (fold_ctor_reference): Likewise.
162 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
163             Alan Hayward  <alan.hayward@arm.com>
164             David Sherwood  <david.sherwood@arm.com>
166         * target.def (dwarf_poly_indeterminate_value): New hook.
167         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
168         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
169         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
170         * doc/tm.texi: Regenerate.
171         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
172         offset as a poly_int64.
173         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
174         offset as a poly_int64.
175         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
176         Take the offset as a poly_int64.
177         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
178         (frame_pointer_fb_offset): Change to a poly_int64.
179         (int_loc_descriptor): Take the offset as a poly_int64.  Use
180         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
181         (based_loc_descr): Take the offset as a poly_int64.
182         Use strip_offset_and_add to handle (plus X (const)).
183         Use new_reg_loc_descr instead of an open-coded version of the
184         previous implementation.
185         (mem_loc_descriptor): Handle CONST_POLY_INT.
186         (compute_frame_pointer_to_fb_displacement): Take the offset as a
187         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
189 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
190             Alan Hayward  <alan.hayward@arm.com>
191             David Sherwood  <david.sherwood@arm.com>
193         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
194         (gen_rtx_REG_offset): Take the offset as a poly_int64.
195         * inchash.h (inchash::hash::add_poly_hwi): New function.
196         * gengtype.c (main): Register poly_int64.
197         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
198         offset as a poly_int.
199         (reg_attr_hasher::equal): Use must_eq to compare offsets.
200         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
201         offset as a poly_int64.
202         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
203         * print-rtl.c (print_poly_int): New function.
204         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
205         a poly_int.
206         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
207         functions.
208         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
209         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
210         (vt_get_decl_and_offset): Return the offset as a poly_int64.
211         Enforce track_offset_p for parts of a PARALLEL.
212         (vt_add_function_parameter): Use const_offset for the final
213         offset to track.  Use get_tracked_reg_offset for the parts
214         of a PARALLEL.
216 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
217             Alan Hayward  <alan.hayward@arm.com>
218             David Sherwood  <david.sherwood@arm.com>
220         * target.def (truly_noop_truncation): Take poly_uint64s instead of
221         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
222         * doc/tm.texi: Regenerate.
223         * hooks.h (hook_bool_uint_uint_true): Delete.
224         (hook_bool_puint64_puint64_true): Declare.
225         * hooks.c (hook_bool_uint_uint_true): Delete.
226         (hook_bool_puint64_puint64_true): New function.
227         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
228         instead of unsigned ints.
229         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
230         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
232 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
233             Alan Hayward  <alan.hayward@arm.com>
234             David Sherwood  <david.sherwood@arm.com>
236         * optabs.h (expand_operand): Add an int_value field.
237         (create_expand_operand): Add an int_value parameter and use it
238         to initialize the new expand_operand field.
239         (create_integer_operand): Replace with a declaration of a function
240         that accepts poly_int64s.  Move the implementation to...
241         * optabs.c (create_integer_operand): ...here.
242         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
243         the mode preserves the value of int_value, instead of calling
244         const_int_operand on the rtx.  Use gen_int_mode to generate
245         the new rtx.
247 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
248             Alan Hayward  <alan.hayward@arm.com>
249             David Sherwood  <david.sherwood@arm.com>
251         * dumpfile.h (dump_dec): Declare.
252         * dumpfile.c (dump_dec): New function.
253         * pretty-print.h (pp_wide_integer): Turn into a function and
254         declare a poly_int version.
255         * pretty-print.c (pp_wide_integer): New function for poly_ints.
257 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
258             Alan Hayward  <alan.hayward@arm.com>
259             David Sherwood  <david.sherwood@arm.com>
261         * doc/generic.texi (POLY_INT_CST): Document.
262         * tree.def (POLY_INT_CST): New tree code.
263         * treestruct.def (TS_POLY_INT_CST): New tree layout.
264         * tree-core.h (tree_poly_int_cst): New struct.
265         (tree_node): Add a poly_int_cst field.
266         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
267         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
268         instead of a wide_int_ref.
269         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
270         of a HOST_WIDE_INT.
271         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
272         instead of an unsigned HOST_WIDE_INT.
273         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
274         (ptrdiff_tree_p): Declare.
275         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
276         extern inline implementations if the target doesn't use POLY_INT_CST.
277         (poly_int_tree_p): New function.
278         (wi::unextended_tree): New class.
279         (wi::int_traits <unextended_tree>): New override.
280         (wi::extended_tree): Add a default constructor.
281         (wi::extended_tree::get_tree): New function.
282         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
283         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
284         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
285         (wi::tree_to_poly_wide_ref): New typedefs.
286         (wi::ints_for): Provide overloads for extended_tree and
287         unextended_tree.
288         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
289         (wi::to_wide): New functions.
290         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
291         * tree.c (poly_int_cst_hasher): New struct.
292         (poly_int_cst_hash_table): New variable.
293         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
294         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
295         POLY_INT_CST.
296         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
297         (init_ttree): Initialize poly_int_cst_hash_table.
298         (build_int_cst, build_int_cst_type, build_invariant_address): Take
299         a poly_int64 instead of a HOST_WIDE_INT.
300         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
301         instead of an unsigned HOST_WIDE_INT.
302         (wide_int_to_tree): Rename to...
303         (wide_int_to_tree_1): ...this.
304         (build_new_poly_int_cst, build_poly_int_cst): New functions.
305         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
306         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
307         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
308         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
309         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
310         TS_POLY_INT_CST.
311         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
312         (streamer_read_tree_body): Likewise.
313         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
314         (streamer_write_tree_body): Likewise.
315         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
316         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
317         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
318         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
319         * gimple-expr.h (is_gimple_constant): Likewise.
320         * gimplify.c (maybe_with_size_expr): Likewise.
321         * print-tree.c (print_node): Likewise.
322         * tree-data-ref.c (data_ref_compare_tree): Likewise.
323         * tree-pretty-print.c (dump_generic_node): Likewise.
324         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
325         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
326         * tree-vrp.c (compare_values_warnv): Likewise.
327         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
328         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
329         (force_expr_to_var_cost): Likewise.
330         * tree-ssa-loop.c (for_each_index): Likewise.
331         * fold-const.h (build_invariant_address, size_int_kind): Take a
332         poly_int64 instead of a HOST_WIDE_INT.
333         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
334         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
335         POLY_INT_CST.
336         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
337         (int_const_binop_2): New function, split out from...
338         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
339         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
340         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
341         * gimple-ssa-strength-reduction.c (slsr_process_add)
342         (slsr_process_mul): Check for INTEGER_CSTs before using them
343         as candidates.
344         * stor-layout.c (bits_from_bytes): New function.
345         (bit_from_pos): Use it.
346         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
347         by BITS_PER_UNIT to get the TYPE_SIZE.
348         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
349         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
351 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
352             Alan Hayward  <alan.hayward@arm.com>
353             David Sherwood  <david.sherwood@arm.com>
355         * doc/rtl.texi (const_poly_int): Document.  Also document the
356         rtl sharing behavior.
357         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
358         * rtl.h (const_poly_int_def): New struct.
359         (rtx_def::u): Add a cpi field.
360         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
361         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
362         (wi::rtx_to_poly_wide_ref): New typedef
363         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
364         (poly_int_rtx_p): New functions.
365         (trunc_int_for_mode): Declare a poly_int64 version.
366         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
367         (immed_wide_int_const): Take a poly_wide_int_ref rather than
368         a wide_int_ref.
369         (strip_offset): Declare.
370         (strip_offset_and_add): New function.
371         * rtl.def (CONST_POLY_INT): New rtx code.
372         * rtl.c (rtx_size): Handle CONST_POLY_INT.
373         (shared_const_p): Use poly_int_rtx_p.
374         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
375         HOST_WIDE_INT.
376         (gen_int_shift_amount): Likewise.
377         * emit-rtl.c (const_poly_int_hasher): New class.
378         (const_poly_int_htab): New variable.
379         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
380         (const_poly_int_hasher::hash): New function.
381         (const_poly_int_hasher::equal): Likewise.
382         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
383         (immed_wide_int_const): Rename to...
384         (immed_wide_int_const_1): ...this and make static.
385         (immed_wide_int_const): New function, taking a poly_wide_int_ref
386         instead of a wide_int_ref.
387         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
388         (gen_lowpart_common): Handle CONST_POLY_INT.
389         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
390         * cselib.c (cselib_hash_rtx): Likewise.
391         * dwarf2out.c (const_ok_for_output_1): Likewise.
392         * expr.c (convert_modes): Likewise.
393         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
394         * rtlhash.c (add_rtx): Likewise.
395         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
396         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
397         Handle existing CONST_POLY_INT rtxes.
398         * expmed.h (expand_shift): Take a poly_int64 instead of a
399         HOST_WIDE_INT.
400         * expmed.c (expand_shift): Likewise.
401         * rtlanal.c (strip_offset): New function.
402         (commutative_operand_precedence): Give CONST_POLY_INT the same
403         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
404         and CONST_INT.
405         * rtl-tests.c (const_poly_int_tests): New struct.
406         (rtl_tests_c_tests): Use it.
407         * simplify-rtx.c (simplify_const_unary_operation): Handle
408         CONST_POLY_INT.
409         (simplify_const_binary_operation): Likewise.
410         (simplify_binary_operation_1): Fold additions of symbolic constants
411         and CONST_POLY_INTs.
412         (simplify_subreg): Handle extensions and truncations of
413         CONST_POLY_INTs.
414         (simplify_const_poly_int_tests): New struct.
415         (simplify_rtx_c_tests): Use it.
416         * wide-int.h (storage_ref): Add default constructor.
417         (wide_int_ref_storage): Likewise.
418         (trailing_wide_ints): Use GTY((user)).
419         (trailing_wide_ints::operator[]): Add a const version.
420         (trailing_wide_ints::get_precision): New function.
421         (trailing_wide_ints::extra_size): Likewise.
423 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
424             Alan Hayward  <alan.hayward@arm.com>
425             David Sherwood  <david.sherwood@arm.com>
427         * emit-rtl.h (gen_int_shift_amount): Declare.
428         * emit-rtl.c (gen_int_shift_amount): New function.
429         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
430         instead of GEN_INT.
431         * calls.c (shift_return_value): Likewise.
432         * cse.c (fold_rtx): Likewise.
433         * dse.c (find_shift_sequence): Likewise.
434         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
435         (expand_shift, expand_smod_pow2): Likewise.
436         * lower-subreg.c (shift_cost): Likewise.
437         * optabs.c (expand_superword_shift, expand_doubleword_mult)
438         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
439         (expand_vec_perm_var): Likewise.
440         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
441         (simplify_binary_operation_1): Likewise.
442         * combine.c (try_combine, find_split_point, force_int_to_mode)
443         (simplify_shift_const_1, simplify_shift_const): Likewise.
444         (change_zero_ext): Likewise.  Use simplify_gen_binary.
446 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
448         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
450 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
452         * doc/invoke.texi (ARM Options): Document accepted extension options
453         for -march=armv8.3-a.
455 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
457         PR target/83105
458         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
459         or --with-float=softfp, set the default CPU to arm10e.
461 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
463         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
464         * config/visium/predicates.md (const_shift_operand): Likewise.
465         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
466         (visium_legitimize_reload_address): Likewise.
468 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
470         PR target/82975
471         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
473 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
475         PR c++/83490
476         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
478 2017-12-20  Julia Koval  <julia.koval@intel.com>
480         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
481         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
482         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
483         * config.gcc: Include vpclmulqdqintrin.h.
484         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
485         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
486         -mvpclmulqdq.
487         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
488         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
489         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
490         * config/i386/i386.c (isa2_opts): Add -mcx16.
491         (isa_opts): Add -mpclmulqdq, remove -mcx16.
492         (ix86_option_override_internal): Move mcx16 to flags2.
493         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
494         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
495         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
496         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
497         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
498         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
499         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
500         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
501         * doc/invoke.texi: Add -mvpclmulqdq.
503 2017-12-20  Tom de Vries  <tom@codesourcery.com>
505         PR middle-end/83423
506         * config/i386/i386.c (ix86_static_chain): Move DECL_STATIC_CHAIN test ...
507         * calls.c (rtx_for_static_chain): ... here.  New function.
508         * calls.h (rtx_for_static_chain): Declare.
509         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
510         instead of targetm.calls.static_chain.
511         * df-scan.c (df_get_entry_block_def_set): Same.
513 2017-12-19  Tom de Vries  <tom@codesourcery.com>
515         PR tree-optimization/83493
516         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
517         and lb.
519 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
521         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
522         inform with hardcoded english plural handling.
524 2017-12-18  Jeff Law  <law@redhat.com>
526         PR tree-optimization/83477
527         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
528         a non-virtual PHI, always push a new range.
530 2017-12-19  Martin Sebor  <msebor@redhat.com>
532         PR middle-end/77608
533         * builtins.c (compute_objsize): Handle non-constant offsets.
535 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
537         PR tree-optimization/83444
538         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
539         character load case, if get_stridx on MEM_REF's operand doesn't
540         look usable, retry with get_addr_stridx.
542 2017-12-19  Alexandre Oliva <aoliva@redhat.com>
544         PR debug/83422
545         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
546         (variable_tracking_main_1): Keep markers even when VTA fails.
548         PR bootstrap/83396
549         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
550         even if there are markers before it.
551         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
553 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
555         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
556         typical order conditions.
557         * sel-sched.c (extract_new_fences_from): Likewise.
558         * config/visium/constraints.md (J, K, L): Likewise.
559         * config/visium/predicates.md (const_shift_operand): Likewise.
560         * config/visium/visium.c (visium_legitimize_address,
561         visium_legitimize_reload_address): Likewise.
562         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
563         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
564         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
565         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
566         SET_DUMP_DETAIL): Likewise.
567         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
568         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
569         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
570         avr_set_core_architecture, avr_set_current_function,
571         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
572         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
573         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
574         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
575         avr_map_decompose, avr_fold_builtin): Likewise.
576         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
577         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
578         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
579         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
580         * config/m32c/m32c.c (m32c_conditional_register_usage,
581         m32c_address_cost): Likewise.
582         * config/m32c/predicates.md (shiftcount_operand,
583         longshiftcount_operand): Likewise.
584         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
585         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
586         can_use_cdx_ldstw): Likewise.
587         * config/nios2/nios2.h (CDX_REG_P): Likewise.
588         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
589         Likewise.
590         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
591         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
592         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
593         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
594         * config/vax/vax.c (adjacent_operands_p): Likewise.
595         * config/ft32/constraints.md (L, b, KA): Likewise.
596         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
597         Likewise.
598         * cfgexpand.c (expand_stack_alignment): Likewise.
599         * gcse.c (insert_expr_in_table): Likewise.
600         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
601         * cgraphunit.c (cgraph_node::expand): Likewise.
602         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
603         * emit-rtl.c (add_insn): Likewise.
604         * input.c (dump_location_info): Likewise.
605         * passes.c (NEXT_PASS): Likewise.
606         * read-rtl-function.c (parse_note_insn_name,
607         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
608         Likewise.
609         * sched-rgn.c (sched_rgn_init): Likewise.
610         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
611         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
612         if_then_else_cond, simplify_shift_const_1, simplify_comparison): Likewise.
613         * explow.c (eliminate_constant_term): Likewise.
614         * final.c (leaf_renumber_regs_insn): Likewise.
615         * cfgrtl.c (print_rtl_with_bb): Likewise.
616         * genhooks.c (emit_init_macros): Likewise.
617         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
618         * tree-data-ref.c (conflict_fn): Likewise.
619         * selftest.c (assert_streq): Likewise.
620         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
621         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
622         fold_binary_loc, multiple_of_p): Likewise.
623         * reload.c (push_reload, find_equiv_reg): Likewise.
624         * et-forest.c (et_nca, et_below): Likewise.
625         * dbxout.c (dbxout_symbol_location): Likewise.
626         * reorg.c (relax_delay_slots): Likewise.
627         * dojump.c (do_compare_rtx_and_jump): Likewise.
628         * gengtype-parse.c (type): Likewise.
629         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
630         simplify_const_relational_operation): Likewise.
631         * reload1.c (do_output_reload): Likewise.
632         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
633         * gengtype.c (type_for_name): Likewise.
634         * gimple-ssa-sprintf.c (format_directive): Likewise.
636 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
638         PR target/82975
639         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
640         accessing it.  Adjust comment.
642 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
644         PR middle-end/81914
645         * predict.c (zero_one_minusone): New function.
646         (apply_return_prediction): Avoid return prediction for functions
647         returning only -1, 0 and 1 values, unless they only return -1 and 0
648         or 0 and 1.
650 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
652         * config/arc/arc.c (legitimate_scaled_address_p): Clean
653         fall-through warning.
654         (arc_compute_frame_size): Remove unused variables.
655         (arc_print_operand): Fix fprintif format.
656         (arc_can_follow_jump): Clean fall-through warning.
658 2017-12-19  Marek Polacek  <polacek@redhat.com>
660         PR c++/83489
661         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
662         on an error node.                                                    
664 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
666         * config/arc/arc.c (overriderregs): New variable.
667         (arc_override_options): Track fixed/call saved/call options.
668         (arc_conditional_register_usage): Check against overrideregs
669         variable whenever we change register properties.
671 2017-12-19  Nathan Sidwell  <nathan@acm.org>
673         * opts.c (finish_options): Don't prefix dump_base_name if it
674         already contains directories.
676 2017-12-19  Martin Liska  <mliska@suse.cz>
678         PR rtl-optimization/82675
679         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
680         more element in sbitmap.
682 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
684         * gimplify.c (gimplify_expr): Use error_operand_p.
686 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
688         PR target/83387
689         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
690         multilib.
692 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
694         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
695         the jump is to a label.
697 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
699         PR tree-optimization/83444
700         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
701         character loads.
703         PR ipa/82801
704         PR ipa/83346
705         * ipa-inline.c (flatten_remove_node_hook): New function.
706         (ipa_inline): Keep only nodes with flatten attribute at the end of
707         the array in the order from ipa_reverse_postorder, only walk that
708         portion of array for flattening, if there is more than one such
709         node, temporarily register a removal hook and ignore removed nodes.
711         PR tree-optimization/80631
712         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
713         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
714         IFN_REDUC_MAX or IFN_REDUC_MIN.
716 2017-12-18  Jeff Law  <law@redhat.com>
718         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
719         record symbolic equivalences from backedges in the CFG.
721         Revert
722         2017-11-19  Jeff Law  <law@redhat.com>
724         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
725         of degenerates resulting from ignoring an edge.
727 2017-12-18  Martin Sebor  <msebor@redhat.com>
729         PR middle-end/83373
730         PR tree-optimization/78450
731         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
732         (handle_builtin_strlen): Call it.
734 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
736         PR rtl-optimization/83424
737         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
739 2017-12-18  Marek Polacek  <polacek@redhat.com>
741         PR middle-end/83463
742         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
743         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
744         values.
746 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
748         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
749         (umaddsidi4, umaddsidi_split): Likewise.
751 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
753         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
754         constants.
756 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
758         PR target/83420
759         * config/s390/s390.c (s390_option_override): Avoid strncpy.
761 2017-12-18  Richard Biener  <rguenther@suse.de>
763         PR tree-optimization/81877
764         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
765         (outermost_indep_loop): Adjust.
766         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
767         (can_sm_ref_p): Adjust.
769 2017-12-18  Richard Biener  <rguenther@suse.de>
771         PR middle-end/77291
772         * tree.c (array_at_struct_end_p): Return true if the underlying
773         object has space for at least one element in excess of what
774         the array domain specifies.
776 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
778         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
779         example to avoid overfull hbox.
780         * doc/invoke.texi (Option Summary): Add missing @gol.
781         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid 
782         overfull hbox.
783         
784 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
785             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
787         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
788         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
789         (AArch64 Options): Document -mverbose-cost-dump.
790         (ARM Options): Likewise, plus -mflip-thumb.
792 2017-12-17  Martin Sebor  <msebor@redhat.com>
794         PR bootstrap/83446
795         * gimple-ssa-warn-restrict.c
796         (builtin_memref::offset_out_of_bounds): Correct the handling of
797         anti-ranges.
799 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
801         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
803 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
805         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
807 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
809         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
810         latencies.
812 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
814         * doc/invoke.texi: Fix some typos.
816 2017-12-16  Martin Sebor  <msebor@redhat.com>
818         PR tree-optimization/78918
819         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
820         * builtins.c (check_sizes): Rename...
821         (check_access): ...to this.  Rename function arguments for clarity.
822         (check_memop_sizes): Adjust names.
823         (expand_builtin_memchr, expand_builtin_memcpy): Same.
824         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
825         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
826         (check_strncat_sizes, expand_builtin_strncat): Same.
827         (expand_builtin_strncpy, expand_builtin_memset): Same.
828         (expand_builtin_bzero, expand_builtin_memcmp): Same.
829         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
830         (maybe_emit_sprintf_chk_warning): Same.
831         (expand_builtin_strcpy): Adjust.
832         (expand_builtin_stpcpy): Same.
833         (expand_builtin_with_bounds): Detect out-of-bounds accesses
834         in pointer-checking forms of memcpy, memmove, and mempcpy.
835         (gcall_to_tree_minimal, max_object_size): Define new functions.
836         * builtins.h (max_object_size): Declare.
837         * calls.c (alloc_max_size): Call max_object_size instead of
838         hardcoding ssizetype limit.
839         (get_size_range): Handle new argument.
840         * calls.h (get_size_range): Add a new argument.
841         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
842         * doc/invoke.texi (-Wrestrict): Adjust, add example.
843         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
844         operations.
845         (gimple_fold_builtin_memory_chk): Same.
846         (gimple_fold_builtin_stxcpy_chk): New function.
847         * gimple-ssa-warn-restrict.c: New source.
848         * gimple-ssa-warn-restrict.h: New header.
849         * gimple.c (gimple_build_call_from_tree): Propagate location.
850         * passes.def (pass_warn_restrict): Add new pass.
851         * tree-pass.h (make_pass_warn_restrict): Declare.
852         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
853         operations.
854         (handle_builtin_strcat): Same.
855         (strlen_optimize_stmt): Rename...
856         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
857         stpncpy, strncpy, and their checking forms.
859 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
861         PR rtl-optimization/82849
862         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
863         and get_max_loop_iterations_int.
865 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
866             Alan Hayward  <alan.hayward@arm.com>
867             David Sherwood  <david.sherwood@arm.com>
869         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
870         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
871         size as a poly_uint64.
872         (mode_for_vector, mode_for_int_vector): Take the number of vector
873         elements as a poly_uint64.
874         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
875         size as a poly_uint64.
876         (mode_for_vector, mode_for_int_vector): Take the number of vector
877         elements as a poly_uint64.
879 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
880             Alan Hayward  <alan.hayward@arm.com>
881             David Sherwood  <david.sherwood@arm.com>
883         * machmode.h (MACRO_MODE): New macro.
884         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
885         * targhooks.c (default_libcall_value, default_secondary_reload)
886         (default_memory_move_cost, default_register_move_cost)
887         (default_class_max_nregs): Likewise.
889 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
890             Alan Hayward  <alan.hayward@arm.com>
891             David Sherwood  <david.sherwood@arm.com>
893         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
894         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
895         target C file.
896         * genautomata.c (main): Likewise.
897         * genconditions.c (write_header): Likewise.
898         * genemit.c (main): Likewise.
899         * genextract.c (print_header): Likewise.
900         * genopinit.c (main): Likewise.
901         * genoutput.c (output_prologue): Likewise.
902         * genpeep.c (main): Likewise.
903         * genpreds.c (write_insn_preds_c): Likewise.
904         * genrecog.c (writer_header): Likewise.
905         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
906         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
907         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
908         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
909         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
910         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
911         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
912         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
913         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
914         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
915         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
916         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
917         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
918         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
919         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
920         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
921         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
922         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
923         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
924         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
925         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
926         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
927         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
928         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
929         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
930         * config/darwin.c (IN_TARGET_CODE): Likewise.
931         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
932         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
933         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
934         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
935         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
936         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
937         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
938         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
939         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
940         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
941         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
942         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
943         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
944         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
945         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
946         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
947         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
948         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
949         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
950         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
951         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
952         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
953         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
954         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
955         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
956         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
957         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
958         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
959         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
960         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
961         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
962         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
963         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
964         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
965         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
966         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
967         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
968         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
969         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
970         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
971         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
972         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
973         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
974         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
975         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
976         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
977         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
978         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
979         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
980         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
981         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
982         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
983         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
984         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
985         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
986         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
987         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
988         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
989         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
990         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
991         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
992         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
993         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
994         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
995         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
996         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
997         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
998         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
999         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
1000         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
1001         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
1002         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1003         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
1004         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
1005         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
1006         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
1007         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
1008         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
1009         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
1010         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
1011         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
1012         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
1013         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
1014         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
1015         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
1016         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
1017         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
1018         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
1019         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
1020         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
1021         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
1022         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
1023         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
1024         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
1025         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
1026         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
1027         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
1028         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
1029         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
1030         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
1031         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
1032         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
1033         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
1034         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
1035         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
1036         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
1038 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1039             Alan Hayward  <alan.hayward@arm.com>
1040             David Sherwood  <david.sherwood@arm.com>
1042         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
1043         checks for MEM_REF.
1045 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1046             Alan Hayward  <alan.hayward@arm.com>
1047             David Sherwood  <david.sherwood@arm.com>
1049         * doc/generic.texi (VEC_SERIES_EXPR): Document.
1050         * doc/md.texi (vec_series@var{m}): Document.
1051         * tree.def (VEC_SERIES_EXPR): New tree code.
1052         * tree.h (build_vec_series): Declare.
1053         * tree.c (build_vec_series): New function.
1054         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
1055         * tree-pretty-print.c (dump_generic_node): Likewise.
1056         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
1057         * tree-inline.c (estimate_operator_cost): Likewise.
1058         * expr.c (expand_expr_real_2): Likewise.
1059         * optabs-tree.c (optab_for_tree_code): Likewise.
1060         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
1061         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
1062         * expmed.c (make_tree): Handle VEC_SERIES.
1063         * optabs.def (vec_series_optab): New optab.
1064         * optabs.h (expand_vec_series_expr): Declare.
1065         * optabs.c (expand_vec_series_expr): New function.
1066         * tree-vect-generic.c (expand_vector_operations_1): Check that
1067         the operands also have vector type.
1069 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1070             Alan Hayward  <alan.hawyard@arm.com>
1071             David Sherwood  <david.sherwood@arm.com>
1073         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
1074         (VEC_COND_EXPR): Add missing @tindex.
1075         * doc/md.texi (vec_duplicate@var{m}): Document.
1076         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
1077         * tree.c (build_vector_from_val): Add stubbed-out handling of
1078         variable-length vectors, using VEC_DUPLICATE_EXPR.
1079         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
1080         * cfgexpand.c (expand_debug_expr): Likewise.
1081         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
1082         * tree-inline.c (estimate_operator_cost): Likewise.
1083         * tree-pretty-print.c (dump_generic_node): Likewise.
1084         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
1085         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
1086         (test_vec_duplicate_folding): New function.
1087         (fold_const_c_tests): Call it.
1088         * optabs.def (vec_duplicate_optab): New optab.
1089         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
1090         * optabs.h (expand_vector_broadcast): Declare.
1091         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
1092         vec_duplicate_optab.
1093         * expr.c (store_constructor): Try using vec_duplicate_optab for
1094         uniform vectors.
1095         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
1097 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
1099         PR target/83358
1100         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
1101         div/mod latencies a bit.
1103 2017-12-15  Jeff Law  <law@redhat.com>
1105         PR tree-optimization/36550
1106         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
1107         (mark_threaded_blocks): Rewrite code to avoid block copying when
1108         optimizing for size.  Don't pessimize blocks which will be
1109         copied, but all the statements will be dead.
1111 2017-12-15  Alexandre Oliva <aoliva@redhat.com>
1113         PR tree-optimization/81165
1114         * tree-ssa-threadupdate.c (uses_in_bb): New.
1115         (estimate_threading_killed_stmts): New.
1116         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
1117         * tree-ssa-threadedge.c 
1118         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
1119         when its hit.
1121 2017-12-15  Jeff Law  <law@redhat.com>
1123         PR tree-optimization/83410
1124         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
1125         threads when parallelizing loops.
1127 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
1129         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
1130         handler fields.
1131         * config/alpha/alpha.c (vms_attribute_table): Swap
1132         affects_type_identity and handler fields, adjust comments.
1133         * config/mips/mips.c (mips_attribute_table): Likewise.
1134         * config/visium/visium.c (visium_attribute_table): Likewise.
1135         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
1136         * config/microblaze/microblaze.c (microblaze_attribute_table):
1137         Likewise.
1138         * config/spu/spu.c (spu_attribute_table): Likewise.
1139         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1140         * config/arc/arc.c (arc_attribute_table): Likewise.
1141         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
1142         * config/v850/v850.c (v850_handle_interrupt_attribute,
1143         v850_handle_data_area_attribute): Formatting fixes.
1144         (v850_attribute_table): Swap affects_type_identity and handler
1145         fields, adjust comments.
1146         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1147         * config/arm/arm.c (arm_attribute_table): Likewise.
1148         * config/avr/avr.c (avr_attribute_table): Likewise.
1149         * config/s390/s390.c (s390_attribute_table): Likewise.
1150         * config/sh/sh.c (sh_attribute_table): Likewise.
1151         * config/i386/i386.c (ix86_handle_cconv_attribute,
1152         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
1153         (ix86_attribute_table): Swap affects_type_identity and handler
1154         fields, adjust comments.
1155         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
1156         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1157         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
1158         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
1159         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
1160         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
1161         * config/rx/rx.c (rx_attribute_table): Likewise.
1162         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
1163         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1164         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
1165         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
1166         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
1167         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
1168         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1169         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1170         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
1171         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
1172         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
1173         exclude.
1174         * attribs.c (empty_attribute_table): Swap affects_type_identity and
1175         handler fields.
1176         (register_scoped_attributes, decl_attributes): Formatting fixes.
1178         PR tree-optimization/83269
1179         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
1180         subtraction in arg0's type if type is signed and arg0 is unsigned.
1181         Formatting fix.
1183         PR sanitizer/81281
1184         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
1185         convert? on @0 instead of convert.  Check type of @1, not @0.
1186         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
1187         convert? on @0 instead of convert.  Check type of @1, not @0.
1188         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
1189         only optimize if either both @1 and @2 types are narrower
1190         precision, or both are wider or equal precision, and in the former
1191         case only if both have undefined overflow.
1193 2017-12-15  Richard Biener  <rguenther@suse.de>
1195         PR lto/83388
1196         * internal-fn.def (IFN_NOP): Add.
1197         * internal-fn.c (expand_NOP): Do nothing.
1198         * lto-streamer-in.c (input_function): Instead of removing
1199         sanitizer calls replace them with IFN_NOP calls.
1201 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
1202             Alan Hayward  <alan.hayward@arm.com>
1203             David Sherwood  <david.sherwood@arm.com>
1205         * dse.c (store_info, read_info_type): Replace begin and end with
1206         offset and width.
1207         (print_range): New function.
1208         (set_all_positions_unneeded, any_positions_needed_p)
1209         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
1210         accordingly.
1211         (record_store): Likewise.  Optimize the case in which all positions
1212         are unneeded.
1213         (get_stored_val): Replace read_begin and read_end with read_offset
1214         and read_width.
1215         (replace_read): Update call accordingly.
1217 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
1219         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
1220         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
1221         (loop_cand::loop_cand): Initialize above members.
1222         (loop_cand::supported_operations): Delete.
1223         (loop_cand::can_interchange_p): Inline above function.
1224         (loop_cand::classify_simple_reduction): Record number of constant
1225         initialized simple reductions.
1226         (should_interchange_loops): New parameters.  Check stmt cost of loops
1227         to be interchange.
1228         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
1229         Update call to should_interchange_loops.
1230         (should_interchange_loop_nest): Update call to
1231         should_interchange_loops.
1233 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
1235         PR target/66488
1236         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
1237         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
1238         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
1240 2017-12-15  Julia Koval  <julia.koval@intel.com>
1242         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
1243         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
1244         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
1245         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
1246         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
1248 2017-12-15  Julia Koval  <julia.koval@intel.com>
1250         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
1251         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
1252         * config/i386/sse.md (vaesenc_<mode>): New pattern.
1253         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
1254         _mm_aesenc_epi128): New intrinsics.
1256 2017-12-15  Julia Koval  <julia.koval@intel.com>
1258         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
1259         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
1260         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
1261         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
1262         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
1264 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1266         * gimple-ssa-strength-reduction.c (analyze_increments):
1267         Distinguish replacement costs for constant strides from those for
1268         unknown strides.
1270 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
1272         * var-tracking.c (variable_tracking_main_1): Formatting fix.
1274 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1276         * doc/invoke.texi: Document -Wcast-function-type.
1277         * recog.h (stored_funcptr): Change signature.
1278         * tree-dump.c (dump_node): Avoid warning.
1279         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
1281 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
1283         PR middle_end/79538
1284         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
1285         array.
1287 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
1289         PR tree-optimization/83312
1290         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
1291         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
1292         "val" param, and to cope with arbitrary basic blocks.
1293         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
1294         handle NULL_TREE for "val", dropping "bb" param.
1295         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
1296         drop "bb" param.  Handle NULL_TREE for "val".
1297         (find_case_label_for_value): Make "switch_stmt" param const.
1298         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
1299         of dom_walker.
1300         (vrp_prop::check_all_array_refs): Reimplement as...
1301         (check_array_bounds_dom_walker::before_dom_children): ...this new
1302         vfunc.  Replace linear search through BB block list, excluding
1303         those with non-executable in-edges via dominator walk.
1305 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1307         * config/arm/arm.opt (mverbose-cost-dump): New option.
1308         * config/arm/arm.c (arm_rtx_costs): Use it.
1310 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
1312         PR bootstrap/83396
1313         * reload1.c (emit_input_reload_insns): Skip debug markers.
1315 2017-12-14  Alexandre Oliva <aoliva@redhat.com>
1317         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
1318         for its nop_endbr.
1320         PR bootstrap/83396
1321         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
1322         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
1323         * config/sh/sh.c: Skip debug insns besides notes.
1324         * config/sh/sh.md: Likewise.
1325         * config/sh/sh_treg_combine.cc: Likewise.
1326         * config/sh/sync.md: Likewise.
1328 2017-12-14  Tom de Vries  <tom@codesourcery.com>
1330         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
1331         Add item for weak_undefined.
1333 2017-12-14  Richard Biener  <rguenther@suse.de>
1335         PR tree-optimization/67842
1336         * sese.h (bb_in_region): Remove #if 0'ed code.
1338 2017-12-14  Richard Biener  <rguenther@suse.de>
1340         PR tree-optimization/83326
1341         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
1342         may_be_zero parameter and handle it by not marking the first
1343         peeled copy as not exiting the loop.
1344         (try_peel_loop): Likewise.
1345         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
1346         to handle the case of constant or zero iterations and perform
1347         loop header copying on-the-fly.
1349 2017-12-14  Richard Biener  <rguenther@suse.de>
1351         PR tree-optimization/83418
1352         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
1353         Instead of asserting we don't get unfolded comparisons deal with
1354         them.
1356 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
1358         PR bootstrap/83396
1359         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
1360         basic blocks.  Assert debug bind insns don't appear outside of bbs,
1361         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
1362         bb.  Simplify.
1364         PR tree-optimization/83198
1365         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
1366         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
1367         value if arg is a REAL_CST with incompatible type.
1369 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
1370             Bin Cheng  <bin.cheng@arm.com>
1372         PR target/81228
1373         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
1374         to CCFPEmode.
1375         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
1376         LTGT.
1378 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1380         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
1381         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
1383 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
1384             Alan Hayward  <alan.hayward@arm.com>
1385             David Sherwood  <david.sherwood@arm.com>
1387         * poly-int.h: New file.
1388         * poly-int-types.h: Likewise.
1389         * coretypes.h: Include them.
1390         (POLY_INT_CONVERSION): Define.
1391         * target.def (estimated_poly_value): New hook.
1392         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
1393         * doc/tm.texi: Regenerate.
1394         * doc/poly-int.texi: New file.
1395         * doc/gccint.texi: Include it.
1396         * doc/rtl.texi: Describe restrictions on subreg modes.
1397         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
1398         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
1399         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
1400         * targhooks.h (default_estimated_poly_value): Declare.
1401         * targhooks.c (default_estimated_poly_value): New function.
1402         * target.h (estimated_poly_value): Likewise.
1403         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
1404         (wi::unary_traits): Delete.
1405         (wi::binary_traits::signed_shift_result_type): Define for
1406         offset_int << HOST_WIDE_INT, etc.
1407         (generic_wide_int::operator <<=): Define for all types and use
1408         wi::lshift instead of <<.
1409         (wi::hwi_with_prec): Add a default constructor.
1410         (wi::ints_for): New class.
1411         (operator <<): Define for all wide-int types.
1412         (operator /): New function.
1413         (operator %): Likewise.
1414         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
1415         (ASSERT_MAYBE_NE_AT): New macros.
1417 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1418             Dominik Vogt  <vogt@linux.vnet.ibm.com>
1420         PR middle-end/78468
1421         * emit-rtl.c (init_emit): Remove ??? comment.
1422         * explow.c (get_dynamic_stack_size): Take known alignment of stack
1423         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
1424         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
1425         alignment of 3 virtual registers to BITS_PER_WORD.
1427         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
1429 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
1431         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
1432         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
1434 2017-12-13  Alexandre Oliva <aoliva@redhat.com>
1436         PR bootstrap/83396
1437         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
1439 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
1441         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
1442         with the exception of debug begin stmt markers appear before
1443         labels.
1445         PR bootstrap/83396
1446         * final.c (rest_of_handle_final): Call variable_tracking_main only
1447         if !flag_var_tracking.
1449 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
1450             Jakub Jelinek  <jakub@redhat.com>
1452         PR bootstrap/83396
1453         PR debug/83391
1454         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
1455         labels debug stmts that can only appear after labels.
1457 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
1459         PR rtl-optimization/82398
1460         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
1461         EXPR_USEFULNESS in priority comparison.
1463 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
1465         PR rtl-optimization/83393
1466         * combine.c (move_deaths): If reg_stat points to a too new insn in
1467         last_death, do not use it: find the proper insn instead.
1469 2017-12-12  Jeff Law  <law@redhat.com>
1471         PR tree-optimization/83298
1472         PR tree-optimization/83362
1473         PR tree-optimization/83383
1474         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
1475         push_value_range a public interface.  Add new argument to
1476         record_ranges_from_stmt.
1477         * gimple-ssa-evrp-analyze.c
1478         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
1479         Update comments.  Handle recording temporary equivalences.
1480         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
1481         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
1482         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
1483         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
1484         gimple-ssa-evrp-analyze.h.
1485         (record_temporary_equivalences_from_phis): Add new argument.  When
1486         the PHI arg is an SSA_NAME, set the result's range to the range
1487         of the PHI arg.
1488         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
1489         from statements too.
1490         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
1491         Pass it down to children as needed.
1492         (thread_outgoing_edges): Likewise.
1493         (thread_across_edge): Likewise.   Push/pop range state as needed.
1494         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
1496 2017-12-12  Julia Koval  <julia.koval@intel.com>
1498         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
1499         (PTA_CANNONLAKE): Remove PTA_CLWB.
1501 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1503         PR target/83332
1504         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
1505         (vcondv2div2df): Likewise.
1506         (vconduv2dfv2di): Likewise.
1508 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
1510         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
1511         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
1512         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
1513         ATTR_MATHFN_FPROUNDING_ERRNO.
1515 2017-12-12  Richard Biener  <rguenther@suse.de>
1517         PR tree-optimization/83385
1518         * graphite-scop-detection.c (get_order, order): Remove.
1519         (bb_to_rpo): New global.
1520         (cmp_pbbs): Adjust.
1521         (build_scops): Sort pbbs in RPO order.
1523 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
1525         * combine.c (simplify_set): Do not transform subregs to zero_extends
1526         if the destination mode is a vector mode.
1528 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
1530         PR tree-optimization/83359
1531         * tree-cfg.h (fold_loop_internal_call): Declare.
1532         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
1533         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
1534         (find_loop_dist_alias): New function.
1535         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
1536         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
1537         calls.
1539         PR tree-optimization/80631
1540         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
1541         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
1542         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
1543         hardcoding zero as the value if COND_EXPR is never true.  For
1544         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
1545         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
1546         hardcoding MAX_EXPR as the reduction operation.
1547         (is_nonwrapping_integer_induction): Allow negative step.
1548         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
1549         vect_create_epilog_for_reduction, if no value is suitable, don't
1550         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
1552 2017-12-12  Richard Biener  <rguenther@suse.de>
1554         PR tree-optimization/81889
1555         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
1556         range info from the non-wrapping IV instead of just the range
1557         of the type.
1559 2017-12-12  Julia Koval  <julia.koval@intel.com>
1561         * config.gcc: Add vaesintrin.h.
1562         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
1563         New type.
1564         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
1565         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
1566         New builtins.
1567         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
1568         * config/i386/immintrin.h: Include vaesintrin.h.
1569         * config/i386/sse.md (vaesdec_<mode>): New pattern.
1570         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
1571         _mm_aesdec_epi128): New intrinsics.
1573 2017-12-12  Julia Koval  <julia.koval@intel.com>
1575         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
1576         OPTION_MASK_ISA_VAES_UNSET): New.
1577         (ix86_handle_option): Handle -mvaes.
1578         * config/i386/cpuid.h: Define bit_VAES.
1579         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
1580         * config/i386/i386-c.c (__VAES__): New.
1581         * config/i386/i386.c (ix86_target_string): Add -mvaes.
1582         (ix86_valid_target_attribute_inner_p): Ditto.
1583         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
1584         * config/i386/i386.opt: Add -mvaes.
1585         * doc/invoke.texi: Ditto.
1587 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
1589         * debug.h (gcc_debug_hooks): Add inline_entry.
1590         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
1591         * debug.c (do_nothing_debug_hooks): Likewise.
1592         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1593         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1594         (dwarf2_lineno_debug_hooks): Likewise.
1596         * common.opt (gstatement-frontiers): New, setting
1597         debug_nonbind_markers_p.
1598         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
1599         * toplev.c (process_options): Autodetect value for debug statement
1600         frontiers option.
1601         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
1602         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
1604         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
1605         markers.  Integrate source bind into debug stmt expand loop.
1606         (pass_expand::execute): Check debug marker limit.  Avoid deep
1607         TER and expand debug locations for debug bind insns only.
1608         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
1609         followed by them.
1610         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
1611         * final.c (reemit_insn_block_notes): Take current block from
1612         nonbind markers.  Declare note where it's first set.
1613         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
1614         begin stmt markers if enabled.
1615         (notice_source_line): Handle nonbind markers.  Fail if their
1616         location is unknown or that of builtins.
1617         (rest_of_handle_final): Convert begin stmt markers to notes if
1618         var-tracking didn't run.
1619         (rest_of_clean_state): Skip begin stmt markers.
1620         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
1621         markers.
1622         * function.c (allocate_struct_function): Set begin_stmt_markers.
1623         * function.h (struct function): Add debug_marker_count counter
1624         and debug_nonbind_markers flag.
1625         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
1626         * gimple-low.c (lower_function_body): Adjust
1627         debug_nonbind_markers.
1628         (lower_stmt): Drop or skip gimple debug stmts.
1629         (lower_try_catch): Skip debug stmts.
1630         * gimple.c (gimple_build_debug_begin_stmt): New.
1631         (gimple_copy): Increment debug_marker_count if copying one.
1632         * gimple.h (gimple_build_debug_begin_stmt): Declare.
1633         * gimplify.c (rexpr_location): New.
1634         (rexpr_has_location): New.
1635         (warn_switch_unreachable_r): Handle gimple debug stmts.
1636         (shortcut_cond_r): Call expr_location.
1637         (find_goto): New.
1638         (find_goto_label): New.
1639         (shortcut_cond_expr): Call expr_has_location, expr_location, and
1640         find_goto_label.
1641         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
1642         expr_location.
1643         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
1644         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
1645         (LANG_HOOKS_INITIALIZER): ... this.
1646         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
1647         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
1648         debug insns.
1649         (update_ebb_live_info): Skip debug insn markers.
1650         * lra.c (debug_insn_static_data): Rename to...
1651         (debug_bind_static_data): ... this.
1652         (debug_marker_static_data): New.
1653         (lra_set_insn_recog_data): Select one of the above depending
1654         on debug insn kind.
1655         (lra_update_isn_regno_info): Don't assume debug insns have
1656         freqs.
1657         (push_insns): Skip debug insns.
1658         * lto-streamer-in.c (input_function): Drop debug stmts
1659         depending on active options.  Adjust debug_nonbind_markers.
1660         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
1661         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
1662         begin stmt marker notes.
1663         (print_insn): Likewise.
1664         * recog.c (extract_insn): Recognize rtl for debug markers.
1665         * rtl.def (DEBUG_MARKER): New.
1666         * tree-inline.c: Include params.h.
1667         (remap_gimple_stmt): Handle nonbind markers.
1668         (maybe_move_debug_stmts_to_successors): Likewise.
1669         (copy_debug_stmt): Likewise.
1670         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
1671         markers regardless of no side effects.
1672         (tsi_link_before): Don't update container's side effects when adding
1673         a begin stmt marker.
1674         (tsi_link_after): Likewise.
1675         (expr_first): Skip begin stmt markers.
1676         (expr_last): Likewise.
1677         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
1678         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
1679         Disregard nonbind markers.
1680         * tree.c (make_node_stat): Don't set side effects for begin stmt
1681         markers.
1682         (build1_stat): Likewise.
1683         * tree.def (DEBUG_BEGIN_STMT): New.
1684         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
1685         * var-tracking.c (delete_debug_insns): Renamed to...
1686         (delete_vta_debug_insns): ... this.
1687         (reemit_marker_as_note): New.
1688         (vt_initialize): Reemit markers.
1689         (delete_vta_debug_insns): Likewise.
1690         (vt_debug_insns_local): Reemit or delete markers.
1691         (variable_tracking_main_1): Likewise.
1692         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
1693         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
1694         (gimple_debug_nonbind_marker_p): New.
1695         (gimple_build_debug_bind): Adjust.
1696         (gimple_build_debug_begin_stmt): New.
1697         * doc/invoke.texi (max-debug-marker-count): New param.
1698         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
1699         (debug_parameter_ref, debug_marker): New.
1700         (NOTE_INSN_BEGIN_STMT): New.
1701         (DEBUG_INSN): Describe begin stmt markers.
1703         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
1704         without debug insns, we wouldn't, but clean up debug insns
1705         after a control flow insn nevertheless.
1707         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
1708         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
1709         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
1710         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
1711         (rtl_tidy_fallthru_edge): Likewise.
1712         (rtl_verify_fallthru): Likewise.
1713         (rtl_verify_bb_layout): Likewise.
1714         (skip_insns_after_block): Likewise.
1715         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
1716         * dwarf2out.c: Include print-rtl.h.
1717         (dwarf2out_next_real_insn): New.
1718         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
1719         Dump debug binds in asm comments.
1720         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
1721         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
1722         callers to use gsi_start_nondebug_bb instead.
1723         (gsi_after_labels): Skip gimple debug stmts.
1724         (gsi_start_nondebug): New.
1725         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
1726         (proper_loop_form_for_interchange): Adjust.
1727         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
1728         * gimple.h (gimple_seq_last_nondebug_stmt): New.
1729         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
1730         (collect_fallthrough_labels): Likewise.
1731         (should_warn_for_implicit_fallthrough): Likewise.
1732         (warn_implicit_fallthrough_r): Likewise.
1733         (expand_FALLTHROUGH_r): Likewise.
1734         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
1735         (graphite_copy_stmts_from_block): Skip nonbind markers.
1736         * haifa-sched.c (sched_extend_bb): Skip debug insns.
1737         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
1738         * jump.c (clean_barriers): Skip debug insns.
1739         * omp-expand.c (expand_parallel_call): Skip debug insns.
1740         (expand_task_call): Likewise.
1741         (remove_exit_barrier): Likewise.
1742         (expand_omp_taskreg): Likewise.
1743         (expand_omp_for_init_counts): Likewise.
1744         (expand_omp_for_generic): Likewise.
1745         (expand_omp_for_static_nochunk): Likewise.
1746         (expand_omp_for_static_chunk): Likewise.
1747         (expand_omp_simd): Likewise.
1748         (expand_omp_taskloop_for_outer): Likewise.
1749         (expand_omp_taskloop_for_inner): Likewise.
1750         (expand_oacc_for): Likewise.
1751         (expand_omp_sections): Likewise.
1752         (expand_omp_single): Likewise.
1753         (expand_omp_synch): Likewise.
1754         (expand_omp_atomic_load): Likewise.
1755         (expand_omp_atomic_store): Likewise.
1756         (expand_omp_atomic_fetch_op): Likewise.
1757         (expand_omp_atomic_pipeline): Likewise.
1758         (expand_omp_atomic_mutex): Likewise.
1759         (expand_omp_target): Likewise.
1760         (grid_expand_omp_for_loop): Likewise.
1761         (grid_expand_target_grid_body): Likewise.
1762         (build_omp_regions_1): Likewise.
1763         * omp-low.c (check_combined_parallel): Skip debug stmts.
1764         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
1765         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
1766         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
1767         test.
1768         * tree-cfg.c (make_blobs_1): Skip debug stmts.
1769         (make_edges): Likewise.
1770         (cleanup_dead_labels): Likewise.
1771         (gimple_can_merge_blocks_p): Likewise.
1772         (stmt_starts_bb_p): Likewise.
1773         (gimple_block_label): Likewise.
1774         (gimple_redirect_edge_and_branch): Likewise.
1775         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
1776         of debug stmts.
1777         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
1778         TDF_SLIM.
1779         * tree-pretty-print (print_declaration): Omit initializer in slim
1780         dumps.
1781         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
1782         markers.
1783         (eliminate_unnecessary_stmts): Stabilize block removal order.
1784         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
1785         * var-tracking.c (get_first_insn): New.
1786         (vt_emit_notes): Call it.
1787         (vt_initialize): Walk any insns before the first BB.
1788         (delete_debug_insns): Likewise.
1790         * gimple.h (enum gimple_debug_subcode): Add
1791         GIMPLE_DEBUG_BEGIN_STMT.
1792         (gimple_debug_begin_stmt_p): New.
1793         (gimple_debug_nonbind_marker_p): New.
1794         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
1795         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
1796         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
1797         * insn-notes.def (BEGIN_STMT): New.
1798         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
1799         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
1800         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
1801         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
1802         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
1803         (INSN_DEBUG_MARKER_KIND): New.
1804         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
1805         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
1806         (INSN_VAR_LOCATION_PTR): New.
1807         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
1808         only.
1809         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
1810         deps only if debug bind insns are enabled.
1811         (pass_expand::execute): Avoid deep TER and expand
1812         debug locations for debug bind insns only.
1813         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
1814         debug stmts special handling down to debug bind stmts.
1815         * combine.c (try_combine): Narrow debug insns special handling
1816         down to debug bind insns.
1817         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
1818         Narrow debug insns preexisting special handling down to debug
1819         bind insns.
1820         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
1821         handling down to debug bind insns.
1822         * function.c (instantiate_virtual_regs): Skip debug markers,
1823         adjust handling of debug binds.
1824         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
1825         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
1826         * haifa-sched.c (schedule_insn): Narrow special handling of debug
1827         insns to debug bind insns.
1828         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
1829         special handling of debug stmts to debug bind stmts.
1830         * ipa-split.c (split_function): Likewise.
1831         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
1832         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
1833         debug insns.
1834         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
1835         * regrename.c (build_def_use): Likewise.
1836         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1837         (pass_cprop_hardreg): Narrow special casing of debug insns to
1838         debug bind insns.
1839         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
1840         * reload1.c (reload): Likewise.
1841         * sese.c (sese_insert_phis_for_liveouts): Narrow special
1842         casing of debug stmts to debug bind stmts.
1843         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
1844         * ssa-iterators.h (num_imm_uses): Likewise.
1845         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
1846         debug stmts to debug bind stmts.
1847         * tree-inline.c (tree_function_versioning): Narrow special casing
1848         of debug stmts to debug bind stmts.
1849         * tree-loop-distribution.c (generate_loops_for_partition):
1850         Narrow special casing of debug stmts to debug bind stmts.
1851         * tree-sra.c (analyze_access_subtree): Narrow special casing
1852         of debug stmts to debug bind stmts.
1853         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
1854         stmts to debug bind stmts.
1855         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
1856         casing of debug stmts to debug bind stmts.
1857         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
1858         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
1859         casing of debug stmts to debug bind stmts.
1860         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
1861         Likewise.
1862         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
1863         debug stmts to debug bind stmts.
1864         (gimple_replace_ssa_lhs): Likewise.
1865         (insert_debug_temp_for_var_def): Likewise.
1866         (insert_debug_temps_for_defs): Likewise.
1867         (reset_debug_uses): Likewise.
1868         * tree-ssanames.c (release_ssa_name_fn): Likewise.
1869         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
1870         (adjust_debug_stmts): Likewise.
1871         (adjust_phi_and_debug_stmts): Likewise.
1872         (vect_do_peeling): Likewise.
1873         * tree-vect-loop.c (vect_transform_loop): Likewise.
1874         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
1875         * var-tracking.c (adjust_mems): Narrow special casing of debug
1876         insns to debug bind insns.
1877         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
1878         (compute_bb_dataflow, vt_find_locations): Likewise.
1879         (vt_expand_loc, emit_notes_for_changes): Likewise.
1880         (vt_init_cfa_base): Likewise.
1881         (vt_emit_notes): Likewise.
1882         (vt_initialize): Likewise.
1883         (vt_finalize): Likewise.
1885         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
1886         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
1887         (next_nonnote_nondebug_insn_bb): New.
1888         (prev_nonnote_nondebug_insn_bb): New.
1889         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
1890         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
1891         (prev_nonnote_nondebug_insn_bb): Declare.
1892         (next_nonnote_nondebug_insn_bb): Declare.
1893         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
1894         * cfgrtl.c (get_last_bb_insn): Likewise.
1895         * lra.c (push_insns): Likewise.
1897 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
1899         PR c/82050
1900         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
1901         to...
1902         * selftest.c (selftest::test_runner::test_runner): New ctor.
1903         (selftest::test_runner::~test_runner): New dtor.
1904         * selftest.h (class selftest::test_runner): New class.
1906 2017-12-11  Carl Love  <cel@us.ibm.com>
1908         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
1909         vec_extract_fp32_from_shortl]): Add #defines.
1910         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
1911         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
1912         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
1913         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
1914         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
1915         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
1916         * doc/extend.texi: Add documentation for the added builtins.
1918 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
1920         PR rtl-optimization/80693
1921         PR rtl-optimization/81019
1922         PR rtl-optimization/81020
1923         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
1924         are not mentioned in i3.  Place the REG_UNUSED note on i2,
1925         possibly modified to REG_DEAD, if it did not originate in i3.
1927 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
1929         * recog.c (store_data_bypass_p_1): New function.
1930         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
1931         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
1933 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
1935         PR rtl-optimization/83361
1936         * ifcvt.c (if_convert): Call fixup_partitions.
1938 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
1940         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
1941         early folding of splat_u{8,16,32}.
1943 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
1945         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
1946         output_operand_lossage first argument with capital letter.
1947         (aarch64_override_options): Don't start error and sorry first argument
1948         with capital letter.
1950 2017-12-11  Andi Kleen  <ak@linux.intel.com>
1952         PR gcov-profile/83355
1953         * auto-profile.c (string_table::get_index_by_decl): Don't
1954         recurse when abstract origin points to itself.
1956 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
1958         PR tree-optimization/83320
1959         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
1960         (prune_datarefs_not_in_loop): Ditto.
1962 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
1964         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
1966 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
1968         PR tree-optimization/83337
1969         * gimple-loop-interchange.cc (compute_access_stride): Handle
1970         bitfield DRs properly.
1972 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
1974         PR tree-optimization/83338
1975         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
1976         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
1977         vector of unsigned integers to vector of signed integers.
1979 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
1981         PR rtl-optimization/83317
1982         * lra-constraints.c (process_address_1): Add insn code check.
1984 2017-12-08  Michael Matz  <matz@suse.de>
1986         Fix PR tree-optimization/83323
1987         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
1988         head-controlled loops and loop BBs.
1989         * common.opt (funroll-and-jam): Remove, instead ...
1990         (floop-unroll-and-jam): ... reuse this option.
1991         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
1992         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
1993         (-floop-unroll-and-jam): ... this option.
1995 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
1997         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
1998         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
1999         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
2001 2017-12-08  Richard Biener  <rguenther@suse.de>
2003         PR middle-end/81782
2004         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
2005         handle accesses outside of zero-sized vars.
2007 2017-12-08  Martin Jambor  <mjambor@suse.cz>
2009         PR tree-optimization/83141
2010         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
2011         test for MEM_REFs implicitely changing types with padding.  Remove
2012         inline keyword.
2013         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
2015 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
2017         * config/arc/arc.c (arc_attribute_table): Add exclusions to
2018         the comment.
2019         * config/avr/avr.c (avr_attribute_table): Likewise.
2020         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2021         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2022         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2023         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
2024         of struct attribute_spec.
2025         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2027 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
2029         PR target/82960
2030         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
2032 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
2034         PR middle-end/83609
2035         * profile-count.c (profile_count::from_gcov_type): Move from
2036         profile-count.h; handle overflow.
2037         * profile-count.h (profile_count::from_gcov_type): Move offline.
2039 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
2041         PR rtl-optimization/83304
2042         * combine.c (move_deaths): If we do not know where a register died,
2043         search for it.
2045 2017-12-08  Richard Biener  <rguenther@suse.de>
2047         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
2048         Provide -fopt-info-loop feedback when we interchange in a nest.
2050 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2052         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
2053         for armv6 ARM CPU IDs.
2055 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2057         * common/config/arm/arm-common.c: Include <algorithm>.
2058         (INCLUDE_VECTOR): Define.
2059         (compare_opt_names): New function.
2060         (arm_rewrite_selected_arch): Only strip out extensions that can be
2061         expressed through -mfpu.  Sort the remaining extensions
2062         alphabetically.
2064 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2066         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
2067         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
2068         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
2069         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
2071 2017-06-08  Tristan Gingold  <gindold@adacore.com>
2073         PR ada/81470
2074         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
2075         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
2077 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2079         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
2080         of struct attribute_spec.
2082 2017-12-08  Julia Koval  <julia.koval@intel.com>
2084         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
2085         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
2086         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
2087         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
2088         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
2089         _mm_maskz_dpwssds_epi32): Ditto.
2091 2017-12-08  Richard Biener  <rguenther@suse.de>
2093         PR tree-optimization/81303
2094         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
2095         conditions try to create a comparison vector type matching
2096         the data vector type.
2097         (vectorizable_condition): Adjust.
2098         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
2099         Leave invariant conditions alone in case we can vectorize those.
2101 2017-12-08  Julia Koval  <julia.koval@intel.com>
2103         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
2104         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
2105         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
2106         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
2107         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
2109 2017-12-08  Julia Koval  <julia.koval@intel.com>
2111         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
2112         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
2113         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
2114         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
2115         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
2116         _mm_maskz_dpbusds_epi32): New intrinsics.
2118 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
2120         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
2121         operand.
2122         (ld<bh>io_signed): Likewise.
2123         (st<bhw>io): Likewise.
2124         * config/nios2/predicates.md (ldstio_memory_operand): Allow
2125         SMALL_INT12 constant integer operand.
2127 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
2129         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
2130         Rename to...
2131         (nios2_large_constant_allowed): ...this.  Adjust uses.
2132         (nios2_plus_symbolic_constant_p): Rename to...
2133         (nios2_plus_large_constant_p): ...this.  Adjust uses.
2134         (nios2_legitimate_address_p): Correct CONST_INT handling.
2135         (nios2_symbolic_memory_operand_p): Rename to...
2136         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
2137         (nios2_large_constant_p): Check for large constant integers too.
2138         (nios2_split_large_constant): Handle constant integers.
2139         (nios2_split_symbolic_memory_operand): Rename to...
2140         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
2141         (nios2_legitimize_constant_address): Handle constant integers.
2142         (r0rel_constant_p): Handle small constant integers.
2143         (nios2_print_operand_address): Handle r0-relative integer addresses.
2144         * config/nios2/nios2-protos.h: Adjust for renamed functions.
2145         * config/nios2/nios2.md: Adjust for renamed functions.
2147 2017-12-07  Andrew Waterman  <andrew@sifive.com>
2149         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
2150         (TARGET_HAVE_SRODATA_SECTION): New define.
2151         (riscv_select_section): New function.
2153 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
2154             Alexander Monakov  <amonakov@ispras.ru>
2155             Jakub Jelinek  <jakub@redhat.com>
2157         PR target/81906
2158         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
2160 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2162         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
2163         a bool success value.  Don't call output_operand_lossage here.
2164         (aarch64_print_ldpstp_address): Return a bool success value.
2165         (aarch64_print_operand_address): Call output_addr_const if
2166         aarch64_print_address_internal fails.
2167         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
2168         'y'; call output_operand_lossage instead.  Call output_operand_lossage
2169         if aarch64_print_ldpstp_address fails.
2171 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2173         * tree-vector-builder.h
2174         (tree_vector_builder::binary_encoded_nelts): Declare.
2175         * tree-vector-builder.c
2176         (tree_vector_builder::binary_encoded_nelts): New function.
2177         * fold-const.c (negate_expr_p): Likewise.
2178         (operand_equal_p, fold_checksum_tree): Likewise.
2179         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
2180         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
2181         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
2182         (uniform_vector_p): Likewise.
2183         * varasm.c (const_hash_1, compare_constant): Likewise.
2184         * tree-ssa-ccp.c: Include tree-vector-builder.h.
2185         (valid_lattice_transition): Operate directly on the VECTOR_CST
2186         encoding.
2187         * ipa-icf.c: Include tree-vector-builder.h.
2188         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
2189         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
2191 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2193         * tree.c (build_vector): Delete.
2194         * tree.h (build_vector): Make static and move into the self-testing
2195         block.
2197 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2199         * vector-builder.h (vector_builder::derived): New const overload.
2200         (vector_builder::elt): New function.
2201         * tree-vector-builder.h (tree_vector_builder::type): New function.
2202         (tree_vector_builder::apply_step): Declare.
2203         * tree-vector-builder.c (tree_vector_builder::apply_step): New
2204         function.
2205         * gimple-fold.h (tree_vector_builder): Declare.
2206         (gimple_build_vector): Take a tree_vector_builder instead of a
2207         type and vector of elements.
2208         * gimple-fold.c (gimple_build_vector): Likewise.
2209         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
2210         accordingly.
2211         (get_initial_defs_for_reduction): Likewise.
2212         (vectorizable_induction): Likewise.
2214 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2216         * tree-vector-builder.h
2217         (tree_vector_builder::new_binary_operation): Declare.
2218         * tree-vector-builder.c
2219         (tree_vector_builder::new_binary_operation): New function.
2220         * fold-const.c (fold_relational_const): Use it.
2221         (const_binop): Likewise.  Check that both input vectors have
2222         the same number of elements, thus excluding things like WIDEN_SUM.
2223         Check whether it is possible to operate directly on the encodings
2224         of stepped inputs.
2226 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2228         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
2229         new_unary_operation, operating only on the encoded elements.
2230         (const_unop): Likewise.
2231         (exact_inverse): Likewise.
2232         (distributes_over_addition_p): New function.
2233         (const_binop): Use tree_vector_builder and new_unary_operation
2234         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
2235         on the encoded elements unless the encoding is strided and the
2236         operation does not distribute over addition.
2237         (fold_convert_const):  Use tree_vector_builder and
2238         new_unary_operation.  Operate only on the encoded elements
2239         for truncating integer conversions, or for non-stepped encodings.
2241 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2243         * config/sparc/sparc.c: Include tree-vector-builder.h.
2244         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
2245         * expmed.c: Include tree-vector-builder.h.
2246         (make_tree): Use tree_vector_builder instead of build_vector.
2247         * fold-const.c: Include tree-vector-builder.h.
2248         (const_binop): Use tree_vector_builder instead of build_vector.
2249         (const_unop): Likewise.
2250         (native_interpret_vector): Likewise.
2251         (fold_vec_perm): Likewise.
2252         (fold_ternary_loc): Likewise.
2253         * gimple-fold.c: Include tree-vector-builder.h.
2254         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
2255         of build_vector.
2256         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
2257         (simplify_vector_constructor): Use tree_vector_builder instead
2258         of build_vector.
2259         * tree-vect-generic.c: Include tree-vector-builder.h.
2260         (add_rshift): Use tree_vector_builder instead of build_vector.
2261         (expand_vector_divmod): Likewise.
2262         (optimize_vector_constructor): Likewise.
2263         * tree-vect-loop.c: Include tree-vector-builder.h.
2264         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
2265         of build_vector.  Explicitly use a stepped encoding for
2266         { 1, 2, 3, ... }.
2267         * tree-vect-slp.c: Include tree-vector-builder.h.
2268         (vect_get_constant_vectors): Use tree_vector_builder instead
2269         of build_vector.
2270         (vect_transform_slp_perm_load): Likewise.
2271         (vect_schedule_slp_instance): Likewise.
2272         * tree-vect-stmts.c: Include tree-vector-builder.h.
2273         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
2274         (vect_gen_perm_mask_any): Likewise.
2275         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
2276         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
2277         of build_vector.
2278         (build_vector_from_val): Likewise.  Explicitly use a duplicate
2279         encoding.
2281 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
2283         * doc/generic.texi (VECTOR_CST): Describe new representation of
2284         vector constants.
2285         * vector-builder.h: New file.
2286         * tree-vector-builder.h: Likewise.
2287         * tree-vector-builder.c: Likewise.
2288         * Makefile.in (OBJS): Add tree-vector-builder.o.
2289         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
2290         * tree-core.h (tree_base): Add a vector_cst field to the u union.
2291         (tree_vector): Change the number of elements to
2292         vector_cst_encoded_nelts.
2293         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
2294         (VECTOR_CST_ELTS): Delete.
2295         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
2296         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
2297         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
2298         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
2299         (VECTOR_CST_ENCODED_ELT): Likewise.
2300         (vector_cst_encoded_nelts): New function.
2301         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
2302         VECTOR_CST_NELTS_PER_PATTERN as arguments.
2303         (vector_cst_int_elt, vector_cst_elt): Declare.
2304         * tree.c: Include tree-vector-builder.h.
2305         (tree_code_size): Abort if passed VECTOR_CST.
2306         (tree_size): Update for new VECTOR_CST layout.
2307         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
2308         VECTOR_CST_NELTS_PER_PATTERN as arguments.
2309         (build_vector): Use tree_vector_builder.
2310         (vector_cst_int_elt, vector_cst_elt): New functions.
2311         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
2312         encoded elements and then create the vector in the canonical form.
2313         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
2314         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
2315         (tree_c_tests): Call test_vector_cst_patterns.
2316         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
2317         VECTOR_CST fields.
2318         (hash_tree): Likewise.
2319         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
2320         (streamer_write_tree_header): Likewise.
2321         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
2322         (streamer_alloc_tree): Likewise.  Update call to make_vector.
2323         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
2325 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2327         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
2328         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
2329         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
2331 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
2332             Richard Biener  <rguenther@suse.de>
2334         PR tree-optimization/81303
2335         * Makefile.in (gimple-loop-interchange.o): New object file.
2336         * common.opt (floop-interchange): Reuse the option from graphite.
2337         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
2338         -floop-interchange and mention it for -O3.
2339         * opts.c (default_options_table): Enable -floop-interchange at -O3.
2340         * gimple-loop-interchange.cc: New file.
2341         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
2342         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
2343         * passes.def (pass_linterchange): New pass.
2344         * timevar.def (TV_LINTERCHANGE): New time var.
2345         * tree-pass.h (make_pass_linterchange): New declaration.
2346         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
2347         interchange.  Record IV before/after increment in new parameters.
2348         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
2349         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
2350         path check into...
2351         (check_reduction_path): ...New function here.
2352         * tree-vectorizer.h (check_reduction_path): New declaration.
2354 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
2356         PR target/83252
2357         PR rtl-optimization/80818
2358         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
2359         always early clobbered.
2360         * lra-lives.c (process_bb_lives): Check input hard regs for early
2361         clobbered non-operand hard reg.
2363 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
2365         PR middle-end/83164
2366         * tree-cfg.c (verify_gimple_assign_binary): Don't require
2367         types_compatible_p, just that TYPE_MODE is the same.
2369 2017-12-07  Martin Sebor  <msebor@redhat.com>
2371         PR c/81544
2372         * attribs.c (empty_attribute_table): Initialize new member of
2373         struct attribute_spec.
2374         (decl_attributes): Add argument.  Handle mutually exclusive
2375         combinations of attributes.
2376         (selftests::test_attribute_exclusions): New function.
2377         (selftests::attribute_c_tests): Ditto.
2378         * attribs.h (decl_attributes): Add default argument.
2379         * selftest.h (attribute_c_tests): Declare.
2380         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
2381         * tree-core.h (attribute_spec::exclusions, exclude): New type and
2382         member.
2383         * doc/extend.texi (Common Function Attributes): Update const and pure.
2384         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
2385         of struct attribute_spec.
2386         * config/arc/arc.c (arc_attribute_table): Same.
2387         * config/arm/arm.c (arm_attribute_table): Same.
2388         * config/avr/avr.c ( avr_attribute_table): Same.
2389         * config/bfin/bfin.c (bfin_attribute_table): Same.
2390         * config/cr16/cr16.c (cr16_attribute_table): Same.
2391         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
2392         * config/h8300/h8300.c (h8300_attribute_table): Same.
2393         * config/i386/i386.c (ix86_attribute_table): Same.
2394         * config/ia64/ia64.c (ia64_attribute_table): Same.
2395         * config/m32c/m32c.c (m32c_attribute_table): Same.
2396         * config/m32r/m32r.c (m32r_attribute_table): Same.
2397         * config/m68k/m68k.c (m68k_attribute_table): Same.
2398         * config/mcore/mcore.c (mcore_attribute_table): Same.
2399         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
2400         * config/mips/mips.c (mips_attribute_table): Same.
2401         * config/msp430/msp430.c (msp430_attribute_table): Same.
2402         * config/nds32/nds32.c (nds32_attribute_table): Same.
2403         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
2404         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
2405         * config/rl78/rl78.c (rl78__attribute_table): Same.
2406         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
2407         * onfig/rx/rx.c (rx_attribute_table): Same.
2408         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
2409         * config/sh/sh.c (sh_attribute_table): Same.
2410         * config/sparc/sparc.c (sparc_attribute_table): Same.
2411         * config/spu/spu.c (spu_attribute_table): Same.
2412         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
2413         * config/v850/v850.c (v850_attribute_table): Same.
2414         * config/visium/visium.c (visium_attribute_table): Same.
2416 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
2418         PR target/82641
2419         * config/arm/arm.c (INCLUDE_STRING): Define.
2420         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
2421         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
2422         and .fpu.
2424 2017-12-07  Michael Matz  <matz@suse.de>
2426         Add unroll and jam pass
2428         * gimple-loop-jam.c: New file.
2429         * Makefile.in (OBJS): Add gimple-loop-jam.o.
2430         * common.opt (funroll-and-jam): New option.
2431         * opts.c (default_options_table): Add unroll-and-jam at -O3.
2432         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
2433         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
2434         * passes.def: Add pass_loop_jam.
2435         * timevar.def (TV_LOOP_JAM): Add.
2436         * tree-pass.h (make_pass_loop_jam): Declare.
2437         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
2438         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
2439         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
2440         to flow_loop_tree_node_add.
2441         (duplicate_subloops, copy_loops_to): Append to sibling list.
2442         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
2443         * doc/invoke.texi (-funroll-and-jam): Document new option.
2444         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
2446 2017-12-07  Richard Biener  <rguenther@suse.de>
2448         PR tree-optimization/83296
2449         PR tree-optimization/67769
2450         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
2451         flow sensitive info in an unrelated BB.
2452         (value_replacement): Use reset_flow_sensitive_info.
2453         (minmax_replacement): Reset flow sensitive info on the def
2454         we move.  Do not reset flow sensitive info in the whole BB
2455         we move the stmt to.
2456         (abs_replacement): Likewise.
2458 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
2460         PR target/43871
2461         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
2462         rs6000_cpu to the given -mcpu=, or to the default processor.
2464 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
2466         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
2467         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
2468         instead of rs6000_cpu_attr.
2469         (rs6000_adjust_cost): Ditto.
2470         (is_microcoded_insn): Ditto.
2471         (rs6000_adjust_priority): Ditto.
2472         (rs6000_issue_rate): Ditto.
2473         (rs6000_use_sched_lookahead): Ditto.
2474         (rs6000_use_sched_lookahead_guard): Ditto.
2475         (rs6000_sched_reorder): Ditto.
2476         (force_new_group): Ditto.
2477         * config/rs6000/rs6000.md (cpu attribute): Ditto.
2478         (group_ending_nop): Ditto.
2480 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
2482         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
2483         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
2484         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
2485         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
2486         appropriate.
2487         (rs6000_reassociation_width): Ditto.
2488         (rs6000_emit_epilogue): Ditto.
2489         (rs6000_adjust_cost): Ditto.
2490         (is_microcoded_insn): Ditto.
2491         (is_cracked_insn): Ditto.
2492         (rs6000_adjust_priority): Ditto.
2493         (rs6000_sched_reorder): Ditto.
2494         (rs6000_sched_reorder2): Ditto.
2495         (insn_must_be_first_in_group): Ditto.
2496         (insn_must_be_last_in_group): Ditto.
2497         (rs6000_register_move_cost): Ditto.
2498         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
2499         rs6000_cpu.
2501 2017-12-07  Julia Koval  <julia.koval@intel.com>
2503         * config.gcc: Add vaesintrin.h.
2504         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
2505         New type.
2506         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
2507         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
2508         New builtins.
2509         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
2510         * config/i386/immintrin.h: Include vaesintrin.h.
2511         * config/i386/sse.md (vaesdec_<mode>): New pattern.
2512         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
2513         _mm_aesdec_epi128): New intrinsics.
2515 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
2517         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
2518         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
2519         c-family/c-spellcheck.cc.
2520         (best_macro_match::best_macro_match): Likewise.
2521         * spellcheck-tree.h
2522         (struct edit_distance_traits<cpp_hashnode *>): Move to
2523         c-family/c-spellcheck.h.
2524         (class best_macro_match): Likewise.
2526 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
2528         PR tree-optimization/83293
2529         * gimple-ssa-strength-reduction.c (insert_initializers): Use
2530         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
2531         might insert into empty bb.
2533         PR sanitizer/81281
2534         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
2535         simplify for plus with :c added, and pointer_plus without that.
2536         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
2537         with undefined overflow and the conversion is not widening,
2538         perform negation in utype and only convert to type afterwards.
2539         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
2540         simplify for plus with :c added, and pointer_plus without that.
2541         If type is integral with undefined overflow and the conversion is
2542         not widening, perform minus in utype and only convert to type
2543         afterwards.  Move the last pointer_diff_expr simplify into the
2544         two outermost ifs.
2546 2017-12-06  Martin Sebor  <msebor@redhat.com>
2548         PR tree-optimization/82646
2549         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
2550         strncpy, not maxlen.
2552 2017-12-06  Martin Sebor  <msebor@redhat.com>
2554         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
2555         nonstring.
2557         PR tree-optimization/83075
2558         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
2559         strncat/strncpy don't change length of source string.
2561 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2563         Revert
2564         2017-11-29  Martin Aberg  <maberg@gaisler.com>
2566         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
2567         to prevent b2bst errata sequence.
2568         (sqrtdf2_fix): Likewise.
2570 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
2572         PR tree-optimization/81945
2573         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
2574         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
2575         to dest_cfun has orig_loop_num set, either remap it to the new
2576         loop number if the loop got moved too, or clear it.
2578 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
2580         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
2581         to reservation.
2582         (thunderx2t99_nothing): New insn reservation.
2583         (thunderx2t99_mrs): New insn reservation.
2584         (thunderx2t99_multiple): New insn reservation.
2585         (thunderx2t99_alu_basi): Add bfx to reservation.
2586         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
2588 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2590         PR target/82248
2591         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
2593 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
2595         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
2596         tree-ssa-pre.c::remove_dead_inserted_code.
2597         * tree-ssa-dce.h: New file.
2598         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
2599         (remove_dead_inserted_code): Move and rename to function
2600         tree-ssa-dce.c::simple_dce_from_worklist.
2601         (pass_pre::execute): Update use.
2603 2017-12-05  Richard Biener  <rguenther@suse.de>
2605         PR tree-optimization/83277
2606         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
2607         to code-gen liveout vars.
2609 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
2611         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
2612         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
2613         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
2614         split condition.
2616 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
2618         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
2619         function.
2620         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
2621         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
2622         ASAN is enabled.
2624 2017-12-05  Richard Biener   <rguenther@suse.de>
2626         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
2627         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
2628         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
2629         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
2631 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2633         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
2635 2017-12-05  Martin Liska  <mliska@suse.cz>
2636             Jakub Jelinek  <jakub@redhat.com>
2638         * doc/invoke.texi: Document the options.
2639         * flag-types.h (enum sanitize_code): Add
2640         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
2641         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
2642         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
2643         * opts.c: Define new sanitizer options.
2644         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
2645         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
2647 2017-12-05  Julia Koval  <julia.koval@intel.com>
2649         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
2650         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
2651         (ix86_handle_option): Handle -mavx512vnni.
2652         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
2653         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
2654         * config/i386/i386-c (__AVX512VNNI__): New.
2655         * config/i386/i386.c (ix86_target_string): Handle new option.
2656         (ix86_valid_target_attribute_inner_p): Handle new option.
2657         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
2658         * config/i386/i386.opt (mavx512vnni): New option.
2660 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
2662         PR target/81616
2663         * athlon.md: Disable for generic.
2664         * haswell.md: Enable for generic.
2665         * i386.c (ix86_sched_init_global): Add core hooks for generic.
2666         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
2667         to 4.
2668         (ix86_adjust_cost): Move generic to haswell path.
2670 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
2672         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
2673         instead of MEM_P in a couple more places.  Fix formatting issues.
2675 2017-12-04  Jim Wilson  <jimw@sifive.com>
2677         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
2678         instead of GP_REG_LAST-1.
2679         (riscv_adjust_libcall_cfi_prologue): Likewise.
2680         (riscv_adjust_libcall_cri_epilogue): Likewise.
2681         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
2682         comment.
2684 2017-12-04  Luis Machado  <luis.machado@linaro.org>
2686         * ipa-pure-const.c (check_decl): Add missing newline.
2687         (state_from_flags): Likewise.
2689 2017-12-04  Jeff Law  <law@redhat.com>
2691         PR tree-optimizatin/78496
2692         * gimple-ssa-evrp-analyze.h
2693         (evrp_range_analyzer::get_vr_values): Simplify.
2694         * gimple-ssa-evrp-analyze.c: Corresponding changes.
2695         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
2696         and gimple-ssa-evrp-analyze.h.
2697         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
2698         (simplify_stmt_for_jump_threading): Copy a blob of code from
2699         tree-vrp.c to use ranges to simplify statements.
2700         (dom_opt_dom_walker::before_dom_children): Call
2701         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
2702         (dom_opt_dom_walker::after_dom_children): Similarly for
2703         evrp_range_analyzer::leave.
2704         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
2705         conditionals.
2707         * gimple-ssa-evrp-analyze.c
2708         (evrp_range_analyzer::extract_range_from_stmt):  Always use
2709         vr_values::update_value_range so preexisting range info is
2710         medged with new range info, even if the new range is VR_VARYING.
2712 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
2714         * combine.c: Adjust comment.
2715         (use_crosses_set_p): Delete.
2716         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
2717         (try_combine): Ditto.
2719 2017-12-04  Richard Biener  <rguenther@suse.de>
2721         PR tree-optimization/83255
2722         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
2723         Re-add zero-iteration check.
2725 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
2727         PR rtl-optimization/83245
2728         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
2729         hard registers as earlyclobber, also if not in an asm.
2731 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
2733         PR bootstrap/83265
2734         Revert
2735         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2737         PR target/43871
2738         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
2739         rs6000_cpu based on cpu_index, not tune_index.
2741 2017-12-04  Richard Biener  <rguenther@suse.de>
2743         PR tree-optimization/83238
2744         * graphite-scop-detection.c (scop_detection::merge_sese): Make
2745         code match comment, rejecting invalid SESE regions.
2747 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
2749         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
2750         require base operand is a REG_POINTER prior to reload on targets
2751         with non-equivalent space registers.
2753 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
2755         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
2756         (update_specialized_profile): Fix updating of counts.
2757         (perhaps_add_new_callers): Likewise.
2759 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
2761         PR target/81616
2762         * x86-tune.def: Remove obsolette FIXMEs.
2763         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
2764         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
2765         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
2766         Enable for generic.
2767         (X86_TUNE_PAD_RETURNS): Disable for generic.
2769 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
2771         PR tree-optimization/83170
2772         PR tree-optimization/83241
2773         * gimple-ssa-store-merging.c
2774         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
2775         gimple_vuse (ins_stmt) in case it has changed.
2776         (imm_store_chain_info::output_merged_store): Likewise.
2778         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
2779         POINTER_DIFF_EXPR.
2781         PR c++/81212
2782         * tree-cfg.c (pass_warn_function_return::execute): Handle
2783         __builtin_ubsan_handle_missing_return like __builtin_unreachable
2784         with BUILTINS_LOCATION.
2786         PR target/78643
2787         PR target/80583
2788         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
2789         is BLKmode for vector field with vector raw mode, use TYPE_MODE
2790         instead of DECL_MODE.
2792         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
2793         last argument to rtx pointer.
2794         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
2795         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
2796         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
2797         depending on the chosen ISAs.
2798         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
2799         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
2800         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
2801         callers.
2802         * config/i386/sse.md (mov<mode>_internal): Likewise.
2803         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
2805 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2807         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
2809 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2811         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
2812         parameters from prototype.
2813         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
2814         parameters.  Don't print a comment.
2815         (emit_fusion_gpr_load): Adjust.
2816         (emit_fusion_load_store): Adjust.
2817         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
2818         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
2819         comment on the second line.
2821 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2823         PR target/43871
2824         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
2825         rs6000_cpu based on cpu_index, not tune_index.
2827 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2829         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
2830         which_alternative instead of which_alternative + 1.
2831         (output_asm_insn): Print an extra tab if the template is short.
2833 2017-12-01  Jim Wilson  <jimw@sifive.com>
2835         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
2836         comment.
2837         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
2838         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
2839         reference.
2840         * doc/tm.texi: Regenerate.
2842 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2844         PR target/81959
2845         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
2846         whether we can allocate pseudos before trying to fix an address.
2847         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
2848         memory address is indexed or indirect.
2849         (floatuns_<mode>si2_hw2): Likewise.
2851 2017-12-01  Jason Merrill  <jason@redhat.com>
2853         * Makefile.in (TAGS): Add c-family/*.cc.
2855 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
2857         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
2858         (call_value_insn): Likewise.
2859         (sibcall_insn): Likewise.
2860         (sibcall_value_insn): Likewise.
2861         (movsi_aarch64): Likewise.
2862         (movdi_aarch64): Likewise.
2863         (add_losym_): Likewise.
2864         (ldr_got_small_): Likewise.
2865         (ldr_got_small_sidi): Likewise.
2866         (ldr_got_small_28k_): Likewise.
2867         (ldr_got_small_28k_sidi): Likewise.
2868         * config/aarch64/aarch64.c (aarch64_print_address_internal):
2869         Move output_addr_const to symbolic case. Add error check.
2871 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2873         * config/s390/predicates.md (plus16_Q_operand): New predicate.
2874         * config/s390/s390.md: Disable MVC merging peephole if it would
2875         disable operand forwarding.
2876         (new peephole2): Split MVCs if it would turn them into up to 2
2877         forwardable MVCs.
2879 2017-12-01  Richard Biener  <rguenther@suse.de>
2881         PR tree-optimization/83232
2882         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
2883         detection of same access. Instead of breaking the group here
2884         do not consider the duplicate.  Add comment explaining real fix.
2886 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
2888         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
2890 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
2892         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
2894 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
2896         * function.h (struct function): Remove cilk_frame_decl,
2897         is_cilk_function and calls_cilk_spawn fields.
2898         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
2899         field.
2900         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
2901         cilk_elemental field.
2902         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
2903         * target.def: Adjust comment.
2904         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
2905         Don't test cilk_elemental.
2907         PR tree-optimization/83233
2908         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
2909         bswap_stat name for the struct.
2911         PR c/79153
2912         * tree.h (SWITCH_BREAK_LABEL_P): Define.
2913         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
2914         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
2915         SWITCH_BREAK_LABEL_P set on the label.
2916         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
2917         added for default case if it was missing and not all cases covered.
2918         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
2919         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
2920         set on the label.
2921         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
2922         to avoid -Wimplicit-fallthrough warning.
2923         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
2924         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
2926         PR tree-optimization/83221
2927         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
2928         down by 16.
2929         (init_reassoc): Formatting fix.
2931         PR sanitizer/81275
2932         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
2933         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
2934         is diagnosed.
2936         PR sanitizer/83219
2937         * tree-cfg.c: Include asan.h.
2938         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
2940 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
2942         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
2944 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
2946         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
2947         vpcmpeqd instruction.
2949 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
2951         * config/i386/i386.c (standard_sse_constant_opcode): Fix
2952         registers type for 128bit mode.
2954 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
2956         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
2957         of ;;.
2958         * gengtype-state.c (read_state_pair): Likewise.
2959         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
2960         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
2961         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
2962         * ifcvt.c (noce_try_store_flag_constants): Likewise.
2963         * tree-ssa-ccp.c (ccp_finalize): Likewise.
2964         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
2965         * builtins.c (fold_builtin_3): Likewise.
2966         * graphite-scop-detection.c
2967         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
2968         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
2969         Likewise.
2971 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
2973         PR sanitizer/81697
2974         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
2975         parameter. Return true if ignore_decl_rtl_set_p is true and other
2976         conditions are satisfied.
2977         * asan.h (asan_protect_global): Add new parameter.
2978         * varasm.c (categorize_decl_for_section): Pass true as second parameter
2979         to asan_protect_global calls.
2981 2017-11-30  Jim Wilson  <jimw@sifive.com>
2983         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
2984         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
2985         -mstrict-align, add info on default value.  Delete redundant lines for
2986         -mabi.  Add missing -mexplicit-relocs docs.
2988 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
2990         * config/arc/arc.md (trap): New pattern.
2992 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
2994         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
2995         instruction to end into a delay slot.
2996         * config/arc/arc.md (cond_delay_insn): Check if the instruction
2997         can be placed into a delay slot against reg_note.
2999 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3001         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
3002         labels number of usages.
3004 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3006         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
3007         function.
3008         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
3010 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
3012         PR target/83210
3013         * internal-fn.c (expand_mul_overflow): Optimize unsigned
3014         multiplication by power of 2 constant into two shifts + comparison.
3016 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
3018         PR target/81616
3019         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
3021 2017-11-30  Richard Biener  <rguenther@suse.de>
3023         PR tree-optimization/83202
3024         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
3025         allow_peel argument and guard peeling.
3026         (canonicalize_loop_induction_variables): Likewise.
3027         (canonicalize_induction_variables): Pass false.
3028         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
3029         peeling from cunrolli.
3031 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3033         * combine.c (try_combine): Print a message to dump file whenever
3034         I0, I1, or I2 cannot be combined into I3.
3036 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3038         PR rtl-optimization/83156
3039         PR rtl-optimization/82621
3040         * combine.c (try_combine): Don't split an I2 if one of the dests is
3041         set again before I3.  Allow unused dests.
3043 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3045         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
3047 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
3049         PR rtl-optimization/80818
3050         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
3051         recursively.  Use insn code for clobber.
3052         (lra_set_insn_recog_data): Pass the new arg to
3053         collect_non_operand_hard_regs.
3054         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
3055         code for clobber.
3056         (lra_update_insn_regno_info): Pass insn to
3057         add_regs_to_insn_regno_info.
3059 2017-11-29  Jim Wilson  <jimw@sifive.com>
3060             Andrew Waterman  <andrew@sifive.com>
3062         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
3063         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
3064         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
3065         use SINGLE_SHIFT_COST.
3066         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
3067         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
3069 2017-11-29  Julia Koval  <julia.koval@intel.com>
3071         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
3072         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
3073         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
3074         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
3075         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
3076         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
3077         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
3078         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
3079         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
3080         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
3081         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
3082         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
3083         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
3084         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
3085         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
3086         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
3087         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
3088         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
3089         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
3090         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
3091         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
3092         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
3093         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
3094         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
3095         __builtin_ia32_vpshldv_v2di_mask,
3096         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
3097         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
3098         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
3100 2017-11-29  Julia Koval  <julia.koval@intel.com>
3102         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
3103         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
3104         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
3105         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
3106         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
3107         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
3108         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
3109         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
3110         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
3111         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
3112         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
3113         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
3114         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
3115         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
3116         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
3117         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
3118         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
3119         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
3120         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
3121         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
3122         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
3124 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3126         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
3127         movsi_pic_gotdata_op instruction as a load for the UT699 errata
3128         workaround.
3130 2017-11-29  Martin Aberg  <maberg@gaisler.com>
3132         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
3133         to prevent b2bst errata sequence.
3134         (sqrtdf2_fix): Likewise.
3136 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3138         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
3139         (div_sqrt_insn_p): New function.
3140         (sparc_do_work_around_errata): Insert NOP instructions to
3141         prevent sequences that could trigger the TN-0013 errata for
3142         certain LEON3 processors.
3143         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
3144         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
3145         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
3146         (in_branch_delay): Prevent div and sqrt in delay slot if
3147         fix_lost_divsqrt.
3148         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
3150 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3152         * config/sparc/sparc.c (atomic_insn_p): New function.
3153         (sparc_do_work_around_errata): Insert NOP instructions to
3154         prevent sequences that could trigger the TN-0010 errata for
3155         UT700.
3156         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
3157         instruction referable in atomic_insns_p.
3159 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3161         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
3162         (atomic_compare_and_swap_leon3_1): Likewise.
3163         (ldstub): Likewise.
3165 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3167         * config/sparc/sparc.c (fpop_insn_p): New function.
3168         (sparc_do_work_around_errata): Insert NOP instructions to
3169         prevent sequences that could trigger the TN-0012 errata for
3170         GR712RC.
3171         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
3172         * config/sparc/sparc.md (fix_gr712rc): New attribute.
3173         (in_branch_annul_delay): Prevent floating-point instructions
3174         in delay slot of annulled integer branch.
3176 2017-11-29  Richard Biener  <rguenther@suse.de>
3178         PR tree-optimization/83202
3179         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
3180         (bst_fail): Use it.
3181         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
3182         nodes vectorized to the same stmts multiple times.
3183         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
3184         (vect_analyze_slp_instance): Adjust.
3185         (scalar_stmts_to_slp_tree_map_t): New typedef.
3186         (vect_schedule_slp_instance): Add a map recording the SLP node
3187         representing the vectorized stmts for a set of scalar stmts.
3188         Avoid code-generating redundancies.
3189         (vect_schedule_slp): Allocate map and pass it down.
3191 2017-11-29  Nathan Sidwell  <nathan@acm.org>
3193         PR c++/83187
3194         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
3195         type if it is new.
3197 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
3199         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
3200         cases for printing LDP/STP memory addresses.
3201         (aarch64_print_address_internal): Renamed from
3202         aarch64_print_operand_address, added parameter, add Pmode check.
3203         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
3204         (aarch64_print_operand_address): Indirect to
3205         aarch64_print_address_internal.
3206         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
3207         'y' operand output specifier.
3209 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
3211         PR middle-end/83185
3212         * tree.c (build_simple_mem_ref_loc): Handle
3213         get_addr_base_and_unit_offset returning a MEM_REF.
3215         PR middle-end/80929
3216         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
3218         PR target/80819
3219         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
3220         alternative.
3222 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
3224         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
3225         m_x_offset.
3226         (layout::move_to_column): Likewise.
3228 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
3230         PR sanitizer/81275
3231         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
3232         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
3234 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3235             Martin Jambor  <mjambor@suse.cz>
3237         PR ipa/82808
3238         * tree.h (expr_type_first_operand_type_p): Declare
3239         * tree.c (expr_type_first_operand_type_p): New function.
3240         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
3241         (ipa_value_from_jfunc): Adjust declaration.
3242         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
3243         Use it as result type for arithmetics, unless it is NULL in which case
3244         be more conservative.
3245         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
3246         ipa_get_jf_pass_through_result.
3247         (propagate_vals_across_pass_through): Likewise.
3248         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
3249         is to propagate_vals_across_pass_through.
3250         (propagate_constants_across_call): Pass PARM_TYPE to
3251         propagate_scalar_across_jump_function.
3252         (find_more_scalar_values_for_callers_subset): Pass parameter type to
3253         ipa_value_from_jfunc.
3254         (cgraph_edge_brings_all_scalars_for_node): Likewise.
3255         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
3256         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
3257         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
3258         target_type, pass it to ipa_value_from_jfunc.
3259         (update_indirect_edges_after_inlining): Pass parameter type to
3260         try_make_edge_direct_simple_call.
3262 2017-11-28  Jeff Law  <law@redhat.com>
3264         * gimple-ssa-evrp-analyze.c
3265         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
3266         refine ranges if scev_initialized_p returns true.
3267         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
3269 2017-11-28  Julia Koval  <julia.koval@intel.com>
3271         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
3272         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
3273         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
3274         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
3275         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
3276         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
3277         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
3278         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
3279         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
3280         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
3281         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
3282         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
3283         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
3284         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
3285         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
3286         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
3287         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
3288         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
3289         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
3290         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
3291         __builtin_ia32_vpshrd_v2di_mask): New builtins.
3292         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
3294 2017-11-28  Julia Koval  <julia.koval@intel.com>
3296         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
3297         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
3298         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
3299         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
3300         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
3301         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
3302         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
3303         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
3304         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
3305         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
3306         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
3307         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
3308         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
3309         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
3310         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
3311         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
3312         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
3313         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
3314         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
3315         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
3316         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
3317         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
3318         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
3319         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
3320         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
3321         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
3322         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
3323         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
3324         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
3325         __builtin_ia32_vpshld_v2di_mask): New builtins.
3326         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
3327         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
3329 2017-11-28  Richard Biener  <rguenther@suse.de>
3331         PR tree-optimization/80776
3332         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
3333         Declare.
3334         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
3335         New function.
3336         (evrp_range_analyzer::record_ranges_from_incoming_edges):
3337         If the incoming edge is an effective fallthru because the other
3338         edge only reaches a __builtin_unreachable () then record ranges
3339         derived from the controlling condition in SSA info.
3340         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
3341         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
3343 2017-11-28  Olivier Hainque  <hainque@adacore.com>
3345         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
3346         on mingw build hosts.
3348 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
3350         PR debug/81307
3351         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
3353 2017-11-28  Richard Biener  <rguenther@suse.de>
3355         PR middle-end/83141
3356         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
3357         copies generated from memcpy use a character array as reference
3358         type.
3360 2017-11-28  Julia Koval  <julia.koval@intel.com>
3361             Sebastian Peryt  <sebastian.peryt@intel.com>
3363         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
3364         c-family/c-cilkplus.o, c-family/array-notation-common.o,
3365         cilk-common.o, cilk.h, cilk-common.c): Remove.
3366         * builtin-types.def
3367         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
3368         * builtins.c (is_builtin_name): Remove cilkplus condition.
3369         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
3370         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
3371         cilk-builtins.def, cilkplus.def): Remove.
3372         * cif-code.def (CILK_SPAWN): Remove.
3373         * cilk-builtins.def: Delete.
3374         * cilk-common.c: Ditto.
3375         * cilk.h: Ditto.
3376         * cilkplus.def: Ditto.
3377         * config/darwin.h (fcilkplus): Delete.
3378         * cppbuiltin.c: Ditto.
3379         * doc/extend.texi: Remove cilkplus doc.
3380         * doc/generic.texi: Ditto.
3381         * doc/invoke.texi: Ditto.
3382         * doc/passes.texi: Ditto.
3383         * gcc.c (fcilkplus): Remove.
3384         * gengtype.c (cilk.h): Remove.
3385         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
3386         support.
3387         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
3388         Remove.
3389         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
3390         gimplify_call_expr,
3391         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
3392         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
3393         cilkplus conditions.
3394         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
3395         inline_read_section): Ditto.
3396         * ipa-inline-analysis.c (cilk.h): Remove.
3397         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
3398         * lto-wrapper.c (merge_and_complain, append_compiler_options,
3399         append_linker_options): Remove condition for fcilkplus.
3400         * lto/lto-lang.c (cilk.h): Remove.
3401         (lto_init): Remove condition for fcilkplus.
3402         * omp-expand.c (expand_cilk_for_call): Delete.
3403         (expand_omp_taskreg, expand_omp_for_static_chunk,
3404         expand_omp_for): Remove cilkplus
3405         conditions.
3406         (expand_cilk_for): Delete.
3407         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
3408         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
3409         execute_lower_omp, diagnose_sb_0): Ditto.
3410         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
3411         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
3412         * tree-nested.c: Ditto.
3413         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
3414         (dump_generic_node): Ditto.
3415         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
3416         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
3417         Delete.
3418         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
3420 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3422         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
3423         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
3424         for vector mode and !TARGET_SIMD.
3426 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
3428         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
3429         Adjust comment.
3430         * tree.h (SWITCH_LABELS): Remove.
3431         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
3432         assert SWITCH_BODY is non-NULL.
3433         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
3434         handling.
3435         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
3437         PR tree-optimization/80788
3438         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
3439         has TREE_OVERFLOW set, call drop_tree_overflow.
3441 2017-11-28  Richard Biener  <rguenther@suse.de>
3443         PR tree-optimization/83158
3444         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
3446 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
3448         PR 81288/target
3449         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
3450         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
3452 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
3454         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
3455         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
3457 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3459         PR middle_end/82333
3460         * varasm.c (compare_constant): Take the mode of the constants into
3461         account when comparing floating point constants.
3463 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
3465         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
3466         from explicit instantiation of debug_helper.
3467         * vec.h (DEFINE_DEBUG_VEC): Ditto.
3469 2017-11-27  Richard Biener  <rguenther@suse.de>
3471         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
3472         refactor a bit.
3474 2017-11-27  Richard Biener  <rguenther@suse.de>
3476         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
3477         (type_hash_canon): Also clear int_cst_hash_table entry for
3478         TYPE_MIN/MAX_VALUE.
3479         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
3481 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
3483         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
3484         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
3485         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
3487 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
3489         * hash-map.h (gt_cleare_cache): Avoid UB.
3491 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
3493         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
3494         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
3495         (decide_unroll_runtime_iterations): Likewise.
3496         (decide_unroll_stupid): Likewise.
3498 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
3500         PR target/83109
3501         * config/i386/i386.md: Add a loop with incssp.
3503 2017-11-27  Martin Jambor  <mjambor@suse.cz>
3505         PR tree-optimization/81248
3506         * tree-sra.c (splice_param_accesses): Remove size check.
3507         (decide_one_param_reduction): Fix size check.
3508         * gimple-pretty-print.c (dump_profile): Silence warning.
3509         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
3511 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
3513         PR debug/81307
3514         * dbxout.c (lastlineno): New variable.
3515         (dbx_debug_hooks): Use dbxout_switch_text_section as
3516         switch_text_section debug hook.
3517         (dbxout_function_end): Switch to current_function_section
3518         rather than function_section.  If crtl->has_bb_partition,
3519         output just one N_FUN, depending on in_cold_section_p.
3520         (dbxout_source_line): Remember last lineno in lastlineno.
3521         (dbxout_switch_text_section): New function.
3522         (dbxout_function_decl): Adjust dbxout_block caller.
3523         (dbx_block_with_cold_children): New function.
3524         (dbxout_block): Return true if any LBRAC/RBRAC have been
3525         emitted.  Use dbx_block_with_cold_children at depth == 0
3526         in second partition.  Add PARENT_BLOCKNUM argument, pass
3527         it optionally adjusted to children.  Output LBRAC/RBRAC
3528         around recursive call only if the block is in the current
3529         partition, if not and anything was output, emit empty
3530         range LBRAC/RBRAC.
3531         * final.c (final_scan_insn): Compute cold_function_name
3532         before calling switch_text_section debug hook.  Call
3533         that hook even if dwarf2out_do_frame if not emitting
3534         dwarf debug info.
3536         PR target/83100
3537         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
3538         TREE_READONLY decls.
3540 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
3542         PR rtl-optimization/82488
3543         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
3545 2017-11-26  Julia Koval  <julia.koval@intel.com>
3547         * config/i386/i386.c (processor_target_table): Add skylake_cost for
3548         skylake-avx512.
3549         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
3550         skylake_cost): New.
3552 2017-11-26  Julia Koval  <julia.koval@intel.com>
3554         * config/i386/driver-i386.c (host_detect_local_cpu):
3555         Detect skylake-avx512.
3557 2017-11-26  Julia Koval  <julia.koval@intel.com>
3559         * config.gcc: Add -march=cannonlake.
3560         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
3561         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
3562         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
3563         (PTA_CANNONLAKE): New.
3564         (processor_target_table): Add cannonlake.
3565         (ix86_option_override_internal): Ditto.
3566         (fold_builtin_cpu): Ditto.
3567         (get_builtin_code_for_version): Handle cannonlake.
3568         (M_INTEL_COREI7_CANNONLAKE): New.
3569         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
3570         * doc/invoke.texi: Add -march=cannonlake.
3572 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
3574         * plugin.c (add_new_plugin): Use platform-specific library extensions.
3575         (try_init_one_plugin): Alternative implementation for MinGW.
3576         * Makefile.in (plugin_implib): New.
3577         (gengtype-lex.c): Fix broken AIX workaround.
3578         * configure: Regenerate.
3579         * doc/plugins.texi: Document support for MinGW.
3581 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
3583         PR rtl-optimization/81553
3584         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
3585         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
3586         is a shift where C1 has different mode than the whole shift, use C1's
3587         mode for MULT rather than the shift's mode.
3589         PR target/82848
3590         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
3591         builtins not enabled in the currently selected ISA.
3593 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
3595         PR tree-optimization/71026
3596         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
3597         (insert_reciprocals): Change to insert reciprocals before a division
3598         by a square and to insert the square of a reciprocal.
3599         (execute_cse_reciprocals_1): Change to consider division by a square.
3600         (register_division_in): Add importance parameter.
3602 2017-11-24  Richard Biener  <rguenther@suse.de>
3604         PR tree-optimization/82402
3605         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
3606         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3608 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
3610         * match.pd (0-ptr): New transformation.
3612 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
3614         PR bootstrap/83015
3615         * ipa-inline.c (inline_small_functions): Set current badnes correctly
3616         when skipping checking.
3618 2017-11-24  Richard Biener  <rguenther@suse.de>
3620         PR tree-optimization/83128
3621         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
3622         (vn_reference_lookup_3): Likewise.
3624 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
3626         PR sanitizer/83014
3627         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
3628         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
3629         tree_to_uhwi twice.
3631         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
3632         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
3633         check for the latter with gimple_call_builtin_p.  Do not handle
3634         BUILT_IN_STPNCPY_CHK which is not a pass through call.
3636 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
3638         * config/arm/arm_neon.h: Fix pragma GCC push_options before
3639         vdot_u32.
3641 2017-11-23  Julia Koval  <julia.koval@intel.com>
3643         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
3644         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
3645         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
3646         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
3647         _mm512_maskz_expandloadu_epi16): New intrinsics.
3648         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
3649         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
3650         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
3651         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
3652         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
3653         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
3654         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
3655         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
3656         _mm256_maskz_expandloadu_epi8): New intrinsics.
3657         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
3658         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
3659         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
3660         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
3661         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
3662         * config/i386/sse.md (VI248_VLBW): New iterator.
3663         (expand<mode>_mask, expand<mode>_maskz): New patterns.
3665 2017-11-23  Julia Koval  <julia.koval@intel.com>
3667         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
3668         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
3669         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
3670         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
3671         _mm512_mask_compressstoreu_epi16): New.
3672         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
3673         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
3674         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
3675         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
3676         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
3677         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
3678         _mm256_mask_compressstoreu_epi8): New.
3679         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
3680         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
3681         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
3682         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
3683         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
3684         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
3685         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
3686         __builtin_ia32_compresshi128_mask,
3687         __builtin_ia32_compressstoreuqi512_mask,
3688         __builtin_ia32_compressstoreuhi512_mask,
3689         __builtin_ia32_compressstoreuqi256_mask,
3690         __builtin_ia32_compressstoreuqi128_mask,
3691         __builtin_ia32_compressstoreuhi256_mask,
3692         __builtin_ia32_compressstoreuhi128_mask): New builtins.
3693         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
3694         array for flags2.
3695         (ix86_expand_special_args_builtin): Handle new types.
3696         (s4fma_expand): Handle new builtin array.
3697         * config/i386/immintrin.h: Include new headers.
3698         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
3699         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
3701 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
3703         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
3704         fixes.  Declare temp and g variables at the top in order to avoid
3705         {} in most of the cases.
3707 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
3709         * match.pd (ptr-0): New transformation.
3711 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
3713         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
3714         (struct addr_mode_cost_table): New.
3715         (struct tune_params): Add field addr_mode_costs.
3716         * config/arm/arm.c (generic_addr_mode_costs): New.
3717         (arm_slowmul_tune): Initialise addr_mode_costs field.
3718         (arm_fastmul_tune): Likewise.
3719         (arm_strongarm_tune): Likewise.
3720         (arm_xscale_tune): Likewise.
3721         (arm_9e_tune): Likewise.
3722         (arm_marvell_pj4_tune): Likewise.
3723         (arm_v6t2_tune): Likewise.
3724         (arm_cortex_tune): Likewise.
3725         (arm_cortex_a8_tune): Likewise.
3726         (arm_cortex_a7_tune): Likewise.
3727         (arm_cortex_a15_tune): Likewise.
3728         (arm_cortex_a35_tune): Likewise.
3729         (arm_cortex_a53_tune): Likewise.
3730         (arm_cortex_a57_tune): Likewise.
3731         (arm_exynosm1_tune): Likewise.
3732         (arm_xgene1_tune): Likewise.
3733         (arm_cortex_a5_tune): Likewise.
3734         (arm_cortex_a9_tune): Likewise.
3735         (arm_cortex_a12_tune): Likewise.
3736         (arm_cortex_a73_tune): Likewise.
3737         (arm_v7m_tune): Likewise.
3738         (arm_cortex_m7_tune): Likewise.
3739         (arm_v6m_tune): Likewise.
3740         (arm_fa726te_tune): Likewise.
3741         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
3743 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
3745         * config/arm/arm.c (arm_mem_costs): New function.
3746         (arm_rtx_costs_internal): Use arm_mem_costs.
3748 2017-11-23  Mark Wielaard  <mark@klomp.org>
3750         * dwarf2out.c (init_sections_and_labels): Use generation to create
3751         unique ranges_section_label and ranges_base_label. Return generation.
3752         (output_rnglists): Add generation argument. Use generation to create
3753         unique ranges labels.
3754         (dwarf2out_finish): Get generation from init_sections_and_labels
3755         and pass generation to output_rnglists.
3757 2017-11-23  Mike Stump  <mikestump@comcast.net>
3758             Eric Botcazou  <ebotcazou@adacore.com>
3760         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
3761         * cfgloop.h (struct loop): Add unroll field.
3762         * function.h (struct function): Add has_unroll bitfield.
3763         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
3764         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
3765         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
3766         (pass_rtl_unroll_loops::gate): Likewise.
3767         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
3768         for which loop->unroll==1.
3769         (decide_unroll_constant_iterations): Use note for consistency and
3770         take loop->unroll into account.  Return early if loop->unroll is set.
3771         Fix thinko in existing test.
3772         (decide_unroll_runtime_iterations): Use note for consistency and
3773         take loop->unroll into account.
3774         (decide_unroll_stupid): Likewise.
3775         * lto-streamer-in.c (input_cfg): Read loop->unroll.
3776         * lto-streamer-out.c (output_cfg): Write loop->unroll.
3777         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
3778         New case.
3779         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
3780         (print_loop): Print loop->unroll if set.
3781         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
3782         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
3783         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
3784         New case.
3785         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
3786         loop->unroll is set and smaller than the trip count.  Otherwise bypass
3787         entirely the heuristics if loop->unroll is set.  Remove dead note.
3788         Fix off-by-one bug in other note.
3789         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
3790         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
3791         is greater than 1.
3792         (tree_unroll_loops_completely): Make static.
3793         (pass_complete_unroll::execute): Use correct type for variable.
3794         (pass_complete_unrolli::execute): Fix formatting.
3795         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
3797 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3799         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
3800         enable when TARGET_PREFER_AVX128 is set.
3802 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
3804         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
3805         frequency.
3806         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
3807         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
3809 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
3811         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
3812         frequencies. Fix estimation of aggregate parameters.
3814 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
3816         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
3817         when inlining.
3819 2017-11-23  Tom de Vries  <tom@codesourcery.com>
3821         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
3823 2017-11-23  Tom de Vries  <tom@codesourcery.com>
3825         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
3826         macro.
3828 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
3830         PR target/83111
3831         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
3832         sibcall_value_pcrel_fdpic): Use local variable instead of
3833         operands[3].
3834         (calli_tbr_rel): Add missing operand 2.
3835         (call_valuei_tbr_rel): Add missing operand 3.
3837 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
3839         PR middle-end/82253
3840         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
3841         bitpos/bitsize covering the whole destination, use store_expr only if
3842         the complex mode is the same.  Otherwise, use expand_normal and if
3843         it returns CONCAT, subreg each part separately instead of trying to
3844         subreg the whole result.
3846 2017-11-23  Richard Biener  <rguenther@suse.de>
3848         PR tree-optimization/23094
3849         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
3850         come here from walking over backedges in the first iteration.
3851         (vn_reference_lookup_3): Skip clobbers that store the same value.
3853 2017-11-23  Richard Biener  <rguenther@suse.de>
3855         PR tree-optimization/81403
3856         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
3857         a block we need a leader relative to.
3858         (phi_translate_1): For nary processing require a leader from
3859         get_representative_for given we run expression simplification
3860         using match-and-simplify.  Remove previous fix.
3862 2017-11-22  Jeff Law  <law@redhat.com>
3864         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
3865         Use new method allocate_value_range rather than accessing the
3866         vrp_value_range_pool data member directly.
3867         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
3868         to use extract_range_from_stmt method to avoid need for
3869         extract_range_from_assignment method.
3870         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
3871         method rather than setting values_propgated data member directly.
3872         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
3873         and values propagated data members and extract_range_from_assignment
3874         method.  Reorder private data members to conform to standards.
3875         Add new methods set_lattice_propagation_complete and
3876         allocate_value_range.
3878 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
3880         PR rtl-optimization/83030
3881         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
3882         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
3883         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
3884         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
3885         CROSSING_JUMP_P flag is already set before setting it.
3886         * cfgrtl.c (fixup_partition_crossing): Likewise.
3887         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
3888         insn as useless.
3890 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
3892         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
3893         Handle the case where both arguments are using gen_const_vec_series.
3895 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
3897         PR c++/62170
3898         * pretty-print.c (pp_format): Move quoting implementation to
3899         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
3900         to pass address of "quote" local.
3901         (pp_begin_quote): New function.
3902         (pp_end_quote): New function.
3903         * pretty-print.h (printer_fn): Convert penultimate param from bool
3904         to bool *.
3905         (pp_begin_quote): New decl.
3906         (pp_end_quote): New decl.
3907         * tree-diagnostic.c (default_tree_printer): Convert penultimate
3908         param from bool to bool *.
3909         * tree-diagnostic.h (default_tree_printer): Likewise.
3911 2017-11-22  Jeff Law  <law@redhat.com>
3913         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
3914         Initialize vr_values.
3915         (evrp_range_analyzer::try_find_new_range): Call methods attached to
3916         vr_values via vr_values class instance rather than delegators.
3917         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
3918         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
3919         (evrp_range_analyzer::push_value_range): Likewise.
3920         (evrp_range_analyzer::pop_value_range): Likewise.
3921         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
3922         most delegators.  Those remaining are exposed as public interfaces.
3923         Make vr_values a pointer and private.
3924         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
3925         vr_values.
3926         (evrp_range_analyzer::get_vr_value): New method.
3927         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
3928         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
3929         (class evrp_dom_walker): Attach evrp_folder class, initialize
3930         it in the ctor.  Remove temporary delegators.
3931         (evrp_dom_walker::before_dom_children): Call methods in attached
3932         evrp_range_analyzer class via class instance pointer.  Use
3933         free value_range_constant_singleton to remove need for
3934         op_with_constant_singleton_value delegator method.  Do not
3935         create a vrp_prop class instance for every call!  Narrow
3936         scope of a couple variables.
3937         (evrp_dom_walker::cleanup): Call methods in attached
3938         evrp_range_analyzer class via class instance pointer.
3939         * vr-values.h (class vr_values): Privatize many methods and
3940         data members.
3942 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
3944         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
3945         * cfgexpand.c (expand_debug_expr): Remove handling for them.
3946         * expr.c (expand_expr_real_2): Likewise.
3947         * fold-const.c (const_unop): Likewise.
3948         * optabs-tree.c (optab_for_tree_code): Likewise.
3949         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
3950         * tree-inline.c (estimate_operator_cost): Likewise.
3951         * tree-pretty-print.c (dump_generic_node): Likewise.
3952         (op_code_prio): Likewise.
3953         (op_symbol_code): Likewise.
3954         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
3955         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
3956         * internal-fn.c (direct_internal_fn_optab): New function.
3957         (direct_internal_fn_array, direct_internal_fn_supported_p
3958         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
3959         * fold-const-call.c (fold_const_reduction): New function.
3960         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
3961         CFN_REDUC_MIN.
3962         * tree-vect-loop.c: Include internal-fn.h.
3963         (reduction_code_for_scalar_code): Rename to...
3964         (reduction_fn_for_scalar_code): ...this and return an internal
3965         function.
3966         (vect_model_reduction_cost): Take an internal_fn rather than
3967         a tree_code.
3968         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
3969         than assignments.
3970         (vectorizable_reduction): Use internal functions rather than tree
3971         codes for the reduction operation.  Update calls to the functions
3972         above.
3973         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
3974         Use calls to internal functions rather than REDUC tree codes.
3975         * config/aarch64/aarch64-simd.md: Update comment accordingly.
3977 2017-11-22  Olivier Hainque  <hainque@adacore.com>
3979         * config/vxworks.c (vxworks_override_options): Pick default
3980         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
3981         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
3982         DWARF_GNAT_ENCODINGS_DEFAULT.
3983         * config/vxworksae.h: Likewise.
3985 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
3987         PR tree-optimization/83104
3988         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
3989         not result.
3991 2017-11-22  Marek Polacek  <polacek@redhat.com>
3992             H.J. Lu  <hongjiu.lu@intel.com>
3993             Jason Merrill  <jason@redhat.com>
3995         PR c++/60336
3996         PR middle-end/67239
3997         PR target/68355
3998         * calls.c (initialize_argument_information): Call
3999         warn_parameter_passing_abi target hook.
4000         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
4001         argument onto stack.
4002         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
4003         * common.opt: Update -fabi-version description.
4004         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
4005         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
4006         int_size_in_bytes.
4007         (ix86_is_empty_record): New function.
4008         (ix86_warn_parameter_passing_abi): New function.
4009         (TARGET_EMPTY_RECORD_P): Redefine.
4010         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
4011         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
4012         * doc/tm.texi: Regenerated.
4013         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
4014         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
4015         * dwarf2out.c (get_ultimate_context): Move to tree.c.
4016         * explow.c (hard_function_value): Call arg_int_size_in_bytes
4017         instead of int_size_in_bytes.
4018         * expr.c (copy_blkmode_to_reg): Likewise.
4019         * function.c (aggregate_value_p): Return 0 for empty types.
4020         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
4021         target hook.
4022         (locate_and_pad_parm): Call arg size_in_bytes instead
4023         size_in_bytes.
4024         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
4025         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
4026         * target.def (empty_record_p, warn_parameter_passing_abi): New target
4027         hooks.
4028         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
4029         (std_gimplify_va_arg_expr): Skip empty records.  Call
4030         arg_size_in_bytes instead size_in_bytes.
4031         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
4032         * tree-core.h (tree_type_common): Add empty_flag.
4033         (tree_decl_common): Update comments.
4034         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
4035         DECL_PADDING_P.
4036         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
4037         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
4038         DECL_PADDING_P.
4039         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
4040         * tree.c (default_is_empty_type): New function.
4041         (default_is_empty_record): New function.
4042         (arg_int_size_in_bytes): New function.
4043         (arg_size_in_bytes): New function.
4044         (get_ultimate_context): New function.
4045         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
4046         TRANSLATION_UNIT_WARN_EMPTY_P.
4047         (default_is_empty_record, arg_int_size_in_bytes,
4048         arg_size_in_bytes, get_ultimate_context): Declare.
4050 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4052         * config/arm/arm.c (cmse_clear_registers): New function.
4053         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
4054         code by call to cmse_clear_registers.
4055         (cmse_nonsecure_entry_clear_before_return): Likewise.
4057 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
4059         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
4060         (vdot_s32, vdotq_s32): New.
4061         (vdot_lane_u32, vdotq_lane_u32): New.
4062         (vdot_lane_s32, vdotq_lane_s32): New.
4065 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4067         PR middle-end/82547
4068         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
4069         for unsigned values with fewer HWIs than the precision.
4070         (test_overflow): New function.
4071         (wide_int_cc_tests): Call it.
4073 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4075         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
4076         has the same mode class as Pmode.
4078 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4080         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
4081         padding_bits_to_clear_ptr.
4082         (cmse_nonsecure_entry_clear_before_return): Likewise.
4084 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4086         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
4087         auto_sbitap instead of integer bitfield to control register needing
4088         clearing.
4090 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
4092         PR tree-optimization/83044
4093         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
4094         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
4095         that need the upper bound.  Subtract offset from
4096         get_addr_base_and_unit_offset only if positive and subtract it
4097         before division by eltsize rather than after it.
4099         PR debug/83084
4100         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
4101         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
4102         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
4103         asm.
4105         PR middle-end/82875
4106         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
4107         expand_binop with *mul_widen_optab, make sure at least one of the
4108         operands doesn't have VOIDmode.
4110         PR debug/83034
4111         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
4113         PR rtl-optimization/82044
4114         PR tree-optimization/82042
4115         * dse.c (record_store): Check for overflow.
4116         (check_mem_read_rtx): Properly check for overflow if width == -1, call
4117         add_wild_read instead of clear_rhs_from_active_local_stores on
4118         overflow and log it into dump_file.
4120 2017-11-22  Richard Biener  <rguenther@suse.de>
4122         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
4123         fake edges to exit when looking for a place to insert.
4124         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
4125         and remove.
4126         (insert_into_preds_of_block): Commit edge insertion immediately,
4127         assert that doesn't require new BBs.
4128         (fini_pre): Release expressions.
4129         (pass_pre::execute): Shuffle things around a bit, if the fn
4130         is too large do not compute AVAIL either as this is really the
4131         quadratic bit.
4133 2017-11-22  Richard Biener  <rguenther@suse.de>
4135         PR tree-optimization/83089
4136         * tree-if-conv.c (pass_if_conversion::execute): If anything
4137         changed reset SCEV and free the number of iteration estimates.
4139 2017-11-21  Martin Sebor  <msebor@redhat.com>
4141         PR tree-optimization/82945
4142         * calls.h (warn_nonstring_bound): Remove unused function.
4144 2017-11-21  Martin Sebor  <msebor@redhat.com>
4146         PR tree-optimization/82945
4147         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
4148         * calls.h (maybe_warn_nonstring_arg): Declare new function.
4149         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
4150         functions.
4151         (initialize_argument_information): Call maybe_warn_nonstring_arg.
4152         * calls.h (get_attr_nonstring_decl): Declare new function.
4153         * doc/extend.texi (attribute nonstring): Update.
4154         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
4155         get_attr_nonstring_decl and handle it.
4156         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
4157         detection of nul-termination.
4158         (strlen_to_stridx): Change to a pointer.
4159         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
4160         (pass_strlen::execute): Same.
4162 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4164         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
4165         for the new option -mprefer-vector-width=[none|128|256|512].
4166         * config/i386/i386.c (ix86_target_string): remove old style options
4167         -mprefer-avx256 and make -mprefer-avx128 as alias.
4168         (ix86_option_override_internal):  Apply defaults for the
4169         -mprefer-vector-width=[128|256] option.
4170         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
4171         Implement macros to work with -mprefer-vector-width=.
4172         * config/i386/i386.opt: Implemented option
4173         -mprefer-vector-width=[none|128|256|512].
4174         * doc/invoke.texi: Documentation for
4175         -mprefer-vector-width=[none|128|256|512].
4177 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
4179         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
4181 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
4183         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
4185 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
4187         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
4188         POINTER_PLUS_EXPR.
4189         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
4190         * expr.c (expand_expr_real_2): Likewise.
4191         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
4192         fold_binary_loc): Likewise.
4193         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
4194         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
4195         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
4196         MINUS_EXPR transformations.
4197         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
4198         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
4199         * tree-inline.c (estimate_operator_cost): Likewise.
4200         * tree-pretty-print.c (dump_generic_node, op_code_prio,
4201         op_symbol_code): Likewise.
4202         * tree-vect-stmts.c (vectorizable_operation): Likewise.
4203         * vr-values.c (extract_range_from_binary_expr): Likewise.
4204         * varasm.c (initializer_constant_valid_p_1): Likewise.
4205         * tree.def: New tree code POINTER_DIFF_EXPR.
4207 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
4209         * config/i386/i386.md (*bswap<mode>2_movbe): Add
4210         integer suffix to movbe mnemonic.
4211         (*bswaphi2_movbe): Ditto.
4212         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
4214 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
4216         PR c++/83045
4217         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
4218         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
4219         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
4221 2017-11-21  Martin Liska  <mliska@suse.cz>
4223         * tree-inline.c (expand_call_inline): Remove not needed
4224         xstrdup_for_dump.
4226 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
4227             Jakub Jelinek  <jakub@redhat.com>
4229         PR target/82880
4230         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
4231         Remove static keyword from f variable.
4233 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
4235         PR tree-optimization/83086
4236         * gimple-ssa-store-merging.c
4237         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
4238         rather than n.base_addr.
4240 2017-11-21  Martin Liska  <mliska@suse.cz>
4242         PR rtl-optimization/82044
4243         PR tree-optimization/82042
4244         * dse.c (check_mem_read_rtx): Check for overflow.
4246 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
4248         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
4249         typo in comment.
4251 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
4253         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
4254         and its corresponding call arg location note.
4256 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
4257             Andrew Burgess  <andrew.burgess@embecosm.com>
4259         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
4260         declaration.
4261         (arc_return_slot_offset): Likewise.
4262         (arc_eh_return_address_location): New declaration.
4263         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
4264         (MUST_SAVE_REGISTER): Add exception handler case.
4265         (MUST_SAVE_RETURN_ADDR): Likewise.
4266         (arc_frame_pointer_required): Likewise.
4267         (arc_frame_pointer_needed): New function.
4268         (arc_compute_frame_size): Changed.
4269         (arc_expand_prologue): Likewise.
4270         (arc_expand_epilogue): Likewise.
4271         (arc_initial_elimination_offset): Likewise.
4272         (arc_return_slot_offset): Delete.
4273         (arc_eh_return_address_location): New function.
4274         (arc_builtin_setjmp_frame_value): Likewise.
4275         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
4276         (EH_RETURN_STACKADJ_RTX): Define.
4277         (EH_RETURN_HANDLER_RTX): Likewise.
4278         * config/arc/arc.md (eh_return): Delete.
4280 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
4282         * print-tree.h (debug_vec_tree): Remove prototype.
4283         * gdbinit.in (pvt): Remove macro.
4285 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
4287         PR tree-optimization/83047
4288         * gimple-ssa-store-merging.c
4289         (imm_store_chain_info::output_merged_store): If the loads with the
4290         same vuse are in different basic blocks, for load_gsi pick a load
4291         location that is dominated by the other loads.
4293         PR c++/83059
4294         * config/i386/i386.c (ix86_memmodel_check): Start
4295         -Winvalid-memory-model diagnostics with lowercase letter.
4297         PR debug/82718
4298         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
4299         set in_cold_section_p to the partition containing loc_list->first.
4300         When seeing loc_list->last_before_switch node, update secname and
4301         perform range_across_switch second partition handling only after that.
4303         PR debug/82933
4304         * run-rtl-passes.c: Include debug.h.
4305         (run_rtl_passes): Call debug_hooks->assembly_start.
4306         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
4307         multiple times.
4309         PR target/82981
4310         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
4311         OPTAB_DIRECT in calls to expand_simple_binop.
4313 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
4315         PR c/81404
4316         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
4318 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
4320         PR c++/72786
4321         * spellcheck.h (best_match::blithely_get_best_candidate): New
4322         accessor.
4324 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
4326         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
4327         with lower case letter.
4329 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
4331         * config/i386/i386.md (bswaphi2): New expander.
4332         (*bswaphi2_movbe): New insn pattern.
4333         (bswaphi -> rorhi pepehole2): New peephole pattern.
4335 2017-11-20  Jeff Law  <law@redhat.com>
4337         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
4338         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
4339         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
4340         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
4341         gimple-ssa-evrp-analyze.h.
4343         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
4344         set BB_VISITED here.
4345         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
4347 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
4349         * tree-predcom.c: Add general comment on Store-Store chains.
4350         (split_data_refs_to_components): Postpone clearing eliminate_store_p
4351         flag in component.
4352         (get_chain_last_ref_at): Rename into...
4353         (get_chain_last_write_at): ...this.
4354         (get_chain_last_write_before_load): New function.
4355         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
4356         CT_STORE_STORE when write reference is added.
4357         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
4358         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
4359         (initialize_root_vars_store_elim_1): Ditto.
4360         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
4361         definition is created.
4362         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
4363         chain by replacing it with dominant stored value.
4365 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
4367         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
4369 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
4371         * vr-values.c (extract_range_from_binary_expr): Use a full range
4372         for VR_VARYING.
4374 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4376         * config/arm/arm.md (R4_REGNUM): Define constant.
4377         (nonsecure_call_internal): Remove r4 clobber.
4378         (nonsecure_call_value_internal): Likewise.
4379         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
4380         clobber and resequence match_operands.
4381         (nonsecure_call_value_reg_thumb1_v5): Likewise.
4382         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
4383         (nonsecure_call_value_reg_thumb2): Likewise.
4385 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
4387         PR tree-optimization/78821
4388         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
4389         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
4390         to the address of the base rather than the base itself.
4391         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
4392         (find_bswap_or_nop_finalize): New function.
4393         (find_bswap_or_nop): Use it.
4394         (bswap_replace): Return a tree rather than bool, change first
4395         argument from gimple * to gimple_stmt_iterator, allow inserting
4396         into an empty sequence, allow ins_stmt to be NULL - then emit
4397         all stmts into gsi.  Fix up MEM_REF address gimplification.
4398         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
4399         (struct store_immediate_info): Add N and INS_STMT non-static
4400         data members.
4401         (store_immediate_info::store_immediate_info): Initialize them
4402         from newly added ctor args.
4403         (merged_store_group::apply_stores): Formatting fixes.  Sort by
4404         bitpos at the end.
4405         (stmts_may_clobber_ref_p): For stores call also
4406         refs_anti_dependent_p.
4407         (gather_bswap_load_refs): New function.
4408         (imm_store_chain_info::try_coalesce_bswap): New method.
4409         (imm_store_chain_info::coalesce_immediate_stores): Use it.
4410         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
4411         (imm_store_chain_info::output_merged_store): Fail if number of
4412         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
4413         and NOP_EXPR rhs_code.
4414         (pass_store_merging::process_store): Compute n and ins_stmt, if
4415         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
4416         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
4417         ctor.
4418         (pass_store_merging::execute): Calculate dominators.
4420         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
4421         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
4422         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
4423         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
4424         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
4425         class pass_optimize_bswap, bswap_replace,
4426         pass_optimize_bswap::execute): Moved to ...
4427         * gimple-ssa-store-merging.c: ... this file.
4428         Include optabs-tree.h.
4429         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
4430         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
4431         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
4432         anonymous namespace, remove static keywords.
4433         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
4434         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
4436 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
4438         PR bootstrap/83062
4439         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
4441 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
4443         * vec.h (debug_helper): New function.
4444         (DEFINE_DEBUG_VEC): New macro.
4445         * hash-set.h (debug_helper): New function.
4446         (DEFINE_DEBUG_HASH_SET): New macro.
4447         * cfg.c (debug_slim (edge)): New function.
4448         Call DEFINE_DEBUG_VEC for edges.
4449         Call DEFINE_DEBUG_HASH_SET for edges.
4450         * cfghooks.c (debug_slim (basic_block)): New function.
4451         Call DEFINE_DEBUG_VEC for basic blocks.
4452         Call DEFINE_DEBUG_HASH_SET for basic blocks.
4453         * print-tree.c (debug_slim): New function to handle trees.
4454         Call DEFINE_DEBUG_VEC for trees.
4455         Call DEFINE_DEBUG_HASH_SET for trees.
4456         (debug (vec<tree, va_gc>) &): Remove.
4457         (debug (<vec<tree, va_gc>) *): Remove.
4458         * print-rtl.c (debug_slim): New function to handle const_rtx.
4459         Call DEFINE_DEBUG_VEC for rtx_def.
4460         Call DEFINE_DEBUG_VEC for rtx_insn.
4461         Call DEFINE_DEBUG_HASH_SET for rtx_def.
4462         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
4463         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
4464         (debug (vec<rtx_insn *> *ptr): Remove.
4465         (debug_insn_vector): Remove.
4466         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
4468 2017-11-20  Tom de Vries  <tom@codesourcery.com>
4470         PR rtl-optimization/82020
4471         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
4472         IF_THEN_ELSE condition.
4474 2017-11-19  Jeff Law  <law@redhat.com>
4476         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
4477         of degenerates resulting from ignoring an edge.
4479 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4481         PR ipa/81360
4482         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
4484 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4486         PR ipa/83001
4487         * profile-count.c (profile_count::to_sreal_scale): Fix return value
4488         for uninitialied counts.
4490 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4492         PR ipa/60243
4493         * tree-inline.c (estimate_num_insns): Set to 1 at least.
4495 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4497         PR target/82713
4498         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
4500 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4502         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
4503         "do while (0)".
4505 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4507         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
4508         "do {} while (0)".
4510 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4512         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
4513         macro body.
4515 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4517         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
4518         "do {} while (0)".
4519         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
4521 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4523         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
4524         "do {} while (0)".
4525         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
4526         semicolon after MCORE_EXPORT_NAME call.
4528 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4530         PR target/82961
4531         * vmsdbgout.c (vmsdbgout_early_finish): New function.
4532         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
4534 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
4536         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
4537         (cgraph_edge::clone): Cleanup updating of profile.
4538         * ipa-cp.c (update_profiling_info): Likewise.
4539         * ipa-inline-transform.c (inline_transform): Likewise.
4540         * ipa-inline.c (inline_small_functions): Add missing space to dump.
4541         * ipa-split.c (execute_split_functions): Do not split when function
4542         is cold.
4543         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
4544         * profile-count.c (profile_count::dump): Add global0.
4545         (profile_count::to_cgraph_frequency): Do not ICE when entry is
4546         undefined.
4547         (profile_count::to_sreal_scale): Likewise.
4548         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
4549         (profile_count::combine_with_ipa_count): New function.
4550         * profile-count.h (profile_guessed_global0adjusted): New.
4551         (profile_count::adjusted_zero): New.
4552         (profile_count::global0adjusted): New.
4553         (profile_count::combine_with_ipa_count): New.
4554         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
4555         correct profile of return block of split functions.
4556         (copy_cfg_body): Remove unused profile_count.
4557         (copy_body): Likewise.
4558         (expand_call_inline): Update.
4559         (tree_function_versioning): Update.
4561 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
4563         * hash-set.h (hash_set::empty): New.
4564         * tree-ssa-threadbackward.h: Delete.
4565         * tree-ssa-threadbackward.c (class thread_jumps): New.
4566         Move max_threaded_paths into class.
4567         (fsm_find_thread_path): Remove arguments that are now in class.
4568         (profitable_jump_thread_path): Rename to...
4569         (thread_jumps::profitable_jump_thread_path): ...this.
4570         (convert_and_register_jump_thread_path): Rename to...
4571         (thread_jumps::convert_and_register_current_path): ...this.
4572         (check_subpath_and_update_thread_path): Rename to...
4573         (thread_jumps::check_subpath_and_update_thread_path): ...this.
4574         (register_jump_thread_path_if_profitable): Rename to...
4575         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
4576         (handle_phi): Rename to...
4577         (thread_jumps::handle_phi): ...this.
4578         (handle_assignment): Rename to...
4579         (thread_jumps::handle_assignment): ...this.
4580         (fsm_find_control_statement_thread_paths): Rename to...
4581         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
4582         (find_jump_threads_backwards): Rename to...
4583         (thread_jumps::find_jump_threads_backwards): ...this.
4584         Initialize path local data.
4585         (pass_thread_jumps::execute): Call find_jump_threads_backwards
4586         from within thread_jumps class.
4587         (pass_early_thread_jumps::execute): Same.
4589 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4591         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
4593 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
4595         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
4596         to canonical location.
4598 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
4600         PR target/81356
4601         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
4602         Remove.
4603         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
4605 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
4607         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
4608         rcrt1.o%s/grcrt1.o%s for -static-pie.
4610 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4612         * i386.c (ix86_multiplication_cost, ix86_division_cost,
4613         ix86_shift_rotate_cost): Break out from ...
4614         (ix86_rtx_costs): ... here.
4615         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
4616         vector operations.
4618 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4620         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
4621         when entry block was promoted unlikely.
4622         (estimate_bb_frequencies): Increase frequency scale.
4623         * profile-count.h (profile_count): Export precision info.
4625 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4627         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
4628         disturbin profile of entry block.
4630 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4632         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
4633         roundoff errors.
4635 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4637         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
4638         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
4640 2017-11-17  Jeff Law  <law@redhat.com>
4642         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
4643         from evrp_dom_walker class.  Various methods moved into new class.
4644         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
4645         (evrp_range_analyzer::enter): New method.
4646         (evrp_range_analyzer::leave): New method.
4647         (evrp_dom_walker): Remove delegators no longer needed by this class.
4648         Replace vr_values data member with evrp_range_analyzer
4650         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
4651         method extracted from evrp_dom_walker::before_dom_children.
4652         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
4653         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
4655         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
4656         Add private copy constructor and move assignment operators.
4657         Privatize methods and class data where trivially possible.
4658         (evrp_dom_walker::cleanup): New function, extracted from
4659         execute_early_vrp.  Simplify access to class data.
4661         * vr-values.h (get_output_for_vrp): Prototype.
4662         * vr-values.c (get_output_for_vrp): New function extracted from
4663         vrp_visit_assignment_or_call and extract_range_from_stmt.
4664         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
4666 2017-11-17  Luis Machado  <luis.machado@linaro.org>
4668         * config/aarch64/aarch64.c
4669         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
4670         (qdf24xx_tunings) <autoprefetcher_model>: Set to
4671         tune_params::AUTOPREFETCHER_WEAK.
4673 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
4675         PR target/82641
4676         * config/arm/arm.c (arm_valid_target_attribute_rec):
4677         Parse "arch=" and "+<ext>".
4678         (arm_valid_target_attribute_tree): Re-init global options.
4679         (arm_option_override): Make non-static.
4680         (arm_options_perform_arch_sanity_checks): Make errors fatal.
4681         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
4682         (__ARM_FEATURE_CRC32): Support undef.
4683         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
4684         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
4686 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
4688         * gdbinit.in (break-on-diagnostic): New command.
4690 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4692         * config/i386/i386.c (ix86_expand_epilogue): Change simple
4693         return to indirect jump for EH return if control-flow
4694         protection is enabled. Change explicit 'false' argument in
4695         pro_epilogue_adjust_stack with a value of
4696         flag_cf_protection.
4697         * config/i386/i386.md (simple_return_indirect_internal):
4698         Remove SImode restriction to support 64-bit.
4700 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
4702         * combine.c (added_notes_insn): New.
4703         (try_combine): Handle added_notes_insn like added_links_insn.
4704         Rewrite return value code.
4705         (distribute_notes): Set added_notes_insn to the earliest insn we added
4706         a note to.
4708 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
4710         PR rtl-optimization/82621
4711         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
4712         dest of one of those SETs is unused.
4714 2017-11-17  Richard Biener  <rguenther@suse.de>
4716         PR fortran/83017
4717         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
4718         * tree-pretty-print.c (dump_generic_node): Handle
4719         annot_expr_parallel_kind.
4720         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
4721         * gimplify.c (gimple_boolify): Likewise.
4723 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4725         * config.gcc (extra_headers): Add cet.h for x86 targets.
4726         * config/i386/cet.h: New file.
4727         * doc/install.texi: Add --enable-cet/--disable-cet.
4729 2017-11-17  Richard Biener  <rguenther@suse.de>
4731         PR tree-optimization/83017
4732         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
4733         (gen_parallel_loop): Properly count iterations.
4734         (parallelize_loops): Handle loop->can_be_parallel independent
4735         of flag_loop_parallelize_all.  Make static profitability test match
4736         the runtime one.
4737         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
4738         * invoke.texi (parloops-min-per-thread): Document.
4740 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
4742         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
4743         upstreaming review comments.
4745 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
4747         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
4748         with fast unaligned access.
4749         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
4751 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4753         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
4754         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
4756 2017-11-17  Richard Biener  <rguenther@suse.de>
4758         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
4759         folding of references.
4761 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
4763         PR middle-end/78809
4764         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
4765         of replacing call to strncmp with corresponding call to strcmp when
4766         meeting conditions.
4768 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4770         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
4771         option prefer-avx256 for skylake-avx512 configuration.
4772         * config/i386/i386.c (ix86_option_override_internal): Ditto.
4773         (get_builtin_code_for_version): Ditto.
4775 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
4776             Monk Chiang  <sh.chiang04@gmail.com>
4778         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
4779         (FIXED_REGISTERS): Reserve more register numbers.
4780         (CALL_USED_REGISTERS): Likewise.
4781         (REG_ALLOC_ORDER): Likewise.
4782         (REG_CLASS_CONTENTS): Likewise.
4783         (REGISTER_NAMES): Likewise.
4785 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
4786             Kito Cheng  <kito.cheng@gmail.com>
4788         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
4789         V2SI.
4790         * config/nds32/iterators.md: Add vector mode iterators and attributes.
4792 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
4794         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
4795         parameter list for vec_splats.
4797 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
4799         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
4800         date of C17.
4801         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
4803 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
4805         PR bootstrap/82856
4806         * doc/install.texi: Document incompatibility of Perl >=5.6.26
4807         with the required version of automake 1.11.6.
4809 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
4811         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
4812         for it.
4813         (DU_C2_3_power9): Correct reservation combinations.
4814         (FP_DIV_power9, VEC_DIV_power9): New.
4815         (power9-alu): Split out rotate/shift...
4816         (power9-rot): ...to here, correct dispatch resource.
4817         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
4818         resource.
4819         (power9-fp): Correct latency.
4820         (power9-sdiv): Add div/sqrt resource.
4821         (power9-ddiv): Correct latency, add div/sqrt resource.
4822         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
4823         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
4824         resource.
4825         (power9-qpdiv, power9-qpmul): Adjust resource usage.
4827 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
4829         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
4830         switch statement mapping KF built-ins to TF built-ins if we don't
4831         have the proper ISA 3.0 assembler support.
4833 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
4835         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
4836         (lower_emutls_function_body): Do not compute it.
4838 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
4840         * ipa-split.c (split_bb_info): Turn time to sreal.
4841         (split_point): Likewise.
4842         (dump_split_point): Likewise.
4843         (fine_split_points): Likewise.
4844         (execute_split_functions): Only zero split_bbs; turn time to sreals.
4846 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
4848         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
4849         in sreal.
4851 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
4853         * predict.c (combine_predictions_for_bb): Preserve zero predicted
4854         edges.
4855         (expensive_function_p): Remove useless assert.
4856         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
4858 2017-11-16  Martin Sebor  <msebor@redhat.com>
4860         PR tree-optimization/82588
4861         PR tree-optimization/82583
4862         * tree-vrp.c (check_array_ref): Handle flexible array members,
4863         string literals, and inner indices.
4864         (search_for_addr_array): Add detail to diagnostics.
4866 2017-11-16  Nathan Sidwell  <nathan@acm.org>
4868         PR c++/82836
4869         PR c++/82737
4870         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
4871         (SET_DECL_ASSEMBLER_NAME): Forward to
4872         overwrite_decl_assembler_name.
4873         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
4874         (overwrite_decl_assembler_name): Declare.
4875         * tree.c (overwrite_decl_assembler_name): New.
4876         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
4877         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
4878         (LANG_HOOKS_INITIALIZER): Add it.
4879         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
4880         * langhooks.c (lhd_set_decl_assembler_name): Use
4881         SET_DECL_ASSEMBLER_NAME.
4882         (lhd_overwrite_decl_assembler_name): Default implementation.
4884 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
4885             Jackson Woodruff  <jackson.woodruff@arm.com>
4887         PR tree-optimization/71026
4888         * match.pd: Canonicalize constant multiplies in division.
4890 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
4892         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
4893         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
4894         Remove OPT_fomit_frame_pointer entry.
4895         * common/config/arc/arc-common.c: Likewise.
4896         * common/config/arm/arm-common.c: Likewise.
4897         * common/config/avr/avr-common.c: Likewise.
4898         * common/config/c6x/c6x-common.c: Likewise.
4899         * common/config/cr16/cr16-common.c: Likewise.
4900         * common/config/cris/cris-common.c: Likewise.
4901         * common/config/epiphany/epiphany-common.c: Likewise.
4902         * common/config/fr30/fr30-common.c: Likewise.
4903         * common/config/frv/frv-common.c: Likewise.
4904         * common/config/ia64/ia64-common.c: Likewise.
4905         * common/config/iq2000/iq2000-common.c: Likewise.
4906         * common/config/lm32/lm32-common.c: Likewise.
4907         * common/config/m32r/m32r-common.c: Likewise.
4908         * common/config/mcore/mcore-common.c: Likewise.
4909         * common/config/microblaze/microblaze-common.c: Likewise.
4910         * common/config/mips/mips-common.c: Likewise.
4911         * common/config/mmix/mmix-common.c: Likewise.
4912         * common/config/mn10300/mn10300-common.c: Likewise.
4913         * common/config/nios2/nios2-common.c: Likewise.
4914         * common/config/pa/pa-common.c: Likewise.
4915         * common/config/pdp11/pdp11-common.c: Likewise.
4916         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
4917         * common/config/riscv/riscv-common.c: Likewise.
4918         * common/config/rs6000/rs6000-common.c: Likewise.
4919         * common/config/rx/rx-common.c: Likewise.
4920         * common/config/s390/s390-common.c: Likewise.
4921         * common/config/sh/sh-common.c: Likewise.
4922         * common/config/sparc/sparc-common.c: Likewise.
4923         * common/config/tilegx/tilegx-common.c: Likewise.
4924         * common/config/tilepro/tilepro-common.c: Likewise.
4925         * common/config/v850/v850-common.c: Likewise.
4926         * common/config/visium/visium-common.c: Likewise.
4927         * common/config/xstormy16/xstormy16-common.c: Likewise.
4928         * common/config/xtensa/xtensa-common.c: Likewise.
4929         * invoke.texi (-fomit-frame-pointer): Update documentation.
4931 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
4933         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
4935 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
4937         * cfg.c (scale_bbs_frequencies_int,
4938         cale_bbs_frequencies_gcov_type): Remove.
4939         * cfg.h (scale_bbs_frequencies_int,
4940         cale_bbs_frequencies_gcov_type): Remove.
4942 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
4944         * tree-ssa-loop-manip.c
4945         (scale_dominated_blocks_in_loop): Update to profile counts.
4946         (tree_transform_and_unroll_loop): Likewise.
4948 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
4950         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
4951         scale_bbs_frequencies_int.
4953 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
4955         * final.c (compute_alignments): Use counts rather than frequencies.
4957 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
4959         * cfgloopanal.c: Include sreal.h
4960         (average_num_loop_insns): Use counts and sreal for accounting.
4962 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
4964         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
4965         manipulation.
4967 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
4968             Kito Cheng  <kito.cheng@gmail.com>
4970         * config/nds32/constraints.md: Provide more constraints.
4971         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
4972         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
4973         support constraints usage.
4975 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
4977         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
4979 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
4980             Kito Cheng  <kito.cheng@gmail.com>
4982         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
4983         * config/nds32/nds32.opt: Refine the layout.
4984         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
4985         TARGET_EXT_STRING): Support new options.
4986         * config/nds32/nds32.h: Likewise.
4987         * config/nds32/nds32.md: Likewise.
4988         * config/nds32/nds32-predicates.c: Likewise.
4989         * config/nds32/constraints.md: Likewise.
4990         * common/config/nds32/nds32-common.c: Likewise.
4992 2017-11-16  Julia Koval  <julia.koval@intel.com>
4994         PR target/82983
4995         * config/i386/gfniintrin.h: Add sse check.
4996         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
4998 2017-11-16  Julia Koval  <julia.koval@intel.com>
5000         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
5001         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
5002         (ix86_handle_option): Handle -mavx512vbmi2.
5003         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
5004         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
5005         * config/i386/i386-c.c (__AVX512VBMI2__): New.
5006         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
5007         (ix86_valid_target_attribute_inner_p): Ditto.
5008         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
5009         * config/i386/i386.opt (mavx512vbmi2): New option.
5010         * doc/invoke.texi: Add new option.
5012 2017-11-16  Julia Koval  <julia.koval@intel.com>
5014         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
5015         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
5016         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
5017         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
5018         _mm512_gf2p8mul_epi8): New intrinsics.
5019         * config/i386/i386-builtin-types.def
5020         (V64QI_FTYPE_V64QI_V64QI): New type.
5021         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
5022         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
5023         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
5024         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
5025         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
5026         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
5028 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
5030         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
5031         explicitly as a stream of bytes.
5033 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5035         * config/rs6000/altivec.h (vec_xst_be): New #define.
5036         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
5037         and externalize from *altivec_vperm_<mode>_internal.
5038         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
5039         instantiation.
5040         (XL_BE_V8HI): Likewise.
5041         (XL_BE_V4SI): Likewise.
5042         (XL_BE_V4SI): Likewise.
5043         (XL_BE_V2DI): Likewise.
5044         (XL_BE_V4SF): Likewise.
5045         (XL_BE_V2DF): Likewise.
5046         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
5047         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
5048         all array entries with these keys: VSX_BUILTIN_VEC_XL,
5049         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
5050         VSX_BUILTIN_VEC_XST_BE.
5051         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
5052         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
5053         built-ins.
5054         (altivec_init_builtins): Replace conditional calls to def_builtin
5055         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
5056         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
5057         with unconditional calls.  Remove calls to def_builtin for
5058         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
5059         __builtin_vec_xst_be.
5060         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
5061         to define_expand, and add alternate RTL generation for P8.
5062         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
5063         vsx_ld_elemrev_v8hi.
5064         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
5065         add alternate RTL generation for P8.
5066         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
5067         vsx_ld_elemrev_v16qi.
5068         (vsx_st_elemrev_v8hi): Convert define_insn
5069         to define_expand, and add alternate RTL generation for P8.
5070         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
5071         vsx_st_elemrev_v8hi.
5072         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
5073         add alternate RTL generation for P8.
5074         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
5075         vsx_st_elemrev_v16qi.
5077 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
5079         PR target/82990
5080         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
5081         TARGET_AVX512ER check.
5082         (ix86_option_override_internal): Set MASK_VZEROUPPER if
5083         neither -mzeroupper nor -mno-zeroupper is used and
5084         TARGET_EMIT_VZEROUPPER is set.
5085         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
5086         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
5088 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
5090         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
5091         folding of vector compares.
5092         (fold_build_vec_cmp): New helper function.
5093         (fold_compare_helper): New helper function.
5094         (builtin_function_type): Add compare builtins to the list of functions
5095         having unsigned arguments.  Cosmetic updates to comment indentation.
5096         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
5097         the not+eq combination.
5099 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
5101         PR tree-optimization/82726
5102         PR tree-optimization/70754
5103         * tree-predcom.c (order_drefs_by_pos): New function.
5104         (combine_chains): Move code setting has_max_use_after to...
5105         (try_combine_chains): ...here.  New parameter.  Sort combined chains
5106         according to position information.
5107         (tree_predictive_commoning_loop): Update call to above function.
5108         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
5110 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
5112         PR tree-optimization/82726
5113         Revert
5114         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
5116         PR tree-optimization/70754
5117         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
5118         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
5119         combined stmt before it if not NULL.
5120         (combine_chains): Process refs reversely and compute dominance point
5121         for root ref.
5123         Revert
5124         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
5126         PR tree-optimization/79663
5127         * tree-predcom.c (combine_chains): Process refs in reverse order
5128         only for ZERO length chains, and add explaining comment.
5130 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
5132         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
5133         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
5134         * doc/invoke.texi (ARM Options): Add armv8.3-a.
5136 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
5138         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
5140 2017-11-15  Martin Liska  <mliska@suse.cz>
5142         * tree-cfg.c (pass_warn_function_return::execute):
5143         Compare warn_return_type for greater than zero.
5145 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
5147         PR target/82941
5148         PR target/82942
5149         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
5150         to return true on Xeon and not on Xeon Phi.
5151         (ix86_check_avx256_register): Changed to ...
5152         (ix86_check_avx_upper_register): ... this. Add extra check for
5153         VALID_AVX512F_REG_OR_XI_MODE.
5154         (ix86_avx_u128_mode_needed): Changed
5155         ix86_check_avx256_register to ix86_check_avx_upper_register.
5156         (ix86_check_avx256_stores): Changed to ...
5157         (ix86_check_avx_upper_stores): ... this. Changed
5158         ix86_check_avx256_register to ix86_check_avx_upper_register.
5159         (ix86_avx_u128_mode_after): Changed
5160         avx_reg256_found to avx_upper_reg_found. Changed
5161         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
5162         (ix86_avx_u128_mode_entry): Changed
5163         ix86_check_avx256_register to ix86_check_avx_upper_register.
5164         (ix86_avx_u128_mode_exit): Ditto.
5165         * config/i386/i386.h: (host_detect_local_cpu): New define.
5167 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
5169         * config/arm/xgene1.md (xgene1): Split into automatons
5170         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
5171         (xgene1_f_load): Adjust reservations and/or types.
5172         (xgene1_f_store): Likewise.
5173         (xgene1_load_pair): Likewise.
5174         (xgene1_store_pair): Likewise.
5175         (xgene1_fp_load1): Likewise.
5176         (xgene1_load1): Likewise.
5177         (xgene1_store1): Likewise.
5178         (xgene1_move): Likewise.
5179         (xgene1_alu): Likewise.
5180         (xgene1_simd): Likewise.
5181         (xgene1_bfm): Likewise.
5182         (xgene1_neon_load1): Likewise.
5183         (xgene1_neon_store1): Likewise.
5184         (xgene1_neon_logic): Likewise.
5185         (xgene1_neon_st1): Likewise.
5186         (xgene1_neon_ld1r): Likewise.
5187         (xgene1_alu_cond): Added.
5188         (xgene1_shift_reg): Likwise.
5189         (xgene1_bfx): Likewise.
5190         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
5192 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
5194         PR target/82981
5195         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
5196         ssa-iterators.h.
5197         (can_widen_mult_without_libcall): New function.
5198         (expand_mul_overflow): If only checking unsigned mul overflow,
5199         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
5200         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
5201         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
5202         (expand_DIVMOD): Formatting fix.
5203         * expmed.h (expand_mult): Add NO_LIBCALL argument.
5204         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
5205         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
5207         PR tree-optimization/82977
5208         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
5209         constructed temporary to strlen_to_stridx.put.
5211 2017-11-15  Martin Liska  <mliska@suse.cz>
5213         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
5214         * configure: Regenerate.
5216 2017-11-15  Martin Liska  <mliska@suse.cz>
5218         PR target/82927
5219         * config/sh/sh-mem.cc: Use proper probability for
5220         REG_BR_PROB_NOTE.
5222 2017-11-14  Jeff Law  <law@redhat.com>
5224         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
5225         the red zone for stack_clash_protection_final_dynamic_probe targets
5226         when the total dynamic stack size is zero bytes.
5228         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
5229         blocks is post order.
5231 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
5233         * dumpfile.h (TDF_COMPARE_DEBUG): New.
5234         * final.c (rest_of_clean_state): Set it for the
5235         -fcompare-debug dump.
5236         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
5237         class when TDF_COMPARE_DEBUG is set.
5239         * dwarf2out.c (gen_producer_string): Discard
5240         OPT_fcompare_debug.
5242 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
5244         PR c/81156
5245         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
5246         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
5247         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
5248         (__TGMATH_REAL_2_3): Remove macros.
5249         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
5250         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
5251         __builtin_tgmath.
5252         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
5253         __TGMATH_REAL_2.
5254         (remquo): Define using __TGMATH_REAL_3.
5256 2017-11-14  Jeff Law  <law@redhat.com>
5258         * vr-values.c: New file with contents extracted from tree-vrp.c.
5259         * Makefile.in (OBJS): Add vr-values.o
5260         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
5261         (set_value_range, set_and_canonicalize_value_range): Likewise.
5262         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
5263         (value_range_constant_singleton, symbolic_range_p): Likewise.
5264         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
5265         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
5266         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
5267         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
5268         (find_case_label_range, find_case_label_index): Likewise.
5269         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
5270         (range_int_cst_singleton_p, value_inside_range): Likewise.
5271         (get_single_symbol): Likewise.
5272         (switch_update): Move structure definition here.
5273         (to_remove_edges, to_update_switch_stmts): Provide externs.
5274         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
5275         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
5276         (vrp_val_is_min, set_value_range): Likewise.
5277         (set_and_canonicalize_value_range, copy_value_range): Likewise.
5278         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
5279         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
5280         (range_is_nonnull, range_int_cst_p): Likewwise.
5281         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
5282         (get_single_symbol, operand_less_p): Likewise
5283         (compare_values_warnv, compare_values): Likewise.
5284         (value_inside_range, value_range_constant_singleton): Likewise.
5285         (zero_nonzero_bitgs_from_vr): Likewise.
5286         (extract_range_from_binary_expr_1): Likewise.
5287         (overflow_comparison_p): Likewise.
5288         (to_remove_edges, to_update_switch_stmts): Likewise.
5289         (find_case_label-index, find_case_label_range): Likewise.
5290         (switch_update, set_value_range_to_nonnegative): Remove.
5291         (set_value_range_to_truthvalue): Likewise.
5292         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
5293         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
5294         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
5295         (find_case_label_ranges, test_for_singularity): Likewise.
5296         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
5297         (x_vr_values): Move to its remaining use site.
5299 2017-11-10  Jeff Law  <law@redhat.com>
5301         * vr-values.h (VR_INITIALIZER): Move #define here.
5302         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
5303         * Makefile.in (OBJS): Add tree-evrp.o
5304         * tree-vrp.h (assert_info): Move structure definition here.
5305         (set_value_range_to_varying): Prototype.
5306         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
5307         (infer_value_range, register_edge_assert_for): Likewise.
5308         (stmt_interesting_for_vrp): Likewise.
5309         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
5310         (set_value_range_to_varying): No longer static.
5311         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
5312         (infer_value_range, register_edge_assert_for): Likewise.
5314 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5316         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
5317         generate the XXBRD instruction.
5319         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
5320         (rs6000_builtin_type_compatible): Treat _Float128 and long double
5321         as being compatible if -mabi=ieeelongdouble.
5322         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
5323         to setup float128 built-ins with hardware support.
5324         (BU_FLOAT128_HW_2): Likewise.
5325         (BU_FLOAT128_HW_3): Likewise.
5326         (BU_FLOAT128_HW_VSX_1): Likewise.
5327         (BU_FLOAT128_HW_VSX_2): Likewise.
5328         (scalar_extract_expq): Change float128 built-in functions to
5329         accommodate having both KFmode and TFmode functions.  Use the
5330         KFmode variant as the default.
5331         (scalar_extract_sigq): Likewise.
5332         (scalar_test_neg_qp): Likewise.
5333         (scalar_insert_exp_q): Likewise.
5334         (scalar_insert_exp_qp): Likewise.
5335         (scalar_test_data_class_qp): Likewise.
5336         (sqrtf128_round_to_odd): Delete processing the round to odd
5337         built-in functions as special built-in functions, and define them
5338         as float128 built-ins.  Use the KFmode variant as the default.
5339         (truncf128_round_to_odd): Likewise.
5340         (addf128_round_to_odd): Likewise.
5341         (subf128_round_to_odd): Likewise.
5342         (mulf128_round_to_odd): Likewise.
5343         (divf128_round_to_odd): Likewise.
5344         (fmaf128_round_to_odd): Likewise.
5345         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
5346         support for KFmode and TFmode xststdcqp calls.
5347         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
5348         point, switch the built-in handlers for the get/set float128
5349         exponent, get float128 mantissa, float128 test built-ins, and the
5350         float128 round to odd built-in functions.  Eliminate creating the
5351         float128 round to odd built-in functions as special built-ins.
5352         (rs6000_init_builtins): Eliminate special creation of the float128
5353         round to odd built-in functions.
5354         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
5355         function insns to support both TFmode and KFmode variants.
5356         (xsxsigqp_<mode>): Likewise.
5357         (xsiexpqpf_<mode>): Likewise.
5358         (xsiexpqp_<mode>): Likewise.
5359         (xststdcqp_<mode>): Likewise.
5360         (xststdcnegqp_<mode>): Likewise.
5361         (xststdcqp_<mode>): Likewise.
5363 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5365         * tree-ssa-threadupdate.c (compute_path_counts): Remove
5366         unused path_in_freq_ptr parameter.
5367         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
5369 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5371         * ipa-inline.c (edge_badness): Dump sreal frequency.
5372         (compute_inlined_call_time): Match natural implementaiton ...
5373         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
5374         forgotten division by CGRAPH_FREQ_BASE.
5376 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5378         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
5379         Solaris 11.  Update comment.
5380         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
5381         renaming.
5382         * config/sol2.h (STARTFILE_SPEC): Likewise.
5383         * configure: Regenerate.
5385 2017-11-14  Carl Love  <cel@us.ibm.com>
5387         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
5388         le_ and be_ prefixes to swap* variables.  Remove
5389         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
5390         statements.
5392 2017-11-14  Jason Merrill  <jason@redhat.com>
5394         Support GTY((cache)) on hash_map.
5395         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
5396         (ggc_cache_remove): Override it instead of ggc_mx.
5397         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
5398         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
5399         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
5400         (simple_cache_map_traits): Override maybe_mx.
5401         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
5402         (hash_map): Friend gt_cleare_cache.
5403         (gt_cleare_cache): New.
5404         * tree.h (tree_cache_traits): New hash_map traits class.
5405         (tree_cache_map): New typedef.
5407 2017-11-14  Richard Biener  <rguenther@suse.de>
5409         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
5410         paramter and handling.
5411         (cleanup_control_flow_bb): Likewise.
5412         (cleanup_control_flow_pre): New helper performing a DFS walk
5413         to call cleanup_control_flow_bb in PRE order.
5414         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
5415         via cleanup_control_flow_pre.
5417 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
5419         * config/aarch64/aarch64-simd.md
5420         (aarch64_simd_bsl<mode>_internal): Remove DImode.
5421         (*aarch64_simd_bsl<mode>_alt): Likewise.
5422         (aarch64_simd_bsldi_internal): New.
5423         (aarch64_simd_bsldi_alt): Likewise.
5425 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5427         * tracer.c (better_p): Do not compare frequencies.
5428         * reg-stack.c (better_edge): Likewise.
5429         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
5430         and back.
5432 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5434         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
5435         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
5436         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
5437         * lto-streamer-in.c (input_function): Use update_max_bb_count.
5438         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
5439         * predict.c (maybe_hot_frequency_p): Inline to ...
5440         (maybe_hot_count_p): ... here; rewrite to counts.
5441         (counts_to_freqs): Rename to ...
5442         (update_max_bb_count): ... this one.
5443         (expensive_function_p): Use counts.
5444         (estimate_bb_frequencies): Update.
5445         (rebuild_frequencies): Update.
5446         * predict.h (counts_to_freqs): Rename to ...
5447         (update_max_bb_count): ... this one.
5448         * profile.c (compute_branch_probabilities): Add debug info
5449         * tree-inline.c (expand_call_inline): Update debug info.
5450         (optimize_inline_calls): Use update_max_bb_count..
5451         (tree_function_versioning): Use update_max_bb_count..
5452         * value-prof.c (gimple_value_profile_transformations):
5453         Do not use update_max_bb_count.
5455 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5457         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
5458         always use frequencies.
5460 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5462         * bb-reorder.c: Remove frequencies from comments.
5463         (better_edge_p): Use profile counts.
5464         (find_traces): Dump profile counts.
5465         (rotate_loop): Use profile counts.
5466         (find_traces_1_round): Likewise.
5467         (connect_better_edge_p): Use counts instead of probabilities for
5468         reverse walk.
5469         (copy_bb_p): Drop early check for non-0 frequency.
5470         (sanitize_hot_paths): Update comments.
5472 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5474         * ipa-split.c (struct split_point): Add count.
5475         (consider_split): Do not compute incoming frequency; compute incoming
5476         count and store it to split_point.
5477         (split_function): Set count of the call to split part correctly.
5479 2017-11-13  Carl Love  <cel@us.ibm.com>
5481         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
5483 2017-11-13  Tom Tromey  <tom@tromey.com>
5485         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
5487 2017-11-13  Carl Love  <cel@us.ibm.com>
5489         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
5490         Add support for builtins:
5491         unsigned int vec_first_{,miss}_match_{,or_eos}index,
5492         vector {un,}signed {char,int,short},
5493         vector {un,}signed {char,int,short}) arguments.
5494         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
5495         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
5496         Add BU_P9V_AV_2 expansions for the builtins.
5497         * config/rs6000/altivec.h (vec_first_match_index,
5498         vec_first_mismatch_index, vec_first_match_or_eos_index,
5499         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
5500         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
5501         new extern declaration.
5502         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
5503         * config/rs6000/vsx.md (first_match_index_<mode>,
5504         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
5505         first_mismatch_or_eos_index_<mode>): Add define expand.
5506         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
5507         * doc/extend.texi: Update the built-in documenation file for the new
5508         built-in functions.
5510 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
5512         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
5513         into the min/max operations for _Float<N> and _Float<N>X types.
5515 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5517         PR lto/81351
5518         * dwarf2out.c (do_eh_frame): New static variable.
5519         (dwarf2out_begin_prologue): Set it.
5520         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
5522 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5524         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
5526         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
5528 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5530         PR lto/81351
5531         * debug.h (dwarf2out_do_eh_frame): Declare.
5532         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
5533         (dwarf2out_do_frame): Use it.
5534         (dwarf2out_do_cfi_asm): Likewise.
5535         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
5536         (dwarf2out_assembly_start): Likewise.
5537         (dwarf2out_begin_prologue): Fix comment.
5538         * toplev.c (compile_file): Always call dwarf2out_frame_finish
5539         if the target needs either debug or unwind DWARF2 info.
5540         * lto-opts.c (lto_write_options): Do not save -fexceptions,
5541         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
5542         -ftrapping-math, -ftrapv and -fwrapv.
5544 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5546         * cgraph.c (cgraph_edge::sreal_frequency): New function.
5547         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
5548         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
5549         (estimate_edge_size_and_time): Likewise.
5550         (ipa_merge_fn_summary_after_inlining): Likewise.
5551         * ipa-inline.c (cgraph_freq_base_rec): Remove.
5552         (compute_uninlined_call_time): Use sreal_frequency.
5553         (compute_inlined_call_time): Likewise.
5554         (ipa_inline): Do not initialize cgraph_freq_base_rec.
5555         * profile-count.c: Include sreal.h.
5556         (profile_count::to_sreal_scale): New.
5557         * profile-count.h: Forward declare sreal.
5558         (profile_count::to_sreal_scale): Declare.
5560 2017-11-13  Nathan Sidwell  <nathan@acm.org>
5562         * diagnostic.c (maybe_line_and_column): New.
5563         (diagnostic_get_location_text): Use it.
5564         (diagnostic_report_current_module): Likewise.
5565         (test_diagnostic_get_location_text): Add tests.
5567 2017-11-13  Luis Machado  <luis.machado@linaro.org>
5569         * doc/md.texi (Specifying processor pipeline description): Fix
5570         incorrect latency for the div instruction example.
5572 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
5574         PR tree-optimization/78821
5575         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
5576         that bit_not_p is the same.
5577         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
5578         (split_group): Count precisely bit_not_p bits in each statement.
5579         (invert_op): New function.
5580         (imm_store_chain_info::output_merged_store): Use invert_op to
5581         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
5582         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
5584 2017-11-13  Martin Liska  <mliska@suse.cz>
5586         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
5587         (struct source_info): Likewise.
5588         (add_branch_counts): Likewise.
5589         (add_line_counts): Likewise.
5590         (function_summary): Likewise.
5591         (output_intermediate_line): Likewise.
5592         (generate_results): Likewise.
5594 2017-11-13  Martin Liska  <mliska@suse.cz>
5596         * gcov.c (struct block_info): Remove typedef for block_t.
5597         (struct line_info): Likewise.
5598         (line_info::has_block): Likewise.
5599         (EXIT_BLOCK): Likewise.
5600         (unblock): Likewise.
5601         (circuit): Likewise.
5602         (get_cycles_count): Likewise.
5603         (process_file): Likewise.
5604         (read_graph_file): Likewise.
5605         (solve_flow_graph): Likewise.
5606         (find_exception_blocks): Likewise.
5607         (add_line_counts): Likewise.
5608         (accumulate_line_info): Likewise.
5609         (output_line_details): Likewise.
5611 2017-11-13  Martin Liska  <mliska@suse.cz>
5613         * gcov.c (struct arc_info): Remove typedef for arc_t.
5614         (struct line_info): Likewise.
5615         (add_branch_counts): Likewise.
5616         (output_branch_count): Likewise.
5617         (function_info::~function_info): Likewise.
5618         (circuit): Likewise.
5619         (output_intermediate_line): Likewise.
5620         (read_graph_file): Likewise.
5621         (solve_flow_graph): Likewise.
5622         (find_exception_blocks): Likewise.
5623         (add_line_counts): Likewise.
5624         (accumulate_line_info): Likewise.
5625         (output_line_details): Likewise.
5626         (output_function_details): Likewise.
5628 2017-11-13  Martin Liska  <mliska@suse.cz>
5630         * gcov.c (struct function_info): Remove typedef for function_t.
5631         (struct source_info): Likewise.
5632         (source_info::get_functions_at_location): Likewise.
5633         (solve_flow_graph): Likewise.
5634         (find_exception_blocks): Likewise.
5635         (add_line_counts): Likewise.
5636         (output_intermediate_file): Likewise.
5637         (process_file): Likewise.
5638         (generate_results): Likewise.
5639         (release_structures): Likewise.
5640         (read_graph_file): Likewise.
5641         (read_count_file): Likewise.
5642         (accumulate_line_counts): Likewise.
5643         (output_lines): Likewise.
5645 2017-11-13  Martin Liska  <mliska@suse.cz>
5647         * gcov.c (function_info::function_info): Remove num_counts
5648         and add vector<gcov_type>.
5649         (function_info::~function_info): Use the vector.
5650         (process_file): Likewise.
5651         (read_graph_file): Likewise.
5652         (read_count_file): Likewise.
5653         (solve_flow_graph): Likewise.
5655 2017-11-13  Martin Liska  <mliska@suse.cz>
5657         * gcov.c (function_info::is_artificial): New function.
5658         (process_file): Erase all artificial early.
5659         (generate_results): Skip as all artificial are already
5660         removed.
5662 2017-11-13  Martin Liska  <mliska@suse.cz>
5664         * gcov.c (read_graph_file): Store to global vector of functions.
5665         (read_count_file): Iterate the vector.
5666         (process_file): Likewise.
5667         (generate_results): Likewise.
5668         (release_structures): Likewise.
5670 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
5672         PR tree-optimization/82954
5673         * gimple-ssa-store-merging.c
5674         (imm_store_chain_info::coalesce_immediate_stores): If
5675         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
5677 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
5679         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
5680         Upddate call to ENDIAN_LANE_N.
5681         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
5682         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
5683         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
5684         and use aarch64_endian_lane_rtx.
5685         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5687 2017-11-12  Tom de Vries  <tom@codesourcery.com>
5689         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
5691 2017-11-12  Tom de Vries  <tom@codesourcery.com>
5693         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
5695 2017-11-12  Tom de Vries  <tom@codesourcery.com>
5697         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
5698         body.
5699         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
5700         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
5701         * defaults.h (ASM_OUTPUT_LABELREF): Same.
5703 2017-11-11  Martin Sebor  <msebor@redhat.com>
5705         PR c/81117
5706         * doc/extend.texi (attribute nonstring): Remove spurious argument.
5708         PR bootstrap/82948
5709         * prefic.c (translate_name): Replace strncpy with memcpy to
5710         avoid -Wstringop-truncation.
5712 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
5714         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
5716 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
5718         * predict.c (maybe_hot_frequency_p): Do not use cfun.
5720 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
5722         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
5723         merging.
5725 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5727         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
5728         enable generating XXBRH if the value is in a vector register.
5729         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
5730         value is in a vector register.
5731         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
5732         register to register bswap64's instead of doing the GPR sequence
5733         used on previous machines.
5734         (bswapdi2_xxbrd): New insn.
5735         (bswapdi2_reg): Disallow on ISA 3.0.
5736         (register to register bswap64 splitter): Do not split the insn on
5737         ISA 3.0 systems that use XXBRD.
5739 2017-11-10  Martin Sebor  <msebor@redhat.com>
5741         PR c/81117
5742         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
5743         with memcpy.
5744         (find_subframework_file): Same.
5746 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
5748         * auto-profile.c (afdo_indirect_call): Drop frequency.
5749         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
5750         (cgraph_node::create_edge): Drop frequency argument.
5751         (cgraph_node::create_indirect_edge): Drop frequency argument.
5752         (cgraph_edge::make_speculative): Drop frequency arguments.
5753         (cgraph_edge::resolve_speculation): Do not update frequencies
5754         (cgraph_edge::dump_edge_flags): Do not dump frequency.
5755         (cgraph_node::dump): Check consistency in IPA mode.
5756         (cgraph_edge::maybe_hot_p): Use IPA counter.
5757         (cgraph_edge::verify_count_and_frequency): Rename to ...
5758         (cgraph_edge::verify_count): ... this one; drop frequency checking.
5759         (cgraph_node::verify_node): Update.
5760         * cgraph.h (struct cgraph_edge): Drop frequency.
5761         (cgraph_edge::frequency): New function.
5762         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
5763         frequencies.
5764         (cgraph_edge::rebuild_edges): Likewise.
5765         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
5766         (duplicate_thunk_for_node): Do not pass frequency.
5767         (cgraph_node::create_clone): Scale only counts.
5768         (cgraph_node::create_virtual_clone): Do not pass frequency.
5769         (cgraph_node::create_edge_including_clones): Do not pass frequency.
5770         (cgraph_node::create_version_clone): Do not pass frequency.
5771         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
5772         (cgraph_node::expand_thunk): Do not pass frequency.
5773         (cgraph_node::create_wrapper): Do not pass frequency.
5774         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
5775         frequency.
5776         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
5777         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
5778         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
5779         (gather_caller_stats): Use frequency function.
5780         (ipcp_cloning_candidate_p): Use frequency function.
5781         (ipcp_propagate_stage): Use frequency function.
5782         (get_info_about_necessary_edges): Use frequency function.
5783         (update_profiling_info): Update only IPA profile.
5784         (update_specialized_profile): Use frequency functoin.
5785         (perhaps_add_new_callers): Update only IPA profile.
5786         * ipa-devirt.c (ipa_devirt): Use IPA profile.
5787         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
5788         (dump_ipa_call_summary): Use frequency function.
5789         (estimate_edge_size_and_time): Use frequency function.
5790         (ipa_merge_fn_summary_after_inlining): Use frequency function.
5791         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
5792         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
5793         (update_noncloned_counts): ... ths one; scale counts only.
5794         (clone_inlined_nodes): Do not scale frequency.
5795         (inline_call): Do not pass frequency.
5796         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
5797         (compute_inlined_call_time): Use IPA profile.
5798         (want_inline_small_function_p): Use IPA profile.
5799         (want_inline_self_recursive_call_p): Use IPA profile.
5800         (edge_badness): Use IPA profile.
5801         (lookup_recursive_calls): Use IPA profile.
5802         (recursive_inlining): Do not pass frequency.
5803         (resolve_noninline_speculation): Do not update frequency.
5804         (inline_small_functions): Collect max of IPA profile.
5805         (dump_overall_stats): Dump IPA porfile.
5806         (dump_inline_stats): Dump IPA porfile.
5807         (ipa_inline): Collect IPA stats.
5808         * ipa-inline.h (clone_inlined_nodes): Update prototype.
5809         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
5810         (ipa_propagate_frequency): Use frequency function.
5811         (ipa_profile): Cleanup.
5812         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
5813         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
5814         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
5815         (input_node): Do not stream frequency.
5816         (input_edge): Do not stream frequency.
5817         (merge_profile_summaries): Scale only IPA profiles.
5818         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
5819         * predict.c (drop_profile): Do not recompute frequency.
5820         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
5821         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
5822         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
5823         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
5824         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
5825         * tree-inline.c (copy_bb): Do not scale frequency.
5826         (expand_call_inline): Do not scale frequency.
5827         (tree_function_versioning): Do not scale frequency.
5828         * ubsan.c (ubsan_create_edge): Do not pass frequency.
5830 2017-11-10  Julia Koval  <julia.koval@intel.com>
5832         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
5833         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
5834         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
5835         (_mm256_maskz_gf2p8affine_epi64_epi8)
5836         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
5837         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
5838         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
5839         (__builtin_ia32_vgf2p8affineqb_v32qi)
5840         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
5841         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
5843 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
5845         PR target/82641
5846         * config/arm/arm.c
5847         (arm_option_override): Refactor.
5848         (arm_option_reconfigure_globals): New.
5849         (arm_options_perform_arch_sanity_checks): New.
5850         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
5851         New prototype.
5852         (arm_options_perform_arch_sanity_checks): Likewise
5854 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
5856         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
5857         (power9-qpmul): New.
5858         * rs6000/rs6000.md ("type" attr): Add qmul.
5859         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
5860         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
5861         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
5863 2017-11-10  Martin Sebor  <msebor@redhat.com>
5865         PR c/81117
5866         * builtins.c (compute_objsize): Handle arrays that
5867         compute_builtin_object_size likes to fail for.  Make extern.
5868         * builtins.h (compute_objsize): Declare.
5869         (check_strncpy_sizes): New function.
5870         (expand_builtin_strncpy): Call check_strncpy_sizes.
5871         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
5872         -Wstringop-truncation.
5873         (gimple_fold_builtin_strncat): Same.
5874         * gimple.c (gimple_build_call_from_tree): Set call location.
5875         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
5876         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
5877         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
5878         (handle_builtin_strlen): Use strlen_to_stridx.
5879         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
5880         stpncpy.
5881         Use strlen_to_stridx.
5882         (pass_strlen::execute): Release strlen_to_stridx.
5883         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
5884         (-Wstringop-truncation): Document new option.
5886 2017-11-10  Martin Liska  <mliska@suse.cz>
5888         PR gcov-profile/82702
5889         * gcov.c (main): Handle intermediate files in a different
5890         way.
5891         (get_gcov_intermediate_filename): New function.
5892         (output_gcov_file): Remove support of intermediate files.
5893         (generate_results): Allocate intermediate file.
5894         (release_structures): Clean-up properly fn_end.
5895         (output_intermediate_file): Start iterating with line 1.
5897 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
5899         PR tree-optimization/82929
5900         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
5901         ops_swapped_p non-static data member.
5902         (store_immediate_info::store_immediate_info): Clear it.
5903         (imm_store_chain_info::coalesce_immediate_stores): If swapping
5904         ops set ops_swapped_p.
5905         (count_multiple_uses): Handle ops_swapped_p.
5907 2017-11-10  Martin Liska  <mliska@suse.cz>
5909         * coverage.c (coverage_init): Stream information about
5910         support of has_unexecuted_blocks.
5911         * doc/gcov.texi: Document that.
5912         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
5913         * gcov.c (read_graph_file): Likewise.
5914         (output_line_beginning): Fix a small issue with
5915         color output.
5917 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
5919         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
5920         reference of trivial component.
5922 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
5924         PR bootstrap/82916
5925         * gimple-ssa-store-merging.c
5926         (pass_store_merging::terminate_all_aliasing_chains): For
5927         gimple_store_p stmts also call refs_output_dependent_p.
5929         PR rtl-optimization/82913
5930         * compare-elim.c (try_merge_compare): Punt if def_insn is not
5931         single set.
5933 2017-11-09  Jeff Law  <law@redhat.com>
5935         * vr-values.h: New file with vr_values class.
5936         * tree-vrp.c: Include vr-values.h
5937         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
5938         data objects into the vr_values class.
5939         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
5940         (get_value_range): Make it a member function within vr_values class.
5941         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
5942         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
5943         (op_with_constant_singleton_value_range): Likewise.
5944         (extract_range_for_var_from_comparison_expr): Likewise.
5945         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
5946         (extract_range_from_binary_expr): Likewise.
5947         (extract_range_from_unary_expr): Likewise.
5948         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
5949         (check_for_binary_op_overflow, extract_range_basic): Likewise.
5950         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
5951         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
5952         (compare_name_with_value, compare_names): Likewise.
5953         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
5954         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
5955         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
5956         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
5957         (extract_range_from_phi_node): Likewise.
5958         (simplify_truth_ops_using_ranges): Likewise.
5959         (simplify_div_or_mod_using_ranges): Likewise.
5960         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
5961         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
5962         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
5963         (simplify_float_conversion_using_ranges): Likewise.
5964         (simplify_internal_call_using_ranges): Likewise.
5965         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
5966         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
5967         poitner via x_vr_values for calls into gimple folder.
5968         (vrp_initialize_lattice): Make this the vr_values ctor.
5969         (vrp_free_lattice): Make this the vr_values dtor.
5970         (set_vr_value): New function.
5971         (class vrp_prop): Add vr_values data member.  Add various member
5972         functions as well as member functions that delegate to vr_values.
5973         (check_array_ref): Make a member function within vrp_prop class.
5974         (search_for_addr_array, vrp_initialize): Likewise.
5975         (vrp_finalize): Likewise.  Revamp to avoid direct access to
5976         vr_value, values_propagated, etc.
5977         (check_array_bounds): Extract vrp_prop class instance pointer from
5978         walk info structure.  Use it to call member functions.
5979         (check_all_array_refs): Make a member function within vrp_prop class.
5980         Smuggle class instance pointer via walk info structure.
5981         (x_vr_values): New local static.
5982         (vrp_valueize): Use x_vr_values to get class instance.
5983         (vr_valueize_1): Likewise.
5984         (class vrp_folder): Add vr_values data member.  Add various member
5985         functions as well as member functions that delegate to vr_values.
5986         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
5987         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
5988         class instance from vr_values.  Use it to call member functions.
5989         (vrp_dom_walker): Add vr_values data member.
5990         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
5991         instance via x_vr_values.
5992         (identify_jump_threads): Accept vr_values as argument.  Store
5993         it into the walker structure.
5994         (evrp_dom_walker): Add vr_values class data member.  Add various
5995         delegators.
5996         (evrp_dom_walker::try_find_new_range): Use vr_values data
5997         member to access the memory allocator.
5998         (evrp_dom_walker::before_dom_children): Store vr_values class
5999         instance into the vrp_folder class.
6000         (evrp_dom_walker::push_value_range): Rework to avoid direct
6001         access to num_vr_values and vr_value.
6002         (evrp_dom_walker::pop_value_range): Likewise.
6003         (execute_early_vrp): Remove call to vrp_initialize_lattice.
6004         Use vr_values to get to dump_all_value_ranges member function.
6005         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
6006         and simplify_cond_using_ranges_2 via vrp_prop class instance.
6007         Pass vr_values class instance down to identify_jump_threads.
6008         Remove call to vrp_free_lattice.
6009         (debug_all_value_ranges): Remove.
6011         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
6012         (vrp_folder): Likewise.
6014         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
6015         Get it from the existing bitmap instead.
6016         (vrp_intersect_ranges_1): Likewise.
6018 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6020         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
6021         bit_not_p field.
6022         (store_immediate_info::store_immediate_info): Add bitnotp argument,
6023         set bit_not_p to it.
6024         (imm_store_chain_info::coalesce_immediate_stores): Break group
6025         if bit_not_p is different.
6026         (count_multiple_uses, split_group,
6027         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
6028         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
6029         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
6030         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
6031         to store_immediate_info ctor.
6033 2017-11-09  Jim Wilson  <jimw@sifive.com>
6035         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
6036         (scan_prog_file): Likewise.
6038 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
6040         * bb-reorder.c (max_entry_frequency): Remove.
6041         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
6042         connect_traces, push_to_next_round_p): Remove prototypes.
6043         (find_traces_1_round): Use counts only.
6044         (push_to_next_round_p): Likewise.
6045         (find_traces): Likewise.
6046         (rotate_loop): Likewise.
6047         (find_traces_1_round): Likewise.
6048         (connect_traces): Likewise.
6049         (edge_order): Likewise.
6051 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6053         * config/arm/arm.c (output_return_instruction): Add comments to
6054         indicate requirement for cmse_nonsecure_entry return to account
6055         for the size of clearing instruction output here.
6056         (thumb_exit): Likewise.
6057         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
6058         return in hardfloat mode.
6060 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
6062         * config/rs6000/rs6000.c (machine_function): Add a bool,
6063         "toc_is_wrapped_separately".
6064         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
6065         if it wasn't explicitly set or unset, we are optimizing for speed, and
6066         doing separate shrink-wrapping.
6067         (rs6000_get_separate_components): Enable the TOC component if
6068         saving the TOC register in the prologue.
6069         (rs6000_components_for_bb): Handle the TOC component.
6070         (rs6000_emit_prologue_components): Store the TOC register where needed.
6071         (rs6000_set_handled_components): Mark TOC as handled, if handled.
6072         (rs6000_emit_prologue): Don't save the TOC if that is already done.
6074 2017-11-09  Martin Jambor  <mjambor@suse.cz>
6076         * ipa-param-manipulation.c: New file.
6077         * ipa-param-manipulation.h: Likewise.
6078         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
6079         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
6080         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
6081         (ipa_parm_adjustment): Likewise.
6082         (ipa_parm_adjustment_vec): Likewise.
6083         (ipa_get_vector_of_formal_parms): Moved declaration to
6084         ipa-param-manipulation.h.
6085         (ipa_get_vector_of_formal_parm_types): Likewise.
6086         (ipa_modify_formal_parameters): Likewise.
6087         (ipa_modify_call_arguments): Likewise.
6088         (ipa_combine_adjustments): Likewise.
6089         (ipa_dump_param_adjustments): Likewise.
6090         (ipa_modify_expr): Likewise.
6091         (ipa_get_adjustment_candidate): Likewise.
6092         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
6093         ipa-param-manipulation.c.
6094         (ipa_get_vector_of_formal_parm_types): Likewise.
6095         (ipa_modify_formal_parameters): Likewise.
6096         (ipa_modify_call_arguments): Likewise.
6097         (ipa_modify_expr): Likewise.
6098         (get_ssa_base_param): Likewise.
6099         (ipa_get_adjustment_candidate): Likewise.
6100         (index_in_adjustments_multiple_times_p): Likewise.
6101         (ipa_combine_adjustments): Likewise.
6102         (ipa_dump_param_adjustments): Likewise.
6103         * tree-sra.c: Also include ipa-param-manipulation.h
6104         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
6105         ipa-param.h.
6107 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6108             Alan Hayward  <alan.hayward@arm.com>
6109             David Sherwood  <david.sherwood@arm.com>
6111         * doc/sourcebuild.texi (vect_masked_store): Document.
6113 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6114             Alan Hayward  <alan.hayward@arm.com>
6115             David Sherwood  <david.sherwood@arm.com>
6117         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
6119 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6120             Alan Hayward  <alan.hayward@arm.com>
6121             David Sherwood  <david.sherwood@arm.com>
6123         * doc/sourcebuild.texi (vect_variable_length): Document.
6125 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6126             Alan Hayward  <alan.hayward@arm.com>
6127             David Sherwood  <david.sherwood@arm.com>
6129         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
6131 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6132             Alan Hayward  <alan.hayward@arm.com>
6133             David Sherwood  <david.sherwood@arm.com>
6135         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
6137 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6138             Alan Hayward  <alan.hayward@arm.com>
6139             David Sherwood  <david.sherwood@arm.com>
6141         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
6142         previously undocumented selectors.
6143         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
6145 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6147         * doc/rtl.texi (const_vector): Say that elements can be
6148         const_wide_ints too.
6149         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
6150         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
6151         (gen_vec_duplicate): Use it instead of CONSTANT_P.
6152         * optabs.c (expand_vector_broadcast): Likewise.
6154 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6155             Alan Hayward  <alan.hayward@arm.com>
6156             David Sherwood  <david.sherwood@arm.com>
6158         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
6159         scaled index even if the unscaled address was invalid.
6160         Don't increase the complexity of using a scale in that case.
6162 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6163             Alan Hayward  <alan.hayward@arm.com>
6164             David Sherwood  <david.sherwood@arm.com>
6166         * doc/rtl.texi: Rewrite the subreg rules so that they partition
6167         the inner register into REGMODE_NATURAL_SIZE bytes rather than
6168         UNITS_PER_WORD bytes.
6169         * emit-rtl.c (validate_subreg): Divide subregs into blocks
6170         based on REGMODE_NATURAL_SIZE of the inner mode.
6171         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
6172         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
6173         * expmed.c (lowpart_bit_field_p): Divide the value up into
6174         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
6175         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
6176         whether something is likely to occupy more than one register.
6178 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
6180         PR ipa/82879
6181         * ipa-inline-transform.c (update_noncloned_frequencies): Use
6182         profile_count::adjust_for_ipa_scaling.
6183         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
6184         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
6185         function.
6186         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
6188 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6190         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
6191         (split_group): Add total_orig and total_new arguments, estimate the
6192         number of statements related to the store group without store merging
6193         and with store merging.
6194         (imm_store_chain_info::output_merged_store): Adjust split_group
6195         callers, punt if estimated number of statements with store merging
6196         is not smaller than estimated number of statements without it.
6197         Formatting fix.
6198         (handled_load): Remove has_single_use checks.
6199         (pass_store_merging::process_store): Likewise.
6201 2017-11-09  Richard Biener  <rguenther@suse.de>
6203         PR tree-optimization/82902
6204         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
6206 2017-11-09  Martin Liska  <mliska@suse.cz>
6208         PR target/82863
6209         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
6210         uninitialized.
6212 2017-11-09  Martin Liska  <mliska@suse.cz>
6214         PR tree-optimization/82669
6215         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
6217 2017-11-09  Martin Liska  <mliska@suse.cz>
6219         PR gcov-profile/48463
6220         * coverage.c (coverage_begin_function): Output also end locus
6221         of a function and information whether the function is
6222         artificial.
6223         * gcov-dump.c (tag_function): Parse and print the information.
6224         * gcov.c (INCLUDE_MAP): Add include.
6225         (INCLUDE_SET): Likewise.
6226         (struct line_info): Move earlier in the source file because
6227         of vector<line_info> in function_info structure.
6228         (line_info::line_info): Likewise.
6229         (line_info::has_block): Likewise.
6230         (struct source_info): Add new member index.
6231         (source_info::get_functions_at_location): New function.
6232         (function_info::group_line_p): New function.
6233         (output_intermediate_line): New function.
6234         (output_intermediate_file): Use the mentioned function.
6235         (struct function_start): New.
6236         (struct function_start_pair_hash): Likewise.
6237         (process_file): Add code that identifies group functions.
6238         Assign lines either to global or function scope.
6239         (generate_results): Skip artificial functions.
6240         (find_source): Assign index for each source file.
6241         (read_graph_file): Read new flag artificial and end_line.
6242         (add_line_counts): Assign it either to global of function scope.
6243         (accumulate_line_counts): Isolate core of the function to
6244         accumulate_line_info and call it for both function and global
6245         scope lines.
6246         (accumulate_line_info): New function.
6247         (output_line_beginning): Fix GNU coding style.
6248         (print_source_line): New function.
6249         (output_line_details): Likewise.
6250         (output_function_details): Likewise.
6251         (output_lines): Iterate both source (global) scope and function
6252         scope.
6253         (struct function_line_start_cmp): New class.
6254         * doc/gcov.texi: Reflect changes in documentation.
6256 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6258         PR debug/82837
6259         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
6260         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
6261         and similarly for not instead of neg.
6263 2017-11-08  Andi Kleen  <ak@linux.intel.com>
6265         * config/i386/i386.opt: Add -mforce-indirect-call.
6266         * config/i386/predicates.md: Check for flag_force_indirect_call.
6267         * doc/invoke.texi: Document -mforce-indirect-call
6269 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
6271         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
6272         New extern.
6273         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
6274         config/riscv/riscv.c (predict.h): New include.
6275         (riscv_slow_unaligned_access_p): No longer static.
6276         (riscv_block_move_straight): Add require.
6277         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
6279 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
6281         PR target/82855
6282         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
6283         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
6284         nonimmediate_operand predicate for operand 1 instead of
6285         register_operand.
6287 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6289         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
6290         New pattern.
6291         * config/aarch64/constraints.md (Uml): New constraint.
6292         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
6293         predicate.
6295 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6297         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
6298         of two vec_duplicates into a vec_concat.
6300 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6302         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
6303         Simplify vec_merge of vec_duplicate and vec_concat.
6304         * config/aarch64/constraints.md (Utq): New constraint.
6305         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
6306         define_insn.
6308 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6310         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
6311         Simplify vec_merge of vec_duplicate and const_vector.
6312         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
6313         New predicate.
6314         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
6315         mode iterator.  Update predicate on operand 1 to
6316         handle non-const_vec constants.  Delete constraints.
6317         (*aarch64_combinez_be<mode>): Likewise for operand 2.
6319 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
6321         PR tree-optimization/78821
6322         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
6323         data member.
6324         (store_operand_info::store_operand_info): Initialize it to false.
6325         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
6326         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
6327         store in the group, and if chain_info is non-NULL, to ignore altogether
6328         that chain.
6329         (compatible_load_p): Fail if bit_not_p does not match.
6330         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
6331         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
6332         (pass_store_merging::process_store): Adjust
6333         terminate_all_aliasing_chains calls to pass NULL in all current spots,
6334         call terminate_all_aliasing_chains newly when adding a store into
6335         a chain with non-NULL chain_info.
6337 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
6339         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
6341 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
6343         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
6344         Remove.
6345         (aarch64_layout_frame): Initialise emit_frame_chain.
6346         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
6347         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
6349 2017-11-08  Martin Liska  <mliska@suse.cz>
6351         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
6352         of gimple_call_internal_p.
6354 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6356         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
6358 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6360         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
6361         "do {} while (0)".
6363 2017-11-08  Martin Liska  <mliska@suse.cz>
6365         PR sanitizer/82792
6366         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
6368 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
6370         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
6372 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
6374         PR target/82855
6375         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
6376         (*cmp<mode>_ccz_1): New insn with $k alternative.
6378         PR target/82855
6379         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
6380         RTX_COMM_COMPARE as commutative as well.
6381         (ix86_binary_operator_ok): Formatting fix.
6382         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
6383         *<code><mode>3<mask_name><round_saeonly_name>,
6384         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
6385         *<s>mul<mode>3_highpart<mask_name>,
6386         *vec_widen_umult_even_v16si<mask_name>,
6387         *vec_widen_umult_even_v8si<mask_name>,
6388         *vec_widen_umult_even_v4si<mask_name>,
6389         *vec_widen_smult_even_v16si<mask_name>,
6390         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
6391         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
6392         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
6393         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
6394         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
6395         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
6396         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
6397         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
6398         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
6399         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
6400         ix86_binary_operator_ok.  Formatting fixes.
6401         (*<plusminus_insn><mode>3<mask_name><round_name>,
6402         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
6403         fixes.
6405 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
6407         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
6408         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
6409         eq and ne if TARGET_ISEL.
6410         (cmp): New code_iterator.
6411         (UNS, UNSU_, UNSIK): New code_attrs.
6412         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
6413         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
6414         to...
6415         ("eq<mode>3"): ... this.
6416         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
6417         to...
6418         ("ne<mode>3"): ... this.
6420 2017-11-07  Julia Koval  <julia.koval@intel.com>
6422         PR target/82812
6423         * common/config/i386/i386-common.c
6424         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
6425         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
6426         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
6427         * config/i386/i386.opt: Ditto.
6428         * config/i386/i386.c (ix86_target_string): Ditto.
6429         (ix86_option_override_internal): Ditto.
6430         (ix86_init_mpx_builtins): Move MPX to args2.
6431         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
6432         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
6433         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
6434         __builtin_ia32_vgf2p8affineinvqb_v32qi,
6435         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
6436         __builtin_ia32_vgf2p8affineinvqb_v16qi,
6437         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
6439 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
6441         PR target/80425
6442         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
6443         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
6444         (zero-extendsidi peephole2): Remove peephole.
6446 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
6448         PR c/53037
6449         * stor-layout.c: Include attribs.h.
6450         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
6451         explicit lookup of "aligned" attribute.
6453 2017-11-07  Andrew Waterman  <andrew@sifive.com>
6455         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
6456         (riscv_expand_block_move): Likewise.
6457         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
6458         implementation.
6459         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
6460         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
6461         * config/riscv/riscv.c (riscv_block_move_straight): New function.
6462         (riscv_adjust_block_mem): Likewise.
6463         (riscv_block_move_loop): Likewise.
6464         (riscv_expand_block_move): Likewise.
6465         * config/riscv/riscv.md (movmemsi): New pattern.
6467 2017-11-07  Michael Clark  <michaeljclark@mac.com>
6469         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
6470         (MUSL_DYNAMIC_LINKER): Likewise.
6472 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
6474         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
6475         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
6476         nonmmory_operand.
6478 2017-11-07  Richard Biener  <rguenther@suse.de>
6480         * match.pd: Fix build.
6482 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
6483             Jackson Woodruff  <jackson.woodruff@arm.com>
6485         PR tree-optimization/71026
6486         * match.pd: Canonicalize negate in division.
6488 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
6490         PR middle-end/80131
6491         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
6493 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
6495         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
6496         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
6498 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
6500         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
6501         non-scalar integral types.
6502         * match.pd (negate_expr_p): Handle MINUS_EXPR.
6503         (-(A-B), -(~A)): New transformations.
6505 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6507         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
6508         semicolon after "do {} while (0)".
6509         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6510         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6511         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6512         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6513         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6515 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6517         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
6518         after "do {} while (0)".
6519         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6520         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6521         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6522         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6523         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6525 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6527         PR other/82784
6528         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
6529         "while {} do (0)".
6530         (arm_rtx_costs_internal): Add missing semicolon after
6531         HANDLE_NARROW_SHIFT_ARITH call.
6533 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
6535         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6536         disable isel if it was not set explicitly.
6538 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
6540         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
6541         (add_type_attribute) likewise.
6543 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
6545         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
6546         of struct ix86_frame.
6547         (ix86_initial_elimination_offset): Likewise.
6548         (ix86_expand_split_stack_prologue): Likewise.
6550 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
6552         * tree-vrp.h (enum value_range_type): Update stale comment.
6554 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6555             Alan Hayward  <alan.hayward@arm.com>
6556             David Sherwood  <david.sherwood@arm.com>
6558         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
6559         (aarch64_expand_vec_perm_const): Take the number of units too.
6560         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
6561         (aarch64_expand_vec_perm_const): Likewise.
6562         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
6563         (vec_perm<mode>): Update accordingly.
6565 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6566             Alan Hayward  <alan.hayward@arm.com>
6567             David Sherwood  <david.sherwood@arm.com>
6569         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
6570         Take the number of units too.
6571         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
6572         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
6573         but check for a vector mode before rather than after the call.
6574         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
6575         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
6576         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
6577         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
6578         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
6579         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
6580         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
6581         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
6582         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
6583         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
6584         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
6585         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
6586         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
6587         (aarch64_sqdmull2_n<mode>): Update accordingly.
6589 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6590             Alan Hayward  <alan.hayward@arm.com>
6591             David Sherwood  <david.sherwood@arm.com>
6593         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
6594         the number of units too.
6595         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
6596         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
6597         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
6598         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
6599         (vec_store_lanesxi<mode>): Update accordingly.
6601 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6602             Alan Hayward  <alan.hayward@arm.com>
6603             David Sherwood  <david.sherwood@arm.com>
6605         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
6606         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
6607         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
6608         of units rather than the mode.
6609         * config/aarch64/iterators.md (nunits): New mode attribute.
6610         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
6611         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
6612         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
6613         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
6614         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
6615         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
6616         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
6617         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
6618         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
6619         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
6620         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
6621         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
6622         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
6623         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
6624         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
6625         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
6626         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
6627         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
6628         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
6629         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
6630         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
6631         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
6632         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
6633         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
6634         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
6635         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
6636         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
6637         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
6638         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
6639         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
6640         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
6641         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
6642         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
6643         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
6644         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
6645         (aarch64_simd_vec_setv2di): Likewise.
6647 2017-11-06  Carl Love  <cel@us.ibm.com>
6649         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
6650         definitions.
6651         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
6652         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
6653         to power 8.
6654         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
6655         extern declaration.
6656         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
6657         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
6658         Add power 8 macro expansions.
6659         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
6660         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
6661         power 8 instructions.  (VSX_XXBR): Add iterator.
6663 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
6665         * config/arm/arm.md (predicable_short_it): Change default to "no",
6666         improve documentation, remove uses that are identical to the default.
6667         (enabled_for_depr_it): Rename to enabled_for_short_it.
6668         * gcc/config/arm/arm-fixed.md (predicable_short_it):
6669         Remove default uses.
6670         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
6671         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
6672         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
6673         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
6675 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
6677         PR target/82748
6678         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
6679         float128 helper macros, which are no longer used after deleting
6680         the old 'q' built-in functions, and moving the round to odd
6681         built-in functions to being special built-in functions.
6682         (BU_FLOAT128_2): Likewise.
6683         (BU_FLOAT128_1_HW): Likewise.
6684         (BU_FLOAT128_2_HW): Likewise.
6685         (BU_FLOAT128_3_HW): Likewise.
6686         (FABSQ): Delete old 'q' built-in functions.
6687         (COPYSIGNQ): Likewise.
6688         (SQRTF128_ODD): Move round to odd built-in functions to be
6689         special built-in functions, so that we can handle
6690         -mabi=ieeelongdouble.
6691         (TRUNCF128_ODD): Likewise.
6692         (ADDF128_ODD): Likewise.
6693         (SUBF128_ODD): Likewise.
6694         (MULF128_ODD): Likewise.
6695         (DIVF128_ODD): Likewise.
6696         (FMAF128_ODD): Likewise.
6697         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
6698         built-in names to 'f128'.
6699         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
6700         old 'q' built-in functions, as the machine independent code for
6701         'f128' built-in functions handles this.
6702         (rs6000_expand_builtin): Add expansion for float128 round to odd
6703         functions, keying off on -mabi=ieeelongdouble of whether to use
6704         the KFmode or TFmode variant.
6705         (rs6000_init_builtins): Initialize the _Float128 round to odd
6706         built-in functions.
6707         * doc/extend.texi (PowerPC Built-in Functions): Document the old
6708         _Float128 'q' built-in functions are now mapped into the new
6709         'f128' built-in functions.
6711 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
6713         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
6714         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
6716 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
6718         PR jit/82826
6719         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
6720         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
6721         * toplev.c: Include "ipa-fnsummary.h".
6722         (toplev::finalize): Call ipa_fnsummary_c_finalize.
6724 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
6726         PR tree-optimization/82838
6727         * gimple-ssa-store-merging.c
6728         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
6729         on a separate gimple_seq which is then appended to seq.
6731 2017-11-06  Jeff Law  <law@redhat.com>
6733         PR target/82788
6734         * config/i386/i386.c (PROBE_INTERVAL): Remove.
6735         (get_probe_interval): New functions.
6736         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
6737         (ix86_adjust_stack_and_probe): Likewise.
6738         (output_adjust_stack_and_probe): Likewise.
6739         (ix86_emit_probe_stack_range): Likewise.
6740         (ix86_expand_prologue): Likewise.
6742 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6744         PR tree-optimization/82816
6745         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
6746         if the modes of the two types are the same.
6747         (convert_plusminus_to_widen): Likewise.
6749 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6751         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
6752         p9_vadu<mode>3.
6753         (usadv16qi): New define_expand.
6754         (usadv8hi): New define_expand.
6756 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
6758         PR bootstrap/82832
6759         * ipa-inline-transform.c (update_noncloned_frequencies): Always
6760         scale.
6761         (inline_transform): Likewise.
6762         * predict.c (counts_to_freqs): Remove useless conditional.
6763         * profile-count.h (profile_count::apply_scale): Move sanity check.
6764         * tree-inline.c (copy_bb): Always scale.
6765         (copy_cfg_body): Likewise.
6767 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
6769         PR target/67591
6770         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
6771         attribute.
6772         (*cmp_ite0): Add enabled_for_depr_it attribute.
6773         (*cmp_ite1): Likewise.
6775 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
6777         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
6778         TYPE_MFCRF.
6780 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6782         * tree-vrp.c (vrp_int_const_binop): Return true on success and
6783         return the value by pointer.
6784         (extract_range_from_multiplicative_op_1): Update accordingly.
6785         Return as soon as an operation fails.
6787 2017-11-05  Tom de Vries  <tom@codesourcery.com>
6789         PR other/82784
6790         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
6791         (DEF_SANITIZER_BUILTIN): ... here.
6792         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
6793         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
6795 2017-11-05  Tom de Vries  <tom@codesourcery.com>
6797         PR other/82784
6798         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
6799         macro body.
6800         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
6801         ASM_OUTPUT_BEFORE_CASE_LABEL call.
6802         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
6803         after macro body.
6804         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
6805         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
6806         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
6808 2017-11-05  Tom de Vries  <tom@codesourcery.com>
6810         PR other/82784
6811         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
6812         "do {} while (0)".
6814 2017-11-04  Michael Clark  <michaeljclark@mac.com>
6816         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
6817         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
6818         (adddi3): Likewise.
6819         (*addsi3_extended): Likewise.
6820         (*addsi3_extended2): Likewise.
6821         (<optab>si3): Likewise.
6822         (<optab>di3): Likewise.
6823         (<optab><mode>3): Likewise.
6824         (<*optabe>si3_internal): Likewise.
6825         (zero_extendqi<SUPERQI:mode>2): Likewise.
6826         (*add<mode>hi3): Likewise.
6827         (*xor<mode>hi3): Likewise.
6828         (<optab>di3): Likewise.
6829         (*<optab>si3_extend): Likewise.
6830         (*sge<u>_<X:mode><GPR:mode>): Likewise.
6831         (*slt<u>_<X:mode><GPR:mode>): Likewise.
6832         (*sle<u>_<X:mode><GPR:mode>): Likewise.
6834 2017-11-04  Andrew Waterman  <andrew@sifive.com>
6836         * config/riscv/riscv.c (riscv_option_override): Conditionally set
6837         TARGET_STRICT_ALIGN based upon -mtune argument.
6839 2017-11-04  Andrew Waterman  <andrew@sifive.com>
6841         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
6843 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
6845         * config/i386/i386.c (choose_basereg): Use optional scratch
6846         register and add assertion.
6847         (x86_emit_outlined_ms2sysv_save): Use scratch register when
6848         needed, and don't allocate stack.
6849         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
6850         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
6851         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
6853 2017-11-03  Jeff Law  <law@redhat.com>
6855         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
6856         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
6857         to probe at the start of a noreturn function.
6859 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
6861         PR tree-optimization/78821
6862         * gimple-ssa-store-merging.c: Update the file comment.
6863         (MAX_STORE_ALIAS_CHECKS): Define.
6864         (struct store_operand_info): New type.
6865         (store_operand_info::store_operand_info): New constructor.
6866         (struct store_immediate_info): Add rhs_code and ops data members.
6867         (store_immediate_info::store_immediate_info): Add rhscode, op0r
6868         and op1r arguments to the ctor, initialize corresponding data members.
6869         (struct merged_store_group): Add load_align_base and load_align
6870         data members.
6871         (merged_store_group::merged_store_group): Initialize them.
6872         (merged_store_group::do_merge): Update them.
6873         (merged_store_group::apply_stores): Pick the constant for
6874         encode_tree_to_bitpos from one of the two operands, or skip
6875         encode_tree_to_bitpos if neither operand is a constant.
6876         (class pass_store_merging): Add process_store method decl.  Remove
6877         bool argument from terminate_all_aliasing_chains method decl.
6878         (pass_store_merging::terminate_all_aliasing_chains): Remove
6879         var_offset_p argument and corresponding handling.
6880         (stmts_may_clobber_ref_p): New function.
6881         (compatible_load_p): New function.
6882         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
6883         if there is overlap and rhs_code is not INTEGER_CST.  For
6884         non-overlapping stores terminate group if rhs is not mergeable.
6885         (get_alias_type_for_stmts): Change first argument from
6886         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
6887         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
6888         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
6889         alias type.
6890         (get_location_for_stmts): Change first argument from
6891         auto_vec<gimple *> & to vec<gimple *> &.
6892         (struct split_store): Remove orig_stmts data member, add orig_stores.
6893         (split_store::split_store): Create orig_stores rather than orig_stmts.
6894         (find_constituent_stmts): Renamed to ...
6895         (find_constituent_stores): ... this.  Change second argument from
6896         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
6897         to info structures rather than the statements.
6898         (split_group): Rename ALLOW_UNALIGNED argument to
6899         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
6900         it.  Adjust find_constituent_stores caller.
6901         (imm_store_chain_info::output_merged_store): Handle rhs_code other
6902         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
6903         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
6904         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
6905         (mem_valid_for_store_merging): New function.
6906         (handled_load): New function.
6907         (pass_store_merging::process_store): New method.
6908         (pass_store_merging::execute): Use process_store method.  Adjust
6909         terminate_all_aliasing_chains caller.
6911 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
6913         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
6914         Return true for more constants, symbols and label references.
6915         (aarch64_valid_floating_const): Remove unused function.
6917 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
6919         PR target/82786
6920         * config/aarch64/aarch64.c (aarch64_layout_frame):
6921         Undo forcing of LR at bottom of frame.
6923 2017-11-03  Jeff Law  <law@redhat.com>
6925         PR target/82823
6926         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
6927         for int_registers_saved.
6929         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
6930         extracted from tree-ssa-dom.c.
6931         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
6932         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
6933         (record_equivalences_from_incoming_edge): Add additional argument
6934         to single_pred_edge_ignoring_loop_edges call.
6935         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
6936         (uncprop_dom_walker::before_dom_children): Add additional argument
6937         to single_pred_edge_ignoring_loop_edges call.
6938         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
6939         single_pred_edge_ignoring_loop_edges rather than open coding.
6940         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
6942 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
6944         * match.pd (-(-A)): Rewrite.
6946 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
6948         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
6949         (rs6000_emit_int_cmove): New declaration.
6950         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
6951         (rs6000_emit_sISEL): Delete.
6952         (rs6000_emit_int_cmove): Make non-static.
6953         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
6954         instead of rs6000_emit_sISEL.
6956 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
6958         * asan.c (create_cond_insert_point): Maintain profile.
6959         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
6960         merged.
6961         * basic-block.h (struct basic_block_def): Remove frequency.
6962         (EDGE_FREQUENCY): Use to_frequency
6963         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
6964         heuristics.
6965         (find_traces): Update to use to_frequency.
6966         (find_traces_1_round): Likewise; use only IPA counts.
6967         (bb_to_key): Likewise.
6968         (connect_traces): Use IPA counts only.
6969         (copy_bb_p): Update to use to_frequency.
6970         (fix_up_crossing_landing_pad): Likewise.
6971         (sanitize_hot_paths): Likewise.
6972         * bt-load.c (basic_block_freq): Likewise.
6973         * cfg.c (init_flow): Set count_max to uninitialized.
6974         (check_bb_profile): Remove frequencies; check counts.
6975         (dump_bb_info): Do not dump frequencies.
6976         (update_bb_profile_for_threading): Update counts only.
6977         (scale_bbs_frequencies_int): Likewise.
6978         (MAX_SAFE_MULTIPLIER): Remove.
6979         (scale_bbs_frequencies_gcov_type): Update counts only.
6980         (scale_bbs_frequencies_profile_count): Update counts only.
6981         (scale_bbs_frequencies): Update counts only.
6982         * cfg.h (struct control_flow_graph): Add count-max.
6983         (update_bb_profile_for_threading): Update prototype.
6984         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
6985         (find_many_sub_basic_blocks): Likewise.
6986         * cfgcleanup.c (try_forward_edges): Likewise.
6987         (try_crossjump_to_edge): Likewise.
6988         * cfgexpand.c (expand_gimple_cond): Likewise.
6989         (expand_gimple_tailcall): Likewise.
6990         (construct_init_block): Likewise.
6991         (construct_exit_block): Likewise.
6992         * cfghooks.c (verify_flow_info): Check consistency of counts.
6993         (dump_bb_for_graph): Do not dump frequencies.
6994         (split_block_1): Do not update frequencies.
6995         (split_edge): Do not update frequencies.
6996         (make_forwarder_block): Do not update frequencies.
6997         (duplicate_block): Do not update frequencies.
6998         (account_profile_record): Do not update frequencies.
6999         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
7000         for global heuristics.
7001         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
7002         (expected_loop_iterations_unbounded): Use counts only.
7003         * cfgloopmanip.c (scale_loop_profile): Simplify.
7004         (create_empty_loop_on_edge): Simplify
7005         (loopify): Simplify
7006         (duplicate_loop_to_header_edge): Simplify
7007         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
7008         (update_br_prob_note): Take care of removing note when profile
7009         becomes undefined.
7010         (relink_block_chain): Do not dump frequency.
7011         (rtl_account_profile_record): Use to_frequency.
7012         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
7013         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
7014         (cgraph_update_edges_for_call_stmt_node): Likewise.
7015         (cgraph_edge::verify_count_and_frequency): Update.
7016         (cgraph_node::verify_node): Temporarily disable frequency verification.
7017         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
7018         to_cgraph_frequency.
7019         (cgraph_edge::rebuild_edges): Convert to ipa counts.
7020         * cgraphunit.c (init_lowered_empty_function): Do not initialize
7021         frequencies.
7022         (cgraph_node::expand_thunk): Update profile.
7023         * except.c (dw2_build_landing_pads): Do not update frequency.
7024         * final.c (compute_alignments): Use to_frequency.
7025         (dump_basic_block_info): Do not dump frequency.
7026         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
7027         (dump_gimple_bb_header): Do not dump frequency.
7028         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
7029         do update count.
7030         * gimple-streamer-in.c (input_bb): Do not stream frequency.
7031         * gimple-streamer-out.c (output_bb): Do not stream frequency.
7032         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
7033         (init_before_recovery): Do not update frequency.
7034         (sched_create_recovery_edges): Do not update frequency.
7035         * hsa-gen.c (convert_switch_statements): Do not update frequency.
7036         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
7037         (ipa_cp_c_finalize): Set max_count to uninitialized.
7038         * ipa-fnsummary.c (get_minimal_bb): Use counts.
7039         (param_change_prob): Use counts.
7040         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
7041         local profiles.
7042         * ipa-split.c (consider_split): Use to_frequency.
7043         (split_function): Use to_frequency.
7044         * ira-build.c (loop_compare_func): Likewise.
7045         (mark_loops_for_removal): Likewise.
7046         (mark_all_loops_for_removal): Likewise.
7047         * loop-doloop.c (doloop_modify): Do not update frequency.
7048         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
7049         frequency.
7050         * lto-streamer-in.c (input_function): Update count_max.
7051         * omp-expand.c (expand_omp_taskreg): Update count_max.
7052         * omp-simd-clone.c (simd_clone_adjust): Update profile.
7053         * predict.c (maybe_hot_frequency_p): Use to_frequency.
7054         (maybe_hot_count_p): Use ipa counts only.
7055         (maybe_hot_bb_p): Simplify.
7056         (maybe_hot_edge_p): Simplify.
7057         (probably_never_executed): Do not take frequency argument.
7058         (probably_never_executed_bb_p): Do not pass frequency.
7059         (probably_never_executed_edge_p): Likewise.
7060         (combine_predictions_for_bb): Check that profile is nonzero.
7061         (propagate_freq): Do not set frequency.
7062         (drop_profile): Simplify.
7063         (counts_to_freqs): Simplify.
7064         (expensive_function_p): Use to_frequency.
7065         (propagate_unlikely_bbs_forward): Simplify.
7066         (determine_unlikely_bbs): Simplify.
7067         (estimate_bb_frequencies): Add hack to silence graphite issues.
7068         (compute_function_frequency): Use ipa counts.
7069         (pass_profile::execute): Update.
7070         (rebuild_frequencies): Use counts only.
7071         (force_edge_cold): Use counts only.
7072         * profile-count.c (profile_count::dump): Dump new count types.
7073         (profile_count::differs_from_p): Check compatiblity.
7074         (profile_count::to_frequency): New function.
7075         (profile_count::to_cgraph_frequency): New function.
7076         * profile-count.h (struct function): Declare.
7077         (enum profile_quality): Add profile_guessed_local and
7078         profile_guessed_global0.
7079         (class profile_proability): Decrease number of bits to 29;
7080         update from_reg_br_prob_note and to_reg_br_prob_note.
7081         (class profile_count: Update comment; decrease number of bits
7082         to 61. Check compatibility.
7083         (profile_count::compatible_p): New private member function.
7084         (profile_count::ipa_p): New member function.
7085         (profile_count::operator<): Handle global zero correctly.
7086         (profile_count::operator>): Handle global zero correctly.
7087         (profile_count::operator<=): Handle global zero correctly.
7088         (profile_count::operator>=): Handle global zero correctly.
7089         (profile_count::nonzero_p): New member function.
7090         (profile_count::force_nonzero): New member function.
7091         (profile_count::max): New member function.
7092         (profile_count::apply_scale): Handle IPA scalling.
7093         (profile_count::guessed_local): New member function.
7094         (profile_count::global0): New member function.
7095         (profile_count::ipa): New member function.
7096         (profile_count::to_frequency): Declare.
7097         (profile_count::to_cgraph_frequency): Declare.
7098         * profile.c (OVERLAP_BASE): Delete.
7099         (compute_frequency_overlap): Delete.
7100         (compute_branch_probabilities): Do not use compute_frequency_overlap.
7101         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
7102         * sched-ebb.c (rank): Use counts only.
7103         * shrink-wrap.c (handle_simple_exit): Use counts only.
7104         (try_shrink_wrapping): Use counts only.
7105         (place_prologue_for_one_component): Use counts only.
7106         * tracer.c (find_best_predecessor): Use to_frequency.
7107         (find_trace): Use to_frequency.
7108         (tail_duplicate): Use to_frequency.
7109         * trans-mem.c (expand_transaction): Do not update frequency.
7110         * tree-call-cdce.c: Do not update frequency.
7111         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
7112         (gimple_merge_blocks): Likewise.
7113         (gimple_split_edge): Likewise.
7114         (gimple_duplicate_sese_region): Likewise.
7115         (gimple_duplicate_sese_tail): Likewise.
7116         (move_sese_region_to_fn): Likewise.
7117         (gimple_account_profile_record): Likewise.
7118         (insert_cond_bb): Likewise.
7119         * tree-complex.c (expand_complex_div_wide): Likewise.
7120         * tree-eh.c (lower_resx): Update profile.
7121         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
7122         frequencies.
7123         (initialize_cfun): Do not initialize frequencies
7124         (freqs_to_counts): Delete.
7125         (copy_cfg_body): Ignore count parameter.
7126         (copy_body): Update.
7127         (expand_call_inline): Update count_max.
7128         (optimize_inline_calls): Update count_max.
7129         (tree_function_versioning): Update count_max.
7130         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
7131         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
7132         frequency.
7133         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
7134         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
7135         (try_peel_loop): Likewise.
7136         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
7137         to_frequency.
7138         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
7139         (tree_transform_and_unroll_loop): Do not use frequencies
7140         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
7141         Use reliable prediction only.
7142         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
7143         * tree-ssa-sink.c (select_best_block): Use to_frequency.
7144         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
7145         probability scaling.
7146         * tree-ssa-threadupdate.c (create_block_for_threading): Do
7147         not update frequency
7148         (any_remaining_duplicated_blocks): Likewise.
7149         (update_profile): Likewise.
7150         (estimated_freqs_path): Delete.
7151         (freqs_to_counts_path): Delete.
7152         (clear_counts_path): Delete.
7153         (ssa_fix_duplicate_block_edges): Likewise.
7154         (duplicate_thread_path): Likewise.
7155         * tree-switch-conversion.c (gen_inbound_check): Use counts.
7156         * tree-tailcall.c (decrease_profile): Do not update frequency.
7157         (eliminate_tail_call): Likewise.
7158         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
7159         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
7160         (optimize_mask_stores): Likewise.
7161         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
7162         * ubsan.c (ubsan_expand_null_ifn): Update profile.
7163         (ubsan_expand_ptr_ifn): Update profile.
7164         * value-prof.c (gimple_ic): Simplify.
7165         * value-prof.h (gimple_ic): Update prototype.
7166         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
7167         * ipa-inline.c (compute_uninlined_call_time): Be sure that
7168         counts are nonzero.
7169         (want_inline_self_recursive_call_p): Likewise.
7170         (resolve_noninline_speculation): Only cummulate defined counts.
7171         (inline_small_functions): Use nonzero_p.
7172         (ipa_inline): Do not access freed node.
7174 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7176         * config/aarch64/aarch64.c (aarch64_override_options_internal):
7177         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
7179 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
7181         * config/riscv/riscv.c (riscv_legitimize_move): Handle
7182         non-legitimate address.
7184 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7186         * config/rs6000/rs6000.md (*lt0_disi): Delete.
7187         (*lt0_<mode>di, *lt0_<mode>si): New.
7189 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7191         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
7192         TARGET_PAIRED_FLOAT.
7194 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
7195             Jim Wilson  <jim.wilson@linaro.org>
7197         * config/aarch64/aarch64-cores.def (saphira): New CPU.
7198         * config/aarch64/aarch64-tune.md: Regenerated.
7199         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
7200         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
7202 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
7204         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
7205         (arc_expand_prologue): Restore blink for millicode.
7206         * config/arc/linux.h (LINK_EH_SPEC): Defined.
7208 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
7210         PR target/82809
7211         * config/i386/i386.c (ix86_vector_duplicate_value): Use
7212         gen_vec_duplicate after forcing the scalar into a register.
7214 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
7216         * combine (try_combine): Print the insns input to try_combine to the
7217         dump file.
7219 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
7221         PR target/79868
7222         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7223         Remove second argument from aarch64_process_target_attr call.
7224         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
7225         Ditto.
7226         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
7227         field type.
7228         (aarch64_handle_attr_arch): Remove second argument.
7229         (aarch64_handle_attr_cpu): Ditto.
7230         (aarch64_handle_attr_tune): Ditto.
7231         (aarch64_handle_attr_isa_flags): Ditto.
7232         (aarch64_process_one_target_attr): Ditto.
7233         (aarch64_process_target_attr): Ditto.
7234         (aarch64_option_valid_attribute_p): Remove second argument.
7235         on aarch64_process_target_attr call.
7237 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
7239         * diagnostic.c: Include "selftest-diagnostic.h".
7240         (selftest::assert_location_text): New function.
7241         (selftest::test_diagnostic_get_location_text): New function.
7242         (selftest::diagnostic_c_tests): Call it.
7244 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
7246         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
7247         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
7248         (class selftest::test_diagnostic_context): Move to...
7249         * selftest-diagnostic.c: New file.
7250         * selftest-diagnostic.h: New file.
7252 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
7254         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
7255         offset range for FT32B.
7256         * config/ft32/ft32.h: option "mcompress" enables relaxation.
7257         * config/ft32/ft32.md: Add TARGET_NOPM.
7258         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
7259         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
7261 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
7263         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
7265 2017-11-02  Jeff Law  <law@redhat.com>
7267         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
7268         virtual keyword on FINAL OVERRIDE members.
7270         * tree-ssa-propagate.h (ssa_propagation_engine): Group
7271         virtuals together.  Add virtual destructor.
7272         (substitute_and_fold_engine): Similarly.
7274 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
7276         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
7278 2017-11-02  Richard Biener  <rguenther@suse.de>
7280         PR tree-optimization/82795
7281         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
7283 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7285         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
7286         gcc_SUN_LD_VERSION.
7287         (gcc_GAS_CHECK_FEATURE): Remove.
7288         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
7289         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
7290         * configure: Regenerate.
7292 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
7294         * config/arc/arc.c (hwloop_optimize): Account for empty
7295         body loops.
7297 2017-11-02  Richard Biener  <rguenther@suse.de>
7299         PR middle-end/82765
7300         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
7301         Truncate ARRAY_REF index and element size.
7303 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
7305         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
7307 2017-11-01  Jeff Law  <law@redhat.com>
7309         * tree-ssa-ccp.c (ccp_folder): New class derived from
7310         substitute_and_fold_engine.
7311         (ccp_folder::get_value): New member function.
7312         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
7313         (ccp_fold_stmt): Remove prototype.
7314         (ccp_finalize): Call substitute_and_fold from the ccp_class.
7315         * tree-ssa-copy.c (copy_folder): New class derived from
7316         substitute_and_fold_engine.
7317         (copy_folder::get_value): Renamed from get_value.
7318         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
7319         * tree-vrp.c (vrp_folder): New class derived from
7320         substitute_and_fold_engine.
7321         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
7322         (vrp_folder::get_value): New member function.
7323         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
7324         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
7325         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
7326         provide a class interface to folder/substitute routines.
7327         (ssa_prop_fold_stmt_fn): Remove typedef.
7328         (ssa_prop_get_value_fn): Likewise.
7329         (subsitute_and_fold): Remove prototype.
7330         (replace_uses_in): Likewise.
7331         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
7332         Renamed from replace_uses_in.  Call the virtual member function
7333         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
7334         (substitute_and_fold_dom_walker): Remove initialization of
7335         data member entries for calbacks.  Add substitute_and_fold_engine
7336         member and initialize it.
7337         (substitute_and_fold_dom_walker::before_dom_children0: Use the
7338         member functions for get_value, replace_phi_args_in c
7339         replace_uses_in, and fold_stmt calls.
7340         (substitute_and_fold_engine::substitute_and_fold): Renamed from
7341         substitute_and_fold.  Remove assert.   Update ctor call.
7343         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
7344         (ssa_prop_visit_phi_fn): Likewise.
7345         (class ssa_propagation_engine): New class to provide an interface
7346         into ssa_propagate.
7347         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
7348         variable.
7349         (ssa_prop_visit_phi): Likewise.
7350         (ssa_propagation_engine::simulate_stmt): Moved into class.
7351         Call visit_phi/visit_stmt from the class rather than via
7352         file scoped static variables.
7353         (ssa_propagation_engine::simulate_block): Moved into class.
7354         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
7355         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
7356         set file scoped statics for the visit_stmt/visit_phi callbacks.
7357         * tree-complex.c (complex_propagate): New class derived from
7358         ssa_propagation_engine.
7359         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
7360         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
7361         (tree_lower_complex): Call ssa_propagate via the complex_propagate
7362         class.
7363         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
7364         ssa_propagation_engine.
7365         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
7366         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
7367         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
7368         * tree-ssa-copy.c (copy_prop): New class derived from
7369         ssa_propagation_engine.
7370         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
7371         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
7372         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
7373         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
7374         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
7375         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
7376         (execute_vrp): Call ssa_propagate from the vrp_prop class.
7378 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
7380         PR rtl-optimization/82778
7381         PR rtl-optimization/82597
7382         * compare-elim.c (struct comparison): Add in_a_setter field.
7383         (find_comparison_dom_walker::before_dom_children): Remove killed
7384         bitmap and df_simulate_find_defs call, instead walk the defs.
7385         Compute last_setter and initialize in_a_setter.  Merge definitions
7386         with first initialization for a few variables.
7387         (try_validate_parallel): Use insn_invalid_p instead of
7388         recog_memoized.  Return insn rather than just the pattern.
7389         (try_merge_compare): Fix up comment.  Don't uselessly test if
7390         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
7391         chains.
7392         (execute_compare_elim_after_reload): Remove df_chain_add_problem
7393         call.
7395 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7396             Alan Hayward  <alan.hayward@arm.com>
7397             David Sherwood  <david.sherwood@arm.com>
7399         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
7400         aarch64_hard_regno_nregs to get the number of registers
7401         in a mode.
7403 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7404             Alan Hayward  <alan.hayward@arm.com>
7405             David Sherwood  <david.sherwood@arm.com>
7407         * config/aarch64/constraints.md (Upl): Rename to...
7408         (Uaa): ...this.
7409         * config/aarch64/aarch64.md
7410         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
7411         Update accordingly.
7413 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7414             Alan Hayward  <alan.hayward@arm.com>
7415             David Sherwood  <david.sherwood@arm.com>
7417         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
7418         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
7419         earlier in file.
7421 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7422             Alan Hayward  <alan.hayward@arm.com>
7423             David Sherwood  <david.sherwood@arm.com>
7425         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
7426         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
7427         (aarch64_evpc_dup): Generate rtl direcly, rather than using
7428         named expanders.
7429         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
7430         of a single element.
7431         * config/aarch64/iterators.md: Add a comment above the permute
7432         unspecs to say that they are generated directly by
7433         aarch64_expand_vec_perm_const.
7434         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
7436 2017-11-01  Nathan Sidwell  <nathan@acm.org>
7438         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
7440 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
7442         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
7443         and medany code models, and describe what they do.
7445 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7447         Revert accidental duplicate:
7449         * combine.c (can_change_dest_mode): Reject changes in
7450         REGMODE_NATURAL_SIZE.
7452 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
7454         PR rtl-optimization/64682
7455         PR rtl-optimization/69567
7456         PR rtl-optimization/69737
7457         PR rtl-optimization/82683
7458         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
7459         register mentioned in the note, drop the note, unless it came from I3,
7460         in which case it should go to I3 again.
7462 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7464         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
7465         and return false if not.
7466         (clear_bytes_written_by, live_bytes_read): Update accordingly.
7468 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7470         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
7471         range is known to be empty.
7473 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7474             Alan Hayward  <alan.hayward@arm.com>
7475             David Sherwood  <david.sherwood@arm.com>
7477         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
7478         and CONST_VECTOR_NUNITS instead of computing the number of units from
7479         the byte sizes of the vector and element.
7480         (simplify_binary_operation_1): Likewise.
7481         (simplify_const_binary_operation): Likewise.
7482         (simplify_ternary_operation): Likewise.
7484 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7485             Alan Hayward  <alan.hayward@arm.com>
7486             David Sherwood  <david.sherwood@arm.com>
7488         * var-tracking.c (INT_MEM_OFFSET): Replace with...
7489         (int_mem_offset): ...this new function.
7490         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
7491         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
7492         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
7493         Update accordingly.
7495 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7496             Alan Hayward  <alan.hayward@arm.com>
7497             David Sherwood  <david.sherwood@arm.com>
7499         * lower-subreg.c (interesting_mode_p): New function.
7500         (compute_costs, find_decomposable_subregs, decompose_register)
7501         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
7502         (resolve_clobber, dump_choices): Use it.
7504 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7505             Alan Hayward  <alan.hayward@arm.com>
7506             David Sherwood  <david.sherwood@arm.com>
7508         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
7510 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7511             Alan Hayward  <alan.hayward@arm.com>
7512             David Sherwood  <david.sherwood@arm.com>
7514         * alias.c (find_base_value, find_base_term): Only process integer
7515         truncations.  Check the precision rather than the size.
7517 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7518             Alan Hayward  <alan.hayward@arm.com>
7519             David Sherwood  <david.sherwood@arm.com>
7521         * machmode.h (is_narrower_int_mode): New function
7522         * optabs.c (expand_float, expand_fix): Use it.
7523         * dwarf2out.c (rotate_loc_descriptor): Likewise.
7525 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7526             Alan Hayward  <alan.hayward@arm.com>
7527             David Sherwood  <david.sherwood@arm.com>
7529         * rtl.h (narrower_subreg_mode): New function.
7530         * ira-color.c (update_costs_from_allocno): Use it.
7532 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7533             Alan Hayward  <alan.hayward@arm.com>
7534             David Sherwood  <david.sherwood@arm.com>
7536         * optabs-query.h (convert_optab_p): New function, split out from...
7537         (convert_optab_handler): ...here.
7538         (widening_optab_handler): Delete.
7539         (find_widening_optab_handler): Remove permit_non_widening parameter.
7540         (find_widening_optab_handler_and_mode): Likewise.  Provide an
7541         override that operates on mode class wrappers.
7542         * optabs-query.c (widening_optab_handler): Delete.
7543         (find_widening_optab_handler_and_mode): Remove permit_non_widening
7544         parameter.  Assert that the two modes are the same class and that
7545         the "from" mode is narrower than the "to" mode.  Use
7546         convert_optab_handler instead of widening_optab_handler.
7547         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
7548         instead of widening_optab_handler.
7549         * expr.c (expand_expr_real_2): Update calls to
7550         find_widening_optab_handler.
7551         * optabs.c (expand_widen_pattern_expr): Likewise.
7552         (expand_binop_directly): Take the insn_code as a parameter.
7553         (expand_binop): Only call find_widening_optab_handler for
7554         conversion optabs; use optab_handler otherwise.  Update calls
7555         to find_widening_optab_handler and expand_binop_directly.
7556         Use convert_optab_handler instead of widening_optab_handler.
7557         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
7558         find_widening_optab_handler and use scalar_mode rather than
7559         machine_mode.
7560         (convert_plusminus_to_widen): Likewise.
7562 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7563             Alan Hayward  <alan.hayward@arm.com>
7564             David Sherwood  <david.sherwood@arm.com>
7566         * machmode.h (fixed_size_mode): New class.
7567         * rtl.h (get_pool_mode): Return fixed_size_mode.
7568         * gengtype.c (main): Add fixed_size_mode.
7569         * target.def (get_raw_result_mode): Return a fixed_size_mode.
7570         (get_raw_arg_mode): Likewise.
7571         * doc/tm.texi: Regenerate.
7572         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
7573         * targhooks.c (default_get_reg_raw_mode): Likewise.
7574         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
7575         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
7576         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
7577         (msp430_get_raw_result_mode): Likewise.
7578         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
7579         * dbxout.c (dbxout_parms): Require fixed-size modes.
7580         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
7581         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
7582         * omp-low.c (lower_oacc_reductions): Likewise.
7583         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
7584         (simplify_subreg): Update accordingly.
7585         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
7586         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
7587         that aren't fixed-size.
7588         (get_pool_mode): Return a fixed_size_mode.
7589         (output_constant_pool_2): Take a fixed_size_mode.
7591 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7592             Alan Hayward  <alan.hayward@arm.com>
7593             David Sherwood  <david.sherwood@arm.com>
7595         * doc/rtl.texi (vec_series): Document.
7596         (const): Say that the operand can be a vec_series.
7597         * rtl.def (VEC_SERIES): New rtx code.
7598         * rtl.h (const_vec_series_p_1): Declare.
7599         (const_vec_series_p): New function.
7600         * emit-rtl.h (gen_const_vec_series): Declare.
7601         (gen_vec_series): Likewise.
7602         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
7603         (gen_vec_series): Likewise.
7604         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
7605         * simplify-rtx.c (simplify_unary_operation): Handle negations
7606         of vector series.
7607         (simplify_binary_operation_series): New function.
7608         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
7609         (test_vector_ops_series): New function.
7610         (test_vector_ops): Call it.
7611         * config/powerpcspe/altivec.md (altivec_lvsl): Use
7612         gen_const_vec_series.
7613         (altivec_lvsr): Likewise.
7614         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
7616 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7617             Alan Hayward  <alan.hayward@arm.com>
7618             David Sherwood  <david.sherwood@arm.com>
7620         * doc/rtl.texi (const): Update description of address constants.
7621         Say that vector constants are allowed too.
7622         * common.md (E, F): Use CONSTANT_P instead of checking for
7623         CONST_VECTOR.
7624         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
7625         checking for CONST_VECTOR.
7626         * expmed.c (make_tree): Use build_vector_from_val for a CONST
7627         VEC_DUPLICATE.
7628         * expr.c (expand_expr_real_2): Check for vector modes instead
7629         of checking for CONST_VECTOR.
7630         * rtl.h (const_vec_p): New function.
7631         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
7632         (unwrap_const_vec_duplicate): Handle them here too.
7634 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7635             David Malcolm  <dmalcolm@redhat.com>
7636             Alan Hayward  <alan.hayward@arm.com>
7637             David Sherwood  <david.sherwood@arm.com>
7639         * rtl.h (vec_duplicate_p): New function.
7640         * selftest-rtl.c (assert_rtx_eq_at): New function.
7641         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
7642         (assert_rtx_eq_at): Declare.
7643         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
7644         * selftest-run-tests.c (selftest::run_tests): Call it.
7645         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
7646         (simplify_unary_operation_1): Recursively handle vector duplicates.
7647         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
7648         vector duplicates.
7649         (simplify_subreg): Handle subregs of vector duplicates.
7650         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
7651         (selftest::simplify_rtx_c_tests): New functions.
7653 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7654             Alan Hayward  <alan.hayward@arm.com>
7655             David Sherwood  <david.sherwood@arm.com>
7657         * emit-rtl.h (gen_const_vec_duplicate): Declare.
7658         (gen_vec_duplicate): Likewise.
7659         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
7660         out from...
7661         (gen_const_vector): ...here.
7662         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
7663         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
7664         whose elements are all equal.
7665         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
7666         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
7667         (simplify_relational_operation): Likewise.
7668         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
7669         Likewise.
7670         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
7671         (aarch64_expand_vector_init): Likewise.
7672         * config/arm/arm.c (neon_vdup_constant): Likewise.
7673         (neon_expand_vector_init): Likewise.
7674         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
7675         (arm_block_set_unaligned_vect): Likewise.
7676         (arm_block_set_aligned_vect): Likewise.
7677         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
7678         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
7679         (expand_vec_perm_even_odd_pack): Likewise.
7680         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
7681         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
7682         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
7683         gen_const_vec_duplicate.
7684         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
7685         * config/mips/mips.c (mips_gen_const_int_vector): Use
7686         gen_const_vec_duplicate.
7687         (mips_expand_vector_init): Use CONST0_RTX.
7688         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
7689         (define_split): Use gen_const_vec_duplicate.
7690         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
7691         (define_split): Use gen_const_vec_duplicate.
7692         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
7693         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
7694         * config/spu/spu.c (spu_const): Likewise.
7696 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7697             Alan Hayward  <alan.hayward@arm.com>
7698             David Sherwood  <david.sherwood@arm.com>
7700         * combine.c (can_change_dest_mode): Reject changes in
7701         REGMODE_NATURAL_SIZE.
7703 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
7705         * configure.ac (--enable-libssp): New.
7706         (gcc_cv_libc_provides_ssp): Check for explicit setting before
7707         trying to determine target-specific default.  Adjust indentation.
7708         * configure: Regenerated.
7709         * doc/install.texi (Configuration): Expand --disable-libssp
7710         documentation.
7712 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
7714         config/i386/i386.c (ix86_expand_epilogue): Correct stack
7715         calculation.
7717 2017-10-31  Martin Jambor  <mjambor@suse.cz>
7719         PR c++/81702
7720         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
7722 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
7724         * auto-profile.c (autofdo_source_profile::read): Use
7725         UNKNOWN_LOCATION rather than 0.
7726         * diagnostic-core.h (warning_at_rich_loc): Rename to...
7727         (warning_at): ...this overload.
7728         (warning_at_rich_loc_n): Rename to...
7729         (warning_n): ...this overload.
7730         (error_at_rich_loc): Rename to...
7731         (error_at): ...this overload.
7732         (pedwarn_at_rich_loc): Rename to...
7733         (pedwarn): ...this overload.
7734         (permerror_at_rich_loc): Rename to...
7735         (permerror): ...this overload.
7736         (inform_at_rich_loc): Rename to...
7737         (inform): ...this overload.
7738         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
7739         (diagnostic_n_impl_richloc): Rename to...
7740         (diagnostic_n_impl): ...this rich_location *-based decl.
7741         (inform_at_rich_loc): Rename to...
7742         (inform): ...this, and add an assertion.
7743         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
7744         (warning_at_rich_loc): Rename to...
7745         (warning_at): ...this, and add an assertion.
7746         (warning_at_rich_loc_n): Rename to...
7747         (warning_n): ...this, and add an assertion.
7748         (warning_n): Update location_t-based implementation for removal of
7749         location_t-based diagnostic_n_impl.
7750         (pedwarn_at_rich_loc): Rename to...
7751         (pedwarn): ...this, and add an assertion.
7752         (permerror_at_rich_loc): Rename to...
7753         (permerror): ...this, and add an assertion.
7754         (error_n): Update for removal of location_t-based diagnostic_n_impl.
7755         (error_at_rich_loc): Rename to...
7756         (error_at): ...this, and add an assertion.
7757         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
7758         (driver::do_spec_on_infiles): Likewise.
7759         * substring-locations.c (format_warning_va): Update for renaming
7760         of inform_at_rich_loc.
7762 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
7764         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
7765         _Float<N>X built-in functions so that the variant without the
7766         "__builtin_" prefix is only enabled for the GNU C and Objective C
7767         languages when they are in non-strict ANSI/ISO mode.
7768         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
7769         * target.def (floatn_builtin_p): Add a target hook to control
7770         whether _Float<N> and _Float<N>X built-in functions without the
7771         "__builtin_" prefix are enabled, and return true for C and
7772         Objective C in the default hook.  Include langhooks.h in
7773         targhooks.c.
7774         * targhooks.h (default_floatn_builtin_p): Likewise.
7775         * targhooks.c (default_floatn_builtin_p): Likewise.
7776         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
7777         floatn_builtin_p target hook.
7778         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
7780 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
7781             Eric Botcazou  <ebotcazou@adacore.com>
7783         PR rtl-optimization/81803
7784         * lra-constraints.c (curr_insn_transform): Also reload the whole
7785         register for a strict subreg no wider than a word if this is for
7786         a WORD_REGISTER_OPERATIONS target.
7788 2017-10-31  Jason Merrill  <jason@redhat.com>
7790         * gdbinit.in: Skip over inlines from timevar.h.
7792 2017-10-31  Martin Liska  <mliska@suse.cz>
7794         * doc/gcov.texi: Document new option.
7795         * gcov.c (print_usage): Likewise print it.
7796         (process_args): Support the argument.
7797         (format_count): New function.
7798         (format_gcov): Use the function.
7800 2017-10-31  Martin Liska  <mliska@suse.cz>
7802         * gcov.c (struct name_map): do not use typedef.
7803         Define operator== and operator<.
7804         (name_search): Remove.
7805         (name_sort): Remove.
7806         (main): Do not allocate names.
7807         (process_file): Add vertical space.
7808         (generate_results): Use std::find.
7809         (release_structures): Do not release memory.
7810         (find_source): Use std::find.
7812 2017-10-31  Martin Liska  <mliska@suse.cz>
7814         * gcov.c (struct line_info): Remove it's typedef.
7815         (line_info::line_info): Add proper ctor.
7816         (line_info::has_block): Do not use a typedef.
7817         (struct source_info): Do not use typedef.
7818         (circuit): Likewise.
7819         (get_cycles_count): Likewise.
7820         (output_intermediate_file): Iterate via vector iterator.
7821         (add_line_counts): Use std::vector methods.
7822         (accumulate_line_counts): Likewise.
7823         (output_lines): Likewise.
7825 2017-10-31  Martin Liska  <mliska@suse.cz>
7827         * gcov.c (struct source_info): Remove typedef.
7828         (source_info::source_info): Add proper ctor.
7829         (accumulate_line_counts): Use struct, not it's typedef.
7830         (output_gcov_file): Likewise.
7831         (output_lines): Likewise.
7832         (main): Do not allocate an array.
7833         (output_intermediate_file): Use size of vector container.
7834         (process_file): Resize the vector.
7835         (generate_results): Do not preallocate, use newly added vector
7836         lines.
7837         (release_structures): Do not release sources.
7838         (find_source): Use vector methods.
7839         (add_line_counts): Do not use typedef.
7841 2017-10-31  Martin Liska  <mliska@suse.cz>
7843         * doc/gcov.texi: Document that.
7844         * gcov.c (add_line_counts): Mark lines with a non-executed
7845         statement.
7846         (output_line_beginning): Handle such lines.
7847         (output_lines): Pass new argument.
7848         (output_intermediate_file): Print it in intermediate format.
7850 2017-10-31  Martin Liska  <mliska@suse.cz>
7852         * color-macros.h: New file.
7853         * diagnostic-color.c: Factor out color related to macros to
7854         color-macros.h.
7855         * doc/gcov.texi: Document -k option.
7856         * gcov.c (INCLUDE_STRING): Include string.h.
7857         (print_usage): Add -k option.
7858         (process_args): Parse it.
7859         (pad_count_string): New function.
7860         (output_line_beginning): Likewise.
7861         (DEFAULT_LINE_START): New macro.
7862         (output_lines): Support color output.
7864 2017-10-31  Martin Liska  <mliska@suse.cz>
7866         PR gcov-profile/82633
7867         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
7868         their interaction with GCOV infrastructure.
7869         * configure.ac: Add -fkeep-{inline,static}-functions to
7870         coverage_flags.
7871         * configure: Regenerate.
7873 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
7875         PR target/82772
7876         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
7878 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
7880         PR target/82674
7881         * config/rs6000/rs6000.md (allocate_stack): Force update interval
7882         into a register if it does not fit into an immediate offset field.
7884 2017-10-31  Olivier Hainque  <hainque@adacore.com>
7886         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
7888 2017-10-31  Julia Koval  <julia.koval@intel.com>
7890         * config.gcc: Add gfniintrin.h.
7891         * config/i386/gfniintrin.h: New.
7892         * config/i386/i386-builtin-types.def
7893         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
7894         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
7895         __builtin_ia32_vgf2p8affineinvqb_v32qi,
7896         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
7897         __builtin_ia32_vgf2p8affineinvqb_v16qi,
7898         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
7899         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
7900         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
7901         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
7902         V64QI_FTYPE_V64QI_V64QI_INT): New types.
7903         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
7904         * config/i386/immintrin.h: Include gfniintrin.h.
7905         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
7907 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
7909         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
7911 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
7913         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
7914         (arm_ashldi3_1bit): Remove pattern.
7915         (ashrdi3): Remove shift by 1 expansion.
7916         (arm_ashrdi3_1bit): Remove pattern.
7917         (lshrdi3): Remove shift by 1 expansion.
7918         (arm_lshrdi3_1bit): Remove pattern.
7919         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
7920         cost of ashldi3 by 1.
7921         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
7922         (<shift>di3_neon): Likewise.
7924 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
7926         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
7927         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
7928         and (*aarch64_simd_mov<VQ:mode>).
7929         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
7930         pattern alternative.
7931         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
7932         attributes to match pattern alternative.
7934 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
7936         * config.gcc (powerpc*-*-*): Add emmintrin.h.
7937         * config/rs6000/emmintrin.h: New file.
7938         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
7940 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
7942         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
7943         * (movdi_vfp_cortexa8): Remove pattern.
7945 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7947         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
7948         etc. reference.
7949         (Specific, alpha*-dec-osf5.1): Remove.
7950         (Specific, mips-sgi-irix5): Remove.
7951         (Specific, mips-sgi-irix6): Remove.
7953 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
7955         PR middle-end/22141
7956         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
7957         arguments to clear_bit_region_be.
7959 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
7961         * gimplify.c: Include memmodel.h.
7963 2017-10-30  Martin Jambor  <mjambor@suse.cz>
7965         * omp-grid.c (grid_attempt_target_gridification): Also insert a
7966         condition whether loop should be executed at all.
7968 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
7970         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
7971         gimple folding of vec_madd() intrinsics.
7972         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
7973         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
7974         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
7976 2017-10-30  Richard Biener  <rguenther@suse.de>
7978         PR tree-optimization/82762
7979         Revert
7980         2017-10-23  Richard Biener  <rguenther@suse.de>
7982         PR tree-optimization/82129
7983         Revert
7984         2017-08-01  Richard Biener  <rguenther@suse.de>
7986         PR tree-optimization/81181
7987         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
7988         (compute_antic): ... end of iteration here.
7990 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
7992         * doc/invoke.texi (C Dialect Options): Document -std=c17,
7993         -std=iso9899:2017 and -std=gnu17.
7994         * doc/standards.texi (C Language): Document C17 support.
7995         * doc/cpp.texi (Overview): Mention -std=c17.
7996         (Standard Predefined Macros): Document C11 and C17 values of
7997         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
7998         * doc/extend.texi (Inline): Do not list individual options for
7999         standards newer than C99.
8000         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
8001         "GNU C17".
8002         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
8003         language name.
8005 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
8007         * asan.c (asan_finish_file): Align asan globals array by shadow
8008         granularity.
8010 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
8012         PR middle-end/22141
8013         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
8014         (struct store_immediate_info): Add bitregion_start and bitregion_end
8015         fields.
8016         (store_immediate_info::store_immediate_info): Add brs and bre
8017         arguments and initialize bitregion_{start,end} from those.
8018         (struct merged_store_group): Add bitregion_start, bitregion_end,
8019         align_base and mask fields.  Drop unnecessary struct keyword from
8020         struct store_immediate_info.  Add do_merge method.
8021         (clear_bit_region_be): Use memset instead of loop storing zeros.
8022         (merged_store_group::do_merge): New method.
8023         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
8024         stores as long as the surrounding bitregions have no gaps.
8025         (merged_store_group::merge_overlapping): Use do_merge.
8026         (merged_store_group::apply_stores): Test that bitregion_{start,end}
8027         is byte aligned, rather than requiring that start and width are
8028         byte aligned.  Drop unnecessary struct keyword from
8029         struct store_immediate_info.  Allocate and populate also mask array.
8030         Make start of the arrays relative to bitregion_start rather than
8031         start and size them according to bitregion_{end,start} difference.
8032         (struct imm_store_chain_info): Drop unnecessary struct keyword from
8033         struct store_immediate_info.
8034         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
8035         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
8036         struct keyword from struct store_immediate_info.
8037         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
8038         between stores as long as the surrounding bitregions have no gaps.
8039         Formatting fixes.
8040         (struct split_store): Add orig non-static data member.
8041         (split_store::split_store): Initialize orig to false.
8042         (find_constituent_stmts): Return store_immediate_info *, non-NULL
8043         if there is exactly a single original stmt.  Change stmts argument
8044         to pointer from reference, if NULL, don't push anything to it.  Add
8045         first argument, use it to optimize skipping over orig stmts that
8046         are known to be before bitpos already.  Simplify.
8047         (split_group): Return unsigned int count how many stores are or
8048         would be needed rather than a bool.  Add allow_unaligned argument.
8049         Change split_stores argument from reference to pointer, if NULL,
8050         only do a dry run computing how many stores would be produced.
8051         Rewritten algorithm to use both alignment and misalign if
8052         !allow_unaligned and handle bitfield stores with gaps.
8053         (imm_store_chain_info::output_merged_store): Set start_byte_pos
8054         from bitregion_start instead of start.  Compute allow_unaligned
8055         here, if true, do 2 split_group dry runs to compute which one
8056         produces fewer stores and prefer aligned if equal.  Punt if
8057         new count is bigger or equal than original before emitting any
8058         statements, rather than during that.  Remove no longer needed
8059         new_ssa_names tracking.  Replace num_stmts with
8060         split_stores.length ().  Use 32-bit stack allocated entries
8061         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
8062         if possible.  Handle bitfields with gaps.
8063         (pass_store_merging::execute): Ignore bitsize == 0 stores.
8064         Compute bitregion_{start,end} for the stores and construct
8065         store_immediate_info with that.  Formatting fixes.
8067 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
8069         PR target/82725
8070         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
8071         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
8073 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
8075         * gimplify.c: Include tm_p.h.
8077         * common.opt (gcoff): Re-add as ignored option.
8078         (gcoff1, gcoff2, gcoff3): Likewise.
8080         * Makefile.in (OBJS): Delete sdbout.o.
8081         (GTFILES): Delete $(srcdir)/sdbout.c.
8082         * debug.h: Delete sdb_debug_hooks.
8083         * final.c: Delete sdbout.h include.
8084         (final_scan_insn): Delete SDB_DEBUG check.
8085         (rest_of_clean_state): Likewise.
8086         * output.h: Delete sdb_begin_function_line.
8087         * sdbout.c: Delete.
8088         * sdbout.h: Delete.
8089         * toplev.c: Delete sdbout.h include.
8090         (process_options): Delete SDB_DEBUG check.
8091         * tree-core.h (tree_type_common): Delete pointer field of
8092         tree_type_symtab.
8093         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
8094         TYPE_SYMTAB_POINTER.
8095         * tree.h (TYPE_SYMTAB_POINTER): Delete.
8096         (TYPE_SYMTAB_IS_POINTER): Delete.
8097         (TYPE_SYMTAB_IS_DIE): Renumber.
8098         * xcoffout.c: Refer to former sdbout.c file.
8099         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
8101         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
8102         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
8103         (Debugging Options): Delete -gcoff.
8104         (-gstabs): Delete SDB reference.
8105         (-gcoff): Delete.
8106         (-gcoff@var{level}): Delete.
8107         * doc/passes.texi (Debugging information output): Delete SDB and
8108         sdbout.c references.
8109         * doc/tm.texi: Regenerate.
8110         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
8111         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
8112         references.
8113         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
8114         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
8115         (SDB_DEBUGGING_INFO): Delete.
8116         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
8117         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
8118         * target.def (output_source_filename): Delete COFF reference.
8120         * common.opt (gcoff): Delete.
8121         (gxcoff+): Update Negative chain.
8122         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
8123         SDB_DEBUG.
8124         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
8125         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
8126         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
8127         and SDB references.
8128         (expand_function_start): Change sdb reference to past tense.
8129         (expand_function_end): Change sdb reference to past tense.
8130         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
8131         * opts.c (debug_type_names): Delete coff entry.
8132         (common_handle_option): Delete OPT_gcoff case.
8133         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
8135         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
8136         * config/cris/cris.h: Delete SDB reference in comment.
8137         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
8138         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
8139         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
8140         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
8141         to past tense.
8142         (ix86_expand_prologue): Likewise.
8143         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
8144         * config/ia64/ia64.h: Likewise.
8145         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
8146         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
8147         support.
8148         * config/mmix/mmix.h: Likewise.
8149         * config/nds32/nds32.c: Likewise.
8150         * config/stormy/storym16.h: Likewise.
8151         * config/visium/visium.h: Likewise.
8152         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
8154 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
8156         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
8157         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
8158         FRAME_POINTER_REGNUM point at high end of local var area.
8160 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8162         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
8163         Move comment around.  Do not reset best_edge for a copiable
8164         destination if the copy would cause a partition change.
8165         (better_edge_p): Remove redundant check.
8167 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
8169         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
8171 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
8173         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
8174         for math functions that have _Float<N> and _Float<N>X variants.
8175         (mathfn_built_in_2): Add support for math functions that have
8176         _Float<N> and _Float<N>X variants.
8177         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
8178         (expand_builtin_mathfn_ternary): Add support for fma with
8179         _Float<N> and _Float<N>X variants.
8180         (expand_builtin): Likewise.
8181         (fold_builtin_3): Likewise.
8182         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
8183         create math function _Float<N> and _Float<N>X variants as external
8184         library builtins.
8185         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
8186         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
8187         the __builtin_ prefix and if not strict ansi, without the prefix.
8188         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
8189         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
8190         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
8191         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
8192         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
8193         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
8194         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
8195         function signatures for fma _Float<N> and _Float<N>X variants.
8196         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
8197         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
8198         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
8199         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
8200         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
8201         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
8202         * gencfn-macros.c (print_case_cfn): Add support for math functions
8203         that have _Float<N> and _Float<N>X variants.
8204         (print_define_operator_list): Likewise.
8205         (fltfn_suffixes): Likewise.
8206         (main): Likewise.
8207         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
8208         for math functions that have _Float<N> and _Float<N>X variants.
8209         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
8210         and _Float<N>X variants.
8211         (COPYSIGN): Likewise.
8212         (FMIN): Likewise.
8213         (FMAX): Likewise.
8214         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
8215         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
8216         variants.
8217         (integer_valued_read_call_p): Likewise.
8218         * fold-const-call.c (fold_const_call_ss): Likewise.
8219         (fold_const_call_sss): Add support for copysign, fmin, and fmax
8220         _Float<N> and _Float<N>X variants.
8221         (fold_const_call_ssss): Add support for fma _Float<N> and
8222         _Float<N>X variants.
8223         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
8224         support for copysign and fma _Float<N> and _Float<N>X variants.
8225         (backprop::process_builtin_call_use): Likewise.
8226         * tree-call-cdce.c (can_test_argument_range); Add support for
8227         sqrt _Float<N> and _Float<N>X variants.
8228         (edom_only_function): Likewise.
8229         (get_no_error_domain): Likewise.
8230         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
8231         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
8232         copysign _Float<N> and _Float<N>X variants.
8233         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
8234         handled by machine independent code.
8235         (FMAF128): Likewise.
8236         * doc/cpp.texi (Common Predefined Macros): Document defining
8237         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
8238         fma _Float<N> and _Float<N>X variants.
8240 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
8242         PR target/82692
8243         * config/i386/i386-modes.def (CCFPU): Remove definition.
8244         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
8245         (ix86_cc_modes_compatible): Ditto.
8246         (ix86_expand_carry_flag_compare): Ditto.
8247         (ix86_expand_int_movcc): Ditto.
8248         (ix86_expand_int_addcc): Ditto.
8249         (ix86_reverse_condition): Ditto.
8250         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
8251         Return true/false for unordered/ordered fp comparisons.
8252         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
8253         (ix86_prepare_fp_compare_args): Update for rename.
8254         (ix86_expand_fp_compare): Update for rename.  Generate unordered
8255         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
8256         (ix86_expand_sse_compare_and_jump): Ditto.
8257         * config/i386/predicates.md (fcmov_comparison_operator):
8258         Remove CCFPU mode handling.
8259         (ix86_comparison_operator): Ditto.
8260         (ix86_carry_flag_operator): Ditto.
8261         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
8262         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
8263         (*cmpu<mode>_cc_i387): Ditto.
8264         (FPCMP): Remove mode iterator.
8265         (unord): Remove mode attribute.
8266         (unord_subst): New define_subst transformation
8267         (unord): New define_subst attribute.
8268         (unordered): Ditto.
8269         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
8270         (*cmpi<unord>xf_i387): Ditto.
8271         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
8272         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
8273         using unord_subst transformation.
8274         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
8275         (round_saeonly): Also handle CCFP mode.
8276         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
8277         Remove UNSPEC_SAHF unspec handling.
8279 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
8281         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
8283 2017-10-27  Jeff Law  <law@redhat.com>
8285         * gimple-ssa-sprintf.c: Include domwalk.h.
8286         (class sprintf_dom_walker): New class, derived from dom_walker.
8287         (sprintf_dom_walker::before_dom_children): New function.
8288         (struct call_info): Moved into sprintf_dom_walker class
8289         (compute_formath_length, handle_gimple_call): Likewise.
8290         (sprintf_length::execute): Call the dominator walker rather
8291         than walking the statements.
8293         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
8294         gimple statement locations.
8295         (check_array_bounds): Corresponding changes.  Get the statement's
8296         location directly from wi->stmt.
8298 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
8300         PR target/82717
8301         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
8303 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
8305         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
8306         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
8308 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
8310         PR target/82703
8311         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
8312         * config/i386/i386.c (maybe_get_pool_constant): Removed.
8313         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
8314         maybe_get_pool_constant.
8315         * config/i386/predicates.md (zero_extended_scalar_load_operand):
8316         Likewise.
8318 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8320         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
8321         2.26 caveat.  Update gas and gld versions.
8322         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
8323         reference.
8325 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8327         * cgraph.h (set_malloc_flag): Declare.
8328         * cgraph.c (set_malloc_flag_1): New function.
8329         (set_malloc_flag): Likewise.
8330         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
8331         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
8332         false.
8333         (read_ipa_call_summary): Add support for reading is_return_callee.
8334         (write_ipa_call_summary): Stream is_return_callee.
8335         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
8336         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
8337         ipa-prop.h, ipa-fnsummary.h.
8338         (pure_const_names): Change to static.
8339         (malloc_state_e): Define.
8340         (malloc_state_names): Define.
8341         (funct_state_d): Add field malloc_state.
8342         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
8343         (check_retval_uses): New function.
8344         (malloc_candidate_p): Likewise.
8345         (analyze_function): Add support for malloc attribute.
8346         (pure_const_write_summary): Stream malloc_state.
8347         (pure_const_read_summary): Add support for reading malloc_state.
8348         (dump_malloc_lattice): New function.
8349         (propagate_malloc): New function.
8350         (warn_function_malloc): New function.
8351         (ipa_pure_const::execute): Call propagate_malloc and
8352         ipa_free_fn_summary.
8353         (pass_local_pure_const::execute): Add support for malloc attribute.
8354         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
8355         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
8357 2017-10-27  Martin Liska  <mliska@suse.cz>
8359         PR gcov-profile/82457
8360         * doc/invoke.texi: Document that one needs a non-strict ISO mode
8361         for fork-like functions to be properly instrumented.
8363 2017-10-27  Richard Biener  <rguenther@suse.de>
8365         PR middle-end/81659
8366         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
8367         info when we redirected EH.
8369 2017-10-26  Michael Collison  <michael.collison@arm.com>
8371         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
8372         New pattern.
8373         (<optab>_trunchf<GPI:mode>2: New pattern.
8374         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
8375         * config/aarch64/iterators.md (wv): New mode attribute.
8376         (vf, VF): New mode attributes.
8377         (vgp, VGP): New mode attributes.
8378         (s): Update attribute with SImode and DImode prefixes.
8380 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
8382         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
8383         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
8384         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
8385         (nios2_option_overide): Initialize it.  Don't allow R0-relative
8386         addressing with PIC.
8387         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
8388         (nios2_symbolic_constant_p): Likewise.
8389         (nios2_legitimate_address_p): Likewise.
8390         (nios2_r0rel_section_name_p): New.
8391         (nios2_symbol_ref_in_r0rel_data_p): New.
8392         (nios2_emit_move_sequence): Handle r0rel_constant_p.
8393         (r0rel_constant_p): New.
8394         (nios2_print_operand_address): Handle r0rel_constant_p.
8395         (nios2_cdx_narrow_form_p): Likewise.
8396         * config/nios2/nios2.opt (mr0rel-sec=): New option.
8397         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
8398         (Nios II Options): Document -mr0rel-sec.
8400 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
8402         * config/nios2/nios2.c: Include xregex.h.
8403         (nios2_gprel_sec_regex): New.
8404         (nios2_option_overide): Initialize it.  Don't allow GP-relative
8405         addressing with PIC.
8406         (nios2_small_section_name_p): Check for regex match.
8407         * config/nios2/nios2.opt (mgprel-sec=): New option.
8408         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
8409         (Nios II Options): Document -mgprel-sec.
8411 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
8413         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
8415 2017-10-26  Tom de Vries  <tom@codesourcery.com>
8417         PR tree-optimization/82707
8418         * gimple.c (gimple_copy): Fix unsharing of
8419         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
8421 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
8423         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
8424         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
8425         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
8426         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
8427         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
8428         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
8429         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
8430         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
8431         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
8432         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
8433         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
8434         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
8435         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
8436         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
8437         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
8438         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
8439         _mm512_mask_cmpunord_ps_mask): New intrinsics.
8441 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
8443         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
8444         default to IBM.
8445         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
8446         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
8447         warning to rs6000.c.  Remove the Undocumented flag, since it has
8448         been documented.
8449         (-mabi=ibmlongdouble): Likewise.
8450         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
8451         already set, set the default format for long double.
8452         (rs6000_debug_reg_global): Print whether long double is IBM or
8453         IEEE.
8454         (rs6000_option_override_internal): Rework setting long double
8455         format.  Only warn if the user is changing the long double default
8456         and they did not use -Wno-psabi.
8457         * doc/invoke.texi (PowerPC options): Update the documentation for
8458         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
8460 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8461             Alan Hayward  <alan.hayward@arm.com>
8462             David Sherwood  <david.sherwood@arm.com>
8464         * rtl.h (wider_subreg_mode): New function.
8465         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
8466         rather than an unsigned int *.
8467         * ira-color.c (regno_max_ref_width): Replace with...
8468         (regno_max_ref_mode): ...this new variable.
8469         (coalesced_pseudo_reg_slot_compare): Update accordingly.
8470         Use wider_subreg_mode.
8471         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
8472         rather than an unsigned int *.
8473         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
8474         (process_alt_operands): Likewise.
8475         (invariant_p): Likewise.
8476         * lra-spills.c (assign_mem_slot): Likewise.
8477         (add_pseudo_to_slot): Likewise.
8478         * lra.c (collect_non_operand_hard_regs): Likewise.
8479         (add_regs_to_insn_regno_info): Likewise.
8480         * reload1.c (regno_max_ref_width): Replace with...
8481         (regno_max_ref_mode): ...this new variable.
8482         (reload): Update accordingly.  Update call to
8483         ira_sort_regnos_for_alter_reg.
8484         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
8485         (init_eliminable_invariants): Update to use regno_max_ref_mode.
8486         (scan_paradoxical_subregs): Likewise.
8488 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
8490         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
8491         (aarch64_frame): Add emit_frame_chain boolean.
8492         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
8493         Move eh_return case to aarch64_layout_frame.
8494         (aarch64_layout_frame): Initialize emit_frame_chain.
8495         (aarch64_expand_prologue): Use emit_frame_chain.
8497 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
8499         * config/aarch64/aarch64.c (aarch64_layout_frame):
8500         Ensure LR is always stored at the bottom of the callee-saves.
8501         Remove rarely used frame layout which saves callee-saves at top of
8502         frame, so the store of LR can be used as a valid probe in all cases.
8504 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
8506         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
8507         Improve unaligned TImode/TFmode base/offset split.
8509 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8510             Alan Hayward  <alan.hayward@arm.com>
8511             David Sherwood  <david.sherwood@arm.com>
8513         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
8514         * combine.c (find_single_use_1): Likewise.
8515         (expand_field_assignment): Likewise.
8516         (move_deaths): Likewise.
8517         * lra-constraints.c (simplify_operand_subreg): Likewise.
8518         (curr_insn_transform): Likewise.
8519         * lra.c (collect_non_operand_hard_regs): Likewise.
8520         (add_regs_to_insn_regno_info): Likewise.
8521         * rtlanal.c (reg_referenced_p): Likewise.
8522         (covers_regno_no_parallel_p): Likewise.
8524 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8526         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
8527         Don't print any bits outside the precision of the value.
8528         * wide-int.cc (test_printing): Add some new tests.
8530 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8532         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
8533         supports -xbrace_comment option.
8534         * configure: Regenerate.
8535         * config.in: Regenerate.
8536         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
8537         (ASM_CPU_SPEC): Use it.
8539 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8541         * target.def (static_rtx_alignment): New hook.
8542         * targhooks.h (default_static_rtx_alignment): Declare.
8543         * targhooks.c (default_static_rtx_alignment): New function.
8544         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
8545         * doc/tm.texi: Regenerate.
8546         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
8547         instead of targetm.constant_alignment.  Remove call to
8548         set_mem_attributes.
8549         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8550         (cris_preferred_mininum_alignment): New function, split out from...
8551         (cris_constant_alignment): ...here.
8552         (cris_static_rtx_alignment): New function.
8553         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
8554         split out from...
8555         (ix86_constant_alignment): ...here.
8556         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8557         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8558         (mmix_static_rtx_alignment): New function.
8559         * config/spu/spu.c (spu_static_rtx_alignment): New function.
8560         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8562 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
8564         PR target/81800
8565         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
8566         Add flag_trapping_math and flag_fp_int_builtin_inexact.
8568 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
8570         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
8571         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
8572         mark as a sign-extending load.
8573         (local_pic_load_u): Define.
8575 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
8577         PR middle-end/82062
8578         * fold-const.c (operand_equal_for_comparison_p): Also return true
8579         if ARG0 is a simple variant of ARG1 with narrower precision.
8580         (fold_ternary_loc): Always pass unstripped operands to the predicate.
8582 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
8584         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
8585         cost correctly.
8586         * i386.h (processor_costs): Add gather_static, gather_per_elt,
8587         scatter_static, scatter_per_elt.
8588         * x86-tune-costs.h: Add new cost entries.
8590 2017-10-25  Richard Biener  <rguenther@suse.de>
8592         * tree-ssa-sccvn.h (vn_eliminate): Declare.
8593         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
8594         class pass_fre): Move to ...
8595         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
8596         class pass_fre): ... here and adjust for statistics.
8598 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
8600         PR libstdc++/81706
8601         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
8602         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
8603         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
8604         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
8605         declarations.
8607 2017-10-25  Richard Biener  <rguenther@suse.de>
8609         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
8610         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
8611         eliminate_push_avail, eliminate_insert): Move inside...
8612         (class eliminate_dom_walker): ... this class in preparation
8613         of move.
8614         (fini_eliminate): Remove by merging with ...
8615         (eliminate): ... this function.  Adjust for class changes.
8616         (pass_pre::execute): Remove fini_eliminate call.
8617         (pass_fre::execute): Likewise.
8619 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
8621         PR target/82460
8622         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
8623         (VPERMI2, VPERMI2I): New mode iterators.
8624         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
8625         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
8626         patterns.
8627         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
8628         mode iterator.  Remove 3 old define_insn patterns.
8629         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
8630         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
8631         VPERMI2 mode iterator, remove the other two expanders.
8632         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
8633         to use VPERMI2 mode iterator, add another alternative for vpermi2*
8634         instructions, remove the other two patterns.
8635         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
8636         mode iterator, remove the other two patterns.
8637         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
8638         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
8639         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
8640         and adjust argument order accordingly.
8641         (ix86_expand_vec_perm): Adjust caller.
8642         (expand_vec_perm_1): Likewise.
8643         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
8644         (expand_vec_perm_vpermt2_vpshub2): ... this.
8645         (ix86_expand_vec_perm_const_1): Adjust caller.
8646         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
8648         PR target/82370
8649         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
8650         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
8651         (vec_shl_<mode>): Remove unused expander.
8652         (avx512bw_<shift_insn><mode>3): New define_insn.
8653         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
8654         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
8656 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
8658         PR c++/82466
8659         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
8660         description.
8662 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
8664         PR rtl-optimization/82396
8665         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
8666         (autopref_multipass_init): Simplify initialization.
8667         (autopref_rank_data): Simplify sort order.
8668         * gcc/sched-int.h (autopref_multipass_data_): Remove
8669         multi_mem_insn_p, min_offset and max_offset.
8671 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
8673         PR middle-end/60580
8674         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
8675         Check special value of flag_omit_frame_pointer.
8676         (aarch64_can_eliminate): Likewise.
8677         (aarch64_override_options_after_change_1): Simplify handling of
8678         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
8680 2017-10-24  Richard Biener  <rguenther@suse.de>
8682         PR tree-optimization/82697
8683         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
8684         zero for conditional load and unconditional store.
8686 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
8688         * doc/install.texi: Document bootstrap-cet.
8690 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
8692         PR target/82659
8693         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
8694         ENDBR instruction at function entrance if function is only
8695         called directly.
8697 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
8699         PR target/82628
8700         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
8701         patterns to better describe from which operation the CF is computed.
8702         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
8703         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
8704         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
8705         is 0, use _0 suffixed expanders instead of emitting a comparison
8706         before it.
8708 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
8710         * config/i386/i386.md(*movsf_internal, *movdf_internal):
8711         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
8713 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8715         PR middle-end/82569
8716         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
8717         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
8718         * loop-iv.c (iv_get_reaching_def): Likewise.
8719         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
8720         variable is promoted and the partition contains undefined values.
8722 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
8724         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
8725         reflect reality.
8726         (nios2_address_cost): Define.
8727         (nios2_legitimize_address): Recognize (exp + constant) directly.
8728         (TARGET_ADDRESS_COST): Define.
8730 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
8732         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
8733         (nios2_symbolic_memory_operand_p): Declare.
8734         (nios2_split_large_constant): Declare.
8735         (nios2_split_symbolic_memory_operand): Declare.
8736         * config/nios2/nios2.c: Adjust includes.
8737         (nios2_symbolic_constant_allowed): New.
8738         (nios2_symbolic_constant_p): New.
8739         (nios2_plus_symbolic_constant_p): New.
8740         (nios2_valid_addr_expr_p): Recognize addresses involving
8741         symbolic constants.
8742         (nios2_legitimate_address_p): Likewise, also LO_SUM.
8743         (nios2_symbolic_memory_operand_p): New.
8744         (nios2_large_constant_p): New.
8745         (nios2_split_large_constant): New.
8746         (nios2_split_plus_large_constant): New.
8747         (nios2_split_symbolic_memory_operand): New.
8748         (nios2_legitimize_address): Code refactoring.  Handle addresses
8749         involving symbolic constants.
8750         (nios2_emit_move_sequence): Likewise.
8751         (nios2_print_operand): Improve error output.
8752         (nios2_print_operand_address): Handle LO_SUM.
8753         (nios2_cdx_narrow_form_p): Likewise.
8754         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
8755         operands involving symbolic constants.
8756         (movhi_internal, movsi_internal): Likewise.
8757         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
8758         (extendhisi2, extendqi<mode>2): Likewise.
8760 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
8762         * tree-pass.h (PROP_rtl_split_insns): Define.
8763         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
8765 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
8767         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
8769 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
8771         PR debug/82630
8772         * target.def (const_not_ok_for_debug_p): Default to
8773         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
8774         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
8775         * targhooks.c (default_const_not_ok_for_debug_p): New function.
8776         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
8777         which targetm.const_not_ok_for_debug_p returned true.
8778         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
8779         for UNSPECs.
8780         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
8781         Likewise.
8782         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
8783         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
8784         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
8785         if !base_term_p.
8786         (ix86_const_not_ok_for_debug_p): New function.
8787         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
8788         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
8790 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
8792         PR bootstrap/82610
8793         * system.h: Conditionally include "unique-ptr.h" if
8794         INCLUDE_UNIQUE_PTR is defined.
8795         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
8796         of defining INCLUDE_UNIQUE_PTR before including "system.h".
8798 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
8800         * config/rl78/rl78.md: New define_expand "subdi3".
8802 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
8804         PR target/82673
8805         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
8806         DF_REF_INSN if DF_REF_INSN_INFO is false.
8808 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
8810         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
8811         xmm_move instead of sse_move.
8812         (sse_store_index): New function.
8813         (ix86_register_move_cost): Be more sensible about mismatch stall;
8814         model AVX moves correctly; make difference between sse->integer and
8815         integer->sse.
8816         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
8817         moves; make difference between SSE and AVX.
8818         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
8819         and zmm_move. Increase size of sse load and store tables;
8820         add unaligned load and store tables; add ssemmx_to_integer.
8821         * x86-tune-costs.h: Update all entries according to real
8822         move latencies from Agner Fog's manual and chip documentation.
8824 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
8826         PR target/82628
8827         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
8828         * config/i386/constraints.md (Wf): New constraint.
8829         * config/i386/i386.md (UNSPEC_SBB): New unspec.
8830         (cmp<dwi>_doubleword): Removed.
8831         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
8832         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
8833         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
8834         expand with cmp<dwi>_doubleword.  For LTU and GEU use
8835         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
8837         * common.opt (gcolumn-info): Enable by default.
8838         * doc/invoke.texi (gcolumn-info): Document new default.
8840 2017-10-23  Richard Biener  <rguenther@suse.de>
8842         PR tree-optimization/82672
8843         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
8844         Fold the stmt if we propagated into it.
8846 2017-10-23  Richard Biener  <rguenther@suse.de>
8848         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
8849         (bitmap_remove_expr_from_set): ... this.  All callers call this
8850         for non-constant values.
8851         (bitmap_set_subtract): Rename to...
8852         (bitmap_set_subtract_expressions): ... this.  Adjust and
8853         optimize.
8854         (bitmap_set_contains_value): Remove superfluous check.
8855         (bitmap_set_replace_value): Inline into single caller ...
8856         (bitmap_value_replace_in_set): ... here and simplify.
8857         (dependent_clean): Merge into ...
8858         (clean): ... this using an overload.  Adjust.
8859         (prune_clobbered_mems): Adjust.
8860         (compute_antic_aux): Likewise.
8861         (compute_partial_antic_aux): Likewise.
8863 2017-10-23  Richard Biener  <rguenther@suse.de>
8865         PR tree-optimization/82129
8866         Revert
8867         2017-08-01  Richard Biener  <rguenther@suse.de>
8869         PR tree-optimization/81181
8870         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
8871         (compute_antic): ... end of iteration here.
8873 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
8875         * target.def (starting_frame_offset): New hook.
8876         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
8877         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
8878         * doc/tm.texi.in: Regenerate.
8879         * hooks.h (hook_hwi_void_0): Declare.
8880         * hooks.c (hook_hwi_void_0): New function.
8881         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
8882         STARTING_FRAME_OFFSET.
8883         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
8884         * reload1.c (reload): Likewise.
8885         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
8886         instead of STARTING_FRAME_OFFSET.
8887         * function.c (try_fit_stack_local): Likewise.
8888         (assign_stack_local_1): Likewise
8889         (instantiate_virtual_regs): Likewise.
8890         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
8891         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
8892         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
8893         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
8894         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
8895         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
8896         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
8897         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
8898         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
8899         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
8900         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
8901         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
8902         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
8903         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
8904         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
8905         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
8906         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
8907         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
8908         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
8909         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
8910         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
8911         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
8912         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
8913         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
8914         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
8915         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
8916         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
8917         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
8918         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
8919         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
8920         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
8921         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
8922         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
8923         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
8924         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
8925         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
8926         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
8927         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
8928         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
8929         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
8930         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
8931         * config/avr/avr.c (avr_starting_frame_offset): Make static and
8932         return a HOST_WIDE_INT.
8933         (avr_builtin_setjmp_frame_value): Use it instead of
8934         STARTING_FRAME_OFFSET.
8935         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8936         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
8937         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
8938         New function.
8939         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8940         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
8941         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
8942         (TARGET_CONSTANT_ALIGNMENT): Redefine.
8943         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
8944         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
8945         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8946         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
8947         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
8948         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8949         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
8950         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
8951         New function.
8952         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8953         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
8954         * config/mips/mips.c (mips_compute_frame_info): Refer to
8955         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
8956         (mips_starting_frame_offset): New function.
8957         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8958         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
8959         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
8960         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
8961         and return a HOST_WIDE_INT.
8962         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8963         (mmix_initial_elimination_offset): Refer to
8964         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
8965         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
8966         * config/pa/pa.c (pa_starting_frame_offset): New function.
8967         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
8968         (pa_expand_prologue): Likewise.
8969         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8970         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
8971         !FRAME_GROWS_DOWNWARD handling to...
8972         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
8973         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
8974         !FRAME_GROWS_DOWNWARD handling to...
8975         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
8976         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
8977         !FRAME_GROWS_DOWNWARD handling to...
8978         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
8979         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
8980         Redefine.
8981         (rs6000_starting_frame_offset): New function.
8982         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
8983         !FRAME_GROWS_DOWNWARD handling to...
8984         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
8985         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
8986         !FRAME_GROWS_DOWNWARD handling to...
8987         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
8988         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
8989         !FRAME_GROWS_DOWNWARD handling to...
8990         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
8991         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
8992         (rs6000_starting_frame_offset): New function.
8993         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
8994         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
8995         * config/vax/vax.c (vax_starting_frame_offset): New function.
8996         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
8997         (TARGET_STARTING_FRAME_OFFSET): Redefine.
8998         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
8999         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
9000         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9001         * system.h (STARTING_FRAME_OFFSET): Poison.
9003 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9005         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
9006         SCALAR_TYPE_MODE instead of TYPE_MODE.
9008 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9009             Alan Hayward  <alan.hayward@arm.com>
9010             David Sherwood  <david.sherwood@arm.com>
9012         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
9014 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9015             Alan Hayward  <alan.hayward@arm.com>
9016             David Sherwood  <david.sherwood@arm.com>
9018         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
9020 2017-10-23  Richard Biener  <rguenther@suse.de>
9022         PR tree-optimization/82129
9023         * tree-ssa-pre.c (bitmap_set_and): Remove.
9024         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
9025         canonicalizing expressions in the set to those with lowest
9026         ID rather than taking that from the first edge.
9028 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9030         * combine.c (rtx_equal_for_field_assignment_p): Use
9031         byte_lowpart_offset.
9033 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9034             Alan Hayward  <alan.hayward@arm.com>
9035             David Sherwood  <david.sherwood@arm.com>
9037         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
9038         to a SUBREG_PROMOTED_VAR.
9040 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9041             Alan Hayward  <alan.hayward@arm.com>
9042             David Sherwood  <david.sherwood@arm.com>
9044         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
9045         (expand_debug_source_expr): Likewise.
9046         * combine.c (combine_simplify_rtx): Likewise.
9047         * cse.c (fold_rtx): Likewise.
9048         * optabs.c (expand_float): Likewise.
9049         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9050         (simplify_binary_operation_1): Likewise.
9052 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9053             Alan Hayward  <alan.hayward@arm.com>
9054             David Sherwood  <david.sherwood@arm.com>
9056         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
9057         (record_promoted_value): Likewise.
9058         * expr.c (expand_expr_real_2): Likewise.
9059         * ree.c (update_reg_equal_equiv_notes): Likewise.
9060         (combine_set_extension): Likewise.
9061         * rtlanal.c (low_bitmask_len): Likewise.
9062         * simplify-rtx.c (neg_const_int): Likewise.
9063         (simplify_binary_operation_1): Likewise.
9065 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9066             Alan Hayward  <alan.hayward@arm.com>
9067             David Sherwood  <david.sherwood@arm.com>
9069         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
9070         * regcprop.c (maybe_mode_change): Likewise.
9071         * reload1.c (alter_reg): Likewise.
9073 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9075         * inchash.h (inchash::hash::add_wide_int): New function.
9076         * lto-streamer-out.c (hash_tree): Use it.
9078 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9080         * inchash.h (inchash::hash::add_wide_int): Rename to...
9081         (inchash::hash::add_hwi): ...this.
9082         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
9083         (polymorphic_call_target_hasher::hash): Likewise.
9084         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
9085         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
9086         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
9087         * lto-streamer-out.c (hash_tree): Likewise.
9088         * optc-save-gen.awk: Likewise.
9089         * tree.c (add_expr): Likewise.
9091 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
9093         PR target/52451
9094         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
9095         for ordered inequality comparisons even with TARGET_IEEE_FP.
9097 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
9099         PR target/82628
9100         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
9101         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
9102         Expand with cmp<dwi>_doubleword.
9104 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9106         * extend.texi: Add x86 specific to 'nocf_check' attribute.
9107         List CET intrinsics.
9108         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
9109         specific to -fcf-protection option.
9111 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9113         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
9114         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
9115         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
9116         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
9117         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
9118         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
9119         (extra_objs): Add cet.o for Linux/x86 targets.
9120         (tmake_file): Add i386/t-cet for Linux/x86 targets.
9121         * config/i386/cet.c: New file.
9122         * config/i386/cetintrin.h: Likewise.
9123         * config/i386/t-cet: Likewise.
9124         * config/i386/cpuid.h (bit_SHSTK): New.
9125         (bit_IBT): Likewise.
9126         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
9127         pass IBT and SHSTK bits.
9128         * config/i386/i386-builtin-types.def
9129         (VOID_FTYPE_UNSIGNED_PVOID): New.
9130         (VOID_FTYPE_UINT64_PVOID): Likewise.
9131         * config/i386/i386-builtin.def: Add CET intrinsics.
9132         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9133         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
9134         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
9135         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
9136         prototype.
9137         * config/i386/i386.c (rest_of_insert_endbranch): New.
9138         (pass_data_insert_endbranch): Likewise.
9139         (pass_insert_endbranch): Likewise.
9140         (make_pass_insert_endbranch): Likewise.
9141         (ix86_notrack_prefixed_insn_p): Likewise.
9142         (ix86_target_string): Add -mibt, -mshstk flags.
9143         (ix86_option_override_internal): Add flag_cf_protection
9144         processing.
9145         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
9146         (ix86_print_operand): Add 'notrack' prefix output.
9147         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
9148         (ix86_expand_builtin): Expand CET intrinsics.
9149         (x86_output_mi_thunk): Add 'endbranch' instruction.
9150         * config/i386/i386.h (TARGET_IBT): New.
9151         (TARGET_IBT_P): Likewise.
9152         (TARGET_SHSTK): Likewise.
9153         (TARGET_SHSTK_P): Likewise.
9154         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
9155         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
9156         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
9157         (builtin_setjmp_setup): New pattern.
9158         (builtin_longjmp): Likewise.
9159         (rdssp<mode>): Likewise.
9160         (incssp<mode>): Likewise.
9161         (saveprevssp): Likewise.
9162         (rstorssp): Likewise.
9163         (wrss<mode>): Likewise.
9164         (wruss<mode>): Likewise.
9165         (setssbsy): Likewise.
9166         (clrssbsy): Likewise.
9167         (nop_endbr): Likewise.
9168         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
9169         options.
9170         * config/i386/immintrin.h: Include <cetintrin.h>.
9171         * config/i386/linux-common.h
9172         (file_end_indicate_exec_stack_and_cet): New prototype.
9173         (TARGET_ASM_FILE_END): New.
9175 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
9177         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
9178         latencies instead of having separate table; make difference between
9179         integer and float costs.
9180         * i386.h (processor_costs): Remove scalar_stmt_cost,
9181         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
9182         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
9183         vec_store_cost.
9184         * x86-tune-costs.h: Remove entries which has been removed in
9185         procesor_costs from all tables; make cond_taken_branch_cost
9186         and cond_not_taken_branch_cost COST_N_INSNS based.
9188 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
9190         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
9192 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
9194         * config/i386/i386.md (isa): Remove fma_avx512f.
9195         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
9196         <avx512>_fmadd_<mode>_mask3<round_name>,
9197         <avx512>_fmsub_<mode>_mask<round_name>,
9198         <avx512>_fmsub_<mode>_mask3<round_name>,
9199         <avx512>_fnmadd_<mode>_mask<round_name>,
9200         <avx512>_fnmadd_<mode>_mask3<round_name>,
9201         <avx512>_fnmsub_<mode>_mask<round_name>,
9202         <avx512>_fnmsub_<mode>_mask3<round_name>,
9203         <avx512>_fmaddsub_<mode>_mask<round_name>,
9204         <avx512>_fmaddsub_<mode>_mask3<round_name>,
9205         <avx512>_fmsubadd_<mode>_mask<round_name>,
9206         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
9207         (*vec_widen_umult_even_v16si<mask_name>,
9208         *vec_widen_smult_even_v16si<mask_name>): Likewise.
9209         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
9211 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9213         * extend.texi: Add 'nocf_check' documentation.
9214         * gimple.texi: Add second parameter to
9215         gimple_build_call_from_tree.
9216         * invoke.texi: Add -fcf-protection documentation.
9217         * rtl.texi: Add REG_CALL_NOTRACK documenation.
9219 2017-10-20  Richard Biener  <rguenther@suse.de>
9221         PR tree-optimization/82473
9222         * tree-vect-loop.c (vectorizable_reduction): Properly get at
9223         the largest input type.
9225 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9227         * c-attribs.c (handle_nocf_check_attribute): New function.
9228         (c_common_attribute_table): Add 'nocf_check' handling.
9229         * gimple-parser.c: Add second argument NULL to
9230         gimple_build_call_from_tree.
9231         * attrib.c (comp_type_attributes): Check nocf_check attribute.
9232         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
9233         call insn.
9234         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
9235         * common.opt: Add fcf-protection flag.
9236         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
9237         * flag-types.h: Add enum cf_protection_level.
9238         * gimple.c (gimple_build_call_from_tree): Add second parameter.
9239         Add 'nocf_check' attribute propagation to gimple call.
9240         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
9241         (gimple_build_call_from_tree): Update prototype.
9242         (gimple_call_nocf_check_p): New function.
9243         (gimple_call_set_nocf_check): Likewise.
9244         * gimplify.c: Add second argument to gimple_build_call_from_tree.
9245         * ipa-icf.c: Add nocf_check attribute in statement hash.
9246         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
9247         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
9248         * toplev.c (process_options): Add flag_cf_protection handling.
9250 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
9252         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
9254 2017-10-20  Richard Biener  <rguenther@suse.de>
9256         PR tree-optimization/82603
9257         * tree-if-conv.c (predicate_mem_writes): Make sure to only
9258         remove false predicated stores.
9260 2017-10-20  Richard Biener  <rguenther@suse.de>
9262         * graphite-isl-ast-to-gimple.c
9263         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
9264         Remove return value and simplify, dump copied stmt after lhs
9265         adjustment.
9266         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
9267         Reduce dump verbosity.
9268         (gsi_insert_earliest): Likewise.
9269         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
9270         * graphite.c (print_global_statistics): Adjust dumping.
9271         (print_graphite_scop_statistics): Likewise.
9272         (print_graphite_statistics): Do not dump loops here.
9273         (graphite_transform_loops): But here.
9275 2017-10-20  Nicolas Roche  <roche@adacore.com>
9277         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
9278         * configure: Regenerate.
9280 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
9282         PR target/82158
9283         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
9284         functions when optimizing replace GIMPLE_RETURN stmts with
9285         calls to __builtin_unreachable ().
9287         PR sanitizer/82595
9288         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
9289         for -fsanitize=thread link of executables.
9290         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
9291         link of executables.
9293         PR target/82370
9294         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
9295         New mode iterators.
9296         (<shift_insn><mode>3<mask_name>): Change the last of the 3
9297         define_insns for logical vector shifts to use VI248_AVX512BW
9298         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
9299         condition, useless isa and prefix attributes.  Change the first
9300         2 of these define_insns to ...
9301         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
9302         define_insn for avx512vl.
9303         (<shift_insn><mode>3): ... and this, new define_insn without
9304         masking for non-avx512vl.
9306         PR target/82370
9307         * config/i386/sse.md (*andnot<mode>3,
9308         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
9309         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
9310         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
9311         not applied use empty suffix even for TARGET_AVX512VL.
9312         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
9313         is applied, supply evex,evex or evex,evex,evex instead of just
9314         evex.
9316 2017-10-20  Julia Koval  <julia.koval@intel.com>
9318         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
9319         (OPTION_MASK_ISA_GFNI_UNSET): New.
9320         (ix86_handle_option): Handle OPT_mgfni.
9321         * config/i386/cpuid.h (bit_GFNI): New.
9322         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
9323         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
9324         * config/i386/i386.c (ix86_target_string): Add -mgfni.
9325         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
9326         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
9327         * config/i386/i386.opt: Add mgfni.
9329 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
9331         * config/msp430/msp430.c (msp430_option_override): Disable
9332         -fdelete-null-pointer-checks.
9333         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
9335 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
9337         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
9338         of x87 and SSE instructions.
9340 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
9342         * asan.c (create_cond_insert_point): Do not update edge count.
9343         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
9344         (afdo_propagate_circuit): Likewise.
9345         (afdo_calculate_branch_prob): Likewise.
9346         (afdo_annotate_cfg): Likewise.
9347         * basic-block.h (struct edge_def): Remove count.
9348         (edge_def::count): New accessor.
9349         * bb-reorder.c (rotate_loop): Update.
9350         (find_traces_1_round): Update.
9351         (connect_traces): Update.
9352         (sanitize_hot_paths): Update.
9353         * cfg.c (unchecked_make_edge): Update.
9354         (make_single_succ_edge): Update.
9355         (check_bb_profile): Update.
9356         (dump_edge_info): Update.
9357         (update_bb_profile_for_threading): Update.
9358         (scale_bbs_frequencies_int): Update.
9359         (scale_bbs_frequencies_gcov_type): Update.
9360         (scale_bbs_frequencies_profile_count): Update.
9361         (scale_bbs_frequencies): Update.
9362         * cfganal.c (connect_infinite_loops_to_exit): Update.
9363         * cfgbuild.c (compute_outgoing_frequencies): Update.
9364         (find_many_sub_basic_blocks): Update.
9365         * cfgcleanup.c (try_forward_edges): Update.
9366         (try_crossjump_to_edge): Update
9367         * cfgexpand.c (expand_gimple_cond): Update
9368         (expand_gimple_tailcall): Update
9369         (construct_exit_block): Update
9370         * cfghooks.c (verify_flow_info): Update
9371         (redirect_edge_succ_nodup): Update
9372         (split_edge): Update
9373         (make_forwarder_block): Update
9374         (duplicate_block): Update
9375         (account_profile_record): Update
9376         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
9377         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
9378         * cfgloopmanip.c (scale_loop_profile): Update.
9379         (loopify): Update.
9380         (lv_adjust_loop_entry_edge): Update.
9381         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
9382         (force_nonfallthru_and_redirect): Update.
9383         (purge_dead_edges): Update.
9384         (rtl_flow_call_edges_add): Update.
9385         * cgraphunit.c (init_lowered_empty_function): Update.
9386         (cgraph_node::expand_thunk): Update.
9387         * gimple-pretty-print.c (dump_probability): Update.
9388         (dump_edge_probability): Update.
9389         * gimple-ssa-isolate-paths.c (isolate_path): Update.
9390         * haifa-sched.c (sched_create_recovery_edges): Update.
9391         * hsa-gen.c (convert_switch_statements): Update.
9392         * ifcvt.c (dead_or_predicable): Update.
9393         * ipa-inline-transform.c (inline_transform): Update.
9394         * ipa-split.c (split_function): Update.
9395         * ipa-utils.c (ipa_merge_profiles): Update.
9396         * loop-doloop.c (add_test): Update.
9397         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
9398         * lto-streamer-in.c (input_cfg): Update.
9399         (input_function): Update.
9400         * lto-streamer-out.c (output_cfg): Update.
9401         * modulo-sched.c (sms_schedule): Update.
9402         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
9403         * predict.c (maybe_hot_edge_p): Update.
9404         (unlikely_executed_edge_p): Update.
9405         (probably_never_executed_edge_p): Update.
9406         (dump_prediction): Update.
9407         (drop_profile): Update.
9408         (propagate_unlikely_bbs_forward): Update.
9409         (determine_unlikely_bbs): Update.
9410         (force_edge_cold): Update.
9411         * profile.c (compute_branch_probabilities): Update.
9412         * reg-stack.c (better_edge): Update.
9413         * shrink-wrap.c (handle_simple_exit): Update.
9414         * tracer.c (better_p): Update.
9415         * trans-mem.c (expand_transaction): Update.
9416         (split_bb_make_tm_edge): Update.
9417         * tree-call-cdce.c: Update.
9418         * tree-cfg.c (gimple_find_sub_bbs): Update.
9419         (gimple_split_edge): Update.
9420         (gimple_duplicate_sese_region): Update.
9421         (gimple_duplicate_sese_tail): Update.
9422         (gimple_flow_call_edges_add): Update.
9423         (insert_cond_bb): Update.
9424         (execute_fixup_cfg): Update.
9425         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
9426         * tree-complex.c (expand_complex_div_wide): Update.
9427         * tree-eh.c (lower_resx): Update.
9428         (unsplit_eh): Update.
9429         (cleanup_empty_eh_move_lp): Update.
9430         * tree-inline.c (copy_edges_for_bb): Update.
9431         (freqs_to_counts): Update.
9432         (copy_cfg_body): Update.
9433         * tree-ssa-dce.c (remove_dead_stmt): Update.
9434         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
9435         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
9436         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
9437         (unloop_loops): Update.
9438         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
9439         * tree-ssa-loop-split.c (connect_loops): Update.
9440         (split_loop): Update.
9441         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
9442         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
9443         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
9444         * tree-ssa-reassoc.c (branch_fixup): Update.
9445         * tree-ssa-tail-merge.c (replace_block_by): Update.
9446         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
9447         (compute_path_counts): Update.
9448         (update_profile): Update.
9449         (recompute_probabilities): Update.
9450         (update_joiner_offpath_counts): Update.
9451         (estimated_freqs_path): Update.
9452         (freqs_to_counts_path): Update.
9453         (clear_counts_path): Update.
9454         (ssa_fix_duplicate_block_edges): Update.
9455         (duplicate_thread_path): Update.
9456         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
9457         (case_bit_test_cmp): Update.
9458         (collect_switch_conv_info): Update.
9459         (gen_inbound_check): Update.
9460         (do_jump_if_equal): Update.
9461         (emit_cmp_and_jump_insns): Update.
9462         * tree-tailcall.c (decrease_profile): Update.
9463         (eliminate_tail_call): Update.
9464         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
9465         (vect_do_peeling): Update.
9466         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
9467         * ubsan.c (ubsan_expand_null_ifn): Update.
9468         (ubsan_expand_ptr_ifn): Update.
9469         * value-prof.c (gimple_divmod_fixed_value): Update.
9470         (gimple_mod_pow2): Update.
9471         (gimple_mod_subtract): Update.
9472         (gimple_ic): Update.
9473         (gimple_stringop_fixed_value): Update.
9475 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
9477         PR target/82618
9478         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
9480 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
9482         PR rtl-optimization/82395
9483         * ira-color.c (allocno_priority_compare_func): Fix comparison step
9484         based on non_spilled_static_chain_regno_p.
9486 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
9488         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
9489         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
9490         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
9492 2017-10-19  Martin Sebor  <msebor@redhat.com>
9494         PR tree-optimization/82596
9495         * tree.c (array_at_struct_end_p): Handle STRING_CST.
9497 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
9499         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
9500         (get_mem_refs_of_builtin_call): Likewise.
9501         * builtins.c (expand_builtin_apply): Adjust call to
9502         allocate_dynamic_stack_space.
9503         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
9504         the third argument to allocate_dynamic_stack_space, otherwise -1.
9505         (expand_builtin): Deal with all alloca variants.
9506         (is_inexpensive_builtin): Likewise.
9507         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
9508         * calls.c (special_function_p): Deal with all alloca variants.
9509         (initialize_argument_information): Adjust call to
9510         allocate_dynamic_stack_space.
9511         (expand_call): Likewise.
9512         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
9513         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
9514         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
9515         use it for the stack usage computation.
9516         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
9517         * function.c (gimplify_parameters): Call build_alloca_call_expr.
9518         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
9519         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
9520         (in_loop_p): Remove first argument and useless check.
9521         (pass_walloca::execute): Remove useless test and adjust call to above.
9522         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
9523         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
9524         (gimplify_call_expr): Deal with all alloca variants.
9525         * hsa-gen.c (gen_hsa_alloca): Likewise.
9526         (gen_hsa_insns_for_call): Likewise.
9527         * ipa-pure-const.c (special_builtin_state): Likewise.
9528         * tree-chkp.c (chkp_build_returned_bound): Likewise.
9529         * tree-object-size.c (alloc_object_size): Likewise.
9530         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
9531         (call_may_clobber_ref_p_1): Likewise.
9532         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
9533         (ccp_fold_stmt): Likewise.
9534         (optimize_stack_restore): Likewise.
9535         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9536         (mark_all_reaching_defs_necessary_1): Likewise.
9537         (propagate_necessity): Likewise.
9538         (eliminate_unnecessary_stmts): Likewise.
9539         * tree.c (build_common_builtin_nodes): Build
9540         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
9541         (build_alloca_call_expr): New function.
9542         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
9543         (CASE_BUILT_IN_ALLOCA): Likewise.
9544         (build_alloca_call_expr): Declare.
9545         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
9547 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
9549         PR debug/82509
9550         * dwarf2out.c (new_die_raw): New static inline function.
9551         (new_die): Use it to create the DIE.
9552         (add_AT_external_die_ref): Likewise.
9553         (clone_die): Likewise.
9554         (clone_as_declaration): Likewise.
9555         (dwarf2out_vms_debug_main_pointer): Likewise.
9556         (base_type_die): Likewise.  Remove early return for corner cases.
9557         Do not call add_pubtype on the DIE here.
9558         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
9559         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
9560         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
9561         native order exists for base types, attach the DIE manually and call
9562         add_pubtype on it.  Do not equate a reverse order DIE to the type.
9564 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
9566         * config/arm/arm.c (align_ok_ldrd_strd): New function.
9567         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
9568         the mem into it.
9569         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
9571 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
9573         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
9574         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
9575         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
9576         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
9577         * opts.c (sanitizer_opts): Add builtin.
9578         * ubsan.c (instrument_builtin): New function.
9579         (pass_ubsan::execute): Call it.
9580         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
9581         * doc/invoke.texi: Document -fsanitize=builtin.
9583         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
9584         builtins, store max (log2 (align), 0) into uchar field instead of
9585         align into uptr field.
9586         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
9587         store uchar 0 field instead of uptr 0 field.
9588         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
9589         instead of passing one address of struct with 2 locations pass
9590         two addresses of structs with 1 location each.
9591         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
9592         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
9593         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
9594         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
9595         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
9596         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
9597         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
9598         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
9600 2017-10-19  Martin Liska  <mliska@suse.cz>
9602         PR driver/81829
9603         * file-find.c (remove_prefix): Remove.
9604         * file-find.h (remove_prefix): Likewise.
9605         * gcc-ar.c: Remove smartness of lookup.
9607 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
9609         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
9610         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
9611         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
9613 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
9615         PR target/82580
9616         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
9617         (setcc + and to xor + setcc): New peephole2.
9619 2017-10-19  Tom de Vries  <tom@codesourcery.com>
9621         * doc/sourcebuild.texi (Test Directives, Variants of
9622         dg-require-support): Add dg-require-stack-size.
9624 2017-10-19  Martin Liska  <mliska@suse.cz>
9626         PR sanitizer/82517
9627         * gimplify.c (gimplify_decl_expr): Do not instrument variables
9628         that have a large alignment.
9629         (gimplify_target_expr): Likewise.
9631 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
9633         PR rtl-optimization/82602
9634         * ira.c (rtx_moveable_p): Return false for volatile asm.
9636 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
9638         PR target/82580
9639         * config/i386/i386-modes.def (CCGZ): New CC mode.
9640         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
9641         * config/i386/predicates.md (ix86_comparison_operator):
9642         Handle CCGZmode.
9643         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
9644         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
9645         with double-word subtraction.
9646         (put_condition_code): Handle CCGZmode.
9648 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
9650         * wide-int.cc (debug (const wide_int &)): New.
9651         (debug (const wide_int *)): New.
9652         (debug (const widest_int &)): New.
9653         (debug (const widest_int *)): New.
9655 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
9657         PR middle-end/82556
9658         * lra-constraints.c (curr_insn_transform): Use non-input operand
9659         instead of output one for matched reload.
9661 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
9663         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
9664         (tree-ssa-loop-ivopts.h): New header file.
9665         (struct builtin_info): New fields.
9666         (classify_builtin_1): Compute and record base and offset parts for
9667         memset builtin partition by calling strip_offset.
9668         (offset_cmp, fuse_memset_builtins): New functions.
9669         (finalize_partitions): Fuse adjacent memset partitions by calling
9670         above function.
9671         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
9672         Expose the interface.
9673         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
9675 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
9677         PR tree-optimization/82574
9678         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
9679         that data reference must be executed exactly once per iteration
9680         against the outermost loop in nest.
9681         (classify_partition): Update call to above function.
9683 2017-10-18  Richard Biener  <rguenther@suse.de>
9685         PR tree-optimization/82591
9686         * graphite.c (graphite_transform_loops): Move code gen message
9687         printing ...
9688         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
9689         Here.  Handle scop_to_isl_ast failing.
9690         (scop_to_isl_ast): Limit the number of ISL operations.
9692 2017-10-18  Richard Biener  <rguenther@suse.de>
9694         * graphite-isl-ast-to-gimple.c
9695         (translate_isl_ast_to_gimple::set_rename): Simplify.
9696         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
9697         (graphite_copy_stmts_from_block): ... here.
9698         (copy_bb_and_scalar_dependences): Simplify.
9699         (add_parameters_to_ivs_params): Canonicalize.
9700         (generate_entry_out_of_ssa_copies): Simplify.
9701         * graphite-sese-to-poly.c (extract_affine_name): Simplify
9702         by passing in ISL dimension.
9703         (parameter_index_in_region_1): Rename to ...
9704         (parameter_index_in_region): ... this.
9705         (extract_affine): Adjust assert, pass down parameter index.
9706         (add_param_constraints): Use range-info when available.
9707         (build_scop_context): Adjust.
9708         * sese.c (new_sese_info): Adjust.
9709         (free_sese_info): Likewise.
9710         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
9711         Remove unused typedefs.
9712         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
9714 2017-10-18  Martin Liska  <mliska@suse.cz>
9716         * combine.c (simplify_compare_const): Add gcc_fallthrough.
9718 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9720         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
9721         (s390_sched_init): Do not reset s390_sched_state if we entered the
9722         current basic block via a fallthru edge and all others are unlikely.
9724 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9726         * config/s390/s390.c (NUM_SIDES): New variable.
9727         (LONGRUNNING_THRESHOLD): New variable.
9728         (LATENCY_FACTOR): New variable.
9729         (s390_sched_score): Decrease score for long-running instructions on
9730         wrong side.
9731         (s390_sched_variable_issue): Perform bookkeeping for long-running
9732         instructions.
9734 2017-10-18  Richard Biener  <rguenther@suse.de>
9736         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
9737         Simplify with removal of the parameter rename map.
9738         (set_rename): Likewise.
9739         (should_copy_to_new_region): Likewise.
9740         (graphite_copy_stmts_from_block): Likewise.
9741         (copy_bb_and_scalar_dependences): Remove initialization of
9742         unused copied_bb_map.
9743         (copy_def): Remove.
9744         (copy_internal_parameters): Likewise.
9745         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
9746         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
9747         Use INTEGRAL_TYPE_P.
9748         (parameter_index_in_region_1): Rename to ...
9749         (assign_parameter_index_in_region): ... this.  Assert we have
9750         a parameter we handle.
9751         (scan_tree_for_params): Adjust.
9752         * sese.h (parameter_rename_map_t): Remove.
9753         (struct sese_info_t): Remove unused parameter_rename_map and
9754         copied_bb_map members.
9755         * sese.c (new_sese_info): Adjust.
9756         (free_sese_info): Likewise.
9758 2017-10-18  Martin Liska  <mliska@suse.cz>
9760         PR sanitizer/82545
9761         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
9762         on an abnormal edge.
9764 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9766         * doc/invoke.texi (ffunction-sections and fdata-sections):
9767         Update.
9769 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
9771         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
9772         the use statement can throw internally.
9774 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
9776         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
9777         any RTX present on the RHS of a SET.
9778         * compare-elim.c (try_eliminate_compare): Restore comment.
9780 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
9782         * langhooks.h (struct lang_hooks): Document that tree_size langhook
9783         may be also called on tcc_type nodes.
9784         * langhooks.c (lhd_tree_size): Likewise.
9786 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
9788         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
9789         format_warning_at_substring.
9790         (maybe_warn): Convert source_range * param to a location_t.  Pass
9791         UNKNOWN_LOCATION rather than NULL to fmtwarn.
9792         (format_directive): Remove code to extract source_ranges and
9793         source_range * in favor of just a location_t.
9794         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
9795         fmtwarn.
9796         * substring-locations.c (format_warning_va): Convert
9797         source_range * param to a location_t.
9798         (format_warning_at_substring): Likewise.
9799         * substring-locations.h (format_warning_va): Likewise.
9800         (format_warning_at_substring): Likewise.
9802 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
9804         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
9805         vec_scatter_store
9806         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
9807         and scatter/gather ops.
9809         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
9810         vec_gather_load and vec_scatter_store.
9811         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
9812         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
9813         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
9814         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
9815         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
9816         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
9818 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
9820         * reg-stack.c (compare_for_stack_reg): Add bool argument.
9821         Detect FTST instruction and handle its register pops.  Only pop
9822         second operand if can_pop_second_op is true.
9823         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
9824         set can_pop_second_op to false in the compare_for_stack_reg call.
9826         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
9827         output_fp_compare for stack register operands.
9828         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
9829         instructions here.  Do not emit stack register pops here.  Assert
9830         that FCOMPP pops next to top stack register.  Rewrite function.
9832 2017-10-17  Nathan Sidwell  <nathan@acm.org>
9834         PR middle-end/82577
9835         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
9836         use DECL_ASSEMBLER_NAME_RAW.
9838         PR middle-end/82546
9839         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
9840         TYPE nodes.
9842 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
9843             Wilco Dijkstra <wilco.dijkstra@arm.com>
9845         * builtins.c (expand_builtin_update_setjmp_buf): Add a
9846         converstion to Pmode from the buf_addr.
9848 2017-10-17  Richard Biener  <rguenther@suse.de>
9850         * graphite-dependences.c (scop_get_reads_and_writes): Change
9851         output parameters to references.
9853 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
9855         PR 71026/tree-optimization
9856         * fold-const.c (distribute_real_division): Removed.
9857         (fold_binary_loc): Remove calls to distribute_real_divison.
9859 2017-10-17  Richard Biener  <rguenther@suse.de>
9861         * graphite-scop-detection.c
9862         (scop_detection::stmt_has_simple_data_refs_p): Always use
9863         the full nest as region.
9864         (try_generate_gimple_bb): Likewise.
9865         * sese.c (scalar_evolution_in_region): Simplify now that
9866         SCEV can handle instantiation in regions.
9867         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
9868         in the non-loop part of a function if requested.
9870 2017-10-17  Richard Biener  <rguenther@suse.de>
9872         PR tree-optimization/82563
9873         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
9874         New function.
9875         (graphite_regenerate_ast_isl): Call it.
9876         * graphite-scop-detection.c (build_scops): Remove entry edge split.
9878 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
9880         PR tree-optimization/82549
9881         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
9882         Formatting fixes.  Instead of calling make_bit_field_ref with negative
9883         bitpos return 0.
9885 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
9887         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
9888         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
9889         _mm_maskz_reduce_ss): New.
9890         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
9891         __builtin_ia32_reducess_mask): Ditto..
9892         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
9893         * config/i386/sse.md (reduces<mode>): Renamed to ...
9894         (reduces<mode><mask_scalar_name>): ... this.
9895         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
9896         Changed to ...
9897         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
9898         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
9900 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
9902         * Makefile.in (OBJS): Add unique-ptr-tests.o.
9903         * selftest-run-tests.c (selftest::run_tests): Call
9904         selftest::unique_ptr_tests_cc_tests.
9905         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
9906         * unique-ptr-tests.cc: New file.
9908 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
9910         PR sanitizer/82353
9911         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
9912         locations.
9913         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
9914         (make_hard_regno_born, make_hard_regno_dead): Update
9915         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
9917 2017-10-16  Jeff Law  <law@redhat.com>
9919         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
9921 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
9923         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
9925 2017-10-16  Olivier Hainque  <hainque@adacore.com>
9927         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
9928         with_cpu if we were configured for an e500v2 target cpu name.
9930 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9932         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
9933         * doc/invoke.texi: Document +nodsp as a valid extension for
9934         -mcpu=cortex-m33.
9936 2017-10-16  Martin Liska  <mliska@suse.cz>
9938         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
9939         (test_set_range): Likewise.
9940         (test_range_functions): Rename to ...
9941         (test_bit_in_range): ... this.
9942         (sbitmap_c_tests): Add new test.
9944 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
9946         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
9947         New.
9948         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
9949         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
9951 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
9953         * config/aarch64/aarch64-builtins.c
9954         (aarch64_types_quadopu_lane_qualifiers): New.
9955         (TYPES_QUADOPU_LANE): New.
9956         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
9957         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
9958         (aarch64_<sur>dot_laneq<vsi2qi>): New.
9959         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
9960         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
9961         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
9962         (Vdottype, DOTPROD): New.
9963         (sur): Add SDOT and UDOT.
9965 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
9967         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
9968         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
9969         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
9970         Add TARGET_DOTPROD.
9971         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
9972         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
9973         Enable TARGET_DOTPROD.
9974         (cortex-a75.cortex-a55): Likewise.
9975         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
9977 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
9979         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
9980         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
9981         New.
9982         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
9983         New.
9984         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
9985         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
9986         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
9987         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
9988         * config/arm/types.md (neon_dot, neon_dot_q): New.
9989         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
9991 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
9993         * config/arm/arm.h (TARGET_DOTPROD): New.
9994         * config/arm/arm.c (arm_arch_dotprod): New.
9995         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
9996         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
9997         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
9998         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
9999         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
10000         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
10001         * doc/invoke.texi (armv8.2-a): Document dotprod
10003 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10005         * i386.c (ix86_vec_cost): New function.
10006         (ix86_rtx_costs): Handle vector operations better.
10007         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
10008         * x86-tune-costs.h: Add new costs to all tables.
10010 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10012         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
10013         operations.
10014         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
10015         divsd, sqrtss and sqrtsd
10016         * x86-tune-costs.h: Add new entries to all costs.
10017         (znver1_cost): Fix to match real instruction latencies.
10019 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10020             Michael Collison <michael.collison@arm.com>
10022         * compare-elim.c: Include emit-rtl.h.
10023         (can_merge_compare_into_arith): New function.
10024         (try_validate_parallel): Likewise.
10025         (try_merge_compare): Likewise.
10026         (try_eliminate_compare): Call the above when no previous clobber
10027         is available.
10028         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
10029         dataflow problems.
10031 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
10033         PR middle-end/62263
10034         PR middle-end/82498
10035         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
10036         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
10038         PR middle-end/62263
10039         PR middle-end/82498
10040         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
10041         to be any operand_equal_p operands.  For & (B - 1) require
10042         B to be power of 2.  Recognize
10043         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
10045 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10047         PR bootstrap/82553
10048         * optabs.c (expand_memory_blockage): Fix call of
10049         targetm.have_memory_blockage.
10051 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
10053         PR bootstrap/82548
10054         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
10055         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
10056         objects to extra_objs instead of overwriting it.
10058 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10060         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
10061         Use any_fp_register_operand as operand[3] predicate.  Simplify
10062         equality test for operands[2] and operands[4] memory location.
10063         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
10064         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
10065         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
10066         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
10067         any_fp_register_operand as operand[1] predicate.  Simplify
10068         equality test for operands[0] and operands[3] memory location.
10069         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
10070         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
10071         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
10073 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10075         * target-insns.def: Add memory_blockage.
10076         * optabs.c (expand_memory_blockage): New function.
10077         (expand_asm_memory_barrier): Rename ...
10078         (expand_asm_memory_blockage): ... to this.
10079         (expand_mem_thread_fence): Call expand_memory_blockage
10080         instead of expand_asm_memory_barrier.
10081         (expand_mem_singnal_fence): Ditto.
10082         (expand_atomic_load): Ditto.
10083         (expand_atomic_store): Ditto.
10084         * doc/md.texi (Standard Pattern Names For Generation):
10085         Document memory_blockage instruction pattern.
10087 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
10089         * config/rl78/rl78.c (rl78_emit_libcall): New function.
10090         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
10091         * config/rl78/rl78.md: New define_expand "adddi3".
10093 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
10095         * cfghooks.c (verify_flow_info): Disable check that all probabilities
10096         are set correctly.
10098 2017-10-13  Jeff Law  <law@redhat.com>
10100         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
10102 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
10104         PR target/82274
10105         * internal-fn.c (expand_mul_overflow): If both operands have
10106         the same highpart of -1 or 0 and the topmost bit of lowpart
10107         is different, overflow is if res <= 0 rather than res < 0.
10109 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
10111         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
10112         TARGET_P9_VECTOR code for unaligned_load case.
10114 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
10116         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
10118 2017-10-13  Nathan Sidwell  <nathan@acm.org>
10120         * tree-core.h (tree_contains_struct): Make bool.
10121         * tree.c (tree_contains_struct): Likewise.
10122         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
10123         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
10124         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
10125         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
10126         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
10128 2017-10-13  Richard Biener  <rguenther@suse.de>
10130         * graphite-isl-ast-to-gimple.c
10131         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
10132         parameters and dominance check.
10133         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
10134         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
10135         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
10136         Do not update SSA form here or do intermediate IL verification.
10137         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
10138         (graphite_initialize): Remove check on the number of loops in
10139         the function and inline into graphite_transform_loops.
10140         (graphite_finalize): Inline into graphite_transform_loops.
10141         (graphite_transform_loops): Perform SSA update and IL verification
10142         here.
10143         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
10145 2017-10-13  Richard Biener  <rguenther@suse.de>
10147         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
10148         graphite_expression_type_precision): Avoid global constructor
10149         by moving ...
10150         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
10151         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
10152         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
10153         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
10154         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
10155         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
10157 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
10159         PR target/82499
10160         * config/i386/i386.h (ix86_red_zone_size): New.
10161         * config/i386/i386.md (push peephole2s): Replace
10162         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
10164 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10165             Alan Hayward  <alan.hayward@arm.com>
10166             David Sherwood  <david.sherwood@arm.com>
10168         * combine.c (can_change_dest_mode): Reject changes in
10169         REGMODE_NATURAL_SIZE.
10171 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10172             Alan Hayward  <alan.hayward@arm.com>
10173             David Sherwood  <david.sherwood@arm.com>
10175         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
10176         (expand_debug_source_expr): Likewise.
10177         * combine.c (combine_simplify_rtx): Likewise.
10178         * cse.c (fold_rtx): Likewise.
10179         * fwprop.c (canonicalize_address): Likewise.
10180         * targhooks.c (default_shift_truncation_mask): Likewise.
10182 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10183             Alan Hayward  <alan.hayward@arm.com>
10184             David Sherwood  <david.sherwood@arm.com>
10186         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
10187         (widened_mode): Likewise.
10188         (expand_unop): Likewise.
10189         * ree.c (transform_ifelse): Likewise.
10190         (merge_def_and_ext): Likewise.
10191         (combine_reaching_defs): Likewise.
10192         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10194 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10195             Alan Hayward  <alan.hayward@arm.com>
10196             David Sherwood  <david.sherwood@arm.com>
10198         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
10199         * combine.c (gen_lowpart_for_combine): Likewise.
10200         * dwarf2out.c (rtl_for_decl_location): Likewise.
10201         * final.c (alter_subreg): Likewise.
10202         * rtlhooks.c (gen_lowpart_general): Likewise.
10203         (gen_lowpart_if_possible): Likewise.
10205 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10206             Alan Hayward  <alan.hayward@arm.com>
10207             David Sherwood  <david.sherwood@arm.com>
10209         * calls.c (expand_call): Use subreg_lowpart_offset.
10210         * cse.c (cse_insn): Likewise.
10211         * regcprop.c (copy_value): Likewise.
10212         (copyprop_hardreg_forward_1): Likewise.
10214 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
10216         PR target/82524
10217         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
10218         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
10219         =Q constraints to +Q and into insn condition add check
10220         that operands[0] and operands[1] are equal.
10221         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
10222         =Q constraints to +Q and into insn condition add check
10223         that operands[0] is equal to either operands[1] or operands[2].
10225         PR target/82498
10226         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
10227         instead of handling MINUS_EXPR twice (once for each argument),
10228         canonicalize operand order and handle just once, use rtype where
10229         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
10231         PR target/82498
10232         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
10233         any values of __C while still being pattern recognizable as a simple
10234         rotate instruction.
10236 2017-10-13  Richard Biener  <rguenther@suse.de>
10238         PR tree-optimization/82451
10239         Revert
10240         2017-10-02  Richard Biener  <rguenther@suse.de>
10242         PR tree-optimization/82355
10243         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
10244         a mapping for the enclosing loop but avoid generating one for
10245         the loop tree root.
10246         (copy_bb_and_scalar_dependences): Remove premature codegen
10247         error on PHIs in blocks duplicated into multiple places.
10248         * graphite-scop-detection.c
10249         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
10250         in the region use it as loop and nest to analyze the DR in.
10251         (try_generate_gimple_bb): Likewise.
10252         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
10253         (add_loop_constraints): For blocks in a loop not in the region
10254         create a dimension with a single iteration.
10255         * sese.h (gbb_loop_at_index): Remove assert.
10257         * cfgloop.c (loop_preheader_edge): For the loop tree root
10258         return the single successor of the entry block.
10259         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
10260         Reset the SCEV hashtable and niters.
10261         * graphite-scop-detection.c
10262         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
10263         assert that we only have POLYNOMIAL_CHREC that vary in loops
10264         contained in the region.
10265         (scop_detection::graphite_can_represent_expr): Adjust.
10266         (scop_detection::stmt_has_simple_data_refs_p): For loops
10267         not in the region set loop to NULL.  The nest is now the
10268         entry edge to the region.
10269         (try_generate_gimple_bb): Likewise.
10270         * sese.c (scalar_evolution_in_region): Adjust for
10271         instantiate_scev change.
10272         * tree-data-ref.h (graphite_find_data_references_in_stmt):
10273         Make nest parameter the edge into the region.
10274         (create_data_ref): Likewise.
10275         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
10276         entry edge into a region and adjust instantiate_scev calls.
10277         (create_data_ref): Likewise.
10278         (graphite_find_data_references_in_stmt): Likewise.
10279         (find_data_references_in_stmt): Pass the loop preheader edge
10280         from the nest argument.
10281         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
10282         parameter the edge into the region.
10283         (instantiate_parameters): Use the loop preheader edge as entry.
10284         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
10285         NULL loop.
10286         (get_instantiated_value_entry): Make instantiate_below parameter
10287         the edge into the region.
10288         (instantiate_scev_name): Likewise.  Adjust dominance checks,
10289         when we cannot use loop-based instantiation instantiate by
10290         walking use-def chains.
10291         (instantiate_scev_poly): Adjust.
10292         (instantiate_scev_binary): Likewise.
10293         (instantiate_scev_convert): Likewise.
10294         (instantiate_scev_not): Likewise.
10295         (instantiate_array_ref): Remove.
10296         (instantiate_scev_3): Likewise.
10297         (instantiate_scev_2): Likewise.
10298         (instantiate_scev_1): Likewise.
10299         (instantiate_scev_r): Do not blindly handle N-operand trees.
10300         Do not instantiate array-refs.  Handle all constants and invariants.
10301         (instantiate_scev): Make instantiate_below parameter
10302         the edge into the region.
10303         (resolve_mixers): Use the loop preheader edge for the region
10304         parameter to instantiate_scev_r.
10305         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
10307 2017-10-13  Richard Biener  <rguenther@suse.de>
10309         PR tree-optimization/82525
10310         * graphite-isl-ast-to-gimple.c
10311         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
10312         out from ...
10313         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
10314         Fail code generation when we cannot represent the isl integer.
10315         (binary_op_to_tree): Elide modulo operations that are no-ops
10316         in the type we code generate.  Remove now superfluous code
10317         generation errors.
10319 2017-10-13  Richard Biener  <rguenther@suse.de>
10321         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
10322         (scop_detection::harmful_loop_in_region): Remove premature
10323         IV type restriction.
10324         (scop_detection::graphite_can_represent_scev): We can handle
10325         pointer IVs just fine.
10327 2017-10-13  Alan Modra  <amodra@gmail.com>
10329         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
10330         "Clobbers and Scratch Registers".  Add paragraph on
10331         alternative to clobbers for scratch registers and OpenBLAS
10332         example.
10334 2017-10-13  Alan Modra  <amodra@gmail.com>
10336         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
10337         example of a memory input for a string of known length.  Move
10338         commentary out of table.  Add a number of new examples
10339         covering array memory inputs.
10341 2017-10-12  Martin Liska  <mliska@suse.cz>
10343         PR tree-optimization/82493
10344         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
10345         (test_range_functions): New function.
10346         (sbitmap_c_tests): Likewise.
10347         * selftest-run-tests.c (selftest::run_tests): Run new tests.
10348         * selftest.h (sbitmap_c_tests): New function.
10350         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
10352 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10354         * config/rs6000/amo.h: Fix spacing issue.
10356 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
10358         PR target/82498
10359         * config/i386/i386.md (*ashl<mode>3_mask_1,
10360         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
10361         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
10362         patterns.
10364 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
10366         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
10367         (profile_probability): Set max_probability
10368         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
10369         in temporaries.
10370         * profile-count.c (profile_probability::differs_from_p): Do not
10371         rely on max_probaiblity == 10000
10373 2017-10-12  Jeff Law  <law@redhat.com>
10375         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
10376         negative offsets.
10378 2017-10-12  Martin Sebor  <msebor@redhat.com>
10380         PR other/82301
10381         PR c/82435
10382         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
10383         (handle_alias_pairs): Call it.
10384         * common.opt (-Wattribute-alias): New option.
10385         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
10386         * doc/invoke.texi (-Wattribute-alias): Document.
10388 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
10390         Revert
10391         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
10392         PR sanitizer/82353
10393         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10394         locations.
10395         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10396         (make_hard_regno_born, make_hard_regno_dead): Update
10397         bb_killed_pseudos and bb_gen_pseudos.
10399 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
10401         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
10403 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
10405         * config/alpha/alpha.c (alpha_split_conditional_move):
10406         Use std::swap instead of manually swapping.
10407         (alpha_stdarg_optimize_hook): Ditto.
10408         (alpha_canonicalize_comparison): Ditto.
10410 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
10412         * tree-loop-distribution.c (struct builtin_info): New struct.
10413         (struct partition): Refactor fields into struct builtin_info.
10414         (partition_free): Free struct builtin_info.
10415         (build_size_arg_loc, build_addr_arg_loc): Delete.
10416         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
10417         information from struct builtin_info.
10418         (find_single_drs): New function refactored from classify_partition.
10419         Also moved builtin validity checks to this function.
10420         (compute_access_range, alloc_builtin): New functions.
10421         (classify_builtin_st, classify_builtin_ldst): New functions.
10422         (classify_partition): Refactor code into functions find_single_drs,
10423         classify_builtin_st and classify_builtin_ldst.
10424         (distribute_loop): Don't do runtime alias check when distributing
10425         loop nest.
10426         (find_seed_stmts_for_distribution): New function.
10427         (pass_loop_distribution::execute): Refactor code finding seed
10428         stmts into above function.  Support distribution for the innermost
10429         two-level loop nest.  Adjust dump information.
10431 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
10433         * tree-loop-distribution.c: Adjust the general comment.
10434         (NUM_PARTITION_THRESHOLD): New macro.
10435         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
10436         (classify_partition): Skip builtin pattern of loop nest's inner loop.
10437         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
10438         in call to build_partition_graph.
10439         (finalize_partitions): New parameter.  Make loop distribution more
10440         conservative by fusing more partitions.
10441         (distribute_loop): Don't do runtime alias check in case of loop nest
10442         distribution.
10443         (find_seed_stmts_for_distribution): New function.
10444         (prepare_perfect_loop_nest): New function.
10445         (pass_loop_distribution::execute): Refactor code finding seed stmts
10446         and loop nest into above functions.  Support loop nest distribution.
10447         Adjust dump information accordingly.
10449 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
10451         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
10452         and set PTYPE_SEQUENTIAL for merged partition.
10454 2017-10-12  Richard Biener  <rguenther@suse.de>
10456         PR tree-optimization/69728
10457         Revert
10458         2017-09-19  Richard Biener  <rguenther@suse.de>
10460         PR tree-optimization/69728
10461         * graphite-sese-to-poly.c (schedule_error): New global.
10462         (add_loop_schedule): Handle empty domain by failing the
10463         schedule.
10464         (build_original_schedule): Handle schedule_error.
10466         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
10467         domain by returning an unchanged schedule.
10469 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
10471         * genrecog.c (validate_pattern): For VEC_SELECT verify that
10472         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
10474 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
10476         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
10477         Handle params.def.
10479 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
10481         PR c++/82159
10482         * expr.c (store_field): Don't optimize away bitsize == 0 store
10483         from CALL_EXPR with addressable return type.
10485 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
10487         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
10488         * config/rs6000/rs6000.md (sel): Delete mode attribute.
10489         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
10490         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
10491         TARGET_ISEL instead of TARGET_ISEL<sel>.
10493 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
10495         * config/rs6000/rs6000.c
10496         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
10498 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
10500         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
10501         Move up in file.
10502         (reg_or_cint_operand): Fix comment.
10503         (reg_or_zero_operand): New predicate.
10504         * config/rs6000/rs6000-protos.h (output_isel): Delete.
10505         * config/rs6000/rs6000.c (output_isel): Delete.
10506         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
10507         instead of reg_or_cint_operand.  Output instruction directly (not via
10508         output_isel).
10509         (isel_unsigned_<mode>): Ditto.
10510         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
10511         gpc_reg_operand.  Add an instruction alternative for this.  Output
10512         instruction directly.
10513         (*isel_reversed_unsigned_<mode>): Ditto.
10515 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
10517         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
10518         (TARGET_CANONICALIZE_COMPARISON): Define.
10520 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
10522         PR target/81422
10523         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10524         Check whether the dest is REG before adding REG_EQUIV note.
10526 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
10528         PR sanitizer/82353
10529         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10530         locations.
10531         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10532         (make_hard_regno_born, make_hard_regno_dead): Update
10533         bb_killed_pseudos and bb_gen_pseudos.
10535 2017-10-11  Nathan Sidwell  <nathan@acm.org>
10537         * incpath.h (enum incpath_kind): Name enum, prefix values.
10538         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
10539         * incpath.c (heads, tails): Use INC_MAX.
10540         (add_env_var_paths, add_standard_paths): Use incpath_kind.
10541         (merge_include_chains, split_quote_chain,
10542         register_include_chains): Update incpath_kind names.
10543         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
10544         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
10545         names.
10546         (add_framework_path, darwin_register_objc_includes): Likewise.
10547         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
10549 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
10551         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
10552         Do not use float_operator operator predicate.
10553         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
10554         * config/i386/predicates.md (float_operator): Remove predicate.
10556 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
10558         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
10559         (*jccxf_i387): Ditto.
10560         (*jcc<mode>_i387): Ditto.
10561         (*jccu<mode>_i387): Ditto.
10562         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
10563         (*jcc_*_i387 splitters): Remove.
10564         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
10565         * config/i386/i386.c (ix86_split_fp_branch): Remove.
10566         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
10567         Remove predicate.
10569 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
10571         * profile-count.h (slow_safe_scale_64bit): New function.
10572         (safe_scale_64bit): New inline.
10573         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
10574         * profile-count.c: Include wide-int.h
10575         (slow_safe_scale_64bit): New.
10577 2017-10-11  Nathan Sidwell  <nathan@acm.org>
10579         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
10580         HAS_DECL_ASSEMBLER_NAME_P.
10581         * gimple-expr.c (gimple_decl_printable_name: Check
10582         HAS_DECL_ASSEMBLER_NAME_P too.
10583         * ipa-utils.h (type_in_anonymous_namespace_p): Check
10584         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
10585         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
10586         * passes.c (rest_of_decl_compilation): Check
10587         HAS_DECL_ASSEMBLER_NAME_P too.
10588         * recog.c (verify_changes): Likewise.
10589         * tree-pretty-print.c (dump_decl_name): Likewise.
10590         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
10592         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
10593         (SET_DECL_ASSEMBLER_NAME): Use it.
10594         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
10595         (COPY_DECL_ASSEMBLER_NAME): Likewise.
10596         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
10598 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
10600         * config.gcc (i386, x86_64): Add extra objects.
10601         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
10602         (ix86_min_insn_size): Declare.
10603         (ix86_issue_rate): Declare.
10604         (ix86_adjust_cost): Declare.
10605         (ia32_multipass_dfa_lookahead): Declare.
10606         (ix86_macro_fusion_p): Declare.
10607         (ix86_macro_fusion_pair_p): Declare.
10608         (ix86_bd_has_dispatch): Declare.
10609         (ix86_bd_do_dispatch): Declare.
10610         (ix86_core2i7_init_hooks): Declare.
10611         (ix86_atom_sched_reorder): Declare.
10612         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
10613         (COSTS_N_BYTES): Move to x86-tune-costs.h.
10614         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
10615         (rip_relative_addr_p): Rename to ...
10616         (ix86_rip_relative_addr_p): ... this one; export.
10617         (memory_address_length): Update.
10618         (ix86_issue_rate): Move to x86-tune-sched.c.
10619         (ix86_flags_dependent): Move to x86-tune-sched.c.
10620         (ix86_agi_dependent): Move to x86-tune-sched.c.
10621         (exact_dependency_1): Move to x86-tune-sched.c.
10622         (exact_store_load_dependency): Move to x86-tune-sched.c.
10623         (ix86_adjust_cost): Move to x86-tune-sched.c.
10624         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
10625         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
10626         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
10627         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
10628         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
10629         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
10630         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
10631         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
10632         (min_insn_size): Rename to ...
10633         (ix86_min_insn_size): ... this one; export.
10634         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
10635         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
10636         (core2i7_first_cycle_multipass_backtrack): Move to
10637         x86-tune-sched-core.c.
10638         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
10639         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
10640         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
10641         (ix86_avoid_jump_mispredicts): Update.
10642         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
10643         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
10644         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
10645         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
10646         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
10647         (MAX_INSN): Move to ix86-tune-sched-bd.c.
10648         (MAX_IMM): Move to ix86-tune-sched-bd.c.
10649         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
10650         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
10651         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
10652         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
10653         (MAX_STORE): Move to ix86-tune-sched-bd.c.
10654         (BIG): Move to ix86-tune-sched-bd.c.
10655         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
10656         (enum insn_path): Move to ix86-tune-sched-bd.c.
10657         (get_mem_group): Move to ix86-tune-sched-bd.c.
10658         (is_cmp): Move to ix86-tune-sched-bd.c.
10659         (dispatch_violation): Move to ix86-tune-sched-bd.c.
10660         (is_branch): Move to ix86-tune-sched-bd.c.
10661         (is_prefetch): Move to ix86-tune-sched-bd.c.
10662         (init_window): Move to ix86-tune-sched-bd.c.
10663         (allocate_window): Move to ix86-tune-sched-bd.c.
10664         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
10665         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
10666         (process_end_window): Move to ix86-tune-sched-bd.c.
10667         (allocate_next_window): Move to ix86-tune-sched-bd.c.
10668         (find_constant): Move to ix86-tune-sched-bd.c.
10669         (get_num_immediates): Move to ix86-tune-sched-bd.c.
10670         (has_immediate): Move to ix86-tune-sched-bd.c.
10671         (get_insn_path): Move to ix86-tune-sched-bd.c.
10672         (get_insn_group): Move to ix86-tune-sched-bd.c.
10673         (count_num_restricted): Move to ix86-tune-sched-bd.c.
10674         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
10675         (add_insn_window): Move to ix86-tune-sched-bd.c.
10676         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
10677         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
10678         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
10679         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
10680         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
10681         (do_dispatch): Move to ix86-tune-sched-bd.c.
10682         (has_dispatch): Move to ix86-tune-sched-bd.c.
10683         * config/i386/t-i386: Add new object files.
10684         * config/i386/x86-tune-costs.h: New file.
10685         * config/i386/x86-tune-sched-atom.c: New file.
10686         * config/i386/x86-tune-sched-bd.c: New file.
10687         * config/i386/x86-tune-sched-core.c: New file.
10688         * config/i386/x86-tune-sched.c: New file.
10690 2017-10-11  Liu Hao  <lh_mouse@126.com>
10692         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
10693         the generic version below instead.
10694         (should_colorize): Recognize Windows consoles as terminals
10695         for MinGW targets.
10696         * pretty-print.c [__MINGW32__] (write_all): New function.
10697         [__MINGW32__] (find_esc_head): Likewise.
10698         [__MINGW32__] (find_esc_terminator): Likewise.
10699         [__MINGW32__] (eat_esc_sequence): Likewise.
10700         [__MINGW32__] (mingw_ansi_fputs): New function that handles
10701         ANSI escape codes.
10702         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
10703         for MinGW targets.
10705 2017-10-11  Richard Biener  <rguenther@suse.de>
10707         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
10708         Properly call analyze_scalar_evolution with the loop of the stmt.
10710 2017-10-11  Richard Biener  <rguenther@suse.de>
10712         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
10713         * tree-core.h (tree_base): Add chrec_var union member.
10714         * tree.h (CHREC_VAR): Remove.
10715         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
10716         * tree-chrec.h (build_polynomial_chrec): Adjust.
10717         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
10718         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
10720 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
10722         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
10723         * match.pd: ... here.
10724         ((T) X == (T) Y): Relax condition.
10726 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
10728         PR tree-optimization/82472
10729         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
10730         comment.
10731         (break_alias_scc_partitions): Update postorder number.
10733 2017-10-11  Martin Liska  <mliska@suse.cz>
10735         PR sanitizer/82490
10736         * opts.c (parse_no_sanitize_attribute): Do not use error_value
10737         variable.
10738         * opts.h (parse_no_sanitize_attribute): Remove last argument.
10740 2017-10-11  Martin Liska  <mliska@suse.cz>
10742         * print-rtl.c (print_insn): Move declaration of idbuf
10743         to same scope as name.
10745 2017-10-11  Martin Liska  <mliska@suse.cz>
10747         Revert r253637:
10749         PR sanitizer/82484
10750         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
10751         volatile arguments.
10753 2017-10-11  Martin Liska  <mliska@suse.cz>
10755         PR sanitizer/82484
10756         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
10757         volatile arguments.
10759 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
10761         * config.gcc (default_gnu_indirect_function): Default to yes for
10762         arm*-*-linux* with glibc.
10764 2017-10-11  Richard Biener  <rguenther@suse.de>
10766         * tree-scalar-evolution.c (get_scalar_evolution): Handle
10767         default-defs and types we do not want to analyze.
10768         (interpret_loop_phi): Replace unreachable code with an assert.
10769         (compute_scalar_evolution_in_loop): Remove and inline ...
10770         (analyze_scalar_evolution_1): ... here, replacing condition with
10771         what makes the intent clearer.  Remove handling of cases
10772         get_scalar_evolution now handles.
10774 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
10776         PR rtl-optimization/81434
10777         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
10778         comment for main loop.  In sched_group_found if, also add checks for
10779         pass and min_cost_group.
10781 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
10783         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
10784         (rs6000_insn_cost): New function.
10785         * config/rs6000/rs6000.md (cost): New attribute.
10787 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
10788             H.J. Lu  <hongjiu.lu@intel.com>
10790         PR target/79565
10791         PR target/82483
10792         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
10793         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
10794         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
10795         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
10796         to OPTION_MASK_ISA_AVX512VL - builtins that have both
10797         OPTION_MASK_ISA_MMX and some other bit set require both
10798         mmx and the ISAs without the mmx bit.
10799         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
10800         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
10801         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
10802         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
10803         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
10804         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
10805         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
10806         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
10807         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
10808         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
10809         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
10810         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
10811         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
10812         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
10813         Add OPTION_MASK_ISA_MMX.
10815 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
10817         * config.gcc (armv7*-*-freebsd*): New target.
10818         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
10820 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
10822         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
10823         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
10824         spot in the file.
10826 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
10828         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
10829         a template parameter.
10830         (WIDE_INT_REF_FOR): Update accordingly.
10831         * tree.h (wi::int_traits <const_tree>): Delete.
10832         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
10833         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
10834         (wi::tree_to_wide_ref): New typedef.
10835         (wi::to_wide): New function.
10836         * calls.c (get_size_range): Use wi::to_wide when operating on
10837         trees as wide_ints.
10838         * cgraph.c (cgraph_node::create_thunk): Likewise.
10839         * config/i386/i386.c (ix86_data_alignment): Likewise.
10840         (ix86_local_alignment): Likewise.
10841         * dbxout.c (stabstr_O): Likewise.
10842         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
10843         * expr.c (const_vector_from_tree): Likewise.
10844         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
10845         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
10846         (fold_negate_expr_1, int_const_binop_1, const_binop)
10847         (fold_convert_const_int_from_real, optimize_bit_field_compare)
10848         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
10849         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
10850         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
10851         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
10852         (fold_not_const, round_up_loc): Likewise.
10853         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
10854         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
10855         (alloca_call_type): Likewise.
10856         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
10857         * godump.c (go_output_typedef): Likewise.
10858         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
10859         * internal-fn.c (get_min_precision): Likewise.
10860         * ipa-cp.c (ipcp_store_vr_results): Likewise.
10861         * ipa-polymorphic-call.c
10862         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
10863         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
10864         (ipa_modify_call_arguments): Likewise.
10865         * match.pd: Likewise.
10866         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
10867         * print-tree.c (print_node_brief, print_node): Likewise.
10868         * stmt.c (expand_case): Likewise.
10869         * stor-layout.c (layout_type): Likewise.
10870         * tree-affine.c (tree_to_aff_combination): Likewise.
10871         * tree-cfg.c (group_case_labels_stmt): Likewise.
10872         * tree-data-ref.c (dr_analyze_indices): Likewise.
10873         (prune_runtime_alias_test_list): Likewise.
10874         * tree-dump.c (dequeue_and_dump): Likewise.
10875         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
10876         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
10877         * tree-pretty-print.c (dump_generic_node): Likewise.
10878         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
10879         (simple_iv_with_niters): Likewise.
10880         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
10881         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
10882         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
10883         * tree-ssa-loop-niter.c (split_to_var_and_offset)
10884         (refine_value_range_using_guard, number_of_iterations_ne_max)
10885         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
10886         (get_cst_init_from_scev, record_nonwrapping_iv)
10887         (scev_var_range_cant_overflow): Likewise.
10888         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
10889         * tree-ssa-pre.c (compute_avail): Likewise.
10890         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
10891         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
10892         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
10893         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
10894         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
10895         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
10896         (dump_case_nodes, try_switch_expansion): Likewise.
10897         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
10898         (vect_do_peeling): Likewise.
10899         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
10900         * tree-vect-stmts.c (vectorizable_load): Likewise.
10901         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
10902         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
10903         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
10904         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
10905         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
10906         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
10907         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
10908         (evrp_dom_walker::before_dom_children): Likewise.
10909         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
10910         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
10911         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
10912         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
10913         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
10914         (get_range_pos_neg): Likewise.
10915         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
10916         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
10917         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
10918         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
10919         * config/avr/avr.c (avr_fold_builtin): Likewise.
10920         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
10921         * config/msp430/msp430.c (msp430_attr): Likewise.
10922         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
10923         * config/powerpcspe/powerpcspe-c.c
10924         (altivec_resolve_overloaded_builtin): Likewise.
10925         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
10926         (rs6000_expand_ternop_builtin): Likewise.
10927         * config/rs6000/rs6000-c.c
10928         (altivec_resolve_overloaded_builtin): Likewise.
10929         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
10930         (rs6000_expand_ternop_builtin): Likewise.
10931         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
10933 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
10935         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
10936         when copying loop nest with only one inner loop.
10938 2017-10-10  Richard Biener  <rguenther@suse.de>
10940         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
10941         blocks if SCEV is active.
10942         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
10943         dead code.
10944         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
10945         (scev_initialize): Assert we are not yet initialized.
10947 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
10949         * tree-loop-distribution.c (generate_loops_for_partition): Remove
10950         inner loop's exit stmt by making it always exit the loop, otherwise
10951         we would generate an infinite empty loop.
10953 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
10955         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
10956         renaming variables in new preheader if it's deleted.
10958 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
10960         * tree-loop-distribution.c (struct partition): Remove unused field
10961         loops of the structure.
10962         (partition_alloc, partition_free): Ditto.
10963         (build_rdg_partition_for_vertex): Ditto.
10965 2017-10-09  Jeff Law  <law@redhat.com>
10967         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
10968         return type to match prototype and documentation.
10970 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
10972         * config/rs6000/rs6000.c (processor_costs): Move to ...
10973         * config/rs6000/rs6000.h: ... here.
10974         (rs6000_cost): Declare.
10976 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10978         * except.c (setjmp_fn): New global variable.
10979         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
10980         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
10981         if DONT_USE_BUILTIN_SETJMP is defined.
10983 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
10985         * target.def (insn_cost): New hook.
10986         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
10987         * doc/tm.texi: Regenerate.
10988         * rtlanal.c (insn_cost): Use the new hook.
10990 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
10992         * combine.c (combine_validate_cost): Compute the new insn_cost,
10993         not just pattern_cost.
10994         (try_combine): Adjust comment.
10996 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
10998         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
10999         insn_cost.
11000         * combine.c (uid_insn_cost): Adjust comment.
11001         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
11002         of insn_rtx_cost
11003         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
11004         * dse.c (find_shift_sequence): Ditto.
11005         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
11006         (bb_valid_for_noce_process_p): Use pattern_cost.
11007         * rtl.h (insn_rtx_cost): Delete.
11008         (pattern_cost): New prototype.
11009         (insn_cost): New prototype.
11010         * rtlanal.c (insn_rtx_cost): Rename to...
11011         (pattern_cost): ... this.
11012         (insn_cost): New.
11014 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
11016         * config/i386/i386.md (*jcc_2): Remove insn pattern.
11017         (*jcc<mode>_0_r_i387): Ditto.
11018         (*jccxf_r_i387): Ditto.
11019         (*jcc<mode>_r_i387): Ditto.
11020         (*jccu<mode>_r_i387): Ditto.
11021         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
11022         (*jcc): Rename from *jcc_1.
11024 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11026         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
11027         deferred rescans after the lvx/stvx recombination pre-pass.
11029 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
11031         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
11032         memory operation instruction support.
11033         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
11034         (rs6000-ibm-aix[789]*): Likewise.
11035         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
11036         Document new functions.
11038 2017-10-09  Richard Biener  <rguenther@suse.de>
11040         PR tree-optimization/82397
11041         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
11042         equality only for semantically equal trees.
11044 2017-10-09  Richard Biener  <rguenther@suse.de>
11046         PR tree-optimization/82449
11047         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
11048         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
11049         allow constant addresses.
11050         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
11051         are linear.
11053 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11055         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
11056         flags.
11058 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11060         PR target/82463
11061         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
11062         definitions.
11064 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11066         PR target/82465
11067         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
11069 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
11071         PR target/82464
11072         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
11073         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
11075 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
11077         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
11078         (WI_BINARY_PREDICATE_RESULT): Likewise.
11079         (wi::binary_traits::operator_result): New type.
11080         (wi::binary_traits::predicate_result): Likewise.
11081         (generic_wide_int::operator~, unary generic_wide_int::operator-)
11082         (generic_wide_int::operator==, generic_wide_int::operator!=)
11083         (generic_wide_int::operator&, generic_wide_int::and_not)
11084         (generic_wide_int::operator|, generic_wide_int::or_not)
11085         (generic_wide_int::operator^, generic_wide_int::operator+
11086         (binary generic_wide_int::operator-, generic_wide_int::operator*):
11087         Delete.
11088         (operator~, unary operator-, operator==, operator!=, operator&)
11089         (operator|, operator^, operator+, binary operator-, operator*): New
11090         functions.
11091         * expr.c (get_inner_reference): Use wi::bit_and_not.
11092         * fold-const.c (fold_binary_loc): Likewise.
11093         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
11094         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11095         (bit_value_binop): Likewise.
11096         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
11097         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
11098         (extract_range_from_binary_expr_1): Likewise.
11099         (masked_increment): Likewise.
11100         (simplify_bit_ops_using_ranges): Likewise.
11102 2017-10-09  Martin Jambor  <mjambor@suse.cz>
11104         PR hsa/82416
11105         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
11106         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
11107         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
11108         COMPLEX types.
11109         (hsa_fixup_mov_insn_type): New function.
11110         (hsa_op_with_type::get_in_type): Use it.
11111         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
11112         immediates in an assert.
11113         (hsa_op_with_type::extend_int_to_32bit): New method.
11114         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
11115         types.  Convert to dest type if necessary.
11116         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
11117         (reg_for_gimple_ssa): Pass false as min32int to
11118         hsa_type_for_scalar_tree_type.
11119         (gen_hsa_addr): Fixup type when creating addresable temporary.
11120         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
11121         (gen_hsa_unary_operation): Extend operands and convert to dest type if
11122         necessary.  Call hsa_fixup_mov_insn_type.
11123         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
11124         extend operands and convert to dest type if necessary.
11125         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
11126         to dest type if necessary.
11127         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
11128         if conversion nt necessary and size matches.
11129         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
11130         to dest type if necessary.
11131         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
11132         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
11133         necessary.
11134         (gen_hsa_clrsb): Likewise.
11135         (gen_hsa_ffs): Likewise.
11136         (gen_hsa_divmod): Extend operands and convert to dest type if
11137         necessary.
11138         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
11140 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
11142         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
11143         Remove empty default arguments.  Use a brace block as output
11144         statement.
11145         (conditional return): Ditto.
11146         (jump): Ditto.
11147         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
11148         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
11149         Ditto.
11150         (group_ending_nop): Ditto.
11151         (doloop_end): Ditto.
11152         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
11153         (splitters for those): Ditto.
11155 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
11157         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
11158         a conditional jump (and the compare for it) so that pc_rtx is the
11159         last operand.
11160         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
11161         for the deleted and renamed ctr<mode>_internal[234] patterns.
11162         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
11163         Delete second conditional return pattern.
11164         (ctr<mode>_internal2): Delete this second bdnz pattern.
11165         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
11166         (ctr<mode>_internal4): Delete this second bdz pattern.
11168 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
11170         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
11171         (always_initialized_rtx_for_ssa_name_p): New predicate.
11172         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
11173         (finish_out_of_ssa): Free new field of SA.
11174         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
11175         * tree-ssa-coalesce.c: Include tree-ssa.h.
11176         (get_parm_default_def_partitions): Remove extern keyword.
11177         (get_undefined_value_partitions): New function.
11178         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
11179         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
11180         uninitialized bits.
11181         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
11183 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
11185         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
11187 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
11189         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
11190         for targets that preffer 128bit.
11192 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
11194         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
11196 2017-10-08  Olivier Hainque  <hainque@adacore.com>
11198         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
11199         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
11200         prevent DSE.
11201         (thumb_set_return_address): Likewise.
11203 2017-10-08  Olivier Hainque  <hainque@adacore.com>
11205         * common/config/arm/arm-common.c (arm_except_unwind_info):
11206         Handle DWARF2_UNWIND_INFO.
11208 2017-10-07  Michael Collison <michael.collison@arm.com>
11210         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
11211         New pattern.
11213 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
11215         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
11216         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
11217         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
11218         defined, force the creation of a new block for a dispatch label.
11220 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
11222         * invoke.texi (Wsuggest-attribute=cold): Document.
11223         * common.opt (Wsuggest-attribute=cold): New
11224         * ipa-pure-const.c (warn_function_cold): New function.
11225         * predict.c (compute_function_frequency): Use it.
11226         * predict.h (warn_function_cold): Declare.
11228 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
11230         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
11231         Update profile.
11233 2017-10-06  Martin Liska  <mliska@suse.cz>
11235         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
11236         keyword for member functions.
11237         (struct sanopt_tree_couple): New struct.
11238         (struct sanopt_tree_couple_hash): New function.
11239         (struct sanopt_ctx): Add new hash_map.
11240         (has_dominating_ubsan_ptr_check): New function.
11241         (record_ubsan_ptr_check_stmt): Likewise.
11242         (maybe_optimize_ubsan_ptr_ifn): Likewise.
11243         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
11244         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
11246 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
11248         PR target/82440
11249         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
11250         aarch64_simd_valid_immediate on CONST_VECTORs.
11251         (aarch64_reg_or_bic_imm): Likewise.
11253 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
11255         PR rtl-optimization/82396
11256         * haifa-sched.c (ready_sort_real): Disable qsort checking.
11258 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
11260         * graphite-dependences.c (scop_get_reads): Move code to...
11261         (scop_get_must_writes): Move code to...
11262         (scop_get_may_writes): Move code to...
11263         (scop_get_reads_and_writes): ... here.
11264         (scop_get_dependences): Call scop_get_reads_and_writes.
11266 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
11268         PR tree-optimization/82434
11269         * fold-const.h (can_native_encode_type_p,
11270         can_native_encode_string_p): Remove.
11271         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
11272         don't encode anything, just return what would be otherwise returned.
11273         (native_encode_fixed, native_encode_complex, native_encode_vector):
11274         Likewise.
11275         (native_encode_string): Likewise.  Inline by hand
11276         can_native_encode_string_p.
11277         (can_native_encode_type_p): Remove.
11278         (can_native_encode_string_p): Remove.
11279         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
11280         STRING_CSTs using can_native_encode_string_p, test all
11281         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
11282         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
11283         argument from native_encode_expr.
11284         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
11285         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
11286         but just 2.
11288 2017-10-06  Richard Biener  <rguenther@suse.de>
11290         PR tree-optimization/82397
11291         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
11292         operand_equal_p but rely on data_ref_compare_tree for detecting
11293         equalities.
11294         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
11295         to match up with dr_group_sort_cmp.
11297 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11299         PR target/82322
11300         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
11301         builtin.
11302         * config/s390/s390-builtin-types.def: Regenerate.
11304 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11306         PR target/82317
11307         * config/s390/s390-builtin-types.def: Regenerate.
11308         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
11309         Change flag from B_VXE to B_VX.
11310         (s390_vec_min_dbl): Remove B_VXE flag.
11312 2017-10-06  Richard Biener  <rguenther@suse.de>
11314         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
11315         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
11316         translate_isl_ast_to_gimple::is_valid_rename,
11317         translate_isl_ast_to_gimple::get_rename,
11318         translate_isl_ast_to_gimple::get_def_bb_for_const,
11319         translate_isl_ast_to_gimple::get_new_name,
11320         translate_isl_ast_to_gimple::collect_all_ssa_names,
11321         translate_isl_ast_to_gimple::copy_loop_phi_args,
11322         translate_isl_ast_to_gimple::collect_all_ssa_names,
11323         translate_isl_ast_to_gimple::copy_loop_phi_args,
11324         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
11325         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
11326         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
11327         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
11328         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
11329         translate_isl_ast_to_gimple::copy_cond_phi_args,
11330         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
11331         translate_isl_ast_to_gimple::edge_for_new_close_phis,
11332         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
11333         translate_isl_ast_to_gimple::rename_uses,
11334         translate_isl_ast_to_gimple::rename_all_uses): Remove.
11335         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
11336         (set_rename_for_each_def): Likewise.
11337         (graphite_copy_stmts_from_block): Handle debug stmt resetting
11338         here.  Handle rewriting SCEV analyzable uses here.
11339         (copy_bb_and_scalar_dependences): Generate code for PHI
11340         copy-in/outs.
11341         (graphite_regenerate_ast_isl): Adjust.
11342         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
11343         (add_write, add_read): New functions.
11344         (build_cross_bb_scalars_def): Use it and simplify.
11345         (build_cross_bb_scalars_use): Likewise.
11346         (graphite_find_cross_bb_scalar_vars): Inline into...
11347         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
11348         simulating out-of-SSA.  Compute liveout and add dependencies.
11349         (build_scops): Force an empty entry block.
11350         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
11351         members.
11352         (sese_build_liveouts): Declare.
11353         (sese_trivially_empty_bb_p): Likewise.
11354         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
11355         compute liveout and debug_liveout.
11356         (sese_bad_liveouts_use): Remove.
11357         (sese_reset_debug_liveouts_bb): Likewise.
11358         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
11359         (sese_build_liveouts): Build liveout and debug_liveout and store
11360         it in region.
11361         (new_sese_info): Adjust.
11362         (free_sese_info): Likewise.
11363         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
11364         do not build liveout here.
11365         (move_sese_in_condition): Adjust region entry.
11366         (scev_analyzable_p): Match up with chrec_apply requirements.
11367         (sese_trivially_empty_bb_p): New.
11368         * tree-into-ssa.c (get_reaching_def): Properly support generating
11369         default-defs for incremental rewrite of anonymous names.
11371 2017-10-06  Richard Biener  <rguenther@suse.de>
11373         * graphite-sese-to-poly.c (extract_affine): For casts increasing
11374         precision do not perform modulo reduction.
11376 2017-10-06  Richard Biener  <rguenther@suse.de>
11378         PR tree-optimization/82436
11379         * tree-vect-slp.c (vect_supported_load_permutation_p): More
11380         conservatively choose the vectorization factor when checking
11381         whether we can perform the required load permutation.
11382         (vect_transform_slp_perm_load): Assert when we may not fail.
11384 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
11386         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
11387         message for incompatible -msdata=* and -mcall-* options.
11389 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
11391         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
11392         rate for post-reload scheduling.
11394 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
11396         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
11398 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
11400         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
11401         to improve monte carlo in scimark.
11403 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
11405         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
11406         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
11407         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
11408         pentium4_cost, nocona_cost): Set reassociation width to 1.
11409         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
11410         width to 2 for fp operations and 1 otherwise.
11411         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
11412         for int and fp.
11413         (atom_cost): Set reassociation width to 2.
11414         (slm_cost, generic_cost): Set fp reassociation width
11415         to 2 and 1 otherwise.
11416         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
11417         (core_cost): Set fp reassociation width to 4 and vector to 2.
11418         (ix86_reassociation_width): Rewrite using cost table; special case
11419         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
11420         and TARGET_AVX128_OPTIMAL.
11421         * config/i386/i386.h (processor_costs): Add
11422         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
11423         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
11424         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
11425         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
11426         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
11427         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
11429 2017-10-05  Nathan Sidwell  <nathan@acm.org>
11431         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
11433 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
11435         * config/arm/arm.c (arm_test_fpu_data): New.
11436         (arm_run_selftests): Call arm_test_fpu_data.
11438 2017-10-04  Nathan Sidwell  <nathan@acm.org>
11440         * toplev.c (toplev::main): Remove excess parens on pretty_printer
11441         decl.
11442         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
11444 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
11446         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
11447         check type for aarch64_simd_valid_immediate.
11448         (aarch64_output_simd_mov_immediate): Update prototype.
11449         (aarch64_simd_valid_immediate): Update prototype.
11450         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
11451         support for ORR-immediate.
11452         (and<mode>3): modified pattern to add support for BIC-immediate.
11453         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
11454         now checks for valid immediate for BIC and ORR based on new enum
11455         argument.
11456         (aarch64_output_simd_mov_immediate): Function now used to output
11457         BIC/ORR imm as well based on new enum argument.
11458         * config/aarch64/constraints.md (Do): New vector immediate constraint.
11459         (Db) : Likewise.
11460         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
11461         (aarch64_reg_or_bic_imm): Likewise.
11463 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11465         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
11466         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
11468 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
11470         Revert r253399:
11472         PR rtl-optimization/82396
11473         * haifa-sched.c (autopref_multipass_init): Simplify
11474         initialization.
11475         (autopref_rank_data): Simplify sort order.
11476         * sched-int.h (autopref_multipass_data_): Remove
11477         multi_mem_insn_p, min_offset and max_offset.
11479 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11481         * doc/sourcebuild.texi: Document vect_peeling_profitable.
11483 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11485         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
11486         vect_doubleint_cvt.
11488 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11490         * doc/sourcebuild.texi: Document vect_long_mult.
11492 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
11494         PR tree-optimization/82413
11495         * fold-const.c (build_range_check): Use widest_int when comparing
11496         the maximum ETYPE value with HIGH.
11498 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
11500         PR rtl-optimization/82396
11501         * haifa-sched.c (autopref_multipass_init): Simplify
11502         initialization.
11503         (autopref_rank_data): Simplify sort order.
11504         * sched-int.h (autopref_multipass_data_): Remove
11505         multi_mem_insn_p, min_offset and max_offset.
11507 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
11509         PR tree-optimization/82381
11510         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
11511         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
11512         is not.
11514         PR tree-optimization/82374
11515         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
11516         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
11517         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
11518         current_function_decl to the new decl.
11520 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
11522         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
11523         helper macro for IEEE float128 hardware built-in functions.
11524         (SQRTF128_ODD): Add built-in functions with the round-to-odd
11525         semantics.
11526         (TRUNCF128_ODD): Likewise.
11527         (ADDF128_ODD): Likewise.
11528         (SUBF128_ODD): Likewise.
11529         (MULF128_ODD): Likewise.
11530         (DIVF128_ODD): Likewise.
11531         (FMAF128_ODD): Likewise.
11532         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
11533         UNSPEC_TRUNC_ROUND_TO_ODD.
11534         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
11535         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
11536         floating point round to odd instructions.
11537         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
11538         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
11539         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
11540         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
11541         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
11542         (trunc<mode>sf2_hw): Change the truncate with round to odd
11543         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
11544         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
11545         to odd hardware instructions.
11546         (sub<mode>3_odd): Likewise.
11547         (mul<mode>3_odd): Likewise.
11548         (div<mode>3_odd): Likewise.
11549         (sqrt<mode>2_odd): Likewise.
11550         (fma<mode>4_odd): Likewise.
11551         (fms<mode>4_odd): Likewise.
11552         (nfma<mode>4_odd): Likewise.
11553         (nfms<mode>4_odd): Likewise.
11554         (trunc<mode>df2_odd): Change the truncate with round to odd
11555         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
11556         function.
11557         * doc/extend.texi (PowerPC built-in functions): Update documentation
11558         for existing IEEE float128-bit built-in functions.  Add built-in
11559         functions that generate the IEEE 128-bit floating point round to
11560         odd instructions.
11562 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
11564         PR rtl-optimization/77729
11565         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
11566         to (X&(C1&~C2))|C2 transformations.
11568 2017-10-03  Martin Jambor  <mjambor@suse.cz>
11570         PR tree-optimization/82363
11571         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
11572         mismatch, mark lacc written regardless of racc.
11574 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
11576         PR tree-optimization/82381
11577         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
11578         stmt_to_insert nor wheather SSA_NAMEs are default defs.
11579         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
11580         fallthrough into reassoc_stmt_dominates_stmt_p.
11582         PR target/82386
11583         * combine.c (combine_instructions): Don't combine in unreachable
11584         basic blocks.
11586 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
11588         PR target/80210
11589         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
11590         function to not use the have_cpu variable.  Do not set cpu_index,
11591         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
11592         or the default cpu.
11593         (rs6000_valid_attribute_p): Remove duplicate initializations of
11594         old_optimize and func_optimize.
11595         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
11596         (rs6000_activate_target_options): Make global.
11597         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
11598         prototype.
11600 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
11602         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
11603         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
11604         Set *poffset to 0 and *psize and *pmax_size to -1 if
11605         *poffset + *psize overflows in HOST_WIDE_INT.
11607         PR tree-optimization/82387
11608         PR tree-optimization/82388
11609         PR tree-optimization/82389
11610         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
11611         instead of live_bytes non-NULL.
11613 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
11615         PR target/41076
11616         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
11617         alternative.
11619 2017-10-02  Richard Biener  <rguenther@suse.de>
11621         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
11622         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
11623         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
11625 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
11627         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
11628         requested precision matches the type's.
11629         * calls.c (alloc_max_size): Calculate the new candidate size as
11630         a widest_int and use wi::to_widest when comparing it with the
11631         current candidate size.
11632         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
11633         zero rather than integer_zero_node.
11634         * match.pd: Check for a no-op conversion before using wi::add
11635         rather than after.  Use tree_to_uhwi when summing small shift
11636         counts into an unsigned int.
11638 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
11639             Alan Hayward  <alan.hayward@arm.com>
11640             David Sherwood  <david.sherwood@arm.com>
11642         PR target/71307
11643         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
11644         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
11645         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
11646         POINTER_AND_FP_REGS.
11648 2017-10-02  Richard Biener  <rguenther@suse.de>
11650         PR tree-optimization/82355
11651         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
11652         a mapping for the enclosing loop but avoid generating one for
11653         the loop tree root.
11654         (copy_bb_and_scalar_dependences): Remove premature codegen
11655         error on PHIs in blocks duplicated into multiple places.
11656         * graphite-scop-detection.c
11657         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
11658         in the region use it as loop and nest to analyze the DR in.
11659         (try_generate_gimple_bb): Likewise.
11660         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
11661         (add_loop_constraints): For blocks in a loop not in the region
11662         create a dimension with a single iteration.
11663         * sese.h (gbb_loop_at_index): Remove assert.
11665 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
11667         * omp-expand.c (adjust_context_scope): New function.
11668         (expand_parallel_call): Call adjust_context_scope.
11670 2017-10-01  Jeff Law  <law@redhat.com>
11672         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
11673         dom_opt_dom_walker class with direct access to private members.
11674         Add comments.  Call test_for_singularity.
11675         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
11676         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
11677         m_dummy_cond anymore.
11678         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
11679         class ctor.
11680         (pass_dominator:execute): Build the dummy_cond here and pass it
11681         to the dom_opt_dom_walker ctor.
11682         (test_for_singularity): New function.
11684 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
11685             Maya Rashish  <coypu@sdf.org>
11687         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
11688         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
11689         (alpha*-*-netbsd*) Use nbsd_tm_file.
11690         (arm*-*-netbsdelf*) Likewise.
11691         (i[34567]86-*-netbsdelf*) Likewise.
11692         (x86_64-*-netbsd*) Likewise.
11693         (mips*-*-netbsd*) Likewise.
11694         (powerpc-*-netbsd*) Likewise.
11695         (sh*-*-netbsd*) Likewise.
11696         (sparc-*-netbsdelf*) Likewise.
11697         (sparc64-*-netbsd*) Likewise.
11698         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
11699         to tm_defines.
11700         (vax-*-netbsdelf*) Likewise.
11701         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
11702         (UINT_FAST8_TYPE) Likewise.
11703         (INT_FAST16_TYPE) Check CHAR_FAST16.
11704         (UINT_FAST16_TYPE) Likewise.
11706 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
11708         PR target/82361
11709         * config/i386/i386.md
11710         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
11711         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
11712         *divmodsi4_zext_2): New define_insn_and_split.
11713         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
11714         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
11715         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
11716         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
11717         New define_insn_and_split.
11718         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
11719         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
11720         operands[1] having DImode when mode is SImode.
11722         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
11723         always SImode for DIV and MOD in REG_EQUAL notes.
11725 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
11727         PR middle-end/82319
11728         * match.pd: Fix handling of NaNs in pattern.
11730 2017-09-29  Jeff Law  <law@redhat.com>
11732         * sbitmap.c (bitmap_bit_in_range_p): New function.
11733         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
11734         * tree-ssa-dse.c (live_bytes_read): New function.
11735         (dse_classify_store): Ignore reads of dead bytes.
11737         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
11738         typos and whitespace errors.
11739         * config/i386/predicates.md (address_no_seg_operand): Likewise.
11740         * config/s390/s390.c (s390_emit_prologue): Likewise.
11742 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
11744         PR target/81481
11745         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
11746         with a symbol for LRA.
11748 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
11750         PR rtl-optimization/82338
11751         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
11753 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
11755         * genmodes.c (calc_wider_mode): Suppress qsort macro.
11756         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
11757         (qsort_chk): Declare.
11758         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
11759         (qsort_chk): New function.
11761 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11763         PR tree-optimization/82337
11764         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
11765         phi definition if the PHI result appears in an abnormal PHI.
11766         (find_basis_for_base_expr): Don't record a basis if the LHS of the
11767         basis appears in an abnormal PHI.
11769 2017-09-29  Richard Biener  <rguenther@suse.de>
11771         * graphite-isl-ast-to-gimple.c
11772         (translate_isl_ast_to_gimple::set_codegen_error): New function.
11773         (binary_op_to_tree): Use it.
11774         (get_rename_from_scev): Likewise.
11775         (copy_loop_phi_nodes): Likewise.
11776         (copy_bb_and_scalar_dependences): Likewise.
11777         (translate_pending_phi_nodes): Likewise.
11779 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
11781         PR target/82339
11782         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
11783         for movabsq $(i32 << shift), r64.
11785 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
11787         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
11788         index when encoding %esp as %rsp to avoid 0x67 prefix.
11790 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
11792         * config/i386/i386.md (*movsf_internal, *movdf_internal):
11793         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
11795 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11797         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
11798         Extensions with more than 16 double VFP registers.
11799         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
11800         to_clear_mask and all code related to it.  Replace the remaining
11801         entry by a sbitmap and adapt code accordingly.
11803 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
11805         * brig-builtins.def: Change pure attributes to const.
11807 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
11809         * config.gcc (default_gnu_indirect_function): Default to yes for
11810         sparc*-*-linux* with glibc.
11812 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
11814         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
11815         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
11816         when creating .init_array and .fini_array sections with priority
11817         specified.
11819 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
11821         PR target/71727
11822         * config/aarch64/aarch64.c
11823         (aarch64_builtin_support_vector_misalignment): Always return false
11824         when misalignment is unknown.
11826 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11828         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
11829         this function to return false if the definition used by the swap
11830         instruction is artificial, or if the memory address from which the
11831         constant value is loaded is not represented by a base address held
11832         in a register or if the base address register is a frame or stack
11833         pointer.  Additionally, return false if the base address of the
11834         loaded constant is a SYMBOL_REF but is not considered to be a
11835         constant.
11836         (replace_swapped_load_constant): New function.
11837         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
11838         loaded constant vector with a load of a swapped constant vector.
11840 2017-09-27  Carl Love  <cel@us.ibm.com>
11842         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
11843         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
11844         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
11845         fctiw instruction.
11847 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
11849         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
11850         first, always call autopref_rank_data otherwise.
11852 2017-09-27  Richard Biener  <rguenther@suse.de>
11854         * graphite-scop-detection.c (find_scop_parameters): Move
11855         loop bound handling ...
11856         (gather_bbs::before_dom_children): ... here, avoiding the need
11857         to build scop_info->loop_nest.
11858         (record_loop_in_sese): Remove.
11859         * sese.h (sese_info_t::loop_nest): Remove.
11860         * sese.c (new_sese_info): Do not allocate loop_nest.
11861         (free_sese_info): Do not free loop_nest.
11863 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
11865         PR c++/82159
11866         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
11867         lhs from calls if the lhs has addressable type.
11869 2017-09-27  Richard Biener  <rguenther@suse.de>
11871         * graphite.h (scop::max_alias_set): New member.
11872         * graphite-scop-detection.c: Remove references to non-existing
11873         --param in comments.
11874         (build_alias_sets): Record the maximum alias set used for drs.
11875         (build_scops): Support zero as unlimited for
11876         --param graphite-max-arrays-per-scop.
11877         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
11878         and inline into ...
11879         (build_poly_sr_1): ... here.  Compute alias set based on the
11880         maximum alias set used for drs rather than
11881         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
11883 2017-09-27  Richard Biener  <rguenther@suse.de>
11885         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
11886         --param loop-block-tile-size=0 to disable tiling.
11888 2017-09-27  Richard Biener  <rguenther@suse.de>
11890         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
11891         (graphite-max-nb-scop-params): Document special value zero.
11892         * domwalk.h (dom_walker::STOP): New symbolical constant.
11893         (dom_walker::dom_walker): Add optional parameter for bb to
11894         RPO mapping.
11895         (dom_walker::~dom_walker): Declare.
11896         (dom_walker::before_dom_children): Document STOP return value.
11897         (dom_walker::m_user_bb_to_rpo): New member.
11898         (dom_walker::m_bb_to_rpo): Likewise.
11899         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
11900         mapping here if not provided by the user.
11901         (dom_walker::~dom_walker): Free bb to RPO mapping if not
11902         provided by the user.
11903         (dom_walker::STOP): Define.
11904         (dom_walker::walk): Do not compute bb to RPO mapping here.
11905         Support STOP return value from before_dom_children to stop
11906         walking.
11907         * graphite-optimize-isl.c (optimize_isl): If the schedule
11908         is the same still generate code if -fgraphite-identity
11909         or -floop-parallelize-all are given.
11910         * graphite-scop-detection.c: Include cfganal.h.
11911         (gather_bbs::gather_bbs): Get and pass through bb to RPO
11912         mapping.
11913         (gather_bbs::before_dom_children): Return STOP for BBs
11914         not in the region.
11915         (build_scops): Compute bb to RPO mapping and pass it to
11916         the domwalk.  Treat --param graphite-max-nb-scop-params=0
11917         as not limiting the number of params.
11918         * graphite.c (graphite_initialize): Remove limit on the
11919         number of basic-blocks in a function.
11920         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
11921         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
11922         default value of 10.
11924 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11926         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
11927         Adjust code to eliminate needing to do the shift right 32-bits
11928         operation after XSCVDPSPN.
11930 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11932         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
11933         ((X / Y) != 0 -> X >= Y): Likewise.
11935 2017-09-26  Carl Love  <cel@us.ibm.com>
11937         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
11938         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
11939         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
11940         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
11941         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
11942         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
11943         definitions and overloading.
11944         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
11945         statement for P9V_BUILTIN_XST_LEN_R.
11946         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
11947         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
11948         define_expand and define_insn for the instructions and builtins.
11949         * doc/extend.texi: Update the built-in documentation file for the new
11950         built-in functions.
11951         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
11952         define_insn for the instructions
11954 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
11956         PR target/39570
11957         * gcc/config/netbsd-protos.h: New file.
11958         * gcc/config/netbsd.c: New file.
11959         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
11960         * gcc/config/t-netbsd: New file.
11961         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
11962         (tmake_file) Add t-netbsd.
11963         (extra_objs) Add netbsd.o.
11965 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
11967         PR fortran/82143
11968         PR fortran/82324
11969         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
11971 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11973         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
11974         sign extension from a vector register to a GPR by doing a 32-bit
11975         direct move and then an EXTSW.
11976         (extendsi<mode>2 splitter): Likewise.
11977         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
11978         right or vector extract after doing XSCVDPSPN.  Use
11979         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
11980         the GPRs.
11981         (movdi_from_sf_zero_ext): Likewise.
11982         (reload_gpr_from_vsxsf): Likewise.
11983         (p8_mfvsrd_4_disf): Delete, no longer used.
11984         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
11985         then needing to move the SFmode to a GPR to use the XSCVDPSP
11986         instruction instead of FRSP and XSCVDPSPN.
11987         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
11988         it is adjacent to the other XSCVSPDP insns.
11989         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
11990         SFmode to be in traditional Altivec registers.
11991         (vsx_xscvdpspn): Eliminate useless alternative constraint.
11992         (vsx_xscvspdpn): Likewise.
11993         (vsx_xscvspdpn_scalar): Likewise.
11995 2017-09-26  Martin Jambor  <mjambor@suse.cz>
11997         * tree-sra.c (compare_access_positions): Put integral types first,
11998         stabilize sorting of integral types, remove conditions putting
11999         non-full-precision integers last.
12000         (sort_and_splice_var_accesses): Disable scalarization if a
12001         non-integert would be represented by a non-full-precision integer.
12003 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
12005         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
12006         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
12007         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
12008         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
12009         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
12010         conditionals inside the function instead of around it.  Call
12011         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
12012         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
12014 2017-09-26  Richard Biener  <rguenther@suse.de>
12016         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
12017         fold in ...
12018         (scop_detection::build_scop_breadth): ... this.  Removed.
12019         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
12020         (scop_detection::harmful_stmt_in_bb): Likewise.
12021         (scop_detection::graphite_can_represent_stmt): Likewise.
12022         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
12023         (scop_detection::can_represent_loop): Remove recursion, fold in ...
12024         (scop_detection::can_represent_loop_1): ... this.  Removed.
12025         (scop_detection::harmful_loop_in_region): Simplify after inlining
12026         the above and remove more quadraticness.
12027         (build_scops): Adjust.
12028         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
12029         quadraticness.
12031 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
12033         PR target/82267
12034         * config/i386/i386.c (ix86_print_operand_address_as): Only test
12035         REGNO (base) == SP_REG if base is a REG.
12037         PR middle-end/35691
12038         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
12039         if it is different SSA_NAME.
12040         (optimize_range_tests_cmp_bitwise): New function.
12041         (optimize_range_tests): Call it.
12043 2017-09-26  Richard Biener  <rguenther@suse.de>
12045         PR tree-optimization/82321
12046         * graphite.c (canonicalize_loop_closed_ssa): Properly check
12047         for the def being inside the loop.
12049 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12051         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
12052         assembler output.
12053         * config/s390/s390-builtins.def: Fix constraint on op4.
12055 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12057         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
12058         independent expanders.
12059         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
12060         ("vec_ordered", "vec_unordered"): New expanders.
12062 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12064         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
12065         for SFmode.
12067 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12069         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
12070         vec_unpacks_lo_v16qi.
12071         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
12073 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12075         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
12076         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
12077         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
12079 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12081         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
12082         predicate.
12083         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
12084         and V16QI.
12085         ("*vec_slb<mode>"): New insn pattern.
12086         ("vec_shr_<mode>"): New expander.
12087         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
12088         and force the shift count operand to V16QImode.
12089         ("vec_srb<mode>"): Set shift count mode to V16QI.
12091 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12093         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
12094         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
12095         ("vec_widen_smult_hi_<mode>"): New expander definitions.
12097 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
12099         PR target/82175
12100         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
12102 2017-09-26  Richard Biener  <rguenther@suse.de>
12104         PR tree-optimization/82320
12105         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
12106         isn't a change.
12108 2017-09-25  Jeff Law  <law@redhat.com>
12110         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
12111         prototype for new argument.
12112         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
12113         mostly extracted from rs6000_emit_allocate_stack.
12114         (rs6000_emit_probe_stack_range_stack_clash): New function.
12115         (rs6000_emit_allocate_stack): Call
12116         rs6000_emit_probe_stack_range_stack_clash as needed.
12117         (rs6000_emit_probe_stack_range): Add additional argument
12118         to call to gen_probe_stack_range{si,di}.
12119         (output_probe_stack_range): New.
12120         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
12121         (output_probe_stack_range_stack_clash): New.
12122         (rs6000_emit_prologue): Emit notes into dump file as requested.
12123         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
12124         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
12125         Add additional operand and pass it to output_probe_stack_range.
12127 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
12129         PR tree-optimization/82163
12130         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
12131         (checking_verify_loop_closed_ssa): New parameter.
12132         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
12133         (check_loop_closed_ssa_stmt): Delete.
12134         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
12135         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
12136         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
12137         changed loops.
12139 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
12141         * brig-builtins.def: Treat HSAIL barrier builtins as
12142         setjmp/longjump style functions.
12144 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
12146         * target.def (constant_alignment): New hook.
12147         * defaults.h (CONSTANT_ALIGNMENT): Delete.
12148         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
12149         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
12150         * doc/tm.texi: Regenerate.
12151         * targhooks.h (default_constant_alignment): Declare.
12152         (constant_alignment_word_strings): Likewise.
12153         * targhooks.c (default_constant_alignment): New function.
12154         (constant_alignment_word_strings): Likewise.
12155         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
12156         instead of CONSTANT_ALIGNMENT.
12157         * varasm.c (align_variable, get_variable_align, build_constant_desc)
12158         (force_const_mem): Likewise.
12159         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
12160         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
12161         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
12162         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12163         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
12164         definition.
12165         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
12166         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12167         constant_alignment_word_strings.
12168         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
12169         (CONSTANT_ALIGNMENT): Likewise.
12170         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12171         (arm_constant_alignment): New function.
12172         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
12173         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12174         constant_alignment_word_strings.
12175         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
12176         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12177         constant_alignment_word_strings.
12178         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
12179         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12180         (cris_constant_alignment): New function.
12181         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
12182         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12183         (epiphany_constant_alignment): New function.
12184         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
12185         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12186         constant_alignment_word_strings.
12187         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
12188         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12189         constant_alignment_word_strings.
12190         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
12191         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12192         constant_alignment_word_strings.
12193         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
12194         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
12195         * config/i386/i386.c (ix86_constant_alignment): Make static.
12196         Use the same interface as the target hook.
12197         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12198         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
12199         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12200         constant_alignment_word_strings.
12201         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
12202         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
12203         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12204         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
12205         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12206         constant_alignment_word_strings.
12207         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
12208         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12209         constant_alignment_word_strings.
12210         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
12211         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12212         constant_alignment_word_strings.
12213         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
12214         * config/microblaze/microblaze.c (microblaze_constant_alignment):
12215         New function.
12216         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12217         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
12218         * config/mips/mips.c (mips_constant_alignment): New function.
12219         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12220         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
12221         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
12222         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12223         (mmix_constant_alignment): Make static.  Use the same interface
12224         as the target hook.
12225         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
12226         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12227         constant_alignment_word_strings.
12228         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
12229         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12230         constant_alignment_word_strings.
12231         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
12232         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12233         constant_alignment_word_strings.
12234         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
12235         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12236         (rs6000_constant_alignment): New function.
12237         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
12238         * config/riscv/riscv.c (riscv_constant_alignment): New function.
12239         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12240         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
12241         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12242         (rs6000_constant_alignment): New function.
12243         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
12244         * config/s390/s390.c (s390_constant_alignment): New function.
12245         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12246         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
12247         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12248         constant_alignment_word_strings.
12249         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
12250         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12251         (sparc_constant_alignment): New function.
12252         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
12253         * config/spu/spu.c (spu_constant_alignment): New function.
12254         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12255         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
12256         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12257         constant_alignment_word_strings.
12258         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
12259         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12260         constant_alignment_word_strings.
12261         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
12262         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12263         constant_alignment_word_strings.
12264         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
12265         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12266         (visium_constant_alignment): New function.
12267         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
12268         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12269         (xtensa_constant_alignment): New function.
12270         * system.h (CONSTANT_ALIGNMENT): Poison.
12272 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
12274         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
12275         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
12276         (rs6000_builtin_valid_without_lhs): New helper function.
12277         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12278         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
12280 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
12282         * target.h (vec_perm_indices): Use unsigned short rather than
12283         unsigned char.
12284         (auto_vec_perm_indices): Likewise.
12285         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
12286         Use unsigned int rather than unsigned char.
12287         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
12289 2017-09-25  Richard Biener  <rguenther@suse.de>
12291         * cfgloop.h (sort_sibling_loops): Declare.
12292         * cfgloop.c (sort_sibling_loops_cmp): New helper.
12293         (sort_sibling_loops): New function sorting the sibling loop list
12294         in RPO order.
12295         * graphite.c (graphite_transform_loops): Sort sibling loops.
12297 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
12299         * target.def (vec_perm_const_ok): Change sel parameter to
12300         vec_perm_indices.
12301         * optabs-query.c (can_vec_perm_p): Update accordingly.
12302         * doc/tm.texi: Regenerate.
12303         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
12304         auto_vec_perm_indices and remove separate nelt field.
12305         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
12306         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
12307         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
12308         (aarch64_expand_vec_perm_const): Update accordingly.
12309         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
12310         to vec_perm_indices.
12311         * config/arm/arm.c (expand_vec_perm_d): Change perm to
12312         auto_vec_perm_indices and remove separate nelt field.
12313         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
12314         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
12315         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
12316         accordingly.
12317         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
12318         to vec_perm_indices.
12319         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
12320         sel to vec_perm_indices.
12321         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
12322         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
12323         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
12324         Likewise.
12325         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
12326         Likewise.
12328 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
12330         PR debug/82155
12331         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
12332         on the FUNCTION_DECL function context if it has a DIE that is a
12333         declaration.
12335 2017-09-25  Richard Biener  <rguenther@suse.de>
12337         PR tree-optimization/82285
12338         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
12339         enumeral types.
12341 2017-09-25  Tom de Vries  <tom@codesourcery.com>
12343         PR target/80035
12344         PR target/81069
12345         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
12346         noreturn function.
12348 2017-09-25  Richard Biener  <rguenther@suse.de>
12350         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
12351         ISL errors other than isl_error_quota happen.  Dump if the
12352         schedule is the same.
12353         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
12354         errors instead of aborting inside ISL.
12356 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
12358         PR target/80556
12359         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
12360         of libgcc_eh for m64.
12361         * config/i386/darwin64.h: Likewise.
12363 2017-09-25  Richard Biener  <rguenther@suse.de>
12365         PR middle-end/82144
12366         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
12367         attribute for incomplete types nor twice for complete ones.
12369 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
12371         PR target/82267
12372         * config/i386/i386.c (ix86_print_operand_address_as): Encode
12373         %esp as %rsp to avoid 0x67 prefix if there is no index or base
12374         register.
12376 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
12378         PR bootstrap/82306
12379         * config/i386/i386.opt (mprefer-avx256): Use
12380         ix86_target_flags variable.
12381         * config/i386/i386.c (ix86_target_string): Move
12382         -mprefer-avx256 to flag2_opts.
12384 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
12386         PR middle-end/35691
12387         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
12388         and x != -1 | y != -1 into (x & y) != -1.
12390 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
12392         * config.gcc: Add new case statement to set
12393         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
12394         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
12395         s390x-*-linux* case statements.   Added aarch64 to the list of
12396         supported architectures.
12398 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12400         PR tree-optimization/82289
12401         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
12402         STMT_VINFO_RELEVANT_P.
12404 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12405             Alan Hayward  <alan.hayward@arm.com>
12406             David Sherwood  <david.sherwood@arm.com>
12408         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
12409         for VR_RANGE only; don't allow VR_ANTI_RANGE.
12410         (extract_range_from_binary_expr_1): Don't call
12411         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
12413 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12414             Alan Hayward  <alan.hayward@arm.com>
12415             David Sherwood  <david.sherwood@arm.com>
12417         * target.def (preferred_vector_alignment): New hook.
12418         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
12419         hook.
12420         * doc/tm.texi: Regenerate.
12421         * targhooks.h (default_preferred_vector_alignment): Declare.
12422         * targhooks.c (default_preferred_vector_alignment): New function.
12423         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
12424         Expand commentary.
12425         (DR_TARGET_ALIGNMENT): New macro.
12426         (aligned_access_p): Update commentary.
12427         (vect_known_alignment_in_bytes): New function.
12428         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
12429         function.
12430         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
12431         Calculate the misalignment based on the target alignment rather than
12432         the vector size.
12433         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
12434         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
12435         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
12436         the target alignment, rather than masking the element misalignment
12437         with the number of elements in a vector.  Also use the target
12438         alignment when calculating the maximum number of peels.
12439         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
12440         instead of TYPE_ALIGN_UNIT.
12441         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
12442         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
12443         (vect_create_addr_base_for_vector_ref): Update call accordingly.
12444         (vect_create_data_ref_ptr): Likewise.
12445         (vect_setup_realignment): Realign by ANDing with
12446         -DR_TARGET_MISALIGNMENT.
12447         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
12448         the number of peels based on DR_TARGET_ALIGNMENT.
12449         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
12450         with the guaranteed alignment boundary when deciding whether
12451         overrun is OK.
12452         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
12453         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
12454         (ensure_base_align): Remove stmt_info parameter.  Get the
12455         target base alignment from DR_TARGET_ALIGNMENT.
12456         (vectorizable_store): Update call accordingly.   Interpret
12457         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
12458         TYPE_ALIGN_UNIT.
12459         (vectorizable_load): Likewise.
12461 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12462             Alan Hayward  <alan.hayward@arm.com>
12463             David Sherwood  <david.sherwood@arm.com>
12465         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
12466         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
12467         (vect_enhance_data_refs_alignment): Likewise.
12469 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
12471         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
12472         error.  Only quit immediately if parsing is complete.
12473         (BEGIN): Initialize fatal_err and parse_done.
12474         (begin fpu, end fpu): Check number of arguments.
12475         (begin arch, end arch): Likewise.
12476         (begin cpu, end cpu): Likewise.
12477         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
12478         (optalias): Likewise.
12480 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
12482         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
12483         * config/arm/arm-isa.h: Delete.  Move definitions to ...
12484         * arm-cpus.in: ... here.  Use new feature and fgroup values.
12485         * config/arm/arm.c (arm_option_override): Use lower case for feature
12486         bit names.
12487         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
12488         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
12489         * config/arm/parsecpu.awk (END): Add new command 'isa'.
12490         (isa_pfx): Delete.
12491         (print_isa_bits_for): New function.
12492         (gen_isa): New function.
12493         (gen_comm_data): Use print_isa_bits_for.
12494         (define feature): New keyword.
12495         (define fgroup): New keyword.
12496         * config/arm/t-arm (TM_H): Remove.
12497         (GTM_H): Add arm-isa.h.
12498         (arm-isa.h): Add rule to generate file.
12499         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
12500         case for feature bit names.
12502 2017-09-22  Richard Biener  <rguenther@suse.de>
12504         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
12505         single caller.
12506         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
12507         print of no dependency loops ...
12508         * graphite.c (graphite_transform_loops): ... here.
12509         (canonicalize_loop_closed_ssa_form): Work from inner to outer
12510         loops.
12511         (same_close_phi_node, remove_duplicate_close_phi,
12512         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
12513         (canonicalize_loop_closed_ssa): ... here and simplify.
12514         * graphite-optimize-isl.c: Include tree-vectorizer.h.
12515         (optimize_isl): Use dump_printf_loc to tell when we stopped
12516         optimizing because of an ISL timeout.
12518 2017-09-22  Richard Biener  <rguenther@suse.de>
12520         PR tree-optimization/82291
12521         * tree-if-conv.c (predicate_mem_writes): Make sure to
12522         remove writes in blocks predicated with false.
12524 2017-09-22  Richard Biener  <rguenther@suse.de>
12526         * sese.c: Include cfganal.h.
12527         (if_region_set_false_region): Remove.
12528         (create_if_region_on_edge): Likewise.
12529         (move_sese_in_condition): Re-implement without destroying
12530         dominators.
12532 2017-09-22  Richard Biener  <rguenther@suse.de>
12534         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
12535         Verify both BBs contain loop PHI nodes before dispatching to
12536         copy_loop_phi_args.
12537         (graphite_regenerate_ast_isl): Do not recompute dominators,
12538         do not verify three times.  Restructure for clarity.
12539         * graphite-scop-detection.c (same_close_phi_node,
12540         remove_duplicate_close_phi, make_close_phi_nodes_unique,
12541         defined_in_loop_p, canonicalize_loop_closed_ssa,
12542         canonicalize_loop_closed_ssa_form): Simplify, remove excess
12543         checking and SSA rewrite, move to ...
12544         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
12545         (graphite_initialize): Do not pass in ctx, do not reset the
12546         SCEV cache, compute only dominators.
12547         (graphite_transform_loops): Allocate ISL ctx after
12548         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
12549         Maintain post-dominators only around build_scops.
12550         * sese.c (if_region_set_false_region): Make static.  Free
12551         and recompute dominators.
12552         (move_sese_in_condition): Assert we don't get called with
12553         post-dominators computed.
12554         * sese.h (if_region_set_false_region): Remove.
12556 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
12558         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
12559         mode attribute for TARGET_AVX512VL.
12561 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
12563         * config/i386/i386.opt (mprefer-avx256): New option.
12564         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
12565         to flag_opts.
12566         (ix86_preferred_simd_mode): Return 256-bit AVX modes
12567         for TARGET_PREFER_AVX256.
12568         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
12570 2017-09-21  Jeff Law  <law@redhat.com>
12572         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
12573         Fix dump output if the only stack space is for pushed registers.
12575 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12577         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
12578         of insn_cost.
12580 2017-09-21  Martin Sebor  <msebor@redhat.com>
12582         PR c/81882
12583         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
12584         code (in C++) or code that triggers warnings.
12586 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
12588         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
12590 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
12592         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
12593         * sched-rgn.c: Ditto.
12594         * sel-sched-ir.c: Ditto.
12596 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
12598         * toplev.h (set_random_seed): Adjust return type.
12599         * toplev.c (init_local_tick): Move eager initialization of random_seed
12600         to get_random_seed.  Adjust comment.
12601         (init_random_seed): Inline to get_random_seed, delete.
12602         (get_random_seed): Initialize random_seed lazily.
12603         (set_random_seed): Do not return previous value.
12604         (print_switch_value): Do not call get_random_seed.
12606 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
12608         * cgraph.c (delete_function_version): New, broken out from...
12609         (cgraph_node::delete_function_version): ...here.  Rename to
12610         cgraph_node::delete_function_version_by_decl.  Update all uses.
12611         (cgraph_node::remove): Call delete_function_version.
12613 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
12615         PR sanitizer/81715
12616         * tree-inline.c (expand_call_inline): Emit clobber stmts for
12617         VAR_DECLs to which addressable non-volatile parameters are mapped
12618         and for id->retvar after the return value assignment.  Clear
12619         id->retval and id->retbnd after inlining.
12621 2017-09-21  Richard Biener  <rguenther@suse.de>
12623         PR tree-optimization/82276
12624         PR tree-optimization/82244
12625         * tree-vrp.c (build_assert_expr_for): Set
12626         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
12627         has it set.
12628         (remove_range_assertions): Revert earlier change.
12630 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
12632         PR target/71951
12633         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
12635 2017-09-21  Richard Biener  <rguenther@suse.de>
12637         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
12638         Restore valid IL after code generation errors.
12639         * graphite.c (graphite_transform_loops): Diagnose code
12640         generation issues as MSG_MISSED_OPTIMIZATION and continue
12641         with processing SCOPs.
12643 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12644             Alan Hayward  <alan.hayward@arm.com>
12645             David Sherwood  <david.sherwood@arm.com>
12647         * calls.c (compute_argument_addresses): Use simplify_gen_binary
12648         rather than choosing between plus_constant and gen_rtx_<CODE>.
12649         * expr.c (emit_push_insn): Likewise.
12650         (expand_expr_real_2): Likewise.
12652 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12653             Alan Hayward  <alan.hayward@arm.com>
12654             David Sherwood  <david.sherwood@arm.com>
12656         * loop-unroll.c (split_iv): Call copy_rtx on the step.
12658 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12659             Alan Hayward  <alan.hayward@arm.com>
12660             David Sherwood  <david.sherwood@arm.com>
12662         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
12663         calling tree_to_uhwi.
12665 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12666             Alan Hayward  <alan.hayward@arm.com>
12667             David Sherwood  <david.sherwood@arm.com>
12669         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
12670         INTEGER_CST rather than a negative test for ADDR_EXPR.
12672 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12673             Alan Hayward  <alan.hayward@arm.com>
12674             David Sherwood  <david.sherwood@arm.com>
12676         * tree-vrp.c (extract_range_from_binary_expr_1): Check
12677         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
12679 2017-09-21  Richard Biener  <rguenther@suse.de>
12681         PR tree-optimization/71351
12682         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
12683         graphite_create_new_loop_guard): Remove, fold remaining parts
12684         into caller ...
12685         (translate_isl_ast_node_for): ... here and simplify.
12687 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
12689         PR target/82260
12690         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
12691         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
12692         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
12693         alternative always use QI mode, for -Os imov (=R,R) alternative
12694         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
12695         ignore -Os.
12697 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12698             Jeff Law  <law@redhat.com>
12700         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
12701         (allocate_stack_space): New function, partially extracted from
12702         s390_emit_prologue.
12703         (s390_emit_prologue): Track offset to most recent stack probe.
12704         Code to allocate space moved into allocate_stack_space.
12705         Dump actions when no stack is allocated.
12706         (s390_prologue_plus_offset): New function.
12707         (s390_emit_stack_probe): Likewise.
12709 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
12711         * common.opt (Wa, Wl, Wp, g, gz=): Add
12712         RejectNegative.
12713         (gno-column-info): Remove.
12714         (gcolumn-info): Drop RejectNegative.
12715         (gno-): New prefix.
12716         (gno-record-gcc-switches): Remove.
12717         (grecord-gcc-switches): Drop RejectNegative.
12718         (gno-split-dwarf): Remove.
12719         (gsplit-dwarf): Drop RejectNegative.
12720         (gno-strict-dwarf): Remove.
12721         (gstrict-dwarf): Drop RejectNegative.
12722         * config/darwin.opt (gfull, gused): Add RejectNegative.
12723         * dwarf2out.c (gen_producer_string): Drop
12724         gno-record-gcc-switches handler.
12725         * optc-gen.awk: Add g to prefixes with negative forms.
12726         * opts-common.c (remapping_prefix_p): New.
12727         (find_opt): Check it.
12728         (generate_canonical_option): Test g prefix.
12729         (option_map): Add -gno- mapping.
12730         (add_misspelling_candidates): Check remapping_prefix_p.
12732 2017-09-20  Jeff Law  <law@redhat.com>
12734         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
12735         thinko in stack clash protection support.
12737         * explow.c (compute_stack_clash_protection_loop_data): Use
12738         CONST_INT_P instead of explicit test.  Verify object is a
12739         CONST_INT_P before looking at INTVAL.
12740         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
12741         instead of explicit test.
12743 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
12745         PR target/77687
12746         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
12747         address instead of to r1 and r11.
12749 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
12751         * config.gcc: Support "knm".
12752         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
12753         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12754         PROCESSOR_KNM.
12755         * config/i386/i386.c (m_KNM): Define.
12756         (processor_target_table): Add "knm".
12757         (PTA_KNM): Define.
12758         (ix86_option_override_internal): Add "knm".
12759         (ix86_issue_rate): Add PROCESSOR_KNM.
12760         (ix86_adjust_cost): Ditto.
12761         (ia32_multipass_dfa_lookahead): Ditto.
12762         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
12763         (fold_builtin_cpu): Add M_INTEL_KNM.
12764         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
12765         (processor_type): Add PROCESSOR_KNM.
12766         * config/i386/x86-tune.def: Add m_KNM.
12767         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
12769 2017-09-20  Richard Biener  <rguenther@suse.de>
12771         PR tree-optimization/80213
12772         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
12773         are allowed in empty BBs as well.
12774         (canonicalize_loop_closed_ssa): Also look for other complex
12775         edges.
12776         (scop_detection::get_sese): Include the loop-closed PHI block
12777         in loop SESEs.
12778         (scop_detection::merge_sese): Remove code adding extra blocks.
12779         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
12780         (build_scops): Assert the final returned scop is invalid.
12782 2017-09-20  Richard Biener  <rguenther@suse.de>
12784         PR tree-optimization/82264
12785         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
12786         for GIMPLE_CONDs.
12787         (vn_phi_lookup): Likewise.
12788         (vn_phi_insert): Likewise.
12790 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
12792         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
12793         that fits into uhwi or shwi, add DW_AT_const_value regardless
12794         of early_dwarf without going through RTL, using add_AT_unsigned
12795         or add_AT_int.
12797         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
12798         (DEBUG_LTO_ABBREV_SECTION): Likewise.
12799         (DEBUG_LTO_MACINFO_SECTION): Likewise.
12800         (DEBUG_MACRO_SECTION): Likewise.
12801         (DEBUG_LTO_MACRO_SECTION): Likewise.
12802         (DEBUG_STR_DWO_SECTION): Likewise.
12803         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
12804         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
12805         (DEBUG_LTO_DWO_LINE_SECTION): Define.
12806         (DEBUG_LTO_LINE_STR_SECTION): Define.
12807         (init_sections_and_labels): Initialize debug_line_str_section
12808         variable.  Initialize debug_loc_section for -gdwarf-5 to
12809         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
12811 2017-09-20  Richard Biener  <rguenther@suse.de>
12813         * graphite-sese-to-poly.c (extract_affine): Properly handle
12814         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
12816 2017-09-20  Richard Biener  <rguenther@suse.de>
12818         PR tree-optimization/81373
12819         * graphite-scop-detection.c (build_cross_bb_scalars_def):
12820         Force SESE live-out defs to be handled even if they are
12821         scev_analyzable_p.
12823 2017-09-19  Jeff Law  <law@redhat.com>
12825         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
12826         nothing for stack adjustments with REG_STACK_CHECK.
12827         * sched-deps.c (parse_add_or_inc): Reject insns with
12828         REG_STACK_CHECK from dependency breaking.
12829         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
12830         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
12831         * reg-notes.def (STACK_CHECK): New note.
12833         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
12834         (ix86_expand_prologue): Dump stack clash info as needed.
12835         Call ix86_adjust_stack_and_probe_stack_clash as needed.
12837         * function.c (dump_stack_clash_frame_info): New function.
12838         * function.h (dump_stack_clash_frame_info): Prototype.
12839         (enum stack_clash_probes): New enum.
12841         * config/alpha/alpha.c (alpha_expand_prologue): Also check
12842         flag_stack_clash_protection.
12843         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
12844         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
12845         (arm_frame_pointer_required): Likewise.
12846         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
12847         (ia64_expand_prologue): Likewise.
12848         * config/mips/mips.c (mips_expand_prologue): Likewise.
12849         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
12850         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12851         (sparc_flat_expand_prologue): Likewise.
12852         * config/spu/spu.c (spu_expand_prologue): Likewise.
12854         * explow.c: Include "params.h".
12855         (anti_adjust_stack_and_probe_stack_clash): New function.
12856         (get_stack_check_protect): Likewise.
12857         (compute_stack_clash_protection_loop_data): Likewise.
12858         (emit_stack_clash_protection_loop_start): Likewise.
12859         (emit_stack_clash_protection_loop_end): Likewise.
12860         (allocate_dynamic_stack_space): Use get_stack_check_protect.
12861         Use anti_adjust_stack_and_probe_stack_clash.
12862         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
12863         (emit_stack_clash_protection_loop_start): Likewise.
12864         (emit_stack_clash_protection_loop_end): Likewise.
12865         * rtl.h (get_stack_check_protect): Prototype.
12866         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
12867         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
12868         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
12869         Prototype.
12870         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
12871         Add @hook.
12872         * doc/tm.texi: Rebuilt.
12873         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
12874         get_stack_check_protect.
12875         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
12876         * config/arm/arm.c (arm_expand_prologue): Likewise.
12877         (arm_frame_pointer_required): Likewise.
12878         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12879         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12880         * config/mips/mips.c (mips_expand_prologue): Likewise.
12881         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
12882         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12883         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12884         (sparc_flat_expand_prologue): Likewise.
12886         * common.opt (-fstack-clash-protection): New option.
12887         * flag-types.h (enum stack_check_type): Note difference between
12888         -fstack-check= and -fstack-clash-protection.
12889         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
12890         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
12891         * toplev.c (process_options): Issue warnings/errors for cases
12892         not handled with -fstack-clash-protection.
12893         * doc/invoke.texi (-fstack-clash-protection): Document new option.
12894         (-fstack-check): Note additional problem with -fstack-check=generic.
12895         Note that -fstack-check is primarily for Ada and refer users
12896         to -fstack-clash-protection for stack-clash-protection.
12897         Document new params for stack clash protection.
12899 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
12901         * config/i386/i386.c (ix86_split_long_move): Do not handle
12902         address used for LEA in a special way.
12904 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
12906         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
12908 2017-09-19  Martin Sebor  <msebor@redhat.com>
12910         PR c/81854
12911         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
12912         of incompatible types.
12914 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
12916         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
12917         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
12918         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12919         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
12921 2017-09-19  Richard Biener  <rguenther@suse.de>
12923         PR tree-optimization/82244
12924         * tree-vrp.c (remove_range_assertions): Do not propagate
12925         a constant to abnormals but replace the assert with a copy.
12927 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
12929         PR rtl-optimization/57878
12930         PR rtl-optimization/68988
12931         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
12932         avoidance test involving non_reload_pseudos.  Move frequency test
12933         below the general fragmentation avoidance test.
12935 2017-09-19  Richard Biener  <rguenther@suse.de>
12937         PR tree-optimization/69728
12938         * graphite-sese-to-poly.c (schedule_error): New global.
12939         (add_loop_schedule): Handle empty domain by failing the
12940         schedule.
12941         (build_original_schedule): Handle schedule_error.
12943 2017-09-19  Richard Biener  <rguenther@suse.de>
12945         * graphite-scop-detection.c (scop_detection::can_represent_loop):
12946         Do not iterate to sibling loops but only to siblings of inner
12947         loops.
12949 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
12951         PR target/81613
12952         * config/m68k/m68k.md (moveq feeding equality comparison): Check
12953         that the registers are different.
12955 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
12957         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
12958         to processor_model and "amdfam17h" to arch_names_table.
12959         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
12961 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
12963         PR c/82234
12964         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
12966 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
12967             Alan Hayward  <alan.hayward@arm.com>
12968             David Sherwood  <david.sherwood@arm.com>
12970         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
12971         with a vec_info *.
12972         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
12973         accordingly.
12974         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
12975         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
12976         vect_schedule_slp_instance.
12977         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
12978         Update call to vect_slp_analyze_node_operations.  Simplify return
12979         value.
12980         (vect_slp_analyze_bb_1): Update call accordingly.
12981         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
12982         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
12983         (vect_schedule_slp): Update call accordingly.
12985 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
12986             Alan Hayward  <alan.hayward@arm.com>
12987             David Sherwood  <david.sherwood@arm.com>
12989         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
12990         with types that aren't in fact scalar.
12992 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
12994         * tree-vect-slp.c (vect_record_max_nunits): New function,
12995         split out from...
12996         (vect_build_slp_tree_1): ...here.
12997         (vect_build_slp_tree_2): Call it for phis too.
12999 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13001         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
13002         to vect_get_vec_def_for_operand when getting the mask operand.
13004 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13005             Alan Hayward  <alan.hayward@arm.com>
13006             David Sherwood  <david.sherwood@arm.com>
13008         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
13009         bitstart.
13011 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13012             Alan Hayward  <alan.hayward@arm.com>
13013             David Sherwood  <david.sherwood@arm.com>
13015         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
13016         calculation for vector booleans.
13018 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13019             Alan Hayward  <alan.hayward@arm.com>
13020             David Sherwood  <david.sherwood@arm.com>
13022         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
13023         split out from...
13024         (vect_transform_stmt): ...here.
13025         (vect_analyze_stmt): Use it instead of calling
13026         vectorizable_live_operation directly.
13028 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
13030         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
13031         non-SIMT targets in acc vector loops.
13033 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
13035         * configure.ac: Add arc and check if assembler supports gdwarf2.
13036         * configure: Regenerate.
13038 2017-09-18  Richard Biener  <rguenther@suse.de>
13040         PR tree-optimization/82220
13041         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
13042         epilogue niters from the min_profitable_iters compute.
13044 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
13046         PR target/82145
13047         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
13048         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
13049         (ix86_init_pic_reg): Revert 2017-09-01 changes.
13051 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
13053         PR target/81361
13054         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
13055         switching to a new text section.
13057 2017-09-18  Richard Biener  <rguenther@suse.de>
13059         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
13060         Simplify.
13061         (build_alias_set): Reject aliases with no access function.
13063 2017-09-18  Richard Biener  <rguenther@suse.de>
13065         PR tree-optimization/79622
13066         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
13067         handle PHIs.
13068         (build_cross_bb_scalars_use): Likewise.
13070 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
13072         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
13074 2017-09-18  Alan Modra  <amodra@gmail.com>
13076         PR target/81996
13077         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
13078         stack_pointer_rtx for count 0.  Update comments.  Break up
13079         large rtl expression.
13081 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
13083         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
13084         Increase to 20 bytes.
13085         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
13086         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
13087         or avx version of the stub.
13089 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13091         PR target/82166
13092         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
13093         compute the minimum stack alignment.  Also update preferred stack
13094         boundary for leaf functions.
13096 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
13098         PR tree-optimization/82228
13099         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
13100         of ncopies.
13102 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
13104         * common/config/nds32/nds32-common.c
13105         (nds32_option_optimization_table): Refine formatting.
13106         (nds32_option_optimization_table): Use -fsched-pressure and
13107         -fomit-frame-pointer for specific optimization level.
13109 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
13111         * config/nds32/nds32.c: Refine formatting and comments.
13112         * config/nds32/nds32.h: Likewise.
13113         * config/nds32/nds32.md: Likewise.
13114         * config/nds32/nds32-cost.c: Likewise.
13115         * config/nds32/nds32-isr.c: Likewise.
13116         * config/nds32/nds32-md-auxiliary.c: Likewise.
13117         * config/nds32/nds32-multiple.md: Likewise.
13118         * config/nds32/nds32-predicates.c: Likewise.
13120 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
13121             Jakub Jelinek  <jakub@redhat.com>
13123         Add support for -std=c++2a.
13124         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
13125         or -std=gnu+2a.
13126         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
13128 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
13130         PR target/82066
13131         * doc/extend.texi (Common Function Attributes): Add 
13132         references to ARM, AArch64, and S/390 specific attributes.
13133         (Function Specific Option Pragmas): Add AArch64 and S/390
13134         to list of back ends that support the target pragma.
13136 2017-09-15  Nathan Sidwell  <nathan@acm.org>
13138         * doc/standards.texi: Fix C++17 description.  Update URLs for
13139         C++11 & 14.
13141 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13143         * common.opt (Wcast-align=strict): New warning option.
13144         * doc/invoke.texi: Document -Wcast-align=strict. 
13146 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
13148         * cgraph.h (cgraph_thunk_info): Add comments.
13149         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
13150         assert for VIRTUAL_* arguments stricter.
13152 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
13154         PR tree-optimization/71026
13155         * match.pd: Move RDIV patterns from fold-const.c
13156         * fold-const.c (distribute_real_division): Removed.
13157         (fold_binary_loc): Remove calls to distribute_real_divison.
13159 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13161         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
13162         c++1z and gnu++1z as deprecated.  Change other references to
13163         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
13164         Change -Wc++1z-compat to -Wc++17-compat.
13165         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
13166         * dwarf2out.c (highest_c_language): Handle C++17.
13167         (gen_compile_unit_die): Likewise.
13169 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13171         PR rtl-optimization/82192
13172         * combine.c (make_extraction): Don't look through non-paradoxical
13173         SUBREGs or TRUNCATE if pos + len is or might be bigger than
13174         inner's mode.
13176 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13177             Alan Hayward  <alan.hayward@arm.com>
13178             David Sherwood  <david.sherwood@arm.com>
13180         * target.def (function_arg_offset): New hook.
13181         * targhooks.h (default_function_arg_offset): Declare.
13182         * targhooks.c (default_function_arg_offset): New function.
13183         * function.c (locate_and_pad_parm): Use
13184         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
13185         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
13186         (TARGET_FUNCTION_ARG_OFFSET): ...this.
13187         * doc/tm.texi: Regenerate.
13188         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
13189         * config/spu/spu.c (spu_function_arg_offset): New function.
13190         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
13191         * system.h (FUNCTION_ARG_OFFSET): Poison.
13193 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13194             Alan Hayard  <alan.hayward@arm.com>
13195             David Sherwood  <david.sherwood@arm.com>
13197         * target.def (truly_noop_truncation): New hook.
13198         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
13199         than TRULY_NOOP_TRUNCATION.
13200         * hooks.h (hook_bool_uint_uint_true): Declare.
13201         * hooks.c (hook_bool_uint_uint_true): New function.
13202         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
13203         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
13204         * doc/tm.texi: Regenerate.
13205         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
13206         rather than TRULY_NOOP_TRUNCATION in comments.
13207         (simplify_comparison): Likewise.
13208         (record_truncated_value): Likewise.
13209         * expmed.c (extract_bit_field_1): Likewise.
13210         (extract_split_bit_field): Likewise.
13211         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
13212         instead of TRULY_NOOP_TRUNCATION.
13213         * function.c (assign_parm_setup_block): Likewise.
13214         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
13215         * rtlhooks.c: Include target.h.
13216         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
13217         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
13218         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
13219         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
13220         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
13221         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
13222         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
13223         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
13224         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
13225         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
13226         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
13227         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
13228         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
13229         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
13230         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
13231         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
13232         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
13233         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
13234         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
13235         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
13236         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
13237         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
13238         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
13239         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
13240         * config/mips/mips.c (mips_truly_noop_truncation): New function.
13241         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
13242         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
13243         rather than TRULY_NOOP_TRUNCATION in comments.
13244         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
13245         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
13246         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
13247         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
13248         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
13249         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
13250         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
13251         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
13252         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
13253         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
13254         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
13255         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
13256         rather than TRULY_NOOP_TRUNCATION in comments.
13257         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
13258         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
13259         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
13260         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
13261         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
13262         TRULY_NOOP_TRUNCATION condition.
13263         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
13264         (TRULY_NOOP_TRUNCATION): Delete.
13265         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
13266         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
13267         * config/spu/spu.c (spu_truly_noop_truncation): New function.
13268         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
13269         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
13270         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
13271         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
13272         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
13273         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
13274         rather than TRULY_NOOP_TRUNCATION in comments.
13275         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
13276         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
13277         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
13278         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
13279         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
13280         * system.h (TRULY_NOOP_TRUNCATION): Poison.
13282 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
13284         PR target/67591
13285         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
13286         (*cmp_ior): Likewise.
13287         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
13288         (*ior_scc_scc_cmp): Likewise.
13289         (*and_scc_scc): Likewise.
13290         (*and_scc_scc_cmp): Likewise.
13292 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13293             Alan Hayard  <alan.hayward@arm.com>
13294             David Sherwood  <david.sherwood@arm.com>
13296         * target.def (can_change_mode_class): New hook.
13297         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
13298         (hard_regno_nregs): Likewise.
13299         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
13300         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
13301         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
13302         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
13303         (LOAD_EXTEND_OP): Update accordingly.
13304         * doc/tm.texi: Regenerate.
13305         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
13306         CANNOT_CHANGE_MODE_CLASS.
13307         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
13308         (REG_CAN_CHANGE_MODE_P): ...this new macro.
13309         * combine.c (simplify_set): Update accordingly.
13310         * emit-rtl.c (validate_subreg): Likewise.
13311         * recog.c (general_operand): Likewise.
13312         * regcprop.c (mode_change_ok): Likewise.
13313         * reload1.c (choose_reload_regs): Likewise.
13314         (inherit_piecemeal_p): Likewise.
13315         * rtlanal.c (simplify_subreg_regno): Likewise.
13316         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
13317         instead of CANNOT_CHANGE_MODE_CLASS.
13318         (reload_cse_simplify_operands): Likewise.
13319         * reload.c (push_reload): Use targetm.can_change_mode_class
13320         instead of CANNOT_CHANGE_MODE_CLASS.
13321         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
13322         REG_CANNOT_CHANGE_MODE_P.
13323         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13324         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
13325         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13326         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13327         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13328         (arm_can_change_mode_class): New function.
13329         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
13330         than CANNOT_CHANGE_MODE_CLASS in comments.
13331         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13332         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
13333         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
13334         (ix86_can_change_mode_class): ...this new function, inverting the
13335         sense of the return value.
13336         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13337         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13338         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13339         (ia64_can_change_mode_class): New function.
13340         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13341         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
13342         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
13343         (m32c_can_change_mode_class): ...this new function, inverting the
13344         sense of the return value.
13345         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13346         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13347         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
13348         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
13349         (mips_can_change_mode_class): ...this new function, inverting the
13350         sense of the return value.
13351         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13352         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13353         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13354         (msp430_can_change_mode_class): New function.
13355         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13356         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
13357         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13358         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13359         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13360         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
13361         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13362         (pa_cannot_change_mode_class): Replace with...
13363         (pa_can_change_mode_class): ...this new function, inverting the
13364         sense of the return value.
13365         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
13366         than CANNOT_CHANGE_MODE_CLASS in comments.
13367         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13368         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
13369         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13370         (pdp11_cannot_change_mode_class): Replace with...
13371         (pdp11_can_change_mode_class): ...this new function, inverting the
13372         sense of the return value.
13373         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13374         * config/powerpcspe/powerpcspe-protos.h
13375         (rs6000_cannot_change_mode_class_ptr): Delete.
13376         * config/powerpcspe/powerpcspe.c
13377         (rs6000_cannot_change_mode_class_ptr): Delete.
13378         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13379         (rs6000_option_override_internal): Assign to
13380         targetm.can_change_mode_class instead of
13381         rs6000_cannot_change_mode_class_ptr.
13382         (rs6000_cannot_change_mode_class): Replace with...
13383         (rs6000_can_change_mode_class): ...this new function, inverting the
13384         sense of the return value.
13385         (rs6000_debug_cannot_change_mode_class): Replace with...
13386         (rs6000_debug_can_change_mode_class): ...this new function.
13387         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13388         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
13389         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13390         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13391         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
13392         Delete.
13393         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
13394         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13395         (rs6000_option_override_internal): Assign to
13396         targetm.can_change_mode_class instead of
13397         rs6000_cannot_change_mode_class_ptr.
13398         (rs6000_cannot_change_mode_class): Replace with...
13399         (rs6000_can_change_mode_class): ...this new function, inverting the
13400         sense of the return value.
13401         (rs6000_debug_cannot_change_mode_class): Replace with...
13402         (rs6000_debug_can_change_mode_class): ...this new function.
13403         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13404         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
13405         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
13406         (s390_can_change_mode_class): ...this new function, inverting the
13407         sense of the return value.
13408         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13409         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13410         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
13411         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13412         (sh_cannot_change_mode_class): Replace with...
13413         (sh_can_change_mode_class): ...this new function, inverting the
13414         sense of the return value.
13415         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13416         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13417         (sparc_can_change_mode_class): New function.
13418         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13419         * config/spu/spu.c (spu_can_change_mode_class): New function.
13420         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13421         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13422         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13423         (visium_can_change_mode_class): New function.
13424         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
13426 2017-09-15  Richard Biener  <rguenther@suse.de>
13428         PR tree-optimization/82217
13429         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
13430         but not undefined case.
13432 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13434         PR target/82145
13435         * postreload.c (reload_cse_simplify_operands): Skip
13436         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
13438 2017-09-15  Richard Biener  <rguenther@suse.de>
13440         PR tree-optimization/68823
13441         * graphite-scop-detection.c (build_alias_set): If we have a
13442         possible dependence check whether we can handle them by just
13443         looking at the DRs DR_ACCESS_FNs.
13444         (build_scops): If build_alias_set fails, fail the SCOP.
13446 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13448         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
13449         to support float128 built-in functions that require the ISA 3.0
13450         hardware.
13451         (BU_FLOAT128_3_HW): Likewise.
13452         (SQRTF128): Add support for the IEEE 128-bit square root and fma
13453         built-in functions.
13454         (FMAF128): Likewise.
13455         (FMAQ): Likewise.
13456         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
13457         support for built-in functions that need the ISA 3.0 IEEE 128-bit
13458         floating point instructions.
13459         (rs6000_invalid_builtin): Likewise.
13460         (rs6000_builtin_mask_names): Likewise.
13461         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
13462         (RS6000_BTM_FLOAT128_HW): Likewise.
13463         (RS6000_BTM_COMMON): Likewise.
13464         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
13465         function.
13466         * doc/extend.texi (RS/6000 built-in functions): Document the
13467         IEEE 128-bit floating point square root and fused multiply-add
13468         built-in functions.
13470 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
13472         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
13473         reg (r2) isn't in the set of registers defined in the prologue.
13475 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13476             Alan Hayward  <alan.hayward@arm.com>
13477             David Sherwood  <david.sherwood@arm.com>
13479         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
13480         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
13481         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
13482         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
13483         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
13484         accordingly.
13485         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
13486         max_vectorization_factor.
13487         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
13489 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13490             Alan Hayward  <alan.hayward@arm.com>
13491             David Sherwood  <david.sherwood@arm.com>
13493         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
13494         (vect_worthwhile_without_simd_p): Declare.
13495         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
13496         (vectorizable_reduction): Use it.
13497         * tree-vect-stmts.c (vectorizable_shift): Likewise.
13498         (vectorizable_operation): Likewise.
13500 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13501             Alan Hayward  <alan.hayward@arm.com>
13502             David Sherwood  <david.sherwood@arm.com>
13504         * tree-vectorizer.h (vect_get_num_copies): New function.
13505         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
13506         * tree-vect-loop.c (vectorizable_reduction): Likewise.
13507         (vectorizable_induction): Likewise.
13508         (vectorizable_live_operation): Likewise.
13509         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
13510         (vectorizable_bswap): Likewise.
13511         (vectorizable_call): Likewise.
13512         (vectorizable_conversion): Likewise.
13513         (vectorizable_assignment): Likewise.
13514         (vectorizable_shift): Likewise.
13515         (vectorizable_operation): Likewise.
13516         (vectorizable_store): Likewise.
13517         (vectorizable_load): Likewise.
13518         (vectorizable_condition): Likewise.
13519         (vectorizable_comparison): Likewise.
13520         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
13522 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13523             Alan Hayward  <alan.hayward@arm.com>
13524             David Sherwood  <david.sherwood@arm.com>
13526         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
13527         of vect_init_vector.
13529 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13530             Alan Hayward  <alan.hayward@arm.com>
13531             David Sherwood  <david.sherwood@arm.com>
13533         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
13534         an inline wrapper that provides a location.
13535         (gimple_build_vector): Likewise.
13536         * gimple-fold.c (gimple_build_vector_from_val): New function.
13537         (gimple_build_vector): Likewise.
13538         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
13539         functions to build the initial value.  Always return a gimple value.
13540         (get_initial_defs_for_reduction): Likewise.  Only compute
13541         neutral_vec once.
13542         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
13543         vect_init_vector on the results from get_initial_def(s)_for_reduction.
13544         (vectorizable_induction): Use gimple_build_vector rather than
13545         vect_init_vector.
13547 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13548             Alan Hayward  <alan.hayward@arm.com>
13549             David Sherwood  <david.sherwood@arm.com>
13551         * target.h (vec_perm_indices): New typedef.
13552         (auto_vec_perm_indices): Likewise.
13553         * optabs-query.h: Include target.h
13554         (can_vec_perm_p): Take a vec_perm_indices *.
13555         * optabs-query.c (can_vec_perm_p): Likewise.
13556         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
13557         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
13558         * tree-vect-generic.c (lower_vec_perm): Likewise.
13559         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
13560         (vect_grouped_load_supported): Likewise.
13561         (vect_shift_permute_load_chain): Likewise.
13562         (vect_permute_store_chain): Use auto_vec_perm_indices.
13563         (vect_permute_load_chain): Likewise.
13564         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
13565         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
13566         Update uses of can_vec_perm_p.
13567         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
13568         mode with a number of elements.  Take a vec_perm_indices *.
13569         (vect_create_epilog_for_reduction): Update accordingly.
13570         Use auto_vec_perm_indices.
13571         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
13572         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
13573         (vect_transform_slp_perm_load): Likewise.
13574         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
13575         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
13576         (vect_gen_perm_mask_checked): Likewise.
13577         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
13578         (vect_gen_perm_mask_checked): Likewise.
13579         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
13580         (vectorizable_store): Likewise.
13581         (vectorizable_load): Likewise.
13582         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
13583         (vectorizable_bswap): Likewise.
13585 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13586             Alan Hayward  <alan.hayward@arm.com>
13587             David Sherwood  <david.sherwood@arm.com>
13589         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
13590         * tree.c (build_vector): Likewise.
13591         (build_vector_from_ctor): Update accordingly.
13592         (build_vector_from_val): Likewise.
13593         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
13594         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
13595         * tree-vect-generic.c (add_rshift): Likewise.
13596         (expand_vector_divmod): Likewise.
13597         (optimize_vector_constructor): Likewise.
13598         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13599         (vect_transform_slp_perm_load): Likewise.
13600         (vect_schedule_slp_instance): Likewise.
13601         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
13602         (vectorizable_call): Likewise.
13603         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
13604         * expmed.c (make_tree): Likewise.
13605         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
13606         a vector passed to build_vector.
13607         (fold_convert_const): Likewise.
13608         (exact_inverse): Likewise.
13609         (fold_ternary_loc): Likewise.
13610         (fold_relational_const): Likewise.
13611         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
13612         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
13613         (const_unop): Likewise.  Store the reduction accumulator in a
13614         variable rather than an array.
13615         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
13616         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
13617         the new vector, rather than constructing it after the input arrays.
13618         (native_interpret_vector): Use auto_vec<tree> when building
13619         a vector passed to build_vector.  Add elements in order.
13620         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
13621         auto_vec<tree> when building a vector passed to build_vector.
13622         (vect_create_epilog_for_reduction): Likewise.
13623         (vectorizable_induction): Likewise.
13624         (get_initial_def_for_reduction): Likewise.  Fix indentation of
13625         case statements.
13626         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
13627         to a vec<tree> *.
13628         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
13629         passed to build_vector.
13631 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13632             Alan Hayward  <alan.hayward@arm.com>
13633             David Sherwood  <david.sherwood@arm.com>
13635         * tree-core.h (tree_base::u): Add an "nelts" field.
13636         (tree_vector): Use VECTOR_CST_NELTS as the length.
13637         * tree.c (tree_size): Likewise.
13638         (make_vector): Initialize VECTOR_CST_NELTS.
13639         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
13640         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
13641         TYPE_VECTOR_SUBPARTS.
13642         * expr.c (const_vector_mask_from_tree): Consistently use "units"
13643         as the number of units, setting it from VECTOR_CST_NELTS.
13644         (const_vector_from_tree): Likewise.
13645         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
13646         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
13647         (fold_negate_expr_1): Likewise.
13648         (fold_convert_const): Likewise.
13649         (const_binop): Likewise.  Differentiate the number of output and
13650         input elements.
13651         (const_unop): Likewise.
13652         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
13653         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
13654         in cases that did the opposite.
13656 2017-09-14  Richard Biener  <rguenther@suse.de>
13658         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
13659         to VN_TOP.
13661 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
13663         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
13665 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
13667         PR target/81325
13668         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
13669         if and where to split a bb, except for splitting before debug insn
13670         sequences followed by non-label real insn.  Delete debug insns
13671         in between basic blocks.
13673         * combine.c (make_compound_operation_int): Formatting fixes.
13675         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
13676         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
13677         * config/netbsd.h (LINK_EH_SPEC): Likewise.
13678         * config/sol2.h (LINK_EH_SPEC): Likewise.
13679         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
13680         * config/s390/linux.h (LINK_SPEC): Likewise.
13681         * config/freebsd.h (LINK_EH_SPEC): Likewise.
13682         * config/openbsd.h (LINK_EH_SPEC): Likewise.
13683         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
13684         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
13685         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
13686         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
13687         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
13688         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
13690 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
13692         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
13693         support.
13694         (ENDFILE_LINUX_SPEC): Likewise.
13695         (LINK_EH_SPEC): Likewise.
13696         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
13697         (LINK_OS_LINUX_SPEC32): Likewise.
13698         (LINK_OS_LINUX_SPEC64): Likewise.
13699         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
13700         (LINK_OS_LINUX_SPEC): Likewise.
13702 2017-09-13  Martin Liska  <mliska@suse.cz>
13704         PR middle-end/82154
13705         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
13706         CASE_HIGH is NULL_TREE.
13708 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
13709             Alan Hayward  <alan.hayward@arm.com>
13710             David Sherwood  <david.sherwood@arm.com>
13712         * target.def (secondary_memory_needed): New hook.
13713         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
13714         instead of SECONDARY_MEMORY_NEEDED.
13715         (secondary_memory_needed_mode): Likewise.
13716         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
13717         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
13718         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
13719         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
13720         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
13721         * doc/tm.texi: Regenerate.
13722         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
13723         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
13724         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13725         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
13726         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
13727         * config/i386/i386.c (inline_secondary_memory_needed): Put the
13728         mode argument first and change the reg_class arguments to reg_class_t.
13729         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
13730         Make static.  Update the call to inline_secondary_memory_needed.
13731         (ix86_register_move_cost): Update the call to
13732         inline_secondary_memory_needed.
13733         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13734         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
13735         definition.
13736         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
13737         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
13738         in comment.
13739         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
13740         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
13741         * config/mips/mips.c (mips_secondary_memory_needed): Make static
13742         and match hook interface.  Add comment from mips.h.
13743         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13744         * config/mmix/mmix.md (truncdfsf2): Refer to
13745         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
13746         in comment.
13747         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
13748         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
13749         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13750         (pa_secondary_memory_needed): New function.
13751         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
13752         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
13753         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13754         (pdp11_secondary_memory_needed): Make static and match hook interface.
13755         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
13756         * config/powerpcspe/powerpcspe-protos.h
13757         (rs6000_secondary_memory_needed_ptr): Delete.
13758         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
13759         Delete.
13760         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13761         (rs6000_option_override_internal): Assign to
13762         targetm.secondary_memory_needed rather than
13763         rs6000_secondary_memory_needed_ptr.
13764         (rs6000_secondary_memory_needed): Match hook interface.
13765         (rs6000_debug_secondary_memory_needed): Likewise.
13766         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
13767         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
13768         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
13769         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13770         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
13771         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
13772         Delete.
13773         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
13774         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13775         (rs6000_option_override_internal): Assign to
13776         targetm.secondary_memory_needed rather than
13777         rs6000_secondary_memory_needed_ptr.
13778         (rs6000_secondary_memory_needed): Match hook interface.
13779         (rs6000_debug_secondary_memory_needed): Likewise.
13780         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
13781         * config/s390/s390.c (s390_secondary_memory_needed): New function.
13782         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13783         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
13784         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
13785         (sparc_secondary_memory_needed): New function.
13786         * lra-constraints.c (check_and_process_move): Refer to
13787         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
13788         in comment.
13789         (curr_insn_transform): Likewise.
13790         (process_alt_operands): Use targetm.secondary_memory_needed
13791         instead of TARGET_SECONDARY_MEMORY_NEEDED.
13792         (check_secondary_memory_needed_p): Likewise.
13793         (choose_split_class): Likewise.
13794         * reload.c: Unconditionally include code that was previously
13795         conditional on SECONDARY_MEMORY_NEEDED.
13796         (push_secondary_reload): Use targetm.secondary_memory_needed
13797         instead of TARGET_SECONDARY_MEMORY_NEEDED.
13798         (push_reload): Likewise.
13799         * reload1.c: Unconditionally include code that was previously
13800         conditional on SECONDARY_MEMORY_NEEDED.
13801         (choose_reload_regs): Use targetm.secondary_memory_needed
13802         instead of TARGET_SECONDARY_MEMORY_NEEDED.
13803         (gen_reload): Likewise.
13804         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
13806 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
13807             Alan Hayward  <alan.hayward@arm.com>
13808             David Sherwood  <david.sherwood@arm.com>
13810         * target.def (secondary_memory_needed_mode): New hook:
13811         * targhooks.c (default_secondary_memory_needed_mode): Declare.
13812         * targhooks.h (default_secondary_memory_needed_mode): New function.
13813         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
13814         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
13815         * doc/tm.texi: Regenerate.
13816         * lra-constraints.c (check_and_process_move): Use
13817         targetm.secondary_memory_needed_mode instead of
13818         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
13819         (curr_insn_transform): Likewise.
13820         * reload.c (get_secondary_mem): Likewise.
13821         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
13822         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
13823         function.
13824         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
13825         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
13826         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
13827         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
13828         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
13829         Delete.
13830         * config/powerpcspe/powerpcspe-protos.h
13831         (rs6000_secondary_memory_needed_mode): Delete.
13832         * config/powerpcspe/powerpcspe.c
13833         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
13834         (rs6000_secondary_memory_needed_mode): Make static.
13835         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
13836         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
13837         Delete.
13838         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
13839         Redefine.
13840         (rs6000_secondary_memory_needed_mode): Make static.
13841         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
13842         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
13843         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
13844         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
13845         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
13846         Redefine.
13847         (sparc_secondary_memory_needed_mode): New function.
13848         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
13850 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
13852         * config/aarch64/constraints.md (Umq): New constraint.
13853         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
13854         Change to use Umq.
13855         (mov<mode>): Update condition.
13857 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13859         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
13860         when bitposition is the same.
13862 2017-09-13  Richard Biener  <rguenther@suse.de>
13864         * dwarf2out.c (output_die_symbol): Remove.
13865         (output_die): Do not output a DIEs symbol.
13867 2017-09-13  Richard Biener  <rguenther@suse.de>
13869         PR middle-end/82128
13870         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
13871         default-def to avoid breaking iterator update with the weird
13872         interaction with cgraph_update_edges_for_call_stmt_node.
13874 2017-09-13  Richard Biener  <rguenther@suse.de>
13876         * tree-cfg.c (verify_gimple_assign_binary): Add verification
13877         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
13878         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
13879         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
13881 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
13883         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
13884         Disable pc relative literal load irrespective of
13885         TARGET_FIX_ERR_A53_84341 for default.
13887 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
13889         * config/sparc/sparc.c (output_return): Output the source location of
13890         the insn in the delay slot, if any.
13891         (output_sibcall): Likewise.
13893 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
13895         PR driver/81498
13896         * common.opt (-static-pie): New alias.
13897         (shared): Negate static-pie.
13898         (-no-pie): Update help text.
13899         (-pie): Likewise.
13900         (static-pie): New option.
13901         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
13902         -static-pie support.
13903         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
13904         (LINK_EH_SPEC): Likewise.
13905         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
13906         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
13907         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
13908         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13909         (init_gcc_specs): Likewise.
13910         (init_spec): Likewise.
13911         (display_help): Update help message for -pie.
13912         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
13913         -static-pie.
13915 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
13917         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
13918         (movdi_aarch64): Likewise.
13919         (movti_aarch64): Likewise.
13921 2017-09-12 Simon Wright <simon@pushface.org>
13923         PR target/80204
13924         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
13925         calculation of the minor version, always output as 0.
13927 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
13929         PR target/82112
13930         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
13931         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
13932         on it early, rather than manual conversion late.  For
13933         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
13934         instead of performing manual conversion.
13936 2017-09-12  Carl Love  <cel@us.ibm.com>
13938         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
13939         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
13940         vmulouw, vmulosw.
13941         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
13942         VMULOSW): Add definitions.
13943         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13944         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
13945         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
13946         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
13947         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
13949 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
13951         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
13952         types correctly.
13953         (movti_aarch64): Likewise.
13954         (movdf_aarch64): Likewise.
13955         (movtf_aarch64): Likewise.
13956         (load_pairdi): Likewise.
13957         (store_pairdi): Likewise.
13958         (load_pairdf): Likewise.
13959         (store_pairdf): Likewise.
13960         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
13961         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
13962         (ldr_got_small_<mode>): Likewise.
13963         (ldr_got_small_28k_<mode>): Likewise.
13964         (ldr_got_tiny): Likewise.
13965         * config/aarch64/iterators.md (ldst_sz): New.
13966         (ldpstp_sz): Likewise.
13967         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
13968         to store_16.
13969         (thunderx_load): Split load_8 to load_16.
13970         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
13971         load_8 to load_16.
13972         (thunderx2t99_storepair_basic): Split store_8 to store_16.
13973         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
13974         (xgene1_store_pair): Split store_8 to store_16.
13975         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
13976         (falkor_st_0_st_sd): Split store_8 to store_16.
13978 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
13980         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
13981         and store1/2/3/4 to store_4/8/12/16.
13982         * config/aarch64/aarch64.md: Update for rename.
13983         * config/arm/arm.md: Likewise.: Likewise.
13984         * config/arm/arm.c: Likewise.
13985         * config/arm/thumb1.md: Likewise.
13986         * config/arm/thumb2.md: Likewise.
13987         * config/arm/vfp.md: Likewise.
13988         * config/arm/arm-generic.md: Likewise.
13989         * config/arm/arm1020e.md: Likewise.
13990         * config/arm/arm1026ejs.md: Likewise.
13991         * config/arm/arm1136jfs.md: Likewise.
13992         * config/arm/arm926ejs.md: Likewise.
13993         * config/arm/cortex-a15.md: Likewise.
13994         * config/arm/cortex-a17.md: Likewise.
13995         * config/arm/cortex-a5.md: Likewise.
13996         * config/arm/cortex-a53.md: Likewise.
13997         * config/arm/cortex-a57.md: Likewise.
13998         * config/arm/cortex-a7.md: Likewise.
13999         * config/arm/cortex-a8.md: Likewise.
14000         * config/arm/cortex-a9.md: Likewise.
14001         * config/arm/cortex-m4.md: Likewise.
14002         * config/arm/cortex-m7.md: Likewise.
14003         * config/arm/cortex-r4.md: Likewise.
14004         * config/arm/exynos-m1.md: Likewise.
14005         * config/arm/fa526.md: Likewise.
14006         * config/arm/fa606te.md: Likewise.
14007         * config/arm/fa626te.md: Likewise.
14008         * config/arm/fa726te.md: Likewise.
14009         * config/arm/fmp626.md: Likewise.
14010         * config/arm/iwmmxt.md: Likewise.
14011         * config/arm/ldmstm.md: Likewise.
14012         * config/arm/marvell-pj4.md: Likewise.
14013         * config/arm/xgene1.md: Likewise.
14014         * config/aarch64/thunderx.md: Likewise.
14015         * config/aarch64/thunderx2t99.md: Likewise.
14016         * config/aarch64/falkor.md: Likewise.
14018 2017-09-12  Martin Liska  <mliska@suse.cz>
14020         * attribs.c (private_lookup_attribute): New function.
14021         * attribs.h (private_lookup_attribute): Declared here.
14022         (lookup_attribute): Called from this place.
14024 2017-09-12  Richard Biener  <rguenther@suse.de>
14026         PR tree-optimization/82157
14027         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
14028         stmts with side-effects.
14030 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14031             Alan Hayward  <alan.hayward@arm.com>
14032             David Sherwood <david.sherwood@arm.com>
14034         * target.def (hard_regno_nregs): New hook.
14035         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
14036         * targhooks.h (default_hard_regno_nregs): Declare.
14037         * targhooks.c (default_hard_regno_nregs): New function.
14038         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
14039         (TARGET_HARD_REGNO_NREGS): ...this hook.
14040         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
14041         (CLASS_MAX_NREGS): Likewise.
14042         * doc/tm.texi: Regenerate.
14043         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
14044         instead of HARD_REGNO_NREGS.
14045         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
14046         HARD_REGNO_NREGS in the comment.
14047         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
14048         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
14049         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
14050         Return an unsigned int.
14051         (TARGET_HARD_REGNO_NREGS): Redefine.
14052         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
14053         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
14054         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
14055         (arc_hard_regno_nregs): New function.
14056         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
14057         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
14058         (arm_hard_regno_nregs): New function.
14059         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
14060         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
14061         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
14062         (TARGET_HARD_REGNO_NREGS): Redefine.
14063         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
14064         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
14065         (HARD_REGNO_NREGS): Delete.
14066         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
14067         (cr16_hard_regno_nregs): New function.
14068         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
14069         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
14070         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
14071         (cris_hard_regno_nregs): New function.
14072         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
14073         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
14074         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
14075         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
14076         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
14077         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
14078         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
14079         (frv_hard_regno_nregs): Make static.  Take and return an
14080         unsigned int.
14081         (frv_class_max_nregs): Remove outdated copy of documentation.
14082         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
14083         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
14084         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
14085         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
14086         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
14087         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
14088         (TARGET_HARD_REGNO_NREGS): Redefine.
14089         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
14090         (CLASS_MAX_NREGS): Update comment.
14091         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
14092         (ia64_hard_regno_nregs): New function.
14093         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
14094         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
14095         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
14096         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
14097         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
14098         an unsigned int.
14099         (m32c_hard_regno_nregs): Likewise.  Make static.
14100         (TARGET_HARD_REGNO_NREGS): Redefine.
14101         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
14102         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
14103         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
14104         (m68k_hard_regno_nregs): New function.
14105         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
14106         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
14107         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
14108         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
14109         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
14110         Take and return an unsigned int.
14111         (TARGET_HARD_REGNO_NREGS): Redefine.
14112         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
14113         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
14114         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
14115         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
14116         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
14117         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
14118         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
14119         (msp430_hard_regno_nregs): Make static.  Take and return an
14120         unsigned int.
14121         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
14122         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
14123         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
14124         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
14125         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
14126         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
14127         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
14128         (TARGET_HARD_REGNO_NREGS): Redefine.
14129         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
14130         (PA_HARD_REGNO_NREGS): ...this.
14131         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
14132         (PA_HARD_REGNO_NREGS): ...this.
14133         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
14134         (pa_hard_regno_nregs): New function.
14135         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
14136         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
14137         (pdp11_hard_regno_nregs): New function.
14138         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
14139         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
14140         (rs6000_hard_regno_nregs_hook): New function.
14141         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
14142         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
14143         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
14144         Take and return an unsigned int.  Move earlier in file.
14145         (TARGET_HARD_REGNO_NREGS): Redefine.
14146         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
14147         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
14148         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
14149         (rl78_hard_regno_nregs): Make static.  Take and return an
14150         unsigned int.
14151         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
14152         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
14153         (rs6000_hard_regno_nregs_hook): New function.
14154         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
14155         * config/rx/rx.c (rx_hard_regno_nregs): New function.
14156         (TARGET_HARD_REGNO_NREGS): Redefine.
14157         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
14158         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
14159         instead of HARD_REGNO_NREGS.
14160         (s390_hard_regno_nregs): New function.
14161         (s390_hard_regno_mode_ok): Add comment from s390.h.
14162         (TARGET_HARD_REGNO_NREGS): Redefine.
14163         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
14164         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
14165         (sh_hard_regno_nregs): New function.
14166         (sh_pass_in_reg_p): Use it.
14167         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
14168         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
14169         (sparc_hard_regno_nregs): New function.
14170         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
14171         * config/spu/spu.c (spu_hard_regno_nregs): New function.
14172         (spu_function_arg_advance): Use it, supplying a valid register number.
14173         (TARGET_HARD_REGNO_NREGS): Redefine.
14174         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
14175         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
14176         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
14177         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
14178         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
14179         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
14180         (CLASS_MAX_NREGS): Remove copy of old documentation.
14181         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
14182         (visium_hard_regno_nregs): New function.
14183         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
14184         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
14185         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
14186         xtensa_hard_regno_nregs): New function.
14187         * system.h (HARD_REGNO_NREGS): Poison.
14189 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14191         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
14192         hard_regno_nregs instead of HARD_REGNO_NREGS.
14193         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
14194         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
14195         (c6x_expand_epilogue): Likewise.
14196         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
14197         (frv_read_iacc_argument): Likewise.
14198         * config/sh/sh.c: Include regs.h.
14199         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
14200         (regs_used): Likewise.
14201         (output_stack_adjust): Likewise.
14202         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
14203         * expmed.c: Include regs.h.
14204         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
14205         * ree.c: Include regs.h.
14206         (combine_reaching_defs): Use hard_regno_nregs instead of
14207         HARD_REGNO_NREGS.
14208         (add_removable_extension): Likewise.
14210 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14212         * regs.h (hard_regno_nregs): Turn into a function.
14213         (end_hard_regno): Update accordingly.
14214         * caller-save.c (setup_save_areas): Likewise.
14215         (save_call_clobbered_regs): Likewise.
14216         (replace_reg_with_saved_mem): Likewise.
14217         (insert_restore): Likewise.
14218         (insert_save): Likewise.
14219         * combine.c (can_change_dest_mode): Likewise.
14220         (move_deaths): Likewise.
14221         (distribute_notes): Likewise.
14222         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
14223         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
14224         (rs6000_split_multireg_move): Likewise.
14225         (rs6000_register_move_cost): Likewise.
14226         (rs6000_memory_move_cost): Likewise.
14227         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
14228         (rs6000_split_multireg_move): Likewise.
14229         (rs6000_register_move_cost): Likewise.
14230         (rs6000_memory_move_cost): Likewise.
14231         * cselib.c (cselib_reset_table): Likewise.
14232         (cselib_lookup_1): Likewise.
14233         * emit-rtl.c (set_mode_and_regno): Likewise.
14234         * function.c (aggregate_value_p): Likewise.
14235         * ira-color.c (setup_profitable_hard_regs): Likewise.
14236         (check_hard_reg_p): Likewise.
14237         (calculate_saved_nregs): Likewise.
14238         (assign_hard_reg): Likewise.
14239         (improve_allocation): Likewise.
14240         (calculate_spill_cost): Likewise.
14241         * ira-emit.c (modify_move_list): Likewise.
14242         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
14243         (ira_hard_reg_in_set_p): Likewise.
14244         * ira.c (setup_reg_mode_hard_regset): Likewise.
14245         (clarify_prohibited_class_mode_regs): Likewise.
14246         (check_allocation): Likewise.
14247         * lra-assigns.c (find_hard_regno_for_1): Likewise.
14248         (lra_setup_reg_renumber): Likewise.
14249         (setup_try_hard_regno_pseudos): Likewise.
14250         (spill_for): Likewise.
14251         (assign_hard_regno): Likewise.
14252         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
14253         * lra-constraints.c (in_class_p): Likewise.
14254         (lra_constraint_offset): Likewise.
14255         (simplify_operand_subreg): Likewise.
14256         (lra_constraints): Likewise.
14257         (split_reg): Likewise.
14258         (split_if_necessary): Likewise.
14259         (invariant_p): Likewise.
14260         (inherit_in_ebb): Likewise.
14261         * lra-lives.c (process_bb_lives): Likewise.
14262         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
14263         (get_hard_regs): Likewise.
14264         (do_remat): Likewise.
14265         * lra-spills.c (assign_spill_hard_regs): Likewise.
14266         * mode-switching.c (create_pre_exit): Likewise.
14267         * postreload.c (reload_combine_recognize_pattern): Likewise.
14268         * recog.c (peep2_find_free_register): Likewise.
14269         * regcprop.c (kill_value_regno): Likewise.
14270         (set_value_regno): Likewise.
14271         (copy_value): Likewise.
14272         (maybe_mode_change): Likewise.
14273         (find_oldest_value_reg): Likewise.
14274         (copyprop_hardreg_forward_1): Likewise.
14275         * regrename.c (check_new_reg_p): Likewise.
14276         (regrename_do_replace): Likewise.
14277         * reload.c (push_reload): Likewise.
14278         (combine_reloads): Likewise.
14279         (find_dummy_reload): Likewise.
14280         (operands_match_p): Likewise.
14281         (find_reloads): Likewise.
14282         (find_equiv_reg): Likewise.
14283         (reload_adjust_reg_for_mode): Likewise.
14284         * reload1.c (count_pseudo): Likewise.
14285         (count_spilled_pseudo): Likewise.
14286         (find_reg): Likewise.
14287         (clear_reload_reg_in_use): Likewise.
14288         (free_for_value_p): Likewise.
14289         (allocate_reload_reg): Likewise.
14290         (choose_reload_regs): Likewise.
14291         (reload_adjust_reg_for_temp): Likewise.
14292         (emit_reload_insns): Likewise.
14293         (delete_output_reload): Likewise.
14294         * rtlanal.c (subreg_get_info): Likewise.
14295         * sched-deps.c (sched_analyze_reg): Likewise.
14296         * sel-sched.c (init_regs_for_mode): Likewise.
14297         (mark_unavailable_hard_regs): Likewise.
14298         (choose_best_reg_1): Likewise.
14299         (verify_target_availability): Likewise.
14300         * valtrack.c (dead_debug_insert_temp): Likewise.
14301         * var-tracking.c (track_loc_p): Likewise.
14302         (emit_note_insn_var_location): Likewise.
14303         * varasm.c (make_decl_rtl): Likewise.
14304         * reginfo.c (choose_hard_reg_mode): Likewise.
14305         (init_reg_modes_target): Refer directly to
14306         this_target_regs->x_hard_regno_nregs.
14308 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14310         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
14311         instead of hard_regno_nregs.
14313 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14315         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
14316         end_hard_regno instead of hard_regno_nregs.
14317         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
14318         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
14319         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
14320         * ira-color.c (improve_allocation): Likewise.
14321         * lra-assigns.c (find_hard_regno_for_1): Likewise.
14322         * lra-lives.c (mark_regno_live): Likewise.
14323         (mark_regno_dead): Likewise.
14324         * lra-remat.c (operand_to_remat): Likewise.
14325         * lra.c (collect_non_operand_hard_regs): Likewise.
14326         * postreload.c (reload_combine_note_store): Likewise.
14327         (move2add_valid_value_p): Likewise.
14328         * reload.c (regno_clobbered_p): Likewise.
14330 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14332         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
14333         hard_regno_nregs.
14334         * config/v850/v850.c (v850_reorg): Likewise.
14335         * reload.c (refers_to_regno_for_reload_p): Likewise.
14336         (find_equiv_reg): Likewise.
14337         * reload1.c (reload_reg_reaches_end_p): Likewise.
14339 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14341         * caller-save.c (add_used_regs): Use REG_NREGS instead of
14342         hard_regno_nregs.
14343         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
14344         * config/arm/arm.c (output_move_neon): Likewise.
14345         (arm_attr_length_move_neon): Likewise.
14346         (neon_split_vcombine): Likewise.
14347         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
14348         (c6x_mark_reg_written): Likewise.
14349         (c6x_dwarf_register_span): Likewise.
14350         * config/i386/i386.c (ix86_save_reg): Likewise.
14351         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
14352         (rws_access_reg): Likewise.
14353         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
14354         * mode-switching.c (create_pre_exit): Likewise.
14355         * ree.c (combine_reaching_defs): Likewise.
14356         (add_removable_extension): Likewise.
14357         * regcprop.c (find_oldest_value_reg): Likewise.
14358         (copyprop_hardreg_forward_1): Likewise.
14359         * reload.c (reload_inner_reg_of_subreg): Likewise.
14360         (push_reload): Likewise.
14361         (combine_reloads): Likewise.
14362         (find_dummy_reload): Likewise.
14363         (reload_adjust_reg_for_mode): Likewise.
14364         * reload1.c (find_reload_regs): Likewise.
14365         (forget_old_reloads_1): Likewise.
14366         (reload_reg_free_for_value_p): Likewise.
14367         (reload_adjust_reg_for_temp): Likewise.
14368         (emit_reload_insns): Likewise.
14369         (delete_output_reload): Likewise.
14370         * sel-sched.c (choose_best_reg_1): Likewise.
14371         (choose_best_pseudo_reg): Likewise.
14373 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14374             Alan Hayward  <alan.hayward@arm.com>
14375             David Sherwood <david.sherwood@arm.com>
14377         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
14378         * target.def (slow_unaligned_access): New hook.
14379         * targhooks.h (default_slow_unaligned_access): Declare.
14380         * targhooks.c (default_slow_unaligned_access): New function.
14381         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
14382         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
14383         * doc/tm.texi: Regenerate.
14384         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
14385         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
14386         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
14387         definition.
14388         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
14389         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
14390         Redefine.
14391         (rs6000_slow_unaligned_access): New function.
14392         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
14393         (expand_block_compare): Likewise.
14394         (expand_strn_compare): Likewise.
14395         (rs6000_rtx_costs): Likewise.
14396         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
14397         (riscv_slow_unaligned_access): Likewise.
14398         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
14399         (riscv_slow_unaligned_access_p): ...this and make static.
14400         (riscv_option_override): Update accordingly.
14401         (riscv_slow_unaligned_access): New function.
14402         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
14403         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
14404         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
14405         (rs6000_slow_unaligned_access): New function.
14406         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
14407         (rs6000_rtx_costs): Likewise.
14408         * config/rs6000/rs6000-string.c (expand_block_compare)
14409         (expand_strn_compare): Use targetm.slow_unaligned_access instead
14410         of SLOW_UNALIGNED_ACCESS.
14411         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
14412         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
14413         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
14414         of SLOW_UNALIGNED_ACCESS.
14415         * expmed.c (simple_mem_bitfield_p): Likewise.
14416         * expr.c (alignment_for_piecewise_move): Likewise.
14417         (emit_group_load_1): Likewise.
14418         (emit_group_store): Likewise.
14419         (copy_blkmode_from_reg): Likewise.
14420         (emit_push_insn): Likewise.
14421         (expand_assignment): Likewise.
14422         (store_field): Likewise.
14423         (expand_expr_real_1): Likewise.
14424         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
14425         * lra-constraints.c (simplify_operand_subreg): Likewise.
14426         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
14427         * gimple-ssa-store-merging.c: Likewise in block comment at start
14428         of file.
14429         * tree-ssa-strlen.c: Include target.h.
14430         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
14431         of SLOW_UNALIGNED_ACCESS.
14432         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
14434 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14436         PR rtl-optimization/82185
14437         * expmed.c (emit_store_flag_int): Only test tem if it has been
14438         initialized.
14440 2017-09-12  Richard Biener  <rguenther@suse.de>
14442         PR middle-end/82149
14443         * match.pd ((FTYPE) N CMP CST): Fix typo.
14445 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
14447         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
14448         attribute.
14449         (mips_near_type_p): Add 'short_call' attribute as a synonym
14450         for 'near'.
14451         * doc/extend.texi (short_call): Document new function attribute.
14453 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
14455         PR target/82112
14456         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
14457         assertion check that in the condition.
14458         (get_atomic_generic_size): Likewise.  Before testing if parameter
14459         has pointer type, if it has array type, call for C++
14460         default_conversion to perform array-to-pointer conversion.
14462 2017-09-12  Richard Biener  <rguenther@suse.de>
14464         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
14465         for operations we cannot scalarize.
14467 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
14469         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
14470         vectors heap vectors.  Clean up comments.
14471         Make visited_bbs a reference.
14472         (profitable_jump_thread_path): Make GC
14473         vectors heap vectors.  Clean up comments.
14474         Misc cleanups.
14475         (convert_and_register_jump_thread_path): Make GC vectors heap
14476         vectors.
14477         (check_subpath_and_update_thread_path): Same.  Clean up comments.
14478         Make visited_bbs a reference.
14479         (handle_phi): Abstract common code to to
14480         register_jump_thread_path_if_profitable.
14481         Rename VAR_BB to DEF_BB.
14482         Update comments.
14483         Make GC vectors heap vectors.
14484         Make visited_bbs a reference.
14485         (handle_assignment): Same.
14486         (register_jump_thread_path_if_profitable): New.
14487         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
14488         DEF_BB.
14489         Make GC vectors heap vectors.  Clean up comments.
14490         Make visited_bbs a reference.
14491         (find_jump_threads_backwards): Make visited_bbs live in the stack.
14492         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
14493         comment.
14495 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
14497         PR target/82181
14498         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
14499         words of E_DImode object are reachable by xtensa_uimm8x4 access.
14501 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
14503         Revert r251800 and r251799.
14505 2017-09-11  Martin Jambor  <mjambor@suse.cz>
14507         PR hsa/82119
14508         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
14509         arguments in advance.
14510         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
14511         use it to find predecessor edges.
14512         (naive_outof_ssa): Collect vector of predecessors.
14514 2017-09-08  Jason Merrill  <jason@redhat.com>
14516         PR c++/70029 - ICE with ref-qualifier and -flto
14517         * langhooks.h (struct lang_hooks_for_types): Add
14518         copy_lang_qualifiers.
14519         * attribs.c (build_type_attribute_qual_variant): Use it.
14520         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
14521         NULL.
14522         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
14523         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
14525 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
14527         PR target/81988
14528         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
14529         (*mulsi3_sp64): New instruction.
14530         (mulsi3): New expander.
14532 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
14534         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
14536 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14538         * sancov.c: Include memmodel.h.
14540 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
14542         PR target/80897
14543         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
14544         large offsets.
14546 2017-09-07  Carl Love  <cel@us.ibm.com>
14548         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
14549         the sldi instruction.
14551 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
14553         * sancov.c: Include tm_p.h.
14555 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
14557         PR target/81979
14558         * output.h (switch_to_other_text_partition): New declaration.
14559         * varasm.c (switch_to_other_text_partition): New function.
14560         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
14561         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
14562         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
14563         to the other text partition before emitting LCL label and switch back
14564         after emitting the word after it.
14566 2017-09-07  Richard Biener  <rguenther@suse.de>
14568         * passes.def (pass_split_crit_edges): Remove instance before PRE.
14569         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
14570         critical edges here, after loop init.
14571         (pass_data_pre): Remove PROP_no_crit_edges flags.
14572         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
14573         for valueization of call args to avoid leaking VN_TOP.
14574         (visit_use): Assert we do not visit default defs.
14575         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
14576         Use error_mark_node to more easily detect leaking VN_TOP.
14577         All default-defs are varying, not VN_TOP.  Mark them visited.
14578         (run_scc_vn): Make code match comment.
14580 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
14582         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
14583         OPTION_MASK_FLOAT128_KEYWORD.
14584         (POWERPC_MASKS): Likewise.
14585         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
14586         support for the -mfloat128-type option, and make -mfloat128
14587         default on PowerPC Linux systems.  Define or undefine
14588         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
14589         Define __float128 to be __ieee128 if IEEE 128-bit support is
14590         enabled, or undefine it.
14591         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
14592         Delete defining __FLOAT128_TYPE__.
14593         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
14594         -mfloat128-type option and make -mfloat128 default on PowerPC
14595         Linux systems.
14596         (TARGET_FLOAT128_TYPE): Likewise.
14597         (-mfloat128-type): Likewise.
14598         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14599         Delete the -mfloat128-type option and make -mfloat128 default on
14600         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
14601         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
14602         128-bit floating point is enabled.  Change tests from using
14603         -mfloat128-type to -mfloat128.
14604         (rs6000_mangle_type): Use the correct mangling for the __float128
14605         type even if normal long double is restricted to 64-bits.
14606         (floatn_mode): Enable the _Float128 type by default on VSX Linux
14607         systems.
14608         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
14609         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
14610         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
14611         -mfloat128-type.
14612         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
14613         documentation for -mfloat128.
14615 2017-09-06  Olivier Hainque  <hainque@adacore.com>
14617         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
14619 2017-09-06  Wish Wu  <wishwu007@gmail.com>
14620             Jakub Jelinek  <jakub@redhat.com>
14622         * asan.c (initialize_sanitizer_builtins): Add
14623         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
14624         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
14625         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
14626         BT_FN_VOID_UINT64_PTR variables.
14627         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
14628         (BT_FN_VOID_UINT16_UINT16): Likewise.
14629         (BT_FN_VOID_UINT32_UINT32): Likewise.
14630         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
14631         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
14632         (BT_FN_VOID_UINT64_PTR): Likewise.
14633         * common.opt (flag_sanitize_coverage): New variable.
14634         (fsanitize-coverage=trace-pc): Remove.
14635         (fsanitize-coverage=): Add.
14636         * flag-types.h (enum sanitize_coverage_code): New enum.
14637         * fold-const.c (fold_range_test): Disable non-short-circuit
14638         optimization if flag_sanitize_coverage.
14639         (fold_truth_andor): Likewise.
14640         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
14641         * opts.c (COVERAGE_SANITIZER_OPT): Define.
14642         (coverage_sanitizer_opts): New array.
14643         (get_closest_sanitizer_option): Add OPTS argument, handle also
14644         OPT_fsanitize_coverage_.
14645         (parse_sanitizer_options): Adjusted to also handle
14646         OPT_fsanitize_coverage_.
14647         (common_handle_option): Add OPT_fsanitize_coverage_.
14648         * sancov.c (instrument_comparison, instrument_switch): New function.
14649         (sancov_pass): Add trace-cmp support.
14650         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
14651         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
14652         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
14653         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
14654         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
14655         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
14656         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
14657         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
14658         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
14659         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
14661 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
14663         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
14664         error.  Only quit immediately if parsing is complete.
14665         (BEGIN): Initialize fatal_err and parse_done.
14666         (begin fpu, end fpu): Check number of arguments.
14667         (begin arch, end arch): Likewise.
14668         (begin cpu, end cpu): Likewise.
14669         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
14670         (optalias): Likewise.
14672 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
14674         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
14675         * config/arm/arm-isa.h: Delete.  Move definitions to ...
14676         * arm-cpus.in: ... here.  Use new feature and fgroup values.
14677         * config/arm/arm.c (arm_option_override): Use lower case for feature
14678         bit names.
14679         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
14680         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
14681         * config/arm/parsecpu.awk (END): Add new command 'isa'.
14682         (isa_pfx): Delete.
14683         (print_isa_bits_for): New function.
14684         (gen_isa): New function.
14685         (gen_comm_data): Use print_isa_bits_for.
14686         (define feature): New keyword.
14687         (define fgroup): New keyword.
14688         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
14689         (arm-isa.h): Add rule to generate file.
14690         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
14691         case for feature bit names.
14693 2017-09-06  Richard Biener  <rguenther@suse.de>
14695         * tree-ssa-pre.c (NECESSARY): Remove.
14696         (create_expression_by_pieces): Do not touch pass-local flags.
14697         (insert_into_preds_of_block): Likewise.
14698         (do_pre_regular_insertion): Likewise.
14699         (eliminate_insert): Likewise.
14700         (eliminate_dom_walker::before_dom_children): Likewise.
14701         (fini_eliminate): Do not look at inserted_exprs.
14702         (mark_operand_necessary): Remove.
14703         (remove_dead_inserted_code): Replace with simple work-list
14704         algorithm based on inserted_exprs and SSA uses.
14705         (pass_pre::execute): Re-order fini_eliminate and
14706         remove_dead_inserted_code.
14708 2017-09-06  Olivier Hainque  <hainque@adacore.com>
14710         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
14711         for VxWorks 7.  Adjust surrounding comments.
14713 2017-09-06  Richard Biener  <rguenther@suse.de>
14715         * gimple-ssa-strength-reduction.c
14716         (find_candidates_dom_walker::before_dom_children): Also allow
14717         pointer types.
14719 2017-09-06  Richard Biener  <rguenther@suse.de>
14721         PR tree-optimization/82108
14722         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
14723         for gap in the non-permutation SLP case.
14725 2017-09-06  Martin Jambor  <mjambor@suse.cz>
14727         PR tree-optimization/82078
14728         * tree-sra.c (sort_and_splice_var_accesses): Move call to
14729         add_access_to_work_queue...
14730         (build_accesses_from_assign): ...here.
14731         (propagate_all_subaccesses): Make sure racc is the group
14732         representative, if there is one.
14734 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
14736         PR middle-end/82095
14737         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
14738         NULL DECL_INITIAL.
14740 2017-09-06  Richard Biener  <rguenther@suse.de>
14742         * gimple-ssa-strength-reduction.c
14743         (find_candidates_dom_walker::before_doom_children): Use a
14744         type and not a mode check.
14746 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14748         PR target/77308
14749         * config/arm/predicates.md (arm_general_adddi_operand): Create new
14750         non-vfp predicate.
14751         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
14753 2017-09-05  Jeff Law  <law@redhat.com>
14755         PR tree-optimization/64910
14756         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
14757         cases where we have 3 or more operands.
14759 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
14761         PR middle-end/81768
14762         * omp-low.c (lower_omp_for): Recompute tree invariant if
14763         gimple_omp_for_initial/final is ADDR_EXPR.
14765         PR middle-end/81768
14766         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
14767         into gimple val before gimplification fo the COND_EXPR.
14769 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
14771         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
14772         REGION_COPY argument.
14773         (thread_through_all_blocks): Remove unused argument to
14774         duplicate_thread_path.
14776 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14777             Alan Hayward  <alan.hayward@arm.com>
14778             David Sherwood  <david.sherwood@arm.com>
14780         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
14781         Take a scalar_mode rather than a machine_mode.
14782         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14783         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
14784         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14785         (aarch64_gen_adjusted_ldpstp): Likewise.
14786         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
14788 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14789             Alan Hayward  <alan.hayward@arm.com>
14790             David Sherwood  <david.sherwood@arm.com>
14792         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
14793         Take a scalar_int_mode instead of a machine_mode.
14794         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
14795         (aarch64_output_scalar_simd_mov_immediate): Likewise.
14796         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
14797         (aarch64_simd_attr_length_rglist): Delete.
14798         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
14799         a scalar_int_mode instead of a machine_mode.
14800         (aarch64_add_offset): Likewise.
14801         (aarch64_internal_mov_immediate): Likewise
14802         (aarch64_add_constant_internal): Likewise.
14803         (aarch64_add_constant): Likewise.
14804         (aarch64_movw_imm): Likewise.
14805         (aarch64_rtx_arith_op_extract_p): Likewise.
14806         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
14807         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
14808         Remove assert that the mode isn't a vector.
14809         (aarch64_output_scalar_simd_mov_immediate): Likewise.
14810         (aarch64_expand_mov_immediate): Update calls after above changes.
14811         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
14812         (aarch64_and_bitmask_imm): Check for scalar integer modes.
14813         (aarch64_move_imm): Likewise.
14814         (aarch64_can_const_movi_rtx_p): Likewise.
14815         (aarch64_strip_extend): Likewise.
14816         (aarch64_extr_rtx_p): Likewise.
14817         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
14818         a CONST_INT when the mode parameter is VOIDmode.
14819         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
14821 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14823         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
14824         * stor-layout.c (bitwise_mode_for_mode): Likewise.
14825         (bitwise_type_for_mode): Update accordingly.
14827 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14829         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
14830         * stor-layout.c (mode_for_size_tree): Likewise.
14831         (mode_for_array): Update accordingly.
14832         (layout_decl): Likewise.
14833         (compute_record_mode): Likewise.  Only set the mode once.
14835 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14837         * target.def (get_mask_mode): Change return type to opt_mode.
14838         Expand commentary.
14839         * doc/tm.texi: Regenerate.
14840         * targhooks.h (default_get_mask_mode): Return an opt_mode.
14841         * targhooks.c (default_get_mask_mode): Likewise.
14842         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
14843         * optabs-query.c (can_vec_mask_load_store_p): Update use of
14844         targetm.get_mask_mode.
14845         * tree.c (build_truth_vector_type): Likewise.
14847 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14849         * machmode.h (mode_for_vector): Return an opt_mode.
14850         * stor-layout.c (mode_for_vector): Likewise.
14851         (mode_for_int_vector): Update accordingly.
14852         (layout_type): Likewise.
14853         * config/i386/i386.c (emit_memmov): Likewise.
14854         (ix86_expand_set_or_movmem): Likewise.
14855         (ix86_expand_vector_init): Likewise.
14856         (ix86_get_mask_mode): Likewise.
14857         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
14858         Likewise.
14859         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
14860         * expmed.c (extract_bit_field_1): Likewise.
14861         * expr.c (expand_expr_real_2): Likewise.
14862         * optabs-query.c (can_vec_perm_p): Likewise.
14863         (can_vec_mask_load_store_p): Likewise.
14864         * optabs.c (expand_vec_perm): Likewise.
14865         * targhooks.c (default_get_mask_mode): Likewise.
14866         * tree-vect-stmts.c (vectorizable_store): Likewise.
14867         (vectorizable_load): Likewise.
14868         (get_vectype_for_scalar_type_and_size): Likewise.
14870 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14872         * machmode.h (mode_for_int_vector): New function.
14873         * stor-layout.c (mode_for_int_vector): Likewise.
14874         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
14875         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
14876         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
14877         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
14878         (s390_expand_vcond): Likewise.
14880 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14882         * machmode.h (opt_machine_mode): New type.
14883         (opt_mode<T>): Allow construction from anything that can be
14884         converted to a T.
14885         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
14886         (mode_for_size): Return an opt_machine_mode.
14887         * stor-layout.c (mode_for_size): Likewise.
14888         (mode_for_size_tree): Update call accordingly.
14889         (bitwise_mode_for_mode): Likewise.
14890         (make_fract_type): Likewise.
14891         (make_accum_type): Likewise.
14892         * caller-save.c (replace_reg_with_saved_mem): Update call
14893         accordingly.
14894         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
14895         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
14896         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
14897         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
14898         * expmed.c (extract_bit_field_1): Likewise.
14899         * reload.c (get_secondary_mem): Likewise.
14900         * varasm.c (assemble_integer): Likewise.
14901         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
14902         early-out.
14904 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14906         * machmode.h (decimal_float_mode_for_size): New function.
14907         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
14908         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
14909         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
14910         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
14911         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
14912         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
14914 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14916         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
14917         (get_builtin_sync_mode): Likewise.
14918         (expand_ifn_atomic_compare_exchange): Likewise.
14919         (expand_builtin_atomic_clear): Likewise.
14920         (expand_builtin_atomic_test_and_set): Likewise.
14921         (fold_builtin_atomic_always_lock_free): Likewise.
14922         * calls.c (compute_argument_addresses): Likewise.
14923         (emit_library_call_value_1): Likewise.
14924         (store_one_arg): Likewise.
14925         * combine.c (combine_instructions): Likewise.
14926         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
14927         * config/arm/arm.c (arm_function_value): Likewise.
14928         (aapcs_allocate_return_reg): Likewise.
14929         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
14930         * config/i386/i386.c (construct_container): Likewise.
14931         (ix86_gimplify_va_arg): Likewise.
14932         (ix86_expand_sse_cmp): Likewise.
14933         (emit_memmov): Likewise.
14934         (emit_memset): Likewise.
14935         (expand_small_movmem_or_setmem): Likewise.
14936         (ix86_expand_pextr): Likewise.
14937         (ix86_expand_pinsr): Likewise.
14938         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
14939         * config/microblaze/microblaze.c (microblaze_block_move_straight):
14940         Likewise.
14941         * config/mips/mips.c (mips_function_value_1) Likewise.
14942         (mips_block_move_straight): Likewise.
14943         (mips_expand_ins_as_unaligned_store): Likewise.
14944         * config/powerpcspe/powerpcspe.c
14945         (rs6000_darwin64_record_arg_advance_flush): Likewise.
14946         (rs6000_darwin64_record_arg_flush): Likewise.
14947         * config/rs6000/rs6000.c
14948         (rs6000_darwin64_record_arg_advance_flush): Likewise.
14949         (rs6000_darwin64_record_arg_flush): Likewise.
14950         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
14951         (sparc_function_value_1): Likewise.
14952         * config/spu/spu.c (adjust_operand): Likewise.
14953         (spu_emit_branch_or_set): Likewise.
14954         (arith_immediate_p): Likewise.
14955         * emit-rtl.c (gen_lowpart_common): Likewise.
14956         * expr.c (expand_expr_real_1): Likewise.
14957         * function.c (assign_parm_setup_block): Likewise.
14958         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
14959         * reload1.c (alter_reg): Likewise.
14960         * stor-layout.c (mode_for_vector): Likewise.
14961         (layout_type): Likewise.
14963 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
14965         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
14966         (spu_convert_move): Likewise.
14967         * lower-subreg.c (resolve_simple_move): Likewise.
14969 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14971         PR target/81833
14972         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
14973         define_insn to a define_expand.
14974         (altivec_vsum2sws_direct): New define_insn.
14975         (altivec_vsumsws): Convert from a define_insn to a define_expand.
14977 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
14979         * config/arm/arm.c (arm_option_params_internal): Improve setting of
14980         max_insns_skipped.
14982 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
14984         PR target/59501
14985         PR target/81624
14986         PR target/81769
14987         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
14988         realign stack if stack alignment needed is less than incoming
14989         stack boundary.
14991 2017-09-05  Marek Polacek  <polacek@redhat.com>
14993         PR sanitizer/82072
14994         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
14995         check earlier.
14997 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
14999         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
15001 2017-09-05  Richard Biener  <rguenther@suse.de>
15003         PR tree-optimization/82084
15004         * fold-const.c (can_native_encode_string_p): Handle wide characters.
15006 2017-09-05  Richard Biener  <rguenther@suse.de>
15008         PR tree-optimization/82102
15009         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
15011 2017-09-05  Martin Liska  <mliska@suse.cz>
15013         PR tree-optimization/82032
15014         * tree-cfg.c (generate_range_test): New function.
15015         * tree-cfg.h (generate_range_test): Declared here.
15016         * tree-cfgcleanup.c (convert_single_case_switch): New function.
15017         (cleanup_control_expr_graph): Use it.
15018         * tree-switch-conversion.c (try_switch_expansion): Remove
15019         assert.
15020         (emit_case_nodes): Use generate_range_test.
15022 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
15024         PR target/82098
15025         * config/i386/i386.md (*<btsc><mode>_mask): Add
15026         TARGET_USE_BT to insn constraint.
15027         (*btr<mode>_mask): Ditto.
15029 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
15031         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
15032         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
15034 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15036         PR target/77308
15037         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
15038         TARGET_NEON and TARGET_IWMMXT.
15039         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
15040         TARGET_NEON and TARGET_IWMMXT.
15041         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
15043 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
15045         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
15046         (ix86_rewrite_tls_address): Ditto.
15047         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
15048         (ix86_rewrite_tls_address_1): Ditto.
15049         (ix86_rewrite_tls_address): Ditto.
15050         * config/i386/predicates.md (tls_address_pattern): New predicate.
15051         * config/i386/i386.md (TLS address splitter): New splitter.
15053 2017-09-04  Richard Biener  <rguenther@suse.de>
15055         PR tree-optimization/82084
15056         * fold-const.h (can_native_encode_string_p): Declare.
15057         * fold-const.c (can_native_encode_string_p): Factor out from ...
15058         (native_encode_string): ... here.
15059         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
15060         vectorizing stores from constants we later cannot handle.
15062 2017-09-04  Marek Polacek  <polacek@redhat.com>
15064         PR c/81783
15065         * doc/invoke.texi: Update -Wtautological-compare documentation.
15067 2017-09-04  Jeff Law  <law@redhat.com>
15069         PR tree-optimization/64910
15070         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
15071         swap the first and last operand if the last is a constant.
15073 2017-09-04  Marek Polacek  <polacek@redhat.com>
15075         PR sanitizer/82072
15076         * convert.c (do_narrow): When sanitizing signed integer overflows,
15077         bail out for signed types.
15078         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
15080 2017-09-04  Richard Biener  <rguenther@suse.de>
15082         PR tree-optimization/82060
15083         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15084         Move devirtualization after stmt folding and before EH/AB/noreturn
15085         cleanup to get the stmt refs canonicalized.  Use a bool instead
15086         of gimple_modified_p since that doesn't work for NOPs.  Schedule
15087         NOPs generated by folding for removal.
15089 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15090             Alan Hayward  <alan.hayward@arm.com>
15091             David Sherwood  <david.sherwood@arm.com>
15093         * coretypes.h (pad_direction): New enum.
15094         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
15095         (FUNCTION_ARG_PADDING): Likewise.
15096         * target.def (function_arg_padding): New hook.
15097         * targhooks.h (default_function_arg_padding): Declare.
15098         * targhooks.c (default_function_arg_padding): New function.
15099         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
15100         (TARGET_FUNCTION_ARG_PADDING): ...this.
15101         * doc/tm.texi: Regenerate.
15102         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
15103         instead of direction.
15104         (compute_argument_addresses): Likewise.
15105         (load_register_parameters): Likewise.
15106         (emit_library_call_value_1): Likewise.
15107         (store_one_arg): Use targetm.calls.function_arg_padding instead
15108         of FUNCTION_ARG_PADDING.
15109         (must_pass_in_stack_var_size_or_pad): Likewise.
15110         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
15111         (emit_group_store): Likewise.
15112         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
15113         instead of FUNCTION_ARG_PADDING.
15114         (emit_push_insn): Likewise, and propagate enum change throughout
15115         function.
15116         * function.h (direction): Delete.
15117         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
15118         of direction.
15119         * function.c (assign_parm_find_stack_rtl): Likewise.
15120         (assign_parm_setup_block_p): Likewise.
15121         (assign_parm_setup_block): Likewise.
15122         (gimplify_parameters): Likewise.
15123         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
15124         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
15125         function.
15126         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
15127         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15128         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
15129         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
15130         (aarch64_function_arg_padding): ...this new function.
15131         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
15132         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15133         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
15134         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15135         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
15136         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15137         (arm_pad_arg_upward): Replace with...
15138         (arm_function_arg_padding): ...this new function.
15139         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
15140         of direction.
15141         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
15142         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
15143         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15144         (ia64_hpux_function_arg_padding): Replace with...
15145         (ia64_function_arg_padding): ...this new function.  Use pad_direction
15146         instead of direction.  Check for TARGET_HPUX.
15147         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
15148         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15149         (iq2000_function_arg_padding): New function.
15150         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
15151         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
15152         (mips_function_arg_padding): ...this new function.
15153         (mips_pad_reg_upward): Update accordingly.
15154         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15155         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
15156         targetm.calls.function_arg_padding.
15157         (FUNCTION_ARG_PADDING): Delete.
15158         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15159         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
15160         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15161         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
15162         (nios2_block_reg_padding): Return pad_direction instead of direction.
15163         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
15164         instead of direction.
15165         (nios2_function_arg_padding): Likewise.  Make static.
15166         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15167         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
15168         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
15169         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
15170         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15171         (pa_function_arg_padding): Make static.  Return pad_direction instead
15172         of direction.
15173         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
15174         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15175         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
15176         instead of direction.  Use targetm.calls.function_arg_padding.
15177         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
15178         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
15179         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
15180         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
15181         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
15182         Redefine.
15183         (function_arg_padding): Rename to...
15184         (rs6000_function_arg_padding): ...this.  Make static.  Return
15185         pad_direction instead of direction.
15186         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
15187         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
15188         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15189         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
15190         instead of direction.  Use targetm.calls.function_arg_padding.
15191         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
15192         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
15193         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
15194         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
15195         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15196         (function_arg_padding): Rename to...
15197         (rs6000_function_arg_padding): ...this.  Make static.  Return
15198         pad_direction instead of direction.
15199         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
15200         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
15201         * config/s390/s390.c (s390_function_arg_padding): New function.
15202         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15203         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
15204         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
15205         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15206         (function_arg_padding): Rename to...
15207         (sparc_function_arg_padding): ...this.  Make static.  Return
15208         pad_direction instead of direction.
15209         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
15210         * config/spu/spu.c (spu_function_arg_padding): New function.
15211         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15212         * system.h (FUNCTION_ARG_PADDING): Poison.
15214 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15215             Alan Hayward  <alan.hayward@arm.com>
15216             David Sherwood  <david.sherwood@arm.com>
15218         * target.def (modes_tieable_p): New hook.
15219         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
15220         (TARGET_MODES_TIEABLE_P): ...this.
15221         * doc/tm.texi.in: Regenerate.
15222         * hooks.h (hook_bool_mode_mode_true): Declare.
15223         * hooks.c (hook_bool_mode_mode_true): New function.
15224         * combine.c (subst): Use targetm.modes_tieable_p instead of
15225         MODES_TIEABLE_P.
15226         * dse.c (find_shift_sequence): Likewise.
15227         * expmed.c (extract_low_bits): Likewise.
15228         * lower-subreg.c: Include target.h.
15229         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
15230         MODES_TIEABLE_P.
15231         * rtlanal.c (rtx_cost): Likewise.
15232         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
15233         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
15234         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
15235         (TARGET_MODES_TIEABLE_P): Redefine.
15236         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
15237         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
15238         (TARGET_MODES_TIEABLE_P): Redefine.
15239         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
15240         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
15241         (arc_modes_tieable_p): New function.
15242         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
15243         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
15244         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
15245         (arm_modes_tieable_p): Make static.
15246         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
15247         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
15248         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
15249         (TARGET_MODES_TIEABLE_P): Redefine.
15250         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
15251         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
15252         (TARGET_MODES_TIEABLE_P): Redefine.
15253         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
15254         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
15255         (cr16_modes_tieable_p): New function.
15256         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
15257         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
15258         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
15259         (TRULY_NOOP_TRUNCATION): Update comment.
15260         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
15261         (TRULY_NOOP_TRUNCATION): Update comment.
15262         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
15263         (frv_modes_tieable_p): New function.
15264         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
15265         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
15266         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
15267         (TARGET_MODES_TIEABLE_P): Redefine.
15268         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
15269         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
15270         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
15271         (TARGET_MODES_TIEABLE_P): Redefine.
15272         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
15273         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
15274         (ia64_modes_tieable_p): New function.
15275         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
15276         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
15277         (iq2000_modes_tieable_p): New function.
15278         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
15279         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
15280         (lm32_modes_tieable_p): New function.
15281         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
15282         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
15283         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
15284         (TARGET_MODES_TIEABLE_P): Redefine.
15285         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
15286         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
15287         (m32r_modes_tieable_p): New function.
15288         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
15289         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
15290         (m68k_modes_tieable_p): New function.
15291         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
15292         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
15293         (mcore_modes_tieable_p): New function.
15294         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
15295         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
15296         function.
15297         (TARGET_MODES_TIEABLE_P): Redefine.
15298         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
15299         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
15300         * config/mips/mips.c (mips_modes_tieable_p): Make static.
15301         (TARGET_MODES_TIEABLE_P): Redefine.
15302         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
15303         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
15304         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
15305         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
15306         (mn10300_modes_tieable_p): ...this and make static.
15307         (TARGET_MODES_TIEABLE_P): Redefine.
15308         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
15309         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
15310         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
15311         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
15312         (msp430_modes_tieable_p): Make static.
15313         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
15314         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
15315         (TARGET_MODES_TIEABLE_P): Redefine.
15316         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
15317         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
15318         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
15319         (TARGET_MODES_TIEABLE_P): Redefine.
15320         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
15321         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
15322         * config/pa/pa.c (pa_modes_tieable_p): Make static.
15323         (TARGET_MODES_TIEABLE_P): Redefine.
15324         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
15325         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
15326         (pdp11_modes_tieable_p): New function.
15327         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
15328         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
15329         (rs6000_modes_tieable_p): New function.
15330         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
15331         * config/powerpcspe/powerpcspe.md: Update comment.
15332         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
15333         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
15334         (TARGET_MODES_TIEABLE_P): Redefine.
15335         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
15336         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
15337         (rl78_modes_tieable_p): New function.
15338         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
15339         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
15340         (rs6000_modes_tieable_p): New function.
15341         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
15342         * config/rs6000/rs6000.md: Update comment.
15343         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
15344         * config/rx/rx.c (rx_modes_tieable_p): New function.
15345         (TARGET_MODES_TIEABLE_P): Redefine.
15346         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
15347         * config/s390/s390.c (s390_modes_tieable_p): New function.
15348         (TARGET_MODES_TIEABLE_P): Redefine.
15349         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
15350         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
15351         (sh_modes_tieable_p): New function.
15352         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
15353         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
15354         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
15355         (sparc_modes_tieable_p): Make static.
15356         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
15357         * config/spu/spu.c (spu_modes_tieable_p): New function.
15358         (TARGET_MODES_TIEABLE_P): Redefine.
15359         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
15360         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
15361         (TARGET_MODES_TIEABLE_P): Redefine.
15362         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
15363         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
15364         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
15365         * config/v850/v850.c (v850_modes_tieable_p): New function.
15366         (TARGET_MODES_TIEABLE_P): Redefine.
15367         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
15368         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
15369         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
15370         (visium_modes_tieable_p): New function.
15371         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
15372         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
15373         (xtensa_modes_tieable_p): New function.
15374         * system.h (MODES_TIEABLE_P): Poison.
15376 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15377             Alan Hayward  <alan.hayward@arm.com>
15378             David Sherwood  <david.sherwood@arm.com>
15380         * target.def (hard_regno_mode_ok): New hook.
15381         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
15382         (TARGET_HARD_REGNO_MODE_OK): ...this.
15383         * doc/tm.texi.in: Regenerate.
15384         * hooks.h (hook_bool_uint_mode_true): Declare.
15385         * hooks.c (hook_bool_uint_mode_true): New function.
15386         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
15387         HARD_REGNO_MODE_OK.
15388         * genpreds.c (write_insn_preds_c): Add an include of target.h.
15389         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
15390         instead of HARD_REGNO_MODE_OK.
15391         * caller-save.c: Include target.h.
15392         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
15393         HARD_REGNO_MODE_OK.
15394         * combine.c (can_combine_p): Likewise.
15395         (combinable_i3pat): Likewise.
15396         (can_change_dest_mode): Likewise.
15397         * expr.c (init_expr_target): Likewise.
15398         (convert_move): Likewise.
15399         (convert_modes): Likewise.
15400         * ira.c (setup_prohibited_class_mode_regs): Likewise.
15401         (setup_prohibited_mode_move_regs): Likewise.
15402         * ira.h (target_ira): Likewise.
15403         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15404         * lra-constraints.c (process_alt_operands): Likewise.
15405         (split_reg): Likewise.
15406         * recog.c (peep2_find_free_register): Likewise.
15407         * ree.c (combine_reaching_defs): Likewise.
15408         * regcprop.c (maybe_mode_change): Likewise.
15409         * reginfo.c (init_reg_sets_1): Likewise.
15410         (choose_hard_reg_mode): Likewise.
15411         (simplifiable_subregs): Likewise.
15412         * regrename.c (check_new_reg_p): Likewise.
15413         * reload.c (find_valid_class): Likewise.
15414         (find_valid_class_1): Likewise.
15415         (reload_inner_reg_of_subreg): Likewise.
15416         (push_reload): Likewise.
15417         (combine_reloads): Likewise.
15418         (find_dummy_reload): Likewise.
15419         (find_reloads): Likewise.
15420         * reload1.c (find_reg): Likewise.
15421         (set_reload_reg): Likewise.
15422         (allocate_reload_reg): Likewise.
15423         (choose_reload_regs): Likewise.
15424         (reload_adjust_reg_for_temp): Likewise.
15425         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
15426         (simplify_subreg_regno): Likewise.
15427         * sel-sched.c (init_regs_for_mode): Likewise.
15428         * varasm.c (make_decl_rtl): Likewise.
15429         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
15430         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
15431         HARD_REGNO_MODE_OK.
15432         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
15433         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
15434         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15435         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
15436         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
15437         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15438         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
15439         (arc_mode_class): Delete.
15440         (HARD_REGNO_MODE_OK): Delete.
15441         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15442         (arc_hard_regno_mode_ok): Rename old array to...
15443         (arc_hard_regno_mode_ok_modes): ...this.
15444         (arc_conditional_register_usage): Update accordingly.
15445         (arc_mode_class): Make static.
15446         (arc_hard_regno_mode_ok): New function.
15447         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
15448         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
15449         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15450         (arm_hard_regno_mode_ok): Make static.
15451         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
15452         HARD_REGNO_MODE_OK.
15453         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
15454         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
15455         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
15456         return a bool.
15457         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15458         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
15459         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
15460         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
15461         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
15462         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15463         * config/bfin/predicates.md (valid_reg_operand): Use
15464         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
15465         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
15466         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
15467         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15468         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
15469         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
15470         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15471         (cr16_hard_regno_mode_ok): Make static and return a bool.
15472         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
15473         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15474         (cris_hard_regno_mode_ok): New function.
15475         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
15476         (epiphany_mode_class): Delete.
15477         (HARD_REGNO_MODE_OK): Delete.
15478         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
15479         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15480         (hard_regno_mode_ok): Rename to...
15481         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
15482         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
15483         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
15484         HARD_REGNO_MODE_OK.
15485         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
15486         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
15487         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15488         (frv_hard_regno_mode_ok): Make static and return a bool.
15489         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
15490         HARD_REGNO_MODE_OK.
15491         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
15492         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
15493         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
15494         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
15495         and return a bool.
15496         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15497         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
15498         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
15499         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
15500         return a bool.
15501         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15502         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
15503         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15504         (ia64_hard_regno_mode_ok): New function.
15505         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
15506         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15507         (iq2000_hard_regno_mode_ok): New function.
15508         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
15509         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15510         (lm32_hard_regno_mode_ok): New function.
15511         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
15512         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
15513         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
15514         instead of HARD_REGNO_MODE_OK.
15515         (m32c_hard_regno_ok): Rename to...
15516         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
15517         (m32c_cannot_change_mode_class): Update accordingly.
15518         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15519         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
15520         (m32r_mode_class): Delete.
15521         (HARD_REGNO_MODE_OK): Delete.
15522         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15523         (m32r_hard_regno_mode_ok): Rename to...
15524         (m32r_hard_regno_modes): ...this.
15525         (m32r_mode_class): Make static.
15526         (m32r_hard_regno_mode_ok): New function.
15527         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
15528         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
15529         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15530         (m68k_hard_regno_mode_ok): Make static.
15531         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
15532         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15533         (mcore_hard_regno_mode_ok): New function.
15534         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
15535         (HARD_REGNO_MODE_OK): Delete.
15536         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
15537         Rename to...
15538         (microblaze_hard_regno_mode_ok_p): ...this and make static.
15539         (microblaze_hard_regno_mode_ok): New function.
15540         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15541         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
15542         (mips_hard_regno_mode_ok): Delete.
15543         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
15544         (mips_hard_regno_mode_ok_p): ...this and make static.
15545         (mips_hard_regno_mode_ok_p): Rename to...
15546         (mips_hard_regno_mode_ok_uncached): ...this.
15547         (mips_hard_regno_mode_ok): New function.
15548         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
15549         of HARD_REGNO_MODE_OK.
15550         (mips_option_override): Update after above name changes.
15551         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15552         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
15553         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
15554         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
15555         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
15556         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15557         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
15558         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
15559         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
15560         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15561         (msp430_hard_regno_mode_ok): Make static and return a bool.
15562         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
15563         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
15564         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
15565         and return a bool.
15566         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15567         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
15568         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
15569         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
15570         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
15571         (PA_HARD_REGNO_MODE_OK): ...this
15572         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
15573         (PA_HARD_REGNO_MODE_OK): ...this.
15574         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15575         (pa_hard_regno_mode_ok): New function.
15576         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
15577         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15578         (pdp11_hard_regno_mode_ok): New function.
15579         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
15580         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
15581         Delete.
15582         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
15583         Make static.
15584         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15585         (rs6000_hard_regno_mode_ok): Rename to...
15586         (rs6000_hard_regno_mode_ok_uncached): ...this.
15587         (rs6000_init_hard_regno_mode_ok): Update accordingly.
15588         (rs6000_hard_regno_mode_ok): New function.
15589         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
15590         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
15591         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
15592         (riscv_hard_regno_mode_ok): ...this and make static.
15593         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15594         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
15595         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
15596         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15597         (rl78_hard_regno_mode_ok): Make static and return bool.
15598         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
15599         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
15600         Delete.
15601         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
15602         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15603         (rs6000_hard_regno_mode_ok): Rename to...
15604         (rs6000_hard_regno_mode_ok_uncached): ...this.
15605         (rs6000_init_hard_regno_mode_ok): Update accordingly.
15606         (rs6000_hard_regno_mode_ok): New function.
15607         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
15608         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
15609         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15610         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
15611         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
15612         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
15613         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15614         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
15615         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
15616         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15617         (sh_hard_regno_mode_ok): Make static.
15618         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
15619         instead of HARD_REGNO_MODE_OK.
15620         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
15621         (sparc_mode_class): Delete.
15622         (HARD_REGNO_MODE_OK): Delete.
15623         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15624         (hard_regno_mode_classes): Make static.
15625         (sparc_mode_class): Likewise.
15626         (sparc_hard_regno_mode_ok): New function.
15627         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
15628         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
15629         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
15630         function.
15631         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15632         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
15633         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
15634         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
15635         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
15636         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15637         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
15638         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
15639         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15640         (visium_hard_regno_mode_ok): New function.
15641         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
15642         instead of HARD_REGNO_MODE_OK.
15643         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
15644         (HARD_REGNO_MODE_OK): Delete.
15645         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
15646         (xtensa_hard_regno_mode_ok_p): ...this and make static.
15647         (xtensa_option_override): Update accordingly.
15648         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15649         (xtensa_hard_regno_mode_ok): New function.
15650         * system.h (HARD_REGNO_MODE_OK): Poison.
15652 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15653             Alan Hayward  <alan.hayward@arm.com>
15654             David Sherwood  <david.sherwood@arm.com>
15656         * target.def (hard_regno_call_part_clobbered): New hook.
15657         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
15658         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
15659         * doc/tm.texi: Regenerate.
15660         * hooks.h (hook_bool_uint_mode_false): Declare.
15661         * hooks.c (hook_bool_uint_mode_false): New function.
15662         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15663         * cselib.c (cselib_process_insn): Use
15664         targetm.hard_regno_call_part_clobbered instead of
15665         HARD_REGNO_CALL_PART_CLOBBERED.
15666         * ira-conflicts.c (ira_build_conflicts): Likewise.
15667         * ira-costs.c (ira_tune_allocno_costs): Likewise.
15668         * lra-constraints.c (need_for_call_save_p): Likewise.
15669         * lra-lives.c: Include target.h.
15670         (check_pseudos_live_through_calls): Use
15671         targetm.hard_regno_call_part_clobbered instead of
15672         HARD_REGNO_CALL_PART_CLOBBERED.
15673         * regcprop.c: Include target.h.
15674         (copyprop_hardreg_forward_1): Use
15675         targetm.hard_regno_call_part_clobbered instead of
15676         HARD_REGNO_CALL_PART_CLOBBERED.
15677         * reginfo.c (choose_hard_reg_mode): Likewise.
15678         * regrename.c (check_new_reg_p): Likewise.
15679         * reload.c (find_equiv_reg): Likewise.
15680         * reload1.c (emit_reload_insns): Likewise.
15681         * sched-deps.c (deps_analyze_insn): Likewise.
15682         * sel-sched.c (init_regs_for_mode): Likewise.
15683         (mark_unavailable_hard_regs): Likewise.
15684         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
15685         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15686         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
15687         New function.
15688         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15689         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15690         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
15691         Delete.
15692         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
15693         and return a bool.
15694         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15695         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15696         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
15697         function.
15698         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15699         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15700         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
15701         function.
15702         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15703         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
15704         Delete.
15705         * config/powerpcspe/powerpcspe.c
15706         (rs6000_hard_regno_call_part_clobbered): New function.
15707         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15708         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15709         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
15710         New function.
15711         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15712         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15713         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
15714         function.
15715         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
15716         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
15717         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
15719 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15720             Alan Hayward  <alan.hayward@arm.com>
15721             David Sherwood  <david.sherwood@arm.com>
15723         * rtl.h (subreg_memory_offset): Declare.
15724         * emit-rtl.c (subreg_memory_offset): New function.
15725         * expmed.c (store_bit_field_1): Use it.
15726         * expr.c (undefined_operand_subword_p): Likewise.
15727         * simplify-rtx.c (simplify_subreg): Likewise.
15729 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
15731         PR rtl-optimization/57448
15732         PR target/67458
15733         PR target/81316
15734         * optabs.c (expand_atomic_load): Place compiler memory barriers if
15735         using atomic_load pattern.
15736         (expand_atomic_store): Likewise.
15738 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
15740         PR sanitizer/81981
15741         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
15742         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
15743         handling.  Use replace_call_with_value with NULL instead of
15744         gsi_replace, unlink_stmt_vdef and release_defs.
15746         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
15747         instead of tab.
15749         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
15751 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15753         PR bootstrap/82045
15754         * rtl.h (emit_library_call_value_1): Declare.
15755         (emit_library_call): Replace declaration with a series of overloads.
15756         Remove the parameter count argument.
15757         (emit_library_call_value): Likewise.
15758         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
15759         with an "rtx_mode_t *".
15760         (emit_library_call_value): Delete.
15761         (emit_library_call): Likewise.
15762         * asan.c (asan_emit_stack_protection): Update calls accordingly.
15763         (asan_emit_allocas_unpoison): Likewise.
15764         * builtins.c (expand_builtin_powi): Likewise.
15765         (expand_asan_emit_allocas_unpoison): Likewise.
15766         * cfgexpand.c (expand_main_function): Likewise.
15767         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
15768         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
15769         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
15770         * config/arm/arm.c (arm_trampoline_init): Likewise.
15771         (arm_call_tls_get_addr): Likewise.
15772         (arm_expand_divmod_libfunc): Likewise.
15773         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
15774         (smulsi3_highpart): Likewise.
15775         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
15776         (c6x_expand_compare): Likewise.
15777         (c6x_expand_movmem): Likewise.
15778         * config/frv/frv.c (frv_trampoline_init): Likewise.
15779         * config/i386/i386.c (ix86_trampoline_init): Likewise.
15780         (ix86_expand_divmod_libfunc): Likewise.
15781         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
15782         (ia64_expand_compare): Likewise.
15783         (ia64_profile_hook): Likewise.
15784         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
15785         (nonlocal_goto): Likewise.
15786         (restore_stack_nonlocal): Likewise.
15787         * config/m32r/m32r.c (block_move_call): Likewise.
15788         (m32r_trampoline_init): Likewise.
15789         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
15790         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
15791         (m68k_call_m68k_read_tp): Likewise.
15792         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
15793         (microblaze_expand_divide): Likewise.
15794         * config/mips/mips.h (mips_args): Likewise.
15795         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
15796         (MIPS_ICACHE_SYNC): Likewise.
15797         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
15798         (nios2_trampoline_init): Likewise.
15799         * config/pa/pa.c (hppa_tls_call): Likewise.
15800         (pa_trampoline_init): Likewise.
15801         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
15802         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
15803         (expand_strn_compare): Likewise.
15804         (rs6000_generate_compare): Likewise.
15805         (rs6000_expand_float128_convert): Likewise.
15806         (output_profile_hook): Likewise.
15807         (rs6000_trampoline_init): Likewise.
15808         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
15809         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
15810         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
15811         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
15812         (rs6000_generate_compare): Likewise.
15813         (rs6000_expand_float128_convert): Likewise.
15814         (output_profile_hook): Likewise.
15815         (rs6000_trampoline_init): Likewise.
15816         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
15817         * config/sh/sh.c (sh_trampoline_init): Likewise.
15818         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
15819         (sparc_emit_float_lib_cmp): Likewise.
15820         (sparc32_initialize_trampoline): Likewise.
15821         (sparc64_initialize_trampoline): Likewise.
15822         (sparc_profile_hook): Likewise.
15823         * config/spu/spu.c (ea_load_store): Likewise.
15824         * config/spu/spu.md (floatunssidf2): Likewise.
15825         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
15826         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
15827         * config/visium/visium.c (expand_block_move_4): Likewise.
15828         (expand_block_move_2): Likewise.
15829         (expand_block_move_1): Likewise.
15830         (expand_block_set_4): Likewise.
15831         (expand_block_set_2): Likewise.
15832         (expand_block_set_1): Likewise.
15833         (visium_trampoline_init): Likewise.
15834         (visium_profile_hook): Likewise.
15835         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
15836         (xtensa_setup_frame_addresses): Likewise.
15837         (xtensa_trampoline_init): Likewise.
15838         * except.c (sjlj_emit_function_enter): Likewise.
15839         (sjlj_emit_function_exit): Likewise.
15840         * explow.c (allocate_dynamic_stack_space): Likewise.
15841         (probe_stack_range): Likewise.
15842         * expr.c (convert_mode_scalar): Likewise.
15843         * optabs.c (expand_binop): Likewise.
15844         (expand_twoval_binop_libfunc): Likewise.
15845         (expand_unop): Likewise.
15846         (prepare_cmp_insn): Likewise.
15847         (prepare_float_lib_cmp): Likewise.
15848         (expand_float): Likewise.
15849         (expand_fix): Likewise.
15850         (expand_fixed_convert): Likewise.
15851         (maybe_emit_sync_lock_test_and_set): Likewise.
15852         (expand_atomic_compare_and_swap): Likewise.
15853         (expand_mem_thread_fence): Likewise.
15854         (expand_atomic_fetch_op): Likewise.
15856 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
15858         * doc/generic.texi (OpenACC): Adjust URL.
15859         * doc/invoke.texi (C Dialect Options): Ditto.
15861 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
15863         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
15864         predicate for operand 1.  Add (m,<S>) constraint.
15865         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
15866         Prevent memory operand 1 with register operand 2.
15868 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
15870         PR rtl-optimization/82024
15871         * combine.c (try_combine): If the combination result is a PARALLEL,
15872         and we only need to retain the SET in there that would be placed
15873         at I2, check that we can place that at I3 instead, before doing so.
15875 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
15877         PR target/81766
15878         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
15879         instead of void.
15880         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
15881         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
15882         and label.
15884 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
15885             Jeff Law  <law@redhat.com>
15887         * varasm.c (bss_initializer_p): Do not put constants into .bss
15888         (categorize_decl_for_section): Handle bss_initializer_p returning
15889         false when DECL_INITIAL is NULL.
15891 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15893         PR target/82012
15894         * config/s390/s390.c (s390_can_inline_p): New function.
15896 2017-09-01  Jeff Law  <law@redhat.com>
15898         PR tree-optimization/82052
15899         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
15900         Always initialize the returned slot after a hash table miss
15901         when INSERT is true.
15903 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
15905         * config/s390/s390.md (mem_signal_fence): Remove.
15906         * doc/md.texi (mem_signal_fence): Remove.
15907         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
15908         Update comments.
15909         * target-insns.def (mem_signal_fence): Remove.
15911 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
15913         PR sanitizer/81902
15914         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
15916         PR sanitizer/81923
15917         * asan.c (create_odr_indicator): Strip name encoding from assembler
15918         name before appending it after __odr_asan_.
15920 2017-09-01  Martin Liska  <mliska@suse.cz>
15922         PR tree-optimization/82059
15923         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
15924         frequency only when an edge is redirected.
15926 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
15928         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
15929         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
15930         (arc_conditional_register_usage): Remove ARC600 lp_count
15931         exception.
15932         (arc_file_start): Emit Tag_ARC_CPU_variation.
15933         (arc_can_use_doloop_p): New conditions to use ZOLs.
15934         (hwloop_fail): New function.
15935         (hwloop_optimize): Likewise.
15936         (hwloop_pattern_reg): Likewise.
15937         (arc_doloop_hooks): New struct, to be used with reorg_loops.
15938         (arc_reorg_loops): New function, calls reorg_loops.
15939         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
15940         (arc600_corereg_hazard): Remove ZOL checking, case handled by
15941         hwloop_optimize.
15942         (arc_loop_hazard): Remove function, functionality moved into
15943         hwloop_optimize.
15944         (arc_hazard): Remove arc_loop_hazard call.
15945         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
15946         into hwloop_optimize.
15947         (arc_label_align): Remove ZOL handling.
15948         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
15949         * config/arc/arc.md (doloop_begin): Remove pattern.
15950         (doloop_begin_i): Likewise.
15951         (doloop_end_i): Likewise.
15952         (doloop_fallback): Likewise.
15953         (doloop_fallback_m): Likewise.
15954         (doloop_end): Reimplement expand.
15955         (arc_lp): New pattern for LP instruction.
15956         (loop_end): New pattern.
15957         (loop_fail): Likewise.
15958         (decrement_and_branch_until_zero): Likewise.
15959         * config/arc/arc.opt (mlpc-width): New option.
15960         * doc/invoke.texi (mlpc-width): Document option.
15962 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
15964         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
15965         (arc_ccfsm_advance): Fix checking for delay slots.
15966         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
15968 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
15970         * config/arc/arc.md (movqi_insn): Add stores to save constant long
15971         immediates.
15972         (movhi_insn): Update store instruction constraint which are saving
15973         6-bit short immediates.
15974         (movsi_insn): Consider also short scaled load operations.
15975         (zero_extendhisi2_i): Use Usd constraint instead of T.
15976         (extendhisi2_i): Add q constraint.
15977         (arc_clzsi2): Add type and length attributes.
15978         (arc_ctzsi2): Likewise.
15979         * config/arc/constraints.md (Usc): Update constraint, the
15980         assembler can parse two relocations for a single instruction.
15982 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
15984         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
15985         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
15987 2017-08-31  Olivier Hainque  <hainque@adacore.com>
15989         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
15990         match as powerpc-wrs-vxworks*.
15992 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
15994         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
15995         register constraint for by-element operand.
15996         (aarch64_mls_elt_merge<mode>): Likewise.
15998 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16000         * config/arc/arc.c (arc_can_follow_jump): Check for short
16001         branches.
16003 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16005         * config.gcc: Use g.opt for arc.
16006         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
16007         functionality moved to ...
16008         (legitimate_scaled_address_p): New function, ...here.
16009         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
16010         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
16011         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
16012         condition.
16013         (arc_override_options): Handle G option.
16014         (arc_output_pic_addr_const): Correct function definition.
16015         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
16016         (arc_decl_anon_ns_mem_p): Delete.
16017         (arc_in_small_data_p): Overhaul this function to take into
16018         consideration the value given via G option.
16019         (arc_rewrite_small_data_1): Renamed and corrected old
16020         arc_rewrite_small_data function.
16021         (arc_rewrite_small_data): New function.
16022         (small_data_pattern): Don't use pic_offset_table_rtx.
16023         * config/arc/arc.h (CC1_SPEC): Recognize G option.
16024         * config/arc/simdext.md (movmisalignv2hi): Use
16025         prepare_move_operands function.
16026         (mov*): Likewise.
16027         (movmisalign*): Likewise.
16028         * doc/invoke.texi (ARC options): Document -G option.
16030 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16032         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
16033         prototype.
16034         * config/arc/arc.c (arc_print_operand): Output scalled address for
16035         sdata whenever is possible.
16036         (arc_in_small_data_p): Allow sdata for 64bit datum when double
16037         load/stores are available.
16038         (compact_sda_memory_operand): Check for the alignment required by
16039         code density instructions.
16040         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
16041         constraint.
16042         * config/arc/constraints.md (Usd): Update constraint.
16043         (Us0): New constraint.
16044         (Usc): Update constraint.
16046 2017-08-31  Richard Biener  <rguenther@suse.de>
16048         PR middle-end/82054
16049         * dwarf2out.c (dwarf2out_early_global_decl): Process each
16050         function only once.
16052 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
16054         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16055         Resize type_signature.
16057 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16058             Alan Hayward  <alan.hayward@arm.com>
16059             David Sherwood  <david.sherwood@arm.com>
16061         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
16062         subregs whose inner modes can be stored in GPRs.
16063         (aarch64_classify_index): Likewise.
16065 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16066             Alan Hayward  <alan.hayward@arm.com>
16067             David Sherwood  <david.sherwood@arm.com>
16069         * config/aarch64/iterators.md (V_cmp_result): Rename to...
16070         (V_INT_EQUIV): ...this.
16071         (v_cmp_result): Rename to...
16072         (v_int_equiv): ...this.
16073         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
16074         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
16075         (copysign<mode>3): Likewise.
16076         (aarch64_simd_bsl<mode>_internal): Likewise.
16077         (aarch64_simd_bsl<mode>): Likewise.
16078         (vec_cmp<mode><mode>): Likewise.
16079         (vcond<mode><mode>): Likewise.
16080         (vcond<v_cmp_mixed><mode>): Likewise.
16081         (vcondu<mode><v_cmp_mixed>): Likewise.
16082         (aarch64_cm<optab><mode>): Likewise.
16083         (aarch64_cmtst<mode>): Likewise.
16084         (aarch64_fac<optab><mode>): Likewise.
16085         (vec_perm_const<mode>): Likewise.
16086         (vcond_mask_<mode><v_cmp_result>): Rename to...
16087         (vcond_mask_<mode><v_int_equiv>): ...this.
16088         (vec_cmp<mode><v_cmp_result>): Rename to...
16089         (vec_cmp<mode><v_int_equiv>): ...this.
16091 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16092             Alan Hayward  <alan.hayward@arm.com>
16093             David Sherwood  <david.sherwood@arm.com>
16095         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
16096         vector modes.
16097         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
16098         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
16099         (UNSPEC_LD4_DREG): New unspecs.
16100         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
16101         (aarch64_ld2<mode>_dreg_be): Replace with...
16102         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
16103         unspec.
16104         (aarch64_ld3<mode>_dreg_le)
16105         (aarch64_ld3<mode>_dreg_be): Replace with...
16106         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
16107         unspec.
16108         (aarch64_ld4<mode>_dreg_le)
16109         (aarch64_ld4<mode>_dreg_be): Replace with...
16110         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
16111         unspec.
16113 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16115         PR tree-optimization/81987
16116         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
16117         insert an initializer in a location not dominated by the stride
16118         definition.
16120 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16122         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
16123         on the entire header of the finally block in the fallthru case.
16125 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16127         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
16129 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
16131         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
16132         rs6000_emit_move_from_cr and call renamed function.
16133         (rs6000_emit_prologue): Call renamed functions.
16134         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
16135         movesi_from_cr, remove volatile CRs.
16137 2017-08-30  Jon Beniston  <jon@beniston.com>
16138             Richard Biener  <rguenther@suse.de>
16140         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
16141         of VECTOR_MODE_P check.
16142         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
16143         element vector types.
16145 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16147         * df.h (df_read_modify_subreg_p): Remove in favor of...
16148         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
16149         const_rtx instead of an rtx.
16150         * cprop.c (local_cprop_find_used_regs): Update accordingly.
16151         * df-problems.c (df_word_lr_mark_ref): Likewise.
16152         * ira-lives.c (mark_pseudo_reg_live): Likewise.
16153         (mark_pseudo_reg_dead): Likewise.
16154         (mark_ref_dead): Likewise.
16155         * reginfo.c (init_subregs_of_mode): Likewise.
16156         * sched-deps.c (sched_analyze_1): Likewise.
16157         * df-scan.c (df_def_record_1): Likewise.
16158         (df_uses_record): Likewise.
16159         (df_read_modify_subreg_p): Remove in favor of...
16160         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
16161         const_rtx instead of an rtx.
16163 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16164             Alan Hayward  <alan.hayward@arm.com>
16165             David Sherwood  <david.sherwood@arm.com>
16167         * rtl.h (partial_subreg_p): New function.
16168         * caller-save.c (save_call_clobbered_regs): Use it.
16169         * calls.c (expand_call): Likewise.
16170         * combine.c (combinable_i3pat): Likewise.
16171         (simplify_set): Likewise.
16172         (make_extraction): Likewise.
16173         (make_compound_operation_int): Likewise.
16174         (gen_lowpart_or_truncate): Likewise.
16175         (force_to_mode): Likewise.
16176         (make_field_assignment): Likewise.
16177         (reg_truncated_to_mode): Likewise.
16178         (record_truncated_value): Likewise.
16179         (move_deaths): Likewise.
16180         * cse.c (record_jump_cond): Likewise.
16181         (cse_insn): Likewise.
16182         * cselib.c (cselib_lookup_1): Likewise.
16183         * expmed.c (extract_bit_field_using_extv): Likewise.
16184         * function.c (assign_parm_setup_reg): Likewise.
16185         * ifcvt.c (noce_convert_multiple_sets): Likewise.
16186         * ira-build.c (create_insn_allocnos): Likewise.
16187         * lra-coalesce.c (merge_pseudos): Likewise.
16188         * lra-constraints.c (match_reload): Likewise.
16189         (simplify_operand_subreg): Likewise.
16190         (curr_insn_transform): Likewise.
16191         * lra-lives.c (process_bb_lives): Likewise.
16192         * lra.c (new_insn_reg): Likewise.
16193         (lra_substitute_pseudo): Likewise.
16194         * regcprop.c (mode_change_ok): Likewise.
16195         (maybe_mode_change): Likewise.
16196         (copyprop_hardreg_forward_1): Likewise.
16197         * reload.c (push_reload): Likewise.
16198         (find_reloads): Likewise.
16199         (find_reloads_subreg_address): Likewise.
16200         * reload1.c (alter_reg): Likewise.
16201         (eliminate_regs_1): Likewise.
16202         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
16204 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
16206         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
16207         back to if statements, including unpack.
16209 2017-08-30  Martin Liska  <mliska@suse.cz>
16211         PR inline-asm/82001
16212         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
16213         Rename to ...
16214         (func_checker::compare_asm_inputs_outputs): ... this function.
16215         (func_checker::compare_gimple_asm): Use the function to compare
16216         also ASM constrains.
16217         * ipa-icf-gimple.h: Rename the function.
16219 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16220             Alan Hayward  <alan.hayward@arm.com>
16221             David Sherwood  <david.sherwood@arm.com>
16223         * coretypes.h (complex_mode): New type.
16224         * gdbhooks.py (build_pretty_printer): Handle it.
16225         * machmode.h (complex_mode): New class.
16226         (complex_mode::includes_p): New function.
16227         (is_complex_int_mode): Likewise.
16228         (is_complex_float_mode): Likewise.
16229         * genmodes.c (get_mode_class): Handle complex mode classes.
16230         * function.c (expand_function_end): Use is_complex_int_mode.
16232 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16233             Alan Hayward  <alan.hayward@arm.com>
16234             David Sherwood  <david.sherwood@arm.com>
16236         * coretypes.h (scalar_mode_pod): New typedef.
16237         * gdbhooks.py (build_pretty_printer): Handle it.
16238         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
16239         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
16240         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
16241         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
16242         as_a <scalar_mode>.
16244 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16245             Alan Hayward  <alan.hayward@arm.com>
16246             David Sherwood  <david.sherwood@arm.com>
16248         * machmode.h (mode_for_vector): Take a scalar_mode instead
16249         of a machine_mode.
16250         * stor-layout.c (mode_for_vector): Likewise.
16251         * explow.c (promote_mode): Use as_a <scalar_mode>.
16252         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
16254 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16255             Alan Hayward  <alan.hayward@arm.com>
16256             David Sherwood  <david.sherwood@arm.com>
16258         * target.def (preferred_simd_mode): Take a scalar_mode
16259         instead of a machine_mode.
16260         * targhooks.h (default_preferred_simd_mode): Likewise.
16261         * targhooks.c (default_preferred_simd_mode): Likewise.
16262         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
16263         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
16264         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
16265         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
16266         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
16267         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
16268         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
16269         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
16270         Likewise.
16271         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
16272         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
16273         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
16274         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
16275         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
16276         * doc/tm.texi: Regenerate.
16277         * optabs-query.c (can_vec_mask_load_store_p): Return false for
16278         non-scalar modes.
16280 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16281             Alan Hayward  <alan.hayward@arm.com>
16282             David Sherwood  <david.sherwood@arm.com>
16284         * target.def (scalar_mode_supported_p): Take a scalar_mode
16285         instead of a machine_mode.
16286         * targhooks.h (default_scalar_mode_supported_p): Likewise.
16287         * targhooks.c (default_scalar_mode_supported_p): Likewise.
16288         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
16289         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
16290         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
16291         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
16292         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
16293         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
16294         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
16295         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
16296         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
16297         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
16298         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
16299         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
16300         Likewise.
16301         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
16302         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
16303         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
16304         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
16305         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
16306         Likewise.
16307         * doc/tm.texi: Regenerate.
16309 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16310             Alan Hayward  <alan.hayward@arm.com>
16311             David Sherwood  <david.sherwood@arm.com>
16313         * coretypes.h (opt_scalar_mode): New typedef.
16314         * gdbhooks.py (build_pretty_printers): Handle it.
16315         * machmode.h (mode_iterator::get_2xwider): Add overload for
16316         opt_mode<T>.
16317         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
16318         over scalar modes.
16319         * expr.c (convert_mode_scalar): Likewise.
16320         * omp-low.c (omp_clause_aligned_alignment): Likewise.
16321         * optabs.c (expand_float): Likewise.
16322         (expand_fix): Likewise.
16323         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
16325 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16326             Alan Hayward  <alan.hayward@arm.com>
16327             David Sherwood  <david.sherwood@arm.com>
16329         * optabs.c (expand_float): Explicitly check for scalars before
16330         using a branching expansion.
16331         (expand_fix): Likewise.
16333 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16334             Alan Hayward  <alan.hayward@arm.com>
16335             David Sherwood  <david.sherwood@arm.com>
16337         * expr.c (convert_mode): Split scalar handling out into...
16338         (convert_mode_scalar): ...this new function.  Treat the modes
16339         as scalar_modes.
16341 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16342             Alan Hayward  <alan.hayward@arm.com>
16343             David Sherwood  <david.sherwood@arm.com>
16345         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
16346         and scalar_mode.
16347         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
16349 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16350             Alan Hayward  <alan.hayward@arm.com>
16351             David Sherwood  <david.sherwood@arm.com>
16353         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
16354         rather than a machine_mode.
16355         (fixed_from_string): Likewise.
16356         (fixed_convert): Likewise.
16357         (fixed_convert_from_int): Likewise.
16358         (fixed_convert_from_real): Likewise.
16359         (real_convert_from_fixed): Likewise.
16360         * fixed-value.c (fixed_from_double_int): Likewise.
16361         (fixed_from_string): Likewise.
16362         (fixed_convert): Likewise.
16363         (fixed_convert_from_int): Likewise.
16364         (fixed_convert_from_real): Likewise.
16365         (real_convert_from_fixed): Likewise.
16366         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
16368 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16369             Alan Hayward  <alan.hayward@arm.com>
16370             David Sherwood  <david.sherwood@arm.com>
16372         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
16373         of separate mode class checks.  Do not allow vector modes here.
16374         (immed_wide_int_const): Use as_a <scalar_mode>.
16375         * explow.c (trunc_int_for_mode): Likewise.
16376         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
16377         (wi::shwi): Likewise.
16378         (wi::min_value): Likewise.
16379         (wi::max_value): Likewise.
16380         * dwarf2out.c (loc_descriptor): Likewise.
16381         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
16382         for CONST_WIDE_INT.
16384 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16385             Alan Hayward  <alan.hayward@arm.com>
16386             David Sherwood  <david.sherwood@arm.com>
16388         * tree.h (SCALAR_TYPE_MODE): New macro.
16389         * expr.c (expand_expr_addr_expr_1): Use it.
16390         (expand_expr_real_2): Likewise.
16391         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
16392         (fold_convert_const_fixed_from_int): Likewise.
16393         (fold_convert_const_fixed_from_real): Likewise.
16394         (native_encode_fixed): Likewise
16395         (native_encode_complex): Likewise
16396         (native_encode_vector): Likewise.
16397         (native_interpret_fixed): Likewise.
16398         (native_interpret_real): Likewise.
16399         (native_interpret_complex): Likewise.
16400         (native_interpret_vector): Likewise.
16401         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
16402         (simd_clone_adjust_argument_types): Likewise.
16403         (simd_clone_init_simd_arrays): Likewise.
16404         (simd_clone_adjust): Likewise.
16405         * stor-layout.c (layout_type): Likewise.
16406         * tree.c (build_minus_one_cst): Likewise.
16407         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
16408         * tree-inline.c (estimate_move_cost): Likewise.
16409         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
16410         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
16411         (vectorizable_reduction): Likewise.
16412         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
16413         (vect_recog_mixed_size_cond_pattern): Likewise.
16414         (check_bool_pattern): Likewise.
16415         (adjust_bool_pattern): Likewise.
16416         (search_type_for_mask_1): Likewise.
16417         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
16418         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
16419         (vectorizable_load): Likewise.
16420         (vectorizable_store): Likewise.
16421         * ubsan.c (ubsan_encode_value): Likewise.
16422         * varasm.c (output_constant): Likewise.
16424 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16425             Alan Hayward  <alan.hayward@arm.com>
16426             David Sherwood  <david.sherwood@arm.com>
16428         * coretypes.h (scalar_mode): New class.
16429         * machmode.h (scalar_mode): Likewise.
16430         (scalar_mode::includes_p): New function.
16431         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
16432         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
16433         * genmodes.c (get_mode_class): Handle remaining scalar modes.
16434         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
16435         * expmed.c (store_bit_field_1): Likewise.
16436         (extract_bit_field_1): Likewise.
16437         * expr.c (write_complex_part): Likewise.
16438         (read_complex_part): Likewise.
16439         (emit_move_complex_push): Likewise.
16440         (expand_expr_real_2): Likewise.
16441         * function.c (assign_parm_setup_reg): Likewise.
16442         (assign_parms_unsplit_complex): Likewise.
16443         * optabs.c (expand_binop): Likewise.
16444         * rtlanal.c (subreg_get_info): Likewise.
16445         * simplify-rtx.c (simplify_immed_subreg): Likewise.
16446         * varasm.c (output_constant_pool_2): Likewise.
16448 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16449             Alan Hayward  <alan.hayward@arm.com>
16450             David Sherwood  <david.sherwood@arm.com>
16452         * expmed.c (extract_high_half): Use scalar_int_mode and remove
16453         assertion.
16454         (expmed_mult_highpart_optab): Likewise.
16455         (expmed_mult_highpart): Likewise.
16457 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16458             Alan Hayward  <alan.hayward@arm.com>
16459             David Sherwood  <david.sherwood@arm.com>
16461         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
16462         instead of a machine_mode.
16463         (builtin_memset_read_str): Likewise.
16464         * builtins.c (c_readstr): Likewise.
16465         (builtin_memcpy_read_str): Likewise.
16466         (builtin_strncpy_read_str): Likewise.
16467         (builtin_memset_read_str): Likewise.
16468         (builtin_memset_gen_str): Likewise.
16469         (expand_builtin_signbit): Use scalar_int_mode for local variables.
16470         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
16471         instead of a machine_mode.
16472         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
16473         variables.
16474         (make_extraction): Likewise.
16475         (try_widen_shift_mode): Take and return scalar_int_modes instead
16476         of machine_modes.
16477         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
16478         a scalar_int_mode instead of a machine_mode.
16479         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
16480         (avr_addr_space_pointer_mode): Likewise.
16481         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
16482         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
16483         (msp430_unwind_word_mode): Likewise.
16484         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
16485         (spu_addr_space_pointer_mode): Likewise.
16486         (spu_addr_space_address_mode): Likewise.
16487         (spu_libgcc_cmp_return_mode): Likewise.
16488         (spu_libgcc_shift_count_mode): Likewise.
16489         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
16490         (rl78_addr_space_pointer_mode): Likewise.
16491         (fl78_unwind_word_mode): Likewise.
16492         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
16493         machine_mode.
16494         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
16495         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
16496         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
16497         (mips_valid_pointer_mode): Likewise.
16498         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
16499         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
16500         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
16501         of a machine_mode.
16502         (ft32_addr_space_address_mode): Likewise.
16503         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
16504         scalar_int_mode instead of a machine_mode.
16505         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
16506         of a machine_mode.
16507         (m32c_addr_space_address_mode): Likewise.
16508         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
16509         (rs6000_eh_return_filter_mode): Likewise.
16510         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
16511         (rs6000_eh_return_filter_mode): Likewise.
16512         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
16513         (s390_libgcc_shift_count_mode): Likewise.
16514         (s390_unwind_word_mode): Likewise.
16515         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
16516         machine_mode.
16517         * target.def (mode_rep_extended): Likewise.
16518         (valid_pointer_mode): Likewise.
16519         (addr_space.valid_pointer_mode): Likewise.
16520         (eh_return_filter_mode): Return a scalar_int_mode rather than
16521         a machine_mode.
16522         (libgcc_cmp_return_mode): Likewise.
16523         (libgcc_shift_count_mode): Likewise.
16524         (unwind_word_mode): Likewise.
16525         (addr_space.pointer_mode): Likewise.
16526         (addr_space.address_mode): Likewise.
16527         * doc/tm.texi: Regenerate.
16528         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
16529         a machine_mode.
16530         (do_jump): Use scalar_int_mode for local variables.
16531         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
16532         rather than a machine_mode.
16533         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
16534         (scompare_loc_descriptor_wide): Likewise.
16535         (scompare_loc_descriptor_narrow): Likewise.
16536         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
16537         variables.
16538         * except.c (sjlj_emit_dispatch_table): Likewise.
16539         (expand_builtin_eh_copy_values): Likewise.
16540         * explow.c (convert_memory_address_addr_space_1): Likewise.
16541         Take a scalar_int_mode rather than a machine_mode.
16542         (convert_memory_address_addr_space): Take a scalar_int_mode rather
16543         than a machine_mode.
16544         (memory_address_addr_space): Use scalar_int_mode for local variables.
16545         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
16546         rather than a machine_mode.
16547         * expmed.c (mask_rtx): Likewise.
16548         (init_expmed_one_conv): Likewise.
16549         (expand_mult_highpart_adjust): Likewise.
16550         (extract_high_half): Likewise.
16551         (expmed_mult_highpart_optab): Likewise.
16552         (expmed_mult_highpart): Likewise.
16553         (expand_smod_pow2): Likewise.
16554         (expand_sdiv_pow2): Likewise.
16555         (emit_store_flag_int): Likewise.
16556         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
16557         variables.
16558         (extract_low_bits): Likewise.
16559         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
16560         a machine_mode.
16561         * expr.c (pieces_addr::adjust):  Likewise.
16562         (can_store_by_pieces): Likewise.
16563         (store_by_pieces): Likewise.
16564         (clear_by_pieces_1): Likewise.
16565         (expand_expr_addr_expr_1): Likewise.
16566         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
16567         (expand_expr_real_1): Likewise.
16568         (try_casesi): Likewise.
16569         * final.c (shorten_branches): Likewise.
16570         * fold-const.c (fold_convert_const_int_from_fixed): Change the
16571         type of "mode" to machine_mode.
16572         * internal-fn.c (expand_arith_overflow_result_store): Take a
16573         scalar_int_mode rather than a machine_mode.
16574         (expand_mul_overflow): Use scalar_int_mode for local variables.
16575         * loop-doloop.c (doloop_modify): Likewise.
16576         (doloop_optimize): Likewise.
16577         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
16578         than a machine_mode.
16579         (expand_doubleword_shift_condmove): Likewise.
16580         (expand_doubleword_shift): Likewise.
16581         (expand_doubleword_clz): Likewise.
16582         (expand_doubleword_popcount): Likewise.
16583         (expand_doubleword_parity): Likewise.
16584         (expand_absneg_bit): Use scalar_int_mode for local variables.
16585         (prepare_float_lib_cmp): Likewise.
16586         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
16587         rather than a machine_mode.
16588         (convert_memory_address_addr_space): Likewise.
16589         (get_mode_bounds): Likewise.
16590         (get_address_mode): Return a scalar_int_mode rather than a
16591         machine_mode.
16592         * rtlanal.c (get_address_mode): Likewise.
16593         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
16594         than a machine_mode.
16595         * targhooks.c (default_mode_rep_extended): Likewise.
16596         (default_valid_pointer_mode): Likewise.
16597         (default_addr_space_valid_pointer_mode): Likewise.
16598         (default_eh_return_filter_mode): Return a scalar_int_mode rather
16599         than a machine_mode.
16600         (default_libgcc_cmp_return_mode): Likewise.
16601         (default_libgcc_shift_count_mode): Likewise.
16602         (default_unwind_word_mode): Likewise.
16603         (default_addr_space_pointer_mode): Likewise.
16604         (default_addr_space_address_mode): Likewise.
16605         * targhooks.h (default_eh_return_filter_mode): Likewise.
16606         (default_libgcc_cmp_return_mode): Likewise.
16607         (default_libgcc_shift_count_mode): Likewise.
16608         (default_unwind_word_mode): Likewise.
16609         (default_addr_space_pointer_mode): Likewise.
16610         (default_addr_space_address_mode): Likewise.
16611         (default_mode_rep_extended): Take a scalar_int_mode rather than
16612         a machine_mode.
16613         (default_valid_pointer_mode): Likewise.
16614         (default_addr_space_valid_pointer_mode): Likewise.
16615         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
16616         local variables.
16617         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
16618         rather than a machine_mode.
16619         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
16620         for local variables.
16621         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
16622         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
16623         than a machine_mode.
16625 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16626             Alan Hayward  <alan.hayward@arm.com>
16627             David Sherwood  <david.sherwood@arm.com>
16629         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
16630         the mode argument to scalar_int_mode.
16631         (do_jump_by_parts_zero_rtx): Likewise.
16632         (do_jump_by_parts_equality_rtx): Likewise.
16633         (do_jump_by_parts_greater): Take a mode argument.
16634         (do_jump_by_parts_equality): Likewise.
16635         (do_jump_1): Update calls accordingly.
16637 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16638             Alan Hayward  <alan.hayward@arm.com>
16639             David Sherwood  <david.sherwood@arm.com>
16641         * is-a.h (safe_dyn_cast): New function.
16642         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
16643         (jump_table_for_label): Likewise.
16644         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
16645         instead of an rtx_insn *.
16646         (shorten_branches): Use dyn_cast instead of LABEL_P and
16647         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
16648         rtx_jump_table_data::get_data_mode.
16649         (final_scan_insn): Likewise.
16651 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16652             Alan Hayward  <alan.hayward@arm.com>
16653             David Sherwood  <david.sherwood@arm.com>
16655         * combine.c (try_combine): Use is_a <scalar_int_mode> when
16656         trying to combine a full-register integer set with a subreg
16657         integer set.
16659 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16660             Alan Hayward  <alan.hayward@arm.com>
16661             David Sherwood  <david.sherwood@arm.com>
16663         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
16664         that is always either address_mode or pointer_mode.
16666 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16667             Alan Hayward  <alan.hayward@arm.com>
16668             David Sherwood  <david.sherwood@arm.com>
16670         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
16671         when the two are known to be equal.
16673 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16674             Alan Hayward  <alan.hayward@arm.com>
16675             David Sherwood  <david.sherwood@arm.com>
16677         * simplify-rtx.c (simplify_const_unary_operation): Use
16678         is_a <scalar_int_mode> instead of checking for a nonzero
16679         precision.  Forcibly convert op_mode to a scalar_int_mode
16680         in that case.  More clearly differentiate the operand and
16681         result modes and use the former when deciding what the value
16682         of a count-bits operation should be.  Use is_int_mode instead
16683         of checking for a MODE_INT.  Remove redundant check for whether
16684         this mode has a zero precision.
16686 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16687             Alan Hayward  <alan.hayward@arm.com>
16688             David Sherwood  <david.sherwood@arm.com>
16690         * optabs.c (widen_leading): Change the type of the mode argument
16691         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
16692         (widen_bswap): Likewise.
16693         (expand_parity): Likewise.
16694         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
16695         (expand_ffs): Likewise.
16696         (epand_unop): Check for scalar integer modes before calling the
16697         above routines.
16699 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16700             Alan Hayward  <alan.hayward@arm.com>
16701             David Sherwood  <david.sherwood@arm.com>
16703         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
16704         Expand commentary.
16705         (expand_expr_real_1): Update call accordingly.
16707 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16708             Alan Hayward  <alan.hayward@arm.com>
16709             David Sherwood  <david.sherwood@arm.com>
16711         * expmed.c (store_bit_field_using_insv): Add op0_mode and
16712         value_mode arguments.  Use scalar_int_mode internally.
16713         (store_bit_field_1): Rename the new integer mode from imode
16714         to op0_mode and use it instead of GET_MODE (op0).  Update calls
16715         to store_split_bit_field, store_bit_field_using_insv and
16716         store_fixed_bit_field.
16717         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
16718         Use scalar_int_mode internally.  Use a bit count rather than a mode
16719         when calculating the largest bit size for get_best_mode.
16720         Update calls to store_split_bit_field and store_fixed_bit_field_1.
16721         (store_fixed_bit_field_1): Add mode and value_mode arguments.
16722         Remove assertion that OP0 has a scalar integer mode.
16723         (store_split_bit_field): Add op0_mode and value_mode arguments.
16724         Update calls to extract_fixed_bit_field.
16725         (extract_bit_field_using_extv): Add an op0_mode argument.
16726         Use scalar_int_mode internally.
16727         (extract_bit_field_1): Rename the new integer mode from imode to
16728         op0_mode and use it instead of GET_MODE (op0).  Update calls to
16729         extract_split_bit_field, extract_bit_field_using_extv and
16730         extract_fixed_bit_field.
16731         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
16732         to extract_split_bit_field and extract_fixed_bit_field_1.
16733         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
16734         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
16735         on the target mode.
16736         (extract_split_bit_field): Add an op0_mode argument.  Update call
16737         to extract_fixed_bit_field.
16739 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16740             Alan Hayward  <alan.hayward@arm.com>
16741             David Sherwood  <david.sherwood@arm.com>
16743         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
16744         * explow.c (hard_function_value): Likewise.
16745         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
16746         convert_to_mode call outside the loop.
16747         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
16748         for the mode iterator.  Require the mode specified by max_pieces
16749         to exist.
16750         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
16751         mode iterator.
16752         (copy_blkmode_to_reg): Likewise.
16753         (set_storage_via_setmem): Likewise.
16754         * optabs.c (prepare_cmp_insn): Likewise.
16755         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
16756         * stor-layout.c (finish_bitfield_representative): Likewise.
16758 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16759             Alan Hayward  <alan.hayward@arm.com>
16760             David Sherwood  <david.sherwood@arm.com>
16762         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
16763         * expr.c (convert_move): Use them.
16764         (convert_modes): Likewise.
16765         (store_expr_with_bounds): Likewise.
16767 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16768             Alan Hayward  <alan.hayward@arm.com>
16769             David Sherwood  <david.sherwood@arm.com>
16771         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
16772         parameter for the mode of "x".  Remove the "known_x", "known_mode"
16773         and "known_ret" arguments.  Change the type of the mode argument
16774         to scalar_int_mode.
16775         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
16776         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
16777         (reg_num_sign_bit_copies_for_combine): Likewise.
16778         * rtlanal.c (nonzero_bits1): Likewise.
16779         (num_sign_bit_copies1): Likewise.
16780         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
16781         (reg_num_sign_bit_copies_general): Likewise.
16782         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
16783         (reg_nonzero_bits_general): Likewise.
16785 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16786             Alan Hayward  <alan.hayward@arm.com>
16787             David Sherwood  <david.sherwood@arm.com>
16789         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
16790         than in subroutines.  Return 1 for non-integer modes.
16791         (cached_num_sign_bit_copies): Change the type of the mode parameter
16792         to scalar_int_mode.
16793         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
16794         classes.  Handle CONST_INT_P first and then check whether X also
16795         has a scalar integer mode.  Check the same thing for inner registers
16796         of a SUBREG and for values that are being extended or truncated.
16798 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16799             Alan Hayward  <alan.hayward@arm.com>
16800             David Sherwood  <david.sherwood@arm.com>
16802         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
16803         in subroutines.  Return the mode mask for non-integer modes.
16804         (cached_nonzero_bits): Change the type of the mode parameter
16805         to scalar_int_mode.
16806         (nonzero_bits1): Likewise.  Remove early exit for other mode
16807         classes.  Handle CONST_INT_P first and then check whether X
16808         also has a scalar integer mode.
16810 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16811             Alan Hayward  <alan.hayward@arm.com>
16812             David Sherwood  <david.sherwood@arm.com>
16814         * expr.c (widest_int_mode_for_size): Make the comment match the code.
16815         Return a scalar_int_mode and assert that the size is greater than
16816         one byte.
16817         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
16818         (op_by_pieces_d::op_by_pieces_d): Likewise.
16819         (op_by_pieces_d::run): Likewise.
16820         (can_store_by_pieces): Likewise.
16822 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16823             Alan Hayward  <alan.hayward@arm.com>
16824             David Sherwood  <david.sherwood@arm.com>
16826         * combine.c (extract_left_shift): Add a mode argument and update
16827         recursive calls.
16828         (make_compound_operation_int): Change the type of the mode parameter
16829         to scalar_int_mode and update the call to extract_left_shift.
16831 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16832             Alan Hayward  <alan.hayward@arm.com>
16833             David Sherwood  <david.sherwood@arm.com>
16835         * combine.c (simplify_and_const_int): Change the type of the mode
16836         parameter to scalar_int_mode.
16837         (simplify_and_const_int_1): Likewise.  Update recursive call.
16839 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16840             Alan Hayward  <alan.hayward@arm.com>
16841             David Sherwood  <david.sherwood@arm.com>
16843         * combine.c (simplify_compare_const): Check that the mode is a
16844         scalar_int_mode (rather than VOIDmode) before testing its
16845         precision.
16846         (simplify_comparison): Move COMPARISON_P handling out of the
16847         loop and restrict the latter part of the loop to scalar_int_modes.
16848         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
16849         and when considering SUBREG_REGs.  Use is_int_mode instead of
16850         checking GET_MODE_CLASS against MODE_INT.
16852 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16853             Alan Hayward  <alan.hayward@arm.com>
16854             David Sherwood  <david.sherwood@arm.com>
16856         * combine.c (try_widen_shift_mode): Move check for equal modes to...
16857         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
16858         shift_unit_mode and for modes involved in scalar shifts.
16860 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16861             Alan Hayward  <alan.hayward@arm.com>
16862             David Sherwood  <david.sherwood@arm.com>
16864         * combine.c (force_int_to_mode): New function, split out from...
16865         (force_to_mode): ...here.  Keep xmode up-to-date and use it
16866         instead of GET_MODE (x).
16868 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16869             Alan Hayward  <alan.hayward@arm.com>
16870             David Sherwood  <david.sherwood@arm.com>
16872         * optabs-query.h (extraction_insn::struct_mode): Change type to
16873         opt_scalar_int_mode and update comment.
16874         (extraction_insn::field_mode): Change type to scalar_int_mode.
16875         (extraction_insn::pos_mode): Likewise.
16876         * combine.c (make_extraction): Update accordingly.
16877         * optabs-query.c (get_traditional_extraction_insn): Likewise.
16878         (get_optab_extraction_insn): Likewise.
16879         * recog.c (simplify_while_replacing): Likewise.
16880         * expmed.c (narrow_bit_field_mem): Change the type of the mode
16881         parameter to opt_scalar_int_mode.
16883 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16884             Alan Hayward  <alan.hayward@arm.com>
16885             David Sherwood  <david.sherwood@arm.com>
16887         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
16888         to a scalar_int_mode instead of a machine_mode.
16889         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
16890         (get_best_mode): Return a boolean and use a pointer argument to store
16891         the selected mode.  Replace the limit mode parameter with a bit limit.
16892         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
16893         for the values returned by bit_field_mode_iterator::next_mode.
16894         (store_bit_field): Update call to get_best_mode.
16895         (store_fixed_bit_field): Likewise.
16896         (extract_fixed_bit_field): Likewise.
16897         * expr.c (optimize_bitfield_assignment_op): Likewise.
16898         * fold-const.c (optimize_bit_field_compare): Likewise.
16899         (fold_truth_andor_1): Likewise.
16900         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
16901         Update for new type of m_mode.
16902         (get_best_mode): As above.
16904 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16905             Alan Hayward  <alan.hayward@arm.com>
16906             David Sherwood  <david.sherwood@arm.com>
16908         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
16909         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
16910         (store_bit_field): Check is_a <scalar_int_mode> before calling
16911         strict_volatile_bitfield_p.
16912         (extract_bit_field): Likewise.
16914 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16915             Alan Hayward  <alan.hayward@arm.com>
16916             David Sherwood  <david.sherwood@arm.com>
16918         * target.def (cstore_mode): Return a scalar_int_mode.
16919         * doc/tm.texi: Regenerate.
16920         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
16921         * targhooks.h (default_cstore_mode): Likewise.
16922         * targhooks.c (default_cstore_mode): Likewise, using a forced
16923         conversion.
16924         * expmed.c (emit_cstore): Expect the target of the cstore to be
16925         a scalar_int_mode.
16927 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16928             Alan Hayward  <alan.hayward@arm.com>
16929             David Sherwood  <david.sherwood@arm.com>
16931         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
16932         scalar_int_mode.
16933         (niter_desc): Likewise mode.
16934         (iv_analyze): Add a mode parameter.
16935         (biv_p): Likewise.
16936         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
16937         and change its type to scalar_int_mode.
16938         * loop-iv.c: Update commentary at head of file.
16939         (iv_constant): Pass the mode paraeter before the rtx it describes
16940         and change its type to scalar_int_mode.  Remove VOIDmode handling.
16941         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
16942         (iv_extend): Likewise.
16943         (shorten_into_mode): Likewise.
16944         (iv_add): Use scalar_int_mode.
16945         (iv_mult): Likewise.
16946         (iv_shift): Likewise.
16947         (canonicalize_iv_subregs): Likewise.
16948         (get_biv_step_1): Pass the outer_mode parameter before the rtx
16949         it describes and change its mode to scalar_int_mode.   Also change
16950         the type of the returned inner_mode to scalar_int_mode.
16951         (get_biv_step): Likewise, turning outer_mode from a pointer
16952         into a direct parameter.  Update call to get_biv_step_1.
16953         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
16954         iv_constant and get_biv_step.
16955         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
16956         and change its type to scalar_int_mode.  Don't initialise iv->mode
16957         to VOIDmode and remove later checks for its still being VOIDmode.
16958         Update calls to iv_analyze_op and iv_analyze_expr.  Check
16959         is_a <scalar_int_mode> when changing the mode under consideration.
16960         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
16961         Update call to iv_analyze_expr.
16962         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
16963         inner register is not also a scalar_int_mode.  Update call to
16964         iv_analyze_biv.
16965         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
16966         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
16967         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
16968         separate mode class checks.  Update calls to iv_analyze.  Remove
16969         fix-up of VOIDmodes after iv_analyze_biv.
16970         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
16971         don't have a scalar_int_mode.  Update call to biv_p.
16973 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16974             Alan Hayward  <alan.hayward@arm.com>
16975             David Sherwood  <david.sherwood@arm.com>
16977         * cfgexpand.c (convert_debug_memory_address): Use
16978         as_a <scalar_int_mode>.
16979         * combine.c (expand_compound_operation): Likewise.
16980         (make_extraction): Likewise.
16981         (change_zero_ext): Likewise.
16982         (simplify_comparison): Likewise.
16983         * cse.c (cse_insn): Likewise.
16984         * dwarf2out.c (minmax_loc_descriptor): Likewise.
16985         (mem_loc_descriptor): Likewise.
16986         (loc_descriptor): Likewise.
16987         * expmed.c (init_expmed_one_mode): Likewise.
16988         (synth_mult): Likewise.
16989         (emit_store_flag_1): Likewise.
16990         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
16991         of a comparison with size.
16992         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
16993         (reduce_to_bit_field_precision): Likewise.
16994         * function.c (expand_function_end): Likewise.
16995         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
16996         * loop-doloop.c (doloop_modify): Likewise.
16997         * optabs.c (expand_binop): Likewise.
16998         (expand_unop): Likewise.
16999         (expand_copysign_absneg): Likewise.
17000         (prepare_cmp_insn): Likewise.
17001         (maybe_legitimize_operand): Likewise.
17002         * recog.c (const_scalar_int_operand): Likewise.
17003         * rtlanal.c (get_address_mode): Likewise.
17004         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17005         (simplify_cond_clz_ctz): Likewise.
17006         * tree-nested.c (get_nl_goto_field): Likewise.
17007         * tree.c (build_vector_type_for_mode): Likewise.
17008         * var-tracking.c (use_narrower_mode): Likewise.
17010 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17011             Alan Hayward  <alan.hayward@arm.com>
17012             David Sherwood  <david.sherwood@arm.com>
17014         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
17015         * builtins.c (expand_builtin_signbit): Use it.
17016         * cfgexpand.c (expand_debug_expr): Likewise.
17017         * dojump.c (do_jump): Likewise.
17018         (do_compare_and_jump): Likewise.
17019         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
17020         * expmed.c (make_tree): Likewise.
17021         * expr.c (expand_expr_real_2): Likewise.
17022         (expand_expr_real_1): Likewise.
17023         (try_casesi): Likewise.
17024         * fold-const-call.c (fold_const_call_ss): Likewise.
17025         * fold-const.c (unextend): Likewise.
17026         (extract_muldiv_1): Likewise.
17027         (fold_single_bit_test): Likewise.
17028         (native_encode_int): Likewise.
17029         (native_encode_string): Likewise.
17030         (native_interpret_int): Likewise.
17031         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
17032         * internal-fn.c (expand_addsub_overflow): Likewise.
17033         (expand_neg_overflow): Likewise.
17034         (expand_mul_overflow): Likewise.
17035         (expand_arith_overflow): Likewise.
17036         * match.pd: Likewise.
17037         * stor-layout.c (layout_type): Likewise.
17038         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17039         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
17040         * tree-ssanames.c (get_range_info): Likewise.
17041         * tree-switch-conversion.c (array_value_type) Likewise.
17042         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
17043         (vect_recog_divmod_pattern): Likewise.
17044         (vect_recog_mixed_size_cond_pattern): Likewise.
17045         * tree-vrp.c (extract_range_basic): Likewise.
17046         (simplify_float_conversion_using_ranges): Likewise.
17047         * tree.c (int_fits_type_p): Likewise.
17048         * ubsan.c (instrument_bool_enum_load): Likewise.
17049         * varasm.c (mergeable_string_section): Likewise.
17050         (narrowing_initializer_constant_valid_p): Likewise.
17051         (output_constant): Likewise.
17053 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17054             Alan Hayward  <alan.hayward@arm.com>
17055             David Sherwood  <david.sherwood@arm.com>
17057         * machmode.h (NARROWEST_INT_MODE): New macro.
17058         * expr.c (alignment_for_piecewise_move): Use it instead of
17059         GET_CLASS_NARROWEST_MODE (MODE_INT).
17060         (push_block): Likewise.
17061         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
17062         Likewise.
17063         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17065 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17066             Alan Hayward  <alan.hayward@arm.com>
17067             David Sherwood  <david.sherwood@arm.com>
17069         * postreload.c (move2add_valid_value_p): Change the type of the
17070         mode parameter to scalar_int_mode.
17071         (move2add_use_add2_insn): Add a mode parameter and use it instead
17072         of GET_MODE (reg).
17073         (move2add_use_add3_insn): Likewise.
17074         (reload_cse_move2add): Update accordingly.
17076 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17077             Alan Hayward  <alan.hayward@arm.com>
17078             David Sherwood  <david.sherwood@arm.com>
17080         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
17081         double-word mode.
17082         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
17083         * optabs.c (expand_unop): Likewise.
17085 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17086             Alan Hayward  <alan.hayward@arm.com>
17087             David Sherwood  <david.sherwood@arm.com>
17089         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
17090         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
17091         (popcount_loc_descriptor): Likewise.
17092         (bswap_loc_descriptor): Likewise.
17093         (rotate_loc_descriptor): Likewise.
17094         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
17095         calling the functions above.
17097 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17098             Alan Hayward  <alan.hayward@arm.com>
17099             David Sherwood  <david.sherwood@arm.com>
17101         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
17102         checks.
17103         (try_combine): Likewise.
17104         (simplify_if_then_else): Likewise.
17105         * cse.c (cse_insn): Likewise.
17106         * dwarf2out.c (mem_loc_descriptor): Likewise.
17107         * emit-rtl.c (gen_lowpart_common): Likewise.
17108         * simplify-rtx.c (simplify_truncation): Likewise.
17109         (simplify_binary_operation_1): Likewise.
17110         (simplify_const_relational_operation): Likewise.
17111         (simplify_ternary_operation): Likewise.
17112         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
17114 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17115             Alan Hayward  <alan.hayward@arm.com>
17116             David Sherwood  <david.sherwood@arm.com>
17118         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
17119         * reload.c (push_reload): Likewise.
17120         (find_reloads): Likewise.
17122 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17123             Alan Hayward  <alan.hayward@arm.com>
17124             David Sherwood  <david.sherwood@arm.com>
17126         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
17127         (make_compound_operation_int): Likewise.
17128         (change_zero_ext): Likewise.
17129         * expr.c (convert_move): Likewise.
17130         (convert_modes): Likewise.
17131         * fwprop.c (forward_propagate_subreg): Likewise.
17132         * loop-iv.c (get_biv_step_1): Likewise.
17133         * optabs.c (widen_operand): Likewise.
17134         * postreload.c (move2add_valid_value_p): Likewise.
17135         * recog.c (simplify_while_replacing): Likewise.
17136         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17137         (simplify_binary_operation_1): Likewise.  Remove redundant
17138         mode equality check.
17140 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17141             Alan Hayward  <alan.hayward@arm.com>
17142             David Sherwood  <david.sherwood@arm.com>
17144         * combine.c (combine_simplify_rtx): Add checks for
17145         is_a <scalar_int_mode>.
17146         (simplify_if_then_else): Likewise.
17147         (make_field_assignment): Likewise.
17148         (simplify_comparison): Likewise.
17149         * ifcvt.c (noce_try_bitop): Likewise.
17150         * loop-invariant.c (canonicalize_address_mult): Likewise.
17151         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17153 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17154             Alan Hayward  <alan.hayward@arm.com>
17155             David Sherwood  <david.sherwood@arm.com>
17157         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
17158         is_a <scalar_int_mode> instead of != BLKmode.
17160 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17161             Alan Hayward  <alan.hayward@arm.com>
17162             David Sherwood  <david.sherwood@arm.com>
17164         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
17165         instead of != VOIDmode.
17166         * combine.c (if_then_else_cond): Likewise.
17167         (change_zero_ext): Likewise.
17168         * dwarf2out.c (mem_loc_descriptor): Likewise.
17169         (loc_descriptor): Likewise.
17170         * rtlanal.c (canonicalize_condition): Likewise.
17171         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
17173 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17174             Alan Hayward  <alan.hayward@arm.com>
17175             David Sherwood  <david.sherwood@arm.com>
17177         * simplify-rtx.c (simplify_binary_operation_1): Use
17178         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
17180 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17181             Alan Hayward  <alan.hayward@arm.com>
17182             David Sherwood  <david.sherwood@arm.com>
17184         * wide-int.h (int_traits<unsigned char>) New class.
17185         (int_traits<unsigned short>) Likewise.
17186         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
17187         Use GET_MODE_UNIT_PRECISION and remove redundant test for
17188         SCALAR_INT_MODE_P.
17189         * combine.c (set_nonzero_bits_and_sign_copies): Use
17190         is_a <scalar_int_mode>.
17191         (find_split_point): Likewise.
17192         (combine_simplify_rtx): Likewise.
17193         (simplify_logical): Likewise.
17194         (expand_compound_operation): Likewise.
17195         (expand_field_assignment): Likewise.
17196         (make_compound_operation): Likewise.
17197         (extended_count): Likewise.
17198         (change_zero_ext): Likewise.
17199         (simplify_comparison): Likewise.
17200         * dwarf2out.c (scompare_loc_descriptor): Likewise.
17201         (ucompare_loc_descriptor): Likewise.
17202         (minmax_loc_descriptor): Likewise.
17203         (mem_loc_descriptor): Likewise.
17204         (loc_descriptor): Likewise.
17205         * expmed.c (init_expmed_one_mode): Likewise.
17206         * lra-constraints.c (lra_constraint_offset): Likewise.
17207         * optabs.c (prepare_libcall_arg): Likewise.
17208         * postreload.c (move2add_note_store): Likewise.
17209         * reload.c (operands_match_p): Likewise.
17210         * rtl.h (load_extend_op): Likewise.
17211         * rtlhooks.c (gen_lowpart_general): Likewise.
17212         * simplify-rtx.c (simplify_truncation): Likewise.
17213         (simplify_unary_operation_1): Likewise.
17214         (simplify_binary_operation_1): Likewise.
17215         (simplify_const_binary_operation): Likewise.
17216         (simplify_const_relational_operation): Likewise.
17217         (simplify_subreg): Likewise.
17218         * stor-layout.c (bitwise_mode_for_mode): Likewise.
17219         * var-tracking.c (adjust_mems): Likewise.
17220         (prepare_call_arguments): Likewise.
17222 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17223             Alan Hayward  <alan.hayward@arm.com>
17224             David Sherwood  <david.sherwood@arm.com>
17226         * machmode.h (is_int_mode): New fuction.
17227         * combine.c (find_split_point): Use it.
17228         (combine_simplify_rtx): Likewise.
17229         (simplify_if_then_else): Likewise.
17230         (simplify_set): Likewise.
17231         (simplify_shift_const_1): Likewise.
17232         (simplify_comparison): Likewise.
17233         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
17234         * cse.c (notreg_cost): Likewise.
17235         (cse_insn): Likewise.
17236         * cselib.c (cselib_lookup_1): Likewise.
17237         * dojump.c (do_jump_1): Likewise.
17238         (do_compare_rtx_and_jump): Likewise.
17239         * dse.c (get_call_args): Likewise.
17240         * dwarf2out.c (rtl_for_decl_init): Likewise.
17241         (native_encode_initializer): Likewise.
17242         * expmed.c (emit_store_flag_1): Likewise.
17243         (emit_store_flag): Likewise.
17244         * expr.c (convert_modes): Likewise.
17245         (store_field): Likewise.
17246         (expand_expr_real_1): Likewise.
17247         * fold-const.c (fold_read_from_constant_string): Likewise.
17248         * gimple-ssa-sprintf.c (get_format_string): Likewise.
17249         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
17250         * optabs.c (expand_binop): Likewise.
17251         (expand_unop): Likewise.
17252         (expand_abs_nojump): Likewise.
17253         (expand_one_cmpl_abs_nojump): Likewise.
17254         * simplify-rtx.c (mode_signbit_p): Likewise.
17255         (val_signbit_p): Likewise.
17256         (val_signbit_known_set_p): Likewise.
17257         (val_signbit_known_clear_p): Likewise.
17258         (simplify_relational_operation_1): Likewise.
17259         * tree.c (vector_type_mode): Likewise.
17261 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17262             Alan Hayward  <alan.hayward@arm.com>
17263             David Sherwood  <david.sherwood@arm.com>
17265         * machmode.h (smallest_mode_for_size): Fix formatting.
17266         (smallest_int_mode_for_size): New function.
17267         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
17268         instead of smallest_mode_for_size.
17269         * combine.c (make_extraction): Likewise.
17270         * config/arc/arc.c (arc_expand_movmem): Likewise.
17271         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
17272         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
17273         * config/s390/s390.c (s390_expand_insv): Likewise.
17274         * config/sparc/sparc.c (assign_int_registers): Likewise.
17275         * config/spu/spu.c (spu_function_value): Likewise.
17276         (spu_function_arg): Likewise.
17277         * coverage.c (get_gcov_type): Likewise.
17278         (get_gcov_unsigned_t): Likewise.
17279         * dse.c (find_shift_sequence): Likewise.
17280         * expmed.c (store_bit_field_1): Likewise.
17281         * expr.c (convert_move): Likewise.
17282         (store_field): Likewise.
17283         * internal-fn.c (expand_arith_overflow): Likewise.
17284         * optabs-query.c (get_best_extraction_insn): Likewise.
17285         * optabs.c (expand_twoval_binop_libfunc): Likewise.
17286         * stor-layout.c (layout_type): Likewise.
17287         (initialize_sizetypes): Likewise.
17288         * targhooks.c (default_get_mask_mode): Likewise.
17289         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
17291 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17292             Alan Hayward  <alan.hayward@arm.com>
17293             David Sherwood  <david.sherwood@arm.com>
17295         * machmode.h (opt_mode::else_blk): New function.
17296         (int_mode_for_mode): Declare.
17297         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
17298         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
17299         return type.
17300         * cfgexpand.c (expand_debug_expr): Likewise.
17301         * combine.c (gen_lowpart_or_truncate): Likewise.
17302         (gen_lowpart_for_combine): Likewise.
17303         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
17304         * config/avr/avr.c (avr_to_int_mode): Likewise.
17305         (avr_out_plus_1): Likewise.
17306         (avr_out_plus): Likewise.
17307         (avr_out_round): Likewise.
17308         * config/i386/i386.c (ix86_split_to_parts): Likewise.
17309         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
17310         (s390_expand_vcond): Likewise.
17311         * config/spu/spu.c (spu_split_immediate): Likewise.
17312         (spu_expand_mov): Likewise.
17313         * dse.c (get_stored_val): Likewise.
17314         * expmed.c (store_bit_field_1): Likewise.
17315         (convert_extracted_bit_field): Use int_mode_for_mode instead of
17316         int_mode_for_size.
17317         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
17318         (extract_low_bits): Likewise.
17319         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
17320         handling rather than repeating the check.
17321         (emit_group_store): Likewise.
17322         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
17323         * optabs.c (expand_absneg_bit): Likewise.
17324         (expand_copysign_absneg): Likewise.
17325         (expand_copysign_bit): Likewise.
17326         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
17327         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
17328         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
17329         * var-tracking.c (prepare_call_arguments):  Likewise.
17330         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
17331         int_mode_for_mode instead of mode_for_size.
17332         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
17334 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17335             Alan Hayward  <alan.hayward@arm.com>
17336             David Sherwood  <david.sherwood@arm.com>
17338         * machmode.h (int_mode_for_size): New function.
17339         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
17340         instead of mode_for_size.
17341         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
17342         explicit.
17343         * combine.c (expand_field_assignment): Use int_mode_for_size
17344         instead of mode_for_size.
17345         (make_extraction): Likewise.
17346         (simplify_shift_const_1): Likewise.
17347         (simplify_comparison): Likewise.
17348         * dojump.c (do_jump): Likewise.
17349         * dwarf2out.c (mem_loc_descriptor): Likewise.
17350         * emit-rtl.c (init_derived_machine_modes): Likewise.
17351         * expmed.c (flip_storage_order): Likewise.
17352         (convert_extracted_bit_field): Likewise.
17353         * expr.c (copy_blkmode_from_reg): Likewise.
17354         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
17355         * internal-fn.c (expand_mul_overflow): Likewise.
17356         * lower-subreg.c (simple_move): Likewise.
17357         * optabs-libfuncs.c (init_optabs): Likewise.
17358         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17359         * tree.c (vector_type_mode): Likewise.
17360         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
17361         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
17362         * tree-vect-generic.c (expand_vector_parallel): Likewise.
17363         * tree-vect-stmts.c (vectorizable_load): Likewise.
17364         (vectorizable_store): Likewise.
17366 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17367             Alan Hayward  <alan.hayward@arm.com>
17368             David Sherwood  <david.sherwood@arm.com>
17370         * coretypes.h (pod_mode): New type.
17371         (scalar_int_mode_pod): New typedef.
17372         * machmode.h (pod_mode): New class.
17373         (int_n_data_t::m): Change type to scalar_int_mode_pod.
17374         * genmodes.c (emit_mode_int_n): Update accordingly.
17375         * lower-subreg.h (target_lower_subreg): Change type to
17376         scalar_int_mode_pod.
17377         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
17378         scalar_int_mode_pod.
17380 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17381             Alan Hayward  <alan.hayward@arm.com>
17382             David Sherwood  <david.sherwood@arm.com>
17384         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
17385         machine_mode to scalar_int_mode.
17386         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
17387         (rs6000_option_override_internal): Remove cast to int.
17388         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
17389         machine_mode to scalar_int_mode.
17390         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
17391         (rs6000_option_override_internal): Remove cast to int.
17392         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
17393         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
17394         to machine_mode.
17395         * config/s390/s390.c (s390_expand_builtin): Likewise.
17396         * coretypes.h (scalar_int_mode): New type.
17397         (opt_scalar_int_mode): New typedef.
17398         * machmode.h (scalar_int_mode): New class.
17399         (scalar_int_mode::includes_p): New function.
17400         (byte_mode): Change type to scalar_int_mode.
17401         (word_mode): Likewise.
17402         (ptr_mode): Likewise.
17403         * emit-rtl.c (byte_mode): Likewise.
17404         (word_mode): Likewise.
17405         (ptr_mode): Likewise.
17406         (init_derived_machine_modes): Update accordingly.
17407         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
17408         and MODE_PARTIAL_INT.
17409         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
17410         opt_scalar_int_mode.
17412 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17413             Alan Hayward  <alan.hayward@arm.com>
17414             David Sherwood  <david.sherwood@arm.com>
17416         * target.def (libgcc_floating_mode_supported_p): Take a
17417         scalar_float_mode.
17418         * doc/tm.texi: Regenerate.
17419         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
17420         scalar_float_mode.
17421         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
17422         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
17423         Likewise.
17425 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17426             Alan Hayward  <alan.hayward@arm.com>
17427             David Sherwood  <david.sherwood@arm.com>
17429         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
17430         * doc/tm.texi: Regenerate.
17431         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
17432         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
17433         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
17434         * targhooks.h (default_floatn_mode): Likewise.
17435         * targhooks.c (default_floatn_mode): Likewise.
17436         * tree.c (build_common_tree_nodes): Update accordingly.
17438 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17439             Alan Hayward  <alan.hayward@arm.com>
17440             David Sherwood  <david.sherwood@arm.com>
17442         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
17443         (mode_iterator::iterate_p): Likewise.
17444         (mode_iterator::get_wider): Likewise.
17445         * expr.c (init_expr_target): Use opt_scalar_float_mode.
17447 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17448             Alan Hayward  <alan.hayward@arm.com>
17449             David Sherwood  <david.sherwood@arm.com>
17451         * coretypes.h (opt_scalar_float_mode): New typedef.
17452         * machmode.h (float_mode_for_size): New function.
17453         * emit-rtl.c (double_mode): Delete.
17454         (init_emit_once): Use float_mode_for_size.
17455         * stor-layout.c (layout_type): Likewise.
17456         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
17458 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17459             Alan Hayward  <alan.hayward@arm.com>
17460             David Sherwood  <david.sherwood@arm.com>
17462         * output.h (assemble_real): Take a scalar_float_mode.
17463         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
17464         * config/arm/arm.md (consttable_4): Likewise.
17465         (consttable_8): Likewise.
17466         (consttable_16): Likewise.
17467         * config/mips/mips.md (consttable_float): Likewise.
17468         * config/s390/s390.c (s390_output_pool_entry): Likewise.
17469         * varasm.c (assemble_real): Take a scalar_float_mode.
17470         (output_constant_pool_2): Update accordingly.
17471         (output_constant): Likewise.
17473 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17474             Alan Hayward  <alan.hayward@arm.com>
17475             David Sherwood  <david.sherwood@arm.com>
17477         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
17478         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
17479         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
17480         (native_encode_real): Likewise.
17481         (native_interpret_real): Likewise.
17482         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
17483         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17485 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17486             Alan Hayward  <alan.hayward@arm.com>
17487             David Sherwood  <david.sherwood@arm.com>
17489         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
17490         <scalar_float_mode>.  Simplify.
17491         (gen_extend_conv_libfunc): Likewise.
17493 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17494             Alan Hayward  <alan.hayward@arm.com>
17495             David Sherwood  <david.sherwood@arm.com>
17497         * coretypes.h (scalar_float_mode): New type.
17498         * machmode.h (mode_traits::from_int): Use machine_mode if
17499         USE_ENUM_MODES is defined.
17500         (is_a): New function.
17501         (as_a): Likewise.
17502         (dyn_cast): Likewise.
17503         (scalar_float_mode): New class.
17504         (scalar_float_mode::includes_p): New function.
17505         (is_float_mode): Likewise.
17506         * gdbhooks.py (MachineModePrinter): New class.
17507         (build_pretty_printer): Use it for scalar_float_mode.
17508         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
17509         (format_helper::format_helper): Turn into a template.
17510         * genmodes.c (get_mode_class): New function.
17511         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
17512         or machine_mode if none.
17513         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
17514         as_a <scalar_float_mode>.
17515         * dwarf2out.c (mem_loc_descriptor): Likewise.
17516         (insert_float): Likewise.
17517         (add_const_value_attribute): Likewise.
17518         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17519         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
17520         (expand_unop): Update accordingly.
17521         (expand_abs_nojump): Likewise.
17522         (expand_copysign_absneg): Take a scalar_float_mode.
17523         (expand_copysign_bit): Likewise.
17524         (expand_copysign): Update accordingly.
17526 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17527             Alan Hayward  <alan.hayward@arm.com>
17528             David Sherwood  <david.sherwood@arm.com>
17530         * coretypes.h (opt_mode): New class.
17531         * machmode.h (opt_mode): Likewise.
17532         (opt_mode::else_void): New function.
17533         (opt_mode::require): Likewise.
17534         (opt_mode::exists): Likewise.
17535         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
17536         (GET_MODE_2XWIDER_MODE): Likewise.
17537         (mode_iterator::get_wider): Update accordingly.
17538         (mode_iterator::get_2xwider): Likewise.
17539         (mode_iterator::get_known_wider): Likewise, turning into a template.
17540         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
17541         forcing a wider mode to exist.
17542         * config/cr16/cr16.h (LONG_REG_P): Likewise.
17543         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
17544         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
17545         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
17546         * lower-subreg.c (init_lower_subreg): Likewise.
17547         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
17548         on the final iteration.
17549         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
17550         a wider mode exists before asking for a move pattern.
17551         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
17552         forcing a wider mode to exist.
17553         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
17554         returning false if no such mode exists.
17555         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
17556         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
17557         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
17558         Avoid checking for a MODE_INT if we already know the mode is not a
17559         SCALAR_INT_MODE_P.
17560         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
17561         forcing a wider mode to exist.
17562         (expmed_mult_highpart_optab): Likewise.
17563         (expmed_mult_highpart): Likewise.
17564         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
17565         using else_void.
17566         * lto-streamer-in.c (lto_input_mode_table): Likewise.
17567         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
17568         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
17569         * internal-fn.c (expand_mul_overflow): Update use of
17570         GET_MODE_2XWIDER_MODE.
17571         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17572         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
17573         GET_MODE_WIDER_MODE.
17574         (convert_plusminus_to_widen): Likewise.
17575         * tree-switch-conversion.c (array_value_type): Likewise.
17576         * var-tracking.c (emit_note_insn_var_location): Likewise.
17577         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17578         Return false inside rather than outside the loop if no wider mode
17579         exists
17580         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
17581         and GET_MODE_2XWIDER_MODE
17582         (can_compare_p): Use else_void.
17583         * gdbhooks.py (OptMachineModePrinter): New class.
17584         (build_pretty_printer): Use it for opt_mode.
17586 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17587             Alan Hayward  <alan.hayward@arm.com>
17588             David Sherwood  <david.sherwood@arm.com>
17590         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
17591         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
17593 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17594             Alan Hayward  <alan.hayward@arm.com>
17595             David Sherwood  <david.sherwood@arm.com>
17597         * machmode.h (mode_traits): New structure.
17598         (get_narrowest_mode): New function.
17599         (mode_iterator::start): Likewise.
17600         (mode_iterator::iterate_p): Likewise.
17601         (mode_iterator::get_wider): Likewise.
17602         (mode_iterator::get_known_wider): Likewise.
17603         (mode_iterator::get_2xwider): Likewise.
17604         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
17605         (FOR_EACH_MODE): Likewise.
17606         (FOR_EACH_MODE_FROM): Likewise.
17607         (FOR_EACH_MODE_UNTIL): Likewise.
17608         (FOR_EACH_WIDER_MODE): Likewise.
17609         (FOR_EACH_2XWIDER_MODE): Likewise.
17610         * builtins.c (expand_builtin_strlen): Use new mode iterators.
17611         * combine.c (simplify_comparison): Likewise
17612         * config/i386/i386.c (type_natural_mode): Likewise.
17613         * cse.c (cse_insn): Likewise.
17614         * dse.c (find_shift_sequence): Likewise.
17615         * emit-rtl.c (init_derived_machine_modes): Likewise.
17616         (init_emit_once): Likewise.
17617         * explow.c (hard_function_value): Likewise.
17618         * expmed.c (extract_fixed_bit_field_1): Likewise.
17619         (extract_bit_field_1): Likewise.
17620         (expand_divmod): Likewise.
17621         (emit_store_flag_1): Likewise.
17622         * expr.c (init_expr_target): Likewise.
17623         (convert_move): Likewise.
17624         (alignment_for_piecewise_move): Likewise.
17625         (widest_int_mode_for_size): Likewise.
17626         (emit_block_move_via_movmem): Likewise.
17627         (copy_blkmode_to_reg): Likewise.
17628         (set_storage_via_setmem): Likewise.
17629         (compress_float_constant): Likewise.
17630         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17631         * optabs-query.c (get_best_extraction_insn): Likewise.
17632         * optabs.c (expand_binop): Likewise.
17633         (expand_twoval_unop): Likewise.
17634         (expand_twoval_binop): Likewise.
17635         (widen_leading): Likewise.
17636         (widen_bswap): Likewise.
17637         (expand_parity): Likewise.
17638         (expand_unop): Likewise.
17639         (prepare_cmp_insn): Likewise.
17640         (prepare_float_lib_cmp): Likewise.
17641         (expand_float): Likewise.
17642         (expand_fix): Likewise.
17643         (expand_sfix_optab): Likewise.
17644         * postreload.c (move2add_use_add2_insn): Likewise.
17645         * reg-stack.c (reg_to_stack): Likewise.
17646         * reginfo.c (choose_hard_reg_mode): Likewise.
17647         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
17648         * stor-layout.c (mode_for_size): Likewise.
17649         (smallest_mode_for_size): Likewise.
17650         (mode_for_vector): Likewise.
17651         (finish_bitfield_representative): Likewise.
17652         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
17653         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
17654         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17655         * var-tracking.c (prepare_call_arguments): Likewise.
17657 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17658             Alan Hayward  <alan.hayward@arm.com>
17659             David Sherwood  <david.sherwood@arm.com>
17661         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
17662         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
17663         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
17664         * machmode.h (mode_size): Move earlier in file.
17665         (mode_precision): Likewise.
17666         (mode_inner): Likewise.
17667         (mode_nunits): Likewise.
17668         (mode_unit_size): Likewise.
17669         (unit_unit_precision): Likewise.
17670         (mode_wider): Likewise.
17671         (mode_2xwider): Likewise.
17672         (machine_mode): New class.
17673         (mode_to_bytes): New function.
17674         (mode_to_bits): Likewise.
17675         (mode_to_precision): Likewise.
17676         (mode_to_inner): Likewise.
17677         (mode_to_unit_size): Likewise.
17678         (mode_to_unit_precision): Likewise.
17679         (mode_to_nunits): Likewise.
17680         (GET_MODE_SIZE): Use mode_to_bytes.
17681         (GET_MODE_BITSIZE): Use mode_to_bits.
17682         (GET_MODE_PRECISION): Use mode_to_precision.
17683         (GET_MODE_INNER): Use mode_to_inner.
17684         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
17685         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
17686         (GET_MODE_NUNITS): Use mode_to_nunits.
17687         * system.h (ALWAYS_INLINE): New macro.
17688         * config/powerpcspe/powerpcspe-c.c
17689         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
17690         int for arg1_mode and arg2_mode.
17692 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17693             Alan Hayward  <alan.hayward@arm.com>
17694             David Sherwood  <david.sherwood@arm.com>
17696         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
17697         Prefix mode names with E_ in case statements.
17698         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17699         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
17700         (aarch64_split_simd_move): Likewise.
17701         (aarch64_gen_storewb_pair): Likewise.
17702         (aarch64_gen_loadwb_pair): Likewise.
17703         (aarch64_gen_store_pair): Likewise.
17704         (aarch64_gen_load_pair): Likewise.
17705         (aarch64_get_condition_code_1): Likewise.
17706         (aarch64_constant_pool_reload_icode): Likewise.
17707         (get_rsqrte_type): Likewise.
17708         (get_rsqrts_type): Likewise.
17709         (get_recpe_type): Likewise.
17710         (get_recps_type): Likewise.
17711         (aarch64_gimplify_va_arg_expr): Likewise.
17712         (aarch64_simd_container_mode): Likewise.
17713         (aarch64_emit_load_exclusive): Likewise.
17714         (aarch64_emit_store_exclusive): Likewise.
17715         (aarch64_expand_compare_and_swap): Likewise.
17716         (aarch64_gen_atomic_cas): Likewise.
17717         (aarch64_emit_bic): Likewise.
17718         (aarch64_emit_atomic_swap): Likewise.
17719         (aarch64_emit_atomic_load_op): Likewise.
17720         (aarch64_evpc_trn): Likewise.
17721         (aarch64_evpc_uzp): Likewise.
17722         (aarch64_evpc_zip): Likewise.
17723         (aarch64_evpc_ext): Likewise.
17724         (aarch64_evpc_rev): Likewise.
17725         (aarch64_evpc_dup): Likewise.
17726         (aarch64_gen_ccmp_first): Likewise.
17727         (aarch64_gen_ccmp_next): Likewise.
17728         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
17729         (alpha_emit_xfloating_libcall): Likewise.
17730         (emit_insxl): Likewise.
17731         (alpha_arg_type): Likewise.
17732         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
17733         (arc_preferred_simd_mode): Likewise.
17734         (arc_secondary_reload): Likewise.
17735         (get_arc_condition_code): Likewise.
17736         (arc_print_operand): Likewise.
17737         (arc_legitimate_constant_p): Likewise.
17738         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17739         * config/arc/arc.md (casesi_load): Likewise.
17740         (casesi_compact_jump): Likewise.
17741         * config/arc/predicates.md (proper_comparison_operator): Likewise.
17742         (cc_use_register): Likewise.
17743         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17744         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
17745         (arm_init_iwmmxt_builtins): Likewise.
17746         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
17747         (neon_expand_vector_init): Likewise.
17748         (arm_attr_length_move_neon): Likewise.
17749         (maybe_get_arm_condition_code): Likewise.
17750         (arm_emit_vector_const): Likewise.
17751         (arm_preferred_simd_mode): Likewise.
17752         (arm_output_iwmmxt_tinsr): Likewise.
17753         (thumb1_output_casesi): Likewise.
17754         (thumb2_output_casesi): Likewise.
17755         (arm_emit_load_exclusive): Likewise.
17756         (arm_emit_store_exclusive): Likewise.
17757         (arm_expand_compare_and_swap): Likewise.
17758         (arm_evpc_neon_vuzp): Likewise.
17759         (arm_evpc_neon_vzip): Likewise.
17760         (arm_evpc_neon_vrev): Likewise.
17761         (arm_evpc_neon_vtrn): Likewise.
17762         (arm_evpc_neon_vext): Likewise.
17763         (arm_validize_comparison): Likewise.
17764         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
17765         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
17766         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
17767         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
17768         (c6x_preferred_simd_mode): Likewise.
17769         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
17770         (epiphany_rtx_costs): Likewise.
17771         * config/epiphany/predicates.md (proper_comparison_operator):
17772         Likewise.
17773         * config/frv/frv.c (condexec_memory_operand): Likewise.
17774         (frv_emit_move): Likewise.
17775         (output_move_single): Likewise.
17776         (output_condmove_single): Likewise.
17777         (frv_hard_regno_mode_ok): Likewise.
17778         (frv_matching_accg_mode): Likewise.
17779         * config/h8300/h8300.c (split_adds_subs): Likewise.
17780         (h8300_rtx_costs): Likewise.
17781         (h8300_print_operand): Likewise.
17782         (compute_mov_length): Likewise.
17783         (output_logical_op): Likewise.
17784         (compute_logical_op_length): Likewise.
17785         (compute_logical_op_cc): Likewise.
17786         (h8300_shift_needs_scratch_p): Likewise.
17787         (output_a_shift): Likewise.
17788         (compute_a_shift_length): Likewise.
17789         (compute_a_shift_cc): Likewise.
17790         (expand_a_rotate): Likewise.
17791         (output_a_rotate): Likewise.
17792         * config/i386/i386.c (classify_argument): Likewise.
17793         (function_arg_advance_32): Likewise.
17794         (function_arg_32): Likewise.
17795         (function_arg_64): Likewise.
17796         (function_value_64): Likewise.
17797         (ix86_gimplify_va_arg): Likewise.
17798         (ix86_legitimate_constant_p): Likewise.
17799         (put_condition_code): Likewise.
17800         (split_double_mode): Likewise.
17801         (ix86_avx256_split_vector_move_misalign): Likewise.
17802         (ix86_expand_vector_logical_operator): Likewise.
17803         (ix86_split_idivmod): Likewise.
17804         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
17805         (ix86_build_const_vector): Likewise.
17806         (ix86_build_signbit_mask): Likewise.
17807         (ix86_match_ccmode): Likewise.
17808         (ix86_cc_modes_compatible): Likewise.
17809         (ix86_expand_branch): Likewise.
17810         (ix86_expand_sse_cmp): Likewise.
17811         (ix86_expand_sse_movcc): Likewise.
17812         (ix86_expand_int_sse_cmp): Likewise.
17813         (ix86_expand_vec_perm_vpermi2): Likewise.
17814         (ix86_expand_vec_perm): Likewise.
17815         (ix86_expand_sse_unpack): Likewise.
17816         (ix86_expand_int_addcc): Likewise.
17817         (ix86_split_to_parts): Likewise.
17818         (ix86_vectorize_builtin_gather): Likewise.
17819         (ix86_vectorize_builtin_scatter): Likewise.
17820         (avx_vpermilp_parallel): Likewise.
17821         (inline_memory_move_cost): Likewise.
17822         (ix86_tieable_integer_mode_p): Likewise.
17823         (x86_maybe_negate_const_int): Likewise.
17824         (ix86_expand_vector_init_duplicate): Likewise.
17825         (ix86_expand_vector_init_one_nonzero): Likewise.
17826         (ix86_expand_vector_init_one_var): Likewise.
17827         (ix86_expand_vector_init_concat): Likewise.
17828         (ix86_expand_vector_init_interleave): Likewise.
17829         (ix86_expand_vector_init_general): Likewise.
17830         (ix86_expand_vector_set): Likewise.
17831         (ix86_expand_vector_extract): Likewise.
17832         (emit_reduc_half): Likewise.
17833         (ix86_emit_i387_round): Likewise.
17834         (ix86_mangle_type): Likewise.
17835         (ix86_expand_round_sse4): Likewise.
17836         (expand_vec_perm_blend): Likewise.
17837         (canonicalize_vector_int_perm): Likewise.
17838         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
17839         (expand_vec_perm_1): Likewise.
17840         (expand_vec_perm_interleave3): Likewise.
17841         (expand_vec_perm_even_odd_pack): Likewise.
17842         (expand_vec_perm_even_odd_1): Likewise.
17843         (expand_vec_perm_broadcast_1): Likewise.
17844         (ix86_vectorize_vec_perm_const_ok): Likewise.
17845         (ix86_expand_vecop_qihi): Likewise.
17846         (ix86_expand_mul_widen_hilo): Likewise.
17847         (ix86_expand_sse2_abs): Likewise.
17848         (ix86_expand_pextr): Likewise.
17849         (ix86_expand_pinsr): Likewise.
17850         (ix86_preferred_simd_mode): Likewise.
17851         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
17852         * config/i386/sse.md (*andnot<mode>3): Likewise.
17853         (<mask_codefor><code><mode>3<mask_name>): Likewise.
17854         (*<code><mode>3): Likewise.
17855         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
17856         (ia64_expand_atomic_op): Likewise.
17857         (ia64_arg_type): Likewise.
17858         (ia64_mode_to_int): Likewise.
17859         (ia64_scalar_mode_supported_p): Likewise.
17860         (ia64_vector_mode_supported_p): Likewise.
17861         (expand_vec_perm_broadcast): Likewise.
17862         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
17863         (iq2000_function_arg_advance): Likewise.
17864         (iq2000_function_arg): Likewise.
17865         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
17866         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
17867         (m68k_libcall_value): Likewise.
17868         (m68k_function_value): Likewise.
17869         (sched_attr_op_type): Likewise.
17870         * config/mcore/mcore.c (mcore_output_move): Likewise.
17871         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
17872         Likewise.
17873         (microblaze_function_arg): Likewise.
17874         * config/mips/mips.c (mips16_build_call_stub): Likewise.
17875         (mips_print_operand): Likewise.
17876         (mips_mode_ok_for_mov_fmt_p): Likewise.
17877         (mips_vector_mode_supported_p): Likewise.
17878         (mips_preferred_simd_mode): Likewise.
17879         (mips_expand_vpc_loongson_even_odd): Likewise.
17880         (mips_expand_vec_unpack): Likewise.
17881         (mips_expand_vi_broadcast): Likewise.
17882         (mips_expand_vector_init): Likewise.
17883         (mips_expand_vec_reduc): Likewise.
17884         (mips_expand_msa_cmp): Likewise.
17885         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
17886         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
17887         (cc_flags_for_mode): Likewise.
17888         * config/msp430/msp430.c (msp430_print_operand): Likewise.
17889         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
17890         (nds32_output_casesi_pc_relative): Likewise.
17891         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17892         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
17893         (nvptx_gen_unpack): Likewise.
17894         (nvptx_gen_pack): Likewise.
17895         (nvptx_gen_shuffle): Likewise.
17896         (nvptx_gen_wcast): Likewise.
17897         (nvptx_preferred_simd_mode): Likewise.
17898         * config/pa/pa.c (pa_secondary_reload): Likewise.
17899         * config/pa/predicates.md (base14_operand): Likewise.
17900         * config/powerpcspe/powerpcspe-c.c
17901         (altivec_resolve_overloaded_builtin): Likewise.
17902         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
17903         Likewise.
17904         (rs6000_preferred_simd_mode): Likewise.
17905         (output_vec_const_move): Likewise.
17906         (rs6000_expand_vector_extract): Likewise.
17907         (rs6000_split_vec_extract_var): Likewise.
17908         (reg_offset_addressing_ok_p): Likewise.
17909         (rs6000_legitimate_offset_address_p): Likewise.
17910         (rs6000_legitimize_address): Likewise.
17911         (rs6000_emit_set_const): Likewise.
17912         (rs6000_const_vec): Likewise.
17913         (rs6000_emit_move): Likewise.
17914         (spe_build_register_parallel): Likewise.
17915         (rs6000_darwin64_record_arg_recurse): Likewise.
17916         (swap_selector_for_mode): Likewise.
17917         (spe_init_builtins): Likewise.
17918         (paired_init_builtins): Likewise.
17919         (altivec_init_builtins): Likewise.
17920         (do_load_for_compare): Likewise.
17921         (rs6000_generate_compare): Likewise.
17922         (rs6000_expand_float128_convert): Likewise.
17923         (emit_load_locked): Likewise.
17924         (emit_store_conditional): Likewise.
17925         (rs6000_output_function_epilogue): Likewise.
17926         (rs6000_handle_altivec_attribute): Likewise.
17927         (rs6000_function_value): Likewise.
17928         (emit_fusion_gpr_load): Likewise.
17929         (emit_fusion_p9_load): Likewise.
17930         (emit_fusion_p9_store): Likewise.
17931         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
17932         (fusion_gpr_mem_load): Likewise.
17933         (fusion_addis_mem_combo_load): Likewise.
17934         (fusion_addis_mem_combo_store): Likewise.
17935         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
17936         (fusion_gpr_mem_load): Likewise.
17937         (fusion_addis_mem_combo_load): Likewise.
17938         (fusion_addis_mem_combo_store): Likewise.
17939         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17940         Likewise.
17941         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
17942         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
17943         (rs6000_preferred_simd_mode): Likewise.
17944         (output_vec_const_move): Likewise.
17945         (rs6000_expand_vector_extract): Likewise.
17946         (rs6000_split_vec_extract_var): Likewise.
17947         (reg_offset_addressing_ok_p): Likewise.
17948         (rs6000_legitimate_offset_address_p): Likewise.
17949         (rs6000_legitimize_address): Likewise.
17950         (rs6000_emit_set_const): Likewise.
17951         (rs6000_const_vec): Likewise.
17952         (rs6000_emit_move): Likewise.
17953         (rs6000_darwin64_record_arg_recurse): Likewise.
17954         (swap_selector_for_mode): Likewise.
17955         (paired_init_builtins): Likewise.
17956         (altivec_init_builtins): Likewise.
17957         (rs6000_expand_float128_convert): Likewise.
17958         (emit_load_locked): Likewise.
17959         (emit_store_conditional): Likewise.
17960         (rs6000_output_function_epilogue): Likewise.
17961         (rs6000_handle_altivec_attribute): Likewise.
17962         (rs6000_function_value): Likewise.
17963         (emit_fusion_gpr_load): Likewise.
17964         (emit_fusion_p9_load): Likewise.
17965         (emit_fusion_p9_store): Likewise.
17966         * config/rx/rx.c (rx_gen_move_template): Likewise.
17967         (flags_from_mode): Likewise.
17968         * config/s390/predicates.md (s390_alc_comparison): Likewise.
17969         (s390_slb_comparison): Likewise.
17970         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
17971         (s390_vector_mode_supported_p): Likewise.
17972         (s390_cc_modes_compatible): Likewise.
17973         (s390_match_ccmode_set): Likewise.
17974         (s390_canonicalize_comparison): Likewise.
17975         (s390_emit_compare_and_swap): Likewise.
17976         (s390_branch_condition_mask): Likewise.
17977         (s390_rtx_costs): Likewise.
17978         (s390_secondary_reload): Likewise.
17979         (__SECONDARY_RELOAD_CASE): Likewise.
17980         (s390_expand_cs): Likewise.
17981         (s390_preferred_simd_mode): Likewise.
17982         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
17983         * config/sh/sh.c (sh_print_operand): Likewise.
17984         (dump_table): Likewise.
17985         (sh_secondary_reload): Likewise.
17986         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17987         * config/sh/sh.md (casesi_worker_1): Likewise.
17988         (casesi_worker_2): Likewise.
17989         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
17990         (fcc_comparison_operator): Likewise.
17991         * config/sparc/sparc.c (sparc_expand_move): Likewise.
17992         (emit_soft_tfmode_cvt): Likewise.
17993         (sparc_preferred_simd_mode): Likewise.
17994         (output_cbranch): Likewise.
17995         (sparc_print_operand): Likewise.
17996         (sparc_expand_vec_perm_bmask): Likewise.
17997         (vector_init_bshuffle): Likewise.
17998         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
17999         (spu_vector_mode_supported_p): Likewise.
18000         (spu_expand_insv): Likewise.
18001         (spu_emit_branch_or_set): Likewise.
18002         (spu_handle_vector_attribute): Likewise.
18003         (spu_builtin_splats): Likewise.
18004         (spu_builtin_extract): Likewise.
18005         (spu_builtin_promote): Likewise.
18006         (spu_expand_sign_extend): Likewise.
18007         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
18008         (tilegx_simd_int): Likewise.
18009         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
18010         (tilepro_simd_int): Likewise.
18011         * config/v850/v850.c (const_double_split): Likewise.
18012         (v850_print_operand): Likewise.
18013         (ep_memory_offset): Likewise.
18014         * config/vax/vax.c (vax_rtx_costs): Likewise.
18015         (vax_output_int_move): Likewise.
18016         (vax_output_int_add): Likewise.
18017         (vax_output_int_subtract): Likewise.
18018         * config/visium/predicates.md (visium_branch_operator): Likewise.
18019         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
18020         (visium_print_operand_address): Likewise.
18021         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18022         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
18023         (xtensa_expand_conditional_branch): Likewise.
18024         (xtensa_copy_incoming_a7): Likewise.
18025         (xtensa_output_literal): Likewise.
18026         * dfp.c (decimal_real_maxval): Likewise.
18027         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18029 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18030             Alan Hayward  <alan.hayward@arm.com>
18031             David Sherwood  <david.sherwood@arm.com>
18033         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
18034         (mode_nunits_inline): Likewise.
18035         (mode_inner_inline): Likewise.
18036         (mode_unit_size_inline): Likewise.
18037         (mode_unit_precision_inline): Likewise.
18038         (emit_insn_modes_h): Likewise.  Also emit a #define of the
18039         unprefixed name.
18040         (emit_mode_wider): Add an E_ prefix to mode names.
18041         (emit_mode_complex): Likewise.
18042         (emit_mode_inner): Likewise.
18043         (emit_mode_adjustments): Likewise.
18044         (emit_mode_int_n): Likewise.
18045         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
18046         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
18047         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
18048         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
18049         (CRC32_BUILTIN, ENTRY): Likewise.
18050         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
18051         (aarch64_pop_regs): Likewise.
18052         (aarch64_process_components): Likewise.
18053         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
18054         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
18055         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
18056         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
18057         * config/arm/arm.c (arm_init_libfuncs): Likewise.
18058         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
18059         Likewise.
18060         * config/i386/i386-builtin.def (pcmpestr): Likewise.
18061         (pcmpistr): Likewise.
18062         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
18063         * config/mmix/mmix.c (mmix_output_condition): Likewise.
18064         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
18065         Likewise.
18066         * config/rl78/rl78.c (mduc_regs): Likewise.
18067         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
18068         (htm_expand_builtin): Likewise.
18069         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
18070         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
18071         * config/xtensa/xtensa.c (print_operand): Likewise.
18072         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
18073         (NUM_MODE_VECTOR_INT): Likewise.
18074         * genoutput.c (null_operand): Likewise.
18075         (output_operand_data): Likewise.
18076         * genrecog.c (print_parameter_value): Likewise.
18077         * lra.c (debug_operand_data): Likewise.
18079 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18081         * dwarf2out.c (scompare_loc_descriptor_wide)
18082         (scompare_loc_descriptor_narrow): New functions, split out from...
18083         (scompare_loc_descriptor): ...here.
18084         * expmed.c (emit_store_flag_int): New function, split out from...
18085         (emit_store_flag): ...here.
18087 2017-08-30  Richard Biener  <rguenther@suse.de>
18089         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
18090         (dwarf2out_early_finish): Move setting of AT_pubnames from
18091         early debug output to early finish.
18093 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
18095         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
18096         and -mdata-region to the assembler.
18098 2017-08-30  Richard Biener  <rguenther@suse.de>
18100         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
18101         attributes.
18102         (gen_subprogram_die): Add DW_AT_object_pointer only early.
18103         (dwarf2out_early_global_decl): Only generate a DIE for the
18104         abstract origin if it doesn't already exist or is a declaration DIE.
18105         (resolve_addr): Do not add the linkage name twice when
18106         generating a stub DIE for the DW_TAG_GNU_call_site target.
18108 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18110         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18111         Use machine_mode rather than int for arg1_mode.
18113 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
18115         PR target/82015
18116         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
18117         that the second argument of the built-in functions to unpack
18118         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
18119         switch statement instead a lot of if statements.
18120         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
18121         Allow 64-bit values to be in Altivec registers as well as
18122         traditional floating point registers.
18123         (pack<mode>, FMOVE128_VSX iterator): Likewise.
18125 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
18127         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
18128         MAX_REGS_PER_ADDRESS == 1.
18130 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
18132         * config/i386/i386.opt (flag_fentry): Do not init to -1.
18133         * config/i386/i386.c (ix86_option_override_internal): Simplify
18134         setting of opts->x_flag_entry.
18136 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18137             Jakub Jelinek  <jakub@redhat.com>
18138             Richard Biener  <rguenther@suse.de>
18140         PR tree-optimization/81503
18141         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
18142         folded constant fits in the target type; reorder tests for clarity.
18144 2017-08-29  Martin Liska  <mliska@suse.cz>
18146         * passes.def: Include pass_lower_switch.
18147         * stmt.c (dump_case_nodes): Remove and move to
18148         tree-switch-conversion.
18149         (case_values_threshold): Likewise.
18150         (expand_switch_as_decision_tree_p): Likewise.
18151         (emit_case_decision_tree): Likewise.
18152         (expand_case): Likewise.
18153         (balance_case_nodes): Likewise.
18154         (node_has_low_bound): Likewise.
18155         (node_has_high_bound): Likewise.
18156         (node_is_bounded): Likewise.
18157         (emit_case_nodes): Likewise.
18158         (struct simple_case_node): New struct.
18159         (add_case_node): Remove.
18160         (emit_case_dispatch_table): Use vector instead of case_list.
18161         (reset_out_edges_aux): Remove.
18162         (compute_cases_per_edge): Likewise.
18163         (expand_case): Build list of simple_case_node.
18164         (expand_sjlj_dispatch_table): Use it.
18165         * tree-switch-conversion.c (struct case_node): Moved from
18166         stmt.c and adjusted.
18167         (emit_case_nodes): Likewise.
18168         (node_has_low_bound): Likewise.
18169         (node_has_high_bound): Likewise.
18170         (node_is_bounded): Likewise.
18171         (case_values_threshold): Likewise.
18172         (reset_out_edges_aux): Likewise.
18173         (compute_cases_per_edge): Likewise.
18174         (add_case_node): Likewise.
18175         (dump_case_nodes): Likewise.
18176         (balance_case_nodes): Likewise.
18177         (expand_switch_as_decision_tree_p): Likewise.
18178         (emit_jump): Likewise.
18179         (emit_case_decision_tree): Likewise.
18180         (try_switch_expansion): Likewise.
18181         (do_jump_if_equal): Likewise.
18182         (emit_cmp_and_jump_insns): Likewise.
18183         (fix_phi_operands_for_edge): New function.
18184         (record_phi_operand_mapping): Likewise.
18185         (class pass_lower_switch): New pass.
18186         (pass_lower_switch::execute): New function.
18187         (make_pass_lower_switch): Likewise.
18188         (conditional_probability):
18189         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
18190         * tree-pass.h: Add make_pass_lower_switch.
18192 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
18194         PR target/80993
18195         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
18196         handlers as used.
18198 2017-08-29  Richard Biener  <rguenther@suse.de>
18200         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
18201         we do not add a DW_AT_inline attribute twice.
18202         (gen_subprogram_die): Remove code setting DW_AT_inline on
18203         DECL_ABSTRACT_P nodes.
18205 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
18207         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
18208         calls to internal functions.
18209         (gimplify_modify_expr): Likewise.
18210         * tree-call-cdce.c (use_internal_fn): Likewise.
18211         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
18212         (convert_to_divmod): Set the nothrow flag.
18213         * tree-if-conv.c (predicate_mem_writes):  Likewise.
18214         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
18215         (vectorizable_call): Likewise.
18216         (vectorizable_store): Likewise.
18217         (vectorizable_load): Likewise.
18218         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
18219         (vect_recog_mask_conversion_pattern): Likewise.
18221 2017-08-29  Martin Liska  <mliska@suse.cz>
18223         PR other/39851
18224         * gcc.c (driver_handle_option): Add new argument.
18225         * opts-common.c (handle_option): Pass
18226         target_option_override_hook.
18227         * opts-global.c (lang_handle_option): Add new option.
18228         (set_default_handlers):  Add new argument.
18229         (decode_options): Likewise.
18230         * opts.c (target_handle_option): Likewise.
18231         (common_handle_option): Call target_option_override_hook.
18232         * opts.h (struct cl_option_handler_func): Add hook for
18233         target option override.
18234         (struct cl_option_handlers): Likewise.
18235         (set_default_handlers): Add new argument.
18236         (decode_options): Likewise.
18237         (common_handle_option): Likewise.
18238         (target_handle_option): Likewise.
18239         * toplev.c (toplev::main): Pass targetm.target_option.override
18240         hook.
18242 2017-08-29  Richard Biener  <rguenther@suse.de>
18243         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
18245         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
18246         life to the active subtree.
18248 2017-08-28  Jeff Law  <law@redhat.com>
18250         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
18251         derive_equivalences.
18252         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
18253         Code moved into....
18254         (edge_info::derive_equivalences): New private member function
18256         * tree-ssa-dom.c (class edge_info): Changed from a struct
18257         to a class.  Add ctor/dtor, methods and data members.
18258         (edge_info::edge_info): Renamed from allocate_edge_info.
18259         Initialize additional members.
18260         (edge_info::~edge_info): New.
18261         (free_dom_edge_info): Delete the edge info.
18262         (record_edge_info): Use new class & associated member functions.
18263         Tighten forms for testing for edge equivalences.
18264         (record_temporary_equivalences): Iterate over the simple
18265         equivalences rather than assuming there's only one per edge.
18266         (cprop_into_successor_phis): Iterate over the simple
18267         equivalences rather than assuming there's only one per edge.
18268         (optimize_stmt): Use operand_equal_p rather than pointer
18269         equality for mini-DSE code.
18271 2017-08-28  Nathan Sidwell  <nathan@acm.org>
18273         * gcc.c (execute): Fold SIGPIPE handling into switch
18274         statement.  Adjust internal error message.
18276 2017-08-28  Richard Biener  <rguenther@suse.de>
18278         PR debug/81993
18279         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
18280         Do nothing for removed DIEs.
18282 2017-08-28  Richard Biener  <rguenther@suse.de>
18284         PR tree-optimization/81977
18285         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
18286         memcpy.
18288 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
18290         PR target/80640
18291         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
18292         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
18293         using targetm.gen_mem_thread_fence.
18295 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
18297         PR target/81995
18298         * config/i386/i386.md (*<btsc><mode>): Change operand 2
18299         predicate to register_operand.  Reorder operands.
18300         (*btr<mode>): Ditto.
18301         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
18302         (*btr<mode>_mask): Ditto.
18304 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
18306         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
18307         * config/rs6000/xmmintrin.h: New file.
18308         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
18310 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18312         PR target/81504
18313         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
18314         parameter and_insn and return it.
18315         (recombine_lvx_pattern): Insert a copy to ensure availability of
18316         the base register of the copied masking operation at the point of
18317         the instruction replacement.
18318         (recombine_stvx_pattern): Likewise.
18320 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
18322         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
18323         undocumented switches.
18324         (-mpower9-dform-vector): Likewise.
18325         (-mpower9-dform): Likewise.
18326         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
18327         comments to delete references to -mpower9-dform* switches.
18328         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
18329         Delete reference to -mpower9-dform* switches, test for
18330         -mpower9-vector instead.
18331         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
18332         (OTHER_P9_VECTOR_MASKS): Likewise.
18333         (POWERPC_MASKS): Likewise.
18334         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
18335         tests against -mpower9-dform* to -mpower9-vector.  Delete code
18336         that checked for -mpower9-dform* consistancy with other options.
18337         Add test for -mpower9-misc to enable other power9 switches.
18338         (rs6000_init_hard_regno_mode_ok): Likewise.
18339         (rs6000_option_override_internal): Likewise.
18340         (rs6000_emit_prologue): Likewise.
18341         (rs6000_emit_epilogue): Likewise.
18342         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
18343         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
18344         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
18345         -mpower9-vector.
18346         (emit_fusion_p9_store): Likewise.
18347         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
18348         resetting these macros if the assembler does not support ISA 3.0
18349         instructions.
18350         (TARGET_P9_DFORM_VECTOR): Likewise.
18351         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
18352         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
18354 2017-08-25  Alan Modra  <amodra@gmail.com>
18356         PR rtl-optimization/81747
18357         * cse.c (cse_extended_basic_block): Don't attempt to record
18358         equivalences for degenerate conditional branches that branch
18359         to their fall-through.
18361 2017-08-24  Martin Sebor  <msebor@redhat.com>
18363         PR middle-end/81908
18364         * gimple-fold.c (size_must_be_zero_p): New function.
18365         (gimple_fold_builtin_memory_op): Call it.
18367 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
18369         * config/rs6000/mm_malloc.h: New file.
18371 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
18373         PR tree-optimization/81913
18374         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
18375         analysis when either IVs in condition can wrap.
18377 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
18379         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
18380         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
18382 2017-08-24  Richard Biener  <rguenther@suse.de>
18384         PR target/81921
18385         * targhooks.c (default_target_can_inline_p): Properly
18386         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
18387         is present and always compare.
18388         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
18389         infer -mfpmath=sse from TARGET_SSE_P.
18390         (ix86_can_inline_p): Properly use target_option_default_node when
18391         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
18393 2017-08-24  Richard Biener  <rguenther@suse.de>
18395         PR debug/81936
18396         * dwarf2out.c (output_die): Handle flag_generate_offload like
18397         flag_generate_lto.
18398         (output_comp_unit): Likewise.
18399         (gen_array_type_die): Likewise.
18400         (dwarf2out_early_finish): Likewise.
18401         (note_variable_value_in_expr): Likewise.
18402         (dwarf2out_finish): Likewise.  Adjust assert.
18403         * cgraphunit.c (symbol_table::compile): Move setting of
18404         flag_generate_offload earlier ...
18405         (symbol_table::finalize_compilation_unit): ... here, before
18406         early debug finalization.
18408 2017-08-24  Richard Biener  <rguenther@suse.de>
18410         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
18411         and ipa-fnsummary.h.
18412         (ix86_can_inline_p): When ix86_fpmath flags do not match
18413         check whether the callee uses FP math at all.
18415 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
18417         PR middle-end/81931
18418         * tree-ssanames.c (get_nonzero_bits): Use element_precision
18419         instead of TYPE_PRECISION.
18421 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
18422             Alan Hayward  <alan.hayward@arm.com>
18423             David Sherwood  <david.sherwood@arm.com>
18425         * combine.c (make_extraction): Use subreg_offset_from_lsb.
18427 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
18429         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
18430         Remove field.
18431         (ix86_frame::stack_realign_allocate): New field.
18432         (struct machine_frame_state): Modify comments.
18433         (machine_frame_state::sp_realigned_fp_end): New field.
18434         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
18435         layout calculation.
18436         (sp_valid_at): Add assertion to assure no attempt to access invalid
18437         offset of a realigned stack.
18438         (fp_valid_at): Likewise.
18439         (choose_baseaddr): Modify comments.
18440         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
18441         ix86_expand_prologue.
18442         (ix86_expand_prologue): Modify stack realignment and allocation.
18443         (ix86_expand_epilogue): Modify comments.
18444         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
18445         avx2_runtime, avx512f, and avx512f_runtime.
18447 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
18449         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
18450         (mstackrealign): Do not init to -1.
18451         * config/i386/i386.c (ix86_option_override_internal):
18452         Check opts_set, not opts when setting default value of
18453         opts->x_ix86_force_align_arg_pointer.
18455 2017-08-23  Richard Biener  <rguenther@suse.de>
18457         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
18458         lang_hooks.decl_printable_name.
18459         * print-rtl-function.c (print_rtx_function): Likewise.
18460         * tree-pretty-print.c (dump_function_header): Likewise.
18462 2017-08-23  Richard Biener  <rguenther@suse.de>
18464         PR lto/81940
18465         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
18466         -g0 at compile-time.
18468 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
18470         PR middle-end/19706
18471         * doc/sourcebuild.texi (Other hardware attributes):
18472         Document xorsign.
18474 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
18476         PR middle-end/19706
18477         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
18478         Fix single-use check.
18480 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18482         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
18484 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
18486         * doc/install.texi: Modify to add more details on running selected
18487         tests.
18489 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
18491         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
18492         is combined with -mabi=ms.
18493         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
18494         ms_abi.
18496 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18498         PR tree-optimization/81488
18499         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
18500         and cached_basis fields.
18501         (MAX_SPREAD): New constant.
18502         (alloc_cand_and_find_basis): Initialize new fields.
18503         (clear_visited): New function.
18504         (create_phi_basis_1): Rename from create_phi_basis, set visited
18505         and cached_basis fields.
18506         (create_phi_basis): New wrapper function.
18507         (phi_add_costs_1): Rename from phi_add_costs, add spread
18508         parameter, set visited field, short-circuit when limits reached.
18509         (phi_add_costs): New wrapper function.
18510         (record_phi_increments_1): Rename from record_phi_increments, set
18511         visited field.
18512         (record_phi_increments): New wrapper function.
18513         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
18514         (phi_incr_cost): New wrapper function.
18515         (all_phi_incrs_profitable_1): Rename from
18516         all_phi_incrs_profitable, set visited field.
18517         (all_phi_incrs_profitable): New wrapper function.
18519 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
18520             Alan Hayward  <alan.hayward@arm.com>
18521             David Sherwood  <david.sherwood@arm.com>
18523         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
18524         that takes the outer and inner modes.
18525         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
18526         comparison as the canonical test for a paradoxical subreg.
18527         * combine.c (simplify_set): Use paradoxical_subreg_p.
18528         (make_extraction): Likewise.
18529         (force_to_mode): Likewise.
18530         (rtx_equal_for_field_assignment_p): Likewise.
18531         (gen_lowpart_for_combine): Likewise.
18532         (simplify_comparison): Likewise.
18533         * cse.c (equiv_constant): Likewise.
18534         * expmed.c (store_bit_field_1): Likewise.
18535         * final.c (alter_subreg): Likewise.
18536         * fwprop.c (propagate_rtx): Likewise.
18537         (forward_propagate_subreg): Likewise.
18538         * ira-conflicts.c (ira_build_conflicts): Likewise.
18539         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
18540         * lra-constraints.c (curr_insn_transform): Likewise.
18541         (split_reg): Likewise.
18542         * lra-eliminations.c (move_plus_up): Likewise.
18543         (lra_eliminate_regs_1): Likewise.
18544         * recog.c (general_operand): Likewise.
18545         * ree.c (combine_reaching_defs): Likewise.
18546         * reload.c (push_reload): Likewise.
18547         (find_reloads): Likewise.
18548         * reload1.c (elimination_effects): Likewise.
18549         (compute_reload_subreg_offset): Likewise.
18550         (choose_reload_regs): Likewise.
18551         * rtlanal.c (subreg_lsb_1): Likewise.
18552         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18553         (simplify_subreg): Likewise.
18554         * var-tracking.c (track_loc_p): Likewise.
18555         * emit-rtl.c (byte_lowpart_offset): Likewise.
18556         (paradoxical_subreg_p): Delete out-of-line definition.
18558 2017-08-22  Jeff Law  <law@redhat.com>
18560         PR tree-optimization/81741
18561         PR tree-optimization/71947
18562         * tree-ssa-dom.c: Include tree-inline.h.
18563         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
18564         equivalences if one is more expensive to compute than the other.
18565         * tree-ssa-scopedtables.h (class const_or_copies): Make
18566         record_const_or_copy_raw method private.
18567         (class avail_exprs_stack): New method simplify_binary_operation.
18568         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
18569         avail_exprs_stack::simplify_binary_operation as needed.
18570         (avail_exprs_stack::simplify_binary_operation): New function.
18572 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18574         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
18575         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
18576         (DOT_SYMBOLS): Likewise.
18577         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
18578         (RELOCATABLE_NEEDS_FIXUP): Likewise.
18579         (RS6000_ABI_NAME): Likewise.
18580         (TARGET_CMODEL): Likewise.
18581         (TOC_SECTION_ASM_OP): Likewise.
18582         (SET_CMODEL): New macro.
18583         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
18585 2017-08-22  Richard Biener  <rguenther@suse.de>
18587         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
18588         to allow for free-lang-data replacements similar to verify_type_variant.
18590 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
18591             Alan Hayward  <alan.hayward@arm.com>
18592             David Sherwood  <david.sherwood@arm.com>
18594         * config/aarch64/aarch64.md (casesi): Use DImode rather than
18595         VOIDmode for the LABEL_REF.
18597 2017-08-22  Richard Biener  <rguenther@suse.de>
18599         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
18601 2017-08-22  Richard Biener  <rguenther@suse.de>
18603         * common.opt (feliminate-dwarf2-dups): Ignore.
18604         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
18605         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
18606         same_die_p_wrap, compute_section_prefix,
18607         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
18608         (comdat_symbol_id, comdat_symbol_number): Likewise.
18609         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
18610         Likewise.
18611         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
18612         (output_die): Mark unreachable path unreachable.
18613         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
18614         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
18615         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
18616         (dwarf2out_early_finish): Likewise.
18618 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
18620         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
18622 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
18624         PR target/81910
18625         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
18626         not VAR_P. Filter attribute warnings with OPT_Wattributes.
18627         (avr_attribute_table) <io, io_low, address>: Initialize
18628         .decl_required with true.
18630 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18632         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
18633         undocumented debugging options.
18634         (-mvsx-scalar-double): Likewise.
18635         (-mallow-df-permute): Likewise.
18636         (-mvectorize-builtins): Likewise.
18637         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
18638         (rs6000_builtin_vectorized_function): Likewise.
18639         (rs6000_builtin_md_vectorized_function): Likewise.
18640         (rs6000_opt_vars): Likewise.
18642 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
18644         PR target/46091
18645         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
18646         (*btrq_imm): Rename from *btrq.
18647         (*btcq_imm): Rename from *btcq.
18648         (btsc): New code attribute.
18649         (*<btsc><mode>): New insn pattern.
18650         (*btr<mode>): Ditto.
18651         (*<btsc><mode>_mask): New insn_and_split pattern.
18652         (*btr<mode>_mask): Ditto.
18654 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
18655             Alan Hayward  <alan.hayward@arm.com>
18656             David Sherwood  <david.sherwood@arm.com>
18658         * function.c (pad_below): Simplify padding calculation.
18660 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
18661             Alan Hayward  <alan.hayward@arm.com>
18662             David Sherwood  <david.sherwood@arm.com>
18664         * target.def (function_prologue): Remove frame size argument.
18665         (function_epilogue): Likewise.
18666         * doc/tm.texi: Regenerate.
18667         * final.c (final_start_function): Update call to function_prologue.
18668         (final_end_function): Update call to function_epilogue.
18669         (default_function_pro_epilogue): Remove frame size argument.
18670         * output.h (default_function_pro_epilogue): Likewise.
18671         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
18672         (arm_output_function_prologue): Likewise.
18673         * config/frv/frv.c (frv_function_prologue): Likewise.
18674         (frv_function_epilogue): Likewise.
18675         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
18676         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
18677         (ia64_output_function_epilogue): Likewise.
18678         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
18679         (m32r_output_function_epilogue): Likewise.
18680         * config/microblaze/microblaze.c (microblaze_function_prologue)
18681         (microblaze_function_epilogue): Likewise.
18682         * config/mips/mips.c (mips_output_function_prologue): Likewise.
18683         (mips_output_function_epilogue): Likewise.
18684         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
18685         (mmix_target_asm_function_epilogue): Likewise.
18686         * config/msp430/msp430.c (msp430_start_function): Likewise.
18687         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
18688         (nds32_asm_function_epilogue): Likewise.
18689         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
18690         * config/pa/pa.c (pa_output_function_prologue): Likewise.
18691         (pa_output_function_epilogue): Likewise.
18692         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
18693         (rs6000_output_function_epilogue): Likewise.
18694         * config/rl78/rl78.c (rl78_start_function): Likewise.
18695         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
18696         (rs6000_output_function_epilogue): Likewise.
18697         * config/rx/rx.c (rx_output_function_prologue): Likewise.
18698         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
18699         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
18700         (sparc_asm_function_epilogue): Likewise.
18702 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
18704         * tree.h (type_has_mode_precision_p): New function.
18705         * convert.c (convert_to_integer_1): Use it.
18706         * expr.c (expand_expr_real_2): Likewise.
18707         (expand_expr_real_1): Likewise.
18708         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
18709         * match.pd: Likewise.
18710         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
18711         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
18712         * tree-tailcall.c (process_assignment): Likewise.
18713         * tree-vect-loop.c (vectorizable_reduction): Likewise.
18714         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
18715         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
18716         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
18717         (vectorizable_assignment): Likewise.
18718         (vectorizable_shift): Likewise.
18719         (vectorizable_operation): Likewise.
18720         * tree-vrp.c (register_edge_assert_for_2): Likewise.
18722 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
18724         * match.pd: Add pow (C, x) simplification.
18726 2017-08-21  Richard Biener  <rguenther@suse.de>
18728         PR tree-optimization/81900
18729         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
18730         for blocks with abnormal predecessors.
18731         (compute_antic): Do not set visited flag prematurely.
18733 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
18735         PR target/79883
18736         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
18738 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
18740         * stor-layout.h (vector_type_mode): Move to...
18741         * tree.h (vector_type_mode): ...here.
18742         * stor-layout.c (vector_type_mode): Move to...
18743         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
18745 2017-08-21  Richard Biener  <rguenther@suse.de>
18747         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
18748         register_external_die hooks.
18749         (debug_false_tree_charstarstar_uhwistar): Declare.
18750         (debug_nothing_tree_charstar_uhwi): Likewise.
18751         * debug.c (do_nothing_debug_hooks): Adjust.
18752         (debug_false_tree_charstarstar_uhwistar): New do nothing.
18753         (debug_nothing_tree_charstar_uhwi): Likewise.
18754         * dbxout.c (dbx_debug_hooks): Adjust.
18755         (xcoff_debug_hooks): Likewise.
18756         * sdbout.c (sdb_debug_hooks): Likewise.
18757         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18758         * dwarf2out.c (macinfo_label_base): New global.
18759         (dwarf2out_register_external_die): New function for the
18760         register_external_die hook.
18761         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
18762         (dwarf2_debug_hooks): Use them.
18763         (dwarf2_lineno_debug_hooks): Adjust.
18764         (struct die_struct): Add with_offset flag.
18765         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
18766         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
18767         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
18768         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
18769         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
18770         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
18771         defining section names for the early LTO debug variants.
18772         (reset_indirect_string): New helper.
18773         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
18774         (print_dw_val): Add support for offsetted symbol references.
18775         (get_ultimate_context): Split out from is_cxx.
18776         (is_cxx): Use get_ultimate_context.
18777         (is_fortran): Add decl overload.
18778         (compute_comp_unit_symbol): Split out worker from
18779         compute_section_prefix.
18780         (compute_section_prefix): Call compute_comp_unit_symbol and
18781         set comdat_type_p here.
18782         (output_die): Skip DIE symbol output for the LTO added one.
18783         Handle DIE symbol references with offset.
18784         (output_comp_unit): Guard section name mangling properly.
18785         For LTO debug sections emit a symbol at the section beginning
18786         which we use to refer to its DIEs.
18787         (add_abstract_origin_attribute): For DIEs registered via
18788         dwarf2out_register_external_die directly refer to the early
18789         DIE rather than indirectly through the shadow one we created.
18790         Remove obsolete call to dwarf2out_abstract_function for
18791         non-function/block origins.
18792         (gen_array_type_die): When generating early LTO debug do
18793         not emit DW_AT_string_length.
18794         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
18795         late when in LTO.  As suggested place a gcc_unreachable for
18796         the DECL_ABSTRACT_P case.
18797         (gen_subprogram_die): Avoid another specification DIE
18798         for early built declarations/definitions for the late LTO case.
18799         (gen_variable_die): Add type references for late duplicated VLA dies
18800         when in late LTO.
18801         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
18802         we have the abstract instance already.
18803         (process_scope_var): Adjust decl DIE contexts in LTO which
18804         first puts them in limbo.
18805         (gen_decl_die): Do not generate type DIEs late apart from
18806         types for VLAs or for decls we do not yet have a DIE.  Do not
18807         call dwarf2out_abstract_function late.
18808         (dwarf2out_early_global_decl): Make sure to create DIEs
18809         for abstract instances of a decl first.
18810         (dwarf2out_late_global_decl): Adjust comment.
18811         (output_macinfo_op): With multiple macro sections use
18812         macinfo_label_base to distinguish labels.
18813         (output_macinfo): Likewise.  Update macinfo_label_base.
18814         Pass in the line info label.
18815         (note_variable_value_in_expr): When generating LTO resolve
18816         all variable values here by generating DIEs as needed.
18817         (init_sections_and_labels): Add early LTO debug flag parameter
18818         and generate different sections and names if set.  Add generation
18819         counter for the labels so we can have multiple of them.
18820         (reset_dies): Helper to allow DIEs to be output multiple times.
18821         (dwarf2out_finish): When outputting DIEs to the fat part of an
18822         LTO object first reset DIEs.
18823         (dwarf2out_early_finish): Output early DIEs when generating LTO.
18824         (modified_type_die): Check for decl_ultimate_origin being self
18825         before recursing.
18826         (gen_type_die_with_usage): Likewise.
18827         (gen_typedef_die): Allow decl_ultimate_origin being self.
18828         (set_decl_abstract_flags): Remove.
18829         (set_block_abstract_flags): Likewise.
18830         (dwarf2out_abstract_function): Treat the early generated DIEs
18831         as the abstract copy and only add DW_AT_inline and
18832         DW_AT_artificial here and call set_decl_origin_self.
18833         If the DIE has an abstract origin don't do anything.
18834         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
18835         if we have none yet (Go fails to build one, PR78628).
18836         (variably_modified_type_p): Prevent endless recursion for Ada
18837         cyclic pointer types.
18838         * lto-streamer-in.c: Include debug.h.
18839         (dref_queue): New global.
18840         (lto_read_tree_1): Stream in DIE references.
18841         (lto_input_tree): Register DIE references.
18842         (input_function): Stream DECL_DEBUG_ARGS.
18843         * lto-streamer-out.c: Include debug.h.
18844         (lto_write_tree_1): Output DIE references.
18845         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
18846         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
18847         (output_function): Stream DECL_DEBUG_ARGS.
18848         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18849         Stream DECL_ABSTRACT_ORIGIN.
18850         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
18851         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
18852         DECL_CONTEXT for file-scope decls.
18853         * lto-streamer.h (struct dref_entry): Declare.
18854         (dref_queue): Likewise.
18855         * cfgexpand.c (pass_expand::execute): Do not call the
18856         outlining_inline_function hook here.
18857         * lto-wrapper.c (debug_obj): New global.
18858         (tool_cleanup): Unlink it if required.
18859         (debug_objcopy): New function.
18860         (run_gcc): Handle early debug sections in the IL files by
18861         extracting them to separate files, partially linkin them and
18862         feeding the result back as result to the linker.
18863         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
18864         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
18865         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
18866         sections into a separate segment.
18867         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
18868         segments.
18869         (darwin_asm_dwarf_section): Likewise.
18870         (darwin_asm_output_dwarf_offset): Likewise.
18871         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
18873 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
18874             Alan Hayward  <alan.hayward@arm.com>
18875             David Sherwood  <david.sherwood@arm.com>
18877         * read-md.h (md_reader::record_potential_iterator_use): Replace
18878         pointer argument with an rtx and an index.
18879         * read-rtl.c (iterator_group::apply_iterator): Likewise.
18880         (apply_mode_iterator): Likewise.
18881         (apply_code_iterator): Likewise.
18882         (apply_int_iterator): Likewise.
18883         (apply_subst_iterator): Likewise.
18884         (record_iterator_use): Likewise.
18885         (record_attribute_use): Likewise.
18886         (md_reader::record_potential_iterator_use): Likewise.  Update calls
18887         to record_iterator_use and apply_iterator.
18888         (iterator_use): Replace ptr with x and index.
18889         (attribute_use): Likewise.
18890         (apply_attribute_uses): Update calls to apply_iterator.
18891         (apply_iterators): Likewise.  Update initialization of iterator_use.
18892         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
18893         and record_potential_iterator_use.
18894         (rtx_reader::read_rtx_operand): Likewise.
18896 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
18897             Alan Hayward  <alan.hayward@arm.com>
18898             David Sherwood  <david.sherwood@arm.com>
18900         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
18901         CONST_WIDE_INT.
18903 2017-08-21  Richard Biener  <rguenther@suse.de>
18905         PR middle-end/81884
18906         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
18907         at struct end conservatively when comparing common bases.
18909 2017-08-21  Richard Biener  <rguenther@suse.de>
18911         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
18912         (mem_ref_in_stmt): Remove.
18913         (determine_max_movement): Use ref index to get at the reference.
18914         (invariantness_dom_walker::before_dom_children): Deal with
18915         lim data already initialized.
18916         (gather_mem_refs_stmt): Initialize lim data and record ref index.
18918 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
18920         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
18921         (TARGET_ISA_ROUND): Ditto.
18922         (TARGET_ROUND): Ditto.
18923         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
18924         * config/i386/i386.md: Ditto.
18925         * config/i386/sse.md: Ditto.
18926         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
18927         with OPTION_MASK_ISA_SSE4_1.
18929 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
18931         PR target/81894
18932         * doc/extend.texi (x86 Built-in Functions): Correct the name of
18933         __builtin_ia32_lzcnt_u16.
18935 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
18937         PR target/80210
18938         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
18939         (rs6000_set_current_function): Rewrite function to use it.
18941 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
18943         PR c/53037
18944         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
18945         and TYPE_WARN_IF_NOT_ALIGN.
18946         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
18947         (handle_warn_if_not_align): New.
18948         (place_union_field): Call handle_warn_if_not_align.
18949         (place_field): Call handle_warn_if_not_align.
18950         Copy TYPE_WARN_IF_NOT_ALIGN.
18951         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
18952         (layout_type): Likewise.
18953         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
18954         spare to 18.
18955         (tree_decl_common): Add warn_if_not_align.
18956         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
18957         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
18958         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
18959         (DECL_WARN_IF_NOT_ALIGN): Likewise.
18960         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
18961         * doc/extend.texi: Document warn_if_not_aligned attribute.
18962         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
18964 2017-08-17  Martin Liska  <mliska@suse.cz>
18966         PR bootstrap/81864
18967         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
18968         (get_data_dependence): Use it as pointer type.
18969         (distribute_loop): Likewise.
18971 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18973         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
18974         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
18975         (p8_vmrgow_<mode>_direct): New define_insn.
18976         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
18977         handle endianness for vmrgew and vmrgow permute patterns.
18979 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
18981         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
18982         * config/rs6000/rs6000-cpus.def: Remove comment.
18983         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
18984         (POWERPC_MASKS): Likewise.
18985         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
18986         use of TARGET_VSX_TIMODE.
18987         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
18988         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
18989         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
18990         (rs6000_option_override_internal): Remove dead code.
18991         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
18992         (rs6000_legitimize_reload_address): Likewise.
18993         (rs6000_legitimate_address_p): Likewise.
18994         (rs6000_opt_masks): Delete "vsx-timode".
18995         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
18996         from function comment.
18997         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
18998         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
18999         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
19000         condition.
19001         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
19002         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
19003         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
19004         (VSX_TI): Likewise.
19005         (VSX_M): Likewise.
19006         (define_peephole2): Likewise.
19008 2017-08-17  Martin Sebor  <msebor@redhat.com>
19010         PR c/81859
19011         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
19012         past the end of an array.
19013         (test_pp_format): Add test cases.
19015 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
19017         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
19018         missing ECF_NOTHROW flags.
19020 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
19022         PR target/72804
19023         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
19024         operands residing in integer registers.
19025         (*vsx_le_perm_load_<mode>): Likewise.
19026         (*vsx_le_perm_store_<mode>): Likewise.
19027         (define_peephole2): Add peepholes to optimize the above.
19029 2017-08-17  Marek Polacek  <polacek@redhat.com>
19031         PR middle-end/81814
19032         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
19033         to mimic what shorten_compare did.  Change the return type to bool.
19034         (fold_cond_expr_with_comparison): Update call to
19035         operand_equal_for_comparison_p.
19036         (fold_ternary_loc): Likewise.
19038 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
19040         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
19041         register.
19042         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
19044 2017-08-17  Richard Biener  <rguenther@suse.de>
19046         * tree-ssa-structalias.c (solve_graph): When propagating
19047         to successors update the graphs succ edges and avoid duplicate work.
19049 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
19051         PR target/81861
19052         * config/i386/i386.c (ix86_option_override_internal): Save target
19053         specific options after ix86_stack_protector_guard_reg was changed.
19055 2017-08-17  Richard Biener  <rguenther@suse.de>
19057         PR tree-optimization/81827
19058         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
19059         (new_var_info): Initialize it conservatively.
19060         (get_call_vi): Mark register vars.
19061         (new_scalar_tmp_constraint_exp): Likewise.
19062         (handle_rhs_call): Likewise.
19063         (handle_const_call): Likewise.
19064         (create_function_info_for): Likewise.
19065         (solve_constraints): Sort varinfos to separate register from
19066         non-register vars to pack points-to solution bitmaps during
19067         iteration.
19069 2017-08-17  Marek Polacek  <polacek@redhat.com>
19071         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
19073 2017-08-17  Richard Biener  <rguenther@suse.de>
19075         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
19076         to true when overflow is undefined and we saturated the result.
19078 2017-08-17  Alan Modra  <amodra@gmail.com>
19080         PR target/80938
19081         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
19082         Don't use store multiple if only one reg needs saving.
19083         (interesting_frame_related_regno): New function.
19084         (rs6000_frame_related): Don't emit frame info for regs that
19085         don't need saving.
19086         (rs6000_emit_epilogue): Likewise.
19088 2017-08-16  Nathan Sidwell  <nathan@acm.org>
19090         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
19091         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
19092         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
19093         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
19094         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
19095         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
19096         (verify_type): Adjust for TYPE_BINFO move.
19097         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
19098         process TYPE_BINFO directly.
19099         (hash_tree): Likewise.
19100         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
19101         Likewise.
19102         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
19103         Likewise.
19105 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
19107         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
19109 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
19111         PR target/46091
19112         * config/i386/i386.md (*anddi_1_btr): Change predicates of
19113         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
19114         Add ix86_binary_operator_ok to insn constraint.
19115         (*iordi_1_bts): Ditto.
19116         (*xordi_1_btc): Ditto.
19117         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
19118         Update corresponding peephole2 pattern.
19119         (*btrq): Ditto.
19120         (*btcq): Ditto.
19122 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
19124         PR tree-optimization/81832
19125         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
19126         copy loop header which has IFN_LOOP_DIST_ALIAS call.
19128 2017-08-16  Marek Polacek  <polacek@redhat.com>
19130         PR middle/81695
19131         * fold-const.c (fold_indirect_ref_1): Restore original behavior
19132         regarding size_zero_node.
19134 2017-08-16  Martin Liska  <mliska@suse.cz>
19136         PR target/81753
19137         * config.gcc: Respect previously set extra_objs in case
19138         of darwin target.
19140 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
19142         PR tree-optimization/81835
19143         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
19144         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
19145         not depend on the phi.
19147 2017-08-16  Alan Modra  <amodra@gmail.com>
19149         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
19150         dead code.
19152 2017-08-16  Alan Modra  <amodra@gmail.com>
19154         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
19155         (save_reg_p): ..into this.  Update all callers.
19156         (first_reg_to_save): Simplify.
19158 2017-08-16  Alan Modra  <amodra@gmail.com>
19160         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
19161         fixed regs.
19163 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
19165         PR target/78460
19166         PR target/67712
19167         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
19168         constant count if that count is less than 32.
19170 2017-08-15  Nathan Sidwell  <nathan@acm.org>
19172         * gcc.c (execute): Emit friendlier message if inferior is killed
19173         by an external cause.
19175 2017-08-15  Richard Biener  <rguenther@suse.de>
19177         PR tree-optimization/81790
19178         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
19179         CONSTRUCTORs from simplifying and VN.
19181 2017-08-14  Martin Sebor  <msebor@redhat.com>
19183         * builtin-attrs.def: Add comments.
19185 2017-08-14  Martin Sebor  <msebor@redhat.com>
19187         PR c/81117
19188         * doc/extend.texi (attribute nonstring): Document new attribute.
19190 2017-08-14  Martin Sebor  <msebor@redhat.com>
19192         PR c/81117
19193         * tree-diagnostic.c (default_tree_printer): Handle %G.
19194         * gimple-pretty-print.h (percent_G_format): Declare new function.
19195         * gimple-pretty-print.c (percent_G_format): Define.
19196         * tree-pretty-print.c (percent_K_format): Add argument.
19198 2017-08-14  Martin Sebor  <msebor@redhat.com>
19200         PR translation/79998
19201         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
19202         Remove a stray space.
19204 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
19206         PR target/46091
19207         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
19208         (*iordi_1_bts): Ditto.
19209         (*xordi_1_btc): Ditto.
19211 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19213         PR target/79845
19214         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
19215         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19216         Likewise.
19217         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
19218         quoted strings, and make more translator-friendly.
19219         (darwin_rs6000_override_options): Likewise.
19220         (rs6000_option_override_internal): Likewise.
19221         (rs6000_return_in_memory): Fix overlong line.
19222         (init_cmulative_args): Use quoted strings, and make more
19223         translator-friendly.
19224         (rs6000_pass_by_reference): Fix overlong line.
19225         (def_builtin): Use quoted strings.
19226         (altivec_expand_predicate_builtin): Use quoted strings, and make
19227         more translator-friendly.
19228         (htm_expand_builtin): Use quoted strings.
19229         (cpu_expand_builtin): Use quoted strings, and make more
19230         translator-friendly.
19231         (altivec_expand_builtin): Likewise.
19232         (paired_expand_predicate_builtin): Likewise.
19233         (rs6000_invalid_builtin): Likewise.
19234         (builtin_function_type): Use quoted strings.
19235         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
19236         more translator-friendly.
19237         (rs6000_trampoline_init): Likewise.
19238         (rs6000_handle_altivec_attribute): Likewise.
19239         (rs6000_inner_target_options): Use quoted strings.
19240         (rs6000_disable_incompatible_switches): Likewise.
19241         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
19242         strings, and make more translator-friendly.
19243         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
19245 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
19247         PR tree-optimization/81799
19248         * tree-loop-distribution.c (version_loop_by_alias_check): Force
19249         cond_expr to simple gimple operand.
19251 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
19253         PR middle-end/46932
19254         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
19256 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
19258         PR target/81754
19259         PR target/81268
19260         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
19261         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
19262         TARGET_GASISR_PROLOGUES.
19263         * config/avr/avr.c (avr_option_override): Same.
19264         (avr_pass_pre_proep::execute): Same.
19266 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
19268         PR target/81820
19269         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
19270         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
19272 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
19274         * config/i386/i386.md (*load_tp_<mode>): Redefine as
19275         define_insn_and_split.  Split to a memory load from 0 in
19276         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
19277         using PTR mode iterator.
19278         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
19279         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
19280         (*add_tp_<mode>): Redefine as define_insn_and_split.
19281         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
19282         address space.  Merge with *add_tp_x32 using PTR mode iterator.
19283         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
19284         Split to an add with a  memory load from 0 in
19285         DEFAULT_TLS_SEG_REG address space.
19287 2017-08-12  Andrew Pinski  <apinski@cavium.com>
19289         * config/aarch64/aarch64-option-extensions.def (rdma):
19290         Fix feature string to what Linux prints out in /proc/cpuinfo.
19292 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
19294         PR ada/79542
19295         * dwarf2out.c (modified_type_die): For C typedef types that have
19296         an ultimate origin, process the ultimate origin instead of the
19297         input type.
19298         (gen_typedef_die): Assert that input DECLs have no ultimate
19299         origin.
19300         (gen_type_die_with_usage): For typedef variants that have an
19301         ultimate origin, just call gen_decl_die on the original DECL.
19302         (process_scope_var): Avoid creating DIEs for local typedefs and
19303         concrete static variables.
19305 2017-08-12  Alan Modra  <amodra@gmail.com>
19307         PR target/81170
19308         PR target/81295
19309         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
19310         match gnu-user.h startfile.
19311         (ENDFILE_LINUX_SPEC): Similarly.
19313 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
19315         PR lto/81430
19316         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
19317         Remove function.
19318         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
19320 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
19321         * config/aarch64/aarch64.md (mov<mode>): Change.
19322         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
19323         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
19324         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
19326 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
19328         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
19329         for storage order barriers.
19331 2017-08-11  Martin Liska  <mliska@suse.cz>
19333         PR tree-opt/79987
19334         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
19335         variables of void type.
19337 2017-08-11  Martin Liska  <mliska@suse.cz>
19339         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
19340         TARGET_SUPPORTS_ALIASES.
19341         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
19342         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
19343         (optimize_weakref): Likewise.
19344         * symtab.c (symtab_node::noninterposable_alias): Likewise.
19345         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
19346         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
19348 2017-08-11  Martin Liska  <mliska@suse.cz>
19350         PR ipa/81213
19351         * config/i386/i386.c (make_resolver_func): Do complete
19352         refactoring of the function.
19354 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
19356         PR target/81708
19357         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
19358         * config/i386/i386.c (ix86_stack_protect_guard): Use
19359         ix86_stack_protect_guard_symbol_str to generate varible declaration.
19360         * doc/invoke.texi (x86 Options): Document
19361         -mstack-protector-guard-symbol= option.
19363 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
19365         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
19366         * config/i386/i386.c (ix86_split_stack_guard): New function.
19367         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
19368         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
19369         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
19370         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
19371         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
19372         (split_stack_space_check): Call ix86_split_stack_guard.
19374 2017-08-10  Martin Sebor  <msebor@redhat.com>
19376         * print-tree.c (print_node): Print location using the established
19377         format %s:%i%i.
19378         Replace spaces with colons.
19379         (debug_raw, debug): Ditto.
19381 2017-08-10  Martin Sebor  <msebor@redhat.com>
19383         PR c++/81586
19384         * pretty-print.c (pp_format): Correct the handling of %s precision.
19386 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
19388         PR target/81736
19389         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
19390         to ...
19391         (ix86_finalize_stack_frame_flags): This.  Also clear
19392         frame_pointer_needed if -fno-omit-frame-pointer is used without
19393         stack access.
19394         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
19395         with ix86_finalize_stack_frame_flags.
19396         (ix86_expand_epilogue): Likewise.
19397         (ix86_expand_split_stack_prologue): Likewise.
19398         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
19400 2017-08-10  Martin Liska  <mliska@suse.cz>
19402         PR c++/81355
19403         * c-attribs.c (handle_target_attribute):
19404         Report warning for an empty string argument of target attribute.
19406 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
19408         PR c/81687
19409         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
19410         LABEL_DECLs.
19411         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
19412         or DECL_NONLOCAL labels.
19413         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
19414         or DECL_NONLOCAL labels here.
19416 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
19418         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
19419         to indicate when early gimple folding has been disabled.
19420         (rs6000_gimple_fold_builtin): Add debug content.
19421         (rs6000_invalid_builtin): Fix whitespace.
19422         (rs6000_expand_builtin): Fix whitespace.
19423         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
19425 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
19427         PR target/80938
19428         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
19429         SAVE_MULTIPLE if not all the registers that saves, should be saved.
19431 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
19433         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
19434         (qdf24xx): Likewise.
19435         * config/aarch64/aarch64.md: Include falkor.md.
19436         * config/aarch64/falkor.md: New.
19438 2017-08-09  Marek Polacek  <polacek@redhat.com>
19440         PR c/81233
19441         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
19442         * diagnostic.c (emit_diagnostic): Add a comment.
19443         (emit_diagnostic_valist): New function.
19445 2017-08-09  Marek Polacek  <polacek@redhat.com>
19447         PR c/81417
19448         * input.c (make_location): New overload.
19449         * input.h (make_location): Declare.
19451 2017-08-08  Alan Modra  <amodra@gmail.com>
19452             H.J. Lu  <hongjiu.lu@intel.com>
19454         PR driver/81523
19455         * gcc.c (NO_PIE_SPEC): Delete.
19456         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
19457         exclusion..
19458         (LINK_PIE_SPEC): ..to here.
19459         (LINK_COMMAND_SPEC): Support -no-pie.
19460         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
19461         chain of crtbegin*.o selection, update for PIE_SPEC changes and
19462         format.
19463         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
19464         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
19465         (ENDFILE_CRTEND_SPEC): Similarly.
19467 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
19469         PR target/81708
19470         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
19471         (mstack-protector-guard-offset=): Ditto.
19472         * config/i386/i386.c (ix86_option_override): Handle
19473         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
19474         options.
19475         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
19476         ix86_stack_protect_guard_offset variables.
19477         (TARGET_STACK_PROTECT_GUARD): Always define.
19478         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
19479         and -mstack-protector-guard-offset= options.
19481 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
19483         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
19484         boundary case for the last candidate.
19486 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
19488         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
19489         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
19491 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
19493         PR middle-end/19706
19494         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
19495         * config/aarch64/aarch64-builtins.c
19496         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
19497         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
19498         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
19500 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
19501             Andrew Pinski <pinskia@gmail.com>
19503         PR middle-end/19706
19504         * internal-fn.def (XORSIGN): New.
19505         * optabs.def (xorsign_optab): New.
19506         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
19507         (convert_expand_mult_copysign): New.
19508         (pass_optimize_widening_mul::execute): Call
19509         convert_expand_mult_copysign.
19511 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19513         PR tree-optimization/81354
19514         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
19515         Insert on edges rather than explicitly creating landing pads.
19516         (analyze_candidates_and_replace): Commit edge inserts.
19518 2017-08-08  Richard Biener  <rguenther@suse.de>
19520         PR middle-end/81719
19521         * tree-ssa-loop-niter.c: Include tree-dfa.h.
19522         (expand_simple_operations): Also look through ADDR_EXPRs with
19523         MEM_REF bases treating them as POINTER_PLUS_EXPR.
19525 2017-08-08  Richard Biener  <rguenther@suse.de>
19527         PR tree-optimization/81723
19528         * tree-vect-slp.c (struct bst_traits): New hash traits.
19529         (bst_fail): New global.
19530         (vect_build_slp_tree_2): New worker, split out from ...
19531         (vect_build_slp_tree): ... this now wrapping it with using
19532         bst_fail set to cache SLP tree build fails.  Properly handle
19533         max_tree_size.
19534         (vect_analyze_slp_instance): Allocate and free bst_fail.
19536 2017-08-08  Martin Liska  <mliska@suse.cz>
19538         PR tree-opt/81696
19539         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
19540         LABEL_DECLs that can be from a different function.
19542 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
19544         PR tree-optimization/81744
19545         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
19546         loop's number of iterations.
19548 2017-08-08  Martin Liska  <mliska@suse.cz>
19550         * asan.c: Include header files.
19551         * attribs.c (build_decl_attribute_variant): New function moved
19552         from tree.[ch].
19553         (build_type_attribute_qual_variant): Likewise.
19554         (cmp_attrib_identifiers): Likewise.
19555         (simple_cst_list_equal): Likewise.
19556         (omp_declare_simd_clauses_equal): Likewise.
19557         (attribute_value_equal): Likewise.
19558         (comp_type_attributes): Likewise.
19559         (build_type_attribute_variant): Likewise.
19560         (lookup_ident_attribute): Likewise.
19561         (remove_attribute): Likewise.
19562         (merge_attributes): Likewise.
19563         (merge_type_attributes): Likewise.
19564         (merge_decl_attributes): Likewise.
19565         (merge_dllimport_decl_attributes): Likewise.
19566         (handle_dll_attribute): Likewise.
19567         (attribute_list_equal): Likewise.
19568         (attribute_list_contained): Likewise.
19569         * attribs.h (lookup_attribute): New function moved from tree.[ch].
19570         (lookup_attribute_by_prefix): Likewise.
19571         * bb-reorder.c: Include header files.
19572         * builtins.c: Likewise.
19573         * calls.c: Likewise.
19574         * cfgexpand.c: Likewise.
19575         * cgraph.c: Likewise.
19576         * cgraphunit.c: Likewise.
19577         * convert.c: Likewise.
19578         * dwarf2out.c: Likewise.
19579         * final.c: Likewise.
19580         * fold-const.c: Likewise.
19581         * function.c: Likewise.
19582         * gimple-expr.c: Likewise.
19583         * gimple-fold.c: Likewise.
19584         * gimple-pretty-print.c: Likewise.
19585         * gimple.c: Likewise.
19586         * gimplify.c: Likewise.
19587         * hsa-common.c: Likewise.
19588         * hsa-gen.c: Likewise.
19589         * internal-fn.c: Likewise.
19590         * ipa-chkp.c: Likewise.
19591         * ipa-cp.c: Likewise.
19592         * ipa-devirt.c: Likewise.
19593         * ipa-fnsummary.c: Likewise.
19594         * ipa-inline.c: Likewise.
19595         * ipa-visibility.c: Likewise.
19596         * ipa.c: Likewise.
19597         * lto-cgraph.c: Likewise.
19598         * omp-expand.c: Likewise.
19599         * omp-general.c: Likewise.
19600         * omp-low.c: Likewise.
19601         * omp-offload.c: Likewise.
19602         * omp-simd-clone.c: Likewise.
19603         * opts-global.c: Likewise.
19604         * passes.c: Likewise.
19605         * predict.c: Likewise.
19606         * sancov.c: Likewise.
19607         * sanopt.c: Likewise.
19608         * symtab.c: Likewise.
19609         * toplev.c: Likewise.
19610         * trans-mem.c: Likewise.
19611         * tree-chkp.c: Likewise.
19612         * tree-eh.c: Likewise.
19613         * tree-into-ssa.c: Likewise.
19614         * tree-object-size.c: Likewise.
19615         * tree-parloops.c: Likewise.
19616         * tree-profile.c: Likewise.
19617         * tree-ssa-ccp.c: Likewise.
19618         * tree-ssa-live.c: Likewise.
19619         * tree-ssa-loop.c: Likewise.
19620         * tree-ssa-sccvn.c: Likewise.
19621         * tree-ssa-structalias.c: Likewise.
19622         * tree-ssa.c: Likewise.
19623         * tree-streamer-in.c: Likewise.
19624         * tree-vectorizer.c: Likewise.
19625         * tree-vrp.c: Likewise.
19626         * tsan.c: Likewise.
19627         * ubsan.c: Likewise.
19628         * varasm.c: Likewise.
19629         * varpool.c: Likewise.
19630         * tree.c: Remove functions moved to attribs.[ch].
19631         * tree.h: Likewise.
19632         * config/aarch64/aarch64.c: Add attrs.h header file.
19633         * config/alpha/alpha.c: Likewise.
19634         * config/arc/arc.c: Likewise.
19635         * config/arm/arm.c: Likewise.
19636         * config/avr/avr.c: Likewise.
19637         * config/bfin/bfin.c: Likewise.
19638         * config/c6x/c6x.c: Likewise.
19639         * config/cr16/cr16.c: Likewise.
19640         * config/cris/cris.c: Likewise.
19641         * config/darwin.c: Likewise.
19642         * config/epiphany/epiphany.c: Likewise.
19643         * config/fr30/fr30.c: Likewise.
19644         * config/frv/frv.c: Likewise.
19645         * config/ft32/ft32.c: Likewise.
19646         * config/h8300/h8300.c: Likewise.
19647         * config/i386/winnt.c: Likewise.
19648         * config/ia64/ia64.c: Likewise.
19649         * config/iq2000/iq2000.c: Likewise.
19650         * config/lm32/lm32.c: Likewise.
19651         * config/m32c/m32c.c: Likewise.
19652         * config/m32r/m32r.c: Likewise.
19653         * config/m68k/m68k.c: Likewise.
19654         * config/mcore/mcore.c: Likewise.
19655         * config/microblaze/microblaze.c: Likewise.
19656         * config/mips/mips.c: Likewise.
19657         * config/mmix/mmix.c: Likewise.
19658         * config/mn10300/mn10300.c: Likewise.
19659         * config/moxie/moxie.c: Likewise.
19660         * config/msp430/msp430.c: Likewise.
19661         * config/nds32/nds32-isr.c: Likewise.
19662         * config/nds32/nds32.c: Likewise.
19663         * config/nios2/nios2.c: Likewise.
19664         * config/nvptx/nvptx.c: Likewise.
19665         * config/pa/pa.c: Likewise.
19666         * config/pdp11/pdp11.c: Likewise.
19667         * config/powerpcspe/powerpcspe.c: Likewise.
19668         * config/riscv/riscv.c: Likewise.
19669         * config/rl78/rl78.c: Likewise.
19670         * config/rx/rx.c: Likewise.
19671         * config/s390/s390.c: Likewise.
19672         * config/sh/sh.c: Likewise.
19673         * config/sol2.c: Likewise.
19674         * config/sparc/sparc.c: Likewise.
19675         * config/spu/spu.c: Likewise.
19676         * config/stormy16/stormy16.c: Likewise.
19677         * config/tilegx/tilegx.c: Likewise.
19678         * config/tilepro/tilepro.c: Likewise.
19679         * config/v850/v850.c: Likewise.
19680         * config/vax/vax.c: Likewise.
19681         * config/visium/visium.c: Likewise.
19682         * config/xtensa/xtensa.c: Likewise.
19684 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
19686         PR target/81593
19687         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
19688         constraints since the -mupper-regs-* switches have been
19689         eliminated.
19690         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
19691         into a vector from a double word element that was extracted from
19692         another vector, and eliminate extra XXPERMDI instructions.
19693         (vsx_concat_<mode>_2): Likewise.
19694         (vsx_concat_<mode>_3): Likewise.
19695         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
19696         concat to allow optimizing inserts from previous extracts.
19698 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
19700         * config/i386/i386.c (ix86_stack_protect_guard): Generate
19701         memory reference to a SSP offset in TLS address space.
19702         (ix86_print_operand) <case '@'>: Remove.
19703         (ix86_print_operand_punct_valid_p): Remove '@' code.
19704         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
19705         UNSPEC_SP_TLS_TEST.
19706         (stack_tls_protect_set_<mode>): Remove.
19707         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
19708         (stack_tls_protect_test_<mode>): Remove.
19709         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
19711 2017-08-07  Olivier Hainque  <hainque@adacore.com>
19713         PR target/81755
19714         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
19716 2017-08-07  Douglas Rupp  <rupp@adacore.com>
19718         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
19719         variable was referenced as multidir in command.
19721 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
19723         PR c/69389
19724         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
19725         BIT_FIELD_REF.
19727 2017-08-07  Martin Liska  <mliska@suse.cz>
19729         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
19730         * config/rl78/rl78.c: Add include of attribs.h.
19731         * config/sh/sh.c: Likewise.
19732         * config/v850/v850.c: Likewise.
19734 2017-08-07  Tom de Vries  <tom@codesourcery.com>
19736         PR middle-end/78266
19737         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
19739 2017-08-07  Martin Liska  <mliska@suse.cz>
19741         * config/mips/mips.c: Include attribs.h.
19743 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
19745         PR fortran/68829
19746         * doc/invoke.texi: Document change in behvaior for -Ofast for
19747         Fortran.
19749 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
19751         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
19752         Use gen_frame_mem.
19753         (aarch64_pop_regs): Likewise.
19754         (aarch64_gen_load_pair): Likewise.
19755         (aarch64_save_callee_saves): Likewise.
19756         (aarch64_restore_callee_saves): Likewise.
19758 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
19760         * config/i386/i386.c: Revert the last change.
19762 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
19764         PR target/81736
19765         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
19766         to ...
19767         (ix86_finalize_stack_frame_flags): This.  Also clear
19768         frame_pointer_needed if -fno-omit-frame-pointer is used without
19769         stack access.
19770         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
19771         with ix86_finalize_stack_frame_flags.
19772         (ix86_expand_epilogue): Likewise.
19773         (ix86_expand_split_stack_prologue): Likewise.
19775 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
19777         PR target/81743
19778         * config/i386/i386.c (get_builtin_code_for_version): Set priority
19779         to P_AES for Westmere.
19781 2017-08-07  Jonathan Yong  <10walls@gmail.com>
19783         * config/i386/mingw.opt (fset-stack-executable): Removed.
19784         * config/i386/cygming.opt (fset-stack-executable): Moved
19785         from mingw.opt.
19786         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
19788 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
19790         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
19792 2017-08-07  Marek Polacek  <polacek@redhat.com>
19794         PR middle-end/81737
19795         * fold-const.c (fold_indirect_ref_1): Check type_domain.
19797 2017-08-07  Martin Liska  <mliska@suse.cz>
19799         * attribs.h (canonicalize_attr_name): New function.
19800         (cmp_attribs): Move from c-format.c and adjusted.
19801         (is_attribute_p): Moved from tree.h.
19802         * tree-inline.c: Add new includes.
19803         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
19804         (private_is_attribute_p): Remove.
19805         (private_lookup_attribute): Likewise.
19806         (private_lookup_attribute_by_prefix): Simplify.
19807         (remove_attribute): Use is_attribute_p.
19808         * tree.h: Remove removed declarations.
19810 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
19812         PR middle-end/81698
19813         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
19814         instead of computing it in the function.  Formatting fix.
19815         (expand_case): Don't rely on default_edge being the first edge,
19816         clear it if removing it, pass default_edge to
19817         emit_case_dispatch_table.
19818         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
19819         fix.
19821 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
19823         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
19824         insn in the function, emit NOP after the insn.
19826 2017-08-06  Tom de Vries  <tom@codesourcery.com>
19828         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
19829         and element loops.
19831 2017-08-06  Tom de Vries  <tom@codesourcery.com>
19833         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
19834         loop.
19836 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
19838         PR tree-optimization/57371
19839         * match.pd: New pattern.
19841 2017-08-04  Marek Polacek  <polacek@redhat.com>
19843         PR middle-end/81695
19844         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
19845         perform the computation in offset_int.
19847 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
19849         PR tree-optimization/81136
19850         * tree-vectorizer.h: Include tree-hash-traits.h.
19851         (vec_base_alignments): New typedef.
19852         (vec_info): Add a base_alignments field.
19853         (vect_record_base_alignments): Declare.
19854         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
19855         field.
19856         (DR_IS_CONDITIONAL_IN_STMT): New macro.
19857         (create_data_ref): Add an is_conditional_in_stmt argument.
19858         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
19859         the is_conditional_in_stmt field.
19860         (data_ref_loc): Add an is_conditional_in_stmt field.
19861         (get_references_in_stmt): Set the is_conditional_in_stmt field.
19862         (find_data_references_in_stmt): Update call to create_data_ref.
19863         (graphite_find_data_references_in_stmt): Likewise.
19864         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
19865         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
19866         (vect_record_base_alignment): New function.
19867         (vect_record_base_alignments): Likewise.
19868         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
19869         for nested statements even if we fail to compute a misalignment.
19870         Use pooled base alignments for unconditional references.
19871         (vect_find_same_alignment_drs): Compare base addresses instead
19872         of base objects.
19873         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
19874         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
19876 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
19878         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
19879         Add an explicit name for the enum.  Use auto_vec for slp_instances
19880         and grouped_stores.
19881         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
19882         for all vectors.
19883         (_bb_vec_info): Add a constructor and destructor.
19884         (vinfo_for_stmt): Return NULL for uids of -1 as well.
19885         (destroy_loop_vec_info): Delete.
19886         (vect_destroy_datarefs): Likewise.
19887         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
19888         (vec_info::vec_info): New function.
19889         (vec_info::~vec_info): Likewise.
19890         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
19891         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
19892         destroy_loop_vec_info.
19893         * tree-vect-loop.c (new_loop_vec_info): Replace with...
19894         (_loop_vec_info::_loop_vec_info): ...this.
19895         (destroy_loop_vec_info): Replace with...
19896         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
19897         the stmt_vec_infos.  Leave handling of vec_info information to its
19898         destructor.  Remove explicit vector releases.
19899         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
19900         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
19901         * tree-vect-slp.c (new_bb_vec_info): Replace with...
19902         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
19903         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
19904         (destroy_bb_vec_info): Replace with...
19905         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
19906         information to its destructor.
19907         (vect_slp_analyze_bb_1): Use new and delete instead of
19908         new_bb_vec_info and destroy_bb_vec_info.
19909         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
19910         single delete.
19912 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
19914         * tree-data-ref.h (subscript): Add access_fn field.
19915         (data_dependence_relation): Add could_be_independent_p.
19916         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
19917         (same_access_functions): Move to tree-data-ref.c.
19918         * tree-data-ref.c (ref_contains_union_access_p): New function.
19919         (access_fn_component_p): Likewise.
19920         (access_fn_components_comparable_p): Likewise.
19921         (dr_analyze_indices): Add a reference to access_fn_component_p.
19922         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
19923         DR_ACCESS_FN.
19924         (constant_access_functions): Likewise.
19925         (add_other_self_distances): Likewise.
19926         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
19927         (initialize_data_dependence_relation): Use XCNEW and remove
19928         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
19929         of access functions that have the same type.  Allow the
19930         subsequence to end with different bases in some circumstances.
19931         Record the chosen access functions in SUB_ACCESS_FN.
19932         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
19933         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
19934         (subscript_dependence_tester_1): Likewise dra and drb.
19935         (build_classic_dist_vector): Update calls accordingly.
19936         (subscript_dependence_tester): Likewise.
19937         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
19938         DDR_COULD_BE_INDEPENDENT_P.
19939         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
19940         comp_alias_ddrs instead of may_alias_ddrs.
19941         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
19942         New function.
19943         (vect_analyze_data_ref_dependence): Use it if
19944         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
19945         distance vectors if that fails.
19946         (dependence_distance_ge_vf): New function.
19947         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
19948         LOOP_VINFO_MAY_ALIAS_DDRS.
19950 2017-08-04  Richard Biener  <rguenther@suse.de>
19952         PR middle-end/81705
19953         * fold-const.c (fold_binary_loc): Properly restrict
19954         minus_var0 && minus_var1 case when associating undefined overflow
19955         entities.
19957 2017-08-04  Tom de Vries  <tom@codesourcery.com>
19959         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
19961 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19963         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19964         Don't start diagnostic messages with a capital letter.
19965         * config/rs6000/rs6000.c (rs6000_option_override_internal):
19966         Likewise.
19967         (rs6000_invalid_builtin): Likewise.
19968         (rs6000_trampoline_init): Likewise.
19970 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
19972         PR target/81621
19973         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
19974         after setting changeable df flags.
19976 2017-08-03  Richard Biener  <rguenther@suse.de>
19978         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
19979         up if the use is in USE - X.
19981 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
19983         * toplev.c (dumpfile.h): New include.
19984         (internal_error_reentered): New static function.  Use it...
19985         (internal_error_function): ...here to handle reentered internal_error.
19987 2017-08-03  Richard Biener  <rguenther@suse.de>
19989         PR middle-end/81148
19990         * fold-const.c (split_tree): Add minus_var and minus_con
19991         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
19992         here but always use minus_*.
19993         (associate_trees): Assert we never associate with MINUS_EXPR
19994         and NULL first operand.  Do not recurse for PLUS_EXPR operands
19995         when associating as MINUS_EXPR either.
19996         (fold_binary_loc): Track minus_var and minus_con.
19998 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20000         PR lto/81430
20001         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
20002         ACCEL_COMPILER, apply finish_options on
20003         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
20005 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20007         PR target/81662
20008         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
20009         function_entry_patch_area_size > 0.
20011 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
20013         PR driver/81650
20014         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
20015         instead of 10??LU, perform unit multiplication in wide_int,
20016         don't change alloc_object_size_limit if the limit is larger
20017         than SSIZE_MAX.
20019         PR tree-optimization/81655
20020         PR tree-optimization/81588
20021         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
20022         the case when ranges[i].low and high are 1 for unsigned type with
20023         precision 1.
20025         PR middle-end/81052
20026         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
20027         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
20029 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20031         * tree-vrp.h: Add include guard.
20033 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
20035         PR target/81644
20036         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
20037         (ud2): New insn pattern.
20038         * config/i386/i386.c (ix86_expand_epilogue):
20039         For naked functions, generate ud2 instead of trap insn.
20041 2017-08-02  Marek Polacek  <polacek@redhat.com>
20043         PR other/81667
20044         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
20046 2017-08-02  Tom de Vries  <tom@codesourcery.com>
20047             Cesar Philippidis  <cesar@codesourcery.com>
20049         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
20050         Add missing edge probabilities.
20052 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
20054         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
20055         Correct endianness.
20057 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
20059         PR middle-end/79499
20060         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
20061         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
20062         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
20063         prologue_seq sequences - if any.
20065 2017-08-02  Richard Biener  <rguenther@suse.de>
20067         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
20068         via vectors if supported, integer extracts via punning if supported
20069         or otherwise vector extracts.
20071 2017-08-02  Richard Biener  <rguenther@suse.de>
20073         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
20074         into ...
20075         (bitmap_insert_into_set): ... this.
20077 2017-08-02  Richard Biener  <rguenther@suse.de>
20079         PR tree-optimization/81633
20080         Revert
20081         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
20083         PR tree-optimization/71752
20084         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
20086 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
20088         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
20089         (machine_function::call_ms2sysv_pad_out): Remove field.
20090         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
20091         (ix86_compute_frame_layout): Likewise.
20093 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
20095         PR target/81654
20096         * config/i386/i386.c (ix86_set_func_type): Disallow naked
20097         attribute with interrupt attribute.
20099 2017-08-01  Andrew Pinski  <apinski@cavium.com>
20101         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
20102         BIT_INSERT_EXPR's operand 1
20103         to see if the types precision matches.
20105 2017-08-01  Martin Liska  <mliska@suse.cz>
20107         PR middle-end/70140
20108         * builtins.c (expand_builtin_memcpy_args): Remove.
20109         (expand_builtin_memcpy): Call newly added function
20110         expand_builtin_memory_copy_args.
20111         (expand_builtin_memcpy_with_bounds): Likewise.
20112         (expand_builtin_mempcpy): Remove last argument.
20113         (expand_builtin_mempcpy_with_bounds): Likewise.
20114         (expand_builtin_memory_copy_args): New function created from
20115         expand_builtin_mempcpy_args with small modifications.
20116         (expand_builtin_mempcpy_args): Remove.
20117         (expand_builtin_stpcpy): Remove unused argument.
20118         (expand_builtin): Likewise.
20119         (expand_builtin_with_bounds): Likewise.
20121 2017-08-01  Martin Liska  <mliska@suse.cz>
20123         Revert r250771
20124         Make mempcpy more optimal (PR middle-end/70140).
20126 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
20128         PR target/81622
20129         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
20130         __builtin_vec_cmpne verify both arguments are compatible vectors
20131         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
20132         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
20133         move computation of aligned to after checking the argument types.
20134         Formatting fixes.
20136         PR target/80846
20137         * config/rs6000/vsx.md (vextract_fp_from_shorth,
20138         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
20139         calls.
20141 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
20142             Doug Rupp  <rupp@adacore.com>
20143             Olivier Hainque  <hainque@adacore.com>
20145         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
20146         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
20147         arm8 (arch v4).
20148         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
20149         for TARGET_OS_CPP_BUILTIN.
20150         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
20151         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
20152         arm_arch7.
20153         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
20154         passing required abi options to the assembler for EABI configurations.
20155         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
20156         of .text.hot and .text.unlikely sections for kernel modules when
20157         using ARM style exceptions.
20158         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
20159         options. Add EXTRA_CC1_SPEC.
20160         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
20161         toolchain options.
20162         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
20163         transition.
20164         (ARM_TARGET2_DWARF_FORMAT): Define.
20165         * config/arm/t-vxworks: Adjust multilib control to removal of the
20166         Diab command line options.
20168 2017-08-01  Martin Liska  <mliska@suse.cz>
20170         PR gcov-profile/81561
20171         * gcov.c (unblock): Make unblocking safe as we need to preserve
20172         index correspondence of blocks and block_lists.
20174 2017-08-01  Richard Biener  <rguenther@suse.de>
20176         PR tree-optimization/81181
20177         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
20178         (compute_antic): ... end of iteration here.
20180 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
20182         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
20183         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
20184         (ftree-slp-vectorize): Likewise.
20185         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
20186         can no longer be set independent of flag_tree_loop_vectorize.
20187         * omp-general.c (emp_max_vf): Likewise.
20188         * opts.c (enable_fdo_optimizations): Remove references to
20189         flag_tree_vectorize, these are now implicit.
20190         (common_handle_option): Remove handling for OPT_ftree_vectorize,
20191         and leave it for the options machinery.
20193 2017-08-01  Martin Liska  <mliska@suse.cz>
20195         PR middle-end/70140
20196         * builtins.c (expand_builtin_memcpy_args): Remove.
20197         (expand_builtin_memcpy): Call newly added function
20198         expand_builtin_memory_copy_args.
20199         (expand_builtin_memcpy_with_bounds): Likewise.
20200         (expand_builtin_mempcpy): Remove last argument.
20201         (expand_builtin_mempcpy_with_bounds): Likewise.
20202         (expand_builtin_memory_copy_args): New function created from
20203         expand_builtin_mempcpy_args with small modifications.
20204         (expand_builtin_mempcpy_args): Remove.
20205         (expand_builtin_stpcpy): Remove unused argument.
20206         (expand_builtin): Likewise.
20207         (expand_builtin_with_bounds): Likewise.
20209 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
20211         PR target/81641
20212         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
20213         print "ds:" only for immediates in generic address space.
20215 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
20217         PR target/81639
20218         * config/i386/i386.c (ix86_funciton_naked): New prototype.
20219         (ix86_function_ok_for_sibcall): Return false for naked functions.
20221 2017-08-01  Richard Biener  <rguenther@suse.de>
20223         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
20224         (compute_antic): Seed worklist with exit block predecessors.
20225         * cfganal.c (dfs_find_deadend): For a cycle return the source
20226         of the edge closing it.
20228 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
20230         * config/aarch64/aarch64.c
20231         (aarch64_can_const_movi_rtx_p): Move 0 check.
20233 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
20235         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
20236         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
20237         above macro.
20238         * match.pd: Ditto in address comparison pattern.
20240 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
20242         PR tree-optimization/81627
20243         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
20244         closed ssa form for store-store chain.
20246 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
20248         PR tree-optimization/81620
20249         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
20250         for store-store chain.
20252 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
20254         PR tree-optimization/81588
20255         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
20256         ranges[i].in_p, invert comparison code ccode.  For >/>=,
20257         swap rhs1 and rhs2 and comparison code unconditionally,
20258         for </<= don't do that.  Don't swap rhs1/rhs2 again if
20259         ranges[i].in_p, instead invert comparison code ccode if
20260         opcode or oe->rank is BIT_IOR_EXPR.
20262         PR target/80846
20263         * optabs.def (vec_extract_optab, vec_init_optab): Change from
20264         a direct optab to conversion optab.
20265         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
20266         with GET_MODE_INNER as last argument instead of optab_handler.
20267         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
20268         vector extraction if possible and optab is available.
20269         * expr.c (store_constructor): Use convert_optab_handler instead
20270         of optab_handler.  Use vector initialization from smaller
20271         vectors if possible and optab is available.
20272         * tree-vect-stmts.c (vectorizable_load): Likewise.
20273         * doc/md.texi (vec_extract, vec_init): Document that the optabs
20274         now have two modes.
20275         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
20276         of vec_init from half-sized vectors with the same element mode.
20277         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
20278         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
20279         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
20280         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
20281         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
20282         after mode in gen_vec_extract* calls.
20283         (vec_extract<mode>): Renamed to ...
20284         (vec_extract<mode><ssescalarmodelower>): ... this.
20285         (vec_extract<mode><ssehalfvecmodelower>): New expander.
20286         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
20287         element mode after mode in gen_vec_init* calls.
20288         (VEC_INIT_HALF_MODE): New mode iterator.
20289         (vec_init<mode>): Renamed to ...
20290         (vec_init<mode><ssescalarmodelower>): ... this.
20291         (vec_init<mode><ssehalfvecmodelower>): New expander.
20292         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
20293         (vec_extractv2sfsf): ... this.
20294         (vec_initv2sf): Renamed to ...
20295         (vec_initv2sfsf): ... this.
20296         (vec_extractv2si): Renamed to ...
20297         (vec_extractv2sisi): ... this.
20298         (vec_initv2si): Renamed to ...
20299         (vec_initv2sisi): ... this.
20300         (vec_extractv4hi): Renamed to ...
20301         (vec_extractv4hihi): ... this.
20302         (vec_initv4hi): Renamed to ...
20303         (vec_initv4hihi): ... this.
20304         (vec_extractv8qi): Renamed to ...
20305         (vec_extractv8qiqi): ... this.
20306         (vec_initv8qi): Renamed to ...
20307         (vec_initv8qiqi): ... this.
20308         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
20309         (vec_init<mode>): Renamed to ...
20310         (vec_init<mode><VEC_base_l>): ... this.
20311         (vec_extract<mode>): Renamed to ...
20312         (vec_extract<mode><VEC_base_l>): ... this.
20313         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
20314         (vec_initv2sfsf): ... this.
20315         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
20316         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
20317         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
20318         element mode after mode in gen_vec_init* calls.
20319         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
20320         (vec_init<mode><Vel>): ... this.
20321         (vec_extract<mode>): Renamed to ...
20322         (vec_extract<mode><Vel>): ... this.
20323         * config/aarch64/iterators.md (Vel): New mode attribute.
20324         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
20325         Add element mode after mode in gen_vec_extract* calls.
20326         * config/s390/vector.md (non_vec_l): New mode attribute.
20327         (vec_extract<mode>): Renamed to ...
20328         (vec_extract<mode><non_vec_l>): ... this.
20329         (vec_init<mode>): Renamed to ...
20330         (vec_init<mode><non_vec_l>): ... this.
20331         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
20332         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
20333         vec_extract mode.
20334         * config/arm/iterators.md (V_elem_l): New mode attribute.
20335         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
20336         (vec_extract<mode><V_elem_l>): ... this.
20337         (vec_extractv2di): Renamed to ...
20338         (vec_extractv2didi): ... this.
20339         (vec_init<mode>): Renamed to ...
20340         (vec_init<mode><V_elem_l>): ... this.
20341         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
20342         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
20343         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
20344         Add element mode after gen_vec_extract* calls.
20345         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
20346         (vec_init<mode><unitmode>): ... this.
20347         (vec_extract<mode>): Renamed to ...
20348         (vec_extract<mode><unitmode>): ... this.
20349         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
20350         (vec_init<mode><unitmode>): ... this.
20351         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
20352         (vec_initv2sfsf): ... this.
20353         (vec_extractv2sf): Renamed to ...
20354         (vec_extractv2sfsf): ... this.
20355         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
20356         Add element mode after gen_vec_extract* calls.
20357         * config/mips/mips.md (unitmode): New mode iterator.
20358         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
20359         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
20360         * config/spu/spu.md (inner_l): New mode attribute.
20361         (vec_init<mode>): Renamed to ...
20362         (vec_init<mode><inner_l>): ... this.
20363         (vec_extract<mode>): Renamed to ...
20364         (vec_extract<mode><inner_l>): ... this.
20365         * config/sparc/sparc.md (veltmode): New mode iterator.
20366         (vec_init<VMALL:mode>): Renamed to ...
20367         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
20368         * config/ia64/vect.md (vec_initv2si): Renamed to ...
20369         (vec_initv2sisi): ... this.
20370         (vec_initv2sf): Renamed to ...
20371         (vec_initv2sfsf): ... this.
20372         (vec_extractv2sf): Renamed to ...
20373         (vec_extractv2sfsf): ... this.
20374         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
20375         (vec_init<mode>): Renamed to ...
20376         (vec_init<mode><VEC_base_l>): ... this.
20377         (vec_extract<mode>): Renamed to ...
20378         (vec_extract<mode><VEC_base_l>): ... this.
20379         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
20380         (vec_initv2sfsf): ... this.
20381         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
20382         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
20383         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
20384         gen_vec_init* calls.
20386 2017-08-01  Richard Biener  <rguenther@suse.de>
20388         PR tree-optimization/81297
20389         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
20390         TREE_OVERFLOW from INTEGER_CSTs.
20392 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
20394         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
20396 2017-07-31  Carl Love  <cel@us.ibm.com>
20398         * config/rs6000/rs6000-c: Add support for built-in functions
20399         vector signed char vec_xl_be (signed long long, signed char *);
20400         vector unsigned char vec_xl_be (signed long long, unsigned char *);
20401         vector signed int vec_xl_be (signed long long, signed int *);
20402         vector unsigned int vec_xl_be (signed long long, unsigned int *);
20403         vector signed long long vec_xl_be (signed long long, signed long long *);
20404         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
20405         vector signed short vec_xl_be (signed long long, signed short *);
20406         vector unsigned short vec_xl_be (signed long long, unsigned short *);
20407         vector double vec_xl_be (signed long long, double *);
20408         vector float vec_xl_be (signed long long, float *);
20409         * config/rs6000/altivec.h (vec_xl_be): Add #define.
20410         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
20411         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
20412         for the builtins.
20413         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
20414         (altivec_expand_builtin): Add switch statement to call
20415         altivec_expand_xl_be for each builtin.
20416         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
20417         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
20418         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
20419         __builtin_vsx_le_be_v16qi.
20420         * doc/extend.texi: Update the built-in documentation file for the
20421         new built-in functions.
20423 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
20425         PR target/25967
20426         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
20427         New function.
20428         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
20430 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20432         * config.gcc: Add z14.
20433         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
20434         CPU model numbers for z13s and z14.
20435         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
20436         arch12 with z14.
20437         * config/s390/s390-opts.h (enum processor_type): Rename
20438         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
20439         * config/s390/s390.c (processor_table): Add field for CPU name to
20440         be passed to Binutils.
20441         (s390_asm_output_machine_for_arch): Use the new field in
20442         processor_table for Binutils.
20443         (s390_expand_builtin): Replace arch12 with z14.
20444         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
20445         (s390_get_sched_attrmask): Likewise.
20446         (s390_get_unit_mask): Likewise.
20447         * config/s390/s390.opt: Add z14 to processor_type enum.
20449 2017-07-31  Martin Jambor  <mjambor@suse.cz>
20451         PR hsa/81477
20452         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
20453         regardless of optimization level.
20455 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
20456             Martin Liska  <mliska@suse.cz>
20458         * predict.def: Remove old comment and adjust probability.
20459         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
20460         PREDICT statements.
20462 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
20464         PR target/25967
20465         * config/i386/i386.c (ix86_function_naked): New function.
20466         (ix86_can_use_return_insn_p): Return false for naked functions.
20467         (ix86_expand_prologue): Skip prologue for naked functions.
20468         (ix86_expand_epilogue): Skip epilogue for naked functions
20469         and emit trap instruction.
20470         (ix86_warn_func_return): New function.
20471         (ix86_attribute_table): Add "naked" attribute specification.
20472         (TARGET_WARN_FUNC_RETURN): Define.
20473         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
20475 2017-07-31  Martin Liska  <mliska@suse.cz>
20477         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
20478         (dump_gimple_bb_header): Always dump BB info.
20479         (pp_cfg_jump): Do not append info about BB when dumping a jump.
20481 2017-07-31  Martin Liska  <mliska@suse.cz>
20483         PR sanitize/81530
20484         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
20485         also with current_function_decl non-null equality.
20487 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
20489         PR sanitizer/81604
20490         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
20491         change type to the element type, instead add eltype variable and
20492         use it where we are interested in the element type.
20494         PR tree-optimization/81603
20495         * ipa-polymorphic-call.c
20496         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
20497         offset arithmetic in offset_int, bail out if the resulting bit offset
20498         doesn't fit into shwi.
20500 2017-07-31  Martin Liska  <mliska@suse.cz>
20502         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
20503         (gimplify_save_expr): Fix comment.
20505 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
20507         PR target/79793
20508         * config/i386/i386.c (ix86_function_arg): Update arguments for
20509         exception handler.
20510         (ix86_compute_frame_layout): Set the initial stack offset to
20511         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
20512         INCOMING_FRAME_SP_OFFSET.
20513         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
20514         stack before exception handler returns.
20515         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
20516         the 'ERROR_CODE' for exception handler.
20518 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
20520         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
20521         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
20522         (ASM_OUTPUT_REG_POP): Ditto.
20523         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
20524         instead of asm_fprintf to output pure string.
20526 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
20528         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
20529         to imported_module_or_decl hook.
20530         (debug_nothing_tree_tree_tree_bool): Remove.
20531         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
20532         * debug.c (do_nothing_debug_hooks): Use
20533         debug_nothing_tree_tree_tree_bool_bool instead of
20534         debug_nothing_tree_tree_tree_bool.
20535         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20536         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20537         * sdbout.c (sdb_debug_hooks): Likewise.
20538         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
20539         (gen_namespace_die): Add DW_AT_export_symbols attribute if
20540         langhook wants it.
20541         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
20542         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
20543         attribute, don't add anything.
20545 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20547         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
20548         (fold_build2_stat_loc): Likewise.
20549         (fold_build3_stat_loc): Likewise.
20550         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
20551         (fold_build1_loc): Remove macro.
20552         (fold_build2_loc): Likewise.
20553         (fold_build3_loc): Likewise.
20555 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20557         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
20558         (gimple_build_debug_bind_source_stat): Likewise.
20559         * gimple.h (gimple_build_debug_bind): Remove macro.
20560         (gimple_build_debug_bind_source): Likewise.
20562 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20564         * bitmap.c (bitmap_alloc): Adjust.
20565         (bitmap_gc_alloc): Likewise.
20566         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
20568 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20570         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
20571         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
20572         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
20573         (bitmap_gc_alloc_stat): Likewise.
20574         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
20576 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20578         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
20579         * rtl.h (shallow_copy_rtx): Remove macro.
20581 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20583         * emit-rtl.c (gen_raw_REG): Adjust.
20584         * gengenrtl.c (gendef): Likewise.
20585         * rtl.c (rtx_alloc_stat): Remove _stat from name.
20586         * rtl.h (rtx_alloc): Remove macro.
20588 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20590         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
20591         (build_tree_list_stat): Likewise.
20592         * tree.h (build_tree_list): Remove macro.
20593         (build_tree_list_vec): Likewise.
20595 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20597         * tree.c (make_vector_stat): Remove _stat from name.
20598         (build_vector_stat): Likewise.
20599         * tree.h (make_vector_stat): Remove macro.
20600         (build_vector_stat): Likewise.
20602 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20604         * tree.h (build_var_debug_value): Remove prototype.
20606 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20608         * tree.c (tree_cons_stat): Remove _stat from name.
20609         * tree.h (tree_cons): Remove macro.
20611 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20613         * tree.c (build_vl_exp_stat): Remove _stat from name.
20614         * tree.h (build_vl_exp): Remove macro.
20616 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20618         * tree.c (build_decl_stat): Remove _stat from name.
20619         * tree.h (build_decl): Remove macro.
20621 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20623         * gimple.c (gimple_build_with_ops_stat): Adjust.
20624         (gimple_alloc_stat): Remove _stat from name.
20625         * gimple.h (gimple_alloc): Remove macro.
20627 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20629         * tree.c (make_tree_vec_stat): Remove _stat from name.
20630         (grow_tree_vec_stat): Likewise.
20631         * tree.h (make_tree_vec_stat): Adjust prototype.
20632         (grow_tree_vec_stat): Likewise.
20633         (make_tree_vec): Remove macro.
20634         (grow_tree_vec): Likewise.
20636 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20638         * fold-const.c (fold_build1_stat_loc): Adjust.
20639         (fold_build2_stat_loc): Likewise.
20640         (fold_build3_stat_loc): Likewise.
20641         * tree.c (build0_stat): Remove _stat from name.
20642         (build1_stat): Likewise.
20643         (build2_stat): Likewise.
20644         (build3_stat): Likewise.
20645         (build4_stat): Likewise.
20646         (build5_stat): Likewise.
20647         * tree.h (build1_loc): Remove macro, and rename _stat function
20648         to this.
20649         (build2_loc): Likewise.
20650         (build3_loc): Likewise.
20651         (build4_loc): Likewise.
20652         (build5_loc): Likewise.
20654 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20656         * tree.c (make_int_cst_stat): Remove _stat from name.
20657         * tree.h (make_int_cst_stat): Adjust prototype.
20658         (make_int_cst): Remove macro.
20660 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20662         * tree.c (make_tre_binfo_stat): Remove _stat from name.
20663         * tree.h (make_tree_binfo_stat): Adjust prototype.
20664         (make_tree_binfo): Remove.
20666 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20668         * tree.c (copy_node_stat): Rename to copy_node.
20669         (build_distinct_type_copy): Adjust.
20670         * tree.h (copy_node_stat): Adjust prototype.
20671         (copy_node): Remove macro.
20673 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20675         * tree.c (make_node_stat): rename to make_node.
20676         (build_tree_list_stat): Adjust.
20677         (build0_stat): Likewise.
20678         (build2_stat): Likewise.
20679         (build3_stat): Likewise.
20680         (build4_stat): Likewise.
20681         (build5_stat): Likewise.
20682         (build_decl_stat): Likewise.
20683         * tree.h (make_node_stat): Adjust prototype.
20684         (make_node): remove macro.
20686 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
20688         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
20689         (PPC_FEATURE2_SCV): Likewise.
20690         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
20692 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
20694         * config/aarch64/aarch64.c
20695         (aarch64_internal_mov_immediate): Add new special pattern.
20696         * config/aarch64/aarch64.md (*movdi_aarch64):
20697         Add reg/32bit const mov case.
20699 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
20700             Richard Sandiford <richard.sandiford@linaro.org>
20702         * config/aarch64/aarch64.md (mov<mode>): Generalize.
20703         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
20704         Add integer and movi cases.
20705         (movi-split-hf-df-sf split, fp16): New.
20706         (enabled): Added TARGET_FP_F16INST.
20707         * config/aarch64/iterators.md (GPF_HF): New.
20708         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
20710 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
20712         * config/aarch64/aarch64.c
20713         (aarch64_simd_container_mode): Add prototype.
20714         (aarch64_expand_mov_immediate): Add HI support.
20715         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
20716         (aarch64_can_const_movi_rtx_p): New.
20717         (aarch64_preferred_reload_class):
20718         Remove restrictions of using FP registers for certain SIMD operations.
20719         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
20720         (aarch64_valid_floating_const): Add integer move validation.
20721         (aarch64_simd_imm_scalar_p): Remove.
20722         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
20723         (aarch64_legitimate_constant_p): Expand list of supported cases.
20724         * config/aarch64/aarch64-protos.h
20725         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
20726         (aarch64_reinterpret_float_as_int): New.
20727         (aarch64_simd_imm_scalar_p): Remove.
20728         * config/aarch64/constraints.md (Uvi): New.
20729         (Dd): Split into Ds and new Dd.
20730         * config/aarch64/aarch64.md (*movsi_aarch64):
20731         Add SIMD mov case.
20732         (*movdi_aarch64): Add SIMD mov case.
20734 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
20736         * tree-predcom.c: (struct chain): Handle store-store chain in which
20737         stores for elimination only store loop invariant values.
20738         (execute_pred_commoning_chain): Ditto.
20739         (prepare_initializers_chain_store_elim): Ditto.
20740         (prepare_finalizers): Ditto.
20741         (is_inv_store_elimination_chain): New function.
20742         (initialize_root_vars_store_elim_1): New function.
20744 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
20746         * tree-predcom.c: Revise general description of the pass.
20747         (enum chain_type): New enum type for store elimination.
20748         (struct chain): New field supporting store elimination.
20749         (struct component): Ditto.
20750         (dump_chain): Dump store-stores chain.
20751         (release_chain): Release resources.
20752         (split_data_refs_to_components): Compute and create component
20753         contains only stores for elimination.
20754         (get_chain_last_ref_at): New function.
20755         (make_invariant_chain): Initialization.
20756         (make_rooted_chain): Specify chain type in parameter and record it.
20757         (add_looparound_copies): Skip for store-stores chain.
20758         (determine_roots_comp): Compute type of chain and pass it to
20759         make_rooted_chain.
20760         (initialize_root_vars_store_elim_2): New function.
20761         (finalize_eliminated_stores): New function.
20762         (remove_stmt): Handle store for elimination.
20763         (execute_pred_commoning_chain): Execute predictive commoning on
20764         store-store chains.
20765         (determine_unroll_factor): Skip unroll for store-stores chain.
20766         (prepare_initializers_chain_store_elim): New function.
20767         (prepare_initializers_chain): Hanlde store-store chain.
20768         (prepare_finalizers_chain, prepare_finalizers): New function.
20769         (tree_predictive_commoning_loop): Return integer value indicating
20770         if loop is unrolled or lcssa form is corrupted.
20771         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
20773 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
20775         * tree-predcom.c (initialize_root): Delete.
20776         (execute_pred_commoning_chain): Initialize root vars and replace
20777         reference of non-combined chain directly, rather than call above
20778         function.
20780 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
20782         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
20783         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
20785 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
20787         * tree-predcom.c (struct chain): New field init_seq.
20788         (release_chain): Release init_seq.
20789         (prepare_initializers_chain): Record intialization stmts in above
20790         field.
20791         (insert_init_seqs): New function.
20792         (tree_predictive_commoning_loop): Call insert_init_seqs.
20794 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
20796         * tree-predcom.c (determine_roots_comp): Skip trivial components.
20798 2017-07-28  Richard Biener  <rguenther@suse.de>
20800         * match.pd: Remove superfluous :c.
20801         * genmatch.c (simplify::id): Add member.
20802         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
20803         Copy id.
20804         (current_id): New global.
20805         (dt_node::parent): Move from ...
20806         (dt_operand::parent): ... here.  Add for_id member.
20807         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
20808         (decision_tree::find_node): Relax order requirement when
20809         merging DT_TRUE nodes to ones inbetween the current simplify
20810         and the one we try to merge with.  Add diagnostic whenever
20811         we need to enforce pattern order by not merging.
20812         (decision_tree::insert): Set current_id.
20813         (decision_tree::print_node): Dump parent node and for_id.
20814         (parser::last_id): Add member.
20815         (parser::push_simplify): Assign unique id.
20816         (parser::parser): Initialize last_id.
20818 2017-07-28  Martin Liska  <mliska@suse.cz>
20820         PR sanitizer/81340
20821         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
20822         gimple_build_debug_bind.
20824 2017-07-28  Richard Biener  <rguenther@suse.de>
20826         PR tree-optimization/81502
20827         * match.pd: Add pattern combining BIT_INSERT_EXPR with
20828         BIT_FIELD_REF.
20829         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
20830         size/pos operands.
20831         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
20832         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
20833         for BIT_FIELD_REF args.
20834         * fold-const.c (make_bit_field_ref): Likewise.
20835         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
20837 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
20839         PR sanitizer/80998
20840         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
20841         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
20842         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
20843         Or it into SANITIZER_UNDEFINED.
20844         * ubsan.c: Include gimple-fold.h and varasm.h.
20845         (ubsan_expand_ptr_ifn): New function.
20846         (instrument_pointer_overflow): New function.
20847         (maybe_instrument_pointer_overflow): New function.
20848         (instrument_object_size): Formatting fix.
20849         (pass_ubsan::execute): Call instrument_pointer_overflow
20850         and maybe_instrument_pointer_overflow.
20851         * internal-fn.c (expand_UBSAN_PTR): New function.
20852         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
20853         * sanitizer.def (__ubsan_handle_pointer_overflow,
20854         __ubsan_handle_pointer_overflow_abort): New builtins.
20855         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
20856         * internal-fn.def (UBSAN_PTR): New internal function.
20857         * opts.c (sanitizer_opts): Add pointer-overflow.
20858         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
20859         * fold-const.c (build_range_check): Compute pointer range check in
20860         integral type if pointer arithmetics would be needed.  Formatting
20861         fixes.
20863 2017-07-28  Martin Liska  <mliska@suse.cz>
20865         PR sanitizer/81460
20866         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
20867         parameters that are of a variable-length.
20869 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20871         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
20872         rs6000/biarch64.h.
20873         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
20874         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
20875         (CRT_CALL_STATIC_FUNCTION): Likewise.
20876         (ASM_DEFAULT_SPEC): New define.
20877         (ASM_SPEC32): Likewise.
20878         (ASM_SPEC64): Likewise.
20879         (ASM_SPEC_COMMON): Likewise.
20880         (ASM_SPEC): Likewise.
20881         (INVALID_64BIT): Likewise.
20882         (LINK_OS_DEFAULT_SPEC): Likewise.
20883         (LINK_OS_SPEC32): Likewise.
20884         (LINK_OS_SPEC64): Likewise.
20885         (POWERPC_LINUX): Likewise.
20886         (PTRDIFF_TYPE): Likewise.
20887         (RESTORE_FP_PREFIX): Likewise.
20888         (RESTORE_FP_SUFFIX): Likewise.
20889         (SAVE_FP_PREFIX): Likewise.
20890         (SAVE_FP_SUFFIX): Likewise.
20891         (SIZE_TYPE): Likewise.
20892         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
20893         (TARGET_64BIT): Likewise.
20894         (TARGET_64BIT): Likewise.
20895         (TARGET_AIX): Likewise.
20896         (WCHAR_TYPE_SIZE): Likewise.
20897         (WCHAR_TYPE): Undefine.
20898         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
20899         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
20900         (CPP_OS_RTEMS_SPEC): Delete.
20901         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
20902         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
20903         link_os_spec64.
20904         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
20906 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
20908         PR tree-optimization/81578
20909         * tree-parloops.c (build_new_reduction): Bail out if
20910         reduction_code isn't one of the standard OpenMP reductions.
20911         Move the details printing after that decision.
20913 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
20915         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
20916         related to reload_in_progress.
20917         (splat_input_operand): Likewise.
20918         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
20919         Delete prototype.
20920         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
20921         field.
20922         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
20923         (TARGET_INSTANTIATE_DECLS): Likewise.
20924         (legitimate_indexed_address_p): Delete reload_in_progress code.
20925         (rs6000_debug_legitimate_address_p): Likewise.
20926         (rs6000_eliminate_indexed_memrefs): Likewise.
20927         (rs6000_emit_le_vsx_store): Likewise.
20928         (rs6000_emit_move_si_sf_subreg): Likewise.
20929         (rs6000_emit_move): Likewise.
20930         (register_to_reg_type): Likewise.
20931         (rs6000_pre_atomic_barrier): Likewise.
20932         (rs6000_machopic_legitimize_pic_address): Likewise.
20933         (rs6000_allocate_stack_temp): Likewise.
20934         (rs6000_address_for_fpconvert): Likewise.
20935         (rs6000_address_for_altivec): Likewise.
20936         (rs6000_secondary_memory_needed_rtx): Delete function.
20937         (rs6000_check_sdmode): Likewise.
20938         (rs6000_alloc_sdmode_stack_slot): Likewise.
20939         (rs6000_instantiate_decls): Likewise.
20940         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
20941         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
20942         Delete reload_in_progress.
20943         (*vec_reload_and_plus_<mptrsize>): Likewise.
20944         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
20945         (vsx_div_v2di): Likewise.
20946         (vsx_udiv_v2di): Likewise.
20948 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
20950         * config/rs6000/rs6000.opt (mlra): Replace with stub.
20951         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
20952         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
20953         (rs6000_debug_reg_global): Delete print of LRA status.
20954         (rs6000_option_override_internal): Delete dead LRA related code.
20955         (rs6000_lra_p): Delete function.
20956         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
20958 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20960         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
20961         * config/riscv/rtems.h: New file.
20963 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20964             Sudakshina Das  <sudi.das@arm.com>
20966         * config/aarch64/aarch64.md
20967         (define_split for and<mode>3nr_compare): Move
20968         non aarch64_logical_operand to a register.
20969         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
20970         register immediate operand to a register.
20971         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
20973 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
20975         PR middle-end/81564
20976         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
20978 2017-07-27  Richard Biener  <rguenther@suse.de>
20980         PR tree-optimization/81573
20981         PR tree-optimization/81494
20982         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
20983         multi defuse cycle case.
20985 2017-07-27  Richard Biener  <rguenther@suse.de>
20987         PR tree-optimization/81571
20988         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
20989         PHIs.
20991 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
20993         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
20994         earlier and only if MASK_FPU is set.  Adjust formatting.
20996 2017-07-27  Martin Liska  <mliska@suse.cz>
20998         * opt-functions.awk: Add validation of value of Init.
20999         * optc-gen.awk: Pass new argument.
21001 2017-07-27  Martin Liska  <mliska@suse.cz>
21003         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
21004         Fix wrong condition.
21006 2017-07-27  Martin Liska  <mliska@suse.cz>
21008         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
21009         BBs and edges seen by autoFDO.
21011 2017-07-27  Richard Biener  <rguenther@suse.de>
21013         PR tree-optimization/81502
21014         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
21015         with incompatible but same sized type.
21016         (execute_update_addresses_taken): Likewise.
21018 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
21020         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
21021         flag_tree_loop_vectorize rather than flag_tree_vectorize.
21023 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21025         PR target/81534
21026         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
21027         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
21028         Change s_operand to memory_operand.
21030 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
21032         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
21033         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
21034         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
21035         Emit instructions rather than returning an expression.  Handle TFmode
21036         and KFmode by casting to TImode.
21037         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
21038         (rs6000_emit_le_vsx_store): Likewise.
21039         * config/rs6000/vsx.md (VSX_TI): New iterator.
21040         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
21041         (*vsx_le_undo_permute_<mode>): Likewise.
21042         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
21043         emit the split sequence.
21044         (*vsx_le_perm_store_<mode>): Likewise.
21046 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
21048         PR tree-optimization/81555
21049         PR tree-optimization/81556
21050         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
21051         if true, force CHANGED for the recursive invocation.
21052         (reassociate_bb): Remember original length of ops array, pass
21053         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
21055         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
21056         attributes for noipa attribute.  For naked attribute use
21057         lookup_attribute first before lookup_attribute_spec.
21058         * final.c (rest_of_handle_final): Disable IPA RA for functions with
21059         noipa attribute.
21060         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
21061         for functions with noipa attribute.
21062         (cgraph_externally_visible_p): Return true for functions with noipa
21063         attribute.
21064         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
21065         for functions with noipa attribute.
21066         * doc/extend.texi: Document noipa function attribute.
21067         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
21068         also for functions with noipa attribute.
21069         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
21071 2017-07-26  Andrew Pinski  <apinski@cavium.com>
21073         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
21074         vec_unalign_load_cost and vec_unalign_store_cost.
21076 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
21078         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
21079         -mvsx-small-integer option.
21080         (ISA_3_0_MASKS_IEEE): Likewise.
21081         (OTHER_VSX_VECTOR_MASKS): Likewise.
21082         (POWERPC_MASKS): Likewise.
21083         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
21084         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
21085         code, only testing for DImode being allowed in non-VSX floating
21086         point registers.
21087         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
21088         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
21089         another VSX test.
21090         (rs6000_option_override_internal): Delete -mvsx-small-integer.
21091         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
21092         TARGET_P8_VECTOR test.
21093         (rs6000_secondary_reload_simple_move): Likewise.
21094         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
21095         since TARGET_P9_VECTOR was already tested.
21096         (rs6000_opt_masks): Remove -mvsx-small-integer.
21097         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
21098         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21099         used.
21100         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
21101         test for TARGET_VEXTRACTUB was used, and that uses
21102         TARGET_P9_VECTOR.
21103         (p9 extract splitter): Likewise.
21104         (vsx_extract_<mode>_di_p9): Likewise.
21105         (vsx_extract_<mode>_store_p9): Likewise.
21106         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
21107         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
21108         the elimination of TARGET_VSX_SMALL_INTEGER.
21109         (vsx_extract_<mode>_p8): Likewise.
21110         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
21111         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
21112         (vsx_set_<mode>_p9): Likewise.
21113         (vsx_set_v4sf_p9): Likewise.
21114         (vsx_set_v4sf_p9_zero): Likewise.
21115         (vsx_insert_extract_v4sf_p9): Likewise.
21116         (vsx_insert_extract_v4sf_p9_2): Likewise.
21117         * config/rs6000/rs6000.md (sign extend splitter): Change
21118         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
21119         (floatsi<mode>2_lfiwax_mem): Likewise.
21120         (floatunssi<mode>2_lfiwzx_mem): Likewise.
21121         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
21122         since a test for TARGET_P9_VECTOR was used.
21123         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21124         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
21125         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21126         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
21127         TARGET_P8_VECTOR test.
21128         (fix_trunc<mode>si2_stfiwx): Likewise.
21129         (fix_trunc<mode>si2_internal): Likewise.
21130         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
21131         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21132         used.
21133         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
21134         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
21135         TARGET_P8_VECTOR test.
21136         (fixuns_trunc<mode>si2_stfiwx): Likewise.
21137         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
21138         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21139         used.
21140         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
21141         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
21142         since a test for TARGET_P9_VECTOR was used.
21143         (splitter for loading small constants): Likewise.
21145 2017-07-26  Andrew Pinski  <apinski@cavium.com>
21147         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
21148         vec_fp_stmt_cost.
21150 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
21152         PR target/81563
21153         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
21154         (fp_valid_at): Likewise.
21156 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
21158         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
21159         (qdf24xx_addrcost_table): Likewise.
21160         (cortexa57_tunings): Update to use generic_branch_cost.
21161         (cortexa72_tunings): Likewise.
21162         (cortexa73_tunings): Likewise.
21163         (qdf24xx_tunings): Likewise.
21165 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
21167         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
21168         (thunderx2t99_branch_cost): Likewise.
21169         (cortexa35_tunings): Update to use generic_branch_cost.
21170         (cortexa53_tunings): Likewise.
21171         (cortexa57_tunings): Likewise.
21172         (cortexa72_tunings): Likewise.
21173         (cortexa73_tunings): Likewise.
21174         (thunderx2t99_tunings): Likewise.
21176 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21178         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
21179         (sparc_option_override): Honour MASK_FSMULD.
21180         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
21181         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
21182         * config/sparc/sparc.opt (mfsmuld): New option.
21183         * doc/invoke.texi (mfsmuld): Document option.
21185 2017-07-26  Marek Polacek  <polacek@redhat.com>
21187         PR middle-end/70992
21188         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
21190 2017-07-26  Richard Biener  <rguenther@suse.de>
21192         * gimple-match-head.c (do_valueize): Return OP if valueize
21193         returns NULL_TREE.
21194         (get_def): New helper to get at the def stmt of a SSA name
21195         if valueize allows.
21196         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
21197         do_valueize to get at the def stmt.
21198         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
21200 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
21202         PR middle-end/46932
21203         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
21205 2017-07-26  Martin Liska  <mliska@suse.cz>
21207         PR sanitize/81186
21208         * function.c (expand_function_start): Make expansion of
21209         nonlocal_goto_save_area after parm_birth_insn.
21211 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21213         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
21214         from all CPU target flags enable members.
21216 2017-07-26  Richard Biener  <rguenther@suse.de>
21218         * genmatch.c (dt_simplify::gen): Make iterator vars const.
21219         (decision_tree::gen): Make 'type' const.
21220         (write_predicate): Likewise.
21222 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21224         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
21225         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
21226         (rs6000_option_override_internal): Likewise.
21227         (rs6000_expand_vector_set): Likewise.
21228         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
21229         (TARGET_UPPER_REGS_SF): Likewise.
21230         (TARGET_UPPER_REGS_DI): Likewise.
21231         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
21232         (TARGET_DIRECT_MOVE_64BIT): Likewise.
21233         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
21234         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21235         (Splitters for DI constants in Altivec registers): Likewise.
21236         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
21237         (vsx_set_v4sf_p9): Likewise.
21238         (vsx_set_v4sf_p9_zero): Likewise.
21239         (vsx_insert_extract_v4sf_p9): Likewise.
21240         (vsx_insert_extract_v4sf_p9_2): Likewise.
21242 2017-07-25  Carl Love  <cel@us.ibm.com>
21244         * doc/extend.texi: Update the built-in documentation file for the
21245         existing built-in functions
21246         vector signed char vec_cnttz (vector signed char);
21247         vector unsigned char vec_cnttz (vector unsigned char);
21248         vector signed short vec_cnttz (vector signed short);
21249         vector unsigned short vec_cnttz (vector unsigned short);
21250         vector signed int vec_cnttz (vector signed int);
21251         vector unsigned int vec_cnttz (vector unsigned int);
21252         vector signed long long vec_cnttz (vector signed long long);
21253         vector unsigned long long vec_cnttz (vector unsigned long long);
21255 2017-07-25  Andrew Pinski  <apinski@cavium.com>
21257         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
21258         accesses where the use is for the first operand of a BIT_INSERT.
21260 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
21262         PR bootstrap/81521
21263         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
21264         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
21266 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
21268         * config/i386/gstabs.h: Delete.
21269         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
21271 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
21273         * config/i386/i386.c (ix86_decompose_address): Do not check for
21274         register RTX when looking at index_reg or base_reg.
21275         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
21277 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
21279         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
21280         to update EH info here.
21282 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
21284         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
21286 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
21288         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
21290 2017-07-25  Torsten Duwe  <duwe@suse.de>
21292         * common.opt: Introduce -fpatchable-function-entry
21293         command line option, and its variables function_entry_patch_area_size
21294         and function_entry_patch_area_start.
21295         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
21296         including a two-value parser.
21297         * target.def (print_patchable_function_entry): New target hook.
21298         * targhooks.h (default_print_patchable_function_entry): New function.
21299         * targhooks.c (default_print_patchable_function_entry): Likewise.
21300         * toplev.c (process_options): Switch off IPA-RA if
21301         patchable function entries are being generated.
21302         * varasm.c (assemble_start_function): Look at the
21303         patchable-function-entry command line switch and current
21304         function attributes and maybe generate NOP instructions by
21305         calling the print_patchable_function_entry hook.
21306         * doc/extend.texi: Document patchable_function_entry attribute.
21307         * doc/invoke.texi: Document -fpatchable_function_entry
21308         command line option.
21309         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
21310         New target hook.
21311         * doc/tm.texi: Re-generate.
21313 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
21315         PR target/81532
21316         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
21317         TARGET_AVX512DQ rather than TARGET_AVX512BW.
21319 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
21321         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
21323 2017-07-25  Richard Biener  <rguenther@suse.de>
21325         PR tree-optimization/81455
21326         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
21327         not walk in cycles when looking for guards.
21329 2017-07-25  Richard Biener  <rguenther@suse.de>
21331         PR tree-optimization/81529
21332         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
21333         when optimizing backedge uses.
21335 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
21337         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
21338         character for AIX.
21339         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
21340         to dl_section_ref.  On AIX, append an expression to subtract
21341         the size of the section length to dl_section_ref.
21343 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
21345         * configure.ac: If any of the config.* scripts fail, exit 1.
21346         * configure: Regenerate.
21348 2017-07-25  Richard Biener  <rguenther@suse.de>
21350         PR middle-end/81546
21351         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
21352         of immediate uses, be more verbose on errors.
21354 2017-07-25  Richard Biener  <rguenther@suse.de>
21356         PR tree-optimization/81510
21357         * tree-vect-loop.c (vect_is_simple_reduction): When the
21358         reduction stmt is not inside the loop bail out.
21360 2017-07-25  Richard Biener  <rguenther@suse.de>
21362         PR tree-optimization/81303
21363         * tree-vect-loop-manip.c (vect_loop_versioning): Build
21364         profitability check against LOOP_VINFO_NITERSM1.
21366 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
21368         * domwalk.c (cmp_bb_postorder): Simplify.
21369         (sort_bbs_postorder): New function.  Use it...
21370         (dom_walker::walk): ...here to optimize common cases.
21372 2017-07-25  Martin Liska  <mliska@suse.cz>
21374         PR ipa/81520
21375         * ipa-visibility.c (function_and_variable_visibility): Make the
21376         redirection just on target that supports aliasing.
21377         Fix GNU coding style.
21379 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21381         PR libgcc/61152
21382         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
21383         Format changes.
21384         * config/arm/rtems.h: Likewise.
21385         * config/bfin/rtems.h: Likewise.
21386         * config/i386/rtemself.h: Likewise.
21387         * config/lm32/rtems.h: Likewise.
21388         * config/m32c/rtems.h: Likewise.
21389         * config/m68k/rtemself.h: Likewise.
21390         * config/microblaze/rtems.h: Likewise.
21391         * config/mips/rtems.h: Likewise.
21392         * config/moxie/rtems.h: Likewise.
21393         * config/nios2/rtems.h: Likewise.
21394         * config/powerpcspe/rtems.h: Likewise.
21395         * config/rs6000/rtems.h: Likewise.
21396         * config/rtems.h: Likewise.
21397         * config/sh/rtems.h: Likewise.
21398         * config/sh/rtemself.h: Likewise.
21399         * config/sparc/rtemself.h: Likewise.
21401 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
21403         PR 81487
21404         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
21405         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
21406         * tree-ssa-structalias.c (alias_get_name): Same.
21408 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
21410         PR target/81414
21411         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
21412         instructions if no du chain is found.
21414 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
21416         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
21418 2017-07-25  Richard Biener  <rguenther@suse.de>
21420         PR middle-end/81505
21421         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
21422         sticky.
21424 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21426         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
21427         upper-regs options.
21428         (ISA_2_7_MASKS_SERVER): Likewise.
21429         (ISA_3_0_MASKS_IEEE): Likewise.
21430         (OTHER_P8_VECTOR_MASKS): Likewise.
21431         (OTHER_VSX_VECTOR_MASKS): Likewise.
21432         (POWERPC_MASKS): Likewise.
21433         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
21434         duplicate list of options.
21435         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
21436         explicit -mupper-regs options.
21437         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
21438         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
21439         alias for -mupper-regs-df.
21440         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
21441         (rs6000_init_hard_regno_mode_ok): Likewise.
21442         (rs6000_option_override_internal): Likewise.
21443         (rs6000_opt_masks): Likewise.
21444         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
21445         options in terms of whether -mvsx or -mpower8-vector was used.
21446         (TARGET_UPPER_REGS_DI): Likewise.
21447         (TARGET_UPPER_REGS_SF): Likewise.
21448         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
21449         -mupper-regs-* options.
21451 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
21453         * passes.c (emergency_dump_function): Print some empty lines and a
21454         header before the RTL dump.
21456 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
21458         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
21460 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
21462         PR target/79041
21463         * config/aarch64/aarch64.c (aarch64_classify_symbol):
21464         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
21466 2017-07-24  Carl Love  <cel@us.ibm.com>
21468         * config/rs6000/rs6000-c.c: Add support for built-in functions
21469         vector float vec_extract_fp32_from_shorth (vector unsigned short);
21470         vector float vec_extract_fp32_from_shortl (vector unsigned short);
21471         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
21472         vec_extract_fp_from_shortl): Add defines for the two builtins.
21473         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
21474         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
21475         new builtins.
21476         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
21477         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
21478         * doc/extend.texi: Update the built-in documentation file for the
21479         new built-in function.
21481 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
21483         PR bootstrap/81521
21484         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
21485         documentation.
21486         * doc/generic.texi: Likewise.
21487         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
21488         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
21490 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
21492         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
21493         (aarch64_mls_elt_merge<mode>): Likewise.
21495 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
21497         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
21498         having __cxa_atexit.
21500 2017-07-23  Michael Collison  <michael.collison@arm.com>
21502         * config/arm/arm.c (arm_option_override): Deprecate
21503         use of -mstructure-size-boundary.
21504         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
21505         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
21507 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21509         PR target/80695
21510         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
21511         Reduce cost estimate for direct moves.
21513 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
21515         PR target/80569
21516         * config/i386/i386.c (ix86_option_override_internal): Disable
21517         BMI, BMI2 and TBM instructions for -m16.
21519 2017-07-21  Carl Love  <cel@us.ibm.com>
21521         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21522         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
21523         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
21524         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
21525         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
21526         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
21527         VMULOSW): New enum "unspec" values.
21528         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
21529         altivec_vmulosw): New patterns.
21530         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
21531         VMULOSW): Add definitions.
21533 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
21535         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
21536         (qdf24xx): Likewise.
21537         * config/aarch64/aarch64-options-extensions.def (rdma); New.
21538         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
21539         (AARCH64_FL_V8_1): Renumber.
21540         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
21541         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
21542         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
21543         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
21544         rdma to feature modifiers list.
21546 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
21548         PR middle-end/56727
21549         * ipa-visibility (function_and_variable_visibility): Convert
21550         recursive PLT call to direct call if appropriate.
21552 2017-07-21  Andrew Pinski  <apinski@cavium.com>
21554         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
21555         operand 1 to see if the types precision matches.
21556         * fold-const.c (operand_equal_p): Likewise.
21558 2017-07-21  Richard Biener  <rguenther@suse.de>
21560         PR tree-optimization/81303
21561         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
21562         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
21563         (vect_peeling_hash_get_lowest_cost): Adjust.
21564         (vect_enhance_data_refs_alignment): Likewise.  Use
21565         vect_get_peeling_costs_all_drs to compute the penalty for no
21566         peeling to match up costs.
21568 2017-07-21  Richard Biener  <rguenther@suse.de>
21570         PR tree-optimization/81500
21571         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
21572         we didn't identify a reduction path.
21574 2017-07-21  Tom de Vries  <tom@codesourcery.com>
21575             Cesar Philippidis  <cesar@codesourcery.com>
21577         PR gcov-profile/81442
21578         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
21579         probabilities.
21581 2017-07-21  Tom de Vries  <tom@codesourcery.com>
21583         PR lto/81430
21584         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
21585         function.
21586         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
21587         nvptx_override_options_after_change.
21589 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
21591         * dwarf2out.c (output_file_names): Avoid double testing for
21592         dwarf_version >= 5.
21594 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
21596         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
21598 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
21600         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
21601         hot/cold regions.
21602         (try_crossjump_to_edge): Do not punt on partitioned functions.
21604 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
21606         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
21607         Put all BBs reachable only via paths crossing cold region to cold
21608         region.
21609         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
21611 2016-07-21  Richard Biener  <rguenther@suse.de>
21613         PR tree-optimization/81303
21614         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
21615         into account prologue and epilogue iterations when raising
21616         min_profitable_iters to sth at least covering one vector iteration.
21618 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
21620         * config/arm/arm.c (arm_test_cpu_arch_dat):
21621         Check for overlap.
21623 2017-07-20  Nathan Sidwell  <nathan@acm.org>
21625         Remove TYPE_METHODS.
21626         * tree.h (TYPE_METHODS): Delete.
21627         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
21628         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
21629         (dbxout_type_methods): Scan TYPE_FIELDS.
21630         (dbxout_type): Don't check TYPE_METHODS here.
21631         * function.c (use_register_for_decl): Always ignore register for
21632         class types when not optimizing.
21633         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
21634         * tree.c (free_lang_data_in_type): Stitch out member functions and
21635         templates from TYPE_FIELDS.
21636         (build_distinct_type_copy, verify_type_variant,
21637         verify_type): Member fns are on TYPE_FIELDS.
21638         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
21639         * tree-pretty-print.c (dump_generic_node): Likewise.
21641 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
21643         PR target/80846
21644         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
21645         V2TImode and V4TImode.
21646         (ix86_expand_vector_extract): Likewise.
21647         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
21648         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
21649         (ssescalarmode): Handle V4TImode and V2TImode.
21650         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
21651         (*vec_extractv2ti, *vec_extractv4ti): New insns.
21652         (VEXTRACTI128_MODE): New mode iterator.
21653         (splitter for *vec_extractv?ti first element): New.
21654         (VEC_INIT_MODE): New mode iterator.
21655         (vec_init<mode>): Consolidate 3 expanders into one using
21656         VEC_INIT_MODE mode iterator.
21658 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
21660         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
21661         non_spilled_static_chain_regno_p.
21663 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
21665         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
21667 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
21669         * bb-reorder.c (connect_traces): Allow copying of blocks within
21670         single partition.
21672 2017-07-20  Richard Biener  <rguenther@suse.de>
21674         * gimple.h (gimple_phi_result): Add gphi * overload.
21675         (gimple_phi_result_ptr): Likewise.
21676         (gimple_phi_arg): Likewise.  Adjust index assert to only
21677         allow actual argument accesses rather than all slots available
21678         by capacity.
21679         (gimple_phi_arg_def): Add gphi * overload.
21680         * tree-phinodes.c (make_phi_node): Initialize only actual
21681         arguments.
21682         (resize_phi_node): Clear memory not covered by old node,
21683         do not initialize excess argument slots.
21684         (reserve_phi_args_for_new_edge): Initialize new argument slot
21685         completely.
21687 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
21689         PR tree-optimization/81388
21690         Revert r238585:
21691         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
21693         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
21694         by removing computation of may_be_zero.
21696 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
21697             Tom de Vries  <tom@codesourcery.com>
21699         PR middle-end/81030
21700         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
21701         when gimple level profile disagrees with what RTL expander did.
21703 2017-07-20  Richard Biener  <rguenther@suse.de>
21705         PR tree-optimization/61171
21706         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
21707         (vect_analyze_stmt): Add slp instance parameter.
21708         (vectorizable_reduction): Likewise.
21709         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
21710         (vect_is_simple_reduction): Deal with chains not detected
21711         as SLP reduction chain, specifically not properly associated
21712         chains containing a mix of plus/minus.
21713         (get_reduction_op): Remove.
21714         (get_initial_defs_for_reduction): Simplify, pass in whether
21715         this is a reduction chain, pass in the SLP node for the PHIs.
21716         (vect_create_epilog_for_reduction): Get the SLP instance as
21717         arg and adjust.
21718         (vectorizable_reduction): Get the SLP instance as arg.
21719         During analysis remember the SLP node with the PHIs in the
21720         instance.  Simplify getting at the vectorized reduction PHIs.
21721         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
21722         through SLP instance.
21723         (vect_slp_analyze_operations): Likewise.
21724         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
21725         (vect_transform_stmt): Likewise.
21727 2017-07-20  Tom de Vries  <tom@codesourcery.com>
21729         PR tree-optimization/81489
21730         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
21731         read of phi arg location to before loop that modifies phi.
21733 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
21735         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
21736         New pattern.
21738 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
21740         PR middle-end/81331
21741         * except.c (execute): Fix ordering issue.
21743 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
21745         PR rtl-optimization/81423
21746         * combine.c (make_compound_operation_int): Don't try to optimize
21747         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
21749 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
21751         PR rtl-optimization/81423
21752         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
21753         with a constant that is -1 in the truncated to mode.
21755 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
21757         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
21758         (determine_unlikely_bbs): ... here.
21759         * predict.h (propagate_unlikely_bbs_forward): Declare.
21760         * cfgexpand.c (pass_expand::execute): Use it.
21761         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
21762         unlikely edges.
21763         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
21764         propagate_unlikely_bbs_forward.
21766 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
21768         PR middle-end/81331
21769         * except.c (maybe_add_nop_after_section_switch): New function.
21770         (execute): Use it.
21772 2017-07-19  Tom de Vries  <tom@codesourcery.com>
21774         * gimple.h (gimple_phi_set_arg): Make assert more strict.
21776 2017-07-19  Tom de Vries  <tom@codesourcery.com>
21778         * gimple.h (gimple_phi_arg): Make assert more strict.
21780 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
21782         * config.gcc (powerpc*-*-*): Add mmintrin.h.
21783         * config/rs6000/mmintrin.h: New file.
21784         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
21786 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
21788         PR tree-optimization/81346
21789         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
21791 2017-07-19  Tom de Vries  <tom@codesourcery.com>
21793         * config/nvptx/nvptx.md (VECIM): Add V2DI.
21795 2017-07-19  Tom de Vries  <tom@codesourcery.com>
21797         * config/nvptx/nvptx-modes.def: Add V2DImode.
21798         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
21799         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
21800         (nvptx_output_mov_insn): Handle lack of mov.b128.
21801         (nvptx_print_operand): Handle 'H' and 'L' codes.
21802         (nvptx_vector_mode_supported): Allow V2DImode.
21803         (nvptx_preferred_simd_mode): New function.
21804         (nvptx_data_alignment): New function.
21805         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
21806         nvptx_preferred_simd_mode.
21807         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
21808         64 to 128 bits.
21809         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
21811 2017-07-19  Tom de Vries  <tom@codesourcery.com>
21813         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
21814         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
21815         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
21816         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
21817         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
21818         (mov<VECIM>_insn): New define_insn.
21819         (define_expand "mov<VECIM>): New define_expand.
21821 2017-07-19  Tom de Vries  <tom@codesourcery.com>
21823         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
21825 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
21827         PR tree-optimization/81346
21828         * fold-const.h (fold_div_compare, range_check_type): Declare.
21829         * fold-const.c (range_check_type): New function.
21830         (build_range_check): Use range_check_type.
21831         (fold_div_compare): No longer static, rewritten into
21832         a match.pd helper function.
21833         (fold_comparison): Don't call fold_div_compare here.
21834         * match.pd (X / C1 op C2): New optimization using fold_div_compare
21835         as helper function.
21837 2017-07-19  Nathan Sidwell  <nathan@acm.org>
21839         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
21840         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
21841         * tree.c (find_decls_types_r, verify_type): Use
21842         TYPE_{MIN,MAX}_VALUE_RAW.
21843         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
21844         (hash_tree): Likewise.
21845         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
21846         Likewise.
21847         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
21848         Likewise.
21850 2017-07-18  Tom de Vries  <tom@codesourcery.com>
21852         PR middle-end/81464
21853         * omp-expand.c (expand_omp_for_static_chunk): Handle
21854         equal-argument loop exit phi.
21856 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
21858         PR target/81471
21859         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
21860         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
21861         operand 2 predicate.
21862         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
21863         operand 2 predicate.
21864         (ror,rol -> rorx splitters): Use const_int_operand as
21865         operand 2 predicate.
21867 2017-06-18  Richard Biener  <rguenther@suse.de>
21869         PR tree-optimization/81410
21870         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
21871         the gap in the ! slp_perm SLP case after each group.
21873 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
21875         PR middle-end/81463
21876         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
21877         again.
21879 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
21881         PR middle-end/81462
21882         * predict.c (set_even_probabilities): Cleanup; do not affect
21883         probabilities that are already known.
21884         (combine_predictions_for_bb): Call even when count is set.
21886 2017-07-18  Nathan Sidwell  <nathan@acm.org>
21888         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
21889         TYPE_MAX_VALUE.
21891 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
21893         PR target/81408
21894         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
21895         optimization for loop niter analysis.
21897 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
21899         PR target/81473
21900         * config/avr/avr.c (avr_optimize_casesi): Don't use
21901         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
21903 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
21905         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
21906         body_cost_vec from _vect_peel_extended_info.
21907         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
21908         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
21909         npeel.
21911 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
21913         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
21915 2017-07-18  Richard Biener  <rguenther@suse.de>
21917         PR tree-optimization/80620
21918         PR tree-optimization/81403
21919         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
21920         info when re-using a VN table entry.
21922 2017-07-18  Richard Biener  <rguenther@suse.de>
21924         PR tree-optimization/81418
21925         * tree-vect-loop.c (vectorizable_reduction): Properly compute
21926         vectype_in.  Verify that with lane-reducing reduction operations
21927         we have a single def-use cycle.
21929 2017-07-17  Carl Love  <cel@us.ibm.com>
21931         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
21933         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21934         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
21935         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
21936         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
21937         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
21938         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
21939         VMULOSW): New enum "unspec" values.
21940         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
21941         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
21942         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
21943         altivec_vmulosw): New patterns.
21944         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
21945         VMULOSW): Add definitions.
21947 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
21949         * config/alpha/alpha.c: Include predict.h.
21951 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
21953         * tree-vrp.c (compare_assert_loc): Fix comparison function
21954         to return predictable results.
21956 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
21958         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
21959         option.
21960         (subdi3): Likewise.
21961         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
21962         * doc/invoke.texi (mexpand-adddi): Update text.
21964 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
21966         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
21967         that also clobbers the CC register. The old expand code is moved
21968         to ...
21969         (*arc_clzsi2): ... here.
21970         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
21971         the CC register. The old expand code is moved to ...
21972         (arc_ctzsi2): ... here.
21974 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
21976         * config/arc/arc.opt (mindexed-loads): Use initial value
21977         TARGET_INDEXED_LOADS_DEFAULT.
21978         (mauto-modify-reg): Use initial value
21979         TARGET_AUTO_MODIFY_REG_DEFAULT.
21980         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
21981         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
21982         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
21983         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
21985 2017-07-17  Martin Liska  <mliska@suse.cz>
21987         PR sanitizer/81302
21988         * opts.c (finish_options): Do not allow -fgnu-tm
21989         w/ -fsanitize={kernel-,}address.  Say sorry.
21991 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
21993         PR target/81369
21994         * tree-loop-distribution.c (classify_partition): Only assert on
21995         numer of iterations.
21996         (merge_dep_scc_partitions): Delete prameter.  Update function call.
21997         (distribute_loop): Remove code handling loop with unknown niters.
21998         (pass_loop_distribution::execute): Skip loop with unknown niters.
22000 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22002         PR target/81369
22003         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
22004         function sort_partitions_by_post_order.
22006 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22008         PR tree-optimization/81374
22009         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
22010         the max index of basic blocks, rather than number of basic blocks.
22012 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22014         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
22015         proto.
22016         (arc_legitimate_pic_operand_p): Likewise.
22017         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
22018         function.
22019         (arc_needs_pcl_p): Likewise.
22020         (arc_legitimate_pc_offset_p): Likewise.
22021         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
22022         function is also used in constrains.md.
22023         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
22024         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
22025         PLUS.  Only return true/false in known cases, otherwise assert.
22026         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
22027         is already called in arc_legitimate_constant_p.
22028         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
22029         pic addresses.
22030         (LEGITIMATE_PIC_OPERAND_P): Use
22031         arc_raw_symbolic_reference_mentioned_p function.
22032         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
22033         function.
22034         (Cal): Likewise.
22035         (C32): Likewise.
22037 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22038         Andrew Burgess  <andrew.burgess@embecosm.com>
22040         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
22041         (arc_return_address_register): New function.
22042         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
22043         (arc_handle_fndecl_attribute): Add naked attribute.
22044         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
22045         (TARGET_WARN_FUNC_RETURN): Likewise.
22046         (arc_allocate_stack_slots_for_args): New function.
22047         (arc_warn_func_return): Likewise.
22048         (machine_function): Change type fn_type.
22049         (arc_compute_function_type): Consider new naked function type,
22050         change function return type.
22051         (arc_must_save_register): Adapt to handle new
22052         arc_compute_function_type's return type.
22053         (arc_expand_prologue): Likewise.
22054         (arc_expand_epilogue): Likewise.
22055         (arc_return_address_regs): Delete.
22056         (arc_return_address_register): New function.
22057         (arc_epilogue_uses): Use above function.
22058         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
22059         (arc_function_type): Change encoding, add naked type.
22060         (ARC_INTERRUPT_P): Change to handle the new encoding.
22061         (ARC_FAST_INTERRUPT_P): Likewise.
22062         (ARC_NORMAL_P): Define.
22063         (ARC_NAKED_P): Likewise.
22064         (arc_compute_function_type): Delete prototype.
22065         * config/arc/arc.md (in_ret_delay_slot): Use
22066         arc_return_address_register function.
22067         (simple_return): Likewise.
22068         (p_return_i): Likewise.
22070 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22072         PR tree-optimization/81428
22073         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
22074         can't be built for those types.
22076 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
22078         Remove stuff dead since r239246.
22080         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
22081         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
22082         (avr_inform_devices): Remove dead stuff.
22084 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
22086         * config/arm/arm_neon.h: Fix softp typo.
22088 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22090         PR tree-optimization/81365
22091         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
22092         aggregate moves onto bb predecessor edges, make sure there are no
22093         loads that could alias the lhs in between the start of bb and the
22094         loads from *phi.
22096 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
22098         PR 80929
22099         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
22100         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
22101         [LSHIFTRT, outer_code = TRUNCATE]: Same.
22103 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22105         PR tree-optimization/81396
22106         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
22107         (init_symbolic_number): Initialize it to 1.
22108         (perform_symbolic_merge): Add n_ops from both operands into the new
22109         n_ops.
22110         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
22111         without base_addr as useless if they need more than one operation.
22112         (bswap_replace): Handle !bswap case for NULL base_addr.
22114 2017-07-17  Tom de Vries  <tom@codesourcery.com>
22116         PR target/81069
22117         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
22118         as possible.
22120 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22122         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
22123         conditional builtin define __FIX_LEON3FT_B2BST.
22125 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
22127         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
22128         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
22129         with -mfix-ut700.
22131 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
22133         PR rtl-optimization/81424
22134         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
22135         to remove potential trapping from operands if -fnon-call-exceptions.
22137 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22139         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
22140         profile_proability for scalling.
22141         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
22143 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22145         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
22147 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22149         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
22150         fixpoint arithmetics.
22152 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22154         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
22155         fixpoint arithmetics.
22157 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22159         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
22160         fixpoint arithmetics.
22162 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22164         * profile-count.h (profile_probability::from_reg_br_prob_note,
22165         profile_probability::to_reg_br_prob_note): New functions.
22166         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
22167         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
22168         * predict.c (probability_reliable_p): Update.
22169         (edge_probability_reliable_p): Update.
22170         (br_prob_note_reliable_p): Update.
22171         (invert_br_probabilities): Update.
22172         (add_reg_br_prob_note): New function.
22173         (combine_predictions_for_insn): Update.
22174         * asan.c (asan_clear_shadow): Update.
22175         * cfgbuild.c (compute_outgoing_frequencies): Update.
22176         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
22177         (update_br_prob_note): Update.
22178         (rtl_verify_edges): Update.
22179         (purge_dead_edges): Update.
22180         (fixup_reorder_chain): Update.
22181         * emit-rtl.c (try_split): Update.
22182         * ifcvt.c (cond_exec_process_insns): Update.
22183         (cond_exec_process_if_block): Update.
22184         (dead_or_predicable): Update.
22185         * internal-fn.c (expand_addsub_overflow): Update.
22186         (expand_neg_overflow): Update.
22187         (expand_mul_overflow): Update.
22188         * loop-doloop.c (doloop_modify): Update.
22189         * loop-unroll.c (compare_and_jump_seq): Update.
22190         * optabs.c (emit_cmp_and_jump_insn_1): Update.
22191         * predict.h: Update.
22192         * reorg.c (mostly_true_jump): Update.
22193         * rtl.h: Update.
22194         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
22195         * config/alpha/alpha.c (emit_unlikely_jump): Update.
22196         * config/arc/arc.c: (emit_unlikely_jump): Update.
22197         * config/arm/arm.c: (emit_unlikely_jump): Update.
22198         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
22199         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
22200         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
22201         (ix86_print_operand): Update.
22202         (ix86_split_fp_branch): Update.
22203         (predict_jump): Update.
22204         * config/ia64/ia64.c (ia64_print_operand): Update.
22205         * config/mmix/mmix.c (mmix_print_operand): Update.
22206         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
22207         (rs6000_expand_split_stack_prologue): Update.
22208         * config/rs6000/rs6000.c: Update.
22209         * config/s390/s390.c (s390_expand_vec_strlen): Update.
22210         (s390_expand_vec_movstr): Update.
22211         (s390_expand_cs_tdsi): Update.
22212         (s390_expand_split_stack_prologue): Update.
22213         * config/sh/sh.c (sh_print_operand): Update.
22214         (expand_cbranchsi4): Update.
22215         (expand_cbranchdi4): Update.
22216         * config/sparc/sparc.c (output_v9branch): Update.
22217         * config/spu/spu.c (get_branch_target): Update.
22218         (ea_load_store_inline): Update.
22219         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
22220         * config/tilepro/tilepro.c: Update.
22222 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
22224         * gimplify.c (mostly_copy_tree_r): Revert latest change.
22225         (gimplify_save_expr): Likewise.
22227 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22229         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
22231 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22233         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
22234         TV_IPA_FNSUMMARY.
22235         * timevar.def (TV_IPA_FNSUMMARY): Define.
22237 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
22239         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
22240         to back store errata sensitive sequence from being generated.
22241         (sqrtdf2_fix): Likewise.
22243 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22245         * tree-ssa-threadupdate.c (compute_path_counts,
22246         update_joiner_offpath_counts): Use profile_probability.
22248 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22250         Revert:
22251         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22253         * config/arm/arm-c.c (arm_cpu_builtins): Define
22254         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
22256 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
22258         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22259         array entries to represent __ieee128 versions of the
22260         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
22261         scalar_extract_sig, and scalar_insert_exp built-in functions.
22262         (altivec_resolve_overloaded_builtin): Add special case handling
22263         for the __builtin_scalar_insert_exp function, as represented by
22264         the P9V_BUILTIN_VEC_VSIEDP constant.
22265         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
22266         exponent support for __ieee128 argument.
22267         (VSESQP): Add scalar extract signature support for __ieee128
22268         argument.
22269         (VSTDCNQP): Add scalar test negative support for __ieee128
22270         argument.
22271         (VSIEQP): Add scalar insert exponent support for __int128 argument
22272         with __ieee128 result.
22273         (VSIEQPF): Add scalar insert exponent support for __ieee128
22274         argument with __ieee128 result.
22275         (VSTDCQP): Add scalar test data class support for __ieee128
22276         argument.
22277         (VSTDCNQP): Add overload support for scalar test negative with
22278         __ieee128 argument.
22279         (VSTDCQP): Add overload support for scalar test data class
22280         __ieee128 argument.
22281         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
22282         UNSPEC_VSX_SXSIGDP.
22283         (UNSPEC_VSX_SIEXPQP): New constant.
22284         (xsxexpqp): New insn for VSX scalar extract exponent quad
22285         precision.
22286         (xsxsigqp): New insn for VSX scalar extract significand quad
22287         precision.
22288         (xsiexpqpf): New insn for VSX scalar insert exponent quad
22289         precision with floating point argument.
22290         (xststdcqp): New expand for VSX scalar test data class quad
22291         precision.
22292         (xststdcnegqp): New expand for VSX scalar test negative quad
22293         precision.
22294         (xststdcqp): New insn to match expansions for VSX scalar test data
22295         class quad precision and VSX scalar test negative quad precision.
22296         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
22297         special case operand checking to enforce that second operand of
22298         VSX scalar test data class with quad precision argument is a 7-bit
22299         unsigned literal.
22300         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
22301         prototypes and descriptions of __ieee128 versions of
22302         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
22303         scalar_test_data_class, and scalar_test_neg built-in functions.
22305 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22307         PR tree-optimization/81162
22308         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
22309         replace a negate with an add.
22311 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
22313         * doc/invoke.texi (arm/-mcpu): Document +crypto.
22315 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22317         * config/arm/arm-c.c (arm_cpu_builtins): Define
22318         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
22320 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22322         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
22323         (armv8-r): Set ARM Cortex-R52 as default CPU.
22324         * config/arm/arm-tables.opt: Regenerate.
22325         * config/arm/arm-tune.md: Regenerate.
22326         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
22327         Cortex-R52.
22328         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
22329         extension for -mcpu=cortex-r52.
22331 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22333         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
22334         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
22335         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
22336         (fp-armv8): Define it as FP_ARMv8 only.
22337         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
22338         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
22339         TARGET_FPU_ARMV8.
22340         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
22341         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
22342         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
22343         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
22344         than TARGET_FPU_ARMV8.
22345         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
22346         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
22347         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
22348         TARGET_FPU_ARMV8.
22349         * config/arm/neon.md (neon_vrint): Likewise.
22350         (neon_vcvt): Likewise.
22351         (neon_<fmaxmin_op><mode>): Likewise.
22352         (<fmaxmin><mode>3): Likewise.
22353         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
22354         * config/arm/predicates.md (arm_cond_move_operator): Check against
22355         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
22357 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
22359         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
22360         to top of function.
22362 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22364         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
22365         loop in comment with memset.
22367 2017-07-14  Martin Liska  <mliska@suse.cz>
22369         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
22370         * dwarf2out.c (is_java): Remove the function.
22371         (output_pubname): Remove usage of the function.
22372         (lower_bound_default): Remove usage of DW_LANG_Java.
22373         (gen_compile_unit_die): Likewise.
22374         * gcc.c: Remove compiler defaults for .java and .zip files.
22375         * gimple-expr.c (remove_suffix): Change as there's no longer
22376         extension than 4-letter one.
22377         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
22378         (gimplify_save_expr): Likewise.
22379         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
22380         as it's possible even for other languages than Java.
22381         * langhooks.h (struct lang_hooks): Remove Java from a comment.
22382         * lto-opts.c (lto_write_options): Remove reference to Java.
22383         * opts.c (strip_off_ending): Update file extension handling.
22384         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
22385         * tree-eh.c (lower_resx): Likewise.
22386         * tree.c (free_lang_data_in_type): Remove dead code.
22387         (find_decls_types_r): Likewise.
22388         (build_common_builtin_nodes): Remove Java from a comment.
22389         (verify_type): Remove dead code.
22390         * varasm.c (assemble_external): Remove Java from a comment.
22392 2017-07-14  Martin Liska  <mliska@suse.cz>
22394         * opts.c (finish_options): Add quotes.
22395         (common_handle_option): Likewise.
22397 2017-07-14  Martin Liska  <mliska@suse.cz>
22399         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
22400         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
22401         Remove N_SO_PASCAL.
22402         * dwarf2out.c (lower_bound_default): Do not handle
22403         DW_LANG_Pascal83.
22404         (gen_compile_unit_die): Likewise.
22405         * gcc.c: Remove default extension binding for GNU Pascal.
22406         * stmt.c: Remove Pascal language from a comment.
22407         * xcoffout.c: Likewise.
22409 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
22411         PR c/81405
22412         * diagnostic-show-locus.c (fixit_cmp): New function.
22413         (layout::layout): Sort m_fixit_hints.
22414         (column_range::column_range): Assert that the values are valid.
22415         (struct char_span): New struct.
22416         (correction::overwrite): New method.
22417         (struct source_line): New struct.
22418         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
22419         calls in terms of classes source_line and char_span, and
22420         correction::overwrite.
22421         (selftest::test_overlapped_fixit_printing_2): New function.
22422         (selftest::diagnostic_show_locus_c_tests): Call it.
22424 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
22426         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
22427         early if there is no lhs.
22429 2017-07-13  Martin Liska  <mliska@suse.cz>
22431         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
22432         (gen_reference_type_die): Likewise.
22433         * stor-layout.c: Remove Pascal-related comment.
22435 2017-07-13  Martin Liska  <mliska@suse.cz>
22437         * opts.c (finish_options): Add quotes to error messages.
22438         (parse_sanitizer_options): Likewise.
22440 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22442         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
22444 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
22446         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
22448 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
22450         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
22451         during expansion.
22452         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
22454 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
22456         PR target/81193
22457         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
22458         provides the hardware capability bits, define the macro
22459         __BUILTIN_CPU_SUPPORTS__.
22460         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
22461         if GLIBC does not provide the hardware capability bits.  Add a
22462         gcc_unreachable call if the built-in cpu function is neither
22463         __builtin_cpu_is nor __builtin_cpu_supports.
22464         (rs6000_get_function_versions_dispatcher): Change the warning
22465         that an old GLIBC is used which does not export the capability
22466         bits to be an error.
22467         * doc/extend.texi (target_clones attribute): Document the
22468         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
22469         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
22470         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
22471         the macros defined by GCC if the newer GLIBC is available.
22473 2017-07-12  Jeff Law  <law@redhat.com>
22475         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
22476         remaining includes slightly.
22477         * config/riscv/riscv-builtins.c: Include profile-count.h.
22479 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
22481         PR target/79883
22482         * config/avr/avr.c (avr_set_current_function): In diagnostic
22483         messages: Quote keywords and (parts of) identifiers.
22484         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
22485         "INTERUPT".
22487 2017-07-12  Carl Love  <cel@us.ibm.com>
22489         * config/rs6000/rs6000-c.c: Add support for built-in functions
22490         vector bool char vec_revb (vector bool char);
22491         vector bool short vec_revb (vector short char);
22492         vector bool int vec_revb (vector bool int);
22493         vector bool long long vec_revb (vector bool long long);
22494         * doc/extend.texi: Update the built-in documentation file for the
22495         new built-in functions.
22497 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22499         * config/s390/s390.md: Remove movcc splitter.
22501 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22503         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
22504         load/store on condition.
22506 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
22508         PR target/81407
22509         * config/avr/avr.c (avr_encode_section_info)
22510         [progmem && !TREE_READONLY]: Error if progmem object needs
22511         constructing.
22513 2017-07-11  Michael Collison  <michael.collison@arm.com>
22515         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
22516         New pattern.
22518 2017-07-11  Carl Love  <cel@us.ibm.com>
22520         * config/rs6000/rs6000-c.c: Add support for builtins
22521         vector unsigned int vec_parity_lsbb (vector signed int);
22522         vector unsigned int vec_parity_lsbb (vector unsigned int);
22523         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
22524         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
22525         vector unsigned long long vec_parity_lsbb (vector signed long long);
22526         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
22527         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
22528         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
22529         * doc/extend.texi: Update the built-in documentation file for the
22530         new built-in functions.
22532 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
22534         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
22535         (layout::m_primary_loc): New field.
22536         (layout::layout): Initialize new field.  Move location filtering
22537         logic from here to...
22538         (layout::maybe_add_location_range): ...this new method.  Add
22539         support for filtering to just the lines already specified by other
22540         locations.
22541         (layout::will_show_line_p): New method.
22542         (gcc_rich_location::add_location_if_nearby): New method.
22543         (selftest::test_add_location_if_nearby): New test function.
22544         (selftest::diagnostic_show_locus_c_tests): Call it.
22545         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
22546         New method.
22548 2017-07-11  Tom de Vries  <tom@codesourcery.com>
22550         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
22551         (bb_first_real_insn): New function.
22552         (nvptx_single): Add extra initialization of broadcasted condition
22553         variables.
22555 2017-07-11  Nathan Sidwell  <nathan@acm.org>
22557         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
22559 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
22561         * doc/extend.texi (AVR Function Attributes): Remove weblink to
22562         Binutils doc as TEXI will mess them up.
22563         * doc/invoke.texi (AVR Options): Same here.
22565 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
22567         * config/sparc/sparc.opt (mfix-ut700): New option.
22568         (mfix-gr712rc): Likewise.
22569         (sparc_fix_b2bst): New variable.
22570         * doc/invoke.texi (SPARC options): Document them.
22571         (ARM options): Fix warnings.
22572         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
22573         instructions to prevent sequences that can trigger the store-store
22574         errata for certain LEON3FT processors.
22575         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
22576         (sparc_option_override): Set sparc_fix_b2bst appropriately.
22577         * config/sparc/sparc.md (fix_b2bst): New attribute.
22578         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
22580 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
22582         PR target/81375
22583         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
22584         (rcpps): Ditto.
22585         (*rsqrtsf2_sse): Ditto.
22586         (rsqrtsf2): Ditto.
22587         (div<mode>3): Macroize insn from divdf3 and divsf3
22588         using MODEF mode iterator.
22590 2017-07-10  Martin Sebor  <msebor@redhat.com>
22592         PR tree-optimization/80397
22593         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
22594         instead of testing for equality to INTEGER_TYPE.
22596 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
22598         * config.gcc: Remove uclibc from arc target spec.
22600 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
22602         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
22604 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22606         PR lto/80838
22607         * lto-wrapper.c (remove_option): New function.
22608         (merge_and_complain): Merge PIC/PIE options more realistically.
22610 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
22612         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
22614         PR target/20296
22615         PR target/81268
22616         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
22617         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
22618         * config.in: Regenerate.
22619         * configure: Regenerate.
22620         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
22621         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
22622         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
22623         (TARGET_GASISR_PROLOGUES): ...target mask.
22624         * common/config/avr/avr-common.c
22625         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
22626         Set -mgas-isr-prologues.
22627         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
22628         INSERT_PASS_BEFORE for it.
22629         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
22630         * config/avr/avr.c (avr_option_override)
22631         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
22632         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
22633         (avr_attribute_table) <no_gccisr>: Add new function attribute.
22634         (avr_set_current_function) <is_no_gccisr>: Init machine field.
22635         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
22636         and rtl_opt_pass.
22637         (make_avr_pass_pre_proep): New function.
22638         (emit_push_sfr) <treg>: Add argument to function and use it
22639         instead of TMP_REG.
22640         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
22641         and set machine->gasisr.yes.
22642         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
22643         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
22644         __gcc_isr.n_pushed to .L__stack_usage.
22645         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
22646         (avr_asm_final_postscan_insn): ...this new static function.
22647         * config/avr/avr.h (machine_function)
22648         <is_no_gccisr, use_L__stack_usage>: New fields.
22649         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
22650         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
22651         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
22652         (gasisr, *gasisr): New expander and insn.
22653         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
22654         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
22655         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
22657 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
22659         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
22660         in quoted strings.
22662 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
22664         Move jump-tables out of .text again.
22666         PR target/81075
22667         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
22668         (ASM_OUTPUT_ADDR_VEC): New function.
22669         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
22670         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
22671         INSN_ADDRESSes as asm comment.
22672         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
22673         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
22674         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
22675         * config/avr/avr.md (*tablejump): Adjust comment.
22676         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
22677         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
22678         New detail.
22679         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
22680         (avr_output_addr_vec): New proto.
22681         (avr_log_t) <insn_addresses>: New field.
22683 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
22685         PR target/81313
22686         * config/i386/i386.c (ix86_function_arg_advance): Set
22687         outgoing_args_on_stack to true if there are outgoing arguments
22688         on stack.
22689         (ix86_function_arg): Likewise.
22690         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
22691         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
22692         * config/i386/i386.h (machine_function): Add
22693         outgoing_args_on_stack.
22695 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
22697         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
22698         supporting pthreds.
22699         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
22701 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
22703         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
22704         (REAL_H): Remove $(MACHMODE_H).
22705         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
22706         double-int.h.
22707         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
22708         $(MACHMODE_H) and double-int.h.
22709         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
22710         $(MACHMODE_H).
22711         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
22712         double-int.h.
22714 2017-07-07  Andrew Pinski  <apinski@cavium.com>
22716         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
22717         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
22719 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
22721         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
22722         Add warning if GCC was not configured to link against a GLIBC that
22723         exports the hardware capability bits.
22724         (make_resolver_func): Make resolver function private and not a
22725         COMDAT function.  Create the name with clone_function_name instead
22726         of make_unique_name.
22728         PR target/81348
22729         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
22730         correct operand in doing the split.
22732 2017-07-07 Carl Love  <cel@us.ibm.com>
22734         * config/rs6000/rs6000-c: Add support for built-in function
22735         vector unsigned short vec_pack_to_short_fp32 (vector float,
22736                                                       vector float).
22737         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
22738         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
22739         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
22740         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
22741         (convert_4f32_8i16): Add define_expand.
22742         * doc/extend.texi: Update the built-in documentation file for the
22743         new built-in function.
22745 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22747         * config/sparc/m8.md: New file.
22748         * config/sparc/sparc.md: Include m8.md.
22750 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22752         * config/sparc/sparc.opt: New option -mvis4b.
22753         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
22754         (sparc_option_override): Handle VIS4B.
22755         (enum sparc_builtins): Define
22756         SPARC_BUILTIN_DICTUNPACK{8,16,32},
22757         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
22758         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
22759         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
22760         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
22761         (check_constant_argument): New function.
22762         (sparc_vis_init_builtins): Define builtins
22763         __builtin_vis_dictunpack{8,16,32},
22764         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
22765         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
22766         __builtin_vis_fpcmpde{8,16,32}shl and
22767         __builtin_vis_fpcmpur{8,16,32}shl.
22768         (sparc_expand_builtin): Check that the constant operands to
22769         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
22770         constant and in range.
22771         * config/sparc/sparc-c.c (sparc_target_macros): Handle
22772         TARGET_VIS4B.
22773         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
22774         (SPARC_IMM5_P): Likewise.
22775         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
22776         (enabled): Handle vis4b.
22777         (UNSPEC_DICTUNPACK): New unspec.
22778         (UNSPEC_FPCMPSHL): Likewise.
22779         (UNSPEC_FPUCMPSHL): Likewise.
22780         (UNSPEC_FPCMPDESHL): Likewise.
22781         (UNSPEC_FPCMPURSHL): Likewise.
22782         (cpu_feature): New CPU feature `vis4b'.
22783         (dictunpack{8,16,32}): New insns.
22784         (FPCSMODE): New mode iterator.
22785         (fpcscond): New code iterator.
22786         (fpcsucond): Likewise.
22787         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
22788         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
22789         (fpcmpde{8,16,32}{si,di}shl): Likewise.
22790         (fpcmpur{8,16,32}{si,di}shl): Likewise.
22791         * config/sparc/constraints.md: Define constraints `q' for unsigned
22792         2-bit integer constants and `t' for unsigned 5-bit integer
22793         constants.
22794         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
22795         predicate.
22796         (imm5_operand_dictunpack16): Likewise.
22797         (imm5_operand_dictunpack32): Likewise.
22798         (imm2_operand): Likewise.
22799         * doc/invoke.texi (SPARC Options): Document -mvis4b.
22800         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
22801         ditunpack* and fpcmp*shl builtins.
22803 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22805         * config.gcc: Handle m8 in --with-{cpu,tune} options.
22806         * config.in: Add HAVE_AS_SPARC6 define.
22807         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
22808         M8.
22809         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
22810         TARGET_CPU_m8.
22811         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
22812         (CPP_CPU_SPEC): Handle m8.
22813         (ASM_CPU_SPEC): Likewise.
22814         * config/sparc/sparc-opts.h (enum processor_type): Add
22815         PROCESSOR_M8.
22816         * config/sparc/sparc.c (m8_costs): New struct.
22817         (sparc_option_override): Handle TARGET_CPU_m8.
22818         (sparc32_initialize_trampoline): Likewise.
22819         (sparc64_initialize_trampoline): Likewise.
22820         (sparc_issue_rate): Likewise.
22821         (sparc_register_move_cost): Likewise.
22822         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
22823         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
22824         (ASM_CPU64_DEFAULT_SPEC): Likewise.
22825         (CPP_CPU_SPEC): Handle M8.
22826         (ASM_CPU_SPEC): Likewise.
22827         (AS_M8_FLAG): Define.
22828         * config/sparc/sparc.md: Add m8 to the cpu attribute.
22829         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
22830         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
22831         M8 instructions.
22832         * configure: Regenerate.
22833         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
22834         -mtune=m8.
22836 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22838         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
22839         subtypes.
22840         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
22841         ("*movdi_insn_sp32"): Do not set v3pipe.
22842         ("*movsi_insn"): Likewise.
22843         ("*movdi_insn_sp64"): Likewise.
22844         ("*movsf_insn"): Likewise.
22845         ("*movdf_insn_sp32"): Likewise.
22846         ("*movdf_insn_sp64"): Likewise.
22847         ("*zero_extendsidi2_insn_sp64"): Likewise.
22848         ("*sign_extendsidi2_insn"): Likewise.
22849         ("*mov<VM32:mode>_insn"): Likewise.
22850         ("*mov<VM64:mode>_insn_sp64"): Likewise.
22851         ("*mov<VM64:mode>_insn_sp32"): Likewise.
22852         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
22853         ("<vlop:code><VL:mode>3"): Likewise.
22854         ("*not_<vlop:code><VL:mode>3"): Likewise.
22855         ("*nand<VL:mode>_vis"): Likewise.
22856         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
22857         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
22858         ("one_cmpl<VL:mode>2"): Likewise.
22859         ("faligndata<VM64:mode>_vis"): Likewise.
22860         ("alignaddrsi_vis"): Likewise.
22861         ("alignaddrdi_vis"): Likweise.
22862         ("alignaddrlsi_vis"): Likewise.
22863         ("alignaddrldi_vis"): Likewise.
22864         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
22865         ("bmaskdi_vis"): Likewise.
22866         ("bmasksi_vis"): Likewise.
22867         ("bshuffle<VM64:mode>_vis"): Likewise.
22868         ("cmask8<P:mode>_vis"): Likewise.
22869         ("cmask16<P:mode>_vis"): Likewise.
22870         ("cmask32<P:mode>_vis"): Likewise.
22871         ("pdistn<P:mode>_vis"): Likewise.
22872         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
22874 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22876         * config/sparc/sparc.md ("subtype"): New insn attribute.
22877         ("*wrgsr_sp64"): Set insn subtype.
22878         ("*rdgsr_sp64"): Likewise.
22879         ("alignaddrsi_vis"): Likewise.
22880         ("alignaddrdi_vis"): Likewise.
22881         ("alignaddrlsi_vis"): Likewise.
22882         ("alignaddrldi_vis"): Likewise.
22883         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
22884         ("fexpand_vis"): Likewise.
22885         ("fpmerge_vis"): Likewise.
22886         ("faligndata<VM64:mode>_vis"): Likewise.
22887         ("bshuffle<VM64:mode>_vis"): Likewise.
22888         ("cmask8<P:mode>_vis"): Likewise.
22889         ("cmask16<P:mode>_vis"): Likewise.
22890         ("cmask32<P:mode>_vis"): Likewise.
22891         ("fchksm16_vis"): Likewise.
22892         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
22893         ("fmean16_vis"): Likewise.
22894         ("fp<plusminus_insn>64_vis"): Likewise.
22895         ("<plusminus_insn>v8qi3"): Likewise.
22896         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
22897         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
22898         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
22899         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
22900         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
22901         ("*movqi_insn"): Likewise.
22902         ("*movhi_insn"): Likewise.
22903         ("*movsi_insn"): Likewise.
22904         ("movsi_pic_gotdata_op"): Likewise.
22905         ("*movdi_insn_sp32"): Likewise.
22906         ("*movdi_insn_sp64"): Likewise.
22907         ("movdi_pic_gotdata_op"): Likewise.
22908         ("*movsf_insn"): Likewise.
22909         ("*movdf_insn_sp32"): Likewise.
22910         ("*movdf_insn_sp64"): Likewise.
22911         ("*zero_extendhisi2_insn"): Likewise.
22912         ("*zero_extendqihi2_insn"): Likewise.
22913         ("*zero_extendqisi2_insn"): Likewise.
22914         ("*zero_extendqidi2_insn"): Likewise.
22915         ("*zero_extendhidi2_insn"): Likewise.
22916         ("*zero_extendsidi2_insn_sp64"): Likewise.
22917         ("ldfsr"): Likewise.
22918         ("prefetch_64"): Likewise.
22919         ("prefetch_32"): Likewise.
22920         ("tie_ld32"): Likewise.
22921         ("tie_ld64"): Likewise.
22922         ("*tldo_ldub_sp32"): Likewise.
22923         ("*tldo_ldub1_sp32"): Likewise.
22924         ("*tldo_ldub2_sp32"): Likewise.
22925         ("*tldo_ldub_sp64"): Likewise.
22926         ("*tldo_ldub1_sp64"): Likewise.
22927         ("*tldo_ldub2_sp64"): Likewise.
22928         ("*tldo_ldub3_sp64"): Likewise.
22929         ("*tldo_lduh_sp32"): Likewise.
22930         ("*tldo_lduh1_sp32"): Likewise.
22931         ("*tldo_lduh_sp64"): Likewise.
22932         ("*tldo_lduh1_sp64"): Likewise.
22933         ("*tldo_lduh2_sp64"): Likewise.
22934         ("*tldo_lduw_sp32"): Likewise.
22935         ("*tldo_lduw_sp64"): Likewise.
22936         ("*tldo_lduw1_sp64"): Likewise.
22937         ("*tldo_ldx_sp64"): Likewise.
22938         ("*mov<VM32:mode>_insn"): Likewise.
22939         ("*mov<VM64:mode>_insn_sp64"): Likewise.
22940         ("*mov<VM64:mode>_insn_sp32"): Likewise.
22942 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22944         * config/sparc/sparc.md ("type"): New insn type viscmp.
22945         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
22946         viscmp.
22947         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
22948         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
22949         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
22950         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
22951         viscmp.
22952         ("n7_vis_logical_11cycle"): Likewise.
22953         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
22954         * config/sparc/niagara2.md ("niag3_vis": Likewise.
22955         * config/sparc/niagara.md ("niag_vis"): Likewise.
22956         * config/sparc/ultra3.md ("us3_fga"): Likewise.
22957         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
22959 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
22961         * config/sparc/sparc.md: New instruction type `bmask'.
22962         (bmaskdi_vis): Use the `bmask' type.
22963         (bmasksi_vis): Likewise.
22964         * config/sparc/ultra3.md (us3_array): Likewise.
22965         * config/sparc/niagara7.md (n7_array): Likewise.
22966         * config/sparc/niagara4.md (n4_array): Likewise.
22967         * config/sparc/niagara2.md (niag2_vis): Likewise.
22968         (niag3_vis): Likewise.
22969         * config/sparc/niagara.md (niag_vis): Likewise.
22971 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
22973         * ipa-comdats.c: Remove optimize check from gate.
22974         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
22975         for functions not optimized.
22976         (ipa_fn_summary_read): Skip optimize check.
22977         (ipa_fn_summary_write): Likewise.
22978         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
22979         is optimized.
22980         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
22981         uninlinable.
22982         (can_inline_edge_p): Check flag_pcc_struct_return for match.
22983         (check_callers): Give up on caller which is not optimized.
22984         (inline_small_functions): Likewise.
22985         (ipa_inline): Do not give up when not optimizing.
22986         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
22987         away unoptimizes cdtors.
22988         (whole_program_function_and_variable_visibility): Do
22989         ipa_discover_readonly_nonaddressable_vars in LTO mode.
22990         * ipa.c (process_references): Do not check optimize.
22991         (symbol_table::remove_unreachable_nodes): Update optimize check.
22992         (set_writeonly_bit): Update optimize check.
22993         (pass_ipa_cdtor_merge::gate): Do not check optimize.
22994         (pass_ipa_single_use::gate): Remove.
22996 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
22998         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
22999         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
23000         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
23001         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
23002         permute_load, permute_store, adjust_extract, adjust_splat,
23003         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
23004         replace_swap_with_copy, dump_swap_insn_table,
23005         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
23006         recombine_lvx_pattern, recombine_stvx_pattern,
23007         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
23008         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
23009         to file rs6000-p8swap.c.
23010         * config/rs6000/rs6000-p8swap.c: New file.
23011         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
23012         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
23013         and rs6000*-*-* targets.
23015 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23017         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
23019 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23021         * lto-wrapper.c (merge_and_complain): Do not merge
23022         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
23023         fsigned_zeros, ftrapping_math, fwrapv.
23024         (append_compiler_options): Do not track these options.
23025         (append_linker_options): Likewie
23027 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23029         * cgraphunit.c (cgraph_node::finalize_function): When
23030         !flag_toplevel_reorde set no_reorder flag.
23031         (varpool_node::finalize_decl): Likewise.
23032         (symbol_table::compile): Drop no toplevel reorder path.
23034 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23036         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
23037         edges; zero probability is not better than uninitialized.
23039 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
23041         * asan.h (asan_sanitize_allocas_p): Declare.
23042         * asan.c (asan_sanitize_allocas_p): New function.
23043         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
23044         (handle_builtin_alloca): Likewise.
23045         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
23046         if !asan_sanitize_allocas_p.
23047         * params.def (asan-instrument-allocas): Add new option.
23048         * params.h (ASAN_PROTECT_ALLOCAS): Define.
23049         * opts.c (common_handle_option): Disable allocas sanitization for
23050         KASan by default.
23052 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
23054         * asan.c: Include gimple-fold.h.
23055         (get_last_alloca_addr): New function.
23056         (handle_builtin_stackrestore): Likewise.
23057         (handle_builtin_alloca): Likewise.
23058         (asan_emit_allocas_unpoison): Likewise.
23059         (get_mem_refs_of_builtin_call): Add new parameter, remove const
23060         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
23061         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
23062         (instrument_builtin_call): Pass gimple iterator to
23063         get_mem_refs_of_builtin_call.
23064         (last_alloca_addr): New global.
23065         * asan.h (asan_emit_allocas_unpoison): Declare.
23066         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
23067         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
23068         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
23069         if function calls alloca.
23070         * gimple-fold.c (replace_call_with_value): Remove static keyword.
23071         * gimple-fold.h (replace_call_with_value): Declare.
23072         * internal-fn.c: Include asan.h.
23073         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
23074         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
23076 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23078         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
23079         (C_SELFTEST_FLAGS): New.
23080         (CPP_SELFTEST_FLAGS): New.
23081         (SELFTEST_DEPS): New, from deps of s-selftest.
23082         (C_SELFTEST_DEPS): New, from deps of s-selftest.
23083         (CPP_SELFTEST_DEPS): New.
23084         (selftest): Add dependency on s-selftest-c++.
23085         (s-selftest): Rename to...
23086         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
23087         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
23088         than SELFTEST_FLAGS.
23089         (selftest-gdb): Rename to...
23090         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
23091         C_SELFTEST_FLAGS.
23092         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
23093         (selftest-valgrind): Rename to...
23094         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
23095         C_SELFTEST_FLAGS.
23096         (selftest-valgrind): Reintroduce as an alias for
23097         selftest-c-valgrind.
23098         (s-selftest-c++): New.
23099         (selftest-c++-gdb): New.
23100         (selftest-c++-valgrind): New.
23102 2017-07-06  Olivier Hainque  <hainque@adacore.com>
23104         * gcc.c (process_command): When deciding if undefined variables
23105         should be ignored when processing specs, accept "gcc -v" as well.
23107 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23109         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
23110         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
23112 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23114         * config/arm/arm-cpus.in (armv8-r): Add new entry.
23115         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
23116         * config/arm/arm-tables.opt: Regenerate.
23117         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
23118         enumerator.
23119         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
23121 2017-07-06  Carl Love  <cel@us.ibm.com>
23123         * ChangeLog: Clean up from mid air collision
23125 2017-07-06  Carl Love  <cel@us.ibm.com>
23127         * config/rs6000/rs6000-c.c: Add support for built-in functions
23128         vector signed int vec_subc (vector signed int, vector signed int);
23129         vector signed __int128 vec_subc (vector signed __int128,
23130                                          vector signed __int128);
23131         vector unsigned __int128 vec_subc (vector unsigned __int128,
23132                                            vector unsigned __int128);
23133         vector signed int vec_sube (vector signed int, vector signed int,
23134                                     vector signed int);
23135         vector unsigned int vec_sube (vector unsigned int,
23136                                       vector unsigned int,
23137                                       vector unsigned int);
23138         vector signed __int128 vec_sube (vector signed __int128,
23139                                          vector signed __int128,
23140                                          vector signed__int128);
23141         vector unsigned __int128 vec_sube (vector unsigned __int128,
23142                                            vector unsigned __int128,
23143                                            vector unsigned __int128);
23144         vector signed int vec_subec (vector signed int, vector signed int,
23145                                      vector signed int);
23146         vector unsigned int vec_subec (vector unsigned int,
23147                                        vector unsigned int,
23148                                        vector unsigned int);
23149         vector signed __int128 vec_subec (vector signed __int128,
23150                                           vector signed __int128,
23151                                           vector signed__int128);
23152         vector unsigned __int128 vec_subec (vector unsigned __int128,
23153                                             vector unsigned __int128,
23154                                             vector unsigned __int128);
23155         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
23156         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
23157         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
23158         BU_ALTIVEC_OVERLOAD_X definitions.
23159         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
23160         * doc/extend.texi: Update the built-in documentation file for the new
23161         built-in functions.
23163 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23165         PR c++/79300
23166         * diagnostic-show-locus.c (layout::layout): Use start and finish
23167         spelling location for the start and finish of each range.
23168         * genmatch.c (linemap_client_expand_location_to_spelling_point):
23169         Add unused aspect param.
23170         * input.c (expand_location_1): Add "aspect" param, and use it
23171         to access the correct part of the location.
23172         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
23173         expand_location_1.
23174         (expand_location_to_spelling_point): Likewise.
23175         (linemap_client_expand_location_to_spelling_point): Add "aspect"
23176         param, and pass it to expand_location_1.
23178 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
23180         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
23181         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
23182         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
23183         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
23184         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
23185         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
23186         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
23187         _mm_maskz_getmant_ss): New intrinsics.
23188         (__builtin_ia32_getexpss128_mask): Changed to ...
23189         __builtin_ia32_getexpss128_round ... this.
23190         (__builtin_ia32_getexpsd128_mask): Changed to ...
23191         __builtin_ia32_getexpsd128_round ... this.
23192         * config/i386/i386-builtin-types.def
23193         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
23194         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
23195         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
23196         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
23197         __builtin_ia32_getmantss_mask_round): New builtins.
23198         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
23199         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
23200         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
23201         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
23202         * config/i386/sse.md
23203         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
23204         avx512f_sgetexp<mode><mask_scalar_name>
23205         <round_saeonly_scalar_name> ... this.
23206         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
23207         %0, %1, %2<round_saeonly_op3>}): Changed to ...
23208         vgetexp<ssescalarmodesuffix>
23209         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23210         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
23211         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
23212         avx512f_vgetmant<mode><mask_scalar_name>
23213         <round_saeonly_scalar_name> ... this.
23214         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
23215         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
23216         vgetmant<ssescalarmodesuffix>
23217         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
23218         %0<mask_scalar_operand4>, %1, %2
23219         <round_saeonly_scalar_mask_op4>, %3} ... this.
23220         * config/i386/subst.md (mask_scalar_operand4,
23221         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
23222         round_saeonly_scalar_nimm_predicate): New subst attributes.
23224 2017-07-06  Julia Koval  <julia.koval@intel.com>
23226         * config/i386/i386.c (ix86_erase_embedded_rounding):
23227         Remove code for old rounding pattern.
23229 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
23231         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
23233 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
23235         * doc/sourcebuild.texi (Test Directives, Variants of
23236         dg-require-support): Add documentation for dg-require-stack-check.
23238 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
23240         * config/i386/subst.md (mask_scalar, round_scalar,
23241         round_saeonly_scalar): New meta-templates.
23242         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
23243         round_scalar_mask_operand3, round_scalar_mask_op3,
23244         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
23245         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
23246         round_saeonly_scalar_constraint,
23247         round_saeonly_scalar_prefix): New subst attribute.
23248         * config/i386/sse.md
23249         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
23250         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
23251         <round_scalar_name> ... this.
23252         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
23253         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
23254         <round_scalar_name> ... this.
23255         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
23256         <sse>_vm<code><mode>3<mask_scalar_name>
23257         <round_saeonly_scalar_name> ... this.
23258         (v<plusminus_mnemonic><ssescalarmodesuffix>
23259         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
23260         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
23261         v<plusminus_mnemonic><ssescalarmodesuffix>
23262         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23263         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
23264         (v<multdiv_mnemonic><ssescalarmodesuffix>
23265         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
23266         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
23267         v<multdiv_mnemonic><ssescalarmodesuffix>
23268         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23269         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
23270         (v<maxmin_float><ssescalarmodesuffix>
23271         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
23272         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
23273         v<maxmin_float><ssescalarmodesuffix>
23274         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23275         %0<mask_scalar_operand3>, %1, %<iptr>2
23276         <round_saeonly_scalar_mask_op3>} ... this.
23278 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
23280         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
23281         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
23283 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
23284             Alan Hayward  <alan.hayward@arm.com>
23285             David Sherwood  <david.sherwood@arm.com>
23287         * combine.c (simplify_if_then_else): Remove "enum" before
23288         "machine_mode".
23289         * compare-elim.c (can_eliminate_compare): Likewise.
23290         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
23291         Likewise.
23292         (aarch64_lookup_simd_builtin_type): Likewise.
23293         (aarch64_simd_builtin_type): Likewise.
23294         (aarch64_init_simd_builtin_types): Likewise.
23295         (aarch64_simd_expand_args): Likewise.
23296         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
23297         Likewise.
23298         (aarch64_reverse_mask): Likewise.
23299         (aarch64_simd_emit_reg_reg_move): Likewise.
23300         (aarch64_gen_adjusted_ldpstp): Likewise.
23301         (aarch64_ccmp_mode_to_code): Likewise.
23302         (aarch64_operands_ok_for_ldpstp): Likewise.
23303         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
23304         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
23305         Likewise.
23306         (aarch64_min_divisions_for_recip_mul): Likewise.
23307         (aarch64_reassociation_width): Likewise.
23308         (aarch64_get_condition_code_1): Likewise.
23309         (aarch64_simd_emit_reg_reg_move): Likewise.
23310         (aarch64_simd_attr_length_rglist): Likewise.
23311         (aarch64_reverse_mask): Likewise.
23312         (aarch64_operands_ok_for_ldpstp): Likewise.
23313         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
23314         (aarch64_gen_adjusted_ldpstp): Likewise.
23315         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
23316         Likewise.
23317         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
23318         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
23319         (arm_lookup_simd_builtin_type): Likewise.
23320         (arm_simd_builtin_type): Likewise.
23321         (arm_init_simd_builtin_types): Likewise.
23322         (arm_expand_builtin_args): Likewise.
23323         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
23324         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
23325         (ft32_setup_incoming_varargs): Likewise.
23326         (ft32_function_arg): Likewise.
23327         (ft32_function_arg_advance): Likewise.
23328         (ft32_pass_by_reference): Likewise.
23329         (ft32_arg_partial_bytes): Likewise.
23330         (ft32_valid_pointer_mode): Likewise.
23331         (ft32_addr_space_pointer_mode): Likewise.
23332         (ft32_addr_space_legitimate_address_p): Likewise.
23333         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
23334         Likewise.
23335         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
23336         (ix86_emit_outlined_ms2sysv_restore): Likewise.
23337         (iamcu_alignment): Likewise.
23338         (canonicalize_vector_int_perm): Likewise.
23339         (ix86_noce_conversion_profitable_p): Likewise.
23340         (ix86_mpx_bound_mode): Likewise.
23341         (ix86_operands_ok_for_move_multiple): Likewise.
23342         * config/microblaze/microblaze-protos.h
23343         (microblaze_expand_conditional_branch_reg): Likewise.
23344         * config/microblaze/microblaze.c
23345         (microblaze_expand_conditional_branch_reg): Likewise.
23346         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
23347         Likewise.
23348         (rs6000_reassociation_width): Likewise.
23349         (rs6000_invalid_binary_op): Likewise.
23350         (fusion_p9_p): Likewise.
23351         (emit_fusion_p9_load): Likewise.
23352         (emit_fusion_p9_store): Likewise.
23353         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
23354         Likewise.
23355         (riscv_hard_regno_mode_ok_p): Likewise.
23356         (riscv_address_insns): Likewise.
23357         (riscv_split_symbol): Likewise.
23358         (riscv_legitimize_move): Likewise.
23359         (riscv_function_value): Likewise.
23360         (riscv_hard_regno_nregs): Likewise.
23361         (riscv_expand_builtin): Likewise.
23362         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
23363         (riscv_build_integer): Likewise.
23364         (riscv_split_integer): Likewise.
23365         (riscv_legitimate_constant_p): Likewise.
23366         (riscv_cannot_force_const_mem): Likewise.
23367         (riscv_regno_mode_ok_for_base_p): Likewise.
23368         (riscv_valid_base_register_p): Likewise.
23369         (riscv_valid_offset_p): Likewise.
23370         (riscv_valid_lo_sum_p): Likewise.
23371         (riscv_classify_address): Likewise.
23372         (riscv_legitimate_address_p): Likewise.
23373         (riscv_address_insns): Likewise.
23374         (riscv_load_store_insns): Likewise.
23375         (riscv_force_binary): Likewise.
23376         (riscv_split_symbol): Likewise.
23377         (riscv_force_address): Likewise.
23378         (riscv_legitimize_address): Likewise.
23379         (riscv_move_integer): Likewise.
23380         (riscv_legitimize_const_move): Likewise.
23381         (riscv_legitimize_move): Likewise.
23382         (riscv_address_cost): Likewise.
23383         (riscv_subword): Likewise.
23384         (riscv_output_move): Likewise.
23385         (riscv_canonicalize_int_order_test): Likewise.
23386         (riscv_emit_int_order_test): Likewise.
23387         (riscv_function_arg_boundary): Likewise.
23388         (riscv_pass_mode_in_fpr_p): Likewise.
23389         (riscv_pass_fpr_single): Likewise.
23390         (riscv_pass_fpr_pair): Likewise.
23391         (riscv_get_arg_info): Likewise.
23392         (riscv_function_arg): Likewise.
23393         (riscv_function_arg_advance): Likewise.
23394         (riscv_arg_partial_bytes): Likewise.
23395         (riscv_function_value): Likewise.
23396         (riscv_pass_by_reference): Likewise.
23397         (riscv_setup_incoming_varargs): Likewise.
23398         (riscv_print_operand): Likewise.
23399         (riscv_elf_select_rtx_section): Likewise.
23400         (riscv_save_restore_reg): Likewise.
23401         (riscv_for_each_saved_reg): Likewise.
23402         (riscv_register_move_cost): Likewise.
23403         (riscv_hard_regno_mode_ok_p): Likewise.
23404         (riscv_hard_regno_nregs): Likewise.
23405         (riscv_class_max_nregs): Likewise.
23406         (riscv_memory_move_cost): Likewise.
23407         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
23408         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
23409         (rl78_addr_space_address_mode): Likewise.
23410         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23411         Likewise.
23412         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
23413         (rs6000_reassociation_width): Likewise.
23414         (rs6000_invalid_binary_op): Likewise.
23415         (fusion_p9_p): Likewise.
23416         (emit_fusion_p9_load): Likewise.
23417         (emit_fusion_p9_store): Likewise.
23418         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
23419         (ok_for_simple_move_operands): Likewise.
23420         (ok_for_simple_move_strict_operands): Likewise.
23421         (ok_for_simple_arith_logic_operands): Likewise.
23422         (visium_legitimize_reload_address): Likewise.
23423         (visium_select_cc_mode): Likewise.
23424         (output_cbranch): Likewise.
23425         (visium_split_double_move): Likewise.
23426         (visium_expand_copysign): Likewise.
23427         (visium_expand_int_cstore): Likewise.
23428         (visium_expand_fp_cstore): Likewise.
23429         * config/visium/visium.c (visium_pass_by_reference): Likewise.
23430         (visium_function_arg): Likewise.
23431         (visium_function_arg_advance): Likewise.
23432         (visium_libcall_value): Likewise.
23433         (visium_setup_incoming_varargs): Likewise.
23434         (visium_legitimate_constant_p): Likewise.
23435         (visium_legitimate_address_p): Likewise.
23436         (visium_legitimize_address): Likewise.
23437         (visium_secondary_reload): Likewise.
23438         (visium_register_move_cost): Likewise.
23439         (visium_memory_move_cost): Likewise.
23440         (prepare_move_operands): Likewise.
23441         (ok_for_simple_move_operands): Likewise.
23442         (ok_for_simple_move_strict_operands): Likewise.
23443         (ok_for_simple_arith_logic_operands): Likewise.
23444         (visium_function_value_1): Likewise.
23445         (rtx_ok_for_offset_p): Likewise.
23446         (visium_legitimize_reload_address): Likewise.
23447         (visium_split_double_move): Likewise.
23448         (visium_expand_copysign): Likewise.
23449         (visium_expand_int_cstore): Likewise.
23450         (visium_expand_fp_cstore): Likewise.
23451         (visium_split_cstore): Likewise.
23452         (visium_select_cc_mode): Likewise.
23453         (visium_split_cbranch): Likewise.
23454         (output_cbranch): Likewise.
23455         (visium_print_operand_address): Likewise.
23456         * expmed.c (flip_storage_order): Likewise.
23457         * expmed.h (emit_cstore): Likewise.
23458         (flip_storage_order): Likewise.
23459         * genrecog.c (validate_pattern): Likewise.
23460         * hsa-gen.c (gen_hsa_addr): Likewise.
23461         * internal-fn.c (expand_arith_overflow): Likewise.
23462         * ira-color.c (allocno_copy_cost_saving): Likewise.
23463         * lra-assigns.c (find_hard_regno_for_1): Likewise.
23464         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
23465         (process_invariant_for_inheritance): Likewise.
23466         * lra-eliminations.c (move_plus_up): Likewise.
23467         * omp-low.c (lower_oacc_reductions): Likewise.
23468         * simplify-rtx.c (simplify_subreg): Likewise.
23469         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
23470         (TARGET_CHKP_BOUND_MODE): Likewise..
23471         * targhooks.c (default_chkp_bound_mode): Likewise.
23472         (default_setup_incoming_vararg_bounds): Likewise.
23473         * targhooks.h (default_chkp_bound_mode): Likewise.
23474         (default_setup_incoming_vararg_bounds): Likewise.
23475         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
23476         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
23477         (have_whole_vector_shift): Likewise.
23478         * tree-vect-stmts.c (vectorizable_load): Likewise.
23479         * doc/tm.texi: Regenerate.
23481 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
23483         Graceful degrade if Binutils PR21472 is not available.
23485         PR target/81072
23486         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
23487         .rodata in flash test fails.
23488         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
23489         * confgure: Regenerate.
23490         * config.in: Regenerate.
23491         * config/avr/avr.c (avr_asm_named_section)
23492         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
23493         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
23494         (avr_asm_init_sections): Same.
23496 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23498         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
23499         (fma<VH:mode>4_intrinsic): Likewise.
23500         (*fmsub<VCVTF:mode>4): Likewise.
23501         (*fmsub<VH:mode>4_intrinsic): Likewise.
23503 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
23505         PR target/81305
23506         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
23507         Don't depend on "optimize > 0".
23508         (out_movhi_r_mr, out_movqi_mr_r): Same.
23509         (out_movhi_mr_r, out_movqi_r_mr): Same.
23510         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
23511         io_address_operand on "optimize > 0".
23513 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23515         * tree-loop-distribution.c: Add general explanantion on the pass.
23516         (generate_loops_for_partition): Mark distributed loop.
23517         (pg_add_dependence_edges): New parameter.  Handle alias data
23518         dependence specially and record it in the parameter if asked.
23519         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
23520         (init_partition_graph_vertices, add_partition_graph_edge): New.
23521         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
23522         (free_partition_graph_vdata, build_partition_graph): New.
23523         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
23524         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
23525         (data_ref_segment_size, latch_dominated_by_data_ref): New.
23526         (compute_alias_check_pairs, version_loop_by_alias_check): New.
23527         (version_for_distribution_p, finalize_partitions): New.
23528         (distribute_loop): Handle alias data dependence specially.  Factor
23529         out loop fusion code as functions and call these functions.
23531 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23533         * tree-loop-distribution.c (classify_partition): New parameter and
23534         better handle reduction statement.
23535         (rdg_build_partitions): Revise comment.
23536         (distribute_loop): Compute statements in all partitions and pass it
23537         to classify_partition.
23539 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23541         * tree-loop-distribution.c (enum partition_type): New.
23542         (struct partition): New field type.
23543         (partition_merge_into): Add parameter.  Update partition type.
23544         (data_dep_in_cycle_p, update_type_for_merge): New functions.
23545         (build_rdg_partition_for_vertex): Compute partition type.
23546         (rdg_build_partitions): Dump partition type.
23547         (distribute_loop): Update calls to partition_merge_into.
23549 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23551         * tree-loop-distribution.c (struct ddr_hasher): New.
23552         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
23553         (ddrs_table): New.
23554         (classify_partition): Call get_data_dependence.
23555         (pg_add_dependence_edges): Ditto.
23556         (distribute_loop): Release data dependence hash table.
23558 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23560         * tree-loop-distribution.c (ref_base_address): Delete.
23561         (similar_memory_accesses): Rename ...
23562         (share_memory_accesses): ... to this.  Check if partitions access
23563         the same memory reference.
23564         (distribute_loop): Call share_memory_accesses.
23566 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23568         * tree-loop-distribution.c (struct partition): New field recording
23569         its data reference.
23570         (partition_alloc, partition_free): Init and release data refs.
23571         (partition_merge_into): Merge data refs.
23572         (build_rdg_partition_for_vertex): Collect data refs for partition.
23573         (pg_add_dependence_edges): Change parameters from vector to bitmap.
23574         Update uses.
23575         (distribute_loop): Remve data refs from vertice data of partition
23576         graph.
23578 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23580         * tree-loop-distribution.c (params.h): Include header file.
23581         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
23582         (datarefs_vec): New global var.
23583         (create_rdg_vertices): Use datarefs_vec directly.
23584         (free_rdg): Don't free data references.
23585         (build_rdg): Update use.  Don't free data references.
23586         (distribute_loop): Compute global variable for data references.
23587         Bail out if there are too many data references.
23589 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23591         * tree-loop-distribution.c (loop_nest): New global var.
23592         (build_rdg): Use loop directly, rather than loop nest.
23593         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
23594         variable directly.
23595         (distribute_loop): Compute global variable loop nest.  Update use.
23597 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23599         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
23600         (partition_merge_into): New parameter.  Dump reason for fusion.
23601         (distribute_loop): Update use of partition_merge_into.
23603 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23605         * tree-loop-distribution.c (bb_top_order_index): New.
23606         (bb_top_order_index_size, bb_top_order_cmp): New.
23607         (stmts_from_loop): Use topological order.
23608         (pass_loop_distribution::execute): Compute and release topological
23609         order for basic blocks.
23611 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23613         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
23614         if no loops.
23616 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23618         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
23619         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
23620         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
23621         * internal-fn.def (LOOP_DIST_ALIAS): New.
23622         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
23623         (fold_loop_internal_call): ... this.
23624         (vect_loop_dist_alias_call): New function.
23625         (set_uid_loop_bbs): Call fold_loop_internal_call.
23626         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
23627         internal calls.
23629 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
23631         PR target/81300
23632         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
23633         Require dead FLAGS_REG at the beginning of a peephole.
23635 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
23637         PR target/81294
23638         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
23639         arguments in the call to __builtin_ia32_sbb_u32.
23640         (_subborrow_u64): Swap _X and _Y arguments in the call to
23641         __builtin_ia32_sbb_u64.
23643 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
23645         PR debug/81278
23646         * tree-vrp.c (compare_assert_loc): Turn into a function template
23647         with stable template parameter.  Only test if a->e is NULL,
23648         !a->e == !b->e has been verified already.  Use e == NULL or
23649         e != NULL instead of e or ! e tests.  If stable is true, don't use
23650         iterative_hash_expr, on the other side allow a or b or both NULL
23651         and sort the NULLs last.
23652         (process_assert_insertions): Sort using compare_assert_loc<false>
23653         instead of compare_assert_loc, later sort using
23654         compare_assert_loc<true> before calling process_assert_insertions_for
23655         in a loop.  Use break instead of continue once seen NULL pointer.
23657 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23659         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
23660         Cortex-R7 and Cortex-R8 processors.
23662 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
23664         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
23665         uninitialized while src is not.
23667 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
23669         * common/config/arm/arm-common.c: Adjust include path for
23670         arm-cpu-cdata.h
23671         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
23672         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
23673         (arm-cpu-data.h): Likewise.
23674         (arm-cpu-cdata.h): Likewise.
23675         * config/arm/arm-cpu.h: Delete.
23676         * config/arm/arm-cpu-cdata.h: Delete.
23677         * config/arm/arm-cpu-data.h: Delete.
23679 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
23681         * config/arm/arm-cpus.in (cortex-a55): New.
23682         (cortex-a75): Likewise.
23683         (cortex-a75.cortex-a55): Likewise.
23684         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
23685         cortex-a75.
23686         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
23687         * config/arm/arm-cpu-cdata.h: Regenerate.
23688         * config/arm/arm-cpu-data.h: Regenerate.
23689         * config/arm/arm-cpu.h: Regenerate.
23690         * config/arm/arm-tables.opt: Regenerate.
23691         * config/arm/arm-tune.md: Regenerate.
23693 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
23695         * haifa-sched.c (sched_create_recovery_edges): Update profile.
23697 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
23699         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
23700         probability.
23702 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
23704         PR tree-optimization/81292
23705         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
23706         full_string_p, also call adjust_related_strinfos if the adjustment
23707         is simple, otherwise invalidate related strinfos.
23709 2017-07-04  Martin Liska  <mliska@suse.cz>
23711         PR sanitizer/81040
23712         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
23713         newly created variable as DECL_IGNORED_P.
23715 2017-07-04  Martin Liska  <mliska@suse.cz>
23717         PR ipa/81293
23718         * ipa-inline.c (inline_small_functions):
23719         Use xstrdup_for_dump.
23721 2017-07-04  Tom de Vries  <tom@codesourcery.com>
23723         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
23725 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
23727         PR target/81033
23728         * config/darwin.c (darwin_function_switched_text_sections):
23729         Fix spaces.
23731 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
23733         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
23735 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
23737         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
23739 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23741         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
23742         min_profitable_iters, and th as inclusive lower bounds.
23743         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
23744         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
23745         for min_profitable_iters and min_profitable_estimate.
23746         (vect_transform_loop): Treat th as an inclusive lower bound.
23747         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
23749 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
23751         PR target/81033
23752         * config/darwin.c (darwin_function_switched_text_sections):
23753         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
23754         in two pieces, and suppress the use of buf.
23756 2017-07-03  Nathan Sidwell  <nathan@acm.org>
23758         * hash-table.h (hash_table_mod1): Fix indentation.
23760 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23762         PR middle-end/81290
23763         * predict.c (force_edge_cold): Be more careful about propagation
23764         backward.
23765         * profile-count.h (profile_probability::guessed,
23766         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
23767         New.
23768         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
23770 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
23772         * doc/invoke.texi (rcpc architecture extension): Document it.
23774 2017-07-03  Richard Biener  <rguenther@suse.de>
23776         PR tree-optimization/60510
23777         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
23778         the scalar reduction PHI and use it.
23779         (vectorizable_reduction): Properly guard the single_defuse_cycle
23780         path for non-SLP reduction chains where we cannot use it.
23781         Rework reduc_def/index and vector type deduction.  Rework
23782         vector operand gathering during reduction op code-gen.
23783         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
23784         chains dissolve the chain and leave it to non-SLP reduction
23785         handling.
23787 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23789         * tree-data-ref.h (dr_alignment): Declare.
23790         * tree-data-ref.c (dr_alignment): New function.
23791         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
23792         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
23793         set it.
23794         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
23796 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23798         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
23799         and base_misalignment fields.
23800         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
23801         * tree-data-ref.c: Include builtins.h.
23802         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
23803         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
23804         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
23805         * tree-vect-data-refs.c: Include tree-cfg.h.
23806         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
23807         fields instead of calculating an alignment here.
23808         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
23809         innermost_loop_behavior fields.
23811 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23813         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
23814         field.
23815         (DR_STEP_ALIGNMENT): New macro.
23816         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
23817         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
23818         (create_data_ref): Print it.
23819         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
23820         to tell whether the step preserves vector (mis)alignment.
23821         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
23822         Move the check for an integer step and generalise to all INTEGER_CST.
23823         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
23824         Print the outer step alignment.
23826 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23828         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
23829         with offset_alignment.
23830         (DR_ALIGNED_TO): Delete.
23831         (DR_OFFSET_ALIGNMENT): New macro.
23832         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
23833         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
23834         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
23835         (create_data_ref): Likewise.
23836         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
23837         (vect_analyze_data_refs): Likewise.
23838         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
23839         creating dummy innermost behavior.
23841 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23843         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
23844         with a "innermost_loop_behavior *" and refeence tree.
23845         * tree-data-ref.c (dr_analyze_innermost): Likewise.
23846         (create_data_ref): Update call accordingly.
23847         * tree-predcom.c (find_looparound_phi): Likewise.
23849 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23851         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
23852         fields with dr_wrt_vec_loop.
23853         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
23854         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
23855         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
23856         (vect_dr_behavior): New function.
23857         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
23858         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
23859         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
23860         track whether the step preserves the misalignment.
23861         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
23862         Use vect_dr_behavior.
23863         (vect_setup_realignment): Update call accordingly.
23864         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
23865         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
23866         call to vect_create_addr_base_for_vector_ref.
23867         (vect_create_cond_for_align_checks): Likewise.
23868         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
23869         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
23870         (vect_recog_mask_conversion_pattern): Likewise.
23871         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
23872         (new_stmt_vec_info): Remove redundant zeroing.
23874 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
23876         * common/config/arm/arm-common.c (arm_be8_option): New function.
23877         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
23878         (ISA_ARMv6): Add isa_bit_be8.
23879         * config/arm/arm.h (arm_be8_option): Add prototype.
23880         (BE8_SPEC_FUNCTION): New define.
23881         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
23882         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
23883         (mlittle-endian): Similarly.
23884         (mbe8, mbe32): New options.
23885         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
23886         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
23888 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23890         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
23892 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23894         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
23895         (cleanup_tree_cfg_bb): Use it.
23896         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
23897         New functions.
23898         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
23900 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23902         PR bootstrap/81285
23903         * loop-doloop.c (add_test): Update profile.
23905 2017-07-03  Martin Liska  <mliska@suse.cz>
23907         PR sanitize/81040
23908         * sanopt.c (rewrite_usage_of_param): New function.
23909         (sanitize_rewrite_addressable_params): Likewise.
23910         (pass_sanopt::execute): Call rewrite_usage_of_param.
23912 2017-07-03  Richard Biener  <rguenther@suse.de>
23914         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
23915         back to using VIEW_CONVERT_EXPR.
23917 2017-07-03  Martin Liska  <mliska@suse.cz>
23919         PR other/78366
23920         * doc/extend.texi: Document when a resolver function is
23921         generated for target_clones.
23923 2017-07-03  Martin Liska  <mliska@suse.cz>
23925         * asan.c (asan_emit_stack_protection): Unpoison just red zones
23926         and shadow memory of auto variables which are subject of
23927         use-after-scope sanitization.
23928         (asan_expand_mark_ifn): Add do set only when is_poison.
23930 2016-07-03  Richard Biener  <rguenther@suse.de>
23932         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
23933         reduction PHIs.
23934         (vect_force_simple_reduction): Record reduction def -> phi mapping.
23935         (vectorizable_reduction): Perform reduction PHI creation when
23936         visiting a reduction PHI and adjust and simplify code generation
23937         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
23938         (vect_transform_loop): Visit reduction PHIs.
23939         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
23940         defs into the SLP tree.
23941         (vect_build_slp_tree): Reduction defs terminate the recursion.
23942         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
23943         of reduction defs.
23944         (vect_get_vec_defs_for_stmt_copy): Export.
23945         (vect_get_vec_defs): Likewise.
23946         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
23947         purpose.
23948         (vect_get_vec_defs_for_stmt_copy): Declare.
23949         (vect_get_vec_defs): Likewise.
23951 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
23953         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
23954         parameter with a "loop" parameter and use it instead of the
23955         loop containing DR_STMT.  Don't check simple_iv when doing
23956         BB analysis.  Describe the two analysis modes in the comment.
23958 2017-07-03  Tom de Vries  <tom@codesourcery.com>
23960         PR tree-optimization/69468
23961         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
23962         (find_same_succ_bb): Handle ignore_edge_flags.
23964 2017-07-03  Tom de Vries  <tom@codesourcery.com>
23966         PR tree-optimization/81192
23967         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
23968         hash.
23969         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
23970         differs.
23971         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
23973 2017-07-03  Tom de Vries  <tom@codesourcery.com>
23975         PR tree-optimization/81192
23976         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
23977         BB_SAME_SUCC (bb) == NULL.
23979 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23981         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
23982         consistency.
23984 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23986         * dumpfile.c: Include profile-count.h
23987         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
23988         update profile.
23989         (insert_cond_bb): Update profile.
23990         * tree-cfg.h (insert_cond_bb): Update prototype.
23991         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
23992         * tree-dump.c: Do not include tree-cfg.
23994 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
23996         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
23998 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24000         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
24001         bb.
24003 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24005         * tree-complex.c (expand_complex_div_wide): update profile.
24007 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24008             Alan Hayward  <alan.hayward@arm.com>
24009             David Sherwood  <david.sherwood@arm.com>
24011         * Makefile.in (MACHMODE_H): Remove insn-modes.h
24012         (CORETYPES_H): New define.
24013         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
24014         (insn-modes-inline.h, s-modes-inline-h): New rules.
24015         (generated_files): Add insn-modes-inline.h.
24016         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
24017         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
24018         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
24019         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
24020         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
24021         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
24022         (build/gencodes.o, build/genconditions.o): Likewise.
24023         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
24024         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
24025         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
24026         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
24027         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
24028         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
24029         * coretypes.h: Include everything up to real.h for generators.
24030         Include insn-modes.h first.  Include wide-int-print.h after
24031         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
24032         * machmode.h: Don't include insn-modes.h here.
24033         * function-tests.c: Remove includes of signop.h, machmode.h,
24034         double-int.h and wide-int.h.
24035         * rtl.h: Likewise.
24036         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
24037         and wide-int.h.
24038         * optc-save-gen.awk: Likewise.
24039         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
24040         * godump.c: Remove include of wide-int-print.h.
24041         * pretty-print.h: Likewise.
24042         * wide-int-print.cc: Likewise.
24043         * wide-int.cc: Likewise.
24044         * hash-map-tests.c: Remove include of signop.h.
24045         * hash-set-tests.c: Likewise.
24046         * rtl-tests.c: Likewise.
24047         * mkconfig.sh: Remove include of machmode.h.
24048         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
24049         into...
24050         (emit_insn_modes_inline_h): ...this new function.  Emit the code
24051         into an insn-modes-inline.h header file, adding appropriate
24052         include guards and end comments.
24053         (emit_insn_modes_c_header): Remove include of machmode.h.
24054         (emit_min_insn_modes_c_header): Include coretypes.h rather than
24055         machmode.h.
24056         (main): Handle -i flag and call emit_insn_modes_inline_h when
24057         it is passed.
24059 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24061         * tree-ssa-strlen.c (strinfo): Rename the length field to
24062         nonzero_chars.  Add a full_string_p field.
24063         (compare_nonzero_chars, zero_length_string_p): New functions.
24064         (get_addr_stridx): Add an offset_out parameter.
24065         Use compare_nonzero_chars.
24066         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
24067         (new_strinfo): Update after above changes to strinfo.
24068         (set_endptr_and_length): Set full_string_p.
24069         (get_string_length): Update after above changes to strinfo.
24070         (unshare_strinfo): Update call to new_strinfo.
24071         (maybe_invalidate): Likewise.
24072         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
24073         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
24074         as a uhwi instead of an shwi.  Update after above changes to
24075         strinfo and new_strinfo.
24076         (zero_length_string): Assert that chainsi contains full strings.
24077         Use zero_length_string_p.  Update call to new_strinfo.
24078         (adjust_related_strinfos): Update after above changes to strinfo.
24079         Copy full_string_p from origsi.
24080         (adjust_last_stmt): Use zero_length_string_p.
24081         (handle_builtin_strlen): Update after above changes to strinfo and
24082         new_strinfo.  Install the lhs as the string length if the previous
24083         entry didn't describe a full string.
24084         (handle_builtin_strchr): Update after above changes to strinfo
24085         and new_strinfo.
24086         (handle_builtin_strcpy): Likewise.
24087         (handle_builtin_strcat): Likewise.
24088         (handle_builtin_malloc): Likewise.
24089         (handle_pointer_plus): Likewise.
24090         (handle_builtin_memcpy): Likewise.  Track nonzero characters
24091         that aren't necessarily followed by a nul terminator.
24092         (handle_char_store): Likewise.
24094 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24096         PR tree-optimization/80769
24097         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
24098         for malloc and calloc.  Document the new invariant that all related
24099         strinfos have delayed lengths or none do.
24100         (verify_related_strinfos): Move earlier in file.
24101         (set_endptr_and_length): New function, split out from...
24102         (get_string_length): ...here.  Also set the lengths of related
24103         strinfos.
24104         (zero_length_string): Assert that chainsi has known (rather than
24105         delayed) lengths.
24106         (adjust_related_strinfos): Likewise.
24108 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24110         PR tree-optimization/81136
24111         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
24112         assert that two references with the same misalignment have the same
24113         compile-time misalignment if those compile-time misalignments
24114         are known.
24116 2017-07-01  Andi Kleen  <ak@linux.intel.com>
24118         * print-tree.c (print_node): Print all attributes.
24120 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24122         * cfg.c (scale_bbs_frequencies): New function.
24123         * cfg.h (scale_bbs_frequencies): Declare it.
24124         * cfgloopanal.c (single_likely_exit): Cleanup.
24125         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
24126         as parameter.
24127         (scale_loop_profile): Likewise.
24128         (loop_version): Likewise.
24129         (create_empty_loop_on_edge): Update.
24130         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
24131         scale_loop_frequencies, scale_loop_profile, loopify,
24132         loop_version): Update prototypes.
24133         * modulo-sched.c (sms_schedule): Update.
24134         * predict.c (unlikely_executed_edge_p): Also check probability.
24135         (probably_never_executed_edge_p): Fix typo.
24136         * tree-if-conv.c (version_loop_for_if_conversion): Update.
24137         * tree-parloops.c (gen_parallel_loop): Update.
24138         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
24139         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
24140         * tree-ssa-loop-split.c (split_loop): Update.
24141         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
24142         * tree-vect-loop-manip.c (vect_do_peeling): Update.
24143         (vect_loop_versioning): Update.
24144         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
24146 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24148         * trans-mem.c (split_bb_make_tm_edge): Update profile.
24150 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24152         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
24153         to keep profile consistent.
24155 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24157         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
24158         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
24159         * profile-count.h (max_safe_multiplier): Make unsigned.
24160         (profile_count::guessed_zero): New.
24162 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24164         * bb-reorder.c (fix_up_crossing_landing_pad,
24165         fix_crossing_conditional_branches): Use make_single_succ_edge
24166         to keep profile consistent.
24168 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24170         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
24171         to update profile.
24173 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
24175         PR sanitizer/81262
24176         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
24177         the right scopes, make sure cond_jump isn't preserved between multiple
24178         iterations.  Search for fallthru edge whenever there are 3+ edges and
24179         use find_fallthru_edge for it.
24181 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24183         Patch by Alexander Monakov <amonakov@ispras.ru>
24184         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
24185         probabilities consistently.
24187 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24189         * pa.c (pa_expand_compare_and_swap_loop): Update call of
24190         emit_cmp_and_jump_insns.
24192 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24194         PR ipa/81261
24195         * tree-inline.c (expand_call_inline): Combine profile statuses.
24197 2017-06-30  Andrew Pinski  <apinski@cavium.com>
24199         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
24200         fold_stmt returned true.
24202 2017-06-30  Nathan Sidwell  <nathan@acm.org>
24204         * ggc.h (empty_string): Delete.
24205         * cfgexpand.c (expand_asm_stmt): Use plain "".
24206         * optabs.c (expand_asm_memory_barrier): Likewise.
24207         * stringpool.c (empty_string): Delete.
24208         (digit_vector, digit_string): Delete.
24209         (ggc_alloc_string): Use plain "", don't optimize single digit
24210         strings.  Use ggc_alloc_atomic.
24212 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
24214         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
24215         comparison set and one other set, use the cost of the non-comparison
24216         set.
24218 2017-06-30  Nathan Sidwell  <nathan@acm.org>
24220         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
24221         some formatting.
24223 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
24225         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
24226         loops.  Remove now unneeded calls to gimple_switch_set_label() that
24227         just set removed labels to NULL_TREE.
24229 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
24231         * tree-ssanames.c (set_range_info_raw): Abstract from ...
24232         (set_range_info): ...here.  Only call set_range_info_raw if domain
24233         is useful.
24234         (set_nonzero_bits): Call set_range_info_raw.
24235         * tree-ssanames.h (set_range_info_raw): New.
24237 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
24239         PR target/81225
24240         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
24241         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
24242         of nonimmediate_operand and <store_mask_constraint> instead of m
24243         for the input operand.  For V8FI iterator, always split if input
24244         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
24245         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
24246         <store_mask_predicate> instead of register_operand and
24247         <store_mask_constraint> instead of v for the input operand.  Make
24248         sure both operands aren't MEMs for if not <mask_applied>.
24250 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
24252         * lto-wrapper.c (copy_file) Close both file descriptors before
24253         exiting normally.
24255 2017-06-30  Martin Liska  <mliska@suse.cz>
24257         PR ipa/81214
24258         * multiple_target.c (create_dispatcher_calls): Make ifunc
24259         also for function that don't have calls or are not referenced.
24261 2017-06-30  Richard Biener  <rguenther@suse.de>
24263         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
24264         analyze the first scalar stmt.  Move vector type computation
24265         for the BB case here from ...
24266         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
24267         live operation processing in the SLP case properly.
24269 2017-06-30  Richard Biener  <rguenther@suse.de>
24271         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
24273 2017-06-30  Martin Liska  <mliska@suse.cz>
24275         PR sanitizer/81021
24276         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
24277         before BUILT_IN_UNWIND_RESUME when ASAN is used.
24279 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
24281         * doc/invoke.texi (AArch64): Add missing options and remove redundant
24282         ones.
24284 2017-06-30  Richard Biener  <rguenther@suse.de>
24286         PR tree-optimization/81249
24287         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
24288         condition reduction result to original scalar type.
24290 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24292         * profile-count.h (enum profile_quality): Fix typos and whitespace
24293         issues.
24295 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24297         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
24298         type for branch probabilities.
24300 2017-06-29  Julian Brown  <julian@codesourcery.com>
24301             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24303         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
24304         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
24305         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
24306         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
24308 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24310         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
24311         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
24312         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
24313         CC usage from generic code to here.
24314         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
24315         CC usage into the target macros.
24317 2017-06-29  Maya Rashish  <coypu@sdf.org>
24319         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
24320         objects.
24322 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24324         * arm/arm-builtins.c: Include profile-count.h
24325         * except.c (sjlj_emit_function_enter): Use
24326         profile_probability::unlikely.
24328 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24330         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
24331         and tocrel_offset be pointer args rather than implicitly using
24332         static versions.
24333         (legitimate_constant_pool_address_p, rs6000_emit_move,
24334         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
24335         tocrel_offset and use in toc_relative_expr_p call.
24336         (print_operand, print_operand_address): Use static tocrel_base_oac
24337         and tocrel_offset_oac.
24338         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
24339         tocrel_offset_oac.
24341 2017-06-29  Maya Rashish  <coypu@sdf.org>
24343         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
24345 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
24347         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
24348         objects, take into account only the alignment of 'op0' and 'mode1' if
24349         'op0' is a MEM.
24351 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
24353         * ccmp.c (ccmp_tree_comparison_p): New function.
24354         (ccmp_candidate_p): Update to use above function.
24355         (get_compare_parts): New function.
24356         (expand_ccmp_next): Update to use new functions.
24357         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
24358         new functions.
24359         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
24360         take mode as argument.
24361         * ccmp.h (expand_ccmp_expr): Add mode as argument.
24362         * expr.c (expand_expr_real_1): Pass mode as argument.
24364 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
24366         * combine.c (combine_instructions): Print insns to dump_file, together
24367         with their costs.
24369 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24371         * asan.c (asan_emit_stack_protection): Update.
24372         (create_cond_insert_point): Update.
24373         * auto-profile.c (afdo_propagate_circuit): Update.
24374         * basic-block.h (struct edge_def): Turn probability to
24375         profile_probability.
24376         (EDGE_FREQUENCY): Update.
24377         * bb-reorder.c (find_traces_1_round): Update.
24378         (better_edge_p): Update.
24379         (sanitize_hot_paths): Update.
24380         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
24381         (make_single_succ_edge): Update.
24382         (check_bb_profile): Update.
24383         (dump_edge_info): Update.
24384         (update_bb_profile_for_threading): Update.
24385         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
24386         probabilitycount to 0.
24387         * cfgbuild.c (compute_outgoing_frequencies): Update.
24388         * cfgcleanup.c (try_forward_edges): Update.
24389         (outgoing_edges_match): Update.
24390         (try_crossjump_to_edge): Update.
24391         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
24392         (expand_gimple_tailcall): Update.
24393         (construct_init_block): Use make_single_succ_edge.
24394         (construct_exit_block): Use make_single_succ_edge.
24395         * cfghooks.c (verify_flow_info): Update.
24396         (redirect_edge_succ_nodup): Update.
24397         (split_edge): Update.
24398         (account_profile_record): Update.
24399         * cfgloopanal.c (single_likely_exit): Update.
24400         * cfgloopmanip.c (scale_loop_profile): Update.
24401         (set_zero_probability): Remove.
24402         (duplicate_loop_to_header_edge): Update.
24403         * cfgloopmanip.h (loop_version): Update prototype.
24404         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
24405         (force_nonfallthru_and_redirect): Update.
24406         (update_br_prob_note): Update.
24407         (rtl_verify_edges): Update.
24408         (purge_dead_edges): Update.
24409         (rtl_lv_add_condition_to_bb): Update.
24410         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
24411         * cgraphunit.c (init_lowered_empty_function): Update.
24412         (cgraph_node::expand_thunk): Update.
24413         * cilk-common.c: Include profile-count.h
24414         * dojump.c (inv): Remove.
24415         (jumpifnot): Update.
24416         (jumpifnot_1): Update.
24417         (do_jump_1): Update.
24418         (do_jump): Update.
24419         (do_jump_by_parts_greater_rtx): Update.
24420         (do_compare_rtx_and_jump): Update.
24421         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
24422         do_jump_1. do_compare_rtx_and_jump): Update prototype.
24423         * dwarf2cfi.c: Include profile-count.h
24424         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
24425         (sjlj_emit_dispatch_table): Likewise.
24426         * explow.c: Include profile-count.h
24427         * expmed.c (emit_store_flag_force): Update.
24428         (do_cmp_and_jump): Update.
24429         * expr.c (compare_by_pieces_d::generate): Update.
24430         (compare_by_pieces_d::finish_mode): Update.
24431         (emit_block_move_via_loop): Update.
24432         (store_expr_with_bounds): Update.
24433         (store_constructor): Update.
24434         (expand_expr_real_2): Update.
24435         (expand_expr_real_1): Update.
24436         * expr.h (try_casesi, try_tablejump): Update prototypes.
24437         * gimple-pretty-print.c (dump_probability): Update.
24438         (dump_profile): New.
24439         (dump_gimple_label): Update.
24440         (dump_gimple_bb_header): Update.
24441         * graph.c (draw_cfg_node_succ_edges): Update.
24442         * hsa-gen.c (convert_switch_statements): Update.
24443         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
24444         (find_if_case_1): Update.
24445         (find_if_case_2): Update.
24446         * internal-fn.c (expand_arith_overflow_result_store): Update.
24447         (expand_addsub_overflow): Update.
24448         (expand_neg_overflow): Update.
24449         (expand_mul_overflow): Update.
24450         (expand_vector_ubsan_overflow): Update.
24451         * ipa-cp.c (good_cloning_opportunity_p): Update.
24452         * ipa-split.c (split_function): Use make_single_succ_edge.
24453         * ipa-utils.c (ipa_merge_profiles): Update.
24454         * loop-doloop.c (add_test): Update.
24455         (doloop_modify): Update.
24456         * loop-unroll.c (compare_and_jump_seq): Update.
24457         (unroll_loop_runtime_iterations): Update.
24458         * lra-constraints.c (lra_inheritance): Update.
24459         * lto-streamer-in.c (input_cfg): Update.
24460         * lto-streamer-out.c (output_cfg): Update.
24461         * mcf.c (adjust_cfg_counts): Update.
24462         * modulo-sched.c (sms_schedule): Update.
24463         * omp-expand.c (expand_omp_for_init_counts): Update.
24464         (extract_omp_for_update_vars): Update.
24465         (expand_omp_ordered_sink): Update.
24466         (expand_omp_for_ordered_loops): Update.
24467         (expand_omp_for_generic): Update.
24468         (expand_omp_for_static_nochunk): Update.
24469         (expand_omp_for_static_chunk): Update.
24470         (expand_cilk_for): Update.
24471         (expand_omp_simd): Update.
24472         (expand_omp_taskloop_for_outer): Update.
24473         (expand_omp_taskloop_for_inner): Update.
24474         * omp-simd-clone.c (simd_clone_adjust): Update.
24475         * optabs.c (expand_doubleword_shift): Update.
24476         (expand_abs): Update.
24477         (emit_cmp_and_jump_insn_1): Update.
24478         (expand_compare_and_swap_loop): Update.
24479         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
24480         * predict.c (predictable_edge_p): Update.
24481         (edge_probability_reliable_p): Update.
24482         (set_even_probabilities): Update.
24483         (combine_predictions_for_insn): Update.
24484         (combine_predictions_for_bb): Update.
24485         (propagate_freq): Update.
24486         (estimate_bb_frequencies): Update.
24487         (force_edge_cold): Update.
24488         * profile-count.c (profile_count::dump): Add missing space into dump.
24489         (profile_count::debug): Add newline.
24490         (profile_count::differs_from_p): Explicitly convert to unsigned.
24491         (profile_count::stream_in): Update.
24492         (profile_probability::dump): New member function.
24493         (profile_probability::debug): New member function.
24494         (profile_probability::differs_from_p): New member function.
24495         (profile_probability::differs_lot_from_p): New member function.
24496         (profile_probability::stream_in): New member function.
24497         (profile_probability::stream_out): New member function.
24498         * profile-count.h (profile_count_quality): Rename to ...
24499         (profile_quality): ... this one.
24500         (profile_probability): New.
24501         (profile_count): Update.
24502         * profile.c (compute_branch_probabilities): Update.
24503         * recog.c (peep2_attempt): Update.
24504         * sched-ebb.c (schedule_ebbs): Update.
24505         * sched-rgn.c (find_single_block_region): Update.
24506         (compute_dom_prob_ps): Update.
24507         (schedule_region): Update.
24508         * sel-sched-ir.c (compute_succs_info): Update.
24509         * stmt.c (struct case_node): Update.
24510         (do_jump_if_equal): Update.
24511         (get_outgoing_edge_probs): Update.
24512         (conditional_probability): Update.
24513         (emit_case_dispatch_table): Update.
24514         (expand_case): Update.
24515         (expand_sjlj_dispatch_table): Update.
24516         (emit_case_nodes): Update.
24517         * targhooks.c: Update.
24518         * tracer.c (better_p): Update.
24519         (find_best_successor): Update.
24520         * trans-mem.c (expand_transaction): Update.
24521         * tree-call-cdce.c: Update.
24522         * tree-cfg.c (gimple_split_edge): Upate.
24523         (move_sese_region_to_fn): Upate.
24524         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
24525         * tree-eh.c (lower_resx): Upate.
24526         (cleanup_empty_eh_move_lp): Upate.
24527         * tree-if-conv.c (version_loop_for_if_conversion): Update.
24528         * tree-inline.c (copy_edges_for_bb): Update.
24529         (copy_cfg_body): Update.
24530         * tree-parloops.c (gen_parallel_loop): Update.
24531         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
24532         (gimple_gen_time_profiler): Update.
24533         * tree-ssa-dce.c (remove_dead_stmt): Update.
24534         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
24535         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
24536         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
24537         (unloop_loops): Update.
24538         (try_peel_loop): Update.
24539         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
24540         * tree-ssa-loop-split.c (connect_loops): Update.
24541         (split_loop): Update.
24542         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
24543         (hoist_guard): Update.
24544         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
24545         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
24546         (value_replacement): Update.
24547         * tree-ssa-reassoc.c (branch_fixup): Update.
24548         * tree-ssa-tail-merge.c (replace_block_by): Update.
24549         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
24550         (create_edge_and_update_destination_phis): Update.
24551         (compute_path_counts): Update.
24552         (recompute_probabilities): Update.
24553         (update_joiner_offpath_counts): Update.
24554         (freqs_to_counts_path): Update.
24555         (duplicate_thread_path): Update.
24556         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
24557         (struct switch_conv_info): Update.
24558         (gen_inbound_check): Update.
24559         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
24560         (vect_do_peeling): Update.
24561         (vect_loop_versioning): Update.
24562         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
24563         (optimize_mask_stores): Update.
24564         * ubsan.c (ubsan_expand_null_ifn): Update.
24565         * value-prof.c (gimple_divmod_fixed_value): Update.
24566         (gimple_divmod_fixed_value_transform): Update.
24567         (gimple_mod_pow2): Update.
24568         (gimple_mod_pow2_value_transform): Update.
24569         (gimple_mod_subtract): Update.
24570         (gimple_mod_subtract_transform): Update.
24571         (gimple_ic): Update.
24572         (gimple_stringop_fixed_value): Update.
24573         (gimple_stringops_transform): Update.
24574         * value-prof.h: Update.
24576 2017-06-29  Carl Love  <cel@us.ibm.com>
24578         * config/rs6000/rs6000-c.c: Add support for built-in functions
24579         vector signed int vec_signed (vector float);
24580         vector signed long long vec_signed (vector double);
24581         vector signed int vec_signed2 (vector double, vector double);
24582         vector signed int vec_signede (vector double);
24583         vector signed int vec_signedo (vector double);
24584         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
24585         instruction generator.
24586         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
24587         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
24588         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
24589         Add define_insn.
24590         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
24591         vunsignede_v2df): Add define_expands.
24592         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
24593         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
24594         VEC_UNSIGNEDO): Add definitions.
24595         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
24596         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
24597         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
24598         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
24599         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
24600         * config/rs6000/altivec.h (vec_signed, vec_signed2,
24601         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
24602         vec_unsignede, vec_unsignedo): Add builtin defines.
24603         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
24604         declaration.
24605         * doc/extend.texi: Update the built-in documentation file for the
24606         new built-in functions.
24608 2017-06-29  Richard Biener  <rguenther@suse.de>
24610         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
24611         reduction chains to LOOP_VINFO_REDUCTIONS.
24612         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
24613         SLP reductions after processing reduction chains.
24615 2017-06-29  Nathan Sidwell  <nathan@acm.org>
24617         * builtins.c (fold_builtin_FUNCTION): Use
24618         lang_hooks.decl_printable_name.
24620 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
24622         PR middle-end/81194
24623         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
24624         with only one label.
24625         * stmt.c (expand_case): Assert NCASES is greater than one.
24627 2017-06-29  Richard Biener  <rguenther@suse.de>
24629         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
24630         anything.
24631         (group_case_labels): Likewise.
24632         (find_taken_edge): Push sanity checking on val to workers...
24633         (find_taken_edge_cond_expr): ... here
24634         (find_taken_edge_switch_expr): ... and here, handle cases
24635         with just a default label.
24636         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
24637         (group_case_labels): Likewise.
24638         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
24639         group_case_labels does anything cleanup the CFG again.
24641 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
24643         PR tree-optimization/81196
24644         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
24645         exit condition comparing two IVs.
24647 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
24649         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
24650         profile to the dummy entry at the end of the list of architectures.
24651         * config/arm/arm-cpu-cdata.h: Regenerated.
24653 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24654             Michael Collison <michael.collison@arm.com>
24656         PR target/70119
24657         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
24658         New pattern.
24659         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
24660         (*aarch64_reg_<mode>3_minus_mask): New pattern.
24661         (*aarch64_<optab>_reg_di3_mask2): New pattern.
24662         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
24663         of shift when the shift amount is masked with constant equal to
24664         the size of the mode.
24665         * config/aarch64/predicates.md (subreg_lowpart_operator): New
24666         predicate.
24668 2017-06-29  Martin Liska  <mliska@suse.cz>
24670         * config/i386/i386.opt: Change range from [1,5] to [0,5].
24672 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
24674         PR bootstrap/80565
24675         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
24676         code.
24677         * ipa-inline.h
24678         (edge_growth_cache_entry::edge_growth_cache_entry): New
24679         function.
24680         (reset_edge_growth_cache): Update to use constructor.
24682 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24684         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
24685         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
24686         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
24688 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
24690         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
24691         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
24693 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
24695         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
24696         (*-linux-uclibc*): Add t-uclibc tmake_file.
24697         * config/t-musl: New.
24698         * config/t-uclibc: New.
24700 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
24702         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
24703         context.
24704         (gen_comm_data): Emit architectural setting of arch_prof.
24705         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
24706         profile.
24707         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
24708         (armv8-m.base, armv8-m.main): Likewise.
24709         * arm-protos.h (arm_build_target): Add profile field.
24710         (arch_option): Likewise.
24711         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
24712         the active target.
24713         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
24714         arm_active_target.profile.
24716 2017-06-28  Richard Biener  <rguenther@suse.de>
24718         PR middle-end/81227
24719         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
24720         TYPE_OVERFLOW_WRAPS.
24721         * match.pd (negate_expr_p): Likewise.
24722         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
24723         fold_build2, not fold_binary.
24725 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
24727         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
24728         Convert memory address to Pmode.
24729         (aarch64_print_operand): Assert MEM operands are always Pmode.
24731 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
24733         PR target/79665
24734         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
24735         Remove redundant if.
24736         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
24737         * config/arm/aarch-common-protos.h
24738         (aarch_forward_to_shift_is_not_shifted_re): Remove.
24739         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
24741 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
24743         PR ipa/81238
24744         * multiple_target.c (create_dispatcher_calls): Set the default
24745         clone to be static, not public.
24747 2017-06-28  Richard Biener  <rguenther@suse.de>
24749         * tree-vect-loop.c (vectorizable_reduction): Move special
24750         cond reduction IV var creation ...
24751         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
24752         parameter.  Use STMT_VINFO_VECTYPE.
24753         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
24754         constant_p.
24756 2017-06-28  Martin Liska  <mliska@suse.cz>
24758         PR ipa/81128
24759         * ipa-visibility.c (non_local_p): Handle visibility.
24761 2017-06-28  Martin Liska  <mliska@suse.cz>
24763         PR driver/79659
24764         * common.opt: Add IntegerRange to various options.
24765         * opt-functions.awk (integer_range_info): New function.
24766         * optc-gen.awk: Add integer_range_info to cl_options struct.
24767         * opts-common.c (decode_cmdline_option): Handle
24768         CL_ERR_INT_RANGE_ARG.
24769         (cmdline_handle_error): Likewise.
24770         * opts.c (print_filtered_help): Show valid interval in
24771         when --help is provided.
24772         * opts.h (struct cl_option): Add range_min and range_max fields.
24773         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
24775 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
24777         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
24778         (x * C EQ/NE y * C): New transformation.
24780 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
24782         * genmultilib (combination_space): Accept '+' in option names.
24784 2017-06-28  Martin Liska  <mliska@suse.cz>
24786         PR sanitizer/81224
24787         * asan.c (instrument_derefs): Bail out inner references
24788         that are hard register variables.
24790 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
24792         PR target/81175
24793         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
24794         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
24796 2017-06-28  Richard Biener  <rguenther@suse.de>
24798         * tree-vectorizer.h (vect_get_vec_defs): Remove.
24799         (vect_get_slp_defs): Adjust.
24800         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
24801         out from ...
24802         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
24803         simplify.
24804         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
24805         get_initial_defs_for_reduction instead of vect_get_vec_defs.
24806         (vectorizable_reduction): Adjust.
24807         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
24808         handling.
24809         (vect_get_slp_defs): Likewise.
24810         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
24811         (vectorizable_bswap): Adjust.
24812         (vectorizable_call): Likewise.
24813         (vectorizable_conversion): Likewise.
24814         (vectorizable_assignment): Likewise.
24815         (vectorizable_shift): Likewise.
24816         (vectorizable_operation): Likewise.
24817         (vectorizable_store): Likewise.
24818         (vectorizable_condition): Likewise.
24819         (vectorizable_comparison): Likewise.
24821 2017-06-28  Michael Collison  <michael.collison@arm.com>
24823         PR target/68535
24824         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
24825         set of base_reg
24826         (arm_gen_movmemqi): Removed unused variable 'i'.
24827         Convert 'for' loop into 'while' loop.
24828         (arm_expand_prologue): Remove last unnecessary set of insn.
24829         (thumb_pop): Remove unused variable 'pushed_words'.
24830         (thumb_exit): Remove last unnecessary set of regs_to_pop.
24832 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24834         * config/s390/predicates.md: Use s390_rel_address_ok_p.
24835         * config/s390/s390-protos.h: Add prototype of
24836         s390_rel_address_ok_p.
24837         * config/s390/s390.c (s390_got_symbol): New function.
24838         (s390_rel_address_ok_p): New function.
24839         (legitimize_pic_address): Use s390_rel_address_ok_p.
24840         (s390_load_got): Use s390_got_symbol.
24841         (s390_option_override): Issue error if
24842         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
24843         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
24844         New macro.
24845         * config/s390/s390.opt: New option mpic-data-is-text-relative.
24847 2017-06-27  Andrew Pinski  <apinski@cavium.com>
24849         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
24850         (X * copysign (1.0, X)): New pattern.
24851         (X * copysign (1.0, -X)): New pattern.
24852         (copysign (-1.0, CST)): New pattern.
24854 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
24856         * genmultilib (combination_space): Remove variable.
24857         Validate reuse rules against regular expression for any sequence
24858         of multilib options in any order.
24860 2017-06-27  Michael Collison  <michael.collison@arm.com>
24862         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
24863         call aarch64_split_simd_combine.
24864         * (aarch64_combine_internal<mode>): Delete pattern.
24865         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
24866         Allow register and subreg operands.
24868 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
24870         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
24871         specific need, just fallback on defaults.
24872         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
24874 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
24875             Olivier Hainque  <hainque@adacore.com>
24877         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
24878         map for 64bits.
24879         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
24880         targets. Pick a default if no particular attempt applied.
24881         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
24882         larger contexts.
24884 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
24886         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
24887         (x86_64-wrs-vxworks7): Likewise.
24889 2017-06-27  Marek Polacek  <polacek@redhat.com>
24891         PR sanitizer/81223
24892         * ubsan.c (instrument_null): Check get_base_address's result for null.
24894 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
24896         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
24898 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
24900         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
24901         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
24902         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
24903         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
24904         New function types.
24905         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
24906         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
24907         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
24908         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
24909         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
24910         BUILT_IN_FEUPDATEENV): New builtins.
24911         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
24912         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
24913         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
24914         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
24915         macros.
24916         (builtin_structptr_types): Adjust size.
24917         * tree.c (builtin_structptr_types): Add four entries.
24919 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
24920             Olivier Hainque  <hainque@adacore.com>
24922         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
24923         (TLS_SYM): New local macro, forcing reference to __tls__ on
24924         link command lines for VxWorks 7 RTPs, triggering initialization
24925         of tlsLib.
24926         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
24927         OS features TLS support, true for RTPs on VxWorks 7.
24928         * config/vxworks.c (vxworks_override_options): Setup emutls
24929         accordingly.
24931 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
24933         * predict.c (test_prediction_value_range): Use -1U instead of -1
24934         to avoid narrowing conversion warning.
24935         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
24936         to avoid narrowing conversion warning.
24937         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
24938         -1.
24939         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
24941 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
24943         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
24944         64bit configurations.
24945         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
24946         (SIZE_TYPE): Likewise.
24947         * config/vxworks.c (vxworks_emutls_var_fields): Use
24948         long_unsigned_type_node instead of unsigned_type_node as the offset
24949         field type, which is "pointer" mode in emutls.c.
24951 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
24953         PR sanitizer/81209
24954         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
24956         PR middle-end/81207
24957         * gimple-fold.c (replace_call_with_call_and_fold): Handle
24958         gimple_vuse copying separately from gimple_vdef copying.
24960 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
24962         * value-prof.c (free_hist): Remove call to memset and the enclosing if
24963         condition.
24965 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
24966             Olivier Hainque  <hainque@adacore.com>
24968         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
24969         for all vxworks7 targets.
24970         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
24971         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
24972         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
24973         variations for VX6/VX7 and 32/64bits later on in ...
24974         (VXWORKS_LIB_SPEC): Leverage new macros.
24975         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
24976         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
24978 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
24980         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
24981         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
24983 2017-06-26  Carl Love  <cel@us.ibm.com>
24985         * config/rs6000/rs6000-c.c: Add support for built-in functions
24986         vector bool char vec_reve (vector bool char);
24987         vector signed char vec_reve (vector signed char);
24988         vector unsigned char vec_reve (vector unsigned char);
24989         vector bool int vec_reve (vector bool int);
24990         vector signed int vec_reve (vector signed int);
24991         vector unsigned int vec_reve (vector unsigned int);
24992         vector bool long long vec_reve (vector bool long long);
24993         vector signed long long vec_reve (vector signed long long);
24994         vector unsigned long long vec_reve (vector unsigned long long);
24995         vector bool short vec_reve (vector bool short);
24996         vector signed short vec_reve (vector signed short);
24997         vector double vec_reve (vector double);
24998         vector float vec_reve (vector float);
24999         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
25000         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
25001         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
25002         (altivec_vreve): New pattern.
25003         * config/rs6000/altivec.h (vec_reve): New define.
25004         * doc/extend.texi (vec_rev): Update the built-in documentation file
25005         for the new built-in functions.
25007 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25009         PR tree-optimization/71815
25010         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
25011         function.
25012         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
25013         has_single_use.
25014         (slsr_process_phi): Likewise.
25015         (replace_uncond_cands_and_profitable_phis): Don't replace a
25016         multiply candidate with a stride of 1 (copy or cast).
25017         (phi_incr_cost): Call uses_consumed_by_stmt rather than
25018         has_single_use.
25019         (lowest_cost_path): Likewise.
25020         (total_savings): Likewise.
25022 2017-06-26  Richard Biener  <rguenther@suse.de>
25024         PR target/81175
25025         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
25026         Use def_builtin_pure for all gather builtins.
25028 2017-06-26  Richard Biener  <rguenther@suse.de>
25030         PR tree-optimization/81203
25031         * tree-tailcall.c (find_tail_calls): Do not move stmts into
25032         non-dominating BBs.
25034 2017-06-26  Marek Polacek  <polacek@redhat.com>
25036         PR c/80116
25037         * doc/invoke.texi: Document -Wmultistatement-macros.
25039 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
25041         * doc/sourcebuild.texi (ARM-specific attributes): Document new
25042         arm_neon_ok_no_float_abi effective target.
25044 2017-06-26  Richard Biener  <rguenther@suse.de>
25046         PR tree-optimization/80928
25047         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
25048         (copy_bbs): Set BB_DUPLICATED flag early.
25049         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
25050         marked blocks.
25051         (execute_on_shrinking_pred): Likewise.
25052         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
25053         BB_DUPLICATED blocks.
25054         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
25055         iterate over all PHIs considering removal of *gsi.
25057 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
25059         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
25060         qdf24xx.
25062 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25064         * config/rs6000/rs6000-string.c: (expand_block_clear,
25065         do_load_for_compare, select_block_compare_mode,
25066         compute_current_alignment, expand_block_compare,
25067         expand_strncmp_align_check, expand_strn_compare,
25068         expand_block_move, rs6000_output_load_multiple)
25069         Move functions related to string/block move/compare
25070         to a separate file.
25071         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
25072         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
25073         for this function which is now used in two files.
25074         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
25075         * config.gcc: Add rs6000-string.o to extra_objs for
25076         targets powerpc*-*-* and rs6000*-*-*.
25078 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
25080         PR target/80510
25081         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
25082         32-bit, since indexed is not valid for DImode.
25083         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
25084         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
25085         (define_peephole2 for Altivec d-form load): Add 32-bit support.
25086         (define_peephole2 for Altivec d-form store): Likewise.
25088         PR ipa/81185
25089         * multiple_target.c (create_dispatcher_calls): Only create the
25090         dispatcher call if the function is the default clone of a
25091         versioned function.
25093 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
25095         PR middle-end/80902
25096         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
25097         a call, force the call to not be a tail call.
25099 2017-06-23  Jeff Law  <law@redhat.com>
25101         * doc/contrib.texi: Add entry for Steven Pemberton's work on
25102         enquire.
25104 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
25106         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
25107         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
25108         handling for early expansion of vector shifts (sl,sr,sra,rl).
25109         (builtin_function_type): Add vector shift right instructions
25110         to the unsigned argument list.
25112 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25114         rtl-optimizatoin/79286
25115         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
25116         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
25117         trap.  PIC register plus a const unspec without offset can never trap.
25119 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
25121         * tree.h (builtin_structptr_type): New type.
25122         (builtin_structptr_types): Declare new array.
25123         * tree.c (builtin_structptr_types): New array.
25124         (free_lang_data, build_common_tree_nodes): Use it.
25126 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
25128         PR c++/81187
25129         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
25130         -Wnoexcept.
25132 2017-06-22  Matt Turner  <mattst88@gmail.com>
25134         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
25135         Lake models to skylake case.  Assume skylake for unknown
25136         models with clflushopt.
25138 2017-06-22  Jeff Law  <law@redhat.com>
25140         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
25141         frame sizes that do not satisfy aarch64_uimm12_shift.
25143 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
25145         * profile-count.h (apply_probability,
25146         apply_scale, probability_in): Fix checks for zero.
25148 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25150         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
25151         * doc/cppdiropts.texi (-I @var{dir}): Document it.
25153 2016-06-22  Richard Biener  <rguenther@suse.de>
25155         * tree-vect-loop.c (vect_model_reduction_cost): Handle
25156         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
25157         REDUC_MAX_EXPR support.
25158         (vectorizable_reduction): Likewise.
25159         (vect_create_epilog_for_reduction): Likewise.
25161 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
25163         * match.pd (A / (1 << B) -> A >> B): New.
25164         * generic-match-head.c: Include optabs-tree.h.
25165         * gimple-match-head.c: Likewise.
25166         * optabs-tree.h (target_supports_op_p): New.
25167         * optabs-tree.c (target_supports_op_p): New.
25169 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25171         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
25172         $gcc_cv_ld --help output.
25173         (gcc_cv_ld_demangle): Likewise.
25174         (gcc_cv_ld_eh_frame_hdr): Likewise.
25175         (gcc_cv_ld_pie): Likewise.
25176         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
25177         (gcc_cv_ld_buildid): Likewise.
25178         (gcc_cv_ld_sysroot): Likewise.
25179         (ld_bndplt_support): Likewise.
25180         (ld_pushpopstate_support): Likewise.
25181         * configure: Regenerate.
25182         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
25184 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
25186         PR target/81151
25187         * config/i386/sse.md (round<mode>2): Renumber match_dup and
25188         operands indexes to avoid gap between operands and match_dups.
25190 2017-06-21  Andrew Pinski  <apinski@cavium.com>
25192         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
25193         Increment Arith_shift and Arith_shift_reg by 1.
25194         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
25195         New tuning flag.
25196         * config/aarch64/aarch64.c (thunderx_tunings): Enable
25197         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
25198         (aarch64_strip_extend): Add new argument and test for it.
25199         (aarch64_cheap_mult_shift_p): New function.
25200         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
25201         add a cost if it is true.
25202         Update calls to aarch64_strip_extend.
25203         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
25205 2017-06-21  Andrew Pinski  <apinski@cavium.com>
25207         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
25208         tunings.
25209         (thunderxt88): Likewise.
25210         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
25211         (thunderx_prefetch_tune): New variable.
25212         (thunderx2t99_prefetch_tune): Update for the correct values.
25213         (thunderxt88_tunings): New variable.
25214         (thunderx_tunings): Use thunderx_prefetch_tune instead of
25215         generic_prefetch_tune.
25216         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
25218 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25220         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
25221         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
25222         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
25223         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
25224         (aarch64_atomic_cas<mode>, GPI): Likewise.
25226 2017-06-21  Martin Liska  <mliska@suse.cz>
25228         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
25229         statements on cold and hot labels.
25230         * predict.c (tree_estimate_probability_bb): Remove the
25231         prediction from this place.
25233 2017-06-21  Martin Liska  <mliska@suse.cz>
25235         PR tree-optimization/79489
25236         * gimplify.c (maybe_add_early_return_predict_stmt): New
25237         function.
25238         (gimplify_return_expr): Call the function.
25239         * predict.c (tree_estimate_probability_bb): Remove handling
25240         of early return.
25241         * predict.def: Update comment about early return predictor.
25242         * gimple-predict.h (is_gimple_predict): New function.
25243         * predict.def: Change default value of early return to 66.
25244         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
25245         statements.
25246         * passes.def: Put pass_strip_predict_hints to the beginning of
25247         IPA passes.
25249 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
25251         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
25252         FUNCTION_DECL declarations.
25253         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
25254         declarations.
25255         (dwaf2out_decl): Likewise.
25256         * godump.c (go_early_global_decl): Skip call to the real debug hook
25257         for FUNCTION_DECL declarations.
25258         * passes.c (rest_of_decl_compilation): Skip call to the
25259         early_global_decl debug hook for FUNCTION_DECL declarations, unless
25260         -fdump-go-spec is passed.
25262 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
25264         * config/i386/i386.c (struct builtin_isa): New field pure_p.
25265         Reorder for compactness.
25266         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
25267         (def_builtin_pure, def_builtin_pure2): New functions.
25268         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
25270 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
25272         * match.pd (nop_convert): New predicate.
25273         ((A +- CST1) +- CST2): Allow some NOP conversions.
25275 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
25277         PR c++/81130
25278         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
25279         with ctors/dtors if GOVD_SHARED is set.
25281 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
25283         * config/aarch64/aarch64.md (movti_aarch64):
25284         Emit mov rather than orr.
25285         (movtf_aarch64): Likewise.
25286         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
25287         Emit mov rather than orr.
25289 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
25291         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
25292         Swap alternatives, make integer dup more expensive.
25294 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
25296         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
25297         Return true for non-tls symbols.
25299 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
25301         * config/aarch64/aarch64-cores.def (cortex-a55): New.
25302         (cortex-a75): Likewise.
25303         (cortex-a75.cortex-a55): Likewise.
25304         * config/aarch64/aarch64-tune.md: Regenerate.
25305         * doc/invoke.texi (-mtune): Document new values for -mtune.
25307 2017-06-21  Tom de Vries  <tom@codesourcery.com>
25309         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
25310         stack_size feature.
25311         (Effective-Target Keywords, Other attributes): Suggest using
25312         dg-add-options stack_size feature to get stack limit in stack_size
25313         effective target documentation.
25315 2017-06-21  Julian Brown  <julian@codesourcery.com>
25316             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25318         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
25319         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
25320         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
25321         reservation.
25322         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
25323         attribute type list for neon_multiply.
25324         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
25325         attribute type list for neon_multiply.
25326         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
25327         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
25328         attribute type list for neon_multiply.
25329         * config/arm/types.md (crypto_pmull): Add.
25330         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
25331         attribute type list.
25333 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
25335         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
25336         arm1176jzf-s.
25338 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
25340         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
25341         to make sure not to dereference a NULL cost_classes_ptr pointer.
25343 2017-06-20  Carl Love  <cel@us.ibm.com>
25345         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25346         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
25347         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
25348         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
25349         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
25350         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
25351         VMULOSW): New enum "unspec" values.
25352         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
25353         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
25354         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
25355         altivec_vmulosw): New patterns.
25356         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
25357         VMULOSW): Add definitions.
25359 2017-06-20  Julia Koval  <julia.koval@intel.com>
25361         * config/i386/i386.c: Fix rounding expand for new pattern.
25362         * config/i386/subst.md: Fix pattern (parallel -> unspec).
25364 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
25366         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
25367         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
25369 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
25371         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
25372         feature string.
25374 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
25376         * config/aarch64/aarch64-cores.def: Rearrange to sort by
25377         architecture, then by implementer ID.
25378         * config/aarch64/aarch64-tune.md: Regenerate.
25380 2017-06-20  Richard Biener  <rguenther@suse.de>
25382         PR middle-end/81097
25383         * fold-const.c (split_tree): Fold to type before negating.
25385 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
25387         * diagnostic-show-locus.c
25388         (selftest::test_fixit_deletion_affecting_newline): New function.
25389         (selftest::diagnostic_show_locus_c_tests): Call it.
25391 2017-06-20  Andreas Schwab  <schwab@suse.de>
25393         PR target/80970
25394         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
25395         instead of "+d".
25397 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
25399         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
25400         __ARM_FEATURE_COPROC according to support.
25402 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
25404         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
25405         Rewritten to avoid overflow for > 32-bit pointers.
25407         PR sanitizer/81125
25408         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
25409         by removing enum keyword.
25410         (ubsan_type_descriptor): Likewise.  Formatting fix.
25412         PR target/81121
25413         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
25414         splitter): Require TARGET_SSE2 in the condition.
25416 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
25418         PR target/79799
25419         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
25420         for doing vector set of SFmode on ISA 3.0.
25421         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
25422         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
25423         element.
25424         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
25425         SFmode value into a V4SF variable that was extracted from another
25426         V4SF variable without converting the element to double precision
25427         and back to single precision vector format.
25428         (vsx_insert_extract_v4sf_p9_2): Likewise.
25430 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
25432         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
25433         in UWHI to avoid undefined overflow.
25435         PR sanitizer/81125
25436         * ubsan.h (enum ubsan_encode_value_phase): New.
25437         (ubsan_encode_value): Change second argument to
25438         enum ubsan_encode_value_phase with default value of
25439         UBSAN_ENCODE_VALUE_GENERIC.
25440         * ubsan.c (ubsan_encode_value): Change second argument to
25441         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
25442         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
25443         create_tmp_var_raw instead of create_tmp_var and use a
25444         TARGET_EXPR.
25445         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
25446         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
25447         ubsan_encode_value callers.
25449         PR sanitizer/81111
25450         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
25451         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
25452         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
25454 2017-06-19  Richard Biener  <rguenther@suse.de>
25456         PR middle-end/81118
25457         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
25458         estimates if we changed anything.
25460 2017-06-19  Richard Biener  <rguenther@suse.de>
25462         PR tree-optimization/80887
25463         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
25464         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
25465         simplified lookups, then reset mprts_hook.
25466         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
25467         simplifying.
25468         (try_to_simplify): Likewise.
25470 2017-06-19  Martin Liska  <mliska@suse.cz>
25472         PR sanitizer/80879
25473         * gimplify.c (gimplify_switch_expr):
25474         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
25476 2017-06-19  Martin Liska  <mliska@suse.cz>
25478         * doc/install.texi: Document that PGO runs in 4 stages.
25480 2017-06-19  Martin Liska  <mliska@suse.cz>
25482         PR ipa/80732
25483         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
25484         to dispatcher function name.
25485         * multiple_target.c (replace_function_decl): New function.
25486         (create_dispatcher_calls): Redirect both edges and references.
25488 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
25490         * profile-count.c (profile_count::dump): Dump quality.
25491         (profile_count::differs_from_p): Update for unsigned val.
25492         * profile-count.h (profile_count_quality): New enum.
25493         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
25495 2017-06-19  Richard Biener  <rguenther@suse.de>
25497         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
25498         struct function as arg.
25499         (estimate_numbers_of_iterations): Export overload with loop arg.
25500         (free_numbers_of_iterations_estimates_loop): Use an overload of
25501         free_numbers_of_iterations_estimates instead.
25502         * tree-cfg.c (remove_bb): Adjust.
25503         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
25504         * tree-parloops.c (gen_parallel_loop): Likewise.
25505         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
25506         Likewise.
25507         (tree_unroll_loops_completely): Likewise.
25508         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
25509         Use an overload instead and export.
25510         (estimated_loop_iterations): Adjust.
25511         (max_loop_iterations): Likewise.
25512         (likely_max_loop_iterations): Likewise.
25513         (estimate_numbers_of_iterations): Take struct function as arg
25514         and adjust.
25515         (loop_exits_before_overflow): Adjust.
25516         (free_numbers_of_iterations_estimates_loop): Use an overload.
25517         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
25518         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
25520 2017-06-19  Richard Biener  <rguenther@suse.de>
25522         PR ipa/81112
25523         * ipa-prop.c (find_constructor_constant_at_offset): Handle
25524         RANGE_EXPR conservatively.
25526 2017-06-16  Carl Love  <cel@us.ibm.com>
25528         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25529         definitions for vec_float, vec_float2, vec_floato,
25530         vec_floate built-ins.
25531         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
25532         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
25533         floate.
25534         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
25535         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
25536         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
25537         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
25538         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
25539         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
25540         vec_floato): Add builtin defines.
25541         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
25542         Update the built-in documentation file for the new built-in
25543         functions.
25545 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25547         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
25548         (mthumb): Mark as the negative of -marm.
25550 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25552         * doc/invoke.texi (ARM Options, -mcpu): Document supported
25553         extension options.
25554         (ARM Options, -mtune): Document that this accepts the same
25555         extension options as -mcpu.
25556         (ARM Options, -mfpu): Document addition of -mfpu=auto.
25558 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25560         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
25561         permitted extensions.
25563 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25565         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
25566         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
25567         (armv8-m.main): Add option +nodsp.
25568         * config/arm/arm-cpu-cdata.h: Regenerated.
25570 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25572         * config/arm/t-fuchsia: New file.
25573         * config.gcc (arm*-*-fuchsia*): Use it.
25575 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25577         * config/arm/t-symbian: Rewrite for new option infrastructure.
25579 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25581         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
25582         (MULTILIB_REQUIRED): Likewise.
25584 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25586         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
25587         (MULTILIB_RESUE): Likewise.
25588         (MULTILIB_MATCHES): Likewise.
25589         (MULTLIB_REQUIRED): Likewise.
25591 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25593         * config/arm/t-rtems: Rewrite for new option framework.
25595 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25597         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
25598         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
25599         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
25600         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
25601         * config/arm/t-multilib: ... here.
25602         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
25603         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
25604         armv7-a and armv8*-a when A-profile libraries have not been built.
25605         * config/arm/t-rmprofile: Rewrite.
25607 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25609         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
25610         with a backslash.  Remove the backslash after substituting unescaped
25611         periods.
25612         * doc/fragments.texi (MULTILIB_REUSE): Document it.
25614 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25616         * config.gcc: (arm*-*-*): When building a-profile libraries, force
25617         the driver to pass through the default setting of -mfloat-abi.
25618         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
25619         rather than NULL.
25620         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
25621         (all_feat_combs): New rule.
25622         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
25623         default libraries.
25624         * config/arm/t-aprofile: Rewrite.
25626 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25628         * config/arm/arm.h (FPUTYPE_AUTO): Define.
25629         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
25630         fpu is not specified by the user/command-line.
25631         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
25632         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
25633         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
25634         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
25635         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
25636         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
25638 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25640         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
25641         * config/arm/t-arm-elf: Rewritten.
25643 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25645         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
25646         have some floating-point instructions.
25647         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
25648         (TARGET_MAYBE_HARD_FLOAT): New macro.
25649         * config/arm/arm-builtins.c (arm_init_builtins): Use
25650         TARGET_MAYBE_HARD_FLOAT.
25651         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
25653 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25655         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
25656         (configargs.h): Include it.
25657         (arm_print_hint_for_fpu_option): New function.
25658         (arm_parse_fpu_option): New function.
25659         (candidate_extension): New class.
25660         (arm_canon_for_multilib): New function.
25661         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
25662         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
25663         (ARCH_CANONICAL_SPECS): New macro.
25664         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
25666 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25668         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
25669         are set after handling multilib fragments.  Set target_cpu_default2
25670         from with_cpu.
25672 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25674         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
25675         cpu name.
25676         (arm*-*-*): Set target_cpu_default2 to a quoted string.
25677         * config/arm/parsecpu.awk (check_cpu): Validate any extension
25678         options.
25679         (check_arch): Likewise.
25680         * config/arm/arm.c (arm_configure_build_target): Handle
25681         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
25682         options in the default.
25684 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25686         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
25687         when an option is an alias of another.
25688         * config/arm/parsecpu.awk (optalias): New parser token.
25689         (gen_comm_data): Mark non-alias options as such.  Emit entries
25690         for extension aliases.
25691         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
25692         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
25693         (armv6kz, armv6zk, armv6t2): Likewise.
25694         (armv7): Make vfpv3-d16 an alias.
25695         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
25696         canonical order.
25697         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
25698         Sort in canonical order.
25699         (armv8-a): Sort in canonical order.
25700         (armv8.1-a, armv8.2-a):  Likewise.
25701         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
25702         canonical order.
25703         (cortex-a9): Sort in canonical order.
25704         * config/arm/arm.c (selftests.h): Include it.
25705         (arm_test_cpu_arch_data): New function.
25706         (arm_run_self_tests): New function.
25707         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
25708         (targetm): Move declaration to the end of the file.
25709         * arm-cpu-cdata.h: Regenerated.
25711 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25713         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
25714         call to target_mode_check describing the type of option passed.
25715         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
25716         (arm_target_thumb_only): Use arm_parse_arch_option_name or
25717         arm_parse_cpu_option_name to match parameters against list of
25718         available targets.
25719         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
25720         arm_arch_core_flags data structure.
25721         * config/arm/arm-cpu_cdata.h: Regenerated.
25723 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25725         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
25726         config/arm/arm.c.
25727         (arm_print_hint_for_cpu_option): Likewise.
25728         (arm_print_hint_for_arch_option): Likewise.
25729         (arm_parse_cpu_option_name): Likewise.
25730         (arm_parse_arch_option_name): Likewise.
25731         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
25732         of entries in the all_fpus list.
25733         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
25734         (arm_parse_cpu_option_name): Declare.
25735         (arm_parse_arch_option_name): Declare.
25736         (arm_parse_option_features): Declare.
25737         (arm_intialize_isa): Declare.
25738         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
25739         data tables to ...
25740         (gen_comm_data): ... here.  Make definitions non-static.
25741         * config/arm/arm-cpu-data.h: Regenerated.
25742         * config/arm/arm-cpu-cdata.h: Regenerated.
25744 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25746         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
25747         (cpu_arch_extension): New structure.
25748         (cpu_arch_option, arch_option, cpu_option): New structures.
25749         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
25750         architecture types.
25751         (gen_data): Generate new format data tables.
25752         * config/arm/arm.c (cpu_tune): New structure.
25753         (cpu_option, processors): Delete.
25754         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
25755         (arm_print_hint_for_cpu_option): ... this and ...
25756         (arm_print_hint_for_arch_option): ... this.
25757         (arm_parse_arch_cpu_name): Delete.  Replace with ...
25758         (arm_parse_cpu_option_name): ... this and ...
25759         (arm_parse_arch_option_name): ... this.
25760         (arm_unrecognized_feature): Change type of target parameter to
25761         cpu_arch_option.
25762         (arm_parse_arch_cpu_features): Delete.  Replace with ...
25763         (arm_parse_option_features): ... this.
25764         (arm_configure_build_target): Rework to use new configuration data
25765         tables.
25766         (arm_print_tune_info): Rework for new configuration data tables.
25767         * config/arm/arm-cpu-data.h: Regenerated.
25768         * config/arm/arm-cpu.h: Regenerated.
25770 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25772         * Makefile.in (OBJS): Move sbitmap.o from here ...
25773         (OBJS-libcommon): ... to here.
25775 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25777         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
25778         (ISA_ALL_CRYPTO): New macro.
25779         (ISA_ALL_SIMD): New macro
25780         (ISA_ALL_FP): New macro.
25781         * config/arm/arm.c (fpu_bitlist): Update initializer.
25782         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
25783         simd or fp.
25784         (arm9e): Add fpu.  Add option for nofp
25785         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
25786         (arm926ej-s, arm1026ej-s): Likewise.
25787         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
25788         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
25789         neon-fp16, neon-vfpv4, nofp and nosimd.
25790         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
25791         (cortex-a8): Add fpu.  Add option for nofp.
25792         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
25793         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
25794         (cortex-r4f): Add fpu.
25795         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
25796         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
25797         for nofp.
25798         (cortex-r8): Likewise.
25799         (cortex-m4): Add fpu.  Add option for nofp.
25800         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
25801         (cortex-a17.cortex-a7): Likewise.
25802         (cortex-a32): Add fpu.  Add options for crypto and nofp.
25803         (cortex-a35, cortex-a53): Likewise.
25804         (cortex-a57): Add fpu.  Add option for crypto.
25805         (cortex-a72, cortex-a73): Likewise.
25806         (exynos-m1): Likewise.
25807         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
25808         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
25809         (cortex-m33): Add fpu.  Add option for nofp.
25810         * config/arm/arm-cpu-cdata.h: Regenerated
25811         * config/arm/arm-cpu-data.h: Regenerated.
25813 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25815         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
25816         (armv5te, armv5tej): Likewise.
25817         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
25818         (armv7): Add options fp and vfpv3-d16.
25819         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
25820         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
25821         nofp and nosimd.
25822         (armv7ve): Likewise.
25823         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
25824         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
25825         (armv8-a): Add nocrypto option.
25826         (armv8.1-a, armv8.2-a): Likewise.
25827         (armv8-m.main): add options fp, fp.dp and nofp.
25829 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25831         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
25832         nofp.
25833         (armv8-a+crc): Delete.
25834         (armv8.1-a): Add options simd, crypto and nofp.
25835         (armv8.2-a): Add options fp16, simd, crypto and nofp.
25836         (armv8.2-a+fp16): Delete.
25837         (armv8-m.main): Add option dsp.
25838         (armv8-m.main+dsp): Delete.
25839         (cortex-a8): Add fpu.  Add nofp option.
25840         (cortex-a9): Add fpu.  Add nofp and nosimd options.
25841         * config/arm/parsecpu.awk (gen_data): Generate option tables and
25842         link to main cpu and architecture data structures.
25843         (gen_comm_data): Only put isa attributes from the main architecture
25844         in common tables.
25845         (option): New statement for architecture and CPU entries.
25846         * arm.c (struct cpu_option): New structure.
25847         (struct processors): Add entry for options.
25848         (arm_unrecognized_feature): New function.
25849         (arm_parse_arch_cpu_name): Ignore any characters after the first
25850         '+' character.
25851         (arm_parse_arch_cpu_feature): New function.
25852         (arm_configure_build_target): Separate out any CPU and architecture
25853         features and parse separately.  Don't error out if -mfpu=auto is
25854         used with only an architecture string.
25855         (arm_print_asm_arch_directives): New function.
25856         (arm_file_start): Call it.
25857         * config/arm/arm-cpu-cdata.h: Regenerated.
25858         * config/arm/arm-cpu-data.h: Likewise.
25859         * config/arm/arm-tables.opt: Likewise.
25861 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25863         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
25864         assembler when it is not -mfpu=auto.
25866 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25868         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
25869         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
25870         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
25871         (ASM_CPU_SPEC): Rewrite.
25872         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
25873         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
25874         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
25875         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
25876         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
25877         copied string is NUL-terminated.  Also strip any characters prefixed
25878         by '+'.
25879         (arm_rewrite_selected_arch): New function.
25880         (arm_rewrite_march): New function.
25882 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25884         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
25885         (x_arm_cpu_string, x_arm_tune_string): Likewise.
25886         (march, mcpu, mtune): Convert to string-based options.
25887         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
25888         (arm_parse_arch_cpu_name): New function.
25889         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
25890         identify selected architecture or CPU.
25891         (arm_option_save): New function.
25892         (TARGET_OPTION_SAVE): Redefine.
25893         (arm_option_restore): Restore string options.
25894         (arm_option_print): Print string options.
25896 2017-06-16  Martin Sebor  <msebor@redhat.com>
25898         PR tree-optimization/80933
25899         PR tree-optimization/80934
25900         * builtins.c (fold_builtin_3): Do not handle bcmp here.
25901         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
25902         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
25903         (gimple_fold_builtin): Call them.
25905 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
25907         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
25908         as unlikely; update profile.
25910 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
25912         * predict.c (force_edge_cold): Handle declaring edges impossible
25913         more aggresively.
25915 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
25917         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
25918         profile.
25919         (try_unroll_loop_completely): Fix reporting.
25921 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
25923         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
25925 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
25927         PR target/71778
25928         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
25929         if given a non-constant argument for an intrinsic which requires a
25930         constant.
25932 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
25934         * profile.c (compare_freqs): New function.
25935         (branch_prob): Sort edge list.
25936         (find_spanning_tree): Assume that the list is priority sorted.
25938 2017-06-16  Richard Biener  <rguenther@suse.de>
25940         PR tree-optimization/81090
25941         * passes.def (pass_record_bounds): Remove.
25942         * tree-pass.h (make_pass_record_bounds): Likewise.
25943         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
25944         make_pass_record_bounds): Likewise.
25945         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
25946         not free niter estimates at the beginning but at the end.
25947         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
25949 2017-06-16  Richard Biener  <rguenther@suse.de>
25951         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
25952         initializer to workaround ICE in host GCC 4.8.
25954 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
25956         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
25957         counts.
25958         (clone_inlined_nodes): Update.
25960 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25962         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
25963         prefetch settings, and enable prefetching by default at -O3.
25965 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25967         * config/aarch64/aarch64.c (aarch64_override_options_internal):
25968         Set flag_prefetch_loop_arrays according to tuning data.
25970 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25972         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
25973         New tune structure.
25974         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
25975         [Unrelated to main purpose of the patch] Place the pointer field last
25976         to enable type checking errors when tune structure are wrongly merged.
25977         * config/aarch64/aarch64.c (generic_prefetch_tune,)
25978         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
25979         (thunderx2t99_prefetch_tune): New tune constants.
25980         (tune_params *_tunings): Update all tunings (no functional change).
25981         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
25982         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
25983         from tunings structures.
25985 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
25987         PR sanitizer/81094
25988         * ubsan.c (instrument_null): Add T argument, use it instead
25989         of computing it based on IS_LHS.
25990         (instrument_object_size): Likewise.
25991         (pass_ubsan::execute): Adjust instrument_null and
25992         instrument_object_size callers to pass gimple_get_lhs or
25993         gimple_assign_rhs1 result to it.  Use instrument_null instead of
25994         calling get_base_address and instrument_mem_ref.  Handle
25995         aggregate call arguments for object-size sanitization.
25997 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
25999         PR tree-optimization/81089
26000         * tree-vrp.c (is_masked_range_test): Validate operands of
26001         subexpression.
26003 2017-06-15  Martin Sebor  <msebor@redhat.com>
26005         PR c++/80560
26006         * dumpfile.c (dump_register): Avoid calling memset to initialize
26007         a class with a default ctor.
26008         * gcc.c (struct compiler): Remove const qualification.
26009         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
26010         * hash-table.h: Ditto.
26011         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
26012           assignment.
26013         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
26014         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
26015         default ctor.
26016         * params.h (struct param_info): Make struct members non-const.
26017         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
26018         with default initialization.
26019         * vec.h (vec_copy_construct, vec_default_construct): New helper
26020         functions.
26021         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
26022         with vec_copy_construct.
26023         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
26024         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
26025         * doc/invoke.texi (-Wclass-memaccess): Document.
26027 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26029         * emit-rtl.h (is_leaf): Update comment about local
26030         register allocator.
26032 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
26034         PR target/78818
26035         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
26036         for a variable to have a section before checking if the section has a
26037         name.
26038         Set section to.persistent if persistent attribute is set.
26039         Warn if .persistent attribute is used on an automatic variable.
26041 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
26043         PR rtl-optimization/80474
26044         * reorg.c (update_block): Do not ignore instructions in a delay slot.
26046 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
26048         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
26049         of REGNO.
26051 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
26053         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
26054         (casesi): Emit bounds checking as RTL.
26055         (casesi_internal_mips16_<mode>): Remove bounds checking.
26057 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
26059         * config/xtensa/xtensa.c (xtensa_option_override): Append
26060         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
26061         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
26062          xtensa_doloop_hooks): Define unconditionally.
26063         (xtensa_reorg_loops): Only call reorg_loops in the presence of
26064         TARGET_LOOPS.
26065         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
26066         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
26067         for it in xtensa_option_override.
26068         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
26069          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
26071 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
26073         * doc/cppopts.texi: Document '-' special value to -MF.
26075 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
26077         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
26078         (cortex_a53_fconst): Likewise.
26079         (cortex_a53_fpmul): Likewise.
26080         (cortex_a53_f_load_64): Likewise.
26081         (cortex_a53_f_load_many): Likewise.
26082         (cortex_a53_advsimd_alu): Likewise.
26083         (cortex_a53_advsimd_alu_q): Likewise.
26084         (cortex_a53_advsimd_mul): Likewise.
26085         (cortex_a53_advsimd_mul_q): Likewise.
26086         (fpmac bypass): Add new bypass for fpmac-fpmac case.
26087         Add missing fmul, r2f_cvt and fconst cases.
26089 2017-06-14  Richard Biener  <rguenther@suse.de>
26091         PR middle-end/81088
26092         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
26093         literal constants.
26094         (fold_binary_loc): When associating do not treat pre-existing
26095         TREE_OVERFLOW on literal constants as a reason to allow
26096         TREE_OVERFLOW on associated literal constants.
26098 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26100         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
26101         (MASK_FEATURES): New macro.
26102         * config/sparc/sparc.c (sparc_option_override): Remove the special
26103         handling of -mfpu and generalize it to all MASK_FEATURES switches.
26105 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26107         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
26108         a division of 0 if non-call exceptions are enabled.
26110 2017-06-14  Andrew Pinski  <apinski@cavium.com>
26111             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26113         PR target/71663
26114         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
26115         Improve vector initialization code gen for only variable case.
26117 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26119         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
26121 2017-06-14  Richard Biener  <rguenther@suse.de>
26123         PR tree-optimization/81083
26124         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
26125         as values.
26127 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26129         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
26130         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
26131         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
26132         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
26133         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
26134         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
26136 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26138         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
26139         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
26141 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26143         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
26145 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26147         * config/rs6000/t-rtems: Don't handle SPE.
26149 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26151         * config/rs6000/t-linux: Don't handle SPE.
26153 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26155         * config/rs6000/eabispe.h: Delete file.
26157 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26159         * config/rs6000/t-spe: Delete file.
26161 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26163         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
26164         (rs6000_legitimate_offset_address_p): Return false for anything in
26165         V2SImode or V2SFmode.
26167 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26169         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
26170         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
26171         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
26172         and V4HImode.
26173         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
26174         (rs6000_legitimate_offset_address_p): Ditto.
26175         (rs6000_emit_move): Ditto.
26176         (rs6000_init_builtins): Remove V4HI_type_node.
26178 2017-06-13  Martin Liska  <mliska@suse.cz>
26180         PR sanitize/78204
26181         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
26182         (gate_asan): Likewise.
26183         * asan.h (asan_no_sanitize_address_p): Remove the function.
26184         (sanitize_flags_p): New function.
26185         * builtins.def: Fix coding style.
26186         * common.opt: Use renamed enum value.
26187         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
26188         * doc/extend.texi: Document no_sanitize attribute.
26189         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
26190         to SANITIZE_UNDEFINED_NONDEFAULT.
26191         * gcc.c (sanitize_spec_function): Use the renamed enum value.
26192         * gimple-fold.c (optimize_atomic_compare_exchange_p):
26193         Use sanitize_flags_p.
26194         * gimplify.c (gimplify_function_tree): Likewise.
26195         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
26196         * opts.c (parse_no_sanitize_attribute): New function.
26197         (common_handle_option): Use renamed enum value.
26198         * opts.h (parse_no_sanitize_attribute): Declare.
26199         * tree.c (sanitize_flags_p): New function.
26200         * tree.h: Declared here.
26201         * tsan.c: Use sanitize_flags_p.
26202         * ubsan.c (ubsan_expand_null_ifn): Likewise.
26203         (instrument_mem_ref): Likewise.
26204         (instrument_bool_enum_load): Likewise.
26205         (do_ubsan_in_current_function): Remove the function.
26206         (pass_ubsan::execute): Use sanitize_flags_p.
26207         * ubsan.h: Remove do_ubsan_in_current_function
26208         * tree-cfg.c (print_no_sanitize_attr_value): New function.
26209         (dump_function_to_file): Use it here.
26211 2017-06-13  Martin Jambor  <mjambor@suse.cz>
26213         PR tree-optimization/80803
26214         PR tree-optimization/81063
26215         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
26216         (propagate_subaccesses_across_link): Enqueue subtree whenever
26217         necessary instead of relying on the caller.
26219 2017-06-13  Martin Jambor  <mjambor@suse.cz>
26221         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
26222         that have a first_link.
26223         (sort_and_splice_var_accesses): Do not check first_link before
26224         enquing.
26225         (subtree_mark_written_and_enqueue): Likewise.
26226         (propagate_all_subaccesses): Likewise and do not stop at first
26227         parent with a first_link.
26229 2017-06-13  Martin Jambor  <mjambor@suse.cz>
26231         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
26232         instead of f.
26234 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
26236         * match.pd: New pattern.
26238 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
26240         * tree-vrp.c (is_masked_range_test): New function.
26241         (register_edge_assert_for): Determine ranges for
26242         some bit tests.
26244 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
26246         PR tree-optimization/67328
26247         * fold-const.c (maskable_range_p): New function.
26248         (build_range_check): Generate bittests if possible.
26250 2017-06-13  Martin Liska  <mliska@suse.cz>
26252         * gimple-pretty-print.c (dump_probability): Add new argument.
26253         (dump_edge_probability): Dump both probability and count.
26254         (dump_gimple_label): Likewise.
26255         (dump_gimple_bb_header): Likewise.
26257 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
26259         PR target/81072
26260         * config/avr/avr-devices.c: Fix indentation.
26261         * config/avr/gen-avr-mmcu-specs.c: Dito.
26263 2017-06-13  Richard Biener  <rguenther@suse.de>
26265         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
26266         instead get vector type from stmt_info.
26267         (vectorizable_reduction): Adjust.  Remove dead code.
26269 2017-06-13  Richard Biener  <rguenther@suse.de>
26271         PR middle-end/81065
26272         * fold-const.c (extract_muldiv_1): Remove bogus distribution
26273         case of C * (x * C2 + C3).
26274         (fold_addr_of_array_ref_difference): Properly fold index difference.
26276 2017-06-12  David S. Miller  <davem@davemloft.net>
26278         PR target/80968
26279         * config/sparc/sparc.md (return expander): Emit frame blockage if
26280         function uses alloca.
26282 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
26284         * combine.c (make_field_assignment): Check len rather than the mode
26285         precision when calling force_to_mode.
26287 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
26289         Support multilibs and devices that see flash in RAM address range.
26291         PR target/81072
26292         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
26293         (avr_mcu_t) <flash_pm_offset>: New field.
26294         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
26295         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
26296         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
26297         (AVR_TINY_PM_OFFSET): Remove macro.
26298         * config/avr/avr.opt (-mshort-calls): New option.
26299         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
26300         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
26301         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
26302         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
26303         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
26304         instead of avr_arch->have_jmp_call.
26305         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
26306         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
26307         avr_arch->flash_pm_offset to define.
26308         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
26309         new field flash_pm_offset.  Add entry for avrxmega3.
26310         (avr_texinfo): Add entry for avrxmega3.
26311         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
26312         attiny212, attiny214,
26313         attiny412, attiny414, attiny416, attiny417,
26314         attiny814, attiny816, attiny817,
26315         attiny1614, attiny1616, attiny1617,
26316         attiny3214, attiny3216, attiny3217.
26317         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
26318         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
26319         (avr_print_operand_address) [AVR_TINY]: Same.
26320         (avr_asm_init_sections) <readonly_data_section>: Only patch
26321         callback if avr_arch->flash_pm_offset = 0.
26322         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
26323         for rodata if avr_arch->flash_pm_offset != 0.
26324         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
26325         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
26326         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
26327         (m_options): Append opt_rcall.
26328         (m_dirnames): Append dir_rcall.
26329         * config/avr/t-multilib: Regenerate.
26331         * configure.ac [target=avr]: Check whether avrxmega3 default
26332         linker description file works as needed.
26333         * configure: Regenerate.
26334         * doc/avr-mmcu.texi: Regenerate.
26335         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
26336         <__AVR_ARCH__>: Document avrxmega3 and 103.
26337         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
26338         <__AVR_SHORT_CALLS__>: Document it.
26339         <__AVR_PM_BASE_ADDRESS__>: Document it.
26340         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
26341         (AVR Variable Attributes) <progmem>: Document this is
26342         not needed for avrxmega3.
26343         (AVR Named Address Spaces) <__flash>: Dito.
26345 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
26347         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
26349 2017-06-12  Doug Rupp  <rupp@adacore.com>
26351         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
26352         Append vxworks-stdint.h to the tm_file list.
26353         * config/vxworks-stdint.h: New file.
26355 2017-06-12  Martin Liska  <mliska@suse.cz>
26357         PR tree-optimization/81041
26358         * tree-profile.c (gimple_gen_ic_func_profiler):
26359         Create an extra BB in profile-generate
26360         (gimple_gen_time_profiler): Likewise.
26362 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
26364         PR tree-optimization/81003
26365         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
26366         (update_range_test): Use it instead of force_gimple_operand_gsi.
26368 2017-06-12  Richard Biener  <rguenther@suse.de>
26370         PR tree-optimization/81053
26371         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
26372         with backedge value not defined in loop.  Simplify def stmt
26373         compute.
26375 2017-06-11  Tom de Vries  <tom@codesourcery.com>
26377         PR target/79939
26378         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
26379         Return true.
26380         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
26381         nvptx_cannot_force_const_mem.
26383 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26385         * opts.c (finish_options): Move test for flag_split_stack after
26386         it has been initialized.
26388 2017-06-11  Jason Merrill  <jason@redhat.com>
26390         * tree.h (id_equal): New.
26391         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
26392         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
26393         instead of strcmp of IDENTIFIER_POINTER.
26395 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26397         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
26398         (mark_all_inlined_calls_cdtor): Fix formating.
26399         (inline_transform): Rescale profile before inlining.
26401 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26403         * cgraph.h (cgraph_edge::clone): Update prototype.
26404         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
26405         (cgraph_node::create_clone): Update.
26406         (cgraph_node::create_version_clone): Update.
26407         * tree-inline.c (copy_bb): Update.
26408         (expand_call_inline): Update.
26410 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
26412         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
26413         factored out from ...
26414         (rs6000_emit_prologue): ... here.
26416 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
26418         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
26419         factored out from ...
26420         (rs6000_emit_prologue): ... here.
26422 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26424         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
26425         edge counts.
26426         (handle_missing_profiles): Fix computation of tp_first_run.
26427         (counts_to_freqs): Do not touch freqs when count is 0.
26429 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26431         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
26432         profile.
26434 2017-06-10  Tom de Vries  <tom@codesourcery.com>
26436         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
26437         attributes): Document signal effective target.
26439 2017-06-10  Tom de Vries  <tom@codesourcery.com>
26441         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
26442         Document effective target stack_size.
26444 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
26446         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
26447         to the edit_context if they can be auto-applied.
26449 2017-06-9  Ian Lance Taylor  <iant@golang.org>
26451         * opts.c (finish_options): If -fsplit-stack, disable implicit
26452         -forder-blocks-and-partition.
26453         * doc/invoke.texi (Optimize Options): Document that when using
26454         -fsplit-stack -forder-blocks-and-partition is not implicitly
26455         enabled.
26457 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26459         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
26460         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
26461         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
26462         * builtins.def (abort, trap, unreachable): Declare cold.
26463         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
26464         * tree-core.h (ECF_COLD): New.
26465         * tree.c (set_call_expr_flags): Handle ECF_COLD.
26466         (build_common_builtin_nodes): Mark unreachable and abort as cold.
26468 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26470         * predict.c (unlikely_executed_stmt_p): Cleanup.
26472 2017-06-09  Richard Biener  <rguenther@suse.de>
26474         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
26475         model if the ref is always written to.
26477 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
26479         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
26481 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
26483         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
26484         than udiv.
26486 2017-06-09  Tom de Vries  <tom@codesourcery.com>
26488         PR target/80855
26489         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
26490         "target cannot support label values" when encountering LABEL_REF.
26492 2017-06-09  Martin Liska  <mliska@suse.cz>
26494         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
26495         (gimple_gen_ic_func_profiler): Emit direct comparison
26496         of __gcov_indirect_call_callee with NULL.
26497         (gimple_gen_time_profiler): Change probability from
26498         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
26500 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26502         * profile.c (edge_gcov_counts): Turn to pointer.
26503         (compute_branch_probabilities, compute_branch_probabilities): Update.
26504         (branch_prob): Do not clear edge_gcov_count.
26505         * profile.h (edge_gcov_counts): Turn to pointer.
26506         (edge_gcov_count): Update.
26508 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26510         * gimple.h (gimple_check_failed): Mark cold.
26512 2017-06-09  Richard Biener  <rguenther@suse.de>
26514         PR tree-optimization/66623
26515         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
26516         refactor check_reduction into two parts, properly computing
26517         whether we have to check reduction validity for outer loop
26518         vectorization.
26520 2017-06-09  Richard Biener  <rguenther@suse.de>
26522         PR tree-optimization/79483
26523         * graphite-scop-detection.c (order): New global.
26524         (get_order): Compute bb to order mapping that satisfies code
26525         generation constraints.
26526         (cmp_pbbs): New helper.
26527         (build_scops): Start domwalk at entry block, sort generated
26528         pbbs.
26530 2017-06-09  Richard Biener  <rguenther@suse.de>
26532         PR middle-end/81007
26533         * ipa-polymorphic-call.c
26534         (ipa_polymorphic_call_context::restrict_to_inner_class):
26535         Skip FIELD_DECLs with error_mark_node type.
26536         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
26537         last again.
26539 2017-06-09  Martin Liska  <mliska@suse.cz>
26541         * predict.c (struct branch_predictor): New struct.
26542         (test_prediction_value_range): New test.
26543         (predict_c_tests): New function.
26544         * selftest-run-tests.c (selftest::run_tests): Run the function.
26545         * selftest.h: Declare new tests.
26547 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
26549         PR target/80966
26550         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
26551         gen_add3_insn did not fail.
26552         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
26553         r0, construct that number in a temporary reg and add that reg to r0.
26554         If asked to put the result in r0 as well, fail.
26556 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
26558         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
26559         for early expansion of vec_eqv.
26561 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
26563         PR middle-end/81005
26564         * ubsan.c (instrument_null): Avoid pointless code temporary.
26565         (pass_ubsan::execute): Instrument aggregate arguments of calls.
26567 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
26569         PR target/81015
26570         Revert:
26571         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
26573         PR target/59874
26574         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
26575         (*clzhi2): Ditto.
26577 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26579         * predict.c (unlikely_executed_edge_p): Move ahead.
26580         (probably_never_executed_edge_p): Use it.
26582 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26584         PR middle-end/79988
26585         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
26586         gimple_call_builtin_p call.
26588 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26590         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
26591         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
26592         rtl_check_failed_type2, rtl_check_failed_code1,
26593         rtl_check_failed_code2, rtl_check_failed_code_mode,
26594         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
26595         rtvec_check_failed_bounds, rtl_check_failed_flag,
26596         _fatal_insn_not_found, _fatal_insn): Likewise.
26597         * tree.h (tree_contains_struct_check_failed,
26598         tree_check_failed, tree_not_check_failed,
26599         tree_class_check_failed, tree_range_check_failed,
26600         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
26601         tree_vec_elt_check_failed, phi_node_elt_check_failed,
26602         tree_operand_check_failed, omp_clause_check_failed,
26603         omp_clause_operand_check_failed, omp_clause_range_check_failed):
26604         Likewise.
26606 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26608         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
26609         flag_branch_probabilities.
26610         * ipa-inline.c (edge_badness): Likewise.
26611         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
26612         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
26613         * predict.c (maybe_hot_frequency_p): Likewise.
26614         (probably_never_executed): Likewise.
26615         * sched-ebb.c (schedule_ebbs): Likewise.
26616         * sched-rgn.c (find_single_block_region): Likewise.
26617         * tracer.c (tail_duplicate): Likewise.
26619 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26621         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
26622         longer requires x_flag_profile_use.
26624 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26626         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
26627         instead of flag_reorder_blocks_and_partition.
26628         * dbxout.c (dbxout_function_end): Likewise.
26629         * dwarf2out.c (gen_subprogram_die): Likewise.
26630         * haifa-sched.c (sched_create_recovery_edges): Likewise.
26631         * hw-doloop.c (reorg_loops): Likewise.
26632         * varasm.c (assemble_start_function,
26633         assemble_end_function): Likewise.
26634         (decide_function_section): Do not check for
26635         flag_reorder_blocks_and_partition.
26637 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26639         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
26640         New function.
26641         (chkp_get_hard_register_fake_addr_expr): Ditto.
26642         (chkp_build_addr_expr): Add check for hard reg case.
26643         (chkp_parse_array_and_component_ref): Ditto.
26644         (chkp_find_bounds_1): Ditto.
26645         (chkp_process_stmt): Don't generate bounds store for
26646         hard reg case.
26648 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26650         * predict.c (maybe_hot_bb_p): Do not check profile status.
26651         (maybe_hot_edge_p): Likewise.
26652         (probably_never_executed): Check for zero counts even if profile
26653         is not read.
26654         (unlikely_executed_edge_p): New function.
26655         (unlikely_executed_stmt_p): New function.
26656         (unlikely_executed_bb_p): New function.
26657         (set_even_probabilities): Use unlikely predicates.
26658         (combine_predictions_for_bb): Likewise.
26659         (predict_paths_for_bb): Likewise.
26660         (predict_paths_leading_to_edge): Likewise.
26661         (determine_unlikely_bbs): New function.
26662         (estimate_bb_frequencies): Use it.
26663         (compute_function_frequency): Use zero counts even if profile is
26664         not read.
26665         * profile-count.h: Fix typo.
26667 2017-08-08  Julia Koval  <julia.koval@intel.com>
26669         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
26670         _mm512_mask_cvtsepi16_storeu_epi8,
26671         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
26672         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
26673         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
26674         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
26675         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
26676         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
26677         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
26678         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
26679         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
26680         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
26681         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
26682         __builtin_ia32_pmovuswb256mem_mask,
26683         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
26684         __builtin_ia32_pmovwb512mem_mask): New builtins.
26686 2017-08-08  Julia Koval  <julia.koval@intel.com>
26688         PR target/73350,80862
26689         * config/i386/subst.md (round): Fix round pattern.
26690         * config/i386/i386.c (ix86_erase_embedded_rounding):
26691         Fix erasing rounding for the fixed pattern.
26693 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26695         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
26697 2017-06-08  Martin Liska  <mliska@suse.cz>
26699         PR gcov-profile/80911
26700         * gcov.c (block_info::block_info): New constructor.
26702 2017-06-07  Carl Love  <cel@us.ibm.com>
26704         * config/rs6000/rs6000-c: The return type of the following
26705         built-in functions was implemented as int not long long.  Fix sign
26706         of return value for the unsigned version of vec_mulo and vec_mule.
26707         vector unsigned long long vec_bperm (vector unsigned long long,
26708                                              vector unsigned char)
26709         vector signed long long vec_mule (vector signed int,
26710                                           vector signed int)
26711         vector unsigned long long vec_mule (vector unsigned int,
26712                                             vector unsigned int)
26713         vector signed long long vec_mulo (vector signed int,
26714                                           vector signed int)
26715         vector unsigned long long vec_mulo (vector unsigned int,
26716                                             vector unsigned int)
26717         * doc/extend.texi: Fix the documentation for the built-in
26718         functions.
26720 2017-06-07  Carl Love  <cel@us.ibm.com>
26722         PR target/80982
26723         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
26724         for BE.
26726 2017-06-07  Carl Love  <cel@us.ibm.com>
26728         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
26729         support, Generate       doublehv for signed int/float for BE case only.
26731 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
26733         * doc/invoke.texi (mcx16): Rewrite.
26735 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26737         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
26738         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
26739         *mov<mode>_softfloat, and an anonymous splitter): Use
26740         nonimmediate_operand instead of rs6000_nonimmediate_operand.
26742 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26744         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
26745         SPEFSCR registers.
26746         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
26747         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
26748         (rs6000_debug_reg_global): Adjust.
26749         (rs6000_init_hard_regno_mode_ok): Adjust.
26750         (rs6000_dbx_register_number): Adjust.
26751         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
26752         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
26753         Remove SPE_ACC and SPEFSCR.
26754         (REG_ALLOC_ORDER): Ditto.
26755         (FRAME_POINTER_REGNUM): Change to 111.
26756         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
26757         (REG_CLASS_NAMES): Ditto.
26758         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
26759         (REGISTER_NAMES): Ditto.
26760         (ADDITIONAL_REG_NAMES): Ditto.
26761         (rs6000_reg_names): Ditto.
26762         * config/rs6000/rs6000.md: Renumber some register number
26763         define_constants.
26765 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26767         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
26768         registers.
26769         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
26770         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
26771         to 117.
26772         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
26773         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
26774         Delete the SPE high registers.
26775         (REG_ALLOC_ORDER): Ditto.
26776         (enum reg_class): Remove SPE_HIGH_REGS.
26777         (REG_CLASS_NAMES): Ditto.
26778         (REG_CLASS_CONTENTS): Delete the SPE high registers.
26779         (REGISTER_NAMES): Ditto.
26780         (rs6000_reg_names): Ditto.
26781         * doc/tm.texi.in: Remove SPE as example.
26782         * doc/tm.texi: Regenerate.
26784 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26786         * config/rs6000/8540.md (ppc8540_brinc): Delete.
26787         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
26788         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
26789         * config/rs6000/rs6000.md (type): Remove "brinc".
26791 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26793         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
26794         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
26795         * config/rs6000/linuxspe.h: Delete file.
26796         * config/rs6000/rs6000.md: Don't include spe.md.
26797         * config/rs6000/spe.h: Delete file.
26798         * config/rs6000/spe.md: Delete file.
26799         * config/rs6000/t-rs6000: Remove spe.md.
26801 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26803         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
26804         (reg_or_none500mem_operand): Delete.
26805         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
26806         instead of reg_or_none500mem_operand.
26808 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26810         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
26811         handling of SPE flags.
26812         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
26814 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26816         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
26817         SPE ABI handling.
26818         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
26819         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
26820         paired_divv2sf3): Similar.
26821         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
26822         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
26823         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
26824         RS6000_BUILTIN_S.
26825         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
26826         Rename the paired_* instruction patterns.
26827         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
26828         define __SPE__.
26829         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
26830         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
26831         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
26832         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
26833         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
26834         PAIRED_VECTOR_MODE.
26835         (struct machine_function): Delete field spe_insn_chain_scanned_p.
26836         (spe_func_has_64bit_regs_p): Delete.
26837         (spe_expand_predicate_builtin): Delete.
26838         (spe_expand_evsel_builtin): Delete.
26839         (TARGET_DWARF_REGISTER_SPAN): Do not define.
26840         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
26841         (invalid_e500_subreg): Delete.
26842         (rs6000_legitimize_address): Always force_reg op2 as well, for
26843         paired single memory accesses.
26844         (rs6000_member_type_forces_blk): Delete.
26845         (rs6000_spe_function_arg): Delete.
26846         (rs6000_expand_unop_builtin): Delete SPE handling.
26847         (rs6000_expand_binop_builtin): Ditto.
26848         (spe_expand_stv_builtin): Delete.
26849         (bdesc_2arg_spe): Delete.
26850         (spe_expand_builtin): Delete.
26851         (spe_expand_predicate_builtin): Delete.
26852         (spe_expand_evsel_builtin): Delete.
26853         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
26854         (spe_init_builtins): Delete.
26855         (spe_func_has_64bit_regs_p): Delete.
26856         (savres_routine_name): Delete "info" parameter.  Adjust callers.
26857         (rs6000_emit_stack_reset): Ditto.
26858         (rs6000_dwarf_register_span): Delete.
26859         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
26860         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
26861         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
26862         Delete.
26863         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
26864         Delete.
26865         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
26866         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
26867         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
26868         mulv2sf3, divv2sf3): Delete expanders.
26870 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26872         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
26874 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26876         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
26877         * config/rs6000/rs6000.c: Ditto.
26879 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26881         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
26882         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
26883         comparison_operator.
26885 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26887         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
26888         * config/rs6000/rs6000.opt: Ditto.
26889         * config/rs6000/t-rtems: Ditto.
26891 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26893         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
26894         TARGET_E500_SINGLE by 0, simplify.
26895         * config/rs6000/rs6000.c: Ditto.
26896         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
26897         (spe_build_register_parallel): Delete.
26898         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
26899         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
26900         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
26901         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
26902         (E500_CONVERT): Delete.
26903         * config/rs6000/spe.md: Remove many patterns and all define_constants.
26905 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
26907         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
26908         * config/rs6000/dfp.md: Ditto.
26909         (negdd2, *negdd2_fpr): Merge.
26910         (absdd2, *absdd2_fpr): Merge.
26911         (negtd2, *negtd2_fpr): Merge.
26912         (abstd2, *abstd2_fpr): Merge.
26913         * config/rs6000/e500.h: Delete file.
26914         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
26915         TARGET_FPRS by 1 and simplify.
26916         * config/rs6000/rs6000-c.c: Ditto.
26917         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
26918         TARGET_DF_SPE by 0.
26919         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
26920         TARGET_DF_SPE.
26921         * config/rs6000/rs6000.md: Ditto.
26922         (floatdidf2, *floatdidf2_fpr): Merge.
26923         (move_from_CR_gt_bit): Delete.
26924         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
26925         (E500_CR_IOR_COMPARE): Delete.
26926         (All patterns that require !TARGET_FPRS): Delete.
26927         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
26929 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26931         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
26933 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26935         * graphds.c (add_edge): Intitialize edge's attached data.
26936         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
26937         pointer parameter.  Call pointed function on each edge during
26938         graph traversing.  Skip traversing the edge when the function
26939         returns true.
26940         (graphds_dfs, graphds_scc): Ditto.
26941         (for_each_edge): New parameter.  Pass the new parameter to callback
26942         function.
26943         * graphds.h (skip_edge_callback): New function pointer type.
26944         (graphds_dfs, graphds_scc): New function pointer parameter.
26945         (graphds_edge_callback, for_each_edge): New parameter.
26947 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26949         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
26950         out code checking if runtime alias check is possible to below ...
26951         Call the new function.
26952         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
26953         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
26955 2017-06-07  Marek Polacek  <polacek@redhat.com>
26957         PR sanitizer/80932
26958         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
26959         TYPE_OVERFLOW_WRAPS check.
26961 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26963         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
26964         if versioning is required.
26965         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
26966         peeling with the check for versioning.
26968 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26970         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
26971         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
26972         Set true to new parameter if new ssa variable is defined.
26973         (vect_gen_vector_loop_niters): Refactor.  Set range information
26974         for the new vector loop bound variable.
26975         (vect_do_peeling): Ditto.
26977 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26979         * tree-affine.c (ssa.h): Include header file.
26980         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
26981         has wrapping overflow behavior.
26983 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26985         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
26987 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26989         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
26990         (tree_to_aff_combination): ... here.
26992 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
26994         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
26995         reg_pressure model function.
26996         (ivopts_global_cost_for_size): Delete.
26997         (determine_set_costs, iv_ca_recount_cost): Call new model function
26998         ivopts_estimate_reg_pressure.
27000 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27002         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
27003         expensive than udiv.  Remove floating point cases from mod.
27005 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27007         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
27008         Increase idiv cost.
27010 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27012         * config/aarch64/aarch64.md
27013         (copysignsf3): Fix mask generation.
27015 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
27017         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
27018         TDI_gimple.
27019         (class dump_manager): Add register_dumps method.
27020         * dumpfile.c: Include langhooks.h.
27021         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
27022         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
27023         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
27024         (dump_manager::dump_register): Start with 512 entries instead of 32.
27025         (dump_manager::register_dumps): New method.
27026         * toplev.c (general_init): Instead of invoking register_dumps
27027         langhook, invoke register_dumps method on the dump manager.
27028         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
27029         TDI_generic.
27031 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
27033         * doc/md.texi: Clarify the restrictions on a define_insn condition.
27034         Say that # requires an associated define_split to exist, and that
27035         the define_split must be suitable for use after register allocation.
27037 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27039         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
27040         (compute_outgoing_frequencies): Also initialize zero counts.
27041         (find_many_sub_basic_blocks): Do not produce uninitialized profile
27042         around loops; preserve more of profile when nothing changes.
27044 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
27046         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
27047         here.
27048         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
27049         * config/arm/arm-cpu-cdata.h: Regenerate.
27050         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
27051         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
27052         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
27053         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
27054         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
27055         support.
27056         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
27057         support.
27058         * config/arm/t-rmprofile: Likewise.
27059         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
27061 2017-06-06  David S. Miller  <davem@davemloft.net>
27063         PR target/80968
27064         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
27065         blockage if function uses alloca.
27067 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27069         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
27070         New "uid" fields to hold pretty-print IDs of group and ref.
27071         Memory references are now identified as <group_id>:<ref_id>
27072         instead of using [random] addresses.
27073         (dump_mem_details): Simplify, no functional change.
27074         (dump_mem_ref): Simplify and make output more concise.
27075         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
27076         (find_or_create_group): Initialize group uid.
27077         (record_ref): Initialize ref uid.  Improve debug output.
27078         (prune_group_by_reuse, should_issue_prefetch_p,)
27079         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
27080         (mark_nontemporal_store, determine_loop_nest_reuse):
27081         Improve debug output.
27083 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27085         * dbgcnt.def (prefetch): New debug counter.
27086         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
27087         (schedule_prefetches): Stop issueing prefetches if debug counter
27088         tripped.
27090 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27092         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
27093         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
27095 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27097         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
27098         Use aarch64_reg_or_zero predicate for operand 4.
27099         (aarch64_compare_and_swap<mode> define_insn_and_split):
27100         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
27101         (aarch64_store_exclusive<mode>): Likewise for operand 2.
27103 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27105         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
27106         (arm_compute_save_core_reg_mask): This.
27107         (thumb1_compute_save_reg_mask): Rename into ...
27108         (thumb1_compute_save_core_reg_mask): This.
27109         (arm_compute_save_reg0_reg12_mask): Adapt comment.
27110         (arm_compute_frame_layout): Likewise.
27112 2017-06-06  Richard Biener  <rguenther@suse.de>
27114         PR tree-optimization/80974
27115         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
27116         keep or clear leaders SSA info.
27118 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27120         * config/nvptx/nvptx.c (split_mode_p): New function.
27121         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
27123 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27125         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
27127 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27129         PR bootstrap/80978
27130         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
27131         profile.
27133 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27135         * shrink-wrap.c (handle_simple_exit): Update profile.
27136         (try_shrink_wrapping): Upate profile.
27138 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27140         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
27141         (tree_guess_outgoing_edge_probabilities): New.
27142         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
27143         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
27145 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27147         * ipa-split.c (split_function): Initialize return bb profile.
27149 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27151         * profile.c (compute_branch_probabilities): Also initialize
27152         EXIT_BLOCK profile.
27154 2017-06-06  Richard Biener  <rguenther@suse.de>
27156         PR tree-optimization/80928
27157         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
27158         (vect_analyze_loop_operations): Properly guard analysis for
27159         pure SLP case.
27160         (vect_transform_loop): Likewise.
27161         (vect_analyze_loop_2): Also reset SLP type on PHIs.
27162         (vect_model_induction_cost): Do not cost for pure SLP.
27163         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
27164         of induction in inner loop vectorization.
27165         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
27166         (vect_get_and_check_slp_defs): Handle vect_induction_def.
27167         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
27168         recursion.
27169         (vect_analyze_slp_cost_1): Cost induction.
27170         (vect_detect_hybrid_slp_stmts): Handle PHIs.
27171         (vect_get_slp_vect_defs): Likewise.
27172         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
27173         (vect_transform_stmt): Handle SLP reductions.
27174         * tree-vectorizer.h (vectorizable_induction): Adjust.
27176 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
27178         * config/rs6000/rs6000.c (make_resolver_func): Update
27179         init_lowered_empty_function call.
27181 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27183         * doc/invoke.texi: Document the -fprofile-abs-path option.
27184         * common.opt (fprofile-abs-path): New option.
27185         * gcov-io.h (gcov_write_filename): Declare.
27186         * gcov-io.c (gcov_write_filename): New function.
27187         * coverage.c (coverage_begin_function): Use gcov_write_filename.
27188         * profile.c (output_location): Likewise.
27190 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27192         * shring-wrap.c: Revert accidental commit.
27194 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
27196         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
27198 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27200         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
27201         new edge.
27202         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
27203         profile in callgraph edge.
27204         * profile-count.h (apply_probability): If THIS is 0, then result is 0
27205         (apply_scale): Likewise.
27206         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
27207         Also scale profile when inlining function with zero profile.
27208         (initialize_cfun): Update exit block profile even when it is zero.
27209         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
27210         when profile is read.
27212 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
27214         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
27215         (CLONE_*): New constants to define the processors we can generate
27216         code for with the target_clone attribute.
27217         (rs6000_clone_map): New array to identify which clone processors
27218         the current program is running on.
27219         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
27220         target_clone attribute.
27221         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
27222         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
27223         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
27224         (cpu_expand_builtin): Add support for target_clone attribute.
27225         (rs6000_valid_attribute_p): Allow "default" attribute.
27226         (get_decl_name): New debug function to simplify printing the
27227         current function name in debugging statements.
27228         (rs6000_clone_priority): New functions to support the target_clone
27229         attribute, and be able to generate code to switch between ISA 2.05
27230         through ISA 3.0 (power6 through power9).
27231         (rs6000_compare_version_priority): Likewise.
27232         (rs6000_get_function_versions_dispatcher): Likewise.
27233         (make_resolver_func): Likewise.
27234         (add_condition_to_bb): Likewise.
27235         (dispatch_function_versions): Likewise.
27236         (rs6000_generate_version_dispatcher_body): Likewise.
27237         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
27238         (fusion_gpr_load_p): Fix a spacing issue.
27239         * doc/extend.texi (Common Function Attributes): Document that the
27240         PowerPC supports the target_clone attribute.
27242 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27244         * config/arm/arm.h: explain F symbol found in description of ARM
27245         register allocation in its legend.
27247 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27249         * config/mips/frame-header-opt.c: Include profile-count.h.
27250         * config/riscv/riscv.c: Include profile-count.h
27252 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27254         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
27255         update profile.
27256         (sm_set_flag_if_changed): Add bbs field.
27257         (execute_sm_if_changed_flag_set): Pass BBS.
27258         (execute_sm): Update.
27260 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27262         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
27263         New pattern.
27265 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27267         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
27268         (peephole2): New peephole2 to emit the above.
27269         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
27271 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27273         * config/aarch64/aarch64.c (define_peephole2 above
27274         *sub_<shift>_<mode>): New peephole.
27276 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
27278         * config/i386/i386.c (make_resolver_func): Update.
27279         * Makefile.in: Add profile-count.h and profile-count.o
27280         * auto-profile.c (afdo_indirect_call): Update to new API.
27281         (afdo_set_bb_count): Update.
27282         (afdo_propagate_edge): Update.
27283         (afdo_propagate_circuit): Update.
27284         (afdo_calculate_branch_prob): Update.
27285         (afdo_annotate_cfg): Update.
27286         * basic-block.h: Include profile-count.h
27287         (struct edge_def): Turn count to profile_count.
27288         (struct basic_block_def): Likewie.
27289         (REG_BR_PROB_BASE): Move to profile-count.h
27290         (RDIV): Move to profile-count.h
27291         * bb-reorder.c (max_entry_count): Turn to profile_count.
27292         (find_traces): Update.
27293         (rotate_loop):Update.
27294         (connect_traces):Update.
27295         (sanitize_hot_paths):Update.
27296         * bt-load.c (migrate_btr_defs): Update.
27297         * cfg.c (RDIV): Remove.
27298         (init_flow): Use alloc_block.
27299         (alloc_block): Uninitialize count.
27300         (unchecked_make_edge): Uninitialize count.
27301         (check_bb_profile): Update.
27302         (dump_edge_info): Update.
27303         (dump_bb_info): Update.
27304         (update_bb_profile_for_threading): Update.
27305         (scale_bbs_frequencies_int): Update.
27306         (scale_bbs_frequencies_gcov_type): Update.
27307         (scale_bbs_frequencies_profile_count): New.
27308         * cfg.h (update_bb_profile_for_threading): Update.
27309         (scale_bbs_frequencies_profile_count): Declare.
27310         * cfgbuild.c (compute_outgoing_frequencies): Update.
27311         (find_many_sub_basic_blocks): Update.
27312         * cfgcleanup.c (try_forward_edges): Update.
27313         (try_crossjump_to_edge): Update.
27314         * cfgexpand.c (expand_gimple_tailcall): Update.
27315         (construct_exit_block): Update.
27316         * cfghooks.c (verify_flow_info): Update.
27317         (dump_bb_for_graph): Update.
27318         (split_edge): Update.
27319         (make_forwarder_block): Update.
27320         (duplicate_block): Update.
27321         (account_profile_record): Update.
27322         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
27323         (get_estimated_loop_iterations): Update.
27324         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
27325         (single_likely_exit): Update.
27326         * cfgloopmanip.c (scale_loop_profile): Update.
27327         (loopify): Update.
27328         (set_zero_probability): Update.
27329         (lv_adjust_loop_entry_edge): Update.
27330         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
27331         (purge_dead_edges): Update.
27332         (rtl_account_profile_record): Update.
27333         * cgraph.c (cgraph_node::create): Uninitialize count.
27334         (symbol_table::create_edge): Uninitialize count.
27335         (cgraph_update_edges_for_call_stmt_node): Update.
27336         (cgraph_edge::dump_edge_flags): Update.
27337         (cgraph_node::dump): Update.
27338         (cgraph_edge::maybe_hot_p): Update.
27339         * cgraph.h: Include profile-count.h
27340         (create_clone), create_edge, create_indirect_edge): Update.
27341         (cgraph_node): Turn count to profile_count.
27342         (cgraph_edge0: Likewise.
27343         (make_speculative, clone): Update.
27344         (create_edge): Update.
27345         (init_lowered_empty_function): Update.
27346         * cgraphclones.c (cgraph_edge::clone): Update.
27347         (duplicate_thunk_for_node): Update.
27348         (cgraph_node::create_clone): Update.
27349         * cgraphunit.c (cgraph_node::analyze): Update.
27350         (cgraph_node::expand_thunk): Update.
27351         * final.c (dump_basic_block_info): Update.
27352         * gimple-streamer-in.c (input_bb): Update.
27353         * gimple-streamer-out.c (output_bb): Update.
27354         * graphite.c (print_global_statistics): Update.
27355         (print_graphite_scop_statistics): Update.
27356         * hsa-brig.c: Include basic-block.h.
27357         * hsa-dump.c: Include basic-block.h.
27358         * hsa-gen.c (T sum_slice): Update.
27359         (convert_switch_statements):Update.
27360         * hsa-regalloc.c: Include basic-block.h.
27361         * ipa-chkp.c (chkp_produce_thunks): Update.
27362         * ipa-cp.c (struct caller_statistics): Update.
27363         (init_caller_stats): Update.
27364         (gather_caller_stats): Update.
27365         (ipcp_cloning_candidate_p): Update.
27366         (good_cloning_opportunity_p): Update.
27367         (get_info_about_necessary_edges): Update.
27368         (dump_profile_updates): Update.
27369         (update_profiling_info): Update.
27370         (update_specialized_profile): Update.
27371         (perhaps_add_new_callers): Update.
27372         (decide_about_value): Update.
27373         (ipa_cp_c_finalize): Update.
27374         * ipa-devirt.c (struct odr_type_warn_count): Update.
27375         (struct decl_warn_count): Update.
27376         (struct final_warning_record): Update.
27377         (possible_polymorphic_call_targets): Update.
27378         (ipa_devirt): Update.
27379         * ipa-fnsummary.c (redirect_to_unreachable): Update.
27380         * ipa-icf.c (sem_function::merge): Update.
27381         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
27382         * ipa-inline.c (compute_uninlined_call_time): Update.
27383         (compute_inlined_call_time): Update.
27384         (want_inline_small_function_p): Update.
27385         (want_inline_self_recursive_call_p): Update.
27386         (edge_badness): Update.
27387         (lookup_recursive_calls): Update.
27388         (recursive_inlining): Update.
27389         (inline_small_functions): Update.
27390         (dump_overall_stats): Update.
27391         (dump_inline_stats): Update.
27392         * ipa-profile.c (ipa_profile_generate_summary): Update.
27393         (ipa_propagate_frequency): Update.
27394         (ipa_profile): Update.
27395         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
27396         * ipa-utils.c (ipa_merge_profiles): Update.
27397         * loop-doloop.c (doloop_modify): Update.
27398         * loop-unroll.c (report_unroll): Update.
27399         (unroll_loop_runtime_iterations): Update.
27400         * lto-cgraph.c (lto_output_edge): Update.
27401         (lto_output_node): Update.
27402         (input_node): Update.
27403         (input_edge): Update.
27404         (merge_profile_summaries): Update.
27405         * lto-streamer-in.c (input_cfg): Update.
27406         * lto-streamer-out.c (output_cfg): Update.
27407         * mcf.c (create_fixup_graph): Update.
27408         (adjust_cfg_counts): Update.
27409         (sum_edge_counts): Update.
27410         * modulo-sched.c (sms_schedule): Update.
27411         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
27412         * predict.c (maybe_hot_count_p): Update.
27413         (probably_never_executed): Update.
27414         (dump_prediction): Update.
27415         (combine_predictions_for_bb): Update.
27416         (propagate_freq): Update.
27417         (handle_missing_profiles): Update.
27418         (counts_to_freqs): Update.
27419         (rebuild_frequencies): Update.
27420         (force_edge_cold): Update.
27421         * predict.h: Include profile-count.h
27422         (maybe_hot_count_p, counts_to_freqs): UPdate.
27423         * print-rtl-function.c: Do not include cfg.h
27424         * print-rtl.c: Include basic-block.h
27425         * profile-count.c: New file.
27426         * profile-count.h: New file.
27427         * profile.c (is_edge_inconsistent): Update.
27428         (correct_negative_edge_counts): Update.
27429         (is_inconsistent): Update.
27430         (set_bb_counts): Update.
27431         (read_profile_edge_counts): Update.
27432         (compute_frequency_overlap): Update.
27433         (compute_branch_probabilities): Update; Initialize and deinitialize
27434         gcov_count tables.
27435         (branch_prob): Update.
27436         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
27437         (edge_gcov_count): New.
27438         (bb_gcov_count): New.
27439         * shrink-wrap.c (try_shrink_wrapping): Update.
27440         * tracer.c (better_p): Update.
27441         * trans-mem.c (expand_transaction): Update.
27442         (ipa_tm_insert_irr_call): Update.
27443         (ipa_tm_insert_gettmclone_call): Update.
27444         * tree-call-cdce.c: Update.
27445         * tree-cfg.c (gimple_duplicate_sese_region): Update.
27446         (gimple_duplicate_sese_tail): Update.
27447         (gimple_account_profile_record): Update.
27448         (execute_fixup_cfg): Update.
27449         * tree-inline.c (copy_bb): Update.
27450         (copy_edges_for_bb): Update.
27451         (initialize_cfun): Update.
27452         (freqs_to_counts): Update.
27453         (copy_cfg_body): Update.
27454         (expand_call_inline): Update.
27455         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
27456         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
27457         (try_unroll_loop_completely): Update.
27458         (try_peel_loop): Update.
27459         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
27460         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
27461         * tree-ssa-loop-split.c (connect_loops): Update.
27462         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
27463         * tree-ssa-reassoc.c (branch_fixup): Update.
27464         * tree-ssa-tail-merge.c (replace_block_by): Update.
27465         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
27466         (compute_path_counts): Update.
27467         (update_profile): Update.
27468         (recompute_probabilities): Update.
27469         (update_joiner_offpath_counts): Update.
27470         (estimated_freqs_path): Update.
27471         (freqs_to_counts_path): Update.
27472         (clear_counts_path): Update.
27473         (ssa_fix_duplicate_block_edges): Update.
27474         (duplicate_thread_path): Update.
27475         * tree-switch-conversion.c (case_bit_test_cmp): Update.
27476         (struct switch_conv_info): Update.
27477         * tree-tailcall.c (decrease_profile): Update.
27478         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
27479         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
27480         * value-prof.c (check_counter): Update.
27481         (gimple_divmod_fixed_value): Update.
27482         (gimple_mod_pow2): Update.
27483         (gimple_mod_subtract): Update.
27484         (gimple_ic_transform): Update.
27485         (gimple_stringop_fixed_value): Update.
27486         * value-prof.h (gimple_ic): Update.
27488 2017-06-02  Carl Love  <cel@us.ibm.com>
27490         * config/rs6000/rs6000-c: Add support for built-in functions
27491         vector double vec_doublee (vector signed int);
27492         vector double vec_doublee (vector unsigned int);
27493         vector double vec_doublee (vector float);
27494         vector double vec_doubleh (vector signed int);
27495         vector double vec_doubleh (vector unsigned int);
27496         vector double vec_doubleh (vector float);
27497         vector double vec_doublel (vector signed int);
27498         vector double vec_doublel (vector unsigned int);
27499         vector double vec_doublel (vector float);
27500         vector double vec_doubleo (vector signed int);
27501         vector double vec_doubleo (vector unsigned int);
27502         vector double vec_doubleo (vector float);.
27503         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
27504         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
27505         UNS_DOUBLEL.
27506         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
27507         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
27508         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
27509         VS_sxwsp.
27510         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
27511         vec_doublel, vec_doubleh.
27512         * doc/extend.texi: Update the built-in documentation file for the
27513         new built-in functions.
27515 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
27517         PR jit/80954
27518         * ipa-inline-analysis.c (free_growth_caches): Set
27519         edge_removal_hook_holder to NULL after removing it.
27521 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
27523         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
27524         comparision with zero.
27526 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
27527         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27528         for early expansion of vec_min and vec_max builtins.
27529         (builtin_function_type): Add min/max unsigned variants to those
27530         identified as having unsigned arguments.
27532 2017-06-02  Olivier Hainque  <hainque@adacore.com>
27534         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
27536 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27538         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
27539         Use VALL_F16 iterator rather than VALL.
27541 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27543         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
27544         Emit CBNZ inside loop when doing a strong exchange and comparing
27545         against zero.  Generate the CC flags after the loop.
27547 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
27549         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
27550         (dl_section_ref): New.
27551         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
27552         On AIX, append an expression to subtract the size of the
27553         section length to dl_section_ref.
27555 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
27557         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27558         for early expansion of vector absolute builtins.
27560 2017-06-02  Richard Biener  <rguenther@suse.de>
27562         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
27563         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
27565 2017-06-02  Richard Biener  <rguenther@suse.de>
27567         PR tree-optimization/80948
27568         * tree-tailcall.c (find_tail_calls): Track stmts to move in
27569         stmt order as well.
27571 2017-06-02  Richard Biener  <rguenther@suse.de>
27573         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
27574         PHIs are ok.
27575         * tree-vect-stmts.c (process_use): Do not mark backedge defs
27576         for inductions as relevant.
27578 2017-06-02  Richard Biener  <rguenther@suse.de>
27580         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
27581         (vectorizable_induction): ... this.  Remove dead code.
27583 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
27585         * builtins. (expand_builtin_alloca): Remove second parameter and
27586         infer its value from the first parameter instead.
27587         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
27589 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
27591         PR rtl-optimization/80903
27592         * loop-doloop.c (add_test): Unshare sequence.
27594 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27596         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
27598 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27600         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
27601         static.
27602         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
27603         xlogue_layout::get_instance, logue_layout::xlogue_layout,
27604         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
27605         (xlogue_layout::get_stub_rtx): Make static.
27606         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
27607         (xlogue_layout::compute_stub_managed_regs): Rename to...
27608         (xlogue_layout::count_stub_managed_regs): ...this.
27609         (xlogue_layout::is_stub_managed_reg): New function.
27610         (xlogue_layout::m_stub_names): Rename to...
27611         (xlogue_layout::s_stub_names): ...this, make static.
27612         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
27613         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
27614         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
27615         xlogue_layout::s_stub_names): Instantiate statics.
27616         (stub_managed_regs): Remove.
27617         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
27618         (disable_call_ms2sysv_xlogues): Rename to...
27619         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
27620         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
27621         warning logic.
27622         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
27623         change after reload_completed.
27624         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
27625         directly.
27626         (ix86_expand_prologue): Likewise.
27627         (ix86_expand_epilogue): Likewise.
27628         (ix86_expand_split_stack_prologue): Likewise.
27629         (ix86_compute_frame_layout): Remove frame parameter ...
27630         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
27631         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
27632         only if necessary.
27633         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
27634         (ix86_frame): Move from here ...
27635         * config/i386/i386.h (ix86_frame): ... to here.
27636         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
27637         complete ix86_frame data structure instead.  Remove some_ld_name.
27639 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
27641         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
27642         symbols that hold a DECL_VALUE_EXPR.
27644 2017-06-01  Martin Jambor  <mjambor@suse.cz>
27646         PR tree-optimization/80898
27647         * tree-sra.c (process_subtree_disqualification): Removed.
27648         (disqualify_candidate): Do not acll
27649         process_subtree_disqualification.
27650         (subtree_mark_written_and_enqueue): New function.
27651         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
27652         RHS has been disqualified and re-queue LHS if necessary.  Apart
27653         from that, ignore disqualified RHS.
27655 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27657         * config/s390/s390.c (s390_emit_epilogue): Disable early return
27658         address fetch for z10 or later.
27660 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27662         * config/arc/arc.md (tst_movb): Add guard when splitting.
27664 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27666         * config/arc/arc.c (arc_can_eliminate): Test against
27667         arc_frame_pointer_needed.
27669 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27671         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
27672         to prevent store reordering.
27673         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
27674         (type): Add block type.
27675         (stack_tie): Define special instruction to be used in
27676         expand_prologue.
27678 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27680         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
27681         constraint. It is not valid for the pattern.
27682         (noncommutative_binary_comparison): Likewise.
27684 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27686         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
27687         scaled addresses.
27689 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27691         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
27692         be used by the reg-alloc.
27694 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27696         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
27697         reg-alloc when having mul64 or mul32x16 instructions.
27698         (mulsidi3): Likewise.
27699         (umulsidi3): Likewise.
27700         (mulsi32x16): New pattern.
27701         (mulsi64): Likewise.
27702         (mulsidi64): Likewise.
27703         (umulsidi64): Likewise.
27704         (MUL32x16_REG): Define.
27705         (mul64_600): Use MUL32x16_REG.
27706         (mac64_600): Likewise.
27707         (umul64_600): Likewise.
27708         (umac64_600): Likewise.
27710 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
27712         * config/arc/arc.md (mulsi3_700): Make it commutative.
27714 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
27716         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
27717         type for movstouw.
27718         (*sign_extendsidi2_insn): Likewise for movstosw.
27720 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
27722         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
27723         the type of the input discriminant value.  Convert the
27724         discriminant value of signedness vary.
27726 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
27728         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
27729         Add to -Wall section.
27731 2017-06-01  Richard Biener  <rguenther@suse.de>
27733         PR middle-end/66313
27734         * fold-const.c (fold_plusminus_mult_expr): If the factored
27735         factor may be zero use a wrapping type for the inner operation.
27736         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
27737         and handle moved defs.
27738         (process_assignment): Properly guard the unary op case.  Return a
27739         tri-state indicating that moving the stmt before the call may allow
27740         to continue.  Pass through to_move.
27741         (find_tail_calls): Handle moving unrelated defs before
27742         the call.
27744 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
27746         PR target/80618
27747         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
27748         splitter result in the canonical way.
27750 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
27752         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
27753         also for 32bit target.  Update insn attributes.
27754         (zero-extendsidi2 splitter): Allow all registers for operand 1.
27756 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
27758         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
27759         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
27760         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
27761         (_mm_maskz_min_ss): New intrinsics.
27763 2017-05-31  Martin Liska  <mliska@suse.cz>
27765         * tree-vect-loop.c (vect_create_epilog_for_reduction):
27766         Change comment style to one we normally use.
27767         (vectorizable_reduction): Likewise.
27768         (vectorizable_induction): Likewise.
27769         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
27770         (vectorizable_call): Likewise.
27771         (vectorizable_simd_clone_call): Likewise.
27772         (vectorizable_conversion): Likewise.
27773         (vectorizable_assignment): Likewise.
27774         (vectorizable_shift): Likewise.
27775         (vectorizable_operation): Likewise.
27776         (vectorizable_store): Likewise.
27777         (vectorizable_load): Likewise.
27778         * tree-vectorizer.h: Likewise.
27780 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
27782         * passes.c (emergency_dump_function): New.
27783         * tree-pass.h (emergency_dump_function): Declare.
27784         * plugin.c (plugins_internal_error_function): Remove.
27785         * plugin.h (plugins_internal_error_function): Remove declaration.
27786         * toplev.c (internal_error_function): New static function.  Use it...
27787         (general_init): ...here.
27789 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
27791         * config/arc/arc.c (arc_print_operand): Handle constant operands.
27792         (arc_rtx_costs): Add costs for new patterns.
27793         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
27794         * config/arc/predicates.md: Add _1_2_3_operand predicate.
27796 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
27798         * tree-ssa-strlen.c (get_next_strinfo): New function.
27799         (get_stridx_plus_constant): Use it.
27800         (zero_length_string): Likewise.
27801         (adjust_related_strinfos): Likewise.
27802         (adjust_last_stmt): Likewise.
27804 2017-05-31  Richard Biener  <rguenther@suse.de>
27806         PR target/80880
27807         * config/i386/i386.c (ix86_expand_builtin): Remove assert
27808         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
27810 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
27812         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
27813         loop_vinfo argument and use of dependence distance vectors.
27814         Check instead whether the two references differ only in their
27815         initial value and assume that they have the same alignment if the
27816         difference is a multiple of the vector alignment.
27817         (vect_analyze_data_refs_alignment): Update call accordingly.
27819 2017-05-31  Martin Liska  <mliska@suse.cz>
27821         PR target/79155
27822         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
27824 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
27826         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
27827         (create_intersect_range_checks): Move from ...
27828         * tree-data-ref.c (create_intersect_range_checks_index)
27829         (create_intersect_range_checks): ... to here.
27830         (create_runtime_alias_checks): New function factored from ...
27831         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
27832         here.  Call above function.
27833         * tree-data-ref.h (create_runtime_alias_checks): New function.
27835 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
27837         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
27838         segment length for dr_b and compute it in wide_int.
27840 2017-05-31  Richard Biener  <rguenther@suse.de>
27842         PR tree-optimization/80906
27843         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
27844         and pass through iv_map.
27845         (copy_bb_and_scalar_dependences): Adjust.
27846         (translate_pending_phi_nodes): Likewise.
27847         (copy_loop_close_phi_args): Handle code-generating IVs instead
27848         of ICEing.
27850 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
27852         * diagnostic-color.c (color_dict): Add "type-diff".
27853         (parse_gcc_colors): Update comment.
27854         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
27855         -fdiagnostics-show-template-tree and -fno-elide-type.
27856         (GCC_COLORS): Add type-diff to example.
27857         (type-diff=): New.
27858         (-fdiagnostics-show-template-tree): New.
27859         (-fno-elide-type): New.
27860         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
27861         the pp_format_decoder callback.  Call any m_format_postprocessor's
27862         "handle" method.
27863         (pretty_printer::pretty_printer): Initialize
27864         m_format_postprocessor.
27865         (pretty_printer::~pretty_printer): Delete any
27866         m_format_postprocessor.
27867         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
27868         (class format_postprocessor): New class.
27869         (struct pretty_printer::format_decoder): Document the new parameters.
27870         (struct pretty_printer::m_format_postprocessor): New field.
27871         * tree-diagnostic.c (default_tree_printer): Update for new
27872         bool and const char ** params.
27873         * tree-diagnostic.h (default_tree_printer): Likewise.
27875 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
27877         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
27878         (lwa_operand): Delete rs6000_gen_cell_microcode test.
27879         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
27880         rs6000_gen_cell_microcode code.
27881         (rs6000_final_prescan_insn): Delete.
27882         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
27883         "warn-cell-microcode" entries.
27884         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
27885         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
27886         throughout.  Change cc_reg_not_micro_cr0_operand to
27887         cc_reg_not_cr0_operand throughout.
27888         (*extendhi<mode>2_noload): Delete.
27889         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
27890         (mwarn-cell-microcode): Delete.
27891         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
27892         -mgen-cell-microcode and -mwarn-cell-microcode.
27894 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
27896         PR target/80833
27897         * config/i386/constraints.md (Yd): New constraint.
27898         (Ye): Ditto.
27899         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
27900         and (?Yd, r) alternatives.  Update insn attributes.
27901         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
27902         and (?*Yd, r) alternatives.  Update insn attributes.
27903         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
27905 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
27907         * gimplify.c (gimplify_modify_expr): Don't create a
27908         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
27909         function.
27911 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
27913         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
27915 2017-05-30  Richard Biener  <rguenther@suse.de>
27917         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
27918         and reduc_def fields.
27919         (STMT_VINFO_REDUC_TYPE): New define.
27920         (STMT_VINFO_REDUC_DEF): Likewise.
27921         (vect_force_simple_reduction): Adjust prototype.
27922         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
27923         (vect_is_simple_reduction): Remove check_reduction argument.
27924         (vect_force_simple_reduction): Adjust and set
27925         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
27926         (vectorizable_reduction): Do not re-do reduction analysis
27927         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
27928         * tree-parloops.c (gather_scalar_reductions): Adjust.
27930 2017-05-30  Richard Biener  <rguenther@suse.de>
27932         PR middle-end/80901
27933         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
27934         split_edge code.
27936 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27938         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
27939         Introduce unknown_misalignment parameter and remove vf.
27940         (vect_peeling_hash_get_lowest_cost):
27941         Pass unknown_misalignment parameter.
27942         (vect_enhance_data_refs_alignment):
27943         Fix unsupportable data ref treatment.
27945 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27947         * tree-vect-data-refs.c (vect_get_data_access_cost):
27948         Workaround for SLP handling.
27949         (vect_enhance_data_refs_alignment):
27950         Compute costs for doing no peeling at all, compare to the best
27951         peeling costs so far and avoid peeling if cheaper.
27953 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27955         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
27956         Return peeling info and set costs to zero for unlimited cost
27957         model.
27958         (vect_enhance_data_refs_alignment): Also inspect all datarefs
27959         with unknown misalignment. Compute and costs for unknown
27960         misalignment, compare them to the costs for known misalignment
27961         and choose the cheapest for peeling.
27963 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27965         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
27966         (vect_get_peeling_costs_all_drs): Create function.
27967         (vect_peeling_hash_get_lowest_cost):
27968         Use vect_get_peeling_costs_all_drs.
27969         (vect_peeling_supportable): Create function.
27970         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
27972 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27974         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
27975         DR_HAS_NEGATIVE_STEP.
27976         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
27977         (vect_enhance_data_refs_alignment): Use.
27978         (vect_duplicate_ssa_name_ptr_info): Use.
27979         * tree-vectorizer.h (dr_misalignment): Use.
27980         (known_alignment_for_access_p): Use.
27982 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
27984         PR target/78838
27985         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
27986         .lowtext.
27987         (has_section_name): New function.
27989 2017-05-30  Martin Liska  <mliska@suse.cz>
27991         PR other/80909
27992         * auto-profile.c (get_function_decl_from_block): Fix
27993         parenthesis.
27995 2017-05-30  Richard Biener  <rguenther@suse.de>
27997         PR middle-end/80876
27998         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
28000 2017-05-30  Martin Liska  <mliska@suse.cz>
28002         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
28003         * dumpfile.h (struct dump_file_info): Remove ctors.
28005 2017-05-30  Martin Liska  <mliska@suse.cz>
28007         * predict.def: Fix GNU coding style.
28009 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
28011         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
28012         Mark 'to' argument with ATTRIBUTE_UNUSED.
28014 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
28016         * config/xtensa/xtensa.c (xtensa_emit_call): Use
28017         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
28018         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
28019         format string.
28021 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
28023         * doc/install.texi (Options specification): Restore entry of
28024         --enable-sjlj-exceptions.
28026 2017-05-27  Michael Eager  <eager@eagercon.com>
28028         Revert:
28029         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
28031         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
28033         * config/microblaze/microblaze.h
28034         (FIXED_REGISTERS): Update in macro.
28035         (CALL_USED_REGISTERS): Update in macro.
28037 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
28039         * doc/install.texi: Add links to macOS binary distributions.
28041 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
28043         PR bootstrap/80887
28044         Revert:
28045         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28047         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
28049 2017-05-26  Martin Liska  <mliska@suse.cz>
28051         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
28053 2017-05-26  Martin Liska  <mliska@suse.cz>
28055         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
28056         always leading ';; '.
28057         (dump_bb_info): Likewise.
28058         (brief_dump_cfg): Likewise.
28059         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
28060         * dumpfile.c: Remove usage of TDF_VERBOSE.
28061         * dumpfile.h (enum dump_kind): Likewise.
28062         (dump_gimple_bb_header): Do not use TDF_COMMENT.
28063         * print-tree.c (debug_verbose): Remove.
28064         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
28065         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
28066         * tree-diagnostic.c (default_tree_printer): Replace
28067         TDF_DIAGNOSTIC with TDF_SLIM.
28069 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28071         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
28072         in parameter loop, rather than loop_vinfo.
28073         (create_intersect_range_checks): Ditto.
28074         (vect_create_cond_for_alias_checks): Update call to above functions.
28076 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28078         PR tree-optimization/80815
28079         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
28080         for merging runtime alias checks.  Handle negative DR_STEPs.
28082 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28084         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
28085         Move from ...
28086         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
28087         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
28088         out code pruning runtime alias checks.
28089         * tree-data-ref.c (prune_runtime_alias_test_list): New function
28090         factored out from above.
28091         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
28092         Move from ...
28093         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
28094         ... to here.
28095         (prune_runtime_alias_test_list): New decalaration.
28097 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28099         * tree-vect-data-refs.c (compare_tree): Rename and move ...
28100         * tree-data-ref.c (data_ref_compare_tree): ... to here.
28101         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
28102         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
28103         (operator==, comp_dr_with_seg_len_pair): Ditto.
28104         (vect_prune_runtime_alias_test_list): Ditto.
28106 2017-05-26  Martin Liska  <mliska@suse.cz>
28108         PR ipa/80663
28109         * params.def: Bound partial-inlining-entry-probability param.
28111 2017-05-26  Marek Polacek  <polacek@redhat.com>
28113         PR sanitizer/80875
28114         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
28115         can be negated.
28117 2017-05-26  Richard Biener  <rguenther@suse.de>
28119         PR tree-optimization/80842
28120         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
28121         value.
28123 2017-05-26  Richard Biener  <rguenther@suse.de>
28125         PR tree-optimization/80844
28126         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
28128 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
28130         * doc/md.texi (Machine Constraints): Update x86 family
28131         machine constraints section to match 'config/i386/constraints.md'.
28133 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
28135         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
28137 2017-05-25  Nathan Sidwell  <nathan@acm.org>
28139         * doc/invoke.texi (--enable-languages): Update documentation.
28141 2017-05-25  Martin Liska  <mliska@suse.cz>
28143         * dumpfile.c: Add TDF_FOLDING.
28144         * dumpfile.h (enum dump_kind): Likewise.
28145         * genmatch.c (dt_simplify::gen_1): Use it.
28147 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28149         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
28151 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28153         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
28154         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
28156 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28158         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
28159         * match.pd (X == C): Rewrite it here.
28160         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
28161         with_certain_nonzero_bits2): New predicates.
28162         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
28164 2017-05-24  Nathan Sidwell  <nathan@acm.org>
28166         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
28167         avoid warning.
28169         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
28170         warning.
28172 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
28174         * config/powerpcspe: New port.  Files are copied from the rs6000
28175         port, with "rs6000" in filenames replaced by "powerpcspe".
28177 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
28179         PR rtl-optimization/80754
28180         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
28182 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
28184         * config/sparc/sparc.md (length): Return the correct value for -mflat
28185         sibcalls to match output_sibcall.
28187 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
28189         PR bootstrap/80860
28190         PR bootstrap/80843
28191         * config/rs6000/rs6000.c (struct machine_function): Add new field
28192         n_components.
28193         (rs6000_get_separate_components): Init that field, use it.
28194         (rs6000_components_for_bb): Use the field.
28196 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28198         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
28200 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
28202         PR middle-end/80823
28203         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
28205 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28207         PR target/80725
28208         * config/s390/s390.c (s390_check_qrst_address): Check incoming
28209         address against address_operand predicate.
28210         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
28212 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
28214         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
28215         parameters passed indirectly.
28217 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
28219         * config/i386/i386.md (*movdi_internal): Remove SSE4
28220         alternative 18 (?r, *v).  Update insn attributes.
28221         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
28222         Update insn attributes.
28223         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
28224         Update insn attributes.
28225         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
28226         alternative 1 (r, v). Remove isa attribute.
28227         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
28228         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
28229         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
28231 2017-05-23  Tom de Vries  <tom@codesourcery.com>
28233         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
28234         dg-line directive.
28236 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28238         * cgraphunit.c (symbol_table::process_new_functions): Update.
28239         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
28240         (inline_generate_summary): Rename to ...
28241         (ipa_fn_summary_generate): ... this one.
28242         (inline_read_summary): Rename to ...
28243         (ipa_fn_summary_read): ... this one.
28244         (inline_write_summary): Rename to ...
28245         (ipa_fn_summary_write): ... this one.
28246         (inline_free_summary): Rename to ...
28247         (ipa_free_fn_summary): ... this one.
28248         (pass_data_local_fn_summary, pass_local_fn_summary,
28249         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
28250         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
28251         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
28252         make_pass_ipa_fn_summary): New.
28253         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
28254         inline_write_summary, inline_free_summary): Remove.
28255         (ipa_free_fn_summary) : New.
28256         * ipa-inline.c (ipa_inline): Update.
28257         (pass_ipa_inline): Do not generate summaries.
28258         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
28259         Remove.
28260         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
28261         and add pass_ipa_fn_summary.
28262         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
28263         New.
28264         (make_pass_inline_parameters): Remove.
28266 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
28268         * omp-low.c (struct omp_context): Remove "default_kind" member.
28269         Adjust all users.
28271         * omp-offload.c (execute_oacc_device_lower): Remove the
28272         parallelism dimensions function attributes for unparallelized
28273         OpenACC kernels constructs.
28275 2017-05-23  Martin Liska  <mliska@suse.cz>
28277         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
28278         functions.
28279         (cgraph_edge::make_speculative): Likewise.
28280         (cgraph_edge::resolve_speculation): Likewise.
28281         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
28282         (cgraph_node::dump): Likewise.
28283         * cgraph.h: Likewise.
28284         * cgraphunit.c (analyze_functions): Likewise.
28285         (symbol_table::compile): Likewise.
28286         * ipa-cp.c (print_all_lattices): Likewise.
28287         (determine_versionability): Likewise.
28288         (initialize_node_lattices): Likewise.
28289         (ipcp_verify_propagated_values): Likewise.
28290         (estimate_local_effects): Likewise.
28291         (update_profiling_info): Likewise.
28292         (create_specialized_node): Likewise.
28293         (perhaps_add_new_callers): Likewise.
28294         (decide_about_value): Likewise.
28295         (decide_whether_version_node): Likewise.
28296         (identify_dead_nodes): Likewise.
28297         (ipcp_store_bits_results): Likewise.
28298         * ipa-devirt.c (dump_targets): Likewise.
28299         (ipa_devirt): Likewise.
28300         * ipa-icf.c (sem_item::dump): Likewise.
28301         (sem_function::equals): Likewise.
28302         (sem_variable::equals): Likewise.
28303         (sem_item_optimizer::read_section): Likewise.
28304         (sem_item_optimizer::execute): Likewise.
28305         (congruence_class::dump): Likewise.
28306         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
28307         (dump_inline_summary): Likewise.
28308         (estimate_node_size_and_time): Likewise.
28309         (inline_analyze_function): Likewise.
28310         * ipa-inline-transform.c (inline_call): Likewise.
28311         * ipa-inline.c (report_inline_failed_reason): Likewise.
28312         (want_early_inline_function_p): Likewise.
28313         (edge_badness): Likewise.
28314         (update_edge_key): Likewise.
28315         (inline_small_functions): Likewise.
28316         * ipa-profile.c (ipa_profile): Likewise.
28317         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
28318         (ipa_make_edge_direct_to_target): Likewise.
28319         (remove_described_reference): Likewise.
28320         (ipa_impossible_devirt_target): Likewise.
28321         (propagate_controlled_uses): Likewise.
28322         (ipa_print_node_params): Likewise.
28323         (ipcp_transform_function): Likewise.
28324         * ipa-pure-const.c (pure_const_read_summary): Likewise.
28325         (propagate_pure_const): Likewise.
28326         * ipa-reference.c (generate_summary): Likewise.
28327         (read_write_all_from_decl): Likewise.
28328         (propagate): Likewise.
28329         (ipa_reference_read_optimization_summary): Likewise.
28330         * ipa-utils.c (ipa_merge_profiles): Likewise.
28331         * ipa.c (walk_polymorphic_call_targets): Likewise.
28332         (symbol_table::remove_unreachable_nodes): Likewise.
28333         (ipa_single_use): Likewise.
28334         * passes.c (execute_todo): Likewise.
28335         * predict.c (drop_profile): Likewise.
28336         * symtab.c (symtab_node::get_dump_name): New function.
28337         (symtab_node::dump_name): Likewise.
28338         (symtab_node::dump_asm_name): Likewise.
28339         (symtab_node::dump_references): Likewise.
28340         (symtab_node::dump_referring): Likewise.
28341         (symtab_node::dump_base): Likewise.
28342         (symtab_node::debug_symtab): Likewise.
28343         * tree-sra.c (convert_callers_for_node): Likewise.
28344         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
28345         * value-prof.c (init_node_map): Likewise.
28347 2017-05-23  Martin Liska  <mliska@suse.cz>
28349         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
28350         and symtab_node::debug_symtab to symbol_table::debug.
28351         * cgraphunit.c (analyze_functions): Use the renamed function.
28352         (symbol_table::compile): Likewise.
28353         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
28354         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
28355         * passes.c (execute_todo): Likewise.
28356         * symtab.c (symbol_table::dump): New function.
28357         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
28359 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28361         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
28362         that nonconst implies exec.
28364 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28366         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
28367         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
28368         (inline_edge_summary_vec): Turn into ...
28369         (ipa_call_summaries): ... this one.
28370         (redirect_to_unreachable, edge_set_predicate,
28371         evaluate_properties_for_edge, inline_summary_alloc,
28372         reset_ipa_call_summary, reset_inline_summary,
28373         inline_summary_t::duplicate): Update.
28374         (inline_edge_duplication_hook): Turn to ...
28375         (ipa_call_summary_t::duplicate): ... this one.
28376         (inline_edge_removal_hook): Turn to ...
28377         (ipa_call_summary_t::remove): ... this one.
28378         (dump_inline_edge_summary): Turn to ...
28379         (dump_ipa_call_summary): ... this one.
28380         (estimate_function_body_sizes): Update.
28381         (inline_update_callee_summaries): Update.
28382         (remap_edge_change_prob): Update.
28383         (remap_edge_summaries): Update.
28384         (inline_merge_summary): Update.
28385         (do_estimate_edge_time): Update.
28386         (inline_generate_summary): Update.
28387         (inline_read_section): Update.
28388         (inline_read_summary): Update.
28389         (inline_free_summary): Update.
28390         * ipa-inline.c (can_inline_edge_p): Update.
28391         (compute_inlined_call_time): Update.
28392         (want_inline_small_function_p): Update.
28393         (edge_badness): Update.
28394         (early_inliner): Update.
28395         * ipa-inline.h (inline_edge_summary): Turn to ...
28396         (ipa_call_summary): ... this one.
28397         (ipa_call_summary_t): New class.
28398         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
28399         (ipa_call_summaries): New.
28400         (inline_edge_summary): Remove.
28401         (estimate_edge_growth): Update.
28402         * ipa-profile.c (ipa_propagate_frequency_1): Update.
28403         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28404         * ipa-split.c (execute_split_functions): Update.
28405         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
28407 2017-05-23  Tom de Vries  <tom@codesourcery.com>
28409         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
28410         attributes): Document rdrand effective target.
28412 2017-05-23  Tom de Vries  <tom@codesourcery.com>
28414         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
28415         attributes): Sort alphabetically.
28417 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
28419         * config/avr/genmultilib.awk: Use gsub instead of gensub.
28421 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
28423         PR target/80718
28424         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
28425         V2DF/V2DI splat into two separate patterns, one that handles
28426         registers, and the other that only handles memory.  Drop support
28427         for splatting from a GPR on ISA 2.07 and then splitting the
28428         splat into direct move and splat.
28429         (vsx_splat_<mode>_reg): Likewise.
28430         (vsx_splat_<mode>_mem): Likewise.
28432 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
28434         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
28436 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
28438         PR middle-end/80809
28439         * omp-low.c (finish_taskreg_remap): New function.
28440         (finish_taskreg_scan): If unit size of ctx->record_type
28441         is non-constant, unshare the size expression and replace
28442         decls in it with possible outer var refs.
28444         PR middle-end/80809
28445         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
28446         GOVD_SHARED rather than GOVD_PRIVATE with it.
28447         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
28448         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
28450         PR middle-end/80853
28451         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
28452         as last argument to build_outer_var_ref for pointer bases of array
28453         section reductions.
28455 2017-05-19  Martin Sebor  <msebor@redhat.com>
28457         * print-tree.c (print_node): Print DECL_READ_P flag.
28459 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28461         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
28462         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
28463         * cgraph.c: Likewise.
28464         * cgraphunit.c: Likewise.
28465         * gengtype.c: Likewise.
28466         * ipa-cp.c: Likewise.
28467         * ipa-devirt.c: Likewise.
28468         * ipa-icf.c: Likewise.
28469         * ipa-predicate.c: Likewise.
28470         * ipa-profile.c: Likewise.
28471         * ipa-prop.c: Likewise.
28472         * ipa-split.c: Likewise.
28473         * ipa.c: Likewise.
28474         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
28475         edge_predicate_pool, dump_inline_hints,
28476         inline_summary::account_size_time, redirect_to_unreachable,
28477         edge_set_predicate, set_hint_predicate,
28478         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
28479         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
28480         inline_summary_t::remove, remap_hint_predicate_after_duplication,
28481         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
28482         ipa_call_summary_t::remove, initialize_growth_caches,
28483         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
28484         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
28485         mark_modified, unmodified_parm_1, unmodified_parm,
28486         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
28487         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
28488         compute_bb_predicates, will_be_nonconstant_expr_predicate,
28489         will_be_nonconstant_predicate, record_modified_bb_info,
28490         get_minimal_bb, record_modified, param_change_prob,
28491         phi_result_unknown_predicate, predicate_for_phi_result,
28492         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
28493         estimate_function_body_sizes, compute_inline_parameters,
28494         compute_inline_parameters_for_curren, pass_data_inline_parameters,
28495         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
28496         inline_update_callee_summaries, remap_edge_change_prob,
28497         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
28498         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
28499         inline_analyze_function, inline_summary_t::insert,
28500         inline_generate_summary, read_ipa_call_summary, inline_read_section,
28501         inline_read_summary, write_ipa_call_summary, inline_write_summary,
28502         inline_free_summary): Move to ipa-fnsummary.h
28503         (predicate_t): Remove.
28504         * ipa-fnsummary.c: New file.
28505         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
28506         (enum inline_hints_vals, inline_hints, agg_position_info,
28507         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
28508         inline_summaries, ipa_call_summary, ipa_call_summary_t,
28509         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
28510         dump_inline_summary, dump_inline_hints, inline_generate_summary,
28511         inline_read_summary, inline_write_summary, inline_free_summary,
28512         inline_analyze_function, initialize_inline_failed,
28513         inline_merge_summary, inline_update_overall_summary,
28514         compute_inline_parameters): Move to ipa-fnsummary.h
28515         * ipa-fnsummary.h: New file.
28516         * ipa-inline-transform.h: Include ipa-inline.h.
28517         * ipa-inline.c: LIkewise.
28519 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28521         * ipa-inline.c (edge_badness): Use inlined_time instead of
28522         inline_summaries->get.
28524 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28526         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
28528 2017-05-22  Nathan Sidwell  <nathan@acm.org>
28530         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
28531         (fdump-lang): Document 'raw' option.
28532         * dumpfile.h (TDI_tu): Delete.
28533         * dumpfile.c (dump_files): Remove translation-unit.
28534         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
28536 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
28538         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
28539         command option from $(AWK) call.
28540         * config/avr/genmultilib.awk: Simplify and rewrite so that it
28541         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
28542         [FORMAT]: Remove handling of variable.
28543         * config/avr/t-multilib: Regenerate.
28545 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28547         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
28548         self_time.
28549         (dump_inline_summary): Do not print self_time.
28550         (estimate_function_body_sizes): Do not set self_time.
28551         (compute_inline_parameters): Likewise.
28552         (inline_read_section, inline_write_summary): Do not stream self_time.
28553         * ipa-inline.h (inline_summary): Drop self_time.
28555 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28557         * ipa-inline-analysis.c (account_size_time): Rename to ...
28558         (inline_summary::account_size_time): ... this one.
28559         (reset_ipa_call_summary): Turn to ...
28560         (ipa_call_summary::reset): ... this one.
28561         (reset_inline_summary): Turn to ...
28562         (inline_summary::reset): ... this one.
28563         (inline_summary_t::remove): Update.
28564         (inline_summary_t::duplicate): Update.
28565         (ipa_call_summary_t::remove): Update.
28566         (dump_inline_summary): Update.
28567         (estimate_function_body_sizes): Update.
28568         (compute_inline_parameters): Update.
28569         (estimate_node_size_and_time): Update.
28570         (inline_merge_summary): Update.
28571         (inline_update_overall_summary): Update.
28572         (inline_read_section): Update.
28573         (inline_write_summary): Update.
28574         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
28575         add account_size_time and reset member functions.
28576         (ipa_call_summary): Add reset function.
28577         * ipa-predicate.h (predicate::operator &): Constify.
28579 2017-05-22  Richard Biener  <rguenther@suse.de>
28581         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
28583 2017-05-19  Jason Merrill  <jason@redhat.com>
28585         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
28587 2017-05-19  Marek Polacek  <polacek@redhat.com>
28589         PR sanitizer/80800
28590         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
28591         TYPE_OVERFLOW_WRAPS checks.
28593 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
28595         * tree-core.h (enum omp_clause_default_kind): Add
28596         "OMP_CLAUSE_DEFAULT_PRESENT".
28597         * tree-pretty-print.c (dump_omp_clause): Handle it.
28598         * gimplify.c (enum gimplify_omp_var_data): Add
28599         "GOVD_MAP_FORCE_PRESENT".
28600         (gimplify_adjust_omp_clauses_1): Map it to
28601         "GOMP_MAP_FORCE_PRESENT".
28602         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
28604         * gimplify.c (oacc_default_clause): Clarify.
28606 2017-05-19  Nathan Sidwell  <nathan@acm.org>
28608         LANG_HOOK_REGISTER_DUMPS
28609         * toplev.c (general_init): Call register dump lang hook.
28610         * doc/invoke.texi: Document -fdump-lang option family.
28611         * dumpfile.c (dump_files): Remove class dump here.
28612         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
28613         * dumpfile.h (tree_dump_index): Remove TDI_class.
28614         * langhooks-def.h (lhd_register_dumps): Declare.
28615         (LANG_HOOKS_REGISTER_DUMPS): Define.
28616         (LANG_HOOKS_INITIALIZER): Add it.
28617         * langhooks.c (lhd_register_dumps): Define.
28618         * langhooks.h (struct lang_hooks): Add register_dumps.
28620 2017-05-19  Nathan Sidwell  <nathan@acm.org>
28622         * context.h (context::set_passes): New.
28623         * context.c (context::context): Do not create pass manager.
28624         * toplev.c (general_init): Create pass manager here.
28626 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
28628         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
28629         use this splitter if two add or or instructions would also work for
28630         the constant we want to generate.
28632 2017-05-19  Richard Biener  <rguenther@suse.de>
28634         PR build/80821
28635         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
28636         predicate evaluation.
28638 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
28640         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
28641         add ctor.
28642         * ipa-inline.c (want_inline_small_function_p): Do not cast to
28643         unsigned.
28645 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
28647         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
28648         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
28649         (inline_edge_summary_vec): Turn into ...
28650         (ipa_call_summaries): ... this one.
28651         (redirect_to_unreachable, edge_set_predicate,
28652         evaluate_properties_for_edge, inline_summary_alloc,
28653         reset_ipa_call_summary, reset_inline_summary,
28654         inline_summary_t::duplicate): Update.
28655         (inline_edge_duplication_hook): Turn to ...
28656         (ipa_call_summary_t::duplicate): ... this one.
28657         (inline_edge_removal_hook): Turn to ...
28658         (ipa_call_summary_t::remove): ... this one.
28659         (dump_inline_edge_summary): Turn to ...
28660         (dump_ipa_call_summary): ... this one.
28661         (estimate_function_body_sizes): Update.
28662         (inline_update_callee_summaries): Update.
28663         (remap_edge_change_prob): Update.
28664         (remap_edge_summaries): Update.
28665         (inline_merge_summary): Update.
28666         (do_estimate_edge_time): Update.
28667         (inline_generate_summary): Update.
28668         (inline_read_section): Update.
28669         (inline_read_summary): Update.
28670         (inline_free_summary): Update.
28671         * ipa-inline.c (can_inline_edge_p): Update.
28672         (compute_inlined_call_time): Update.
28673         (want_inline_small_function_p): Update.
28674         (edge_badness): Update.
28675         (early_inliner): Update.
28676         * ipa-inline.h (inline_edge_summary): Turn to ...
28677         (ipa_call_summary): ... this one.
28678         (ipa_call_summary_t): New class.
28679         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
28680         (ipa_call_summaries): New.
28681         (inline_edge_summary): Remove.
28682         (estimate_edge_growth): Update.
28683         * ipa-profile.c (ipa_propagate_frequency_1): Update.
28684         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28685         * ipa-split.c (execute_split_functions): Update.
28686         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
28688 2017-05-19  Richard Biener  <rguenther@suse.de>
28690         PR middle-end/80764
28691         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
28693 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
28695         * config/rs6000/rs6000.c (struct machine_function): Add field
28696         fpr_is_wrapped_separately.
28697         (rs6000_get_separate_components): Use 64 components.  Handle the
28698         new FPR components.
28699         (rs6000_components_for_bb): Handle the FPR components.
28700         (rs6000_emit_prologue_components): Handle the FPR components.
28701         (rs6000_emit_epilogue_components): Handle the FPR components.
28702         (rs6000_set_handled_components): Handle the FPR components.
28703         (rs6000_emit_prologue): Don't output prologue code for those FPRs
28704         that are already separately shrink-wrapped.
28705         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
28706         that are already separately shrink-wrapped.
28708 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
28710         PR target/80510
28711         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
28712         New predicate.
28714         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
28715         (define_peephole2 for Altivec d-form load): Add peepholes to catch
28716         cases where the register allocator uses a move and an offsettable
28717         memory operation to/from a FPR register on ISA 2.06/2.07.
28718         (define_peephole2 for Altivec d-form store): Likewise.
28720 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
28722         PR target/80799
28723         * config/i386/mmx.md (*mov<mode>_internal): Enable
28724         alternatives 11, 12, 13 and 14 also for 32bit targets.
28725         Remove alternatives 15, 16, 17 and 18.
28726         * config/i386/sse.md (vec_concatv2di): Change
28727         alternative (!x, *y) to (x, ?!*Yn).
28729 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
28731         * dumpfile.h (enum dump_kind): Remove stray comma.
28733 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
28735         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
28736         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
28737         predicate::num_conditions
28738         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
28739         (CHANGED): turn into predicate::changed.
28740         (agg_position_info): Move to ipa-predicate.h
28741         (add_condition, predicate::add_clause, predicate::operator &=,
28742         predicate::or_with, predicate::evaluate, predicate::probability,
28743         dump_condition, dump_clause, predicate::dump,
28744         predicate::remap_after_duplication, predicate::remap_after_inlining,
28745         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
28746         (evaluate_conditions_for_known_args): Update.
28747         (set_cond_stmt_execution_predicate): Update.
28748         * ipa-inline.h: Include ipa-predicate.h
28749         (condition, inline_param_summary, conditions, agg_position_info,
28750         predicate): Move to ipa-predicate.h
28751         * ipa-predicate.c: New file.
28752         * ipa-predicate.h: New file.
28754 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
28756         * final.c (leaf_function_p): Check we are not in a sequence.
28758 2017-05-18  Martin Liska  <mliska@suse.cz>
28760         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
28761         * dumpfile.c (dump_register): Use new enum dump_kind.
28762         (get_dump_file_name): Likewise.
28763         (dump_enable_all): Likewise.
28764         (dump_switch_p_1): Likewise.
28765         (enable_rtl_dump_file): Remove usage of TDF_RTL.
28766         * dumpfile.h (enum dump_kind): New enum type.
28767         (struct dump_file_info): Create constructor and
28768         format fields and comments.
28769         * passes.c (pass_manager::register_one_dump_file):
28770         Use num dump_kind.
28771         * statistics.c (statistics_early_init): Likewise.
28772         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
28773         TDF_TREE with TDF_SLIM.
28774         (gather_memory_references_ref): Likewise.
28776 2017-05-18  Martin Liska  <mliska@suse.cz>
28778         * vec.h (struct vnull): Use it.
28780 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
28782         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
28783         (true_predicate, false_predicate, true_predicate_p,
28784         false_predicate_p): Remove.
28785         (single_cond_predicate, not_inlined_predicate): Turn to member function
28786         in ipa-inline.h
28787         (add_condition): Update.
28788         (add_clause): Turn to...
28789         (predicate::add_clause): ... this one; update; allow passing NULL
28790         as parameter.
28791         (and_predicates): Turn to ...
28792         (predicate::operator &=): ... this one.
28793         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
28794         (or_predicates): Turn to ...
28795         (predicate::or_with): ... this one.
28796         (evaluate_predicate): Turn to ...
28797         (predicate::evaluate): ... this one.
28798         (predicate_probability): Turn to ...
28799         (predicate::probability): ... this one.
28800         (dump_condition): Update.
28801         (dump_predicate): Turn to ...
28802         (predicate::dump): ... this one.
28803         (account_size_time): Update.
28804         (edge_set_predicate): Update.
28805         (set_hint_predicate): UPdate.
28806         (evaluate_conditions_for_known_args): Update.
28807         (evaluate_properties_for_edge): Update.
28808         (remap_predicate_after_duplication): Turn to...
28809         (predicate::remap_after_duplication): ... this one.
28810         (remap_hint_predicate_after_duplication): Update.
28811         (inline_summary_t::duplicate): UPdate.
28812         (dump_inline_edge_summary): Update.
28813         (dump_inline_summary): Update.
28814         (set_cond_stmt_execution_predicate): Update.
28815         (set_switch_stmt_execution_predicate): Update.
28816         (compute_bb_predicates): Update.
28817         (will_be_nonconstant_expr_predicate): Update.
28818         (will_be_nonconstant_predicate): Update.
28819         (phi_result_unknown_predicate): Update.
28820         (predicate_for_phi_result): Update.
28821         (array_index_predicate): Update.
28822         (estimate_function_body_sizes): Update.
28823         (estimate_node_size_and_time): Update.
28824         (estimate_ipcp_clone_size_and_time): Update.
28825         (remap_predicate): Rename to ...
28826         (predicate::remap_after_inlining): ... this one.
28827         (remap_hint_predicate): Update.
28828         (inline_merge_summary): Update.
28829         (inline_update_overall_summary): Update.
28830         (estimate_size_after_inlining): Update.
28831         (read_predicate): Rename to ...
28832         (predicate::stream_in): ... this one.
28833         (read_inline_edge_summary): Update.
28834         (write_predicate): Rename to ...
28835         (predicate::stream_out): ... this one.
28836         (write_inline_edge_summary): Update.
28837         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
28838         (clause_t): Turn to uint32_t
28839         (predicate): Turn to class; implement constructor and operators
28840         ==, !=, &
28841         (size_time_entry): Update.
28842         (inline_summary): Update.
28843         (inline_edge_summary): Update.
28845 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
28847         * fold-const.c (fold_binary_loc): Move transformation...
28848         * match.pd (C - X CMP X): ... here.
28850 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
28852         * config/sparc/sparc.c (sparc_option_override): Set function
28853         alignment for -mcpu=niagara7 to 64 to match the I$ line.
28854         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
28855         latency to 1.
28856         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
28857         latency to 2.
28858         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
28860 2017-05-18  Marek Polacek  <polacek@redhat.com>
28862         PR sanitizer/80797
28863         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
28864         (pass_ubsan::execute): Call gimple_assign_single_p instead of
28865         gimple_assign_load_p.
28867 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
28869         PR middle-end/80692
28870         * real.c (do_compare): Give decimal_do_compare preference over
28871         comparing just the signs.
28873 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
28875         * doc/md.texi (Canonicalization of Instructions): Describe the
28876         canonical form of instructions that inherently set a condition
28877         code register.
28879 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
28881         PR middle-end/80775
28882         * tree-cfg.c: Move deletion of unreachable case statements to after
28883         the merging of consecutive case labels.
28885 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28887         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
28888         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
28889         restoring of callee-saved registers.
28891 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
28893         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
28894         * config/visium/visium.c (single_set_and_flags): Likewise.
28895         * config/visium/visium.md (Substitutions): Likewise.
28897 2017-05-17  Martin Liska  <mliska@suse.cz>
28899         * cfg.c: Introduce dump_flags_t type and
28900         use it instead of int type.
28901         * cfg.h: Likewise.
28902         * cfghooks.c: Likewise.
28903         * cfghooks.h (struct cfg_hooks): Likewise.
28904         * cfgrtl.c: Likewise.
28905         * cfgrtl.h: Likewise.
28906         * cgraph.c (cgraph_node::get_body): Likewise.
28907         * coretypes.h: Likewise.
28908         * domwalk.c: Likewise.
28909         * domwalk.h: Likewise.
28910         * dumpfile.c (struct dump_option_value_info): Likewise.
28911         (dump_enable_all): Likewise.
28912         (dump_switch_p_1): Likewise.
28913         (opt_info_switch_p): Likewise.
28914         * dumpfile.h (enum tree_dump_index): Likewise.
28915         (struct dump_file_info): Likewise.
28916         * genemit.c: Likewise.
28917         * generic-match-head.c: Likewise.
28918         * gengtype.c (open_base_files): Likewise.
28919         * gimple-pretty-print.c: Likewise.
28920         * gimple-pretty-print.h: Likewise.
28921         * graph.c (print_graph_cfg): Likewise.
28922         * graphite-scop-detection.c (dot_all_sese): Likewise.
28923         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28924         * loop-unroll.c (report_unroll): Likewise.
28925         * passes.c (pass_manager::register_one_dump_file): Likewise.
28926         * print-tree.c: Likewise.
28927         * statistics.c: Likewise.
28928         * tree-cfg.c: Likewise.
28929         * tree-cfg.h: Likewise.
28930         * tree-dfa.c: Likewise.
28931         * tree-dfa.h: Likewise.
28932         * tree-dump.c (dump_function): Likewise.
28933         * tree-dump.h (struct dump_info): Likewise.
28934         * tree-pretty-print.c: Likewise.
28935         * tree-pretty-print.h: Likewise.
28936         * tree-ssa-live.c: Likewise.
28937         * tree-ssa-live.h: Likewise.
28938         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
28939         * tree-vect-loop.c: Likewise.
28940         * tree-vect-slp.c: Likewise.
28942 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
28943             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28945         PR tree-optimization/80457
28946         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
28947         of all arguments to a statement as scalar_to_vec operations.
28948         (vectorizable_call): Adjust call to vect_model_simple_cost for
28949         new parameter.
28950         (vectorizable_conversion): Likewise.
28951         (vectorizable_assignment): Likewise.
28952         (vectorizable_shift): Likewise.
28953         (vectorizable_operation): Likewise.
28954         (vectorizable_comparison): Likewise.
28955         (vect_is_simple_cond): Record the def types for operands.
28956         (vectorizable_condition): Likewise, call vect_model_simple_cost.
28957         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
28958         for statement argument count.
28960 2017-05-16  Carl Love  <cel@us.ibm.com>
28962         * config/rs6000/rs6000-c: Add support for built-in functions
28963         vector unsigned long long vec_bperm (vector unsigned long long,
28964                                              vector unsigned char)
28965         vector signed long long vec_mule (vector signed int,
28966                                           vector signed int)
28967         vector unsigned long long vec_mule (vector unsigned int,
28968                                             vector unsigned int)
28969         vector signed long long vec_mulo (vector signed int,
28970                                           vector signed int)
28971         vector unsigned long long vec_mulo (vector unsigned int,
28972                                             vector unsigned int)
28973         vector signed char vec_sldw (vector signed char,
28974                                      vector signed char,
28975                                      const int)
28976         vector unsigned char vec_sldw (vector unsigned char,
28977                                        vector unsigned char,
28978                                        const int)
28979         vector signed short vec_sldw (vector signed short,
28980                                       vector signed short,
28981                                       const int)
28982         vector unsigned short vec_sldw (vector unsigned short,
28983                                         vector unsigned short,
28984                                         const int)
28985         vector signed int vec_sldw (vector signed int,
28986                                     vector signed int,
28987                                     const int)
28988         vector unsigned int vec_sldw (vector unsigned int,
28989                                       vector unsigned int,
28990                                       const int)
28991         vector signed long long vec_sldw (vector signed long long,
28992                                           vector signed long long,
28993                                           const int)
28994         vector unsigned long long vec_sldw (vector unsigned long long,
28995                                             vector unsigned long long,
28996                                             const int)
28997         * config/rs6000/rs6000-c: Add support for built-in functions
28998         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
28999         * config/rs6000/altivec.h: Add defintion for vec_sldw.
29000         * doc/extend.texi: Update the built-in documentation for the
29001         new built-in functions.
29003 2017-05-16  Marek Polacek  <polacek@redhat.com>
29005         PR sanitizer/80536
29006         PR sanitizer/80386
29007         * tree.c (save_expr): Don't fold the expression.
29009 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
29011         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
29012         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
29013         and (?*y,m).  Update insn attributes.
29015 2017-05-16  Martin Liska  <mliska@suse.cz>
29017         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
29018         flags argument of print_gimple_stmt, print_gimple_expr,
29019         print_generic_stmt and print_generic_expr.
29020         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
29021         * coretypes.h: Likewise.
29022         * except.c (dump_eh_tree): Likewise.
29023         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
29024         * gimple-pretty-print.h: Likewise.
29025         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
29026         (backprop::push_to_worklist): Likewise.
29027         (backprop::pop_from_worklist): Likewise.
29028         (backprop::process_use): Likewise.
29029         (backprop::intersect_uses): Likewise.
29030         (note_replacement): Likewise.
29031         * gimple-ssa-store-merging.c
29032         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
29033         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
29034         (pass_store_merging::execute): Likewise.
29035         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
29036         (ssa_base_cand_dump_callback): Likewise.
29037         (dump_incr_vec): Likewise.
29038         (replace_refs): Likewise.
29039         (replace_mult_candidate): Likewise.
29040         (create_add_on_incoming_edge): Likewise.
29041         (create_phi_basis): Likewise.
29042         (insert_initializers): Likewise.
29043         (all_phi_incrs_profitable): Likewise.
29044         (introduce_cast_before_cand): Likewise.
29045         (replace_one_candidate): Likewise.
29046         * gimplify.c (gimplify_expr): Likewise.
29047         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
29048         (set_rename): Likewise.
29049         (rename_uses): Likewise.
29050         (copy_loop_phi_nodes): Likewise.
29051         (add_close_phis_to_merge_points): Likewise.
29052         (copy_loop_close_phi_args): Likewise.
29053         (copy_cond_phi_args): Likewise.
29054         (graphite_copy_stmts_from_block): Likewise.
29055         (translate_pending_phi_nodes): Likewise.
29056         * graphite-poly.c (print_pdr): Likewise.
29057         (dump_gbb_cases): Likewise.
29058         (dump_gbb_conditions): Likewise.
29059         (print_scop_params): Likewise.
29060         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
29061         (build_cross_bb_scalars_use): Likewise.
29062         (gather_bbs::before_dom_children): Likewise.
29063         * hsa-dump.c (dump_hsa_immed): Likewise.
29064         * ipa-cp.c (print_ipcp_constant_value): Likewise.
29065         (get_replacement_map): Likewise.
29066         * ipa-inline-analysis.c (dump_condition): Likewise.
29067         (estimate_function_body_sizes): Likewise.
29068         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
29069         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
29070         * ipa-prop.c (ipa_dump_param): Likewise.
29071         (ipa_print_node_jump_functions_for_edge): Likewise.
29072         (ipa_modify_call_arguments): Likewise.
29073         (ipa_modify_expr): Likewise.
29074         (ipa_dump_param_adjustments): Likewise.
29075         (ipa_dump_agg_replacement_values): Likewise.
29076         (ipcp_modif_dom_walker::before_dom_children): Likewise.
29077         * ipa-pure-const.c (check_stmt): Likewise.
29078         (pass_nothrow::execute): Likewise.
29079         * ipa-split.c (execute_split_functions): Likewise.
29080         * omp-offload.c (dump_oacc_loop_part): Likewise.
29081         (dump_oacc_loop): Likewise.
29082         * trans-mem.c (tm_log_emit): Likewise.
29083         (tm_memopt_accumulate_memops): Likewise.
29084         (dump_tm_memopt_set): Likewise.
29085         (dump_tm_memopt_transform): Likewise.
29086         * tree-cfg.c (gimple_verify_flow_info): Likewise.
29087         (print_loop): Likewise.
29088         * tree-chkp-opt.c (chkp_print_addr): Likewise.
29089         (chkp_gather_checks_info): Likewise.
29090         (chkp_get_check_result): Likewise.
29091         (chkp_remove_check_if_pass): Likewise.
29092         (chkp_use_outer_bounds_if_possible): Likewise.
29093         (chkp_reduce_bounds_lifetime): Likewise.
29094         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
29095         (chkp_mark_completed_bounds): Likewise.
29096         (chkp_register_incomplete_bounds): Likewise.
29097         (chkp_mark_invalid_bounds): Likewise.
29098         (chkp_maybe_copy_and_register_bounds): Likewise.
29099         (chkp_build_returned_bound): Likewise.
29100         (chkp_get_bound_for_parm): Likewise.
29101         (chkp_build_bndldx): Likewise.
29102         (chkp_get_bounds_by_definition): Likewise.
29103         (chkp_generate_extern_var_bounds): Likewise.
29104         (chkp_get_bounds_for_decl_addr): Likewise.
29105         * tree-chrec.c (chrec_apply): Likewise.
29106         * tree-data-ref.c (dump_data_reference): Likewise.
29107         (dump_subscript): Likewise.
29108         (dump_data_dependence_relation): Likewise.
29109         (analyze_overlapping_iterations): Likewise.
29110         * tree-inline.c (expand_call_inline): Likewise.
29111         (tree_function_versioning): Likewise.
29112         * tree-into-ssa.c (dump_defs_stack): Likewise.
29113         (dump_currdefs): Likewise.
29114         (dump_names_replaced_by): Likewise.
29115         (dump_update_ssa): Likewise.
29116         (update_ssa): Likewise.
29117         * tree-object-size.c (pass_object_sizes::execute): Likewise.
29118         * tree-parloops.c (build_new_reduction): Likewise.
29119         (try_create_reduction_list): Likewise.
29120         (ref_conflicts_with_region): Likewise.
29121         (oacc_entry_exit_ok_1): Likewise.
29122         (oacc_entry_exit_single_gang): Likewise.
29123         * tree-pretty-print.h: Likewise.
29124         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
29125         (get_scalar_evolution): Likewise.
29126         (add_to_evolution): Likewise.
29127         (get_loop_exit_condition): Likewise.
29128         (analyze_evolution_in_loop): Likewise.
29129         (analyze_initial_condition): Likewise.
29130         (analyze_scalar_evolution): Likewise.
29131         (instantiate_scev): Likewise.
29132         (number_of_latch_executions): Likewise.
29133         (gather_chrec_stats): Likewise.
29134         (final_value_replacement_loop): Likewise.
29135         (scev_const_prop): Likewise.
29136         * tree-sra.c (dump_access): Likewise.
29137         (disqualify_candidate): Likewise.
29138         (create_access): Likewise.
29139         (reject): Likewise.
29140         (maybe_add_sra_candidate): Likewise.
29141         (create_access_replacement): Likewise.
29142         (analyze_access_subtree): Likewise.
29143         (analyze_all_variable_accesses): Likewise.
29144         (sra_modify_assign): Likewise.
29145         (initialize_constant_pool_replacements): Likewise.
29146         (find_param_candidates): Likewise.
29147         (decide_one_param_reduction): Likewise.
29148         (replace_removed_params_ssa_names): Likewise.
29149         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
29150         * tree-ssa-copy.c (dump_copy_of): Likewise.
29151         (copy_prop_visit_cond_stmt): Likewise.
29152         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
29153         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
29154         (record_equivalences_from_stmt): Likewise.
29155         * tree-ssa-dse.c (compute_trims): Likewise.
29156         (delete_dead_call): Likewise.
29157         (delete_dead_assignment): Likewise.
29158         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
29159         (forward_propagate_into_cond): Likewise.
29160         (pass_forwprop::execute): Likewise.
29161         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29162         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
29163         Likewise.
29164         (move_computations_worker): Likewise.
29165         (execute_sm): Likewise.
29166         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
29167         (remove_exits_and_undefined_stmts): Likewise.
29168         (remove_redundant_iv_tests): Likewise.
29169         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
29170         (adjust_iv_update_pos): Likewise.
29171         * tree-ssa-math-opts.c (bswap_replace): Likewise.
29172         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
29173         (value_replacement): Likewise.
29174         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
29175         * tree-ssa-pre.c (print_pre_expr): Likewise.
29176         (get_representative_for): Likewise.
29177         (create_expression_by_pieces): Likewise.
29178         (insert_into_preds_of_block): Likewise.
29179         (eliminate_insert): Likewise.
29180         (eliminate_dom_walker::before_dom_children): Likewise.
29181         (eliminate): Likewise.
29182         (remove_dead_inserted_code): Likewise.
29183         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
29184         * tree-ssa-reassoc.c (get_rank): Likewise.
29185         (eliminate_duplicate_pair): Likewise.
29186         (eliminate_plus_minus_pair): Likewise.
29187         (eliminate_not_pairs): Likewise.
29188         (undistribute_ops_list): Likewise.
29189         (eliminate_redundant_comparison): Likewise.
29190         (update_range_test): Likewise.
29191         (optimize_range_tests_var_bound): Likewise.
29192         (optimize_vec_cond_expr): Likewise.
29193         (rewrite_expr_tree): Likewise.
29194         (rewrite_expr_tree_parallel): Likewise.
29195         (linearize_expr): Likewise.
29196         (break_up_subtract): Likewise.
29197         (linearize_expr_tree): Likewise.
29198         (attempt_builtin_powi): Likewise.
29199         (attempt_builtin_copysign): Likewise.
29200         (transform_stmt_to_copy): Likewise.
29201         (transform_stmt_to_multiply): Likewise.
29202         (dump_ops_vector): Likewise.
29203         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
29204         (print_scc): Likewise.
29205         (set_ssa_val_to): Likewise.
29206         (visit_reference_op_store): Likewise.
29207         (visit_use): Likewise.
29208         (sccvn_dom_walker::before_dom_children): Likewise.
29209         (run_scc_vn): Likewise.
29210         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
29211         Likewise.
29212         (expr_hash_elt::print): Likewise.
29213         (const_and_copies::pop_to_marker): Likewise.
29214         (const_and_copies::record_const_or_copy_raw): Likewise.
29215         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
29216         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
29217         (dump_predicates): Likewise.
29218         (find_uninit_use): Likewise.
29219         (warn_uninitialized_phi): Likewise.
29220         (pass_late_warn_uninitialized::execute): Likewise.
29221         * tree-ssa.c (verify_vssa): Likewise.
29222         (verify_ssa): Likewise.
29223         (maybe_optimize_var): Likewise.
29224         * tree-vrp.c (dump_value_range): Likewise.
29225         (dump_all_value_ranges): Likewise.
29226         (dump_asserts_for): Likewise.
29227         (register_edge_assert_for_2): Likewise.
29228         (vrp_visit_cond_stmt): Likewise.
29229         (vrp_visit_switch_stmt): Likewise.
29230         (vrp_visit_stmt): Likewise.
29231         (vrp_visit_phi_node): Likewise.
29232         (simplify_cond_using_ranges_1): Likewise.
29233         (fold_predicate_in): Likewise.
29234         (evrp_dom_walker::before_dom_children): Likewise.
29235         (evrp_dom_walker::push_value_range): Likewise.
29236         (evrp_dom_walker::pop_value_range): Likewise.
29237         (execute_early_vrp): Likewise.
29239 2017-05-16  Richard Biener  <rguenther@suse.de>
29241         * dwarf2out.c (loc_list_from_tree_1): Do not create
29242         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
29244 2017-05-16  Richard Biener  <rguenther@suse.de>
29246         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
29247         just generated.
29248         (note_variable_value_in_expr): If we resolved the decl ref
29249         do not push to the stack.
29251 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
29253         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
29254         operations in fast-math mode.
29255         (vaddq_f16): Likewise.
29256         (vmul_f16): Likewise.
29257         (vmulq_f16): Likewise.
29258         (vsub_f16): Likewise.
29259         (vsubq_f16): Likewise.
29260         * config/arm/neon.md (add<mode>3): New.
29261         (sub<mode>3): New.
29262         (fma:<VH:mode>3): New.  Also remove outdated comment.
29263         (mul<mode>3): New.
29265 2017-05-16  Martin Liska  <mliska@suse.cz>
29267         PR ipa/79849.
29268         PR ipa/79850.
29269         * ipa-devirt.c (warn_types_mismatch): Fix typo.
29270         (odr_types_equivalent_p): Likewise.
29272 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
29274         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
29276 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
29278         PR target/80425
29279         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
29280         non-interunit SSE move alternatives with '?'.
29281         (zero-extendsidi peephole2): New peephole to skip intermediate
29282         general register in SSE zero-extend sequence.
29284 2017-05-15  Jeff Law  <law@redhat.com>
29286         * reorg.c (relax_delay_slots): Create a new variable to hold
29287         the temporary target rather than clobbering TARGET_LABEL.
29289         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
29290         missing argument to extract_bit_field call.
29291         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
29293 2017-05-15  Martin Liska  <mliska@suse.cz>
29295         PR driver/31468
29296         * gcc.c (process_command): Do not allow empty argument of -o option.
29298 2017-05-15  Renlin Li  <renlin.li@arm.com>
29300         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
29301         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
29302         * config/aarch64/constraints.md (Usf): Add long call check.
29303         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
29304         (call_value): Likewise.
29305         (sibcall): Likewise.
29306         (sibcall_value): Likewise.
29307         (call_insn): New.
29308         (call_value_insn): New.
29309         (sibcall_insn): Update rtx pattern.
29310         (sibcall_value_insn): Likewise.
29311         (call_internal): Remove.
29312         (call_value_internal): Likewise.
29313         (sibcall_internal): Likewise.
29314         (sibcall_value_internal): Likewise.
29315         (call_reg): Likewise.
29316         (call_symbol): Likewise.
29317         (call_value_reg): Likewise.
29318         (call_value_symbol): Likewise.
29320 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
29322         PR target/80600
29323         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
29325 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
29327         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
29328         compatible with CCGOCmode and with CCZmode.
29330 2017-05-14  Martin Sebor  <msebor@redhat.com>
29332         PR middle-end/77671
29333         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
29334         (gimple_fold_builtin_snprintf): Same.
29335         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
29336         (gimple_fold_builtin_snprintf): Same.
29337         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
29338         of character types.
29339         (is_call_safe): New function.
29340         (try_substitute_return_value): Call it.
29341         (try_simplify_call): New function.
29342         (pass_sprintf_length::handle_gimple_call): Call it.
29344 2017-05-14  Martin Sebor  <msebor@redhat.com>
29346         PR middle-end/80669
29347         * builtins.c (expand_builtin_stpncpy): Simplify.
29349 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
29351         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
29352         * config/i386/i386.h
29353         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
29354         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
29355         (struct machine_function): Add new members call_ms2sysv,
29356         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
29357         (struct machine_frame_state): New fields sp_realigned and
29358         sp_realigned_offset.
29359         * config/i386/i386.c
29360         (enum xlogue_stub): New enum.
29361         (enum xlogue_stub_sets): New enum.
29362         (class xlogue_layout): New class.
29363         (struct ix86_frame): New fields stack_realign_allocate_offset,
29364         stack_realign_offset and outlined_save_offset.  Modify comments to
29365         detail stack layout when using out-of-line stubs.
29366         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
29367         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
29368         -mcall-ms2sysv-xlogues.
29369         (stub_managed_regs): New static variable.
29370         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
29371         registers managed by out-of-line stub.
29372         (disable_call_ms2sysv_xlogues): New function.
29373         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
29374         m->call_ms2sysv when appropriate and compute frame layout for
29375         out-of-line stubs.
29376         (sp_valid_at, fp_valid_at): New inline functions.
29377         (choose_basereg): New function.
29378         (choose_baseaddr): Add align parameter, use choose_basereg and modify
29379         all callers.
29380         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
29381         Use align parameter of choose_baseaddr to generated aligned SSE movs
29382         when possible.
29383         (pro_epilogue_adjust_stack): Modify to track
29384         machine_frame_state::sp_realigned.
29385         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
29386         (ix86_nsaved_sseregs): Likewise.
29387         (ix86_emit_save_regs): Likewise.
29388         (ix86_emit_save_regs_using_mov): Likewise.
29389         (ix86_emit_save_sse_regs_using_mov): Likewise.
29390         (get_scratch_register_on_entry): Likewise.
29391         (gen_frame_set): New function.
29392         (gen_frame_load): Likewise.
29393         (gen_frame_store): Likewise.
29394         (emit_outlined_ms2sysv_save): Likewise.
29395         (emit_outlined_ms2sysv_restore): Likewise.
29396         (ix86_expand_prologue): Modify stack re-alignment code and call
29397         emit_outlined_ms2sysv_save when appropriate.
29398         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
29399         parameter rtx_insn *insn, which allows the function to be used to only
29400         generate the notes.
29401         (ix86_expand_epilogue): Modify validity checks of frame and stack
29402         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
29403         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
29404         * config/i386/predicates.md
29405         (save_multiple): New predicate.
29406         (restore_multiple): Likewise.
29407         * config/i386/sse.md
29408         (save_multiple<mode>): New pattern.
29409         (save_multiple_realign<mode>): Likewise.
29410         (restore_multiple<mode>): Likewise.
29411         (restore_multiple_and_return<mode>): Likewise.
29412         (restore_multiple_leave_return<mode>): Likewise.
29413         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
29415 2017-05-14  Julia Koval  <julia.koval@intel.com>
29417         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
29418         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
29419         (__builtin_ia32_xsetbv): New builtins.
29420         * config/i386/i386.c (ix86_expand_special_args_builtin):
29421         Process new types.
29422         (ix86_expand_builtin): Special expand for new intrinsics.
29423         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
29424         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
29425         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
29427 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29429         * cfganal.c (inverted_post_order_compute): Change argument type
29430         to vec *.
29431         * cfganal.h (inverted_post_order_compute): Adjust prototype.
29432         * df-core.c (rest_of_handle_df_initialize): Adjust.
29433         (rest_of_handle_df_finish): Likewise.
29434         (df_analyze_1): Likewise.
29435         (df_analyze): Likewise.
29436         (loop_inverted_post_order_compute): Change argument to be a vec *.
29437         (df_analyze_loop): Adjust.
29438         (df_get_n_blocks): Likewise.
29439         (df_get_postorder): Likewise.
29440         * df.h (struct df_d): Change field to be a vec.
29441         * lcm.c (compute_laterin): Adjust.
29442         (compute_available): Likewise.
29443         * lra-lives.c (lra_create_live_ranges_1): Likewise.
29444         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
29445         * tree-ssa-pre.c (compute_antic): Likewise.
29447 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29449         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
29450         (depth_first_search::depth_first_search): Change structure init
29451         function to this constructor.
29452         (depth_first_search::add_bb): Rename function to this member.
29453         (depth_first_search::execute): Likewise.
29454         (flow_dfs_compute_reverse_finish): Adjust.
29456 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29458         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
29459         (longest_simple_path): Likewise.
29460         * shrink-wrap.c (spread_components): Likewise.
29461         (disqualify_problematic_components): Likewise.
29462         (emit_common_heads_for_components): Likewise.
29463         (emit_common_tails_for_components): Likewise.
29464         (insert_prologue_epilogue_for_components): Likewise.
29466 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29468         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
29469         auto_sbitmap.
29471 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29473         * df-core.c (df_set_blocks): Start using auto_bitmap.
29474         (df_compact_blocks): Likewise.
29475         * df-problems.c (df_rd_confluence_n): Likewise.
29476         * df-scan.c (df_insn_rescan_all): Likewise.
29477         (df_process_deferred_rescans): Likewise.
29478         (df_update_entry_block_defs): Likewise.
29479         (df_update_exit_block_uses): Likewise.
29480         (df_entry_block_bitmap_verify): Likewise.
29481         (df_exit_block_bitmap_verify): Likewise.
29482         (df_scan_verify): Likewise.
29483         * lra-constraints.c (lra_constraints): Likewise.
29484         (undo_optional_reloads): Likewise.
29485         (lra_undo_inheritance): Likewise.
29486         * lra-remat.c (calculate_gen_cands): Likewise.
29487         (do_remat): Likewise.
29488         * lra-spills.c (assign_spill_hard_regs): Likewise.
29489         (spill_pseudos): Likewise.
29490         * tree-ssa-pre.c (bitmap_set_and): Likewise.
29491         (bitmap_set_subtract_values): Likewise.
29493 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29495         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
29496         management with auto_bitmap.
29497         (fix_inter_tick): Likewise.
29498         (fix_recovery_deps): Likewise.
29499         * ira.c (add_store_equivs): Likewise.
29500         (find_moveable_pseudos): Likewise.
29501         (split_live_ranges_for_shrink_wrap): Likewise.
29502         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
29503         (rtx_reuse_manager::seen_def_p): Likewise.
29504         (rtx_reuse_manager::set_seen_def): Likewise.
29505         * print-rtl.h (class rtx_reuse_manager): Likewise.
29507 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29509         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
29510         lifetime.
29511         (migrate_btr_def): Likewise.
29512         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
29513         * df-core.c (loop_post_order_compute): Likewise.
29514         (loop_inverted_post_order_compute): Likewise.
29515         * hsa-common.h: Likewise.
29516         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
29517         * init-regs.c (initialize_uninitialized_regs): Likewise.
29518         * ipa-inline.c (resolve_noninline_speculation): Likewise.
29519         (inline_small_functions): Likewise.
29520         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
29521         * ira.c (combine_and_move_insns): Likewise.
29522         (build_insn_chain): Likewise.
29523         * loop-invariant.c (find_invariants): Likewise.
29524         * lower-subreg.c (propagate_pseudo_copies): Likewise.
29525         * predict.c (tree_predict_by_opcode): Likewise.
29526         (predict_paths_leading_to): Likewise.
29527         (predict_paths_leading_to_edge): Likewise.
29528         (estimate_loops_at_level): Likewise.
29529         (estimate_loops): Likewise.
29530         * shrink-wrap.c (try_shrink_wrapping): Likewise.
29531         (spread_components): Likewise.
29532         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
29533         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
29534         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
29535         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
29536         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
29537         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
29538         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
29539         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
29540         (mark_threaded_blocks): Likewise.
29541         (thread_through_all_blocks): Likewise.
29542         * tree-ssa.c (verify_ssa): Likewise.
29543         (execute_update_addresses_taken): Likewise.
29544         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
29546 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29548         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
29549         auto_vec.
29550         (post_order_compute): Likewise.
29551         (inverted_post_order_compute): Likewise.
29552         (pre_and_rev_post_order_compute_fn): Likewise.
29554 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29556         * genrecog.c (int_set::int_set): Explicitly construct our
29557         auto_vec base class.
29558         * vec.h (auto_vec::auto_vec): New constructor.
29560 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29562         * bitmap.h (class auto_bitmap): New constructor taking
29563         bitmap_obstack * argument.
29565 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29567         * bitmap.h (class auto_bitmap): Change type of m_bits to
29568         bitmap_head, and adjust ctor / dtor and member operators.
29570 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
29572         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
29573         when returned register mode doesn't match original mode.
29575 2017-05-12  Jeff Law  <law@redhat.com>
29576             Jakub Jelinek  <jakub@redhat.com>
29578         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
29579         we look for cc setter after the compare-elim changes.
29580         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
29581         within the vector to match what compare-elim now expects.
29582         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
29583         (xorsi3_flags, one_cmplsi2_flags): Likewise.
29585         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
29586         after the compare-elim changes.
29587         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
29588         the vector to match what compare-elim now expects.
29589         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
29590         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
29591         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
29592         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
29593         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
29595         * config/visium/visium.c (single_set_and_flags): Fix where
29596         we look for cc setter after the compare-elim changes.
29597         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
29598         with the vector to match what compare-elim now expects.
29599         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
29600         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
29601         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
29602         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
29603         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
29604         (neg<mode>2_insn_set_overflow): Likewise.
29606 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
29608         PR middle-end/79794
29609         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
29610         maybe_expand_insn call, set ops[0].target.  If still set after call,
29611         set alt_rtl.  Add extra arg to recursive calls.
29612         (extract_bit_field): Add alt_rtl argument.  Pass to
29613         extract_bit_field.
29614         * expmed.h (extract_bit_field): Fix prototype.
29615         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
29616         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
29617         to extract_bit_field_calls.
29618         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
29619         Pass alt_rtl to extract_bit_field calls.
29620         * calls.c (store_unaligned_arguments_into_psuedos)
29621         load_register_parameters): Pass extra NULL to extract_bit_field calls.
29622         * optabs.c (maybe_legitimize_operand): Clear op->target when call
29623         gen_reg_rtx.
29624         * optabs.h (struct expand_operand): Add target bitfield.
29626 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
29628         * compare-elim.c (try_eliminate_compare): Canonicalize
29629         operation with embedded compare to
29630         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
29631          (set (reg) (operation)].
29633         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
29635 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
29637         PR target/80723
29638         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
29639         cost of adding a carry flag for ADC instruction.
29640         [case MINUS]: Ignore the cost of subtracting a carry flag
29641         for SBB instruction.
29643 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
29645         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
29646         and x86intrin.h
29647         * config/rs6000/bmiintrin.h: New file.
29648         * config/rs6000/bmi2intrin.h: New file.
29649         * config/rs6000/x86intrin.h: New file.
29651 2017-05-12  Jeff Law  <law@redhat.com>
29653         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
29654         markers.
29656 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
29658         PR middle-end/80707
29659         * tree-cfg.c: Remove cfg edges of unreachable case statements.
29661 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
29663         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
29664         early expansion of vector divide builtins.
29665         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
29666         builtins identified as having unsigned arguments.
29668 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
29670         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
29671         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
29672         expansion of vector logical operations (and, andc, or, xor,
29673         nor, orc, nand).
29675 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
29677         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
29678         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
29680 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
29682         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
29683         early GIMPLE expansion of vector multiplies.
29685 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
29687         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
29688         TARGET_HAVE_MOVT conditional.
29689         (movt splitter): Likewise.
29691 2017-05-12  Richard Biener  <rguenther@suse.de>
29693         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
29694         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
29695         Fold all stmts not inplace.
29697 2017-05-12  Richard Biener  <rguenther@suse.de>
29699         PR tree-optimization/80713
29700         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
29701         inserted_exprs bit for not removed stmts.
29703 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
29705         PR middle-end/69921
29706         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
29707         parallelized" attribute for parallelized OpenACC kernels.
29708         * omp-offload.c (execute_oacc_device_lower): Use it.
29710         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
29711         Set "oacc kernels" attribute.
29712         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
29713         parameter.  Adjust all users.
29714         (oacc_fn_attrib_kernels_p): Remove function.
29715         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
29716         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
29717         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
29718         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
29719         assert "oacc kernels" attribute is set.
29721 2017-05-11  Carl Love  <cel@us.ibm.com>
29723         * config/rs6000/rs6000-c: Add support for built-in functions
29724         vector unsigned char vec_popcnt (vector signed char)
29725         vector unsigned char vec_popcnt (vector unsigned char)
29726         vector unsigned short vec_popcnt (vector signed short)
29727         vector unsigned short vec_popcnt (vector unsigned short)
29728         vector unsigned int vec_popcnt (vector signed int)
29729         vector unsigned int vec_popcnt (vector unsigned int)
29730         vector unsigned long long vec_popcnt (vector signed long long)
29731         vector unsigned long long vec_popcnt (vector unsigned long long)
29732         vector signed long long vec_slo (vector signed long long,
29733                                          vector signed char)
29734         vector signed long long vec_slo (vector signed long long,
29735                                          vector unsigned char)
29736         vector unsigned long long vec_slo (vector unsigned long long,
29737                                            vector signed char)
29738         vector unsigned long long vec_slo (vector unsigned long long,
29739                                            vector unsigned char)
29740         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
29741         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
29742         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
29743         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
29744         * doc/extend.texi: Update the built-in documentation file for the
29745         new built-in functions.
29747 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
29749         * attribs.h (sorted_attr_string): Move machine independent
29750         functions for target clone support from the i386 port to common
29751         code.  Rename ix86_function_versions to common_function_versions.
29752         Rename make_name to make_unique_name.
29753         (common_function_versions): Likewise.
29754         (make_unique_name): Likewise.
29755         (make_dispatcher_decl): Likewise.
29756         (is_function_default_version): Likewise.
29757         * attribs.c (attr_strcmp): Likewise.
29758         (sorted_attr_string): Likewise.
29759         (common_function_versions): Likewise.
29760         (make_unique_name): Likewise.
29761         (make_dispatcher_decl): Likewise.
29762         (is_function_default_version): Likewise.
29763         * config/i386/i386.c (attr_strcmp): Likewise.
29764         (sorted_attr_string): Likewise.
29765         (ix86_function_versions): Likewise.
29766         (make_name): Likewise.
29767         (make_dispatcher_decl): Likewise.
29768         (is_function_default_version): Likewise.
29769         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
29771 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29773         PR target/80695
29774         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
29775         Account for direct move costs for vec_construct of integer
29776         vectors.
29778 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
29780         PR target/80706
29781         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
29782         (UNSPEC_STX_ATOMIC): Ditto.
29783         (loaddi_via_sse): New insn.
29784         (storedi_via_sse): Ditto.
29785         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
29786         Update corresponding peephole2 patterns.
29787         (atomic_storedi_fpu): Ditto.
29789 2017-05-11  Julia Koval  <julia.koval@intel.com>
29791         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
29792         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
29793         New intrinsics.
29794         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
29795         (__builtin_ia32_rsqrt14ss_mask): New builtins.
29796         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
29798 2017-05-11  Nathan Sidwell  <nathan@acm.org>
29800         * graphite-poly.c: Include dumpfile.h.
29802         * dumpfle.h (dump_function): Declare here ...
29803         * tree-dump.h (dump_function): ... not here.
29804         * dumpfile.c: #include tree-cfg.h.
29805         (dump_function): Move here from ...
29806         * tree-dump.c (dump_function): ... here.
29807         * gimplify.c: #include splay-tree.h, not tree-dump.h.
29808         * graphite-poly.c: Don't include tree-dump.h.
29809         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
29810         * print-tree.c: Likewise.
29811         * stor-layout.c: Likewise.
29812         * tree-nested.c: Likewise.
29814         * dumpfile.c (dump_start): Use TDF_FLAGS.
29815         (dump_enable_all): Fix TDF_KIND check thinko.
29817 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
29819         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29820         array entries to represent two legal parameterizations of the
29821         overloaded __builtin_cmpb function, as represented by the
29822         P6_OV_BUILTIN_CMPB constant.
29823         (altivec_resolve_overloaded_builtin): Add special case handling
29824         for the __builtin_cmpb function, as represented by the
29825         P6_OV_BUILTIN_CMPB constant.
29826         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
29827         (BU_P6_64BIT_2): New macro.
29828         (BU_P6_OVERLOAD_2): New macro
29829         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
29830         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
29831         (CMPB): Add overload support to represent both 32-bit and 64-bit
29832         compare-bytes function.
29833         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
29834         support for TARGET_CMPB.
29835         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
29836         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
29837         documentation of the __builtin_cmpb overloaded built-in function.
29839 2017-05-11  Richard Biener  <rguenther@suse.de>
29841         PR tree-optimization/80705
29842         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
29843         bases are not vectorizable.
29845 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29847         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
29848         when counting register pressure.
29850 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29852         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
29853         (iv_ca_more_deps): Renamed to ...
29854         (iv_ca_compare_deps): ... this.
29855         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
29857 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29859         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
29860         to ...
29861         (determine_group_iv_costs): ... here.
29862         (find_inv_vars_cb): Record inv var if it's not recorded before.
29864 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29866         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
29867         (get_shiftadd_cost): Ditto.
29869 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29871         * tree-ssa-address.c: Include header file.
29872         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
29873         address.
29874         (add_to_parts): Refactor.
29875         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
29876         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
29877         in new order.
29879 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29881         PR tree-optimization/53090
29882         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
29883         COMP_IV_EXPR_2.
29884         (extract_cond_operands): Detect condition with IV on both sides
29885         and return COMP_IV_EXPR_2.
29886         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
29887         (rewrite_use_compare): Simplify by removing call to function
29888         extract_cond_operands.
29890 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29892         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
29893         (extract_cond_operands): Detect condition comparing against non-
29894         invariant bound and return appropriate enum value.
29895         (find_interesting_uses_cond): Update use of extract_cond_operands.
29896         Handle its return value accordingly.
29897         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
29899 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29901         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
29902         nonlinear iv_use computation in loop invariant sensitive way.
29904 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29906         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
29907         (find_iv_candidates): Call relate_compare_use_with_all_cands.
29909 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29911         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
29912         (dump_cand): Support iv_cand.inv_exprs.
29913         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
29914         for candidates.
29915         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
29916         iv_cand.inv_exprs.
29918 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29920         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
29921         from ...
29922         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
29923         as local function.  Include necessary header files.
29924         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
29926 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29928         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
29930 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29932         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
29933         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
29934         RSHIFT_EXPR and BIT_NOT_EXPR.
29936 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29938         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
29939         (adjust_setup_cost): New parameter supporting round up adjustment.
29940         (struct address_cost_data): Delete.
29941         (force_expr_to_var_cost): Don't bound cost with spill_cost.
29942         (split_address_cost, ptr_difference_cost): Delete.
29943         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
29944         (struct ainc_cost_data): New struct.
29945         (get_address_cost_ainc): New function.
29946         (get_address_cost, get_computation_cost): Reimplement.
29947         (determine_group_iv_cost_address): Record inv_expr for all uses of
29948         a group.
29949         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
29950         (iv_ca_has_deps): Reimplemented to ...
29951         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
29952         than OLD_CP.
29953         (iv_ca_extend): Call iv_ca_more_deps.
29955 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29957         * tree-ssa-address.c (struct mem_address): Move to header file.
29958         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
29959         * tree-ssa-address.h (struct mem_address): Move from C file.
29960         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
29962 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29964         * tree-affine.h (aff_combination_type): New interface.
29965         (aff_combination_zero_p): Remove static.
29966         (aff_combination_const_p): New interface.
29967         (aff_combination_singleton_var_p): New interfaces.
29969 2017-05-11  Richard Biener  <rguenther@suse.de>
29971         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
29972         Skip unreachable blocks and destinations.
29973         (eliminate): Move stmt removal and fixup ...
29974         (fini_eliminate): ... here.  Skip inserted exprs.
29975         (pass_pre::execute): Move fini_pre after fini_eliminate.
29976         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
29977         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
29978         PRE to get rid of dead code that has invalid SSA form and
29979         split critical edges again.
29981 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
29983         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
29985 2017-05-11  Richard Biener  <rguenther@suse.de>
29987         * passes.c (execute_function_todo): Verify loops if they are
29988         said to be up-to-date.
29989         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
29990         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
29992 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
29994         PR target/80090
29995         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
29996         handle calling assemble_external ourself.
29998         PR target/79027
29999         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
30000         modes with zero size.  Enhance comment.
30002 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30004         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
30005         built-ins for vec_xl and vec_xst with short and char pointer
30006         arguments.
30008 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
30010         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
30011         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
30012         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
30013         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
30014         (_mm_maskz_min_round_ss): New intrinsics.
30015         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
30016         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
30017         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
30018         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
30019         (__builtin_ia32_minss_mask_round): New builtins.
30020         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30021         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
30022         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
30023         Rename to ...
30024         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
30025         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
30026         Change to ...
30027         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
30028         ... this.
30030 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
30032         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
30033         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
30034         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
30035         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
30036         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
30037         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
30038         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
30039         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30040         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
30041         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
30042         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
30043         (__builtin_ia32_mulss_mask_round): New builtins.
30044         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30045         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
30046         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
30047         Rename to ...
30048         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
30049         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
30050         Change to ...
30051         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
30052         ... this.
30054 2017-05-10  Julia Koval  <julia.koval@intel.com>
30056         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
30057         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
30058         (_mm256_setr_m128i): New intrinsics.
30060 2017-05-10  Julia Koval  <julia.koval@intel.com>
30062         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
30063         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
30064         (_mm_maskz_rcp14_ss): New intrinsics.
30065         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
30066         (__builtin_ia32_rcp14ss_mask): New builtins.
30067         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
30069 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
30071         PR tree-optimization/51513
30072         * tree-cfg.c (gimple_seq_unreachable_p): New function.
30073         (assert_unreachable_fallthru_edge_p): Use it.
30074         (group_case_labels_stmt): Likewise.
30075         * tree-cfg.h: Prototype it.
30076         * stmt.c: Include cfghooks.h and tree-cfg.h.
30077         (emit_case_dispatch_table) <gap_label>: New local variable.
30078         Use it to fill dispatch table gaps.
30079         Test for default_label before updating probabilities.
30080         (expand_case) <default_label>: Remove unneeded initialization.
30081         Test for unreachable default case statement and remove its edge.
30082         Set default_label accordingly.
30083         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
30085 2017-05-10  Carl Love  <cel@us.ibm.com>
30087         * config/rs6000/rs6000-c: Add support for built-in functions
30088         vector signed char      vec_neg (vector signed char)
30089         vector signed short int vec_neg (vector short int)
30090         vector signed int       vec_neg (vector signed int)
30091         vector signed long long vec_neg (vector signed long long)
30092         vector float            vec_neg (vector float)
30093         vector double           vec_neg (vector double)
30094         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
30095         overload.
30096         * config/rs6000/altivec.h: Add define for vec_neg
30097         * doc/extend.texi: Update the built-in documentation for the
30098         new built-in functions.
30100 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30102         PR tree-optimization/77644
30103         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
30105 2017-05-10  Nathan Sidwell  <nathan@acm.org>
30107         * dumpfile.h (TDI_lang_all): New.
30108         (TDF_KIND): New. Renumber others
30109         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
30110         than bits.
30111         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
30112         lang-all.
30113         (get_dump_file_name): Adjust suffix generation.
30114         (dump_enable_all): Use TDF_KIND.
30115         * doc/invoke.texi (-fdump-lang-all): Document.
30117         * dumpfile.h: Tabify.
30119 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
30121         PR target/80671
30122         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
30123         Move member access before delete.
30125 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
30127         * tree-inline.c (expand_call_inline): Split block at stmt
30128         before the call.
30130 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
30132         PR target/68163
30133         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
30134         are now unused after splitting mov{sf,sd}_hardfloat.
30135         (f32_lr2): Likewise.
30136         (f32_lm): Likewise.
30137         (f32_lm2): Likewise.
30138         (f32_li): Likewise.
30139         (f32_li2): Likewise.
30140         (f32_lv): Likewise.
30141         (f32_sr): Likewise.
30142         (f32_sr2): Likewise.
30143         (f32_sm): Likewise.
30144         (f32_sm2): Likewise.
30145         (f32_si): Likewise.
30146         (f32_si2): Likewise.
30147         (f32_sv): Likewise.
30148         (f32_dm): Likewise.
30149         (f32_vsx): Likewise.
30150         (f32_av): Likewise.
30151         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
30152         For movsf, order stores so the VSX stores occur before the GPR
30153         store which encourages the register allocator to use a traditional
30154         FPR instead of a GPR.  For movsd, order the stores so that the GPR
30155         store comes before the VSX stores to allow the power6 to work.
30156         This is due to the power6 not having a 32-bit integer store
30157         instruction from a FPR.
30158         (movsf_hardfloat): Likewise.
30159         (movsd_hardfloat): Likewise.
30161 2017-05-09  Martin Sebor  <msebor@redhat.com>
30163         PR translation/80280
30164         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
30165         added in r247778.
30167         PR translation/80280
30168         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
30169         data member added in r247778.
30170         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
30172 2017-05-09  Nathan Sidwell  <nathan@acm.org>
30174         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
30176         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
30177         typedefs.
30179 2017-05-09  Marek Polacek  <polacek@redhat.com>
30181         * doc/invoke.texi: Fix typo.
30183 2017-05-09  Richard Biener  <rguenther@suse.de>
30185         * tree-vrp.c (vrp_val_is_max): Adjust comment.
30186         (vrp_val_is_min): Likewise.
30187         (set_value_range_to_value): Likewise.
30188         (set_value_range_to_nonnegative): Likewise.
30189         (gimple_assign_nonzero_p): Likewise.
30190         (gimple_stmt_nonzero_p): Likewise.
30191         (vrp_int_const_binop): Likewise.  Remove unreachable case.
30192         (adjust_range_with_scev): Adjust comments.
30193         (compare_range_with_value): Likewise.
30194         (extract_range_from_phi_node): Likewise.
30195         (test_for_singularity): Likewise.
30197 2017-05-09  Richard Biener  <rguenther@suse.de>
30199         * tree-vrp.c (get_single_symbol): Add assert that we don't
30200         get overflowed constants as invariant part.
30201         (compare_values_warnv): Add comment before the TREE_NO_WARNING
30202         checks.  Use wi::cmp instead of recursing for integer constants.
30203         (compare_values): Just ignore whether we assumed undefined
30204         overflow instead of failing the compare.
30205         (extract_range_for_var_from_comparison_expr): Add comment before the
30206         TREE_NO_WARNING sets.
30207         (test_for_singularity): Likewise.
30208         (extract_range_from_comparison): Do not disable optimization
30209         when we assumed undefined overflow.
30210         (extract_range_basic): Remove init of unused var.
30212 2017-05-09  Richard Biener  <rguenther@suse.de>
30214         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
30215         (extract_range_from_multiplicative_op_1): Adjust.
30216         (extract_range_from_binary_expr_1): Use int_const_binop.
30218 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30220         PR target/80101
30221         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
30222         rs6000_store_data_bypass_p in seven define_bypass directives and
30223         in several comments.
30224         * config/rs6000/rs6000-protos.h: Add prototype for
30225         rs6000_store_data_bypass_p function.
30226         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
30227         function implements slightly different (rs6000-specific) semantics
30228         than store_data_bypass_p, returning false rather than aborting
30229         with assertion error when arguments do not satisfy the
30230         requirements of store data bypass.
30231         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
30232         rs6000_store_data_bypass_p.
30234 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
30236         * config/xtensa/xtensa-protos.h
30237         (xtensa_initial_elimination_offset): New declaration.
30238         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
30239         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
30240         macro definition, add case for FRAME_POINTER_REGNUM when
30241         FRAME_GROWS_DOWNWARD.
30242         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
30243         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
30244         xtensa_initial_elimination_offset.
30246 2017-05-08  Nathan Sidwell  <nathan@acm.org>
30248         * doc/invoke.texi: Alphabetize -fdump options.
30250 2017-05-08  Martin Sebor  <msebor@redhat.com>
30252         PR translation/80280
30253         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
30255 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30257         * target.def (compute_frame_layout): New optional target hook.
30258         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
30259         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
30260         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
30261         target hook.
30262         * reload1.c (verify_initial_elim_offsets): Likewise.
30263         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
30264         (use_simple_return_p): Call arm_compute_frame_layout if needed.
30265         (arm_get_frame_offsets): Split up into this ...
30266         (arm_compute_frame_layout): ... and this function.
30268 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
30270         * config/aarch64/constraints.md (Usa): New constraint.
30271         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
30273 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30275         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
30276         with_multilib_list after it has been checked.
30278 2017-05-08  Richard Biener  <rguenther@suse.de>
30280         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
30281         (bitmap_set_subtract_values): Likewise.
30283 2017-05-08  Richard Biener  <rguenther@suse.de>
30285         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
30286         (gimple_assign_nonzero): ... this and remove strict_overflow_p
30287         argument.
30288         (gimple_stmt_nonzero_warnv_p): Rename to ...
30289         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
30290         argument.
30291         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
30292         (extract_range_basic): Adjust, do not disable propagation on
30293         strict overflow sensitive simplification.
30294         (vrp_visit_cond_stmt): Likewise.
30296 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
30298         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
30299         body size unconditionally.
30301 2017-05-07  Jeff Law  <law@redhat.com>
30303         Revert:
30304         2017-05-06  Jeff Law  <law@redhat.com>
30305         PR tree-optimization/78496
30306         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
30307         code.
30309         PR tree-optimization/78496
30310         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
30311         (simplify_stmt_using_ranges): Call it.
30312         (vrp_dom_walker::before_dom_children): Extract equivalences
30313         from an ASSERT_EXPR with an equality comparison against a
30314         constant.
30316 2017-05-06  Jeff Law  <law@redhat.com>
30318         PR tree-optimization/78496
30319         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
30320         code.
30322         PR tree-optimization/78496
30323         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
30324         (simplify_stmt_using_ranges): Call it.
30325         (vrp_dom_walker::before_dom_children): Extract equivalences
30326         from an ASSERT_EXPR with an equality comparison against a
30327         constant.
30329 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
30331         * lra-constraints.c (lra_copy_reg_equiv): New function.
30332         (split_reg): Use it to copy equivalence information from the
30333         original register to the spill register.
30335 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
30337         PR rtl-optimization/75964
30338         * simplify-rtx.c (simplify_const_relational_operation): Remove
30339         invalid handling of comparisons of integer ABS.
30341 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
30343         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
30344         initialize to zero.
30345         (init_regs): Remove declaration.
30346         (function_arg_advance_32): Initialize error_p as boolean variable.
30348 2017-05-05  Nathan Sidwell  <nathan@acm.org>
30350         * store-motion.c (remove_reachable_equiv_notes): Reformat long
30351         lines.  Use for (;;).
30353 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30355         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
30356         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
30357         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
30358         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
30359         VF=2 that require versioning.
30361 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30363         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
30364         int.
30366 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30368         * diagnostic.h (diagnostic_override_option_index): Convert from
30369         macro to inline function.
30371 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30373         * diagnostic.c (last_module_changed_p): New function.
30374         (set_last_module): New function.
30375         (diagnostic_report_current_module): Convert macro usage to
30376         the above functions.
30377         * diagnostic.h (diagnostic_context::last_module): Strengthen
30378         from const line_map * to const line_map_ordinary *.
30379         (diagnostic_last_module_changed): Delete macro.
30380         (diagnostic_set_last_module): Delete macro.
30382 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30384         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
30385         with diagnostic_report_diagnostic.
30386         (diagnostic_n_impl_richloc): Likewise.
30387         * diagnostic.h (report_diagnostic): Delete macro.
30388         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
30389         with diagnostic_report_diagnostic.
30390         * substring-locations.c (format_warning_va): Likewise.
30392 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30394         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
30395         save/restor of format_spec.  Move option-printing code to...
30396         (print_option_information): ...this new function, and
30397         reimplement by simply printing to the pretty_printer,
30398         rather than appending to the format string.
30400 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30402         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
30403         handling logic into...
30404         (update_effective_level_from_pragmas): ...this new function.
30406 2017-05-04  Andrew Waterman  <andrew@sifive.com>
30408         * config/riscv/riscv.opt (mstrict-align): New option.
30409         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
30410         (SLOW_UNALIGNED_ACCESS): Define.
30411         (riscv_slow_unaligned_access): Declare.
30412         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
30413         field.
30414         (riscv_slow_unaligned_access): New variable.
30415         (rocket_tune_info): Set slow_unaligned_access to true.
30416         (optimize_size_tune_info): Set slow_unaligned_access to false.
30417         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
30418         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
30419         (riscv_option_override): Set riscv_slow_unaligned_access.
30420         * doc/invoke.texi: Add -mstrict-align to RISC-V.
30422 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
30424         * config/riscv/riscv.md: Unify indentation.
30426 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
30428         PR target/79038
30429         PR target/79202
30430         PR target/79203
30431         * config/rs6000/rs6000.md (u code attribute): Add FIX and
30432         UNSIGNED_FIX.
30433         (extendsi<mode>2): Add support for doing sign extension via
30434         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
30435         don't have ISA 3.0 instructions.
30436         (extendsi<mode>2 splitter): Likewise.
30437         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
30438         generate the normal insns since SImode can now go in vector
30439         registers.  Disallow the special UNSPECs needed for previous
30440         machines to hide SImode being used.  Add new insns
30441         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
30442         (fix_trunc<mode>si2_stfiwx): Likewise.
30443         (fix_trunc<mode>si2_internal): Likewise.
30444         (fixuns_trunc<mode>si2): Likewise.
30445         (fixuns_trunc<mode>si2_stfiwx): Likewise.
30446         (fctiw<u>z_<mode>_smallint): Likewise.
30447         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
30448         of floating point to 32-bit integer from doing a direct move to
30449         the GPR registers to do a store.
30450         (fctiwz_<mode>): Break long line.
30452 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
30454         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
30455         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
30456         (addr_list, addr_offset_valid_p): New.
30457         (split_address_groups): Check offset validity with above function.
30458         (gt-tree-ssa-loop-ivopts.h): Include header file.
30460 2017-05-05  Nathan Sidwell  <nathan@acm.org>
30462         * config.gcc (arm*-*-*): Add missing 'fi'.
30464 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
30466         * doc/invoke.texi (-fopt-info): Explicitly say order of options
30467         included in -fopt-info does not matter.
30468         * doc/optinfo.texi (-fopt-info): Fix description of default
30469         behavour. Explicitly say order of options included in -fopt-info
30470         does not matter.
30472 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30474         * config.gcc: Allow combinations of aprofile and rmprofile values for
30475         --with-multilib-list.
30476         * config/arm/t-multilib: New file.
30477         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
30478         variables.  Remove setting of ISA and floating-point ABI in
30479         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
30480         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
30481         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
30482         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
30483         CPU options.
30484         * config/arm/t-rmprofile: Likewise except for the matches changes.
30485         * doc/install.texi (--with-multilib-list): Document the combination of
30486         aprofile and rmprofile values and warn about pitfalls in doing that.
30488 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
30490         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
30491         (movdi_aarch64): Likewise.
30493 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
30495         PR tree-optimization/80632
30496         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
30497         field.
30498         (build_arrays): Initialize it for virtual phis.
30499         (fix_phi_nodes): Use it for virtual phis.
30501         PR tree-optimization/80558
30502         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
30503         [x, y] op z into [x op, y op z] for op & or | if conditions
30504         are met.
30506 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30507             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30509         PR target/71607
30510         * config/arm/arm.md (use_literal_pool): Remove.
30511         (64-bit immediate split): No longer takes cost into consideration
30512         if arm_disable_literal_pool is enabled.
30513         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
30514         used when arm_disable_literal_pool is enabled.
30515         (arm_max_const_double_inline_cost): Remove use of
30516         arm_disable_literal_pool.
30517         (push_minipool_fix): Add assert.
30518         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
30519         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
30520         (no_literal_pool_sf_immediate): New.
30522 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30524         PR tree-optimization/80613
30525         * tree-ssa-dce.c (propagate_necessity): Remove cases for
30526         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
30528 2017-05-05  Richard Biener  <rguenther@suse.de>
30530         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
30532 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
30534         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
30535         of this flag from insn conditions due to removal from r247495.
30537 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
30539         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
30540         New function.
30541         (arm_early_store_addr_dep_ptr): Likewise.
30542         * config/arm/aarch-common-protos.h
30543         (arm_early_load_addr_dep_ptr): Add prototype.
30544         (arm_early_store_addr_dep_ptr): Likewise.
30545         * config/arm/cortex-a53.md: Add new bypasses.
30547 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
30549         * tree.c (next_type_uid): Change type to unsigned.
30550         (type_hash_canon): Decrement back next_type_uid if
30551         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
30552         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
30553         if possible.
30555 2017-05-04  Martin Sebor  <msebor@redhat.com>
30557         * builtins.c: Fix a trivial typo in a comment.
30559         PR middle-end/79234
30560         * builtins.c (check_sizes): Adjust to handle reading past the end.
30561         Avoid printing excessive upper bound of ranges.  Use %E to print
30562         tree nodes instead of converting them to %wu.
30563         (expand_builtin_memchr): New function.
30564         (compute_dest_size): Rename...
30565         (compute_objsize): ...to this.
30566         (expand_builtin_memcpy): Adjust.
30567         (expand_builtin_mempcpy): Adjust.
30568         (expand_builtin_strcat): Adjust.
30569         (expand_builtin_strcpy): Adjust.
30570         (check_strncat_sizes): Adjust.
30571         (expand_builtin_strncat): Adjust.
30572         (expand_builtin_strncpy): Adjust and simplify.
30573         (expand_builtin_memset): Adjust.
30574         (expand_builtin_bzero): Adjust.
30575         (expand_builtin_memcmp): Adjust.
30576         (expand_builtin): Handle memcmp.
30577         (maybe_emit_chk_warning): Check strncat just once.
30579 2017-05-04  Martin Sebor  <msebor@redhat.com>
30581         PR preprocessor/79214
30582         PR middle-end/79222
30583         PR middle-end/79223
30584         * builtins.c (check_sizes): Add inlining context and issue
30585         warnings even when -Wno-system-headers is set.
30586         (check_strncat_sizes): Same.
30587         (expand_builtin_strncat): Same.
30588         (expand_builtin_memmove): New function.
30589         (expand_builtin_stpncpy): Same.
30590         (expand_builtin): Handle memmove and stpncpy.
30592 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
30594         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
30595         which is not used any more.
30597 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30599         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
30601 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30603         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
30604         (cortexa53_tunings): Likewise.
30605         (cortexa57_tunings): Likewise.
30606         (cortexa72_tunings): Likewise.
30607         (cortexa73_tunings): Likewise.
30609 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30611         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
30612         Set loop alignment to 8.
30614 2017-05-04  Martin Sebor  <msebor@redhat.com>
30616         PR translation/80280
30617         * builtins.c (expand_builtin_object_size): Add missing quoting to
30618         %D and like directives.
30619         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
30620         (hsa_type_for_tree_type): Same.
30621         (verify_function_arguments): Same.
30622         * symtab.c (symbol_table::change_decl_assembler_name): Same.
30623         * varasm.c (get_section): Same.
30624         (mark_weak): Same.
30626 2017-05-04  Martin Sebor  <msebor@redhat.com>
30628         PR translation/80280
30629         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
30631 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30633         * config/aarch64/aarch64.c (generic_addrcost_table):
30634         Change HI/TI mode setting.
30636 2017-05-04  Martin Jambor  <mjambor@suse.cz>
30638         PR tree-optimization/80622
30639         * tree-sra.c (comes_initialized_p): New function.
30640         (build_accesses_from_assign): Only set write lazily when
30641         comes_initialized_p is false.
30642         (analyze_access_subtree): Use comes_initialized_p.
30643         (propagate_subaccesses_across_link): Assert !comes_initialized_p
30644         instead of testing for PARM_DECL.
30646 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30648         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
30649         constraint on operand 0 to allow more general addressing modes.
30650         Adjust output template.
30651         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
30652         New function.
30653         * config/aarch64/aarch64-protos.h
30654         (aarch64_address_valid_for_prefetch_p): Declare prototype.
30655         * config/aarch64/constraints.md (Dp): New address constraint.
30656         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
30657         predicate.
30659 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
30661         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
30662         update use of estimate_ipcp_clone_size_and_time.
30663         (estimate_local_effects): Update use of
30664         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
30665         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
30666         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
30667         Return nonspecialized time.
30669 2017-05-04  Richard Biener  <rguenther@suse.de>
30671         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
30672         for the last VUSE which def dominates the PHI.  Directly call
30673         maybe_skip_until.
30674         (get_continuation_for_phi_1): Remove.
30676 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
30678         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
30679         to explain the use of truncating division.  Cap the number of
30680         iterations to the maximum given by nb_iterations_upper_bound,
30681         if defined.
30683 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30685         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
30686         * configure: Regenerate.
30687         * config.in: Regenerate.
30688         * config/i386/driver-mingw32.c: new file.
30689         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
30690         * config.host: Link driver-mingw32.o on MinGW host.
30691         * doc/install.texi: Document new --enable-mingw-wildcard configure
30692         option.
30694 2017-05-04  Marek Polacek  <polacek@redhat.com>
30696         PR tree-optimization/80612
30697         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
30699 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30700             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
30702         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
30703         (movt splitter): Likewise.
30704         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
30705         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
30706         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
30707         block for Thumb-1 with MOVT.
30708         (thumb2_legitimate_address_p): Move code block ...
30709         (can_avoid_literal_pool_for_label_p): ... into this new function.
30710         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
30711         literal pool.
30712         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
30713         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
30714         "M-profile targets with the MOVT instruction".
30716 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30718         * config/arm/arm-builtins.c (arm_init_builtins): Rename
30719         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
30720         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
30722 2017-05-04  Martin Liska  <mliska@suse.cz>
30724         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
30725         variable cond_code.
30727 2017-05-04  Richard Biener  <rguenther@suse.de>
30729         * tree.c (array_at_struct_end_p): Handle arrays at struct
30730         end with flexarrays more conservatively.  Refactor and treat
30731         arrays of arrays or aggregates more strict.  Fix
30732         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
30733         * tree.c (array_at_struct_end_p): Adjust prototype.
30734         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
30735         * gimple-fold.c (get_range_strlen): Likewise.
30736         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
30738 2017-05-04  Richard Biener  <rguenther@suse.de>
30740         PR tree-optimization/31130
30741         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
30742         false.
30743         (supports_overflow_infinity): Likewise.
30744         (is_negative_overflow_infinity): Likewise.
30745         (is_positive_overflow_infinity): Likewise.
30746         (is_overflow_infinity): Likewise.
30747         (stmt_overflow_infinity): Likewise.
30748         (overflow_infinity_range_p): Likewise.
30749         (usable_range_p): Remove as always returning true.
30750         (make_overflow_infinity): Remove.
30751         (negative_overflow_infinity): Likewise.
30752         (positive_overflow_infinity): Likewise.
30753         (avoid_overflow_infinity): Likewise.
30754         (set_value_range): Adjust accordingly.
30755         (set_value_range_to_nonnegative): Likewise, remove now unused
30756         overflow_infinity arg.
30757         (vrp_operand_equal_p): Adjust.
30758         (update_value_range): Likewise.
30759         (range_int_cst_singleton_p): Likewise.
30760         (operand_less_p): Likewise.
30761         (compare_values_warnv): Likewise.
30762         (extract_range_for_var_from_comparison_expr): Likewise.
30763         (vrp_int_const_binop): Likewise.
30764         (zero_nonzero_bits_from_vr): Likewise.
30765         (extract_range_from_multiplicative_op_1): Likewise.
30766         (extract_range_from_binary_expr_1): Likewise.
30767         (extract_range_from_unary_expr): Likewise.
30768         (extract_range_from_comparison): Likewise.
30769         (extract_range_basic): Likewise.
30770         (adjust_range_with_scev): Likewise.
30771         (compare_ranges): Likewise.
30772         (compare_range_with_value): Likewise.
30773         (dump_value_range): Likewise.
30774         (test_for_singularity): Likewise, remove strict_overflow_p parameter
30775         never used.
30776         (simplify_cond_using_ranges): Adjust.
30778 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
30780         * brig-builtins.def: Added a builtin for class_f64.
30781         * builtin-types.def: Added a builtin type needed by class_f64.
30783 2017-05-03  Jason Merrill  <jason@redhat.com>
30785         * timevar.def: Add TV_CONSTEXPR.
30787 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
30789         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
30791 2017-05-03  Martin Jambor  <mjambor@suse.cz>
30793         * ipa-prop.c (ipa_update_after_lto_read): Removed.
30794         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
30795         * ipa-cp.c (ipcp_propagate_stage): Do not call
30796         ipa_update_after_lto_read.
30797         * ipa-inline.c (ipa_inline): Likewise.
30799 2017-05-03  Martin Jambor  <mjambor@suse.cz>
30801         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
30802         tag.  Added a default constructor and a destructor.
30803         (ipa_edge_args_sum_t): New class;
30804         (ipa_edge_args_sum): Declare.
30805         (ipa_edge_args_vector): Remove declaration.
30806         (IPA_EDGE_REF): Use ipa_edge_args_sum.
30807         (ipa_free_edge_args_substructures): Remove declaration.
30808         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
30809         (ipa_edge_args_info_available_for_edge_p): Likewise.
30810         * ipa-prop.c (ipa_edge_args_vector): Removed.
30811         (edge_removal_hook_holder): Likewise.
30812         (edge_duplication_hook_holder): Likewise.
30813         (ipa_edge_args_sum): New variable.
30814         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
30815         ipa_edge_args_vector.
30816         (ipa_free_edge_args_substructures): Likewise.
30817         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
30818         ipa_edge_args_vector.
30819         (ipa_edge_removal_hook): Turned into method
30820         ipa_edge_args_sum_t::remove.
30821         (ipa_edge_duplication_hook): Turned into method
30822         ipa_edge_args_sum_t::duplicate.
30823         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
30824         registering edge hooks.
30825         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
30826         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
30827         ipa_edge_args_sum instead of ipa_edge_args_vector.
30828         * ipa-profile.c (ipa_profile): Likewise.
30830 2017-05-03  Martin Jambor  <mjambor@suse.cz>
30832         * symbol-summary.h (function_summary): New method exists.
30833         (function_summary::symtab_removal): Deallocate through release.
30834         (call_summary): New class.
30835         (gt_ggc_mx): New overload.
30836         (gt_pch_nx): Likewise.
30837         (gt_pch_nx): Likewise.
30839 2017-05-03  Jeff Law  <law@redhat.com>
30841         PR tree-optimization/78496
30842         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
30843         from simplify_cond_using_ranges.  Split off code to walk
30844         backwards through casts into ...
30845         (simplify_cond_using_ranges_2): New function.
30846         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
30847         (execute_vrp): After identifying jump threads, call
30848         simplify_cond_using_ranges_2.
30850 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
30852         PR bootstrap/80609
30853         * ipa-inline.h (inline_summary): Add ctor.
30854         (create_ggc): Do not use ggc_cleared_alloc.
30856 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
30857             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30859         * gcc.c (handle_braces): Support escaping in switch matching
30860         text.
30861         * doc/invoke.texi (Spec Files): Document it.
30862         Remove superfluous @code markup in items.
30864 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
30866         * diagnostic-show-locus.c (struct column_range): New struct.
30867         (get_affected_columns): New function.
30868         (get_printed_columns): New function.
30869         (struct correction): New struct.
30870         (correction::ensure_capacity): New function.
30871         (correction::ensure_terminated): New function.
30872         (struct line_corrections): New struct.
30873         (line_corrections::~line_corrections): New dtor.
30874         (line_corrections::add_hint): New function.
30875         (layout::print_trailing_fixits): Reimplement in terms of the new
30876         classes.
30877         (selftest::test_overlapped_fixit_printing): New function.
30878         (selftest::diagnostic_show_locus_c_tests): Call it.
30880 2017-05-03  Nathan Sidwell  <nathan@acm.org>
30882         Canonicalize canonical type hashing
30883         * tree.h (type_hash_canon_hash): Declare.
30884         * tree.c (type_hash_list, attribute_hash_list): Move into
30885         type_hash_canon_hash.
30886         (build_type_attribute_qual_variant): Break out hash code calc into
30887         type_hash_canon_hash.
30888         (type_hash_canon_hash): New.  Generic type hash computation.
30889         (build_range_type_1, build_array_type_1, build_function_type,
30890         build_method_type_directly, build_offset_type, build_complex_type,
30891         make_vector_type): Call it.
30893 2017-05-03  Richard Biener  <rguenther@suse.de>
30895         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30896         When all DRs have unknown misaligned do not always peel
30897         when there is a store but apply the same costing model as if
30898         there were only loads.
30900 2017-05-03  Richard Biener  <rguenther@suse.de>
30902         Revert
30903         PR tree-optimization/80492
30904         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
30905         compare_base_decls returning dont-know properly.
30907 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30909         * config/arm/iterators.md (CCSI): New mode iterator.
30910         (arch): New mode attribute.
30911         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
30912         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
30913         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
30914         code iterator for success result mode.
30915         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
30916         the corresponding new insn generators.
30918 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
30920         Revert r247509
30921         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
30922         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
30924 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
30926         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
30927         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
30928         (DDR_A): Wrap DDR argument in brackets.
30929         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
30930         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
30931         (DDR_REVERSED_P): Likewise.
30933 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
30935         PR tree-optimization/79472
30936         * tree-switch-conversion.c (struct switch_conv_info): Add
30937         contiguous_range and default_case_nonstandard fields.
30938         (collect_switch_conv_info): Compute contiguous_range and
30939         default_case_nonstandard fields, don't clear final_bb if
30940         contiguous_range and only the default case doesn't have the required
30941         structure.
30942         (check_all_empty_except_final): Set default_case_nonstandard instead
30943         of failing if contiguous_range and the default case doesn't have empty
30944         block.
30945         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
30946         and only the default case doesn't have the required constants.  Skip
30947         virtual phis.
30948         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
30949         if default_case_nonstandard.
30950         (build_constructors): Build constant 1 just once.  Assert that default
30951         values aren't inserted in between cases if contiguous_range.  Skip
30952         virtual phis.
30953         (build_arrays): Skip virtual phis.
30954         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
30955         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
30956         Handle virtual phis.
30957         (gen_inbound_check): Handle default_case_nonstandard case.
30958         (process_switch): Adjust check_final_bb caller.  Call
30959         gather_default_values with the first non-default case instead of
30960         default case if default_case_nonstandard.
30962 2017-05-02  Nathan Sidwell  <nathan@acm.org>
30964         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
30965         check.  Fix formatting.
30967 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
30969         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
30970         errors when comparing specialized and unspecialized times.
30972 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
30974         * diagnostic-show-locus.c
30975         (layout::should_print_annotation_line_p): Make private.
30976         (layout::print_annotation_line): Make private.
30977         (layout::annotation_line_showed_range_p): Make private.
30978         (layout::show_ruler): Make private.
30979         (layout::print_source_line): Make private.  Pass in line and
30980         line_width, rather than calling location_get_source_line.  Drop
30981         returned value.
30982         (layout::print_leading_fixits): New method.
30983         (layout::print_any_fixits): Rename to...
30984         (layout::print_trailing_fixits): ...this, and make private.
30985         Don't print newline fixits.
30986         (diagnostic_show_locus): Move logic for printing one row into...
30987         (layout::print_line): ...this new function.  Move the
30988         location_get_source_line call and error-handling from
30989         print_source_line to here.  Call print_leading_fixits, and rename
30990         print_any_fixits to print_trailing_fixits.
30991         (selftest::test_fixit_insert_containing_newline): Update now that
30992         newlines are partially supported.
30993         (selftest::test_fixit_insert_containing_newline_2): New test.
30994         (selftest::test_fixit_replace_containing_newline): Update comments.
30995         (selftest::diagnostic_show_locus_c_tests): Call the new test.
30996         * edit-context.c (class added_line): New class.
30997         (class edited_line): Describe newline handling in comment.
30998         (edited_line::actually_edited_p): New method.
30999         (edited_line::print_content): Delete redundant decl.
31000         (edited_line::m_predecessors): New field.
31001         (edited_file::print_content): Call edited_line::print_content.
31002         (edited_file::print_diff): Update to support newlines.
31003         (edited_file::print_diff_hunk): Likewise.
31004         (edited_file::print_run_of_changed_lines): New function.
31005         (edited_file::print_diff_line): Convert to...
31006         (print_diff_line): ...this.
31007         (edited_file::get_effective_line_count): New function.
31008         (edited_line::edited_line): Initialize new field m_predecessors.
31009         (edited_line::~edited_line): Clean up m_predecessors.
31010         (edited_line::apply_fixit): Handle newlines.
31011         (edited_line::get_effective_line_count): New function.
31012         (edited_line::print_content): New function.
31013         (edited_line::print_diff_lines): New function.
31014         (selftest::test_applying_fixits_insert_containing_newline): New
31015         test.
31016         (selftest::test_applying_fixits_replace_containing_newline): New
31017         test.
31018         (selftest::insert_line): New function.
31019         (selftest::test_applying_fixits_multiple_lines): Add example of
31020         inserting a line.
31021         (selftest::edit_context_c_tests): Call the new tests.
31023 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31025         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
31026         parameter cand.  Update dump information.
31027         (get_computation_cost): Update uses.
31029 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31031         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
31032         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
31033         (get_computation_at, rewrite_use_address): Update use of
31034         get_computation_aff.
31036 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31038         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
31039         (get_computation): Delete.
31040         (get_computation_cost): Implement like get_computation_cost_at.
31041         Use get_computation_at.
31042         (get_computation_cost_at): Delete.
31043         (rewrite_use_nonlinear_expr): Use get_computation_at.
31044         (rewrite_use_compare, remove_unused_ivs): Ditto.
31046 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31048         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
31050 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31052         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
31053         (ivopts_global_cost_for_size): Rename parameter and update uses.
31054         (iv_ca_recount_cost): Update uses.
31055         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
31056         candidates seperately in n_invs and n_cands.
31057         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
31059 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31061         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
31062         (find_inv_vars_cb): New.
31063         (find_depends): Renamed to ...
31064         (find_inv_vars): ... this.
31065         (add_candidate_1, force_var_cost): Call find_inv_vars.
31066         (split_address_cost, determine_group_iv_cost_cond): Ditto.
31068 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31070         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
31071         inv_vars.  Add inv_exprs.
31072         (struct iv_cand): Rename depends_on to inv_vars.
31073         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
31074         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
31075         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
31076         (dump_cand): Dump inv_vars.
31077         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
31078         (record_invariant, find_depends, add_candidate_1): Ditto.
31079         (set_group_iv_cost, force_var_cost): Ditto.
31080         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
31081         (get_computation_cost_at, get_computation_cost): Ditto.
31082         (determine_group_iv_cost_generic): Ditto.
31083         (determine_group_iv_cost_address): Ditto.
31084         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
31085         (determine_group_iv_costs): Ditto.
31086         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
31087         (iv_ca_set_remove_invariants): Renamed to ...
31088         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
31089         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
31090         (iv_ca_set_add_invariants):  Renamed to ...
31091         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
31092         (iv_ca_set_cp): Use iv_ca_set_add_invs.
31093         (iv_ca_has_deps): Support inv_vars and inv_exprs.
31094         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
31095         (create_new_ivs): Remove useless dump.
31097 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31099         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
31100         iv_cand code.
31101         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
31102         (iv_ca_set_no_cp, create_new_iv): Ditto.
31104 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31106         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31108 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
31110         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
31111         function tree_check2.
31113 2017-05-02  Martin Liska  <mliska@suse.cz>
31115         * doc/gcov.texi: Add missing preposition.
31116         * gcov.c (function_info::function_info): Properly fill up
31117         all member variables.
31119 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
31121         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
31123 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
31125         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
31127 2017-05-02  Martin Liska  <mliska@suse.cz>
31129         PR lto/77954.
31130         * lto-streamer-in.c (lto_read_tree_1): Remove
31131         LTO_STREAMER_DEBUG.
31132         * lto-streamer.c (struct tree_hash_entry): Likewise.
31133         (struct tree_entry_hasher): Likewise.
31134         (tree_entry_hasher::hash): Likewise.
31135         (tree_entry_hasher::equal): Likewise.
31136         (lto_streamer_init): Likewise.
31137         (lto_orig_address_map): Likewise.
31138         (lto_orig_address_get): Likewise.
31139         (lto_orig_address_remove): Likewise.
31140         * lto-streamer.h: Likewise.
31141         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
31142         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
31144 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
31146         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
31147         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
31148         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
31149         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
31150         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
31151         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
31152         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
31153         (mm_maskz_sub_ss): New intrinsics.
31154         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31155         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31156         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
31157         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
31158         (__builtin_ia32_subss_mask_round): New builtins.
31159         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31160         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31161         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
31162         Renamed to ...
31163         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
31164         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31165         Changed to ...
31166         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31167         ... this.
31169 2017-05-02  Martin Jambor  <mjambor@suse.cz>
31171         PR tree-optimization/78687
31172         * tree-sra.c (access): New field parent.
31173         (process_subtree_disqualification): New function.
31174         (disqualify_candidate): Call it.
31175         (build_accesses_from_assign): Reset write flag if creating an
31176         assighnment link.
31177         (build_access_subtree): Fill in parent field and also prpagate
31178         down grp_write flag.
31179         (create_artificial_child_access): New parameter set_grp_write, set
31180         grp_write to its value.
31181         (propagate_subaccesses_across_link): Also propagate grp_write flag
31182         values.
31183         (propagate_all_subaccesses): Push the closest parent back to work
31184         queue if add_access_to_work_queue returned true.
31186 2017-05-02  Richard Biener  <rguenther@suse.de>
31188         * common.opt (fstrict-overflow): Alias negative to fwrapv.
31189         * doc/invoke.texi (fstrict-overflow): Remove all traces of
31190         -fstrict-overflow documentation.
31191         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
31192         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
31193         flag_strict_overflow.
31194         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
31195         * lto-opts.c (lto_write_options): Do not stream it.
31196         * lto-wrapper.c (merge_and_complain): Do not handle it.
31197         * opts.c (default_options_table): Do not set -fstrict-overflow.
31198         (finish_options): Likewise do not clear it when sanitizing.
31199         * simplify-rtx.c (simplify_const_relational_operation): Do not
31200         test flag_strict_overflow.
31202 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
31204         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
31205         using enabled attribute.
31206         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
31207         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
31208         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
31209         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
31210         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
31211         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
31212         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
31213         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
31214         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
31215         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
31217 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
31219         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
31221 2017-05-02  Richard Biener  <rguenther@suse.de>
31223         PR tree-optimization/80591
31224         Revert
31225         2017-04-10  Richard Biener  <rguenther@suse.de>
31227         * tree-ssa-structalias.c (find_func_aliases): Properly handle
31228         asm inputs.
31230 2017-05-02  Richard Biener  <rguenther@suse.de>
31232         PR tree-optimization/80549
31233         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
31234         (cleanup_tree_cfg_noloop): Create forwarders to known loop
31235         headers if they do not have a preheader.
31237 2017-05-02  Martin Liska  <mliska@suse.cz>
31239         PR other/80589
31240         * common.opt: Fix typo.
31241         * doc/invoke.texi: Likewise.
31243 2017-05-01  Jan Beulich  <jbeulich@suse.com>
31245         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
31246         swapping, add (x,x,m,x,n) alternative.
31248 2017-05-01  Nathan Sidwell  <nathan@acm.org>
31250         * calls.c (combine_pending_stack_adjustment_and_call): Remove
31251         unnecessary unadjusted_alignment check.
31253 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
31255         PR c++/80038
31256         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
31257         operations here.
31258         * gimplify.c (gimplify_cilk_detach): New function.
31259         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
31260         * tree-core.h: Document EXPR_CILK_SPAWN.
31261         * tree.h (EXPR_CILK_SPAWN): Define.
31263 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
31265         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
31266         to use new fixit_hint representation, using the "replace" logic.
31267         (get_line_span_for_fixit_hint): Likewise.
31268         (layout::print_any_fixits): Likewise.
31269         (selftest::test_one_liner_many_fixits): Rename to...
31270         (selftest::test_one_liner_many_fixits_1): ...this, and update
31271         comment and expected output to reflect that the multiple fix-it
31272         hints are now consolidated into one insertion.
31273         (selftest::test_one_liner_many_fixits_2): New test.
31274         (selftest::test_diagnostic_show_locus_one_liner): Update for
31275         above.
31276         (selftest::test_fixit_consolidation): Update for fix-it API
31277         change.
31278         * diagnostic.c (print_parseable_fixits): Likewise.
31279         * edit-context.c (edited_line::m_line_events): Convert from
31280         auto_vec <line_event *> to auto_vec <line_event>.
31281         (class line_event): Convert from abstract base class to a concrete
31282         class, taking over the role of replace_event.
31283         (class insert_event): Delete.
31284         (class replace_event): Rename to class line_event.  Convert to
31285         half-open range.
31286         (edit_context::add_fixits): Reimplement.
31287         (edit_context::apply_insert): Delete.
31288         (edit_context::apply_replace): Rename to...
31289         (edit_context::apply_fixit): ...this.  Convert to half-open range.
31290         (edited_file::apply_insert): Delete.
31291         (edited_file::apply_replace): Rename to...
31292         (edited_file::apply_fixit): ...this.
31293         (edited_line::~edited_line): Drop deletion of events.
31294         (edited_line::apply_insert): Delete.
31295         (edited_line::apply_replace): Rename to...
31296         (edited_line::apply_fixit): ...this.  Convert to half-open range.
31297         Update for change to type of m_line_events.
31298         * edit-context.h (edit_context::apply_insert): Delete.
31299         (edit_context::apply_replace): Rename to...
31300         (edit_context::apply_fixit): ...this.
31302 2017-05-01  Martin Sebor  <msebor@redhat.com>
31304         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
31305         known.
31307 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
31309         PR target/68491
31310         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
31311         __get_cpuid_max returns 0.
31312         (__get_cpuid_count): Ditto.
31314 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
31316         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
31317         replacement expression is another instance of one of its arguments.
31319 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
31321         PR target/79430
31322         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
31323         check for stack push/pop autoinc.
31324         * config/i386/i386.c (ix86_agi_dependent): Return false
31325         if the only reason why modified_in_p returned true is that
31326         addr is SP based and set_insn is a push or pop.
31328 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
31330         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
31331         overflow check.
31333 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
31335         PR ipa/79224
31336         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
31337         (account_size_time): Use two predicates - exec_pred and
31338         nonconst_pred_ptr.
31339         (evaluate_conditions_for_known_args): Compute both clause and
31340         nonspec_clause.
31341         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
31342         (inline_summary_t::duplicate): Update.
31343         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
31344         separately.
31345         (compute_inline_parameters): Likewise.
31346         (estimate_edge_size_and_time): Update caluclation of time.
31347         (estimate_node_size_and_time): Compute both time and nonspecialized
31348         time.
31349         (estimate_ipcp_clone_size_and_time): Update.
31350         (inline_merge_summary): Update.
31351         (do_estimate_edge_time): Update.
31352         (do_estimate_edge_size): Update.
31353         (do_estimate_edge_hints): Update.
31354         (inline_read_section, inline_write_summary): Stream both new predicates.
31355         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
31356         as argument.
31357         (compute_inlined_call_time): Cleanup.
31358         (big_speedup_p): Update.
31359         (edge_badness): Update.
31360         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
31361         (size_time_entry): Replace predicate by exec_predicate and
31362         nonconst_predicate.
31363         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
31364         (estimate_edge_time): Return also nonspec_time.
31365         (reset_edge_growth_cache): Update.
31367 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
31369         PR rtl-optimization/80491
31370         * ifcvt.c (noce_process_if_block): When looking for x setter
31371         with missing else_bb, don't check only the insn right before
31372         cond_earliest, but look for the last insn that x is modified in
31373         within the same bb.
31375         PR rtl-optimization/80491
31376         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
31378 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
31380         PR tree-optimization/80487
31381         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
31383 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31385         PR tree-optimization/79697
31386         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
31387         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
31388         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
31389         BUILT_IN_STRNDUP.
31390         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
31391         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
31393 2017-04-28  Martin Sebor  <msebor@redhat.com>
31395         PR tree-optimization/80523
31396         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
31397         (init_target_to_host_charmap, target_to_host, target_strtol10): New
31398         functions.
31399         (maybe_warn, format_directive, parse_directive): Use new functions.
31400         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
31402 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
31404         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
31406 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31408         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
31409         target_header_dir): Set correctly.
31410         * configure: Regenerated.
31411         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
31412         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
31413         instead of SYSTEM_HEADER_DIR.
31415 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
31417         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
31418         (estimate_local_effects): Likewise.
31419         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
31420         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
31421         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
31422         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
31423         do_estimate_edge_time, estimate_edge_time): Likewise.
31424         * ipa-inline-analysis.c (estimate_node_size_and_time,
31425         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
31426         (estimate_time_after_inlining): Remove.
31428 2017-04-28  Martin Liska  <mliska@suse.cz>
31430         * doc/gcov.texi: Enhance documentation of gcov.
31432 2017-04-28  Martin Liska  <mliska@suse.cz>
31434         * doc/gcov.texi: Sort options in alphabetic order.
31435         * doc/gcov-dump.texi: Likewise.
31436         * doc/gcov-tool.texi: Likewise.
31437         * gcov.c (print_usage): Likewise.
31438         * gcov-dump.c (print_usage): Likewise.
31439         * gcov-tool.c (print_merge_usage_message): Likewise.
31440         (print_rewrite_usage_message): Likewise.
31441         (print_overlap_usage_message): Likewise.
31443 2017-04-28  Martin Liska  <mliska@suse.cz>
31445         PR gcov-profile/53915
31446         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
31448 2017-04-28  Martin Liska  <mliska@suse.cz>
31450         PR gcov-profile/79891
31451         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
31452         is marked by compiler as living on a line.
31453         (get_cycles_count): Remove usage of the union.
31454         (output_intermediate_file): Likewise.
31455         (find_source): Fix GNU coding style.
31456         (accumulate_line_counts): Remove old non-all block mode.
31457         (output_lines): Remove usage of the union.
31458         * profile.c (output_location): Include all BBs, even if
31459         belonging to a same line (and file) as a previous BB.
31461 2017-04-28  Martin Liska  <mliska@suse.cz>
31463         * gcov.c (process_args): Handle new argument 'w'.
31464         (read_graph_file): Assign ID to BBs.
31465         (output_branch_count): Display BB # if verbose flag is set.
31466         (output_lines): Likewise for arcs.
31467         (print_usage): Add '--verbose' option help.
31468         * doc/gcov.texi: Document --verbose (-w) option.
31470 2017-04-28  Martin Liska  <mliska@suse.cz>
31472         * gcov.c (struct block_location_info): New struct.
31473         (process_file): Fill up the new structure.
31474         (read_graph_file): Replace usage of encoding by the newly added
31475         struct.
31476         (add_line_counts): Likewise.
31477         (accumulate_line_counts): Remove usage of the union.
31478         (function_info::function_info): New function.
31479         (function_info::~function_info): Likewise.
31480         (process_file): Call delete instead of release_function.
31481         (release_function): Release the function.
31482         (release_structures): Call delete instead of release_function.
31483         (solve_flow_graph): Replace usage of num_blocks.
31484         (find_exception_blocks): Likewise.
31485         (output_lines): Fix GNU coding style.
31487 2017-04-28  Martin Liska  <mliska@suse.cz>
31489         PR driver/56469
31490         * coverage.c (coverage_remove_note_file): New function.
31491         * coverage.h: Declare the function.
31492         * toplev.c (finalize): Clean if an error has been seen.
31494 2017-04-28  Martin Liska  <mliska@suse.cz>
31496         PR gcov-profile/80031
31497         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
31498         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
31499         * gcov.c (read_graph_file): Read just number of blocks.
31500         * profile.c (branch_prob): Do not stream 0 flags per a basic
31501         block.
31503 2017-04-28  Martin Liska  <mliska@suse.cz>
31505         * gcov-dump.c (tag_*): Add new argument to declarations.
31506         (dump_gcov_file): Likewise.
31507         (tag_blocks): Add and use new argument depth.
31508         (tag_arcs): Likewise.
31509         (tag_lines): Likewise.
31510         (tag_counters): Likewise.
31511         (tag_summary): Likewise.
31512         (dump_working_sets): Use depth to do a proper indentation.
31514 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
31516         PR bootstrap/80531
31517         * cgraph.h (symtab_node::debug_symtab): No longer inline.
31518         * symtab.c (symtab_node::debug_symtab): Move definition here.
31520 2017-04-28  Richard Biener  <rguenther@suse.de>
31522         * lto-streamer.h (LTO_major_version): Bump to 7.
31524 2017-04-28  Richard Biener  <rguenther@suse.de>
31526         * tree-vrp.c (assert_info): New struct.
31527         (add_assert_info): New helper.
31528         (register_edge_assert_for_2): Refactor to add asserts to a vector
31529         of assert_info.
31530         (register_edge_assert_for_1): Likewise.
31531         (register_edge_assert_for): Likewise.
31532         (finish_register_edge_assert_for): New helper actually registering
31533         asserts where live on edge.
31534         (find_conditional_asserts): Adjust.
31535         (find_switch_asserts): Likewise.
31536         (evrp_dom_walker::try_find_new_range): Generalize.
31537         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
31539 2017-04-27  Marek Polacek  <polacek@redhat.com>
31541         PR sanitizer/80349
31542         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
31543         arg10 and arg11 to itype.
31545 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
31547         * doc/extend.texi (Object Size Checking): Improve grammar.
31549 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
31551         PR target/80530
31552         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
31553         that the logic for permitting reciprocal estimates matches that
31554         in use_rsqrt_p.
31556 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
31558         PR c++/80534
31559         * tree.c (type_cache_hasher::equal): Only compare
31560         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
31561         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
31562         non-aggregate element types.
31563         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
31564         about the flag on ARRAY_TYPEs in the comment, formatting fix.
31566 2017-04-27  Richard Biener  <rguenther@suse.de>
31568         PR middle-end/80533
31569         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
31570         stripping ARRAY_REFs from MEM_EXPR make sure we're not
31571         keeping a reference to a trailing array.
31573 2017-04-27  Richard Biener  <rguenther@suse.de>
31575         PR middle-end/80539
31576         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
31577         being in loop-closed SSA form conservatively.
31578         (chrec_fold_multiply_poly_poly): Likewise.
31580 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
31582         PR middle-end/79665
31583         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
31584         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
31586 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
31588         PR target/77728
31589         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
31590         (aarch64_function_arg_alignment): Return unsigned int again, but still
31591         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
31592         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
31593         Don't emit -Wpsabi note.
31594         (aarch64_function_arg_boundary): Likewise.
31595         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
31596         caller.
31598 2017-04-26  Nathan Sidwell  <nathan@acm.org>
31600         * tree.h (crc32_unsigned_n): Declare.
31601         (crc32_unsigned, crc32_unsigned): Make inline.
31602         * tree.c (crc32_unsigned_bits): Replace with ...
31603         (crc32_unsigned_n): ... this.
31604         (crc32_unsigned, crc32_byte): Remove.
31605         (crc32_string): Remove unnecessary braces.
31607 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
31609         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
31610         * ipa-inline-analysis.c (MAX_TIME): Remove.
31611         (account_size_time): Use sreal for time.
31612         (dump_inline_summary): Update.
31613         (estimate_function_body_sizes): Update.
31614         (estimate_edge_size_and_time): Update.
31615         (estimate_calls_size_and_time): Update.
31616         (estimate_node_size_and_time): Update.
31617         (inline_merge_summary): Update.
31618         (inline_update_overall_summary): Update.
31619         (estimate_time_after_inlining): Update.
31620         (inline_read_section): Update.
31621         (inline_write_summary): Update.
31622         * ipa-inline.c (compute_uninlined_call_time): Update.
31623         (compute_inlined_call_time): Update.
31624         (recursive_inlining): Update.
31625         (inline_small_functions): Update.
31626         (dump_overall_stats): Update.
31627         * ipa-inline.h: Include sreal.h.
31628         (size_time_entry): Turn time to sreal.
31629         (inline_summary): Turn self_time nad time to sreal.
31631 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
31633         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
31634         data-streamer.h
31635         (sreal::stream_out, sreal::stream_in): New.
31636         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
31638 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
31640         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
31641         environment.
31643 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
31645         PR target/70799
31646         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
31647         Handle ASHIFTRT.
31648         (dimode_scalar_chain::compute_convert_gain): Ditto.
31649         (dimode_scalar_chain::make_vector_copies): Ditto.
31650         (dimode_scalar_chain::convert_reg): Ditto.
31651         (dimode_scalar_chain::convert_insn): Ditto.
31652         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
31653         (VI248_AVX512BW_1): New mode iterator.
31654         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
31655         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
31656         mode iterator.
31658 2017-04-25  Martin Sebor  <msebor@redhat.com>
31660         PR tree-optimization/80497
31661         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
31662         constants are representable in HOST_WIDE_INT.
31663         (parse_directive): Ditto.
31665 2017-04-25  Martin Sebor  <msebor@redhat.com>
31667         PR bootstrap/80486
31668         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
31669         (new_zero_array): Adjust signature.
31670         (dom_info::dom_init): Used unsigned rather that size_t.
31671         (dom_info::dom_info): Same.
31673 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31674             Jakub Jelinek  <jakub@redhat.com>
31676         PR target/77728
31677         * config/arm/arm.c: Include gimple.h.
31678         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
31679         returns negative, increment ncrn only if it returned positive.
31680         (arm_needs_doubleword_align): Return int instead of bool,
31681         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
31682         members, but if there is any such non-FIELD_DECL
31683         > PARM_BOUNDARY aligned decl, return -1 instead of false.
31684         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
31685         returns negative, increment nregs only if it returned positive.
31686         (arm_setup_incoming_varargs): Likewise.
31687         (arm_function_arg_boundary): Emit -Wpsabi note if
31688         arm_needs_doubleword_align returns negative, return
31689         DOUBLEWORD_ALIGNMENT only if it returned positive.
31691 2017-04-25  Marek Polacek  <polacek@redhat.com>
31693         PR sanitizer/80349
31694         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
31695         first argument to type.
31697 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
31699         PR target/80482
31700         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
31701         type checks to test for compatibility instead of equality.
31703 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31704             Jakub Jelinek  <jakub@redhat.com>
31706         PR target/77728
31707         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
31708         type.
31709         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
31710         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
31711         the alignment computation, but return their maximum in warn_alignment.
31712         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
31713         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
31714         is smaller.
31715         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
31716         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
31717         caller.
31719 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31721         * config/arc/simdext.md (dmpyh): Fix typo.
31723 2017-04-25  Richard Biener  <rguenther@suse.de>
31725         PR tree-optimization/80492
31726         * alias.c (compare_base_decls): Handle registers with asm
31727         specification conservatively.
31728         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
31729         compare_base_decls returning dont-know properly.
31731 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31733         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
31734         (legitimate_offset_address_p): New function.
31735         (arc_legitimate_address_p): Use above function.
31737 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31739         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
31741 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31743         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
31744         ACCH registers whenever they are available.
31746 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31748         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
31749         double regs fix when not used.
31751 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31753         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
31754         core registers.
31755         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
31756         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
31758 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31760         * config/arc/arc.c (arc_output_addsi): Check for h-register class
31761         when emitting short ADD instructions.
31763 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
31765         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
31766         constraint.
31767         (cmpsi_cc_c_insn): Likewise.
31768         (cbranchsi4_scratch): Compute proper instruction length using
31769         compact_hreg_operand.
31770         * config/arc/predicates.md (compact_hreg_operand): New predicate.
31772 2017-04-25  Richard Biener  <rguenther@suse.de>
31774         PR middle-end/80509
31775         * passes.c (pass_manager::pass_manager): Initialize
31776         m_name_to_pass_map.
31778 2017-04-25  Richard Biener  <rguenther@suse.de>
31780         PR tree-optimization/79201
31781         * tree-ssa-sink.c (statement_sink_location): Handle calls.
31783 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31785         PR target/80464
31786         * config/s390/vector.md: Split MEM->GPR vector moves for
31787         non-s_operand addresses.
31789 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31791         PR target/79895
31792         * config/s390/predicates.md (reload_const_wide_int_operand): New
31793         predicate.
31794         * config/s390/s390.md ("movti"): Remove d/P alternative.
31795         ("movti_bigconst"): New pattern definition.
31797 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31799         PR target/80080
31800         * s390-protos.h (s390_expand_cs_hqi): Removed.
31801         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
31802         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
31803         modes as well as CCZ1mode and CCZmode.
31804         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
31805         signature of s390_emit_compare_and_swap.
31806         (s390_expand_cs_hqi): Likewise, make static.
31807         (s390_expand_cs_tdsi): Generate an explicit compare before trying
31808         compare-and-swap, in some cases.
31809         (s390_expand_cs): Wrapper function.
31810         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
31811         atomic_exchange.
31812         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
31813         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
31814         patterns for small and large integers.  Forbid symref memory operands.
31815         Move expander to s390.c.  Require cc register.
31816         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
31817         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
31818         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
31819         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
31820         symref memory operands.  Remove CC mode and call s390_match_ccmode
31821         instead.
31822         ("atomic_exchange<mode>"): Allow and implement all integer modes.
31824 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31826         * config/s390/s390.md (define_peephole2): New peephole to help
31827         combining the load-and-test pattern with volatile memory.
31829 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31831         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
31832         with CCZmode for TARGET_Z196.
31834 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
31836         PR rtl-optimization/80501
31837         * combine.c (make_compound_operation_int): Set subreg_code to SET
31838         even for AND with mask of the sign bit of mode.
31840         PR rtl-optimization/80500
31841         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
31842         sum's initial value.
31844 2017-04-25  Julian Brown  <julian@codesourcery.com>
31845             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
31847         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
31849 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
31851         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
31853 2017-04-25  Julian Brown  <julian@codesourcery.com>
31854             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
31856         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
31857         (thunderx2t99_sha): New Reservation.
31859 2017-04-25  Julian Brown  <julian@codesourcery.com>
31860             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
31862         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
31863         type for 1-element load.
31865 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
31867         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
31869 2017-04-24  Martin Jambor  <mjambor@suse.cz>
31871         PR tree-optimization/80293
31872         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
31873         char arrays not totally scalarizable if it is false.
31874         (analyze_all_variable_accesses): Pass correct value in the new
31875         parameter.  Add a statistics counter.
31877 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
31879         PR middle-end/79931
31880         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
31882 2017-04-24  Richard Biener  <rguenther@suse.de>
31884         PR tree-optimization/80494
31885         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
31886         out for complex types.
31888 2017-04-24  Richard Biener  <rguenther@suse.de>
31890         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
31891         * tree-ssa-sccvn.c (print_scc): Print SCC size.
31892         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
31893         (DFS): Adjust and never fail.
31894         (sccvn_dom_walker::fail): Remove.
31895         (sccvn_dom_walker::before_dom_children): Adjust.
31896         (run_scc_vn): Likewise and never fail.
31897         * tree-ssa-pre.c (pass_pre::execute): Adjust.
31898         (pass_fre::execute): Likewise.
31900 2017-04-24  Richard Biener  <rguenther@suse.de>
31902         PR tree-optimization/79725
31903         * tree-ssa-sink.c (statement_sink_location): Return whether
31904         failure reason was zero uses.  Move that check later.
31905         (sink_code_in_bb): Deal with zero uses by removing the stmt
31906         if possible.
31908 2017-04-24  Richard Biener  <rguenther@suse.de>
31910         PR c++/2972
31911         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
31912         pointer-based references.
31914 2017-04-24  Richard Biener  <rguenther@suse.de>
31916         PR bootstrap/79814
31917         * pass_manager.h (pass_manager::operator new): Remove.
31918         (pass_manager::operator delete): Likewise.
31919         * passes.c (pass_manager::operator new): Remove.
31920         (pass_manager::operator delete): Likewise.
31921         (pass_manager::pass_manager): Zero individual pass members.
31923 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
31925         PR target/70799
31926         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
31927         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
31928         Check "XEXP (src, 1)" operand here.
31929         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
31930         Check "XEXP (src, 1)" operand here.
31931         (dimode_scalar_chain::make_vector_copies): Detect count register
31932         of a shift instruction.  Zero extend count register from QImode
31933         to DImode to satisfy vector shift pattern count operand predicate.
31934         Substitute vector shift count operand with a DImode copy.
31935         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
31936         vector register.
31938 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
31940         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
31941         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
31942         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
31943         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
31944         (UNSPEC_NOREX_MEM): Remove definition.
31946 2017-04-21  Richard Biener  <rguenther@suse.de>
31948         PR tree-optimization/79547
31949         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
31950         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
31951         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
31952         without any constraints.
31954 2017-04-21  Richard Biener  <rguenther@suse.de>
31956         PR tree-optimization/78847
31957         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
31959 2017-04-21  Richard Biener  <rguenther@suse.de>
31961         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
31962         (build_distinct_type_copy): Likewise.
31963         (build_variant_type_copy): Likewise.
31964         * tree.c (build_qualified_type): Pass down mem-stat info.
31965         (build_distinct_type_copy): Likewise.
31966         (build_variant_type_copy): Likewise.
31968 2017-04-21  Richard Biener  <rguenther@suse.de>
31970         PR tree-optimization/80237
31971         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
31972         defaulted to NULL.
31973         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
31974         for a simplified result.
31976 2016-04-21  Richard Biener  <rguenther@suse.de>
31978         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
31979         sth as strict as a simple_iv but a chrec without symbols and an
31980         operand defined in the loop we are peeling (and not some subloop).
31981         (propagate_constants_for_unrolling): Propagate all constants.
31983 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
31985         PR target/79804
31986         * config/i386/i386.c (print_reg): Remove assert for disalowed
31987         regno values, call output_operand_lossage instead.
31989 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
31991         PR target/78090
31992         * config/i386/constraints.md (Yc): New register constraint.
31993         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
31994         Use Yc constraint for alternative 2 of operand 0.  Remove
31995         preferred_for_speed attribute.
31997 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
31999         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
32000         lastprivate clauses in SIMT case.
32002 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
32004         * doc/invoke.texi (-Wextra-semi): Document new warning option.
32006 2017-04-20  Richard Biener  <rguenther@suse.de>
32008         PR tree-optimization/57796
32009         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
32010         as N scalar stores.
32011         (vect_model_load_cost): Cost gathers as N scalar loads.
32013 2017-04-20  Richard Biener  <rguenther@suse.de>
32015         * ggc-page.c (ggc_allocated_p): Rename to ...
32016         (safe_lookup_page_table_entry): ... this and return the lookup
32017         result.
32018         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
32020 2017-04-20  Richard Biener  <rguenther@suse.de>
32022         PR tree-optimization/80453
32023         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
32024         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
32025         from the conditions.
32026         (vn_phi_eq): Pass them down.
32027         (vn_phi_lookup): Record them.
32028         (vn_phi_insert): Likewise.
32030 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
32032         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
32033         uninitialized variable warning to avoid buffer overrun.
32035 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
32037         PR other/71250
32038         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
32039         is suppressed for '{ 0 }' in C.
32041 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
32043         * BASE-VER: Set to 8.0.0.
32045 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32047         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
32048         priority .init_array and .fini_array section with SECTION_NOTYPE
32049         flag.
32051 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
32053         PR middle-end/80423
32054         * tree.h (build_array_type): Add typeless_storage default argument.
32055         * tree.c (type_cache_hasher::equal): Also compare
32056         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
32057         (build_array_type): Add typeless_storage argument, set
32058         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
32059         recursive call.
32060         (build_nonshared_array_type): Adjust build_array_type_1 caller.
32061         (build_array_type): Likewise.  Add typeless_storage argument.
32063 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32064             Jakub Jelinek  <jakub@redhat.com>
32066         PR tree-optimization/80426
32067         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
32068         operation on symbolic operands, also compute the overflow for the
32069         invariant part when the operation degenerates into a negation.
32071 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
32073         PR debug/80461
32074         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
32075         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
32077         PR debug/80436
32078         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
32080 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
32082         PR target/80462
32083         * config/avr/avr.c (tree.h): Include it.
32084         (cgraph.h): Include it.
32085         (avr_encode_section_info): Don't warn for uninitialized progmem
32086         variable if it's just an alias.
32088 2017-04-19  Richard Biener  <rguenther@suse.de>
32090         PR ipa/65972
32091         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
32092         when needed by AutoPGO.
32094 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
32096         PR lto/50345
32097         * doc/lto.texi: Remove an extra 'that'.
32099 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
32101         PR rtl-optimization/80429
32102         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
32103         are only used in debug insns.
32105 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32106             Vladimir Makarov  <vmakarov@redhat.com>
32108         * config/sparc/predicates.md (input_operand): Add comment.  Return
32109         true for any memory operand when LRA is in progress.
32110         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
32112 2017-04-18  Jeff Law  <law@redhat.com>
32114         PR target/74563
32115         * mips.md ({return,simple_return}_internal): Do not overwrite
32116         operands[0].
32118 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32120         PR tree-optimization/80443
32121         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
32122         instead of adding 1, subtract -1 and similarly instead of subtracting
32123         1 add -1.
32125 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
32127         PR rtl-optimization/80357
32128         * haifa-sched.c (tmp_bitmap): New variable.
32129         (model_recompute): Handle duplicate use records.
32130         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
32131         (free_global_sched_pressure_data): Free it.
32133 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32135         Revert:
32136         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32137         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32138         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32139         instead of SYSTEM_HEADER_DIR.
32141 2017-04-18  Jeff Law  <law@redhat.com>
32143         PR middle-end/80422
32144         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
32145         predecessors after walking up the insn chain.
32147 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32149         PR debug/80263
32150         * dwarf2out.c (modified_type_die): Try harder not to emit internal
32151         sizetype type into debug info.
32153 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32155         PR target/80099
32156         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
32157         unneeded test for TARGET_UPPER_REGS_SF.
32158         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
32160 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32162         PR sanitizer/80444
32163         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
32164         instead of gsi_after_labels.
32166 2017-04-18  Jeff Law  <law@redhat.com>
32168         * regcprop.c (maybe_mode_change): Avoid creating copies of the
32169         stack pointer.
32171         Revert:
32172         2017-04-13  Jeff Law  <law@redhat.com>
32173         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
32174         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
32176 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
32178         PR target/79453
32179         * config/avr/avr.c (intl.h): Include it.
32180         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
32182 2017-04-18  Martin Liska  <mliska@suse.cz>
32184         PR gcov-profile/78783
32185         * gcov-tool.c (gcov_output_files): Validate that destination
32186         file is either removed by the tool or by a user.
32188 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
32189             Guy Benyei  <guybe@mellanox.com>
32191         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
32192         block, and do not negate it, the stored id is already negative.
32194 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
32196         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
32198 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32200         PR target/80098
32201         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
32202         masks of options that should be turned off if the VSX vector
32203         options are turned off.
32204         (OTHER_P8_VECTOR_MASKS): Likewise.
32205         (OTHER_VSX_VECTOR_MASKS): Likewise.
32206         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
32207         rs6000_disable_incompatible_switches to validate no type switches
32208         like -mvsx.
32209         (rs6000_incompatible_switch): New function to disallow turning on
32210         other vector options if -mno-vsx, -mno-power8-vector, or
32211         -mno-power9-vector are specified.
32213 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
32215         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
32217 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
32219         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
32220         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
32221         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
32222         (ARG_POINTER_CFA_OFFSET): Likewise.
32224 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
32226         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
32227         conditions to take advantage of various optimizations.
32229 2017-04-13  Jeff Law  <law@redhat.com>
32231         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
32232         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
32233         (zero_extendsidi2_dext): Likewise.
32235 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
32237         PR sanitizer/80403
32238         * fold-const.c (fold_ternary_loc): Revert
32239         use op0 instead of fold_convert_loc (loc, type, arg0) part of
32240         2017-04-12 change.
32242 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
32244         PR rtl-optimization/80343
32245         * lra-remat.c (update_scratch_ops): Assign original hard reg to
32246         new scratch pseudo.
32248 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
32250         PR sanitizer/80414
32251         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
32252         to ubsan_encode_value.
32254 2017-04-13  Jeff Law  <law@redhat.com>
32256         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
32257         appearing in DEBUG_INSNs.
32259 2017-04-13  Martin Liska  <mliska@suse.cz>
32261         PR gcov-profile/80413
32262         * gcov-io.c (gcov_write_string): Copy to buffer just when
32263         allocated size is greater than zero.
32265 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
32267         PR debug/80321
32268         * dwarf2out.c (decls_for_scope): Ignore declarations of
32269         current_function_decl in BLOCK_NONLOCALIZED_VARS.
32271 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
32273         PR lto/69953
32274         * ipa-visibility.c (non_local_p): Fix typos.
32275         (localize_node): When localizing symbol in same comdat group,
32276         dissolve the group only when we know external symbols are going
32277         to be privatized.
32278         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
32280 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
32282         PR tree-optimization/79390
32283         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
32284         order does not result in usable sequence, retry with reversed operand
32285         order.
32287         PR sanitizer/80403
32288         PR sanitizer/80404
32289         PR sanitizer/80405
32290         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
32291         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
32292         op0 instead of fold_convert_loc (loc, type, arg0).
32294 2017-04-12  Jeff Law  <law@redhat.com>
32296         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
32297         has a delay slot in the generated code.
32299         * config/cris/cris.md (cris_preferred_reload_class): Return
32300         GENNONACR_REGS rather than GENERAL_REGS.
32302 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
32304         PR c/80163
32305         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
32306         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
32307         signedness of the result type.
32309 2017-04-12  Richard Biener  <rguenther@suse.de>
32310             Jeff Law  <law@redhat.com>
32312         PR tree-optimization/80359
32313         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
32314         trim stores to TARGET_MEM_REFs.
32316 2017-04-12  Richard Biener  <rguenther@suse.de>
32318         PR tree-optimization/79390
32319         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
32320         threading case even more.
32322 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
32324         PR target/80382
32325         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
32326         for quad_address_p for TImode, instead of just not indexed_address.
32328 2017-04-12  Richard Biener  <rguenther@suse.de>
32329             Bernd Edlinger  <bernd.edlinger@hotmail.de>
32331         PR middle-end/79671
32332         * alias.c (component_uses_parent_alias_set_from): Handle
32333         TYPE_TYPELESS_STORAGE.
32334         (get_alias_set): Likewise.
32335         * tree-core.h (tree_type_common): Add typeless_storage flag.
32336         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
32337         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
32338         for types containing members with TYPE_TYPELESS_STORAGE.
32339         (place_field): Likewise.
32340         (layout_type): Likewise for ARRAY_TYPE.
32341         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
32342         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
32343         TYPE_TYPELESS_STORAGE.
32344         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
32346 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
32348         PR sanitizer/80349
32349         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
32350         first argument to type.
32352 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32354         PR target/80376
32355         PR target/80315
32356         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
32357         CONST0_RTX (mode) rather than const0_rtx where appropriate.
32358         (rs6000_expand_binop_builtin): Likewise.
32359         (rs6000_expand_ternop_builtin): Likewise; also add missing
32360         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
32361         vshasigma built-ins.
32362         * doc/extend.texi: Document that vec_xxpermdi's third argument
32363         must be a constant.
32365 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
32367         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
32368         Use shift_const cost parameter when calculating gain of STV shifts.
32370 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
32372         PR rtl-optimization/70478
32373         * lra-constraints.c (process_alt_operands): Check memory for
32374         disfavoring memory insn operand.
32376 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
32378         PR middle-end/80100
32379         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
32380         left shift in unsigned HOST_WIDE_INT type.
32382         PR rtl-optimization/80385
32383         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
32384         (not (neg X)) into (plus X -1) for complex or non-integral modes.
32386         PR libgomp/80394
32387         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
32388         if they have any depend clauses.
32390 2017-04-11  Martin Liska  <mliska@suse.cz>
32392         PR ipa/80212
32393         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
32394         * ipa-split.c (split_function): Create a local comdat symbol
32395         if caller is in a comdat group.
32397 2017-04-11  Martin Liska  <mliska@suse.cz>
32399         PR ipa/80212
32400         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
32401         flags.
32403 2017-04-11  Martin Sebor  <msebor@redhat.com>
32405         PR middle-end/80364
32406         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
32407         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
32408         for INTEGER_TYPE.
32409         (directive::set_width, directive::set_precision, format_character):
32410         Adjust.
32411         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
32412         INTEGER_TYPE.
32414 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
32416         PR target/80389
32417         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
32418         conflict, set target->arch_name instead of target->cpu_name.
32420 2017-04-11  Richard Biener  <rguenther@suse.de>
32422         PR tree-optimization/80374
32423         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
32424         build_zero_cst, remove fold_convertible_p check again.
32426 2017-04-11  Martin Liska  <mliska@suse.cz>
32428         PR sanitizer/70878
32429         * ubsan.c (instrument_object_size): Do not instrument register
32430         variables.
32432 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
32434         PR target/80381
32435         * config/i386/i386-builtin-types.def
32436         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
32437         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
32438         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
32439         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
32440         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
32441         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
32442         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
32443         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
32444         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
32445         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
32446         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
32447         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
32448         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
32449         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
32450         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
32451         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
32452         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
32453         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
32454         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
32455         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
32456         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
32457         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
32458         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
32459         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
32460         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
32461         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
32462         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
32463         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
32464         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
32465         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
32466         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
32467         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
32468         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
32469         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
32470         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
32471         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
32472         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
32473         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
32474         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
32475         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
32476         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
32477         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
32478         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
32479         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
32480         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
32481         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
32482         aliases.
32483         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
32484         flag to second_arg_count, handle 4 argument function type _COUNT
32485         aliases, handle second_arg_count on second argument rather than last.
32487 2017-04-10  Jeff Law  <law@redhat.com>
32489         PR tree-optimization/80374
32490         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
32491         record anything if we can not convert integer_zero_node to the
32492         desired type.
32494 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
32496         PR target/80108
32497         * config/rs6000/rs6000.c (rs6000_option_override_internal):
32498         Enhance special handling given to the TARGET_P9_MINMAX option in
32499         relation to certain other options.
32501 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
32503         PR tree-optimization/80153
32504         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
32505         remove POINTER_PLUS_EXPR's base part directly, rather than through
32506         aff_tree.
32508 2017-04-10  Richard Biener  <rguenther@suse.de>
32509             Bin Cheng  <bin.cheng@arm.com>
32511         PR tree-optimization/80153
32512         * tree-affine.c (aff_combination_to_tree): Get base pointer from
32513         the first element of pointer type aff_tree.  Build result expr in
32514         aff_tree's type.
32515         (add_elt_to_tree): Convert to type unconditionally.  Remove other
32516         fold_convert calls.
32517         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
32518         (rewrite_use_nonlinear_expr): Check invariant using iv information.
32520 2017-04-10  Richard Biener  <rguenther@suse.de>
32522         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32523         asm inputs.
32525 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
32527         PR rtl-optimization/70478
32528         * lra-constraints.c (curr_small_class_check): New.
32529         (update_and_check_small_class_inputs): New.
32530         (process_alt_operands): Update curr_small_class_check.  Disfavor
32531         alternative insn memory operands.  Check available regs for small
32532         class operands.
32534 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
32536         PR target/80057
32537         * config/mips/mips.opt (-mvirt): Update description.
32538         * doc/invoke.texi (-mvirt): Likewise.
32540 2017-04-10  Richard Biener  <rguenther@suse.de>
32542         PR middle-end/80362
32543         * fold-const.c (fold_binary_loc): Look at unstripped ops when
32544         looking for NEGATE_EXPR in -A / -B to A / B folding.
32546 2017-04-10  Martin Liska  <mliska@suse.cz>
32548         PR gcov-profile/80224
32549         * gcov.c (print_usage): Fix usage string.
32550         (get_gcov_intermediate_filename): Remove.
32551         (output_gcov_file): Use both for normal and intermediate format.
32552         (generate_results): Do not initialize special file for
32553         intermediate format.
32555 2017-04-10  Richard Biener  <rguenther@suse.de>
32557         PR tree-optimization/80304
32558         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
32559         for safelen.
32561 2017-04-10  Nathan Sidwell  <nathan@acm.org>
32563         PR target/79905
32564         * config/rs6000/rs6000.c (rs6000_vector_type): New.
32565         (rs6000_init_builtins): Use it.
32567 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32569         * config/arm/arm.md (<mrc>): Add mode to SET source.
32570         (<mrrc>): Likewise.
32572 2017-04-10  Richard Biener  <rguenther@suse.de>
32574         PR middle-end/80344
32575         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
32577 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
32579         PR target/80324
32580         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
32581         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
32582         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
32583         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
32584         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
32585         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
32586         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
32587         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
32588         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
32589         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
32590         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
32591         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
32592         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
32593         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
32594         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
32595         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
32596         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
32597         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
32598         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
32599         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
32600         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
32601         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
32602         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
32604 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
32606         PR rtl-optimization/70478
32607         * lra-constraints.c: Reverse the last patch.
32609 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
32611         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
32612         Add comment for WCHAR_T.
32614 2017-04-08  Martin Liska  <mliska@suse.cz>
32616         Revert:
32617         2017-04-07  Martin Liska  <mliska@suse.cz>
32619         PR ipa/80212
32620         * ipa-split.c (split_function): Add function part to a same comdat
32621         group.
32623 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
32625         PR target/80358
32626         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
32628 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
32630         * rs6000/rs6000.c (vec_load_pendulum): Rename...
32631         (vec_pairing): ...to this.
32632         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
32633         (rs6000_sched_init): Adjust for name change.
32634         (struct rs6000_sched_context): Likewise.
32635         (rs6000_init_sched_context): Likewise.
32636         (rs6000_set_sched_context): Likewise.
32638 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
32640         PR target/80322
32641         PR target/80323
32642         PR target/80325
32643         PR target/80326
32644         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
32645         intrinsics.
32646         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
32647         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
32648         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
32650 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
32652         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
32654 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
32656         PR rtl-optimization/70703
32657         * ira-color.c (update_conflict_hard_regno_costs): Use
32658         int64_t instead of HOST_WIDE_INT.
32660 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
32662         PR rtl-optimization/70478
32663         * lra-constraints.c (process_alt_operands): Disfavor alternative
32664         insn memory operands.
32666 2017-04-07  Jeff Law  <law@redhat.com>
32668         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
32669         CALL and NOTE_INSN_CALL_ARG_LOCATION.
32671 2017-04-07  Martin Liska  <mliska@suse.cz>
32673         PR target/79889
32674         * config/aarch64/aarch64.c (aarch64_process_target_attr):
32675         Show error message instead of an ICE.
32677 2017-04-07  Martin Liska  <mliska@suse.cz>
32679         PR ipa/80212
32680         * ipa-split.c (split_function): Add function part to a same comdat
32681         group.
32683 2017-04-07  Richard Biener  <rguenther@suse.de>
32685         PR middle-end/80341
32686         * tree.c (get_unwidened): Also handle ! for_type case for
32687         INTEGER_CSTs.
32688         * convert.c (do_narrow): Split out from ...
32689         (convert_to_integer_1): ... here.  Do not pass final truncation
32690         type to get_unwidened for TRUNC_DIV_EXPR.
32692 2017-04-07  Richard Biener  <rguenther@suse.de>
32694         * tree-affine.c (wide_int_ext_for_comb): Take type rather
32695         than aff_tree.
32696         (aff_combination_const): Adjust.
32697         (aff_combination_scale): Likewise.
32698         (aff_combination_add_elt): Likewise.
32699         (aff_combination_add_cst): Likewise.
32700         (aff_combination_convert): Likewise.
32701         (add_elt_to_tree): Likewise.  Remove unused argument.
32702         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
32704 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
32706         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
32707         definition.
32708         * config/arm/arm.c (arm_default_short_enums): Use
32709         ARM_DEFAULT_SHORT_ENUMS.
32710         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
32712 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
32714         PR debug/80234
32715         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
32716         members with redundant out-of-class redeclaration.
32718 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
32720         PR target/80286
32721         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
32722         * config/i386/i386.md (*zero_extendsidi2):
32723         Add (?*x,*x) and (?*v,*v) alternatives.
32725 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
32727         PR target/79733
32728         * config/i386/i386.c (ix86_expand_builtin)
32729         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
32730         mode from insn data. Convert operands to insn operand mode.
32731         Copy operands that don't satisfy insn predicate to a register.
32733 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
32735         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
32736         Update comments.
32738 2017-04-06  Richard Biener  <rguenther@suse.de>
32740         PR tree-optimization/80334
32741         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
32742         preserve alignment of accesses.
32744 2017-04-06  Richard Biener  <rguenther@suse.de>
32746         PR tree-optimization/80262
32747         * tree-sra.c (build_ref_for_offset): Preserve address-space
32748         information.
32749         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
32750         Drop useless address-space information on MEM_REF offsets.
32752 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
32754         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
32756 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
32758         PR rtl-optimization/70703
32759         * ira-color.c (update_conflict_hard_regno_costs): Use
32760         HOST_WIDE_INT instead of long.
32762 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
32764         PR target/80298
32765         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
32766         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
32767         is not defined.
32768         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
32769         for x86_64 target.  Handle -m3dnowa option.
32771 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
32773         PR rtl-optimization/70703
32774         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
32775         (update_conflict_hard_regno_costs): Use long instead of unsigned
32776         arithmetic for cost calculation.
32778 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
32779             Bernd Edlinger  <bernd.edlinger@hotmail.de>
32781         PR sanitizer/80308
32782         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
32783         for big endian.
32785 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
32787         PR target/78002
32788         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
32789         ptr_mode with Pmode throughout.
32790         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
32791         into probe_stack_range and use DImode.
32793 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32795         PR target/79890
32796         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
32797         call_eh_return is true.
32799 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32801         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
32802         Initialize last_match_fntype_index.
32804 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
32806         PR target/80310
32807         * tree-nvr.c: Include internal-fn.h.
32808         (pass_return_slot::execute): Ignore internal calls without
32809         direct optab.
32811 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
32812             Richard Biener  <rguenther@suse.de>
32814         PR c++/80297
32815         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
32816         captures used multiple times, except for the last use.
32817         * generic-match-head.c: Include gimplify.h.
32819 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
32821         PR tree-optimization/79390
32822         * target.h (struct noce_if_info): Declare.
32823         * targhooks.h (default_noce_conversion_profitable_p): Declare.
32824         * target.def (noce_conversion_profitable_p): New target hook.
32825         * ifcvt.h (struct noce_if_info): New type, moved from ...
32826         * ifcvt.c (struct noce_if_info): ... here.
32827         (noce_conversion_profitable_p): Renamed to ...
32828         (default_noce_conversion_profitable_p): ... this.  No longer
32829         static nor inline.
32830         (noce_try_store_flag_constants, noce_try_addcc,
32831         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
32832         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
32833         instead of noce_conversion_profitable_p.
32834         * config/i386/i386.c: Include ifcvt.h.
32835         (ix86_option_override_internal): Don't override
32836         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
32837         (ix86_noce_conversion_profitable_p): New function.
32838         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
32839         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
32840         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
32841         * doc/tm.texi: Regenerated.
32843 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32845         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
32846         correction.
32848 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32850         PR target/80307
32851         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
32852         instructions for small multiply cores.
32854 2017-04-04  Jeff Law  <law@redhat.com>
32856         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
32857         added member.
32858         (mips_expand_vec_perm_const): Initialize elements in orig_perm
32859         that are not set by the loop over the elements.
32861 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
32863         PR target/80286
32864         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
32865         int mode, convert_modes it to mode as unsigned, otherwise use
32866         lowpart_subreg to mode rather than SImode.
32867         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
32868         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
32869         Use DImode instead of SImode for the shift count operand.
32870         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
32871         Likewise.
32873 2017-04-04  Richard Biener  <rguenther@suse.de>
32875         PR middle-end/80281
32876         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
32877         arithmetic done for the negate or the plus.  Simplify.
32878         (A - (-B) -> A + B): Likewise.
32879         * fold-const.c (split_tree): Make sure to not negate pointers.
32881 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
32883         PR rtl-optimization/60818
32884         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
32885         a compare of comparisons with the thing compared if this results
32886         in a different machine mode.
32888 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
32890         * alias.c (base_alias_check): Fix typo in comment.
32891         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
32892         * cgraphunit.c (symbol_table::compile): Likewise.
32893         * collect2.c (maybe_run_lto_and_relink): Likewise.
32894         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
32895         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
32896         * config/avr/avr.c (avr_map_op_t): Likewise.
32897         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
32898         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
32899         * config/epiphany/epiphany.md (movcc): Likewise.
32900         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
32901         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
32902         Likewise.
32903         * config/mips/mips.c (mips_save_restore_reg): Likewise.
32904         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
32905         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
32906         * config/sh/sh.c (sh_rtx_costs): Likewise.
32907         * fold-const.c (fold_truth_andor): Likewise.
32908         * genautomata.c (collapse_flag): Likewise.
32909         * gengtype.h (struct type::u::s): Likewise.
32910         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
32911         * input.c (FORMAT_AMOUNT): Likewise.
32912         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
32913         (known_aggs_to_agg_replacement_list): Likewise.
32914         * ipa-inline-analysis.c: Likewise.
32915         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
32916         * ipa-polymorphic-call.c
32917         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
32918         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
32919         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
32920         Likewise.
32921         * modulo-sched.c (apply_reg_moves): Likewise.
32922         * omp-expand.c (build_omp_regions_1): Likewise.
32923         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
32924         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
32925         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
32926         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
32927         * value-prof.c: Likewise.
32928         * var-tracking.c (val_reset): Likewise.
32930 2017-04-03  Richard Biener  <rguenther@suse.de>
32932         PR tree-optimization/80275
32933         * fold-const.c (split_address_to_core_and_offset): Handle
32934         POINTER_PLUS_EXPR.
32936 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
32938         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
32939         descriptors is at least equal to that of functions.
32941 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
32943         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
32945 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
32947         PR target/80250
32948         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
32949         (mov<IMOD4:mode>): New expander.
32950         (*mov<IMOD4:mode>_internal): New insn and split pattern.
32952 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
32954         PR rtl-optimization/79405
32955         * fwprop.c (propagations_left): New variable.
32956         (forward_propagate_into): Decrement it.
32957         (fwprop_init): Initialize it.
32958         (fw_prop): If the variable has reached zero, stop propagating.
32959         (fwprop_addr): Ditto.
32961 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
32963         PR debug/79255
32964         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
32965         a FUNCTION_DECL, pass it as decl instead of origin to
32966         process_scope_var.
32968 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
32970         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
32971         string.
32973 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
32975         PR target/80107
32976         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
32977         TARGET_VSX_SMALL_INTEGER.
32979 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32981         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
32982         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
32984 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
32986         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
32987         extraction from odd-numbered MSA register.
32989 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
32991         PR middle-end/80173
32992         * expmed.c (store_bit_field_1): Don't attempt to create
32993         a word subreg out of hard registers wider than word if they
32994         have HARD_REGNO_NREGS of 1 for their mode.
32996         PR middle-end/80163
32997         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
32998         conversions to integer types wider than word and pointer.
33000         PR debug/80025
33001         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
33002         (rtx_equal_for_cselib_p): Pass 0 to it.
33003         * cselib.c (cselib_hasher::equal): Likewise.
33004         (rtx_equal_for_cselib_1): Add depth argument.  If depth
33005         is 128, don't look up VALUE locs and punt.  Increment
33006         depth in recursive calls when walking VALUE locs.
33008 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33010         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
33011         (make_gcov_file_name): Use the canonical path name for generating
33012         the MD5 value.
33013         (read_line): Fix handling of files with ascii null bytes.
33015 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
33017         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
33018         to initialise a vector register instead
33019         of using a const_int.
33021 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
33023         PR translation/80189
33024         * gimplify.c (omp_default_clause): Use %qs instead of %s in
33025         diagnostic messages.
33027 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
33029         PR target/80246
33030         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
33031         (dfp_diex_<mode>): Update mode of operand 1.
33032         * doc/extend.texi (dxex, dxexq): Document change to return type.
33033         (diex, diexq): Document change to argument type.
33035 2017-03-30  Martin Jambor  <mjambor@suse.cz>
33037         PR ipa/77333
33038         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
33039         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
33040         it reflects the signature changes performed at the callee side.
33041         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
33042         to cgraph_build_function_type_skip_args.
33043         (build_function_decl_skip_args): Adjust call to the above function.
33045 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
33047         PR target/80206
33048         * config/i386/sse.md
33049         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
33050         register as dest whenever it is a MEM not rtx_equal_p to the
33051         corresponding dup operand, and when forcing into reg move the
33052         reg into the memory afterwards.
33053         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
33054         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
33055         for the force_reg mode.
33056         (avx512vl_vextractf128<mode>): Use register as dest either
33057         always when a MEM, or when it is a MEM not rtx_equal_p to the
33058         corresponding dup operand, or even not when it is a CONST_VECTOR
33059         depending on the mode and lo vs. hi.
33060         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
33061         parens.
33062         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
33063         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
33064         Likewise.  Require that operands[2] is even.
33065         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
33066         Remove extraneous parens.  Require that operands[2] is a multiple
33067         of 4.
33068         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
33069         operands[0] is a MEM if <mask_applied>, the predicates/constraints
33070         disallow memory then.
33072 2017-03-30  Richard Biener  <rguenther@suse.de>
33074         PR tree-optimization/77498
33075         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
33076         to non-constants over backedges.
33078 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
33080         PR rtl-optimization/80233
33081         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
33082         as last_combined_insn.  Do not test for BARRIER_P separately.
33084 2017-03-29  Andreas Schwab  <schwab@suse.de>
33086         PR ada/80146
33087         * calls.c (prepare_call_address): Convert funexp to Pmode before
33088         copying to temp reg.
33090 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33092         PR tree-optimization/80158
33093         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
33094         Handle possible future case of more than one alternate
33095         interpretation.
33096         (replace_rhs_if_not_dup): Likewise.
33097         (replace_one_candidate): Likewise.
33099 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
33101         PR rtl-optimization/80193
33102         * ira.c (ira): Do not check allocation for LRA.
33104 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
33106         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
33107         (nvptx_output_simt_exit): Declare.
33108         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
33109         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
33110         (init_softstack_frame): Move initialization of crtl->is_leaf to...
33111         (nvptx_declare_function_name): ...here.  Emit declaration of local
33112         memory space buffer for omp_simt_enter insn.
33113         (nvptx_output_unisimt_switch): New.
33114         (nvptx_output_softstack_switch): New.
33115         (nvptx_output_simt_enter): New.
33116         (nvptx_output_simt_exit): New.
33117         * config/nvptx/nvptx.h (struct machine_function): New fields
33118         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
33119         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
33120         (UNSPECV_SIMT_EXIT): Ditto.
33121         (omp_simt_enter_insn): New insn.
33122         (omp_simt_enter): New expansion.
33123         (omp_simt_exit): New insn.
33124         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
33126         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
33127         (expand_GOMP_SIMT_ENTER_ALLOC): New.
33128         (expand_GOMP_SIMT_EXIT): New.
33129         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
33130         (GOMP_SIMT_ENTER_ALLOC): Ditto.
33131         (GOMP_SIMT_EXIT): Ditto.
33132         * target-insns.def (omp_simt_enter): New insn.
33133         (omp_simt_exit): Ditto.
33134         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
33135         simt_dlist.
33136         (lower_rec_simd_input_clauses): Implement SIMT privatization.
33137         (lower_rec_input_clauses): Likewise.
33138         (lower_lastprivate_clauses): Handle SIMT privatization.
33140         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
33141         (ompdevlow_adjust_simt_enter): New.
33142         (find_simtpriv_var_op): New.
33143         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
33144         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
33146         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
33147         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
33148         (copy_decl_for_dup_finish): Ditto.
33150         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
33152 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
33154         PR target/53383
33155         * config/i386/i386.c (ix86_option_override_internal): Always
33156         allow -mpreferred-stack-boundary=3 for 64-bit targets.
33158 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
33160         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
33162 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
33164         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
33165         mark new edge's irreducible flag accordign to it.
33166         (vect_do_peeling): Check loop preheader edge's irreducible flag
33167         and pass it to function slpeel_add_loop_guard.
33169 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
33171         PR tree-optimization/80218
33172         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
33173         Update block frequencies and counts.
33175 2017-03-28  Richard Biener  <rguenther@suse.de>
33177         PR tree-optimization/78644
33178         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
33179         of a simplification result we may not use it at all.
33181 2017-03-28  Richard Biener  <rguenther@suse.de>
33183         PR ipa/80205
33184         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
33185         without arguments, generate default definition of a SSA name.
33187 2017-03-28  Richard Biener  <rguenther@suse.de>
33189         PR middle-end/80222
33190         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
33191         TYPE_REF_CAN_ALIAS_ALL references.
33192         * fold-const.c (fold_indirect_ref_1): Likewise.
33194 2017-03-28  Martin Liska  <mliska@suse.cz>
33196         PR ipa/80104
33197         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
33198         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
33200 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
33201             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
33203         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
33204         (EXTRA_SPECS): Define.
33205         (SUBTARGET_EXTRA_SPECS): Likewise.
33206         (SUBTARGET_CPP_SPEC): Likewise.
33207         * config/arc/elf.h (EXTRA_SPECS): Renamed to
33208         SUBTARGET_EXTRA_SPECS.
33209         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
33211 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
33213         * config/arc/simdext.md (vst64_insn): Update pattern.
33214         (vld32wh_insn): Likewise.
33215         (vld32wl_insn): Likewise.
33216         (vld64_insn): Likewise.
33217         (vld32_insn): Likewise.
33219 2017-03-28  Marek Polacek  <polacek@redhat.com>
33221         PR sanitizer/80067
33222         * fold-const.c (fold_comparison): Use protected_set_expr_location
33223         instead of SET_EXPR_LOCATION.
33225 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
33227         * tree.c (add_expr): Avoid name lookup warning.
33229 2017-03-27  Jeff Law  <law@redhat.com>
33231         PR tree-optimization/80216
33232         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
33233         function name.  Limit recursion depth.
33234         (record_temporary_equivalences): Corresponding changes.
33236 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
33238         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
33239         covered first.
33241 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
33243         PR target/80102
33244         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
33245         notes.
33246         * cfgcleanup.c (reg_note_cfa_p): New array.
33247         (insns_have_identical_cfa_notes): New function.
33248         (old_insns_match_p): Don't cross-jump in between /f
33249         and non-/f instructions.  If both i1 and i2 are frame related,
33250         verify all CFA notes, their order and content.
33252 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
33254         PR target/78543
33255         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
33256         HImode and SImode with zero extend to DImode to one insn.
33257         (bswap<mode>2_extenddi): Likewise.
33258         (bswapsi2_extenddi): Likewise.
33259         (bswaphi2_extendsi): Likewise.
33260         (bswaphi2): Combine bswap HImode and SImode into one insn.
33261         Separate memory insns from swapping register.
33262         (bswapsi2): Likewise.
33263         (bswap<mode>2): Likewise.
33264         (bswaphi2_internal): Delete, no longer used.
33265         (bswapsi2_internal): Likewise.
33266         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
33267         store, and gpr<-gpr swap insns.
33268         (bswap<mode>2_store): Likewise.
33269         (bswaphi2_reg): Register only splitter, combine with the splitter.
33270         (bswaphi2 splitter): Likewise.
33271         (bswapsi2_reg): Likewise.
33272         (bswapsi2 splitter): Likewise.
33273         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
33274         the insns into load, store, and register/register insns.
33275         (bswapdi2_ldbrx): Likewise.
33276         (bswapdi2_load): Likewise.
33277         (bswapdi2_store): Likewise.
33278         (bswapdi2_reg): Likewise.
33280 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
33282         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
33283         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
33285 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33287         PR target/80103
33288         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
33289         add comments.
33290         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
33291         special handling for target option conflicts between dform
33292         options (-mpower9-dform, -mpower9-dform-vector,
33293         -mpower9-dform-scalar) and -mno-direct-move.
33295 2017-03-27  Richard Biener  <rguenther@suse.de>
33297         PR tree-optimization/80181
33298         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
33300 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33302         * config/arc/predicates.md (move_double_src_operand): Replace the
33303         call to move_double_src_operand with a call to address_operand.
33305 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33307         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
33308         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
33309         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
33311 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33313         * config/arc/predicates.md (long_immediate_loadstore_operand):
33314         Consider scaled addresses cases.
33316 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33318         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
33319         restored when in interrupt.
33320         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
33321         doesn't have delay slot.
33323 2017-03-27  Richard Biener  <rguenther@suse.de>
33325         PR ipa/79776
33326         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
33327         inlined thunk clones.
33329 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
33331         PR sanitizer/80168
33332         * asan.c (instrument_derefs): Copy over last operand from
33333         original COMPONENT_REF to the new COMPONENT_REF with
33334         DECL_BIT_FIELD_REPRESENTATIVE.
33335         * ubsan.c (instrument_object_size): Likewise.
33337 2017-03-27  Richard Biener  <rguenther@suse.de>
33339         PR tree-optimization/80170
33340         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
33341         sure DR/SCEV didnt fold in constants we do not see when looking
33342         at the reference base alignment.
33344 2017-03-27  Richard Biener  <rguenther@suse.de>
33346         PR middle-end/80171
33347         * gimple-fold.c (fold_ctor_reference): Properly guard against
33348         NULL return value from canonicalize_constructor_val.
33350 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
33352         PR target/80180
33353         * config/i386/i386.c (ix86_expand_builtin)
33354         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
33355         flags reg setting and flags reg using instructions.
33356         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
33357         clobbering instructions to zero extend op2.
33359 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
33361         * doc/install.texi (Configuration) <--with-aix-soname>:
33362         Update link to AIX ld.
33364 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
33366         PR rtl-optimization/80160
33367         PR rtl-optimization/80159
33368         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
33369         reg_alternate_class into account.
33371 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
33373         PR target/80148
33374         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
33375         to consider in curr_insn_transform.
33377 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
33379         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
33380         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
33381         and emit_mode_inner.
33383 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33385         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
33386         argument to the overloaded builtin variants.  Use the new flag to
33387         deprecate certain builtin variants.
33388         * config/s390/s390-builtin-types.def: Add new builtin types.
33389         * config/s390/s390-builtins.h: Support new flags field for
33390         overloaded builtins.
33391         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
33392         (s390_macro_to_expand): Enable vector float data type.
33393         (s390_cpu_cpp_builtins_internal): Indicate support of the new
33394         builtins by incrementing the __VEC__ version number.
33395         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
33396         vec_xst.
33397         (s390_resolve_overloaded_builtin): Emit error messages depending
33398         on the builtin flags.
33399         * config/s390/s390.c (s390_expand_builtin): Support additional
33400         flags argument.  Change error message to match the messages
33401         emitted in s390-c.c.
33402         * config/s390/s390.md: New UNSPEC_* constants.
33403         (op_type): Add new instruction types.
33404         * config/s390/vecintrin.h: Add new builtins and test data class
33405         constants.
33406         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
33407         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
33408         (VEC_INEXACT, VEC_NOINEXACT): New constants.
33409         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
33410         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
33411         ("vec_mergel<mode>"): V_HW -> VEC_HW.
33413         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
33414         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
33415         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
33416         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
33418         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
33419         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
33420         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
33421         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
33423         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
33424         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
33425         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
33426         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
33427         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
33428         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
33429         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
33431         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
33432         ("vec_scatter_element<V_HW_4:mode>_DI")
33433         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
33434         ("vec_fpint<mode>", "vflls")
33435         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
33436         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
33437         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
33438         ("*vec_cmphe<mode>_cc"): ... these.
33440         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
33441         mode constant instead of magic value.
33443 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33445         * config/s390/s390.c (s390_expand_vec_compare): Support other
33446         vector floating point modes than just V2DF.
33447         (s390_expand_vcond): Likewise.
33448         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
33449         (s390_cannot_change_mode_class): Prevent mode changes between TF
33450         and V1TF in vector registers.
33451         * config/s390/s390.md (DF, SF): New mode attributes.
33452         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
33453         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
33454         SFmode support for VRs.
33455         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
33456         vector fp modes.
33457         (VFT, VF_HW): New mode iterators.
33458         (vw, sdx): New mode attributes.
33459         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
33460         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
33461         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
33462         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
33463         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
33464         also the new vector floating point modes.  Renaming to ...
33466         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
33467         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
33468         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
33469         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
33470         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
33471         ("vec_unordered<mode>"): ... these.
33473         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
33474         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
33475         ("*vec_extendv2df"): New insn definitions.
33477 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33479         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
33480         ("mulditi3_2", "*muldi3_sign"): New patterns.
33481         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
33482         rename the pattern definition.
33484 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33486         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
33487         expander.
33488         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
33490 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33492         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
33493         instruction if possible.
33494         * config/s390/vector.md (vec_halfnumelts): New mode
33495         attribute.
33496         ("*vec_vllezlf<mode>"): New pattern.
33498 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33500         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
33501         ("popcountv4si2", "popcountv2di2"): Rename to ...
33502         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
33503         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
33504         condition.
33505         ("popcount<mode>2_vxe"): New pattern.
33507 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33509         * common/config/s390/s390-common.c (processor_flags_table): Add
33510         arch12.
33511         * config.gcc: Add arch12.
33512         * config/s390/driver-native.c (s390_host_detect_local_cpu):
33513         Default to arch12 for unknown CPU model numbers.
33514         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
33515         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
33516         PROCESSOR_max sanity check.
33517         * config/s390/s390-opts.h (enum processor_type): Add
33518         PROCESSOR_ARCH12.
33519         * config/s390/s390.c (processor_table): Add arch12.
33520         (s390_expand_builtin): Add check for B_VXE flag.
33521         (s390_issue_rate): Add PROCESSOR_ARCH12.
33522         (s390_get_sched_attrmask): Likewise.
33523         (s390_get_unit_mask): Likewise.
33524         (s390_sched_score): Enable z13 scheduling for arch12.
33525         (s390_sched_reorder): Likewise.
33526         (s390_sched_variable_issue): Likewise.
33527         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
33528         PF_VXE.
33529         (s390_tune_attr): Use z13 scheduling also for arch12.
33530         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
33531         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
33532         (TARGET_VXE_P): New macros.
33533         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
33534         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
33535         * config/s390/s390.opt: Add arch12 as processor_type.
33537 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33539         * config/s390/s390.md
33540         ("fixuns_truncdddi2", "fixuns_trunctddi2")
33541         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
33542         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
33544         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
33545         Rename expanders to ...
33547         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
33548         ("fixuns_truncdddi2_emu"): ... these.
33550         ("fixuns_trunc<mode>si2_emu"): New expander.
33552         ("*fixuns_truncdfdi2_z13"): Rename to ...
33553         ("*fixuns_truncdfdi2_vx"): ... this.
33555 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33557         * config/s390/2964.md: Remove the single element vector compare
33558         instructions which are no longer used.
33559         * config/s390/s390.c (s390_select_ccmode): Remove handling of
33560         vector CCmodes.
33561         (s390_canonicalize_comparison): Remove handling of DFmode
33562         compares.
33563         (s390_expand_vec_compare_scalar): Remove function.
33564         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
33565         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
33566         pattern.
33567         ("*cmp<mode>_ccs"): Add wfcdb instruction.
33569 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33571         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
33572         FP zero.
33573         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
33574         will anyway by matched by mov<mode>_64dfp.
33576 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33578         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
33579         vlef/vstef.  Add missing operand to vleif.
33581 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33583         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
33584         pair for all vector types with 64 bit elements.
33585         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
33586         * config/s390/vector.md (V_HW_64): ... here.
33587         (V_128_NOSINGLE): New mode iterator.
33588         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
33589         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
33590         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
33591         ("*vec_load_pairv2di"): Change to ...
33592         ("*vec_load_pair<mode>"): ... this one.
33594 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33596         * config/s390/constraints.md: Add comments.
33597         (jKK): Reject element sizes > 8 bytes.
33598         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
33599         s_operands.
33600         * config/s390/s390.md: Add the s_operand checks formerly in
33601         s390_split_ok_p to various splitters where they are still
33602         required.
33603         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
33604         for 128 bit vectors.  Plus two splitters.
33606 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33608         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
33609         the file.
33611 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33613         PR target/79893
33614         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
33615         error if the boundary argument is not constant.
33617 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
33619         PR rtl-optimization/80112
33620         * loop-doloop.c (doloop_condition_get): Don't check condition
33621         if cmp isn't SET with IF_THEN_ELSE src.
33623 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33625         PR tree-optimization/80158
33626         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
33627         replacing a candidate statement, also replace it for the
33628         candidate's alternate interpretation.
33629         (replace_rhs_if_not_dup): Likewise.
33630         (replace_one_candidate): Likewise.
33632 2017-03-24  Richard Biener  <rguenther@suse.de>
33634         PR tree-optimization/80167
33635         * graphite-isl-ast-to-gimple.c
33636         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
33637         properly.
33638         (translate_isl_ast_to_gimple::get_rename): Likewise.
33640 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33642         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
33643         handling of certain combinations of target options, including the
33644         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
33645         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
33647 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33649         PR target/71436
33650         * config/arm/arm.md (*load_multiple): Add reload_completed to
33651         matching condition.
33653 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33654             Richard Biener  <rguenth@suse.de>
33656         PR tree-optimization/79908
33657         PR tree-optimization/80136
33658         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
33659         been cast away, gimplify_and_add suffices.
33661 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
33663         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
33665 2017-03-23  Richard Biener  <rguenther@suse.de>
33667         PR tree-optimization/80032
33668         * gimplify.c (gimple_push_cleanup): Forced unconditional
33669         cleanups still have to go to the conditional_cleanups
33670         sequence.
33672 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
33674         PR tree-optimization/80072
33675         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
33676         to unsigned int.
33677         (next_operand_entry_id): Change type to unsigned int.
33678         (sort_by_operand_rank): Make sure to return the right return value
33679         even if unsigned fields are bigger than INT_MAX.
33680         (struct oecount): Change cnt and id type to unsigned int.
33681         (oecount_hasher::equal): Formatting fix.
33682         (oecount_cmp): Make sure to return the right return value
33683         even if unsigned fields are bigger than INT_MAX.
33684         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
33686         PR c++/80129
33687         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
33688         TREE_READONLY on result if writing it more than once.
33690         PR sanitizer/80110
33691         * doc/invoke.texi (-fsanitize=thread): Document that with
33692         -fnon-call-exceptions atomics are not able to throw
33693         exceptions.
33695         PR sanitizer/80110
33696         * tsan.c: Include tree-eh.h.
33697         (instrument_builtin_call): Call maybe_clean_eh_stmt or
33698         maybe_clean_or_replace_eh_stmt where needed.
33699         (instrument_memory_accesses): Add cfg_changed argument.
33700         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
33701         if it returned true.
33702         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
33704         PR rtl-optimization/63191
33705         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
33706         wrapper function, moved the whole old content into ...
33707         (ix86_delegitimize_address_1): ... this.  New inline function.
33708         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
33709         true as last argument instead of ix86_delegitimize_address.
33711 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
33713         * config/aarch64/aarch64.c (generic_branch_cost): Copy
33714         cortexa57_branch_cost.
33716 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
33718         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
33720 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
33722         PR target/80123
33723         * doc/md.texi (Constraints): Document wA constraint.
33724         * config/rs6000/constraints.md (wA): New.
33725         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
33726         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
33727         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
33728         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
33730 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
33732         PR c++/80029
33733         * gimplify.c (is_oacc_declared): New function.
33734         (oacc_default_clause): Use it to set default flags for acc declared
33735         variables inside parallel regions.
33736         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
33737         declared variables.
33738         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
33739         declare attribute to any decl as necessary.
33741 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33743         PR target/80082
33744         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
33745         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
33746         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
33747         (arm_arch_lpae): This.
33748         * config/arm/arm.c (arm_arch7ve): Rename into ...
33749         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
33750         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
33751         arm_arch_lpae.
33753 2017-03-22  Martin Liska  <mliska@suse.cz>
33755         PR target/79906
33756         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
33757         error message instead of an ICE.
33759 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33761         * doc/extend.texi (6.11 Additional Floating Types): Revise.
33763 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33765         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
33766         comments.
33767         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
33768         comments.
33770 2017-03-21  Martin Sebor  <msebor@redhat.com>
33772         * doc/extend.texi: Use "cannot" instead of "can't."
33773         * doc/hostconfig.texi: Same.
33774         * doc/install.texi: Same.
33775         * doc/invoke.texi: Same.
33776         * doc/loop.texi: Same.
33777         * doc/md.texi: Same.
33778         * doc/objc.texi: Same.
33779         * doc/rtl.texi: Same.
33780         * doc/tm.texi: Same.
33781         * doc/tm.texi.in: Same.
33782         * doc/trouble.texi: Same.
33784 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
33786         PR debug/63238
33787         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
33788         (collect_checksum_attributes): Set it.
33789         (die_checksum_ordered): Use it.
33791 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33793         PR tree-optimization/79908
33794         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
33795         change: For a VA_ARG whose LHS has been cast away, use
33796         force_gimple_operand to construct the side effects.
33798 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
33800         PR translation/80001
33801         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
33802         more amenable to translation.
33803         (oacc_loop_auto_partitions): Likewise.
33805 2017-03-21  Marek Polacek  <polacek@redhat.com>
33806             Martin Sebor  <msebor@redhat.com>
33808         PR tree-optimization/80109
33809         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
33810         on INTEGRAL_TYPE_P.
33812 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
33813             Segher Boessenkool  <segher@kernel.crashing.org>
33815         PR target/80125
33816         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
33817         check reg_used_between_p between insn and one of succ or succ2
33818         depending on if succ is artificial insn not inserted into insn
33819         stream.
33821 2017-03-21  Martin Liska  <mliska@suse.cz>
33823         PR gcov-profile/80081
33824         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
33825         * doc/gcc.texi: Include gcov-dump stuff.
33826         * doc/gcov-dump.texi: New file.
33828 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
33830         PR rtl-optimization/79150
33831         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
33832         conditional jump, if the jump is the last insn of the loop.
33834 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33835             Richard Biener  <rguenth@suse.de>
33837         PR tree-optimization/79908
33838         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
33839         been cast away, use force_gimple_operand to construct the side
33840         effects.
33842 2017-03-21  Martin Liska  <mliska@suse.cz>
33844         PR libfortran/79956
33845         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
33846         to NULL.
33848 2017-03-21  Brad Spengler <spender@grsecurity.net>
33850         PR plugins/80094
33851         * plugin.c (htab_hash_plugin): New function.
33852         (add_new_plugin): Use it and adjust.
33853         (parse_plugin_arg_opt): Adjust.
33854         (init_one_plugin): Likewise.
33856 2017-03-21  Richard Biener  <rguenther@suse.de>
33858         PR tree-optimization/80032
33859         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
33860         if set force the cleanup to happen unconditionally.
33861         (gimplify_target_expr): Push inserted clobbers with force_uncond
33862         to avoid them being removed by control-dependent DCE.
33864 2017-03-21  Richard Biener  <rguenther@suse.de>
33866         PR tree-optimization/80122
33867         * tree-inline.c (copy_bb): Do not expans va-arg packs or
33868         va_arg_pack_len when the inlined call stmt requires pack
33869         expansion itself.
33870         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
33872 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
33874         PR sanitizer/78158
33875         * tsan.c (instrument_builtin_call): If the memory model argument
33876         is not a constant, assume it is valid.
33878         PR c/67338
33879         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
33880         avoid UB.
33882 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
33884         PR rtl-optimization/79910
33885         * combine.c (can_combine_p): Do not allow combining an I0 or I1
33886         if its dest is used by an insn before I2 (other than the combined
33887         insns themselves, which are properly handled already).
33889 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
33891         Revert:
33892         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
33894         * combine.c (record_used_regs): New static function.
33895         (try_combine): Handle situations where there is an additional
33896         instruction between I2 and I3 which needs to have a LOG_LINK
33897         updated.
33899         Revert:
33900         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
33902         * combine.c (try_combine): Delete redundant i1 test.  Call
33903         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
33905 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
33907         PR target/80083
33908         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
33909         alternatives 13/14.
33911 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33913         PR tree-optimization/80054
33914         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
33915         the optimization if a PHI or any of its arguments is not dominated
33916         by the candidate's basis.  Use gphi* rather than gimple* as
33917         appropriate.
33918         (replace_profitable_candidates): Clean up a gimple* variable that
33919         should be a gphi* variable.
33921 2017-03-20  Martin Sebor  <msebor@redhat.com>
33923         PR c++/52477
33924         * doc/extend.texi (attribute constructor): Document present limitation.
33926 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33928         PR target/79963
33929         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
33930         __POWER9_VECTOR__ #ifdef control, change template definition to
33931         use Power9-specific built-in function.
33932         (vec_any_eq): Likewise.
33933         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
33934         to control outcomes from this test.
33935         (vector_ae_<mode>p): For VEC_F modes, likewise.
33937 2017-03-20  Ian Lance Taylor  <iant@google.com>
33939         * config/i386/i386.c (ix86_function_regparm): Save an extra
33940         register for -fsplit-stack with DECL_STATIC_CHAIN.
33942 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
33944         PR target/79912
33945         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
33946         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
33948 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
33950         * config/riscv/riscv.c (riscv_print_operand): Use "fence
33951         iorw,ow".
33952         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
33953         iorw,iorw".
33955 2017-03-20  Marek Polacek  <polacek@redhat.com>
33957         PR sanitizer/80063
33958         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
33960 2017-03-20  Richard Biener  <rguenther@suse.de>
33962         PR tree-optimization/80113
33963         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
33964         allocate extra SSA name for PHI def.
33965         (add_close_phis_to_outer_loops): Likewise.
33966         (add_close_phis_to_merge_points): Likewise.
33967         (copy_loop_close_phi_args): Likewise.
33968         (copy_cond_phi_nodes): Likewise.
33970 2017-03-20  Martin Liska  <mliska@suse.cz>
33972         PR middle-end/79753
33973         * tree-chkp.c (chkp_build_returned_bound): Do not build
33974         returned bounds for a LHS that's not a BOUNDED_P type.
33976 2017-03-20  Martin Liska  <mliska@suse.cz>
33978         PR target/79769
33979         PR target/79770
33980         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
33981         COMPLEX_CST and VECTOR_CST.
33983 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33985         PR target/78857
33986         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
33987         target operand.  A new splitter adds the clobber statement in case
33988         the target operand is dead anyway.
33990 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
33992         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
33993         to age-old versions of binutils and glibc.
33995 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
33997         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
33999 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34001         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
34003 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34005         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
34006         requirement for binutils 2.13.
34008 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
34010         * combine.c (try_combine): Delete redundant i1 test.  Call
34011         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
34013 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
34015         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
34016         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
34017         contents.
34018         <riscv64-*-elf>: Re-arrange section
34019         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
34020         <riscv32-*-linux>: Likewise.
34021         <riscv64-*-elf>: Likewise
34022         <riscv64-*-linux>: Likewise.
34024 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
34026         PR target/80052
34027         * aarch64.opt(verbose-cost-dump): Fix typo.
34029 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
34031         PR target/79951
34032         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
34033         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
34035 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
34037         * reload.c (find_reloads): When reloading a nonoffsettable address,
34038         use RELOAD_OTHER for it and its address reloads.
34040         PR rtl-optimization/79910
34041         * combine.c (record_used_regs): New static function.
34042         (try_combine): Handle situations where there is an additional
34043         instruction between I2 and I3 which needs to have a LOG_LINK
34044         updated.
34046 2017-03-17  Jeff Law  <law@redhat.com>
34048         PR tree-optimization/71437
34049         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
34050         conditional in the hash table first.
34051         (vrp_dom_walker::before_dom_children): Extract condition from
34052         ASSERT_EXPR.  Record condition, its inverion and any implied
34053         conditions as well.
34055 2017-03-17  Marek Polacek  <polacek@redhat.com>
34056             Markus Trippelsdorf  <markus@trippelsdorf.de>
34058         PR tree-optimization/80079
34059         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
34060         m_stores_head.
34062 2017-03-17  Richard Biener  <rguenther@suse.de>
34064         PR middle-end/80075
34065         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
34066         Properly verify the LHS before the RHS possibly claims to be
34067         handled.
34068         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
34069         do not throw.
34071 2017-03-17  Martin Jambor  <mjambor@suse.cz>
34073         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
34074         (List of -O2 options): Likewise.
34075         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
34076         (-fipa-vrp) New.
34078 2017-03-17  Tom de Vries  <tom@codesourcery.com>
34080         * gcov-dump.c (print_usage): Print bug_report_url.
34082 2017-03-17  Richard Biener  <rguenther@suse.de>
34084         PR middle-end/80050
34085         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
34086         (parser::peek): Likewise.
34088 2017-03-17  Richard Biener  <rguenther@suse.de>
34090         PR tree-optimization/80048
34091         * sese.c (free_sese_info): Properly release rename_map and
34092         copied_bb_map elements.
34094 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
34096         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
34097         Add linked-list forward and backlinks.  Insert on
34098         construction, remove on destruction.
34099         (class pass_store_merging): Add m_stores_head field.
34100         (pass_store_merging::terminate_and_process_all_chains):
34101         Iterate over m_stores_head list.
34102         (pass_store_merging::terminate_all_aliasing_chains):
34103         Likewise.
34104         (pass_store_merging::execute): Check for debug stmts first.
34105         Push new chains onto the m_stores_head stack.
34107 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
34109         PR target/71294
34110         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
34111         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
34112         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
34114 2017-03-16  Jeff Law  <law@redhat.com>
34116         PR tree-optimization/71437
34117         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
34118         member function.  Implementation moved into after_dom_children
34119         member function and into the threader's thread_outgoing_edges
34120         function.
34121         (dom_opt_dom_walker::after_dom_children): Simplify by moving
34122         some code into new thread_outgoing_edges.
34123         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
34124         definition.  Simplify marker handling (do it here).   Assume we always
34125         have the available expression and the const/copies tables.
34126         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
34127         and tree-vrp.c
34128         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
34129         * tree-vrp.c (equiv_stack): No longer file scoped.
34130         (vrp_dom_walker): New class.
34131         (vrp_dom_walker::before_dom_children): New member function.
34132         (vrp_dom_walker::after_dom_children): Likewise.
34133         (identify_jump_threads):  Setup domwalker.  Use it rather than
34134         walking edges in a random order by hand.  Simplify setup/finalization.
34135         (finalize_jump_threads): Remove.
34136         (vrp_finalize): Do not call identify_jump_threads here.
34137         (execute_vrp): Do it here instead and call thread_through_all_blocks
34138         here too.
34140         PR tree-optimization/71437
34141         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
34142         callers changed.
34143         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
34144         callers changed.
34145         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
34146         (dom_opt_dom_walker::thread_across_edge): Remove
34147         handle_dominating_asserts argument.  All callers changed.
34148         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
34149         changes.  Remove calls to lhs_of_dominating_assert.  Other
34150         uses of handle_dominating_asserts turn into unconditional code
34151         (simplify_control_stmt_condition_1): Likewise.
34152         (simplify_control_stmt_condition): Likewise.
34153         (thread_through_normal_block, thread_across_edge): Likewise.
34154         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
34155         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
34156         object if it is not an SSA_NAME.
34157         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
34158         before calling into the VRP specific simplifiers.
34159         (identify_jump_threads): Remove handle_dominating_asserts
34160         argument.
34162 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
34164         PR fortran/79886
34165         * tree-diagnostic.c (default_tree_printer): No longer static.
34166         * tree-diagnostic.h (default_tree_printer): New prototype.
34168 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
34170         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
34171         Change ins into fmov.
34173 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34175         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
34176         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
34177         Use h_con constraint for operand 1.
34178         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
34179         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
34181 2017-03-15  Jeff Law  <law@redhat.com>
34183         PR tree-optimization/71437
34184         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
34185         (record_temporary_equivalences): Use it.
34187         PR tree-optimization/71437
34188         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
34189         tree-ssa-scopedtables.
34190         (lookup_avail_expr, build_and_record_new_cond): Likewise.
34191         (record_conditions, record_cond, vuse_eq): Likewise.
34192         (record_edge_info): Adjust to API tweak of record_conditions.
34193         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
34194         (record_temporary_equivalences, optimize_stmt): Likewise.
34195         (eliminate_redundant_computations): Likewise.
34196         (record_equivalences_from_stmt): Likewise.
34197         * tree-ssa-scopedtables.c: Include options.h and params.h.
34198         (vuse_eq): New function, moved from tree-ssa-dom.c
34199         (build_and_record_new_cond): Likewise.
34200         (record_conditions): Likewise.  Accept vector of conditions rather
34201         than edge_equivalence structure for first argument.
34202         for the first argument.
34203         (avail_exprs_stack::lookup_avail_expr): New member function, moved
34204         from tree-ssa-dom.c.
34205         (avail_exprs_stack::record_cond): Likewise.
34206         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
34207         from tree-ssa-dom.c.
34208         (avail_exprs_stack): Add new member functions lookup_avail_expr
34209         and record_cond.
34210         (record_conditions): Declare.
34212 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
34214         PR target/80017
34215         * lra-constraints.c (process_alt_operands): Increase reject for
34216         reloading an input/output operand.
34218 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
34220         PR target/79038
34221         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
34222         insns to convert from signed/unsigned char/short to IEEE 128-bit
34223         floating point.
34224         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
34226 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
34228         PR target/80019
34229         * config/i386/i386.c (ix86_vector_duplicate_value): Create
34230         subreg of inner mode for values already in registers.
34232 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
34234         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
34235         iteration reg is used after the loop.
34237 2017-03-14  Martin Sebor  <msebor@redhat.com>
34239         PR tree-optimization/79800
34240         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
34241         precision in negative-positive range.
34242         (format_floating): Call non-const overload with adjusted precision.
34244 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34246         PR target/79947
34247         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
34248         -mpowerpc-gfxopt.
34250 2017-03-14  Martin Sebor  <msebor@redhat.com>
34252         PR middle-end/80020
34253         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
34254         * builtins.def (aligned_alloc): Use it.
34256         PR c/79936
34257         * Makefile.in (GTFILES): Add calls.c.
34258         * calls.c: Include "gt-calls.h".
34260 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
34262         PR rtl-optimization/79728
34263         * regs.h (struct target_regs): New field
34264         x_contains_allocatable_regs_of_mode.
34265         (contains_allocatable_regs_of_mode): New macro.
34266         * reginfo.c (init_reg_sets_1): Initialize it, and change
34267         contains_reg_of_mode so it includes global regs as well.
34268         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
34269         rather than contains_regs_of_mode.
34271 2017-03-14  Martin Liska  <mliska@suse.cz>
34273         * doc/invoke.texi: Document options that can't be combined with
34274         -fcheck-pointer-bounds.
34276 2017-03-14  Martin Liska  <mliska@suse.cz>
34278         PR middle-end/79831
34279         * doc/invoke.texi (-Wchkp): Document the option.
34281 2017-03-14  Martin Liska  <mliska@suse.cz>
34283         * Makefile.in: Install gcov-dump.
34285 2017-03-14  Martin Liska  <mliska@suse.cz>
34287         * multiple_target.c (expand_target_clones): Bail out for
34288         an invalid attribute.
34290 2017-03-14  Richard Biener  <rguenther@suse.de>
34292         * alias.c (struct alias_set_entry): Pack properly.
34293         * cfgloop.h (struct loop): Likewise.
34294         * cse.c (struct set): Likewise.
34295         * ipa-utils.c (struct searchc_env): Likewise.
34296         * loop-invariant.c (struct invariant): Likewise.
34297         * lra-remat.c (struct cand): Likewise.
34298         * recog.c (struct change_t): Likewise.
34299         * rtl.h (struct address_info): Likewise.
34300         * symbol-summary.h (function_summary): Likewise.
34301         * tree-loop-distribution.c (struct partition): Likewise.
34302         * tree-object-size.c (struct object_size_info): Likewise.
34303         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
34304         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
34305         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
34306         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
34307         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
34308         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
34309         (struct _stmt_vec_info): Likewise.
34311 2017-03-14  Martin Liska  <mliska@suse.cz>
34313         PR target/79892
34314         * multiple_target.c (create_dispatcher_calls): Check that
34315         a target can create a function dispatcher.
34317 2017-03-14  Martin Liska  <mliska@suse.cz>
34319         PR lto/66295
34320         * multiple_target.c (expand_target_clones): Drop local.local
34321         flag for default implementation.
34323 2017-03-14  Richard Biener  <rguenther@suse.de>
34325         PR tree-optimization/80030
34326         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
34328 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
34330         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
34331         gcc_fallthrough() instead of __attribute__((fallthrough));
34333 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
34335         * doc/gcc.texi: Remove "up" link to (DIR).
34336         * doc/gccint.texi: Ditto.
34338 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
34340         * doc/install.texi (Specific) <avr>: Remove reference to
34341         binutils 2.13.
34343 2017-03-13  Jeff Law  <law@redhat.com>
34345         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
34346         attribute rather than comments.
34348         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
34349         match_scratch operand is highest.
34351 2017-03-13  Martin Liska  <mliska@suse.cz>
34353         PR middle-end/78339
34354         * ipa-pure-const.c (warn_function_noreturn): If the declarations
34355         is a CHKP clone, use original declaration.
34357 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34359         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
34360         (arc_conditional_register_usage): Use a different allocation order
34361         when optimizing for size.
34362         * common/config/arc/arc-common.c (arc_option_optimization_table):
34363         Section anchors default on when optimizing for size.
34365 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34367         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
34369 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34371         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
34372         * config/arc/arc.md (cpu_facility): Add cd variant.
34373         (*movqi_insn): Add code density variant.
34374         (*movhi_insn): Likewise.
34375         (*movqi_insn): Likewise.
34376         (*addsi3_mixed): Likewise.
34377         (subsi3_insn): Likewise.
34379 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34381         * config/arc/arc.md (movsi_cond_exec): Update constraint.
34383 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34385         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
34386         expressions with MINUS and UNARY ops.
34388 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34390         PR target/79911
34391         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
34392         Rename to...
34393         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
34394         between vec_select and vector argument.
34395         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
34396         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
34397         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
34398         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
34399         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
34400         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
34402 2017-03-13  Richard Biener  <rguenther@suse.de>
34404         PR other/79991
34405         * params.def (vect-max-peeling-for-alignment): Fix typo.
34407 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
34409         * doc/install.texi (Specific) <mips-*-*>: Remove description of
34410         issue that only occurred with binutils below 2.18.
34412 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
34414         * doc/install.texi (Specific) <cris-axis-elf>: No longer
34415         refer to binutils 2.11/2.12 minimum.
34417 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
34419         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
34420         ftp.kernel.org and simplify binutils requirement.
34422 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
34424         * doc/invoke.texi (Warning Options): Fix spelling of link-time
34425         optimization.
34426         (Optimize Options): Ditto.  Also remove redundancy.
34428 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34430         PR translation/79848
34431         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
34432         "%qs".
34433         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
34434         to G_ to avoid double translation.
34436 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34438         PR translation/79923
34439         * auto-profile.c (get_combined_location): Convert leading
34440         character of diagnostics to lower case and remove trailing period.
34441         (read_profile): Likewise for various diagnostics.
34442         * config/arm/arm.c (arm_option_override): Remove trailing period
34443         from various diagnostics.
34444         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
34445         (msp430_expand_delay_cycles): Likewise.
34447 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34449         PR target/79925
34450         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
34451         full command-line argument, rather than just "str".
34452         (aarch64_validate_march): Likewise.
34453         (aarch64_validate_mtune): Likewise.
34455 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
34457         PR rtl-optimization/78911
34458         * lra-assigns.c (must_not_spill_p): New function.
34459         (spill_for): Use it.
34461 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
34463         PR tree-optimization/79981
34464         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
34465         ATOMIC_COMPARE_EXCHANGE ifn result.
34466         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
34467         IFN_ATOMIC_COMPARE_EXCHANGE.
34469 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34471         PR driver/79875
34472         * opts.c (parse_sanitizer_options): Add missing question mark to
34473         "did you mean" message.
34475 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34477         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
34478         built-in.
34479         (VMULEUH_UNS): Likewise.
34480         (VMULOUB_UNS): Likewise.
34481         (VMULOUH_UNS): Likewise.
34482         * config/rs6000/rs6000.c (builtin_function_type): Remove
34483         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
34485 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34487         PR bootstrap/79952
34488         * read-rtl-function.c (function_reader::read_rtx_operand): Update
34489         x with result of extra_parsing_for_operand_code_0.
34490         (function_reader::extra_parsing_for_operand_code_0): Convert
34491         return type from void to rtx, returning x.  When reading
34492         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
34493         larger size containing struct block_symbol.
34495 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
34497         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
34498         -mfloat128-hardware without -m64.
34500 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
34502         PR target/79941
34503         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
34504         entries to the case statement that marks unsigned arguments to
34505         overloaded functions.
34507 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34509         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
34510         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
34512 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
34514         PR target/79907
34515         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
34516         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
34518 2017-03-10  Martin Liska  <mliska@suse.cz>
34520         PR target/65705
34521         PR target/69804
34522         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
34523         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
34524         FIELD != NULL.
34526 2017-03-10  Olivier Hainque  <hainque@adacore.com>
34528         * tree-switch-conversion (array_value_type): Start by resetting
34529         candidate type to it's main variant.
34531 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
34533         PR rtl-optimization/79909
34534         * combine.c (try_combine): Use simplify_replace_rtx on individual
34535         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
34536         of the whole CALL_INSN_FUNCTION_USAGE.
34538         PR tree-optimization/79972
34539         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
34540         get_range_info on SSA_NAMEs.  Formatting fixes.
34542 2017-03-10  Richard Biener  <rguenther@suse.de>
34543             Jakub Jelinek  <jakub@redhat.com>
34545         PR tree-optimization/77975
34546         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
34547         edge to be constant.
34548         (get_val_for): For constant x return it.  Formatting fix.
34549         (loop_niter_by_eval): Avoid pointless looping if the next iteration
34550         would use the same bases as the current one.
34552 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34554         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
34555         instead of vec_select for V1TImode.
34556         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
34557         longer needed.
34558         (VSX_LE_128): Add V1TI to this mode iterator.
34559         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
34560         (*vsx_le_perm_store_<mode>): Likewise.
34561         (pre-reload splitter for VSX stores): Likewise.
34562         (post-reload splitter for VSX stores): Likewise.
34563         (*vsx_xxpermdi2_le_<mode>): Likewise.
34564         (*vsx_lxvd2x2_le_<mode>): Likewise.
34565         (*vsx_stxvd2x2_le_<mode>): Likewise.
34567 2017-03-09  Michael Eager  <eager@eagercon.com>
34569         Correct failures with --enable-checking=yes,rtl.
34571         * config/microblaze/microblaze.c (microblaze_expand_shift):
34572         Replace GET_CODE test with CONST_INT_P and INTVAL test with
34573         test for const0_rtx.
34574         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
34575         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
34577 2017-03-09  Richard Biener  <rguenther@suse.de>
34579         PR tree-optimization/79977
34580         * graphite-scop-detection.c (scop_detection::merge_sese):
34581         Handle the case of extra exits to blocks dominating the entry.
34583 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
34585         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
34586         Document rdynamic.
34588 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
34590         PR rtl-optimization/79949
34591         * lra-constraints.c (process_alt_operands): Check memory when
34592         trying to predict a cycle.  Print about the overall increase.
34594 2017-03-09  Richard Biener  <rguenther@suse.de>
34596         PR middle-end/79971
34597         * gimple-expr.c (useless_type_conversion_p): Preserve
34598         TYPE_SATURATING for fixed-point types.
34600 2017-03-09  Richard Biener  <rguenther@suse.de>
34602         PR ipa/79970
34603         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
34604         alignment of BLKmode params.
34606 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34608         PR target/79913
34609         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
34610         (VALL_NO_V2Q): Likewise.
34611         (VDQF_DF): Delete.
34612         * config/aarch64/aarch64-simd.md
34613         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
34614         iterator.
34615         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
34616         VALL_NO_V2Q mode iterator.
34617         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
34619 2017-03-09  Martin Liska  <mliska@suse.cz>
34621         PR tree-optimization/79631
34622         * tree-chkp-opt.c (chkp_is_constant_addr): Call
34623         tree_int_cst_sign_bit just for INTEGER constants.
34625 2017-03-09  Martin Liska  <mliska@suse.cz>
34627         PR target/65705
34628         PR target/69804
34629         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
34630         sanitizers.
34632 2017-03-09  Marek Polacek  <polacek@redhat.com>
34634         PR c++/79672
34635         * tree.c (inchash::add_expr): Handle TREE_VEC.
34637 2017-03-09  Martin Liska  <mliska@suse.cz>
34639         PR ipa/79764
34640         (chkp_narrow_size_and_offset): New function.
34641         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
34642         (void chkp_parse_bit_field_ref): New function.
34643         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
34644         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
34646 2017-03-09  Martin Liska  <mliska@suse.cz>
34648         PR ipa/79761
34649         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
34650         (chkp_find_bounds_1): Remove gcc_unreachable.
34652 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
34654         PR sanitizer/79944
34655         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
34656         BUILT_IN_SYNC*, determine the access type from the size suffix and
34657         always build a MEM_REF with that type.  Handle forgotten
34658         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
34660         PR target/79932
34661         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
34662         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
34663         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
34664         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
34665         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
34666         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
34667         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
34668         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
34669         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
34670         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
34671         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
34672         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
34673         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
34674         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
34675         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
34676         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
34677         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
34678         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
34679         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
34680         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
34681         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
34682         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
34683         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
34684         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
34685         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
34686         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
34687         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
34688         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
34689         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
34690         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
34691         definitions outside of __OPTIMIZE__ guarded section.
34693         PR target/79932
34694         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
34695         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
34696         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
34697         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
34698         guarded section.
34700 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34702         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
34703         ("vfenez<mode>"): Add missing constraints.
34705 2017-03-08  Martin Sebor  <msebor@redhat.com>
34707         PR target/79928
34708         * config/nds32/nds32.c (nds32_option_override):
34709         Fix misspelled diagnostic.
34711 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
34713         PR c/79940
34714         * gimplify.c (gimplify_omp_for): Replace index var in outer
34715         taskloop statement with an artificial variable and add
34716         OMP_CLAUSE_PRIVATE clause for it.
34718 2017-03-08  Richard Biener  <rguenther@suse.de>
34720         PR tree-optimization/79955
34721         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
34722         for accesses that are completely outside of the variable.
34724 2017-03-08  Andrew Haley  <aph@redhat.com>
34726         PR tree-optimization/79943
34727         * tree-ssa-loop-split.c (compute_new_first_bound): When
34728         calculating the new upper bound, (END-BEG) should be added, not
34729         subtracted.
34731 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
34733         * config/avr/avr.md (setmemhi): Make sure match_dup
34734         operand number comes before match_scratch.
34736 2017-03-08  Richard Biener  <rguenther@suse.de>
34738         PR tree-optimization/79920
34739         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
34740         with ncopies == 1 to ...
34741         (vect_transform_slp_perm_load): ... here.  Properly compute
34742         all element loads by iterating VF times over the group.  Do
34743         not handle ncopies (computed in a broken way) in
34744         vect_create_mask_and_perm.
34746 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
34748         PR sanitizer/79904
34749         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
34750         is a uniform vector, use uniform_vector_p return value instead of
34751         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
34753 2017-03-07  Marek Polacek  <polacek@redhat.com>
34755         PR middle-end/79809
34756         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
34757         (alloca_call_type): Likewise.
34759 2017-03-07  Martin Liska  <mliska@suse.cz>
34761         * gcov.c (process_args): Put comment to correct location.
34763 2017-03-07  Martin Liska  <mliska@suse.cz>
34765         PR middle-end/68270
34766         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
34767         Use array_at_struct_end_p instead of DECL_CHAIN (field).
34768         (chkp_narrow_bounds_for_field): Likewise.
34769         (chkp_parse_array_and_component_ref): Pass one more argument to
34770         call.
34772 2017-03-07  Richard Biener  <rguenther@suse.de>
34774         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
34775         preheaders.
34777 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
34779         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
34780         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
34782 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34784         PR c/79855
34785         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
34786         to end of description.
34787         (PARAM_MAX_STORES_TO_MERGE): Likewise.
34789 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
34791         PR rtl-optimization/79901
34792         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
34793         ...
34794         (*avx512f_<code><mode>3<mask_name>): ... this.
34795         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
34796         iterator instead of VI8_AVX2_AVX512BW.
34798         PR rtl-optimization/79901
34799         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
34800         min/max expander, expand it using expand_vec_cond_expr.
34802         PR sanitizer/79897
34803         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
34804         temporary.
34806 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
34808         PR c++/79821
34809         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
34810         to void * for PCH reasons.
34811         * dwarf2out.c (output_loc_operands, output_die): Cast
34812         v.val_vec.array to unsigned char *.
34814 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
34816         PR target/77850
34817         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
34818         vector types.
34820 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
34822         PR rtl-optimization/79571
34823         * lra-constraints.c (process_alt_operands): Calculate static
34824         reject and subtract it from overall when only addresses will be
34825         reloaded.
34827 2017-03-06  Julia Koval  <julia.koval@intel.com>
34829         PR target/79793
34830         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
34831         incoming stack boundary to 128 for 64-bit targets.
34833 2017-03-06  Richard Biener  <rguenther@suse.de>
34835         PR tree-optimization/79894
34836         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
34837         to NULL after folding it.
34839 2017-03-06  Richard Biener  <rguenther@suse.de>
34841         PR tree-optimization/79824
34842         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
34843         check disabling peeling for gaps.
34845 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
34847         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
34848         attributes): Document gettimeofday.
34850 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
34852         * config/s390/s390.c (s390_option_override_internal): Set
34853         PARAM_MIN_VECT_LOOP_BOUND
34855 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
34857         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
34858         * config/s390/s390.md: Likewise.
34860 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
34862         PR target/79812
34863         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
34864         (<avx2_avx512>_perm<mode>): Rename to ...
34865         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
34866         of VI8F_256_512.
34867         (<avx512>_perm<mode>_mask): Rename to ...
34868         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
34869         of VI8F_256_512.
34870         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
34871         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
34872         instead of VI8F_256_512.
34873         (avx512f_perm<mode>): New define_expand.
34874         (avx512f_perm<mode>_mask): Likewise.
34875         (avx512f_perm<mode>_1<mask_name>): New define_insn.
34876         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
34878 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
34880         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
34881         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
34882         if_then_else.
34883         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
34885 2017-03-06  Martin Liska  <mliska@suse.cz>
34887         PR sanitize/79783
34888         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
34889         when having a SSA NAME w/o VAR_DECL assigned to it.
34891 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
34893         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
34894         msa_dpsub_<su>_d): Fix MODE for vec_select.
34896 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
34898         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
34899         argument.
34900         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
34902 2017-03-06  Richard Biener  <rguenther@suse.de>
34904         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
34905         * plugin.c (register_plugin_info): Likewise.
34906         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
34908 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
34910         * config/i386/sse.md (sse_storehps, sse_storelps,
34911         avx_<castmode><avxsizesuffix>_<castmode>,
34912         avx512f_<castmode><avxsizesuffix>_<castmode>,
34913         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
34914         in condition that at least one operand is not a MEM.
34916 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
34918         PR middle-end/79805
34919         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
34920         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
34921         ECF_NOTHROW.
34922         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
34923         gimple_call_nothrow_p flag based on whether original builtin can throw.
34924         If it can, emit following stmts on the fallthrough edge.
34925         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
34926         don't create new bb if inserting just debug stmts on the edge, try to
34927         insert them on the fallthru bb or just reset debug stmts.
34929 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
34931         PR target/43763
34932         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
34933         restore recog_data (including the operand rtxes inside it) around
34934         the call to get_insn_template.
34936 2017-03-03  Martin Sebor  <msebor@redhat.com>
34938         PR tree-optimization/79699
34939         * context.c (context::~context): Free MPFR caches to avoid
34940         a memory leak on program exit.
34942 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34944         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
34945         Use wide_int::ulow () instead of .elt (0).
34947 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
34949         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
34950         (*pushxf): Limit oF constraint to 32bit targets and add oC
34951         constraint for 64bit targets.
34952         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
34953         (*pushdf): Change rmF constraint to rmC.
34955 2017-03-03  Martin Liska  <mliska@suse.cz>
34957         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
34958         Remove unused variable.
34960 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
34962         PR target/79807
34963         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
34964         is a memory operand, increase num_memory.
34965         (ix86_expand_args_builtin): Likewise.
34967 2017-03-03  Jan Hubicka  <jh@suse.cz>
34969         PR lto/79760
34970         * ipa-devirt.c (maybe_record_node): Properly handle
34971         __cxa_pure_virtual visibility.
34973 2017-03-03  Martin Liska  <mliska@suse.cz>
34975         PR tree-optimization/79803
34976         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
34977         assert.
34978         (pass_loop_prefetch::execute): Disabled optimization if an
34979         assumption about L1 cache size is not met.
34981 2017-03-03  Martin Liska  <mliska@suse.cz>
34983         PR rtl-optimization/79574
34984         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
34985         (hash_scan_set): Likewise.
34986         (dump_hash_table): Likewise.
34987         (hoist_code): Likewise.
34989 2017-03-03  Richard Biener  <rguenther@suse.de>
34991         * fixed-value.c (fixed_from_string): Restore use of elt (1)
34992         in place of uhigh ().
34993         (fixed_convert_from_real): Likewise.
34995 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
34997         PR target/79514
34998         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
35000 2017-03-03  Richard Biener  <rguenther@suse.de>
35002         PR middle-end/79818
35003         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
35004         TYPE_OVERFLOW_UNDEFINED check.
35006 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35008         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
35009         numbers.
35010         (vector_ae_<mode>_p): Likewise.
35011         (vector_nez_<mode>_p): Likewise.
35012         (vector_ne_v2di_p): Likewise.
35013         (vector_ae_v2di_p): Likewise.
35014         (vector_ne_<mode>_p): Likewise.
35015         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
35016         numbers.
35017         (vsx_tsqrt<mode>2_fe): Likewise.
35019 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
35021         PR target/79514
35022         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
35024 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
35026         PR rtl-optimization/79780
35027         * cprop.c (one_cprop_pass): When second and further conditional trap
35028         in a single basic block is turned into an unconditional trap, turn it
35029         into a deleted note to avoid RTL verification failures.
35031 2017-03-02  Richard Biener  <rguenther@suse.de>
35033         * fold-const.c (const_binop): Use ulow () instead of elt (0).
35035 2017-03-02  Richard Biener  <rguenther@suse.de>
35037         PR tree-optimization/79345
35038         PR c++/42000
35039         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
35040         param and abort the walk, returning -1 if it is hit.
35041         (walk_aliased_vdefs): Take a limit param and pass it on.
35042         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
35043         defaulting to 0 and return a signed int.
35044         * tree-ssa-uninit.c (struct check_defs_data): New struct.
35045         (check_defs): New helper.
35046         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
35047         about uninitialized memory.
35048         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
35049         bogus uninitialized warning.
35050         (fixed_convert_from_real): Likewise.
35052 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
35054         PR tree-optimization/66768
35055         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
35056         iv_use if base object can't be determined.
35058 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
35060         PR tree-optimization/79345
35061         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
35062         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
35063         (get_pattern_stats): Initialize it.
35064         * genemit.c (gen_expand): Verify match_scratch numbers come after
35065         match_operand/match_dup numbers.
35066         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
35067         match_scratch numbers.
35068         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
35069         Likewise.
35070         * config/s390/s390.md (trunctdsd2): Likewise.
35072 2017-03-02  Richard Biener  <rguenther@suse.de>
35074         * wide-int.h (wide_int_storage::operator=): Implement in terms
35075         of wi::copy.
35077 2017-03-02  Richard Biener  <rguenther@suse.de>
35079         PR tree-optimization/79777
35080         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
35081         the to insert expression to sth existing.
35083 2017-03-01  Martin Sebor  <msebor@redhat.com>
35085         PR middle-end/79692
35086         * gimple-ssa-sprintf.c
35087         (directive::known_width_and_precision): New function.
35088         (format_integer): Use it.
35089         (get_mpfr_format_length): Consider the full range of precision
35090         when computing %g output with the # flag.  Set the likely byte
35091         count to 3 rather than 1 when precision is indeterminate.
35092         (format_floating): Correct the lower bound of precision.
35094 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35096         * doc/invoke.texi: Document default code model for 64-bit Linux.
35098 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35100         PR target/79752
35101         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
35102         udiv rather than div since input pattern is unsigned.
35104 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
35106         * config/i386/i386.c (print_reg): Warn for values of
35107         unsupported size in integer register.
35109 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
35111         PR target/79439
35112         * config/rs6000/predicates.md (current_file_function_operand): Do
35113         not allow self calls to be local if the function is replaceable.
35115 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35117         PR target/79395
35118         * config/rs6000/altivec.h (vec_ctz and others): Change the
35119         preprocessor macro that controls conditional compilation from
35120         _ARCH_PWR9 to __POWER9_VECTOR__.
35121         (vec_all_ne): Change parameterization of __altivec_scalar_pred
35122         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
35123         control (instead of _ARCH_PWR9 control) so that template
35124         definition uses power9-specific function.
35125         (vec_any_eq): Likewise.
35126         (vec_all_ne): Change macro definition to use a power9-specific
35127         expansion under #ifdef __POWER9_VECTOR__ control (instead of
35128         _ARCH_PWR9 control).
35129         (vec_any_eq) Likewise.
35130         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
35131         expansion for CMPNEF to remove support for xvcmpnesp instruction.
35132         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
35133         support for xvcmpnedp instruction.
35134         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
35135         macro expansion so that Power9 implementation of vec_all_ne does
35136         not use the AltiVec predicate framework.
35137         (VCMPNEH_P): Likewise.
35138         (VCMPNEW_P): Likewise.
35139         (VCMPNED_P): Likewise.
35140         (VCMPNEFP_P): Likewise.
35141         (VCMPNEDP_P): Likewise.
35142         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
35143         implementation of vec_any_eq to not use AltiVec predicate
35144         framework.
35145         (VCMPAEH_P): Likewise.
35146         (VCMPAEW_P): Likewise.
35147         (VCMPAED_P): Likewise.
35148         (VCMPAEFP_P): Likewise.
35149         (VCMPAEDP_P): Likewise.
35150         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
35151         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
35152         not use the AltiVec predicate framework.
35153         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
35154         of vec_any_eq to not use AltiVec predicate framework.
35155         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
35156         support for predefined __POWER9_VECTOR__ macro to indicate that
35157         Power9 instruction selection is enabled.
35158         (altivec_overloaded_builtins): Remove extraneous
35159         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
35160         function argument types RS6000_BTI_bool_V16QI and
35161         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
35162         entry for overloaded function argument types RS6000_BTI_bool_V4SI
35163         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
35164         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
35165         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
35166         Power9 for implementations of vec_cmpne.  Change the signature for
35167         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
35168         (representing vec_all_ne) to remove the previously described first
35169         argument of type RS6000_BTI_INTSI, as this was an artifact of
35170         reliance on the AltiVec predicate framework, which is no longer
35171         used in the implementation of these functions.  Add
35172         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
35173         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
35174         since, unlike the AltiVec predicate framework implementation, we
35175         do not share function descriptors between vec_alle and vec_anyeq.
35176         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
35177         set of modes that receive special treatment even when
35178         TARGET_P9_VECTOR is true.  The special treatment emits code that
35179         does not depend on Power9 instructions.
35180         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
35181         define_expand to not rely on AltiVec predicate framework.
35182         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
35183         function.
35184         (vector_ne_v2di_p): Change this define_expand to not rely on
35185         AltiVec predicate framework.
35186         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
35187         function.
35188         (vector_ne_<mode>_p): Change this define_expand to not rely on
35189         AltiVec predicate framework.
35190         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
35191         function.
35192         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
35193         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
35194         define_insn pattern.
35195         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
35196         define_insn pattern because the xvcmpne<VSs>. instruction is not
35197         supported.
35198         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
35199         instruction is not supported.
35201 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
35203         * config/nvptx/nvptx.c: Include intl.h.
35205 2017-03-01  Martin Jambor  <mjambor@suse.cz>
35207         PR lto/78140
35208         * ipa-prop.h (ipa_bits): Removed field known.
35209         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
35210         to pointers.  Adjusted their comments to warn about their sharing.
35211         (ipcp_transformation_summary): Change bits to a vector of pointers.
35212         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
35213         (ipa_get_ipa_bits_for_value): Declare.
35214         * tree-vrp.h (value_range): Mark as GTY((for_user)).
35215         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
35216         (ipa_bits_hash_table): Likewise.
35217         (ipa_vr_ggc_hash_traits): Likewise.
35218         (ipa_vr_hash_table): Likewise.
35219         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
35220         being pointers and vr_known being removed.
35221         (ipa_set_jf_unknown): Likewise.
35222         (ipa_get_ipa_bits_for_value): New function.
35223         (ipa_set_jfunc_bits): Likewise.
35224         (ipa_get_value_range): New overloaded functions.
35225         (ipa_set_jfunc_vr): Likewise.
35226         (ipa_compute_jump_functions_for_edge): Use the above functions to
35227         construct bits and vr parts of jump functions.
35228         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
35229         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
35230         exist.
35231         (ipcp_grow_transformations_if_necessary): Also allocate
35232         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
35233         exist.
35234         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
35235         them.  Fix too long lines.
35236         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
35237         vr_known being removed.
35238         (ipa_read_jump_function): Use new setter functions to construct bits
35239         and vr parts of jump functions or set them to NULL.
35240         (write_ipcp_transformation_info): Adjust for bits being pointers.
35241         (read_ipcp_transformation_info): Likewise.
35242         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
35243         space.
35244         Include gt-ipa-prop.h.
35245         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
35246         being pointers.
35247         (ipcp_store_bits_results): Likewise.
35248         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
35249         Do not write to existing jump functions but use a temporary instead.
35251 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
35253         PR c++/79681
35254         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
35255         attempt to use its first operand as BIT_FIELD_REF base.
35257 2017-03-01  Richard Biener  <rguenther@suse.de>
35259         PR middle-end/79721
35260         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
35261         interpolating formula in wrapping arithmetic.
35262         (chrec_apply): Convert chrec_evaluate return value to wanted type.
35264 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
35266         PR tree-optimization/79734
35267         * tree-vect-generic.c (expand_vector_condition): Optimize
35268         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
35269         Handle VEC_COND_EXPR where comparison has different inner width from
35270         type's inner width.
35272 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
35274         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
35275         markup, and similar issues.  Remove @opindex entries for things
35276         that aren't options.  Add missing -mmpy-option entries.
35278 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
35280         PR tree-optimization/79737
35281         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
35282         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
35283         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
35284         instead of byte_size.  Formatting fix.
35285         (shift_bytes_in_array_right): Formatting fix.
35287 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
35289         PR target/79749
35290         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
35291         condition on optimize for the leaf function test.
35293 2017-02-28  Martin Liska  <mliska@suse.cz>
35295         PR lto/79625
35296         * read-rtl-function.c (function_reader::handle_unknown_directive):
35297         Bail out when one uses -flto.
35299 2017-02-28  Martin Liska  <mliska@suse.cz>
35301         * common.opt: Replace space with tabular for options of <number>
35302         type.
35303         * config/i386/i386.opt: Show <number> value for
35304         -mlarge-data-threshold.
35305         * opts.c (print_filtered_help): Do not display number in hexadecimal
35306         format.
35308 2017-02-28  Martin Liska  <mliska@suse.cz>
35310         * common.opt: Fix --help=option -Q for options which are of
35311         an enum type.
35313 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
35315         * config/i386/i386.c (print_reg): Error out for values
35316         of 8-bit size in invalid integer register.
35318 2017-02-28  Martin Sebor  <msebor@redhat.com>
35320         PR tree-optimization/79691
35321         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
35323 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
35325         PR target/79729
35326         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
35327         gcc_unreachable with output_operand_lossage.
35329 2017-02-28  Richard Biener  <rguenther@suse.de>
35331         PR tree-optimization/79740
35332         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
35333         inserts.
35334         (visit_nary_op): Insert the nary into the hashtable if we
35335         pattern-matched sth.
35336         * tree-ssa-pre.c (eliminate_insert): Robustify.
35338 2017-02-28  Richard Biener  <rguenther@suse.de>
35340         PR middle-end/79731
35341         * fold-const.c (decode_field_reference): Reject out-of-bound
35342         accesses.
35344 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
35346         * config/i386/i386.c: Include intl.h.
35347         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
35348         instead of just cond ? "..." : "...".
35349         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
35350         * coverage.c (read_counts_file): Likewise.
35351         * omp-offload.c: Include intl.h.
35352         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
35353         of just cond ? "..." : "...".
35354         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
35355         of just cond ? "..." : "...".
35357 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
35359         PR target/79742
35360         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
35361         entry, if present.
35362         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
35363         'tune for' CPU name.
35364         * config/arm/arm-cpu-data.h: Regenerated.
35366 2017-02-28  Richard Biener  <rguenther@suse.de>
35368         PR tree-optimization/79732
35369         * tree-inline.c (expand_call_inline): Do not shadow var.
35371 2017-02-28  Richard Biener  <rguenther@suse.de>
35373         PR tree-optimization/79723
35374         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
35375         address-space properly.
35377 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
35379         * doc/optinfo.texi (Optimization groups): Fix option used for
35380         OPTGROUP_ALL.
35381         * doc/invoke.texi (-fopt-info): Document "omp".
35382         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
35383         (OPTGROUP_ALL): Add OPTGROUP_OMP.
35384         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
35385         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
35386         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
35388         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
35389         all users.
35390         * dumpfile.c (optgroup_options): Instead of "openmp", associate
35391         OPTGROUP_OMP with "omp".
35393 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
35395         PR target/79544
35396         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
35397         for arithmetic shift of unsigned V2DI.
35399 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
35401         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
35402         arc/linux.h headers.
35403         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
35404         (LINK_SPEC): Likewise.
35405         (ARC_TLS_EXTRA_START_SPEC): Likewise.
35406         (EXTRA_SPECS): Likewise.
35407         (STARTFILE_SPEC): Likewise.
35408         (ENDFILE_SPEC): Likewise.
35409         (LIB_SPEC): Likewise.
35410         (TARGET_SDATA_DEFAULT): Likewise.
35411         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
35412         (MULTILIB_DEFAULTS): Likewise.
35413         (DWARF2_UNWIND_INFO): Likewise.
35414         * config/arc/big.h: New file.
35415         * config/arc/elf.h: Likewise.
35416         * config/arc/linux.h: Likewise.
35417         * config/arc/t-uClibc: Remove.
35419 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
35421         PR tree-optimization/77536
35422         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
35423         (tree_transform_and_unroll_loop): Use above function to compute the
35424         estimated niter of unrolled loop and use it when scaling profile.
35425         Also use count info rather than frequency if it's non-zero.
35426         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
35427         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
35428         (vect_transform_loop): Call above function.
35430 2017-02-27  Richard Biener  <rguenther@suse.de>
35432         PR tree-optimization/45397
35433         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
35434         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
35435         (visit_nary_op): Add pattern matching for CSEing sign-changed
35436         or truncated operations with wider ones.
35438 2017-02-27  Richard Biener  <rguenther@suse.de>
35440         PR tree-optimization/79690
35441         * tree-vect-stmts.c (vectorizable_store): Use vector type
35442         built from the DR with address-space.
35444 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
35446         * doc/invoke.texi (Optimize Options): Refine the description
35447         of asan-use-after-return.
35449 2017-02-25  Alan Modra  <amodra@gmail.com>
35451         PR rtl-optimization/79584
35452         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
35453         base, not ad->base_term, the reg within base.  Remove assertion
35454         that ad->base == ad->base_term.  Replace gen_int_mode using
35455         bogus mode with const0_rtx.
35457 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
35459         PR middle-end/79396
35460         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
35461         FMA_EXPR like tcc_binary or tcc_unary.
35463         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
35465         PR debug/77589
35466         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
35467         bitfield.
35468         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
35469         (output_loc_operands): Handle DW_OP_call_ref and
35470         DW_OP_GNU_variable_value.
35471         (struct variable_value_struct): New type.
35472         (struct variable_value_hasher): Likewise.
35473         (variable_value_hash): New variable.
35474         (string_types): Remove.
35475         (copy_loc_descr): New function.
35476         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
35477         (prepend_loc_descr_to_each): New function.
35478         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
35479         instead of add_loc_descr_to_each if the first argument is single
35480         location list and the second has multiple.
35481         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
35482         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
35483         when looking for variable value which doesn't have other location info.
35484         (loc_list_from_tree): Formatting fix.
35485         (gen_array_type_die): Simplify DW_AT_string_length handling.
35486         (adjust_string_types): Remove.
35487         (gen_subprogram_die): Don't call adjust_string_types nor test/set
35488         string_types.  Call resolve_variable_values.
35489         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
35490         (resolve_addr_in_expr): Likewise.  Add A argument.
35491         (copy_deref_exprloc): Remove deref argument.  Adjust for the
35492         original expression being DW_OP_GNU_variable_value with optionally
35493         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
35494         optionally after it.
35495         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
35496         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
35497         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
35498         (variable_value_hasher::hash, variable_value_hasher::equal): New
35499         methods.
35500         (resolve_variable_value_in_expr, resolve_variable_value,
35501         resolve_variable_values, note_variable_value_in_expr,
35502         note_variable_value): New functions.
35503         (dwarf2out_early_finish): Call note_variable_value on all toplevel
35504         DIEs.
35506 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
35508         PR c/79677
35509         * opts.h (handle_generated_option): Add GENERATED_P argument.
35510         * opts-common.c (handle_option): Adjust function comment.
35511         (handle_generated_option): Add GENERATED_P argument, pass it to
35512         handle_option.
35513         (control_warning_option): Pass false to handle_generated_option
35514         GENERATED_P.
35515         * opts.c (maybe_default_option): Pass true to handle_generated_option
35516         GENERATED_P.
35517         * optc-gen.awk: Likewise.
35519 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35521         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
35522         a REG, look at the REG it is a SUBREG of.
35523         (splitter for cmpeqsi_t): Ditto.
35525 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35527         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
35528         the special USEs with the pattern of the insn, not the insn itself.
35530 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
35532         PR target/79473
35533         * doc/invoke.texi: Document -mload-store-pairs.
35535 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35536             Sandra Loosemore  <sandra@codesourcery.com>
35538         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
35539         argument isn't a CONST_INT.
35540         (nios2_alternate_compare_const): Assert op is a CONST_INT.
35541         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
35542         (nios2_validate_compare): Bypass alternate compare logic if *op2
35543         is not a CONST_INT.
35544         (ldstwm_operation_p): Return false if first_base is not a REG or
35545         if first_offset is not a CONST_INT.
35547 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35549         * config/cris/cris.md: Use correct operand in a define_peephole2.
35551 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35553         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
35555 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35557         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
35558         this_insn if it is an INSN or JUMP_INSN.
35559         (force_offsettable): Look at base, not at addr.
35560         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
35561         on things that aren't necessarily CONST_INTs.
35563 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
35565         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
35566         -mfpmath=sse is the default also for x86-32 targets with SSE2
35567         instruction set when @option{-ffast-math} is enabled
35569 2017-02-24  Jeff Law  <law@redhat.com>
35571         PR rtl-optimizatoin/79286
35572         * ira.c (update_equiv_regs): Drop may_trap_p exception to
35573         dominance test.
35575 2017-02-24  Richard Biener  <rguenther@suse.de>
35577         PR tree-optimization/79389
35578         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
35579         debug insns.
35581 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
35583         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
35584         function comment to reflect reality.
35585         (loop_exits_before_overflow): Fix typo in function description.
35587 2017-02-24  Richard Biener  <rguenther@suse.de>
35589         PR tree-optimization/79389
35590         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
35591         properly that a threading opportunity exists.  Detect conditional
35592         copy/constant propagation opportunities.
35594 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
35596         * config/visium/visium.md (type): Add trap.
35597         (b): New mode attribute.
35598         (*btst): Rename into...
35599         (*btst<mode>): ...this and adjust.
35600         (*cbranchsi4_btst_insn): Rename into...
35601         (*cbranch<mode>4_btst_insn): ...this and adjust.
35602         (trap): New define_insn.
35604 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
35606         PR tree-optimization/79389
35607         * ifcvt.c (struct noce_if_info): Add rev_cond field.
35608         (noce_reversed_cond_code): New function.
35609         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
35610         reversed_comparison_code.  Formatting fix.
35611         (noce_try_store_flag): Test rev_cond != NULL in addition to
35612         reversed_comparison_code.
35613         (noce_try_store_flag_constants): Likewise.
35614         (noce_try_store_flag_mask): Likewise.
35615         (noce_try_addcc): Use rev_cond if non-NULL instead of
35616         reversed_comparison_code.
35617         (noce_try_cmove_arith): Likewise.  Formatting fixes.
35618         (noce_try_minmax, noce_try_abs): Clear rev_cond.
35619         (noce_find_if_block): Initialize rev_cond.
35620         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
35621         instead of false as last argument never attempt to reverse it
35622         afterwards.
35624 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
35626         PR tree-optimization/79663
35627         * tree-predcom.c (combine_chains): Process refs in reverse order
35628         only for ZERO length chains, and add explaining comment.
35630 2017-02-23  Jeff Law  <law@redhat.com>
35632         PR tree-optimization/79578
35633         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
35634         in call to operand_equal_p.
35636 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
35638         PR target/71017
35639         * config/i386/cpuid.h: Fix another undefined behavior.
35641 2017-02-23  Richard Biener  <rguenther@suse.de>
35643         PR tree-optimization/79683
35644         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
35645         vector types for data-refs.
35647 2017-02-23  Martin Liska  <mliska@suse.cz>
35649         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
35651 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
35653         PR middle-end/79665
35654         * internal-fn.c (get_range_pos_neg): Moved to ...
35655         * tree.c (get_range_pos_neg): ... here.  No longer static.
35656         * tree.h (get_range_pos_neg): New prototype.
35657         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
35658         are known to be in between 0 and signed maximum inclusive, try to
35659         expand both unsigned and signed divmod and use the cheaper one from
35660         those.
35662 2017-02-22  Jeff Law  <law@redhat.com>
35664         PR tree-optimization/79578
35665         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
35666         to compare base operands.
35668 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
35670         PR target/79211
35671         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
35672         gpc_reg_operand instead of fpr_reg_operand.
35674 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
35676         * config/mips/mips.c (mips_return_in_memory): Force FP
35677         vector types to be returned in memory for o32 ABI.
35679 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
35681         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
35682         instead of DW_TAG_member for static data member declarations and don't
35683         set no_linkage_name for static inline data members.
35684         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
35685         to DW_TAG_member.
35687 2017-02-22  Martin Liska  <mliska@suse.cz>
35689         * doc/invoke.texi: Replace inequality signs with square brackets
35690         for -Wnormalized.
35692 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
35694         PR target/78660
35695         * lra-constraints.c (simplify_operand_subreg): Handle
35696         WORD_REGISTER_OPERATIONS targets.
35698 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
35700         PR target/70465
35701         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
35702         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
35703         elimination by swapping fld*.
35705 2017-02-22  Richard Biener  <rguenther@suse.de>
35707         PR tree-optimization/79673
35708         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
35709         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
35710         irrelevant address-space qualifiers and avoiding a
35711         ADDR_SPACE_CONVERT_EXPR from fold_convert.
35713 2017-02-22  Richard Biener  <rguenther@suse.de>
35715         PR tree-optimization/79666
35716         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
35717         to not symbolically negate if that may introduce undefined
35718         overflow.
35720 2017-02-22  Martin Liska  <mliska@suse.cz>
35722         PR lto/79587
35723         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
35724         * data-streamer-out.c (streamer_write_gcov_count_stream):
35725         Likewise.
35726         * value-prof.c (stream_out_histogram_value): Make assert more
35727         precise based on type of counter.
35729 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
35731         PR target/79593
35732         * config/i386/i386.md (standard_x87sse_constant_load splitter):
35733         Use nonimmediate_operand instead of memory_operand for operand 1.
35734         (float-extend standard_x87sse_constant_load splitter): Ditto.
35736 2017-02-21  Jeff Law  <law@redhat.com>
35738         PR tree-optimization/79621
35739         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
35740         blocks with edges to themselves.
35742 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
35744         PR target/79633
35745         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
35746         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
35747         Use gimple_call_builtin_p.
35749         PR target/79570
35750         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
35751         on temporarily removed DEBUG_INSNs.
35753         PR tree-optimization/79649
35754         * tree-loop-distribution.c (classify_partition): Give up on
35755         non-generic address space loads/stores.
35757 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
35759         * doc/loop.texi (Loop manipulation): Remove nonexistent
35760         tree_ssa_loop_version from the documentation.
35761         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
35763 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
35765         PR target/79494
35766         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
35767         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
35768         * config/rs6000/rs6000.c: Include except.h.
35769         (rs6000_expand_split_stack_prologue): Call
35770         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
35772 2017-02-21  Martin Jambor  <mjambor@suse.cz>
35774         PR lto/79579
35775         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
35776         have been analyzed.
35778 2017-02-21  Martin Jambor  <mjambor@suse.cz>
35780         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
35781         for backward compatibility only.
35782         * doc/invoke.texi (Option Summary): Remove all references to
35783         -fipa-cp-alignment.
35785 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
35787         PR target/78660
35788         Revert:
35789         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
35791         * lra-constraints.c (curr_insn_transform): Handle
35792         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
35794 2017-02-21  Martin Liska  <mliska@suse.cz>
35796         * config/i386/i386.opt: Replace -masm-dialect with -masm.
35798 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
35800         PR translation/79638
35801         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
35803 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
35805         PR ada/67205
35806         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
35807         (arm_function_ok_for_sibcall): Return false for an indirect call by
35808         descriptor if all the argument registers are used.
35809         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
35810         alignment of the function.
35812 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
35814         PR tree-optimization/61441
35815         * simplify-rtx.c (simplify_const_unary_operation): For
35816         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
35817         the sNaN unmodified.
35819 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35821         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
35822         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
35823         instead of SYSTEM_HEADER_DIR.
35825 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
35826             Martin LiÅ¡ka  <mliska@suse.cz>
35828         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
35829         Fix typos and grammar, use active voice, and clarify.
35831 2017-02-20  Marek Polacek  <polacek@redhat.com>
35833         PR middle-end/79537
35834         * gimplify.c (gimplify_expr): Handle unused *&&L;.
35836         PR sanitizer/79558
35837         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
35839 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
35841         PR target/79568
35842         * config/i386/i386.c (ix86_expand_builtin): Handle
35843         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
35844         ix86_builtins_isa[fcode].isa as a requirement of those
35845         flags and any other flag in the bitmask.
35846         (ix86_init_mmx_sse_builtins): Use 0 instead of
35847         ~OPTION_MASK_ISA_64BIT as mask.
35848         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
35849         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
35850         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
35851         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
35853 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
35855         PR target/78012
35856         * lra-constraints.c (split_reg): Check requested split mode
35857         is supported by the register.
35859 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
35861         * lra-constraints.c (simplify_operand_subreg): Remove early
35862         return false.
35864 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
35866         PR target/78660
35867         * lra-constraints.c (curr_insn_transform): Tighten condition
35868         for converting SUBREG reloads from OP_OUT to OP_INOUT.
35870 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
35872         PR target/78660
35873         * lra-constraints.c (curr_insn_transform): Handle
35874         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
35876 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
35878         Revert:
35879         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
35881         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
35883 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
35885         PR c++/69523
35886         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
35887         description.
35889 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
35891         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
35892         for FMA_EXPR.
35894 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
35896         * final.c (last_columnnum, override_columnnum): New variables.
35897         (final_start_function): Set last_columnnum, pass it to begin_prologue
35898         hook and pass 0 to dwarf2out_begin_prologue.
35899         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
35900         to source_line debug hook.
35901         (notice_source_line): Compute last_columnnum and for debug_column_info
35902         return true on column changes.
35903         * debug.h (struct gcc_debug_hooks): Add column argument to
35904         source_line and begin_prologue hooks.
35905         (debug_nothing_int_charstar_int_bool): Remove prototype.
35906         (debug_nothing_int_int_charstar,
35907         debug_nothing_int_int_charstar_int_bool): New prototypes.
35908         (dwarf2out_begin_prologue): Add column argument.
35909         * debug.c (do_nothing_debug_hooks): Adjust source_line and
35910         begin_prologue hooks.
35911         (debug_nothing_int_charstar_int_bool): Remove.
35912         (debug_nothing_int_int_charstar,
35913         debug_nothing_int_int_charstar_int_bool): New functions.
35914         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
35915         through to dwarf2out_source_line.
35916         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
35917         (dwarf2out_source_line): Add column argument, emit it if requested.
35918         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
35919         arguments.
35920         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
35921         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
35922         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
35923         through to dwarf2out_begin_prologue.
35924         (vmsdbgout_source_line): Add column argument, pass it through to
35925         dwarf2out_source_line.
35926         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
35927         dbxout_source_line caller.
35928         (dbxout_source_line): Add column argument.
35930         * common.opt (gno-column-info, gcolumn-info): New options.
35931         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
35932         (check_die): Also test for multiple DW_AT_decl_column attributes.
35933         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
35934         DW_AT_decl_column if requested.
35935         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
35936         if requested.
35937         (gen_variable_die): Likewise.
35938         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
35939         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
35941         PR target/79569
35942         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
35943         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
35944         (ix86_handle_option): Handle OPT_m3dnowa.
35945         * doc/invoke.texi (-m3dnowa): Document.
35946         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
35947         -m3dnowa instead of -m3dnow -march=athlon.
35949         PR target/79559
35950         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
35951         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
35953 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35955         PR target/79261
35956         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
35957         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
35958         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
35959         generator for vsx_xxpermdi_<mode>_be.
35960         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
35961         force big-endian semantics.
35962         (vsx_xxpermdi_<mode>_be): New define_expand with same
35963         implementation as previous version of vsx_xxpermdi_<mode>.
35965 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
35967         PR tree-optimization/79327
35968         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
35969         variable, its initialization and use.
35971 2017-02-17  Julia Koval  <julia.koval@intel.com>
35973         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
35974         (OPTION_MASK_ISA_PKU_UNSET): New.
35975         (ix86_handle_option): Handle -mrdpid.
35976         * config/i386/cpuid.h (bit_RDPID): New.
35977         * config/i386/driver-i386.c (host_detect_local_cpu):
35978         Detect RDPID feature.
35979         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
35980         * config/i386/i386-c.c (ix86_target_macros_internal):
35981         Handle RDPID flag.
35982         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
35983         (ix86_valid_target_attribute_inner_p): Add "rdpid".
35984         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
35985         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
35986         * config/i386/i386.md (define_insn "rdpid"): New.
35987         * config/i386/i386.opt Add -mrdpid.
35988         * config/i386/immintrin.h (_rdpid_u32): New.
35990 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
35992         PR rtl-optimization/79541
35993         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
35994         instead of transforming it into USE.
35996 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
35998         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
35999         If HONOR_SNANS (SFmode) force the input to a register.
36000         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
36001         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
36002         an frsp or similar insn.
36004 2017-02-17  Martin Liska  <mliska@suse.cz>
36006         PR rtl-optimization/79577
36007         * params.def (selsched-max-sched-times): Increase minimum to 1.
36009 2017-02-17  Martin Liska  <mliska@suse.cz>
36011         PR rtl-optimization/79574
36012         * gcse.c (want_to_gcse_p): Prevent integer overflow.
36014 2017-02-17  Martin Liska  <mliska@suse.cz>
36016         PR tree-optimization/79529
36017         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
36018         ssa_defined_default_def_p to handle cases which are implicitly
36019         defined.
36020         * tree-ssa.c (ssa_defined_default_def_p): New function.
36021         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
36022         which are implicitly defined.
36023         * tree-ssa.h (ssa_defined_default_def_p): Declare.
36025 2017-02-17  Richard Biener  <rguenther@suse.de>
36027         PR middle-end/79576
36028         * params.def (max-ssa-name-query-depth): Limit to 10.
36030 2017-02-17  Richard Biener  <rguenther@suse.de>
36032         PR tree-optimization/79552
36033         * tree-ssa-structalias.c (visit_loadstore): Properly verify
36034         default defs.
36036 2017-02-17  Richard Biener  <rguenther@suse.de>
36038         PR bootstrap/79567
36039         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
36041 2017-02-17  Marek Polacek  <polacek@redhat.com>
36043         PR middle-end/79536
36044         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
36045         (fold_negate_expr): New wrapper.
36047 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
36049         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
36050         Correct terminology and de-emphasize pre-standard behavior.
36052 2017-02-16  Alan Modra  <amodra@gmail.com>
36054         PR rtl-optimization/79286
36055         * ira.c (def_dominates_uses): New function.
36056         (update_equiv_regs): Don't create an equivalence for insns that
36057         may trap where the register def does not dominate the use.
36059 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
36061         PR rtl-optimization/78127
36062         * lra.c (lra): Call lra_eliminate before finish the loop after
36063         lra_constraint.
36065 2017-02-16  Richard Biener  <rguenther@suse.de>
36067         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
36068         isl/isl_val.h.
36069         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
36070         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
36071         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
36072         (isl_val_int_from_wi): New function.
36073         (extract_affine_gmp): Rename to ...
36074         (extract_affine_wi): ... this, take a widest_int.
36075         (extract_affine_int): Just wrap extract_affine_wi.
36076         (add_param_constraints): Use isl_val_int_from_wi.
36077         (add_loop_constraints): Likewise, and extract_affine_wi.
36079 2017-02-15  Jeff Law  <law@redhat.com>
36081         PR middle-end/79521
36082         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
36083         ira_init_register_move_cost_if_necessary.
36085 2017-02-15  Martin Sebor  <msebor@redhat.com>
36087         PR middle-end/32003
36088         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
36089         removed in a prior commit.
36091 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
36093         PR tree-optimization/79347
36094         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
36095         counters during peeling.
36097 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
36099         * Makefile.in (site.exp): Remove "set ISLVER".
36101 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
36103         PR target/79487
36104         * real.c (real_from_integer): Call real_convert even for decimal.
36106 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
36108         PR target/79421
36109         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
36111 2017-02-14  Andrew Pinski  <apinski@cavium.com>
36113         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
36114         cores and change the partno/implementer to be correct.
36115         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
36116         the 'B" as the implementer.
36117         * config/aarch64/aarch64-tune.md: Regenerate.
36119 2017-02-14  Carl Love  <cel@us.ibm.com>
36121         * config/rs6000/rs6000.c: Add case statement entry to make the
36122         xvcvuxdsp built-in argument unsigned.
36123         * config/rs6000/vsx.md: Fix the source and return operand types so they
36124         match the instruction definitions from the ISA document.  Fix typo
36125         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
36126         statement.
36128 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
36130         PR target/79282
36131         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
36132         member early_clobber_alts.
36133         * lra-lives.c (reg_early_clobber_p): New.
36134         (process_bb_lives): Use it.
36135         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
36136         (debug_operand_data): Initialize early_clobber_alts.
36137         (setup_operand_alternative): Set up early_clobber_alts.
36138         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
36139         alternatives to new_insn_reg.
36140         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
36141         it.
36142         (lra_update_insn_regno_info): Pass the new arg.
36144 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
36146         PR middle-end/79505
36147         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
36148         (new_oacc_loop_raw): Don't clear already cleared fields.
36150         PR target/79481
36151         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
36152         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
36153         _mm512_prefetch_i64gather_ps): New inline functions and macros.
36155 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
36157         PR target/79495
36158         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
36160 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
36162         PR target/79498
36163         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
36164         the extra instruction to the right place to store 128-bit constant
36165         when needed.
36167 2017-02-14  Martin Sebor  <msebor@redhat.com>
36169         PR middle-end/79448
36170         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
36171           warning for strings of unknown length.
36173 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
36175         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
36177 2017-02-14  Jeff Law  <law@redhat.com>
36179         PR target/79404
36180         * ira-costs.c (scan_one_insn): Initialize register move costs
36181         for pseudos seen in USE/CLOBBER insns.
36183         PR tree-optimization/79095
36184         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
36185         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
36186         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
36187         if the operands are known to be not equal, then the resulting range
36188         is ~[0,0].
36189         (intersect_ranges): If the new range is ~[0,0] and the old range is
36190         wide, then prefer ~[0,0].
36191         * tree-vrp.c (overflow_comparison_p_1): New function.
36192         (overflow_comparison_p): New function.
36193         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
36194         if NAME is used in an overflow test.
36195         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
36196         overflow check that can be expressed as an equality test, then adjust
36197         ops to be that equality test.
36199 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36201         * config/s390/s390-builtin-types.def: Remove flags argument.
36202         * config/s390/s390.c (s390_init_builtins): Likewise.
36204 2017-02-14  Martin Liska  <mliska@suse.cz>
36206         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
36207         vector.  Fix trailing white spaces.
36209 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
36211         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
36212         HFmode.
36214 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36216         PR rtl-optimization/68664
36217         * config/arm/arm.c (arm_sched_can_speculate_insn):
36218         New function.  Declare prototype.
36219         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
36221 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36223         PR rtl-optimization/68664
36224         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
36225         New function.
36226         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
36228 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
36230         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
36231         max skip bytes for function, loop and jump.
36233 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36235         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
36236         ABS_EXPR for gimple dump.
36238 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
36240         PR target/79462
36241         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
36243         PR tree-optimization/79408
36244         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
36245         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
36246         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
36247         also if rhs1 is INTEGER_CST.
36249 2017-02-14  Richard Biener  <rguenther@suse.de>
36251         PR middle-end/79432
36252         * tree-into-ssa.c (insert_phi_nodes): When the function can
36253         have abnormal edges rewrite SSA names with broken use-def
36254         dominance out of SSA and register them for PHI insertion.
36256 2017-02-13  Martin Sebor  <msebor@redhat.com>
36258         PR middle-end/79496
36259         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
36260         clearing info.nowrite flag when snprintf size argument is a range.
36262 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
36264         * cprop.c (cprop_jump): Add missing space in string literal.
36265         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
36266         (get_constraint_for_component_ref): Likewise.
36267         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
36268         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
36269         * lra-constraints.c (process_alt_operands): Likewise.
36270         * ipa-inline.c (inline_small_functions): Likewise.
36271         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
36272         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
36273         * trans-mem.c (diagnose_tm_1_op): Likewise.
36274         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
36275         (grid_parallel_clauses_gridifiable): Likewise.
36277         * config/nvptx/mkoffload.c (process): Add space in between
36278         , and %d.
36280         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
36281         "MOD4_SSE_REGS" and "ALL_REGS".
36283         * spellcheck.c (test_data): Add , in between "foo" and "food".
36285 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36287         PR target/79449
36288         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
36289         boundary crossing check and subsequent code generation agree.
36291 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36293         * config/aarch64/aarch64.c (has_memory_op): Delete.
36294         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
36295         has_memory_op.
36297 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
36299         PR rtl-optimization/79388
36300         PR rtl-optimization/79450
36301         * combine.c (distribute_notes): When removing TEM_INSN for which
36302         corresponding dest has last value recorded, invalidate that last
36303         value.
36305 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36307         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
36308         of explicit '@'.  Add missing assembly comment marker on branch costs
36309         printout.
36311 2017-02-13  Nathan Sidwell  <nathan@acm.org>
36313         * gengtype-lex.l (<in_struct>): Add '/'.
36315 2017-02-13  Martin Liska  <mliska@suse.cz>
36317         PR c/79471
36318         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
36320 2017-02-13  Richard Biener  <rguenther@suse.de>
36322         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
36323         Remove.
36324         * configure: Re-generate.
36325         * config.in: Likewise.
36326         * graphite-dependences.c: Simplify as if
36327         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
36328         * graphite-isl-ast-to-gimple.c: Likewise.
36329         * graphite-optimize-isl.c: Likewise.
36330         * graphite-poly.c: Likewise.
36331         * graphite-sese-to-poly.c: Likewise.
36332         * graphite.h: Likewise.
36333         * toplev.c: Include isl/version.h and use isl_version () for
36334         printing the ISL version.
36335         * doc/install.texi: Update ISL requirement.
36337 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
36339         * doc/standards.texi (Standards): Update reference to
36340         Objective-C 2.0.
36342 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
36344         * doc/extend.texi (Named Address Spaces): sourceware.org now
36345         defaults to https.
36346         * doc/install.texi (Binaries): Ditto.
36347         (Specific): Ditto.
36349 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
36351         * doc/cpp.texi: Replace "stringify"/"stringification" with C
36352         standard terminology "stringize"/"stringizing" throughout.
36353         * doc/cppinternals.texi: Likewise.
36355 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
36357         * doc/extend.texi: Fix some spelling mistakes and typos.
36358         * doc/invoke.texi: Likewise.
36360 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
36362         PR ipa/79224
36363         * params.def (inline-min-speedup) Change from 10 to 8.
36365 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
36367         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
36368         4.5.
36370 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
36372         PR ipa/79224
36373         * ipa-inline-analysis.c (get_minimal_bb): New function.
36374         (record_modified): Use it.
36375         (remap_edge_change_prob): Handle also ancestor functions.
36377 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
36379         * doc/contrib.texi (Contributors): Remove broken link into
36380         the Mauve CVS repository.
36382 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
36384         PR middle-end/79454
36385         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
36386         result computation whenever lhs doesn't have vector mode, not
36387         just when it has BLKmode.
36389 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
36391         * doc/makefile.texi (profiledbootstrap): Refer to the
36392         installation instructions only in textual form.
36394 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36396         PR target/79295
36397         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
36399 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
36401         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
36402         (Specific): Update mingw-w64 reference.
36403         (Binaries): Ditto.
36404         (Specific): Remove broken link to Renesas RX processor.
36406 2017-02-10  Richard Biener  <rguenther@suse.de>
36408         * toplev.c (process_options): Do not mention obsolete graphite
36409         options when printing sorry message about missing graphite support.
36410         Mention -floop-nest-optimize.
36412 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
36414         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
36415         (vtst_p16): Likewise.
36416         (vtstq_p8): Likewise.
36417         (vtstq_p16): Likewise.
36418         (vtst_p64): New.
36419         (vtstq_p64): Likewise.
36420         * config/arm/arm_neon.h (vgetq_lane_p64): New.
36421         (vset_lane_p64): New.
36422         (vsetq_lane_p64): New.
36424 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
36426         PR tree-optimization/79411
36427         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
36428         stmt operands are SSA_NAMEs used in abnormal phis.
36429         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
36430         phis.
36432 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
36434         PR ipa/70795
36435         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
36436         flag if needed.
36438 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
36440         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
36442 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
36444         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
36445         to avoid warning.
36447         PR c/79413
36448         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
36449         not arbitrary TREE_CONSTANT.
36451         PR c/79431
36452         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
36453         "omp declare target link" attribute unless is_global_var.
36454         * omp-offload.c (find_link_var_op): Likewise.
36456 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
36457             Chung-Lin Tang  <cltang@codesourcery.com>
36459         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
36460         OMP_CLAUSE_TILE.
36461         (gimplify_adjust_omp_clauses): Don't delete TILE.
36462         (gimplify_omp_for): Deal with TILE.
36463         * internal-fn.c (expand_GOACC_TILE): New function.
36464         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
36465         (GOACC_TILE): New.
36466         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
36467         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
36468         element fields.
36469         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
36470         avoid DIV for outermost collapse var.
36471         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
36472         Remove out of date comments, fix whitespace.
36473         * omp-general.c (omp_extract_for_data): Deal with tiling.
36474         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
36475         adjust OLF_DIM_BASE value.
36476         (struct omp_for_data): Add tiling field.
36477         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
36478         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
36479         for auto loops.  Remove default auto determining, moved to
36480         oacc_loop_fixed_partitions.
36481         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
36482         stmts, add e_mask field.
36483         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
36484         (oacc_thread_numbers): Use oacc_dim_call.
36485         (oacc_xform_tile): New.
36486         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
36487         (finish_oacc_loop): Adjust for ifns vector.
36488         (oacc_loop_discover_walk): Append loop abstraction sites to list,
36489         add case for GOACC_TILE fns.
36490         (oacc_loop_xform_loop): Delete.
36491         (oacc_loop_process): Iterate over call list directly, and add
36492         handling for GOACC_TILE fns.
36493         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
36494         dump partitioning.
36495         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
36496         vector partitioning to outer loops.  Assign 2 partitions to loops
36497         when available. Add TILE handling.
36498         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
36499         (execite_oacc_device_lower): Process GOACC_TILE fns,
36500         ignore unknown specs.
36501         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
36502         * tree.c (omp_clause_num_ops): Adjust TILE ops.
36503         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
36505 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
36507         * configure.ac (ACX_BUGURL): Update.
36508         * configure: Regenerate.
36510 2017-02-09  Richard Biener  <rguenther@suse.de>
36512         PR tree-optimization/69823
36513         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
36514         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
36516 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
36518         * config/arc/arc-c.def: Add __NPS400__ definition.
36519         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
36520         (TARGET_NPS400): Define.
36522 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
36524         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
36525         file.
36526         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
36527         pointer, arch_info.
36528         (arc_cpu_types): Fill the arch_info field with a pointer into the
36529         arc_arch_types table.
36530         (arc_selected_cpu): Declare.
36531         * config/arc/arc.c (arc_selected_cpu): Make global.
36532         (arc_selected_arch): Delete.
36533         (arc_base_cpu): Delete.
36534         (arc_override_options): Remove references to deleted variables,
36535         update access to arch information.
36536         (ARC_OPT): Update access to arch information.
36537         (ARC_OPTX): Likewise.
36538         * config/arc/arc.h (arc_base_cpu): Remove declaration.
36539         (TARGET_ARC600): Update access to arch information.
36540         (TARGET_ARC601): Likewise.
36541         (TARGET_ARC700): Likewise.
36542         (TARGET_EM): Likewise.
36543         (TARGET_HS): Likewise.
36544         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
36545         information.
36547 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
36549         PR target/78604
36550         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
36551         condition/operands for integer GE/LE/GEU/LEU operations.
36553 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
36555         PR translation/79397
36556         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
36557         of AltiVec.
36559 2017-02-08  Martin Jambor  <mjambor@suse.cz>
36561         PR ipa/79375
36562         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
36563         whether allocation happened.
36564         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
36565         nothing was allocated.
36567 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
36569         PR tree-optimization/79408
36570         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
36571         constant, but SSA_NAME with a known integer range, use the minimum
36572         of that range instead of op1 to determine if modulo can be replaced
36573         with its first operand.
36575 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36577         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
36579 2017-02-08  Richard Biener  <rguenther@suse.de>
36581         PR tree-optimization/71824
36582         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
36583         Check all loops contained in the merged region.
36585 2017-02-07  Andrew Pinski  <apinski@cavium.com>
36587         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
36589 2017-02-07  Andrew Pinski  <apinski@cavium.com>
36591         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
36592         (thunderxt88): Likewise.
36593         (thunderxt81): Disable LSE and change v8.1 to v8.
36594         (thunderxt83): Likewise.
36596 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
36597             Richard Biener  <rguenther@suse.de>
36599         PR middle-end/79399
36600         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
36601         type from int to size_t.
36602         * ira-costs.c (struct_costs_size): Change type from int to size_t.
36604 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
36606         PR rtl-optimization/79386
36607         * cprop.c (bypass_conditional_jumps): Initialize
36608         bypass_last_basic_block already before splitting bbs after
36609         unconditional traps...
36610         (bypass_conditional_jumps): ... rather than here.
36612         PR target/79299
36613         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
36614         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
36615         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
36616         fix -masm=intel patterns.
36618 2017-02-07  Richard Biener  <rguenther@suse.de>
36620         PR tree-optimization/79256
36621         PR middle-end/79278
36622         * builtins.c (get_object_alignment_2): Use min_align_of_type
36623         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
36624         and ADJUST_FIELD_ALIGN.
36626         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
36627         type parameter.
36628         * doc/tm.texi: Regenerate.
36629         * stor-layout.c (layout_decl): Adjust.
36630         (update_alignment_for_field): Likewise.
36631         (place_field): Likewise.
36632         (min_align_of_type): Likewise.
36633         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
36634         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
36635         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
36636         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
36637         * config/frv/frv.c (frv_adjust_field_align): Likewise.
36638         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
36639         * config/i386/i386.c (x86_field_alignment): Likewise.
36640         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
36641         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
36642         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
36643         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
36644         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
36645         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
36646          Likewise.
36648         Revert
36649         2017-01-30  Richard Biener  <rguenther@suse.de>
36651         PR tree-optimization/79256
36652         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
36653         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
36654         alignment on TYPE.
36656 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
36658         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
36659         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
36660         builtins to SImode and emit a zero-extend, if necessary.
36662 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
36664         * docs/invoke.texi (RISC-V Options): Alphabetize.
36666 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
36668         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
36669         options.
36671 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
36673         * config/riscv/riscv.c: New file.
36674         * common/config/riscv/riscv-common.c: Likewise.
36675         * config.gcc: Likewise.
36676         * config/riscv/constraints.md: Likewise.
36677         * config/riscv/elf.h: Likewise.
36678         * config/riscv/generic.md: Likewise.
36679         * config/riscv/linux.h: Likewise.
36680         * config/riscv/multilib-generator: Likewise.
36681         * config/riscv/peephole.md: Likewise.
36682         * config/riscv/pic.md: Likewise.
36683         * config/riscv/predicates.md: Likewise.
36684         * config/riscv/riscv-builtins.c: Likewise.
36685         * config/riscv/riscv-c.c: Likewise.
36686         * config/riscv/riscv-ftypes.def: Likewise.
36687         * config/riscv/riscv-modes.def: Likewise.
36688         * config/riscv/riscv-opts.h: Likewise.
36689         * config/riscv/riscv-protos.h: Likewise.
36690         * config/riscv/riscv.h: Likewise.
36691         * config/riscv/riscv.md: Likewise.
36692         * config/riscv/riscv.opt: Likewise.
36693         * config/riscv/sync.md: Likewise.
36694         * config/riscv/t-elf-multilib: Likewise.
36695         * config/riscv/t-linux: Likewise.
36696         * config/riscv/t-linux-multilib: Likewise.
36697         * config/riscv/t-riscv: Likewise.
36698         * configure.ac: Likewise.
36699         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
36700         Waterman as RISC-V maintainers.
36701         * doc/install.texi: Add RISC-V entries.
36702         * doc/invoke.texi: Add RISC-V options section.
36703         * doc/md.texi: Add RISC-V constraints section.
36704         * configure: Regenerated.
36706 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
36708         PR target/66144
36709         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
36710         false values to be constant vectors with all 0 or all 1 bits set.
36711         (vcondu<mode><mode>): Likewise.
36712         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
36713         predicate.
36714         (fpmask_comparison_operator): Update comment.
36715         (vecint_comparison_operator): New predicate.
36716         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
36717         vector conditionals when the true and false values are constant
36718         vectors with all 0 bits or all 1 bits set.
36720 2017-02-06  Martin Sebor  <msebor@redhat.com>
36722         PR  tree-optimization/79376
36723         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
36725 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
36727         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
36728         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
36729         to simplify split condition.
36731 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
36733         * omp-expand.c (oxpand_omp_atomic_fetch_op,
36734         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
36735         false.
36737 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
36739         PR rtl-optimization/68664
36740         * target.def (can_speculate_insn): New hook.
36741         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
36742         * doc/tm.texi: Regenerate.
36743         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
36744         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
36745         (rs6000_sched_can_speculate_insn): New function.
36747 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
36749         PR tree-optimization/79284
36750         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
36751         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
36752         vectorizable_mask_load_store, vectorizable_operation,
36753         vect_is_simple_cond, get_same_sized_vectype): Use it instead
36754         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
36755         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
36756         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
36757         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
36758         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
36759         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
36760         is_gimple_assign (stmt).  Replace another such test with
36761         is_gimple_assign (stmt).
36763 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
36765         PR target/78883
36766         * config/avr/avr.c (rtl-iter.h): Include it.
36767         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
36768         (avr_legitimate_combined_insn): ...and implementation.
36770 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
36772         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
36773         * config/s390/s390.c (s390_const_operand_ok)
36774         (s390_canonicalize_comparison, s390_extract_part)
36775         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
36776         (s390_contiguous_bitmask_p, s390_rtx_costs)
36777         (legitimize_pic_address): Likewise.
36778         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
36779         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
36780         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
36781         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
36782         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
36784 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
36786         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
36787         REGNO($0) == REGNO($1).
36789 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36791         * config/s390/linux.h(SIZE_TYPE): Add comment.
36793 2017-02-06  Julian Brown  <julian@codesourcery.com>
36794             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
36795             Virendra Pathak  <virendra.pathak@broadcom.com>
36797         * config/aarch64/aarch64-cores.def: Change the scheduler
36798         to Thunderx2t99.
36799         * config/aarch64/aarch64.md: Include thunderx2t99.md.
36800         * config/aarch64/thunderx2t99.md: New file.
36802 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
36804         * doc/standards.texi (Go Language): Update link to language
36805         standard.
36807 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
36809         * tree-eh.c (lower_resx): Sanitize profile.
36810         (cleanup_empty_eh_move_lp): Likewise.
36812 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
36814         PR tree-ssa/79347
36815         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
36816         ELSE_PROB.
36817         * cfgloopmanip.h (loop_version): Update prototype.
36818         * modulo-sched.c (sms_schedule): Update call of loop_version.
36819         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
36820         * tree-parloops.c (gen_parallel_loop): Likewise.
36821         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
36822         * tree-ssa-loop-split.c (split_loop): Likewise.
36823         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
36824         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
36826 2017-02-05  Martin Liska  <mliska@suse.cz>
36828         PR bootstrap/78985
36829         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
36830         variable to NULL.
36831         (print_operand_address): Initialize a struct to zero.
36833 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
36835         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
36836         garbage collector only in textual form.
36838 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
36840         * doc/extend.texi (x86 specific memory model extensions for
36841         transactional memory): Simplify a phrase.
36843 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
36845         PR target/79353
36846         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
36847         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
36848         (atomic_storedi_1): Likewise.
36850 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
36852         PR tree-optimization/79338
36853         * tree-parloops.c (gather_scalar_reductions): Don't call
36854         vect_analyze_loop_form for loop->inner before destroying loop's
36855         loop_vinfo.
36857 2017-02-03  Martin Sebor  <msebor@redhat.com>
36859         PR tree-optimization/79327
36860         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
36861         when precision has resulted in leading zeros.
36862         (format_integer): Adjust the likely counter to assume an unknown
36863         argument that may be zero is non-zero.
36865 2017-02-03  Jason Merrill  <jason@redhat.com>
36867         PR c++/78689
36868         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
36869         avoid copying non-taken branch.
36871 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
36873         PR tree-optimization/79340
36874         * tree-vect-loop.c (vectorizable_reduction): Release
36875         vec_defs elements after safe_splicing them into other vectors.
36876         Formatting fixes.
36878         PR tree-optimization/79327
36879         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
36880         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
36881         dirtype.
36882         (format_integer): Use wide_int_to_tree instead of build_int_cst
36883         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
36884         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
36885         of shortest and longest sequence.
36887 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
36889         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
36890         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
36892 2017-02-03  Walter Lee  <walt@tilera.com>
36894         PR target/78862
36895         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
36896         after initial stackframe link reg save.
36897         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
36899 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
36901         PR target/79354
36902         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
36903         wu for stxssp alternative.
36905 2017-02-03  Martin Sebor  <msebor@redhat.com>
36907         PR tree-optimization/79352
36908         * gimple-fold.c (get_range_strlen): Add argument.
36909         (get_range_strlen): Change return type to bool.
36910         (get_maxval_strlen): Pass in a dummy argument.
36911         * gimple-fold.h (get_range_strlen): Change return type to bool.
36912         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
36913         * tree.h (array_at_struct_end_p): Add argument.
36914         * tree.c (array_at_struct_end_p): Handle it.
36916 2017-02-03  Martin Liska  <mliska@suse.cz>
36918         PR lto/66295
36919         * multiple_target.c (create_dispatcher_calls): Redirect edge
36920         from a caller of a dispatcher.
36921         (expand_target_clones): Make the clones local.
36922         (ipa_target_clone): Do both target clones and resolvers.
36923         (ipa_dispatcher_calls): Remove the pass.
36924         (pass_dispatcher_calls::gate): Likewise.
36925         (make_pass_dispatcher_calls): Likewise.
36926         * passes.def (pass_target_clone): Put as very first IPA early
36927         pass.
36929 2017-02-03  Martin Liska  <mliska@suse.cz>
36931         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
36932         in case of a function with ifunc attribute.
36934 2017-02-03  Martin Liska  <mliska@suse.cz>
36936         * cgraph.c (cgraph_node::dump): Dump function version info.
36937         * symtab.c (symtab_node::dump_base): Add missing new line.
36939 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
36941         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
36942         (ifcombine_ifandif): Use it.
36944 2017-02-03  Martin Liska  <mliska@suse.cz>
36946         * doc/invoke.texi: Document default value for
36947         use-after-scope-direct-emission-threshold.
36949 2017-02-03  Martin Liska  <mliska@suse.cz>
36951         PR tree-optimization/79339
36952         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
36953         (format_floating): Likewise.
36955 2017-02-03  Martin Liska  <mliska@suse.cz>
36957         PR ipa/79337
36958         * ipa-prop.c (ipa_node_params_t::insert): Remove current
36959         implementation.
36960         (ipa_node_params_t::remove): Likewise.
36961         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
36962         initialization from removed ipa_node_params_t::insert.
36963         (ipa_node_params::~ipa_node_params): Move from removed
36964         ipa_node_params_t::release.
36965         * symbol-summary.h (symbol_summary::m_released): New member.
36966         Do not release a summary twice.  Do not allow to call finalizer
36967         for types of a summary that live in GGC memory.
36969 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
36971         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
36972         cmp_branch fusion.
36974 2017-02-02  Martin Sebor  <msebor@redhat.com>
36976         PR middle-end/79275
36977         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
36978         (format_string): Tighten up the range of output for non-constant
36979         strings and correct the expected range for wide non-constant strings.
36981 2017-02-02  Martin Sebor  <msebor@redhat.com>
36983         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
36985         PR middle-end/32003
36986         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
36987         index.
36988         (-fdump-tree-@var): Add to index and document how to come up
36989         with pass-specific option and dump file names.
36990         (-fdump-passes): Clarify where to look for output.
36992 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
36994         PR middle-end/77445
36995         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
36996         statistics of the analyzed path; allow threading for speed when
36997         any of BBs along the path are optimized for speed.
36999 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
37001         PR middle-end/78468
37002         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
37003         settings of the virtual registers.
37005         Revert again
37006         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37008         * explow.c (get_dynamic_stack_size): Take known alignment of stack
37009         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
37010         needed.
37012 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37014         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
37015         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
37017 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37019         * config/s390/s390.md: Add missing comments with the expanded
37020         mnemonics.
37021         * config/s390/vector.md: Likewise.
37022         * config/s390/vx-builtins.md: Likewise.
37024 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
37026         PR target/79197
37027         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
37028         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
37029         conditions on a single line.
37031 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37033         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
37034         __S390_VX__ to __VX__.
37036 2017-02-01  Andrew Pinski  <apinski@cavium.com>
37038         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
37039         stmt_info to record_stmt_cost.
37040         (vect_get_known_peeling_cost): Pass stmt_info if known to
37041         record_stmt_cost.
37042         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
37043         cpu_vector_cost field into
37044         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
37045         field into vec_int_stmt_cost and vec_fp_stmt_cost.
37046         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
37047         splitting of scalar_stmt_cost and vec_stmt_cost.
37048         (thunderx_vector_cost): Likewise.
37049         (cortexa57_vector_cost): LIkewise.
37050         (exynosm1_vector_cost): Likewise.
37051         (xgene1_vector_cost): Likewise.
37052         (thunderx2t99_vector_cost): Improve after the splitting of the two
37053         fields.
37054         (aarch64_builtin_vectorization_cost): Update for the splitting of
37055         scalar_stmt_cost and vec_stmt_cost.
37057 2017-02-01  Torvald Riegel  <triegel@redhat.com>
37058             Richard Henderson  <rth@redhat.com>
37060         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
37061         conditional on existance of a fast atomic load.
37062         * optabs-query.c (can_atomic_load_p): New function.
37063         * optabs-query.h (can_atomic_load_p): Declare it.
37064         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
37065         no fast atomic load is available for the particular size of access.
37066         (expand_atomic_compare_and_swap): Likewise.
37067         (expand_atomic_load): Likewise.
37068         (expand_atomic_store): Likewise.
37069         (expand_atomic_fetch_op): Likewise.
37070         * testsuite/lib/target-supports.exp
37071         (check_effective_target_sync_int_128): Remove x86 because it provides
37072         no fast atomic load.
37073         (check_effective_target_sync_int_128_runtime): Likewise.
37075 2017-02-01  Richard Biener  <rguenther@suse.de>
37077         * graphite.c: Include tree-vectorizer.h for find_loop_location.
37078         (graphite_transform_loops): Provide opt-info for optimized nests.
37079         * tree-parloop.c (parallelize_loops): Provide opt-info for
37080         parallelized loops.
37082 2017-02-01  Richard Biener  <rguenther@suse.de>
37084         PR middle-end/79315
37085         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
37086         was not set before.
37088 2017-02-01  Richard Biener  <rguenther@suse.de>
37090         PR tree-optimization/71824
37091         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
37092         Verify the loops are valid in the merged SESE region.
37093         (scop_detection::can_represent_loop_1): Check analyzing the
37094         evolution of the number of iterations in the region succeeds.
37096 2017-01-31  Ian Lance Taylor  <iant@golang.org>
37098         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
37099         REG_ARGS_SIZE note to 32-bit push insns and call insn.
37101 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
37103         PR preprocessor/79210
37104         * input.c (get_substring_ranges_for_loc): Replace line_width
37105         assertion with error-handling.
37107 2017-01-31  Richard Biener  <rguenther@suse.de>
37109         PR tree-optimization/77318
37110         * graphite-sese-to-poly.c (extract_affine): Fix assert.
37111         (create_pw_aff_from_tree): Take loop parameter.
37112         (add_condition_to_pbb): Pass loop of the condition to
37113         create_pw_aff_from_tree.
37115 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
37117         * config/s390/s390.c (s390_asan_shadow_offset): New function.
37118         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
37120 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
37122         PR target/78597
37123         PR target/79038
37124         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
37125         no longer used.
37126         (convert_int_to_float128): Likewise.
37127         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
37128         (convert_int_to_float128): Likewise.
37129         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
37130         (UNSPEC_IEEE128_CONVERT): Likewise.
37131         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
37132         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
37133         Use local variables for IBM extended format.
37134         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
37135         (fix_trunc<mode>si2_fprs): Likewise.
37136         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
37137         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
37138         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
37139         to know that we can now have integers of all sizes in vector
37140         registers.
37141         (fix<uns>_<mode>di2_hw): Likewise.
37142         (float<uns>_<mode>si2_hw): Likewise.
37143         (fix_<mode>si2_hw): Likewise.
37144         (fixuns_<mode>si2_hw): Likewise.
37145         (float<uns>_<mode>di2_hw): Likewise.
37146         (float_<mode>di2_hw): Likewise.
37147         (float_<mode>si2_hw): Likewise.
37148         (floatuns_<mode>di2_hw): Likewise.
37149         (floatuns_<mode>si2_hw): Likewise.
37150         (xscvqp<su>wz_<mode>): Delete, no longer used.
37151         (xscvqp<su>dz_<mode>): Likewise.
37152         (xscv<su>dqp_<mode>): Likewise.
37153         (ieee128_mfvsrd_64bit): Likewise.
37154         (ieee128_mfvsrd_32bit): Likewise.
37155         (ieee128_mfvsrwz): Likewise.
37156         (ieee128_mtvsrw): Likewise.
37157         (ieee128_mtvsrd_64bit): Likewise.
37158         (ieee128_mtvsrd_32bit): Likewise.
37160 2017-01-31  Martin Liska  <mliska@suse.cz>
37162         PR ipa/79285
37163         * ipa-prop.c (ipa_free_all_node_params): Call release method
37164         instead of ~sumbol_summary to not to trigger double times
37165         dtor of hash_map.
37167 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
37169         PR tree-optimization/71691
37170         * bitmap.h (class auto_bitmap): New.
37171         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
37172         is_maybe_undefined instead of ssa_undefined_value_p.
37174 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37176         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
37177         __S390_ARCH_LEVEL__ to __ARCH__.
37179 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
37181         PR tree-optimization/79267
37182         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
37183         if should_remove_lhs_p is true.
37185 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
37187         PR debug/63238
37188         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
37189         (add_alignment_attribute): New.
37190         (base_type_die): Add alignment attribute.
37191         (subrange_type_die): Likewise.
37192         (modified_type_die): Likewise.
37193         (gen_array_type_die): Likewise.
37194         (gen_descr_array_type_die: Likewise.
37195         (gen_enumeration_type_die): Likewise.
37196         (gen_subprogram_die): Likewise.
37197         (gen_variable_die): Likewise.
37198         (gen_field_die): Likewise.
37199         (gen_ptr_to_mbr_type_die): Likewise.
37200         (gen_struct_or_union_type_die): Likewise.
37201         (gen_subroutine_type_die): Likewise.
37202         (gen_typedef_die): Likewise.
37203         (base_type_cmp): Compare alignment attribute.
37205 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37207         PR target/79170
37208         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
37209         (setb_unsigned) New pattern for setb with CCUNS.
37210         * config/rs6000/rs6000.c (expand_block_compare): Use a different
37211         subfc./subfe sequence to avoid overflow problems.  Generate a
37212         shorter sequence with cmpld/setb for power9.
37213         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
37214         for generating subfc. instruction.
37215         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
37216         now uses this instruction.
37218 2017-01-30  Ian Lance Taylor  <iant@google.com>
37220         PR debug/79289
37221         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
37222         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
37224 2017-01-30  Martin Sebor  <msebor@redhat.com>
37226         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
37227         Move constant to the right of a relational operator.
37228         (get_mpfr_format_length, format_character, format_string): Ditto.
37229         (should_warn_p, maybe_warn): Same.
37231         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
37233 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
37235         PR lto/79061
37236         * asan.c (get_translation_unit_decl): Remove function.
37237         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
37239 2017-01-30  Martin Liska  <mliska@suse.cz>
37241         PR gcov-profile/79259
37242         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
37243         -fprofile-generate.
37245 2017-01-30  Martin Liska  <mliska@suse.cz>
37247         PR bootstrap/78985
37248         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
37249         Initialize variables with NULL value.
37251 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
37253         PR target/79260
37254         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
37255         tm_p_file.
37256         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
37258 2017-01-30  Richard Biener  <rguenther@suse.de>
37260         PR tree-optimization/79276
37261         * tree-vrp.c (process_assert_insertions): Properly adjust common
37262         when removing a duplicate.
37264 2017-01-30  Richard Biener  <rguenther@suse.de>
37266         PR tree-optimization/79256
37267         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
37268         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
37269         alignment on TYPE.
37270         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
37272 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37274         PR target/79240
37275         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
37276         ("*r<noxa>sbg_<mode>_sll_bitmask")
37277         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
37278         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
37279         Use contiguous_bitmask_nowrap_operand.
37281 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37283         PR target/79268
37284         * config/rs6000/altivec.h (vec_xl): Revise #define.
37285         (vec_xst): Likewise.
37287 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
37289         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
37291 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
37293         PR rtl-optimization/79194
37294         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
37295         traps before call to bypass_conditional_jumps.
37297 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
37299         PR tree-optimization/71374
37300         * lra-constraints.c (check_conflict_input_operands): New.
37301         (match_reload): Use it.
37303 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
37305         PR target/79131
37306         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
37307         account to calculate conflict_set.
37309 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
37311         PR rtl-optimization/78559
37312         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
37313         other_insn in combine.
37315 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
37317         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
37318         uint16_type_node for BT_UINT16.
37320 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
37322         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
37323         "RTL Tests" to menu.
37324         (GIMPLE Tests): New node.
37325         (RTL Tests): New node.
37327 2017-01-27  Richard Biener  <rguenther@suse.de>
37329         PR tree-optimization/79245
37330         * tree-loop-distribution.c (distribute_loop): Apply cost
37331         modeling also to detected patterns.
37333 2017-01-27  Richard Biener  <rguenther@suse.de>
37335         PR tree-optimization/71433
37336         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
37337         (compare_assert_loc): New function.
37338         (process_assert_insertions): Sort and optimize assert locations
37339         to remove duplicates and push down identical assertions on
37340         edges to their destination block.
37342 2017-01-27  Richard Biener  <rguenther@suse.de>
37344         PR tree-optimization/79244
37345         * tree-vrp.c (remove_range_assertions): Forcefully propagate
37346         out SSA names even if abnormal.
37348 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
37350         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
37351         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
37352         instead of MPFR_RNDN.
37354 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
37356         PR target/79239
37357         * arm.c (arm_option_override): Don't call build_target_option_node
37358         until after doing all option overrides.
37359         (arm_valid_target_attribute_tree): Likewise.
37361 2017-01-27  Martin Liska  <mliska@suse.cz>
37363         * doc/invoke.texi (-fprofile-arcs): Document profiling support
37364         for {cd}tors and C++ {cd}tors.
37366 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37368         * config/s390/s390.md ("*setmem_long_and")
37369         ("*setmem_long_and_31z"): Use zero_extend instead of and.
37371 2017-01-26  Martin Sebor  <msebor@redhat.com>
37373         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
37374         of precision.
37376 2017-01-26  Martin Sebor  <msebor@redhat.com>
37378         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
37379         HAVE_DFmode before using XFmode or DFmode.
37380         (parse_directive): Avoid using the z length modifier to avoid
37381         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
37383         PR middle-end/78703
37384         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
37385         to accept adjustment as an array.
37386         (get_int_range): New function.
37387         (struct directive): Make width and prec arrays.
37388         (directive::set_width, directive::set_precision): Call get_int_range.
37389         (format_integer, format_floating): Handle width and precision ranges.
37390         (format_string, parse_directive): Same.
37392 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37394         PR debug/79129
37395         * dwarf2out.c (generate_skeleton_bottom_up): For children with
37396         comdat_type_p set, just clone them, but keep the children in the
37397         original DIE.
37399         PR debug/78835
37400         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
37401         which have direct callers with -fvar-tracking-assignments enabled
37402         in the current TU.
37403         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
37404         inside of type units.
37406 2017-01-26  Martin Sebor  <msebor@redhat.com>
37408         PR middle-end/78703
37409         * gimple-ssa-sprintf.c (struct result_range): Add likely and
37410         unlikely counters.
37411         (struct format_result): Replace number_chars, number_chars_min,
37412         and number_chars_max with a single member of struct result_range.
37413         Remove bounded.
37414         (format_result::operator+=): Adjust.
37415         (struct fmtresult): Remove bounded.  Handle likely and unlikely
37416         counters.
37417         (fmtresult::adjust_for_width_or_precision): New function.
37418         (fmtresult:type_max_digits): New function.
37419         (bytes_remaining): Handle likely and unlikely counters.
37420         (min_bytes_remaining): Remove.
37421         (format_percent): Simplify.
37422         (format_integer, format_floating): Set likely and unlikely counters.
37423         (get_string_length, format_character, format_string): Same.
37424         (format_plain, should_warn_p): New function.
37425         (maybe_warn): Call should_warn_p.  Update diagnostic messages
37426         and handle those for all directives, including plain strings.
37427         (format_directive): Handle likely and unlikely counters.
37428         Remove unnecessary quoting from diagnostics.  Add an informational
37429         note.
37430         (add_bytes): Remove.
37431         (pass_sprintf_length::compute_format_length): Simplify.
37432         (try_substitute_return_value): Handle likely and unlikely counters.
37434 2017-01-26  Carl Love  <cel@us.ibm.com>
37436         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
37437         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
37439 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
37441         PR target/79131
37442         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
37443         endianess for subregs into account.
37444         * lra-constraints.c (lra_constraints): Do risky transformations
37445         always on the first iteration.
37446         * lra-lives.c (check_pseudos_live_through_calls): Add arg
37447         last_call_used_reg_set.
37448         (process_bb_lives): Define and use last_call_used_reg_set.
37449         * lra.c (lra): Always continue after lra_constraints on the first
37450         iteration.
37452 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
37454         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
37455         constant.
37456         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
37458 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37460         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
37461         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
37462         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
37463         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
37464         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
37465         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
37466         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
37467         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
37468         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
37470 2017-01-26  Marek Polacek  <polacek@redhat.com>
37472         PR c/79199
37473         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
37474         for the third operand.
37476 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37478         PR middle-end/79236
37479         * omp-low.c (struct omp_context): Add simt_stmt field.
37480         (scan_omp_for): Return omp_context *.
37481         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
37482         context to the _simt_ SIMD stmt.
37483         (lower_omp_for): For combined SIMD with sibling _simt_
37484         SIMD, make sure to use the same decls in _looptemp_
37485         clauses as in the sibling.
37487 2017-01-26  David Sherwood  <david.sherwood@arm.com>
37489         PR middle-end/79212
37490         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
37491         all contexts.
37493 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37495         PR target/70465
37496         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
37497         emit fld b; fld a; if possible.
37499         * brig-builtins.def: Update copyright years.
37500         * config/arm/arm_acle_builtins.def: Update copyright years.
37502 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37504         PR target/79179
37505         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
37506         constraint instead of o for the stxsd instruction.
37508 2017-01-25  Carl Love  <cel@us.ibm.com>
37510         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
37511         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
37513 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
37515         * doc/invoke.texi (C++ Dialect Options): Fix typo.
37517 2017-01-25  Richard Biener  <rguenther@suse.de>
37519         PR tree-optimization/69264
37520         * target.def (vector_alignment_reachable): Improve documentation.
37521         * doc/tm.texi: Regenerate.
37522         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
37523         and add a comment.
37524         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
37525         earlier changes with respect to TYPE_USER_ALIGN.
37526         (vector_alignment_reachable_p): Likewise.  Improve dumping.
37528 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37530         PR target/79145
37531         * config/arm/arm.md (xordi3): Force constant operand into a register
37532         for TARGET_IWMMXT.
37534 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37536         * doc/invoke.texi (-fstore-merging): Correct default optimization
37537         levels at which it is enabled.
37538         (-O): Move -fstore-merging from list to...
37539         (-O2): ... Here.
37541 2017-01-25  Richard Biener  <rguenther@suse.de>
37543         PR debug/78363
37544         * omp-expand.c: Include debug.h.
37545         (expand_omp_taskreg): Make sure to generate early debug before
37546         outlining anything from a function.
37547         (expand_omp_target): Likewise.
37548         (grid_expand_target_grid_body): Likewise.
37550 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
37552         PR lto/79061
37553         * asan.c (get_translation_unit_decl): New function.
37554         (asan_add_global): Extract modules file name from globals
37555         TRANSLATION_UNIT_DECL name.
37557 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
37559         PR target/77439
37560         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
37561         for long calls with APCS frame and VFP.
37563 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
37565         * cfg.c (original_copy_tables_initialized_p): New function.
37566         * cfg.h (original_copy_tables_initialized_p): New decl.
37567         * cfgrtl.c (relink_block_chain): Guard the call to
37568         free_original_copy_tables with a call to
37569         original_copy_tables_initialized_p.
37570         * cgraph.h (symtab_node::native_rtl_p): New decl.
37571         * cgraphunit.c (symtab_node::native_rtl_p): New function.
37572         (symtab_node::needed_p): Don't assert for early assembly output
37573         for __RTL functions.
37574         (cgraph_node::finalize_function): Set "force_output" for __RTL
37575         functions.
37576         (cgraph_node::analyze): Bail out early for __RTL functions.
37577         (analyze_functions): Update assertion to support __RTL functions.
37578         (cgraph_node::expand): Bail out early for __RTL functions.
37579         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
37580         __RTL functions.
37581         * function.h (struct function): Update comment for field
37582         "pass_startwith".
37583         * gimple-expr.c: Include "tree-pass.h".
37584         (gimple_has_body_p): Return false for __RTL functions.
37585         * Makefile.in (OBJS): Add run-rtl-passes.o.
37586         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
37587         accessor.
37588         (gcc::pass_manager::get_clean_slate): New accessor.
37589         * passes.c: Include "insn-addr.h".
37590         (should_skip_pass_p): Add logging.  Update logic for running
37591         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
37592         property-provider override so it is only done for gimple passes.
37593         Don't skip dfinit.
37594         (skip_pass): New function.
37595         (execute_one_pass): Call skip_pass when skipping passes.
37596         * read-md.c (md_reader::read_char): Support filtering
37597         the input to a subset of line numbers.
37598         (md_reader::md_reader): Initialize fields
37599         m_first_line and m_last_line.
37600         (md_reader::read_file_fragment): New function.
37601         * read-md.h (md_reader::read_file_fragment): New decl.
37602         (md_reader::m_first_line): New field.
37603         (md_reader::m_last_line): New field.
37604         * read-rtl-function.c (function_reader::create_function): Only
37605         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
37606         curr_properties.  Set DECL_INITIAL to a dummy block.
37607         (read_rtl_function_body_from_file_range): New function.
37608         * read-rtl-function.h (read_rtl_function_body_from_file_range):
37609         New decl.
37610         * run-rtl-passes.c: New file.
37611         * run-rtl-passes.h: New file.
37613 2017-01-24  Jeff Law  <law@redhat.com>
37615         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
37616         buffer size.
37618 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
37620         PR tree-optimization/79159
37621         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
37622         (record_nonwrapping_iv): Improve boundary using above function if no
37623         value range information.
37625 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
37626             Martin Jambor  <mjambor@suse.cz>
37628         * brig-builtins.def: New file.
37629         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
37630         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
37631         (DEF_HSAIL_SAT_BUILTIN): Likewise.
37632         (DEF_HSAIL_INTR_BUILTIN): Likewise.
37633         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
37634         * builtin-types.def (BT_INT8): New.
37635         (BT_INT16): Likewise.
37636         (BT_UINT8): Likewise.
37637         (BT_UINT16): Likewise.
37638         (BT_FN_ULONG): Likewise.
37639         (BT_FN_UINT_INT): Likewise.
37640         (BT_FN_UINT_ULONG): Likewise.
37641         (BT_FN_UINT_LONG): Likewise.
37642         (BT_FN_UINT_PTR): Likewise.
37643         (BT_FN_ULONG_PTR): Likewise.
37644         (BT_FN_INT8_FLOAT): Likewise.
37645         (BT_FN_INT16_FLOAT): Likewise.
37646         (BT_FN_UINT32_FLOAT): Likewise.
37647         (BT_FN_UINT16_FLOAT): Likewise.
37648         (BT_FN_UINT8_FLOAT): Likewise.
37649         (BT_FN_UINT64_FLOAT): Likewise.
37650         (BT_FN_UINT16_UINT32): Likewise.
37651         (BT_FN_UINT32_UINT16): Likewise.
37652         (BT_FN_UINT16_UINT16_UINT16): Likewise.
37653         (BT_FN_INT_PTR_INT): Likewise.
37654         (BT_FN_UINT_PTR_UINT): Likewise.
37655         (BT_FN_LONG_PTR_LONG): Likewise.
37656         (BT_FN_ULONG_PTR_ULONG): Likewise.
37657         (BT_FN_VOID_UINT64_UINT64): Likewise.
37658         (BT_FN_UINT8_UINT8_UINT8): Likewise.
37659         (BT_FN_INT8_INT8_INT8): Likewise.
37660         (BT_FN_INT16_INT16_INT16): Likewise.
37661         (BT_FN_INT_INT_INT): Likewise.
37662         (BT_FN_UINT_FLOAT_UINT): Likewise.
37663         (BT_FN_FLOAT_UINT_UINT): Likewise.
37664         (BT_FN_ULONG_UINT_UINT): Likewise.
37665         (BT_FN_ULONG_UINT_PTR): Likewise.
37666         (BT_FN_ULONG_ULONG_ULONG): Likewise.
37667         (BT_FN_UINT_UINT_UINT): Likewise.
37668         (BT_FN_VOID_UINT_PTR): Likewise.
37669         (BT_FN_UINT_UINT_PTR: Likewise.
37670         (BT_FN_UINT32_UINT64_PTR): Likewise.
37671         (BT_FN_INT_INT_UINT_UINT): Likewise.
37672         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
37673         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
37674         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
37675         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
37676         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
37677         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
37678         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
37679         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
37680         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
37681         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
37682         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
37683         * doc/frontends.texi: List BRIG FE.
37684         * doc/install.texi (Testing): Add BRIG tesring requirements.
37685         * doc/invoke.texi (Overall Options): Mention BRIG.
37686         * doc/standards.texi (Standards): Doucment BRIG HSA version.
37688 2017-01-24  Richard Biener  <rguenther@suse.de>
37690         PR translation/79208
37691         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
37693 2017-01-24  Martin Jambor  <mjambor@suse.cz>
37695         PR bootstrap/79198
37696         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
37697         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
37698         and known_contexts.
37700 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
37702         PR middle-end/79123
37703         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
37704         casts from signed to unsigned really don't have a range.
37706 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
37708         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
37709         GMP_RNDx for compatiblity.
37711 2017-01-24  Martin Liska  <mliska@suse.cz>
37713         PR bootstrap/79132
37714         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
37715         that would prevent us to call alloca with -1 as argument.
37717 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
37719         * dwarf2out.c (output_compilation_unit_header, output_file_names):
37720         Avoid -Wformat-security warning.
37722 2017-01-23  Andrew Pinski  <apinski@cavium.com>
37724         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
37725         cost table.
37727 2017-01-23  Martin Sebor  <msebor@redhat.com>
37729         PR middle-end/78703
37730         * gimple-ssa-sprintf.c (warn_level): New global.
37731         (format_integer): Use it here and throughout the rest of the file.
37732         Use the same switch to compute sign as base.
37733         (maybe_warn): New function.
37734         (format_directive): Factor out warnings into maybe_warn.
37735         Add debugging output.  Use warn_level.
37736         (add_bytes): Use warn_level.
37737         (pass_sprintf_length::compute_format_length): Add debugging output.
37738         (try_substitute_return_value): Same.
37739         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
37741         PR middle-end/78703
37742         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
37743         (struct fmtresult, format_integer, format_floating): Adjust.
37744         (fmtresult::fmtresult): Set max correctly in two argument ctor.
37745         (get_string_length, format_string,format_directive): Same.
37746         (pass_sprintf_length::compute_format_length): Same.
37747         (try_substitute_return_value): Simplify slightly.
37749         PR middle-end/78703
37750         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
37751         (fmtresult::operator+=): Outlined.
37752         (struct fmtresult): Add ctors.
37753         (struct conversion_spec): Rename...
37754         (struct directive): ...to this.  Add and remove data members.
37755         (directive::set_width, directive::set_precision): New functions.
37756         (format_percent): Use fmtresult ctor.
37757         (get_width_and_precision): Remove.
37758         (format_integer): Make naming changes.  Avoid computing width and
37759         precision.
37760         (format_floating): Same.  Adjust indentation.
37761         (format_character, format_none): New functions.
37762         (format_string): Moved character handling to format_character.
37763         (format_directive): Remove arguments, change return type.
37764         (parse_directive): New function.
37765         (pass_sprintf_length::compute_format_length): Move directive
37766         parsing to parse_directive.
37768 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
37770         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
37771         (assign_assembler_name_if_needed): ... this.
37772         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
37773         (assign_assembler_name_if_needed): ... this.
37774         (free_lang_data_in_cgraph): Adjust callers.
37775         * cgraphunit.c (cgraph_node::analyze): Likewise.
37776         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
37777         Likewise.
37779 2017-01-23  Richard Biener  <rguenther@suse.de>
37781         PR tree-optimization/79088
37782         PR tree-optimization/79188
37783         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
37784         resetting loop bounds after last path deletion.  Reset loop
37785         bounds of the target loop, make code match the comments.
37786         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
37787         Make sure loops need no fixups.
37789 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
37791         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
37792         exponent support with double type for first argument.
37793         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
37794         type returned by __builtin_vec_extract_sig,
37795         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
37796         functions from "vector int" to "vector unsigned int" or from
37797         "vector long long int" to "vector unsigned long long int".
37798         Changed type returned by __builtin_vec_extract_exp,
37799         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
37800         functions from "vector int" to "vector unsigned int" or from
37801         "vector long long int" to "vector unsigned long long int".
37802         Changed return type of __builtin_vec_test_data_class,
37803         __builtin_vec_test_data_class_sp, and
37804         __builtin_vec_test_data_class_dp from "vector int" to
37805         "vector bool int" or from "vector long long int" to "vector bool
37806         long long int" and changed second argument type from "unsigned
37807         int" to "int".  Added new overloaded function forms "vector float
37808         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
37809         "vector float __builtin_vec_insert_exp_sp (vector float, vector
37810         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
37811         double, vector unsigned long long int)" and "vector double
37812         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
37813         long int)".  Changed return type of
37814         __builtin_scalar_test_data_class and
37815         __builtin_scalar_test_data_class_sp and
37816         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
37817         int" and changed second argument from "unsigned int" to "int".
37818         Changed type returned by __builtin_scalar_test_neg,
37819         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
37820         from "int" to "bool int".  Added new overloaded function form
37821         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
37822         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
37823         exponent double-precision with floating point first argument.
37824         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
37825         documentation of scalar_test_data_class, scalar_test_neg,
37826         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
37827         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
37828         vec_test_data_class built-in functions to reflect refinements in
37829         their type signatures.
37831 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
37833         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
37834         size of buf.
37835         (aarch64_elf_asm_destructor): Likewise.
37837 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
37839         PR rtl-optimization/78634
37840         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
37841         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
37842         * ifcvt.c (noce_try_cmove): Add missing cost check.
37844         PR rtl-optimization/71724
37845         * combine.c (if_then_else_cond): Look for situations where it is
37846         beneficial to undo the work of one of the recursive calls.
37848 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
37850         PR tree-optimization/70754
37851         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
37852         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
37853         combined stmt before it if not NULL.
37854         (combine_chains): Process refs reversely and compute dominance point
37855         for root ref.
37857 2017-01-23  Martin Liska  <mliska@suse.cz>
37859         PR tree-optimization/79196
37860         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
37861         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
37862         instead of memcmp.
37863         (strlen_optimize_stmt): Call the renamed function.
37865 2017-01-23  Michael Matz  <matz@suse.de>
37867         PR tree-optimization/78384
37868         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
37870 2017-01-23  Richard Biener  <rguenther@suse.de>
37872         PR tree-optimization/79186
37873         * tree-vrp.c (register_new_assert_for): Make sure we've seen
37874         both incoming edges before moving an assert.
37876 2017-01-23  Martin Jambor  <mjambor@suse.cz>
37878         * ipa-prop.c (load_from_param_1): Removed.
37879         (load_from_unmodified_param): Bits from load_from_param_1 put back
37880         here.
37881         (load_from_param): Removed.
37882         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
37883         with stmt.  Reverted back to use of load_from_unmodified_param.
37885 2017-01-23  Martin Jambor  <mjambor@suse.cz>
37887         PR ipa/79108
37888         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
37889         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
37890         field a pointer to garbage collected vector, mark lattices and
37891         ipcp_orig_node with GTY((skip)).
37892         (ipa_get_param_count): Adjust to descriptors being a pointer.
37893         (ipa_get_param): Likewise.
37894         (ipa_get_type): Likewise.
37895         (ipa_get_param_move_cost): Likewise.
37896         (ipa_set_param_used): Likewise.
37897         (ipa_get_controlled_uses): Likewise.
37898         (ipa_set_controlled_uses): Likewise.
37899         (ipa_is_param_used): Likewise.
37900         (ipa_node_params_t): Move into garbage collector.  New methods insert
37901         and remove.
37902         (ipa_node_params_sum): Annotate wth GTY(()).
37903         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
37904         garbage collected.
37905         (ipa_load_from_parm_agg): Adjust declaration.
37906         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
37907         * ipa-profile.c (ipa_profile): Likewise.
37908         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
37909         (ipa_populate_param_decls): Make descriptors parameter garbage
37910         collected.
37911         (ipa_dump_param): Adjust to descriptors being a pointer.
37912         (ipa_alloc_node_params): Likewise.
37913         (ipa_initialize_node_params): Likewise.
37914         (load_from_param_1): Make descriptors parameter garbage collected.
37915         (load_from_unmodified_param): Likewise.
37916         (load_from_param): Likewise.
37917         (ipa_load_from_parm_agg): Likewise.
37918         (ipa_node_params::~ipa_node_params): Removed.
37919         (ipa_free_all_node_params): Remove call to delete operator.
37920         (ipa_node_params_t::insert): New.
37921         (ipa_node_params_t::remove): Likewise.
37922         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
37923         copy known_csts and known_contexts vectors.
37924         (ipa_read_node_info): Adjust to descriptors being a pointer.
37925         (ipcp_modif_dom_walker): Make m_descriptors field garbage
37926         collected.
37927         (ipcp_transform_function): Make descriptors variable garbage
37928         collected.
37930 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
37932         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
37933         * config/i386/avx512dqintrin.h: Ditto.
37934         * config/i386/avx512fintrin.h: Ditto.
37935         * config/i386/i386.c: Handle new builtins.
37936         * config/i386/i386-builtin.def: Add new builtins.
37937         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
37938         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
37940 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
37941             Martin Liska  <mliska@suse.cz>
37943         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
37944         * asan.c (asan_expand_poison_ifn): Support stores and use
37945         appropriate ASAN report function.
37946         * internal-fn.c (expand_ASAN_POISON_USE): New function.
37947         * internal-fn.def (ASAN_POISON_USE): Declare.
37948         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
37949         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
37950         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
37951         ASAN_POISON calls w/o LHS.
37952         * tree-ssa.c (execute_update_addresses_taken): Create clobber
37953         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
37954         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
37955         * gimplify.c (asan_poison_variables): Add attribute
37956         use_after_scope_memory to variables that really needs to live
37957         in memory.
37958         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
37959         having the attribute.
37961 2017-01-23  Martin Liska  <mliska@suse.cz>
37963         * asan.c (create_asan_shadow_var): New function.
37964         (asan_expand_poison_ifn): Likewise.
37965         * asan.h (asan_expand_poison_ifn): New declaration.
37966         * internal-fn.c (expand_ASAN_POISON): Likewise.
37967         * internal-fn.def (ASAN_POISON): New builtin.
37968         * sanopt.c (pass_sanopt::execute): Expand
37969         asan_expand_poison_ifn.
37970         * tree-inline.c (copy_decl_for_dup_finish): Make function
37971         external.
37972         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
37973         * tree-ssa.c (is_asan_mark_p): New function.
37974         (execute_update_addresses_taken): Rewrite local variables
37975         (identified just by use-after-scope as addressable) into SSA.
37977 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
37979         * doc/install.texi (Specific): opensource.apple.com uses https
37980         now. Remove trailing slash.
37982 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
37984         * README.Portability: Remove note on an Irix compatibility issue.
37986 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
37988         * gcov.c (INCLUDE_ALGORITHM): Define.
37989         (INCLUDE_VECTOR): Define.
37990         No longer include <vector> and <algorithm> directly.
37992 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
37994         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
37995         to https.
37996         * doc/invoke.texi (Code Gen Options): Ditto.
37998 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
38000         PR lto/78407
38001         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
38003 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
38005         rtl-optimization/79125
38006         * cprop.c (local_cprop_pass): Handle cases where we make an
38007         unconditional trap.
38009 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
38011         PR target/61729
38012         PR target/77850
38013         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
38014         read from, for big endian.
38016 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
38018         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
38019         register pauth builtins for LP64 only.
38021 2017-01-20  Marek Polacek  <polacek@redhat.com>
38023         PR c/79152
38024         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
38025         non-case labels.
38027 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
38029         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
38030         of safelen status.
38031         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
38032         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
38033         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
38035 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38037         PR target/71270
38038         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
38039         in big-endian mode when they are not a single duplicated value.
38041 2017-01-20  Richard Biener  <rguenther@suse.de>
38043         * BASE-VER: Bump to 7.0.1.
38045 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
38047         * omp-low.c (omplow_simd_context): New struct.  Use it...
38048         (lower_rec_simd_input_clauses): ...here and...
38049         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
38050         references to idx, lane, max_vf, is_simt.
38052 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
38054         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
38055         mcpu=nps400.
38057 2017-01-20  Martin Jambor  <mjambor@suse.cz>
38059         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
38060         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
38061         gt-hsa-common.h.
38062         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
38063         (GTFILES): Rename hsa.c to hsa-common.c.
38064         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
38065         * hsa-dump.c: Likewise.
38066         * hsa-gen.c: Likewise.
38067         * hsa-regalloc.c: Likewise.
38068         * ipa-hsa.c: Likewise.
38069         * omp-expand.c: Likewise.
38070         * omp-low.c: Likewise.
38071         * toplev.c: Likewise.
38073 2017-01-20  Marek Polacek  <polacek@redhat.com>
38075         PR c/64279
38076         * doc/invoke.texi: Document -Wduplicated-branches.
38077         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
38078         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
38079         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
38080         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
38081         return 0 only when not OEP_LEXICOGRAPHIC.
38082         (fold_build_cleanup_point_expr): Use the expression
38083         location when building CLEANUP_POINT_EXPR.
38084         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
38085         * tree.c (add_expr): Handle error_mark_node.
38087 2017-01-20  Martin Liska  <mliska@suse.cz>
38089         PR lto/69188
38090         * tree-profile.c (init_ic_make_global_vars): Do not call
38091         finalize_decl.
38092         (gimple_init_gcov_profiler): Likewise.
38094 2017-01-20  Martin Liska  <mliska@suse.cz>
38096         PR ipa/71190
38097         * cgraph.h (maybe_create_reference): Remove argument and
38098         update comment.
38099         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
38100         argument.
38101         * ipa-cp.c (create_specialized_node): Likewise.
38102         * symtab.c (symtab_node::maybe_create_reference): Handle
38103         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
38105 2017-01-20  Martin Liska  <mliska@suse.cz>
38107         * read-rtl-function.c (function_reader::create_function): Use
38108         build_decl instread of build_decl_stat.
38110 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
38112         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
38113         * config/i386/avx512dqintrin.h: Ditto.
38114         * config/i386/avx512fintrin.h: Ditto.
38115         * config/i386/i386-builtin-types.def: Add new types.
38116         * config/i386/i386.c: Handle new types.
38117         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
38118         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
38119         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
38120         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
38121         (__builtin_ia32_kshiftridi): New.
38122         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
38124 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
38126         PR target/78875
38127         PR target/79140
38128         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
38129         define to rs6000_init_stack_protect_guard.
38130         (rs6000_init_stack_protect_guard): New function.
38132 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38133             Yunqiang Su  <yunqiang.su@imgtec.com>
38135         * config.gcc (supported_defaults): Add madd4.
38136         (with_madd4): Add validation.
38137         (all_defaults): Add madd4.
38138         * config/mips/mips.opt (mmadd4): New option.
38139         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
38140         mmadd4.
38141         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
38142         __mips_no_madd4.
38143         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
38144         (ISA_HAS_FUSED_MADD4): Likewise.
38145         * doc/invoke.texi (-mmadd4): Document the new option.
38146         * doc/install.texi (--with-madd4): Document the new option.
38148 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38150         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
38151         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
38152         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
38153         (aarch64_init_pauth_hint_builtins): New.
38154         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
38155         (aarch64_expand_builtin): Expand new builtins.
38157 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38159         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
38160         * combine-stack-adj.c (no_unhandled_cfa): Handle
38161         REG_CFA_TOGGLE_RA_MANGLE.
38162         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
38163         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
38164         info for return address signing.
38165         (aarch64_expand_epilogue): Likewise.
38167 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38169         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
38170         * config/aarch64/aarch64-protos.h
38171         (aarch64_return_address_signing_enabled): New declaration.
38172         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
38173         New function.
38174         (aarch64_expand_prologue): Sign return address before it's pushed onto
38175         stack.
38176         (aarch64_expand_epilogue): Authenticate return address fetched from
38177         stack.
38178         (aarch64_override_options): Sanity check for ILP32 and ISA level.
38179         (aarch64_attributes): New function attributes for "sign-return-address".
38180         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
38181         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
38182         ("*do_return"): Generate combined instructions according to key index.
38183         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
38184         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
38185         iterators.
38186         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
38187         * config/aarch64/aarch64.opt (msign-return-address=): New.
38188         * doc/extend.texi (AArch64 Function Attributes): Documents
38189         "sign-return-address=".
38190         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
38192 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38194         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
38195         overall option summary.
38197 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38199         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
38200         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
38201         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
38202         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
38204 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
38206         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
38207         -mpower9-minmax by default for -mcpu=power9.
38208         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
38209         128-bit floating point.
38211 2017-01-20  Alan Modra  <amodra@gmail.com>
38213         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
38214         optimizing for size.
38216 2017-01-20  Alan Modra  <amodra@gmail.com>
38218         PR target/79144
38219         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
38220         for strcmp and strncmp from corresponding builtin decl.
38222 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
38224         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
38225         instead of i386/rtems-64.h.
38226         * config/i386/rtems-64.h: Remove.
38228 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
38230         PR target/78478
38231         Revert:
38232         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
38234         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
38236 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
38238         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
38239         Change int to HOST_WIDE_INT.
38240         * config/aarch64/aarch64-protos.h
38241         (aarch64_simd_gen_const_vector_dup): Likewise.
38242         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
38244 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
38246         * langhooks-def.h (lhd_type_for_size): New decl.
38247         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
38248         * langhooks.c (lhd_type_for_size): New function, taken from
38249         lto_type_for_size.
38251 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
38253         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
38254         define_bypass for CR latency.
38255         (power9-cracked-alu): Update bypass latency and remove power9-branch.
38256         (power9-alu2): Add define_bypass for CR latency.
38257         (power9-cmp): New.
38258         (power9-mul): Update insn latency.
38259         (power9-mul-compare): Update insn latency, bypass latency and remove
38260         power9-branch.
38262 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38264         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
38265         Delete.
38266         * config/aarch64/aarch64.md
38267         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
38268         aarch64_nopcrelative_literal_loads.
38269         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
38271 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
38273         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
38274         TARGET_LOONGSON_3A.
38275         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
38277 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
38279         PR target/78176
38280         * config.gcc (supported_defaults): Add lxc1-sxc1.
38281         (with_lxc1_sxc1): Add validation.
38282         (all_defaults): Add lxc1-sxc1.
38283         * config/mips/mips.opt (mlxc1-sxc1): New option.
38284         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
38285         mlxc1-sxc1.
38286         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
38287         __mips_no_lxc1_sxc1.
38288         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
38289         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
38290         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
38292 2017-01-19  Richard Biener  <rguenther@suse.de>
38294         PR tree-optimization/72488
38295         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
38296         sure to restore SSA info.
38297         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
38299 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
38301         PR rtl-optimization/79121
38302         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
38303         of the inner type when shifting an extended value.
38305 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
38307         PR lto/78407
38308         * symtab.c (symtab_node::equal_address_to): Fix comparing of
38309         interposable aliases.
38311 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
38313         PR target/78516
38314         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
38315         Use the evmergelohi instruction.
38316         (mov_si<mode>_e500_subreg4_2_le): Likewise.
38317         (mov_sitf_e500_subreg8_2_be): Likewise.
38318         (mov_sitf_e500_subreg12_2_le): Likewise.
38319         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
38320         (mov_si<mode>_e500_subreg4_2_be): Likewise.
38321         (mov_sitf_e500_subreg8_2_le): Likewise.
38322         (mov_sitf_e500_subreg12_2_be): Likewise.
38324 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38326         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
38327         attribute from vecsimple to vecperm.
38328         (altivec_vbpermq2): Likewise.
38330 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38332         PR target/79040
38333         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
38335 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38336         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
38337         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
38338         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
38339         case where N arg is SIZE_MAX.
38340         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
38341         (cmpstrsi): Add pattern.
38343 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
38345         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
38346         __builtin_vec_revb builtins.
38347         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
38348         built-in functions to support generation of the ISA 3.0 XXBR<x>
38349         vector byte reverse instructions.
38350         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
38351         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
38352         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
38353         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
38354         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
38355         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
38356         (P9V_BUILTIN_VEC_REVB): Likewise.
38357         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
38358         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
38359         (p9_xxbrq_v16qi): Likewise.
38360         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
38361         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
38362         (p9_xxbrh_v8hi): Likewise.
38363         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
38364         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
38365         vec_revb built-in functions.
38367 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
38369         PR rtl-optimization/78952
38370         * config/i386/i386.md (any_extract): New code iterator.
38371         (*insvqi_2): Use any_extract for source operand.
38372         (*insvqi_3): Use any_shiftrt for source operand.
38374 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
38376         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
38377         New function.
38378         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
38380 2017-01-18  Matthias Klose  <doko@ubuntu.com>
38382         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
38384 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38386         * config/rs6000/altivec.h (vec_bperm): Change #define.
38387         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
38388         (altivec_vbpermq2): New define_insn.
38389         (altivec_vbpermd): Likewise.
38390         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
38391         function interface.
38392         (VBPERMD): Likewise.
38393         (VBPERM): New polymorphic function interface.
38394         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
38395         Add entries for P9V_BUILTIN_VEC_VBPERM.
38396         * doc/extend.texi: Add interfaces for vec_bperm.
38398 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38400         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
38401         first letter of error messages.
38402         (s390_resolve_overloaded_builtin): Likewise.
38403         * config/s390/s390.c (s390_expand_builtin): Likewise.
38404         (s390_invalid_arg_for_unprototyped_fn): Likewise.
38405         (s390_valid_target_attribute_inner_p): Likewise.
38406         * config/s390/s390.md ("tabort"): Likewise.
38408 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
38410         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
38411         (ISA_AVOID_DIV_HILO): New macro.
38412         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
38413         (ISA_HAS_DDIV): Likewise.
38415 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38417         * doc/invoke.texi (fabi-version): Correct number of occurrences.
38419 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38421         * doc/invoke.texi (fabi-version): Spelling fix.
38423 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38425         PR c++/70182
38426         * doc/invoke.texi (fabi-version): Mention mangling fix for
38427         operator names.
38429 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38431         PR c++/77489
38432         * doc/invoke.texi (fabi-version): Document discriminator mangling.
38434 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38436         PR target/78875
38437         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
38438         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
38439         the new options.
38440         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
38441         flexible settings.
38442         (stack_protect_test): Ditto.
38443         * config/rs6000/rs6000.opt (mstack-protector-guard=,
38444         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
38445         options.
38446         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
38447         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
38448         -mstack-protector-guard-offset=.
38449         (RS/6000 and PowerPC Options): Ditto.
38451 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
38453         * config/i386/i386.h (MASK_CLASS_P): New define.
38454         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
38455         there are no registers from different register sets also when
38456         mask registers are used.  Update function comment.
38457         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
38458         to (*k/*r) and (*k/*km) alternatives.
38460 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
38462         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
38463         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
38464         (EH_RETURN_HANDLER_RTX): New define.
38465         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
38466         Force frame pointer in EH return functions.
38467         (aarch64_expand_epilogue): Add barrier for eh_return.
38468         (aarch64_final_eh_return_addr): Remove.
38469         (aarch64_eh_return_handler_rtx): New function.
38470         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
38471         Remove.
38472         (aarch64_eh_return_handler_rtx): New prototype.
38474 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38476         * config/rs6000/altivec.h (vec_rlmi): New #define.
38477         (vec_vrlnm): Likewise.
38478         (vec_rlnm): Likewise.
38479         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
38480         (UNSPEC_VRLNM): Likewise.
38481         (VIlong): New mode iterator.
38482         (altivec_vrl<VI_char>mi): New define_insn.
38483         (altivec_vrl<VI_char>nm): Likewise.
38484         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
38485         function entry.
38486         (VRLDNM): Likewise.
38487         (RLNM): New polymorphic function entry.
38488         (VRLWMI): New monomorphic function entry.
38489         (VRLDMI): Likewise.
38490         (RLMI): New polymorphic function entry.
38491         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
38492         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
38493         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
38494         vec_vrlnm.
38496 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
38498         PR debug/78839
38499         * dwarf2out.c (field_byte_offset): Restore the
38500         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
38501         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
38502         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
38503         of build2 + fold.
38505 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
38507         PR ada/67205
38508         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
38510 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
38512         PR debug/71669
38513         * dwarf2out.c (add_data_member_location_attribute): For constant
38514         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
38515         instead of DW_AT_data_member_location, DW_AT_bit_offset and
38516         DW_AT_byte_size attributes.
38518 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
38520         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
38521         after forcing to constant memory when the code model is medium.
38523 2017-01-17  Julia Koval  <julia.koval@intel.com>
38525         PR target/76731
38526         * config/i386/avx512fintrin.h
38527         (_mm512_i32gather_ps): Change __addr type to void const*.
38528         (_mm512_mask_i32gather_ps): Ditto.
38529         (_mm512_i32gather_pd): Ditto.
38530         (_mm512_mask_i32gather_pd): Ditto.
38531         (_mm512_i64gather_ps): Ditto.
38532         (_mm512_mask_i64gather_ps): Ditto.
38533         (_mm512_i64gather_pd): Ditto.
38534         (_mm512_mask_i64gather_pd): Ditto.
38535         (_mm512_i32gather_epi32): Ditto.
38536         (_mm512_mask_i32gather_epi32): Ditto.
38537         (_mm512_i32gather_epi64): Ditto.
38538         (_mm512_mask_i32gather_epi64): Ditto.
38539         (_mm512_i64gather_epi32): Ditto.
38540         (_mm512_mask_i64gather_epi32): Ditto.
38541         (_mm512_i64gather_epi64): Ditto.
38542         (_mm512_mask_i64gather_epi64): Ditto.
38543         (_mm512_i32scatter_ps): Change __addr type to void*.
38544         (_mm512_mask_i32scatter_ps): Ditto.
38545         (_mm512_i32scatter_pd): Ditto.
38546         (_mm512_mask_i32scatter_pd): Ditto.
38547         (_mm512_i64scatter_ps): Ditto.
38548         (_mm512_mask_i64scatter_ps): Ditto.
38549         (_mm512_i64scatter_pd): Ditto.
38550         (_mm512_mask_i64scatter_pd): Ditto.
38551         (_mm512_i32scatter_epi32): Ditto.
38552         (_mm512_mask_i32scatter_epi32): Ditto.
38553         (_mm512_i32scatter_epi64): Ditto.
38554         (_mm512_mask_i32scatter_epi64): Ditto.
38555         (_mm512_i64scatter_epi32): Ditto.
38556         (_mm512_mask_i64scatter_epi32): Ditto.
38557         (_mm512_i64scatter_epi64): Ditto.
38558         (_mm512_mask_i64scatter_epi64): Ditto.
38559         * config/i386/avx512pfintrin.h
38560         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
38561         (_mm512_mask_prefetch_i32gather_ps): Ditto.
38562         (_mm512_mask_prefetch_i64gather_pd): Ditto.
38563         (_mm512_mask_prefetch_i64gather_ps): Ditto.
38564         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
38565         (_mm512_prefetch_i32scatter_ps): Ditto.
38566         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
38567         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
38568         (_mm512_prefetch_i64scatter_pd): Ditto.
38569         (_mm512_prefetch_i64scatter_ps): Ditto.
38570         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
38571         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
38572         * config/i386/avx512vlintrin.h
38573         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
38574         (_mm_mmask_i32gather_ps): Ditto.
38575         (_mm256_mmask_i32gather_pd): Ditto.
38576         (_mm_mmask_i32gather_pd): Ditto.
38577         (_mm256_mmask_i64gather_ps): Ditto.
38578         (_mm_mmask_i64gather_ps): Ditto.
38579         (_mm256_mmask_i64gather_pd): Ditto.
38580         (_mm_mmask_i64gather_pd): Ditto.
38581         (_mm256_mmask_i32gather_epi32): Ditto.
38582         (_mm_mmask_i32gather_epi32): Ditto.
38583         (_mm256_mmask_i32gather_epi64): Ditto.
38584         (_mm_mmask_i32gather_epi64): Ditto.
38585         (_mm256_mmask_i64gather_epi32): Ditto.
38586         (_mm_mmask_i64gather_epi32): Ditto.
38587         (_mm256_mmask_i64gather_epi64): Ditto.
38588         (_mm_mmask_i64gather_epi64): Ditto.
38589         (_mm256_i32scatter_ps): Change __addr type to void*.
38590         (_mm256_mask_i32scatter_ps): Ditto.
38591         (_mm_i32scatter_ps): Ditto.
38592         (_mm_mask_i32scatter_ps): Ditto.
38593         (_mm256_i32scatter_pd): Ditto.
38594         (_mm256_mask_i32scatter_pd): Ditto.
38595         (_mm_i32scatter_pd): Ditto.
38596         (_mm_mask_i32scatter_pd): Ditto.
38597         (_mm256_i64scatter_ps): Ditto.
38598         (_mm256_mask_i64scatter_ps): Ditto.
38599         (_mm_i64scatter_ps): Ditto.
38600         (_mm_mask_i64scatter_ps): Ditto.
38601         (_mm256_i64scatter_pd): Ditto.
38602         (_mm256_mask_i64scatter_pd): Ditto.
38603         (_mm_i64scatter_pd): Ditto.
38604         (_mm_mask_i64scatter_pd): Ditto.
38605         (_mm256_i32scatter_epi32): Ditto.
38606         (_mm256_mask_i32scatter_epi32): Ditto.
38607         (_mm_i32scatter_epi32): Ditto.
38608         (_mm_mask_i32scatter_epi32): Ditto.
38609         (_mm256_i32scatter_epi64): Ditto.
38610         (_mm256_mask_i32scatter_epi64): Ditto.
38611         (_mm_i32scatter_epi64): Ditto.
38612         (_mm_mask_i32scatter_epi64): Ditto.
38613         (_mm256_i64scatter_epi32): Ditto.
38614         (_mm256_mask_i64scatter_epi32): Ditto.
38615         (_mm_i64scatter_epi32): Ditto.
38616         (_mm_mask_i64scatter_epi32): Ditto.
38617         (_mm256_i64scatter_epi64): Ditto.
38618         (_mm256_mask_i64scatter_epi64): Ditto.
38619         (_mm_i64scatter_epi64): Ditto.
38620         (_mm_mask_i64scatter_epi64): Ditto.
38621         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
38622         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
38623         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
38624         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
38625         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
38626         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
38627         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
38628         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
38629         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
38630         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
38631         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
38632         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
38633         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
38634         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
38635         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
38636         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
38637         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
38638         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
38639         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
38640         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
38641         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
38642         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
38643         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
38644         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
38645         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
38646         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
38647         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
38648         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
38649         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
38650         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
38651         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
38652         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
38653         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
38654         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
38655         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
38656         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
38657         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
38658         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
38659         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
38660         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
38661         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
38662         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
38663         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
38664         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
38665         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
38666         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
38667         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
38668         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
38669         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
38670         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
38671         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
38672         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
38673         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
38674         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
38675         definitions accordingly.
38677 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
38678             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
38680         PR target/79079
38681         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
38682         gen_lowpart.
38684 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
38686         PR target/79058
38687         * ira-conflicts.c (ira_build_conflicts): Update total conflict
38688         hard regs for inner regno.
38690 2017-01-17  Martin Liska  <mliska@suse.cz>
38692         PR ipa/71207
38693         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
38694         assumption and add comment.
38696 2017-01-17  Nathan Sidwell  <nathan@acm.org>
38698         * ipa-visibility.c (localize_node): New function, broken out of ...
38699         (function_and_variable_visibility): ... here. Call it.
38701 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
38703         PR middle-end/77445
38704         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
38705         correctly set frequency of oudgoing edge.
38706         (duplicate_thread_path): Fix profile updating.
38708 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
38710         PR other/79046
38711         * configure.ac: Add GCC_BASE_VER.
38712         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
38713         version from BASE-VER file.
38714         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
38715         (gcc.o): Depend on $(BASEVER).
38716         * common.opt (dumpfullversion): New option.
38717         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
38718         * doc/invoke.texi: Document -dumpfullversion.
38719         * doc/install.texi: Document --with-gcc-major-version-only.
38720         * configure: Regenerated.
38722 2017-01-17  Richard Biener  <rguenther@suse.de>
38724         PR tree-optimization/71433
38725         * tree-vrp.c (register_new_assert_for): Merge same asserts
38726         on all incoming edges.
38727         (process_assert_insertions_for): Handle insertions at the
38728         beginning of BBs.
38730 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
38732         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
38733         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
38735 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
38737         PR target/78633
38738         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
38739         RTL sharing.
38741 2017-01-17  Alan Modra  <amodra@gmail.com>
38743         PR target/79066
38744         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
38745         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
38746         symbolic stack limit when pic.
38748 2017-01-16  Martin Sebor  <msebor@redhat.com>
38750         PR tree-optimization/78608
38751         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
38753 2017-01-16  Jeff Law  <law@redhat.com>
38755         Revert:
38756         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
38757         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
38758         for several include directories that may be relative to sysroot.
38759         * config/i386/x-mingw32 (gplus_includedir): Define.
38760         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
38761         (native_system_includedir): Likewise.
38762         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
38763         override if TARGET_SYSTEM_ROOT is defined.
38764         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
38766         PR tree-optimization/79090
38767         PR tree-optimization/33562
38768         PR tree-optimization/61912
38769         PR tree-optimization/77485
38770         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
38771         and computed trims into the dump file.
38773 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
38775         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
38777 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
38779         PR c/79089
38780         * gimplify.c (gimplify_init_constructor): If want_value and
38781         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
38782         fix.
38784         PR target/79080
38785         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
38786         sequence.  Formatting fixes.
38787         (doloop_optimize): Formatting fixes.
38789         PR driver/49726
38790         * gcc.c (debug_level_greater_than_spec_func): New function.
38791         (static_spec_functions): Add debug-level-gt spec function.
38792         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
38793         !g0.
38794         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
38795         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
38796         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
38797         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
38798         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
38799         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
38801 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
38803         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
38804         QImode fixups to general and mask registers only.
38806 2017-01-16  Carl Love  <cel@us.ibm.com>
38808         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
38809         for built-in functions
38810         vector signed char vec_nabs (vector signed char)
38811         vector signed short vec_nabs (vector signed short)
38812         vector signed int vec_nabs (vector signed int)
38813         vector signed long long vec_nabs (vector signed long long)
38814         vector float vec_nabs (vector float)
38815         vector double vec_nabs (vector double)
38816         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
38817         and NABS overload.
38818         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
38819         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
38820         * doc/extend.texi: Update the documentation file for the new built-in
38821         functions.
38823 2017-01-16  Martin Sebor  <msebor@redhat.com>
38825         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
38826         message.
38828 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38830         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
38831         UNSPEC_VSX__XXSPLTD to require special splat handling.
38833 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
38835         PR bootstrap/78616
38836         * system.h: Poison strndup.
38838 2017-01-16  Alan Modra  <amodra@gmail.com>
38840         PR target/79098
38841         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
38842         use a switch.
38844 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
38846         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
38848 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
38850         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
38851         call recog here.  Assert that INSN_CODE (insn) is non-negative.
38853 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
38855         PR target/72749
38856         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
38857         fallthrough.
38858         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
38859         in the currently scheduled RTL fragment.
38861 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
38863         PR rtl-optimization/78751
38864         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
38865         give up.
38867 2017-01-14  Jeff Law  <law@redhat.com>
38869         PR tree-optimization/79090
38870         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
38871         variable length stores.
38872         (compute_trims): Delete dead assignment to *trim_tail.
38873         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
38874         zero length.
38876 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
38878         PR rtl-optimization/78626
38879         PR rtl-optimization/78727
38880         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
38881         of a block, and split such blocks after everything else is finished.
38883 2017-01-14  Alan Modra  <amodra@gmail.com>
38885         PR target/72749
38886         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
38887         target legitimate_combined_insn.
38888         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
38889         (rs6000_legitimate_combined_insn): New function.
38890         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
38891         all uses.
38892         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
38893         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
38894         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
38896 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
38898         * doc/frontends.texi (G++ and GCC): Remove references to Java.
38900 2017-01-13  Jeff Law  <law@redhat.com>
38902         PR tree-optimization/33562
38903         PR tree-optimization/61912
38904         PR tree-optimization/77485
38905         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
38906         a statement.
38907         (delete_dead_assignment): Likewise.
38908         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
38909         statement to delete_dead_call and delete_dead_assignment.
38911 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
38913         PR c/78304
38914         * substring-locations.c (format_warning_va): Strengthen case 1 so
38915         that both endpoints of the substring must be within the format
38916         range for just the substring to be printed.
38918 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
38920         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
38921         * config/i386/i386.c (ix86_target_string): Add missing options
38922         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
38923         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
38924         flags_other and ix86_target_other to flags2_other.  Display unknown
38925         isa2 options.
38926         (ix86_valid_target_attribute_inner_p): Add missing options and
38927         reorder options by implied ISAs, as in ix86_target_string.
38929 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
38931         * hash-table.h (hash_table::too_empty_p): New function.
38932         (hash_table::expand): Use it.
38933         (hash_table::traverse): Likewise.
38934         (hash_table::empty_slot): Use sizeof (value_type) instead of
38935         sizeof (PTR) to convert bytes to elements.  Shrink the table
38936         if the current size is excessive for the current number of
38937         elements.
38939 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
38941         * ira-costs.c (record_reg_classes): Break from the inner loop
38942         early once alt_fail is known to be true.  Update outer loop
38943         handling accordingly.
38945 2017-01-13  Jeff Law  <law@redhat.com>
38947         * tree-ssa-dse.c (decrement_count): New function.
38948         (increment_start_addr, maybe_trim_memstar_call): Likewise.
38949         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
38950         when we know the partially dead statement is a mem* function.
38952         PR tree-optimization/61912
38953         PR tree-optimization/77485
38954         * tree-ssa-dse.c: Include expr.h.
38955         (maybe_trim_constructor_store): New function.
38956         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
38958         PR tree-optimization/33562
38959         PR tree-optimization/61912
38960         PR tree-optimization/77485
38961         * doc/invoke.texi: Document new dse-max-object-size param.
38962         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
38963         * tree-ssa-dse.c: Include params.h.
38964         (dse_store_status): New enum.
38965         (initialize_ao_ref_for_dse): New, partially extracted from
38966         dse_optimize_stmt.
38967         (valid_ao_ref_for_dse, normalize_ref): New.
38968         (setup_live_bytes_from_ref, compute_trims): Likewise.
38969         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
38970         (maybe_trim_partially_dead_store): Likewise.
38971         (maybe_trim_complex_store): Likewise.
38972         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
38973         Track what bytes live from the original store.  Return tri-state
38974         for dead, partially dead or live.
38975         (dse_dom_walker): Add constructor, destructor and new private members.
38976         (delete_dead_call, delete_dead_assignment): New extracted from
38977         dse_optimize_stmt.
38978         (dse_optimize_stmt): Make a member of dse_dom_walker.
38979         Use initialize_ao_ref_for_dse.
38981         PR tree-optimization/33562
38982         PR tree-optimization/61912
38983         PR tree-optimization/77485
38984         * sbitmap.h (bitmap_count_bits): Prototype.
38985         (bitmap_clear_range, bitmap_set_range): Likewise.
38986         * sbitmap.c (bitmap_clear_range): New function.
38987         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
38989 2017-01-13  Martin Liska  <mliska@suse.cz>
38991         PR ipa/79043
38992         * function.c (set_cfun): Add new argument force.
38993         * function.h (set_cfun): Likewise.
38994         * ipa-inline-transform.c (inline_call): Use the function when
38995         strict alising from is dropped for function we inline to.
38997 2017-01-13  Richard Biener  <rguenther@suse.de>
38999         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
39000         for dumping GIMPLE INTEGER_CSTs.
39002 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39004         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
39005         to 201112L since C++17.
39007 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
39009         PR sanitizer/78887
39010         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
39011         if -fsanitize=kernel-address is present.
39013 2017-01-13  Richard Biener  <rguenther@suse.de>
39015         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
39016         as _Literal ( type ) number in case usual suffixes do not
39017         preserve all information.
39019 2017-01-13  Richard Biener  <rguenther@suse.de>
39021         PR tree-optimization/77283
39022         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
39023         and ssa-iterators.h.
39024         (is_feasible_trace): Implement a cost model based on joiner
39025         PHI node uses.
39027 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
39029         PR target/79004
39030         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
39031         char or short to __float128/_Float128 directly.
39033 2017-01-12  Martin Sebor  <msebor@redhat.com>
39035         to -Wformat-overflow.
39036         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
39037         (min_bytes_remaining): Same.
39038         (get_string_length): Same.
39039         (format_string): Same.
39040         (format_directive): Same.
39041         (add_bytes): Same.
39042         (pass_sprintf_length::handle_gimple_call): Same.
39044 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
39046         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
39047         info.nowrite calls with no lhs that can't throw.  Return bool
39048         whether gsi_remove has been called or not.
39049         (pass_sprintf_length::handle_gimple_call): Return bool whether
39050         try_substitute_return_value called gsi_remove.  Formatting fix.
39051         (pass_sprintf_length::execute): Don't use gsi_remove if
39052         handle_gimple_call returned true.
39054         PR bootstrap/79069
39055         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
39056         be removed due to side-effects, don't remove following barrier nor
39057         turn the successor edge into fallthru edge.
39059 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39061         PR target/79044
39062         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
39063         element-reversing loads and stores as not swappable.
39065 2017-01-12  Nathan Sidwell  <nathan@acm.org>
39066             Nicolai Stange  <nicstange@gmail.com>
39068         * combine.c (try_combine): Don't ignore result of overlap checking
39069         loop.  Combine overlap & asm check into single loop.
39071 2017-01-12  Richard Biener  <rguenther@suse.de>
39073         * tree-pretty-print.c (dump_generic_node): Provide -gimple
39074         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
39076 2017-01-12  Richard Biener  <rguenther@suse.de>
39078         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
39079         and TS_TARGET_OPTION directly derive from TS_BASE.
39080         * tree-core.h (tree_optimization_option): Derive from tree_base.
39081         (tree_target_option): Likewise.
39083 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
39085         * config/i386/i386.c (memory_address_length): Increase len
39086         only when rip_relative_addr_p returns false.
39088 2017-01-11  Julia Koval  <julia.koval@intel.com>
39090         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
39091         (OPTION_MASK_ISA_SGX_SET): New.
39092         (ix86_handle_option): Handle OPT_msgx.
39093         * config.gcc: Added sgxintrin.h.
39094         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
39095         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
39096         * config/i386/i386.c (ix86_target_string): Add -msgx.
39097         (PTA_SGX): New.
39098         (ix86_option_override_internal): Handle new options.
39099         (ix86_valid_target_attribute_inner_p): Add sgx.
39100         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
39101         * config/i386/i386.opt: Add msgx.
39102         * config/i386/sgxintrin.h: New file.
39103         * config/i386/x86intrin.h: Add sgxintrin.h.
39105 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
39107         PR c++/71537
39108         * fold-const.c (maybe_nonzero_address): Return 1 for function
39109         local objects.
39110         (tree_single_nonzero_warnv_p): Don't handle function local objects
39111         here.
39113         PR c++/72813
39114         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
39115         of c-header.
39117 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
39119         PR driver/78877
39120         * opts.c: Include "spellcheck.h"
39121         (struct string_fragment): New struct.
39122         (struct edit_distance_traits<const string_fragment &>): New
39123         struct.
39124         (get_closest_sanitizer_option): New function.
39125         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
39127 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
39129         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
39130         by 12.
39131         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
39132         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
39133         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
39134         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
39135         for initial die_offset if dwarf_split_debug_info.
39136         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
39137         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
39138         fields.
39139         (output_skeleton_debug_sections): Formatting fix.  Use
39140         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
39141         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
39143 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
39145         * config/arm/cortex-a53.md: Add bypasses for
39146         cortex_a53_r2f_cvt.
39147         (cortex_a53_r2f): Only use for transfers.
39148         (cortex_a53_f2r): Likewise.
39149         (cortex_a53_r2f_cvt): Add reservation for conversions.
39150         (cortex_a53_f2r_cvt): Likewise.
39152 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
39154         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
39155         to all inlined functions, change static to extern.
39157 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
39159         PR target/78253
39160         * config/arm/arm.c (legitimize_pic_address): Handle reference to
39161         weak symbol.
39162         (arm_assemble_integer): Likewise.
39164 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
39166         * config.gcc: Use new awk script to check CPU, FPU and architecture
39167         parameters for --with-... options.
39168         * config/arm/parsecpu.awk: New file
39169         * config/arm/arm-cpus.in: New file.
39170         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
39171         files.
39172         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
39173         files.
39174         * config/arm/t-arm: Update dependency rules.
39175         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
39176         of processing .def files.
39177         * config/arm/genopt.sh: Deleted.
39178         * config/arm/gentune.sh: Deleted.
39179         * config/arm/arm-cores.def: Deleted.
39180         * config/arm/arm-arches.def: Deleted.
39181         * config/arm/arm-fpus.def: Deleted.
39182         * config/arm/arm-tune.md: Regenerated.
39183         * config/arm/arm-tables.opt: Regenerated.
39184         * config/arm/arm-cpu.h: New generated file.
39185         * config/arm/arm-cpu-data.h: New generated file.
39186         * config/arm/arm-cpu-cdata.h: New generated file.
39188 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
39190         PR lto/79042
39191         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
39192         bit.
39193         (input_varpool_node): Unpack dynamically_initialized bit.
39195 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
39197         PR rtl-optimization/79032
39198         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
39199         the alignment of the adjusted memory reference against that of MODE,
39200         instead of the alignment of the original memory reference.
39202 2017-01-11  Martin Jambor  <mjambor@suse.cz>
39204         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
39205         test.
39206         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
39207         decorated functions.
39209 2017-01-11  Richard Biener  <rguenther@suse.de>
39211         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
39212         set range/nonnull info for PHI results.  Do not set it on
39213         stmts marked for removal.
39215 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
39217         * expr.c (store_field): In the bitfield case, fetch the return value
39218         from the registers before applying a single big-endian adjustment.
39219         Always do a final load for a BLKmode value not larger than a word.
39221 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
39223         PR c++/77949
39224         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
39225         that we correctly handle column numbers greater than
39226         LINE_MAP_MAX_COLUMN_NUMBER.
39228 2017-01-10  Martin Sebor  <msebor@redhat.com>
39230         PR middle-end/78245
39231         * gimple-ssa-sprintf.c (get_destination_size): Call
39232         {init,fini}object_sizes.
39233         * tree-object-size.c (addr_object_size): Adjust.
39234         (pass_through_call): Adjust.
39235         (pass_object_sizes::execute): Adjust.
39236         * tree-object-size.h (fini_object_sizes): Declare.
39238 2017-01-10  Martin Sebor  <msebor@redhat.com>
39240         PR tree-optimization/78775
39241         * builtins.c (get_size_range): Move...
39242         * calls.c: ...to here.
39243         (alloc_max_size): Accept zero argument.
39244         (operand_signed_p): Remove.
39245         (maybe_warn_alloc_args_overflow): Call get_size_range.
39246         * calls.h (get_size_range): Declare.
39248 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
39250         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
39251         from TI's devices.csv file as of September 2016.
39252         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
39254 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
39256         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
39257         * doc/invoke.texi: Likewise.
39258         * doc/md.texi: Likewise.
39259         * doc/objc.texi: Likewise.
39261 2017-01-10  Joshua Conner  <joshconner@google.com>
39263         * config/arm/fuchsia-elf.h: New file.
39264         * config/fuchsia.h: New file.
39265         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
39266         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
39267         targets.
39268         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
39270 2016-01-10  Richard Biener  <rguenther@suse.de>
39272         PR tree-optimization/79034
39273         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
39274         Propagate out degenerate PHIs in the joiner.
39276 2017-01-10  Martin Liska  <mliska@suse.cz>
39278         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
39279         (sort_congruence_classes_by_decl_uid): Likewise.
39280         (sort_congruence_class_groups_by_decl_uid): Likewise.
39281         (sem_item_optimizer::merge_classes): Sort class, groups in these
39282         classes and members in the groups by DECL_UID of declarations.
39283         This would make merge operations stable.
39285 2017-01-10  Martin Liska  <mliska@suse.cz>
39287         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
39288         usage of m_classes_vec.
39289         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
39290         (sem_item_optimizer::get_group_by_hash): Likewise.
39291         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
39292         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
39293         (sem_item_optimizer::verify_classes): Likewise.
39294         (sem_item_optimizer::process_cong_reduction): Likewise.
39295         (sem_item_optimizer::dump_cong_classes): Likewise.
39296         (sem_item_optimizer::merge_classes): Likewise.
39297         * ipa-icf.h (congruence_class_hash): Rename from
39298         congruence_class_group_hash.  Remove declaration of m_classes_vec.
39300 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
39302         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
39303         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
39304         * config.gcc: Add avx512vpopcntdqintrin.h.
39305         * config/i386/avx512vpopcntdqintrin.h: New.
39306         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
39307         * config/i386/i386-builtin-types.def: Add new types.
39308         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
39309         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
39310         __builtin_ia32_vpopcountq_v8di_mask): New.
39311         * config/i386/i386-c.c (ix86_target_macros_internal): Define
39312         __AVX512VPOPCNTDQ__.
39313         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
39314         (PTA_AVX512VPOPCNTDQ): Define.
39315         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
39316         TARGET_AVX512VPOPCNTDQ_P): Define.
39317         * config/i386/i386.opt: Add mavx512vpopcntdq.
39318         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
39319         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
39321 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
39323         PR middle-end/77484
39324         * predict.def (PRED_CALL): Set to 67.
39326 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
39328         * expr.c (store_field): In the bitfield case, if the value comes from
39329         a function call and is of an aggregate type returned in registers, do
39330         not modify the field mode; extract the value in all cases if the mode
39331         is BLKmode and the size is not larger than a word.
39333 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
39335         PR target/71017
39336         * config/i386/cpuid.h: Fix undefined behavior.
39338 2017-01-04  Jeff Law  <law@redhat.com>
39340         PR tree-optimization/79007
39341         PR tree-optimization/67955
39342         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
39343         conservative for pt.null when flag_non_call_exceptions is on.
39345 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
39347         PR translation/79019
39348         PR translation/79020
39349         * params.def (PARAM_INLINE_MIN_SPEEDUP,
39350         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
39351         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
39352         in descriptions.
39353         * config/avr/avr.opt (maccumulate-args): Likewise.
39354         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
39355         * common.opt (freport-bug): Likewise.
39356         * cif-code.def (CIF_FINAL_ERROR): Likewise.
39357         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
39358         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
39359         translatable string.
39360         * config/i386/i386.c (function_value_32): Likewise.
39361         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
39362         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
39363         Likewise.
39364         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
39365         * common/config/msp430/msp430-common.c (msp430_handle_option):
39366         Likewise.
39367         * symtab.c (symtab_node::verify_base): Likewise.
39368         * opts.c (set_debug_level): Likewise.
39369         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
39370         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
39371         missing whitespace to translatable strings.
39372         * config/avr/avr.md (bswapsi2): Fix typo in comment.
39373         * config/sh/superh.h: Likewise.
39374         * config/i386/xopintrin.h: Likewise.
39375         * config/i386/znver1.md: Likewise.
39376         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
39377         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
39378         * double-int.h (struct double_int): Likewise.
39379         * double-int.c (div_and_round_double): Likewise.
39380         * wide-int.cc: Likewise.
39381         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39382         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
39383         * cfgcleanup.c (crossjumps_occured): Renamed to ...
39384         (crossjumps_occurred): ... this.
39385         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
39386         Adjust all uses.
39388         PR tree-optimization/78899
39389         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
39390         returning bool return struct loop *, NULL for failure and the new
39391         loop on success.
39392         (versionable_outer_loop_p): Don't version outer loop if it has
39393         dont_vectorized bit set.
39394         (tree_if_conversion): When versioning outer loop, ensure
39395         tree_if_conversion is performed also on the inner loop of the
39396         non-vectorizable outer loop copy.
39397         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
39398         LOOP_VECTORIZED in inner loop of the scalar outer loop and
39399         prevent vectorization of it.
39400         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
39401         the outer loop vectorization of the non-scalar version is attempted
39402         before vectorization of the inner loop in scalar version.  If
39403         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
39404         vectorization of its inner loop.
39405         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
39406         has 2 inner loops, rename also on edges from bb whose single pred
39407         is outer_loop->header.  Fix typo in function comment.
39409 2017-01-09  Martin Sebor  <msebor@redhat.com>
39411         PR bootstrap/79033
39412         * asan.c (asan_emit_stack_protection): Increase local buffer size
39413         to avoid snprintf truncation warning.
39415 2017-01-09  Andrew Pinski  <apinski@cavium.com>
39417         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
39418         to reference thunderx2t99 for the tuning structure
39419         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
39420         Rename to ...
39421         (thunderx2t99_extra_costs): This.
39422         * config/aarch64/aarch64-tune.md: Regenerate.
39423         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
39424         (vulcan_addrcost_table): This.
39425         (vulcan_regmove_cost): Rename to ...
39426         (thunderx2t99_regmove_cost): This.
39427         (vulcan_vector_cost): Rename to ...
39428         (thunderx2t99_vector_cost): this.
39429         (vulcan_branch_cost): Rename to ...
39430         (thunderx2t99_branch_cost): This.
39431         (vulcan_tunings): Rename to ...
39432         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
39433         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
39435 2017-01-09  Martin Jambor  <mjambor@suse.cz>
39437         PR ipa/78365
39438         PR ipa/78599
39439         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
39440         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
39441         (propagate_vr_accross_jump_function): Use the above function for all
39442         value range computations for pass-through jump functions and type
39443         converasion from explicit value range values.
39444         (ipcp_propagate_stage): Do not attempt to deduce types of formal
39445         parameters from TYPE_ARG_TYPES.
39446         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
39447         (ipa_write_node_info): Stream type of the actual argument.
39448         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
39450 2017-01-09  Martin Liska  <mliska@suse.cz>
39452         PR pch/78970
39453         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
39454         (lookup_compiler): Do not show error message with have_E.
39456 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
39458         PR tree-optimization/78938
39459         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
39460         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
39461         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
39462         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
39463         fixes.
39465 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39467         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
39468         is const0_rtx.
39470 2017-01-09  Richard Biener  <rguenther@suse.de>
39472         PR tree-optimization/78997
39473         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
39474         name condition properly.
39476 2017-01-09  Richard Biener  <rguenther@suse.de>
39478         PR debug/79000
39479         * dwarf2out.c (is_cxx): New overload with context.
39480         (is_naming_typedef_decl): Use it.
39482 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
39484         * invoke.texi (Option Summary): Correct spacing in option lists
39485         and add line breaks to fix over-long lines.
39487 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
39489         PR middle-end/17660
39491         * extend.texi (Common Variable Attributes): Add xref to GCC
39492         Internals manual to explain mode attribute keywords.
39494 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
39496         PR other/16519
39497         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
39498         and Preprocessor Options.
39499         (Options for Linking): Document -pthread here....
39500         (RS/6000 and PowerPC Options): ...not here.
39501         (Solaris 2 Options): ...or here.
39502         * doc/cppopts.texi: Document -pthread.
39504 2017-01-08  Martin Sebor  <msebor@redhat.com>
39506         PR middle-end/77708
39507         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
39508         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
39509         New member functions.
39510         (format_directive): Used them.
39511         (add_bytes): Same.
39512         (pass_sprintf_length::handle_gimple_call): Same.
39513         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
39514         to avoid truncation for any argument.
39515         (extract_affine_mul): Same.
39516         * tree.c (get_file_function_name): Same.
39518 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
39520         PR middle-end/77484
39521         * predict.def (PRED_INDIR_CALL): Set to 86.
39523 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39525         PR preprocessor/54124
39526         * doc/cppopts.texi: Reformat -d subtable to list the full name
39527         of the options.  Add cross-reference to the docs for the general
39528         compiler -d options.
39529         * doc/invoke.texi (Developer Options): Add cross-reference to the
39530         preprocessor-specific -d option documentation.
39532 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39534         PR preprocessor/13498
39535         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
39536         redudant material, and reflect new command-line options.
39537         (System Headers): Likewise.
39539 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39541         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
39542         -isystem, and -idirafter.  Copy-edit.
39543         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
39544         default for -ftrack-macro-expansion.  Delete obsolete and
39545         badly-formatted implementation details about -fdebug-cpp output.
39546         * doc/cppwarnopts.texi: Copy-edit.
39548 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
39550         PR c++/72803
39551         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
39552         that the transition from a max line width >= 1<<10 to narrower
39553         lines works correctly.
39555 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
39557         * doc/options.texi (PerFunction): New.
39558         * opt-functions.awk (switch_flags): Map both Optimization and
39559         PerFunction to CL_OPTIMIZATION.
39560         * opth-gen.awk: Test for PerFunction flag along with
39561         Optimization.
39562         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
39563         it only when the latter is present.  Skip those that don't in
39564         the hash function generator.
39565         * common.opt (fvar-tracking): Mark as PerFunction instead of
39566         Optimization.
39567         (fvar-tracking-assignments): Likewise.
39568         (fvar-tracking-assignments-toggle): Likewise.
39569         (fvar-tracking-uninit): Likewise.
39571 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
39573         PR translation/79018
39574         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
39575         the and store.
39577 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
39579         PR target/57583
39580         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
39581         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
39582         TARGET_LONG_JUMP_TABLE_OFFSETS.
39583         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
39584         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
39585         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
39586         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
39587         * config/m68k/m68k.md (tablejump expander): Likewise.
39588         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
39589         TARGET_LONG_JUMP_TABLE_OFFSETS.
39590         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
39591         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
39593 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
39594             David Holsgrove <david.holsgrove@xilinx.com>
39596         * common/config/microblaze/microblaze-common.c
39597         (TARGET_EXCEPT_UNWIND_INFO): Remove.
39598         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
39599         New prototype.
39600         * config/microblaze/microblaze.c (microblaze_must_save_register)
39601         (microblaze_expand_epilogue, microblaze_return_addr): Handle
39602         calls_eh_return.
39603         (microblaze_eh_return): New function.
39604         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
39605         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
39606         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
39607         * config/microblaze/microblaze.md (eh_return): New pattern.
39609 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
39611         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
39612         GCC_DIAGNOSTIC_STRINGIFY): Define.
39614         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
39616 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39618         * config/arm/arm.md (<mcrr>): New.
39619         (<mrrc>): New.
39620         * config/arm/arm.c (arm_arch5te): New.
39621         (arm_option_override): Set arm_arch5te.
39622         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
39623         and mrrc2.
39624         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
39625         (arm_mcrr_qualifiers): ... this. New.
39626         (MRRC_QUALIFIERS): Define to...
39627         (arm_mrrc_qualifiers): ... this. New.
39628         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
39629         __arm_mrrc2): New.
39630         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
39631         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
39632         (MRRCI, mrrc, MRRC): New.
39633         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
39634         VUNSPEC_MRRC2): New.
39636 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39638         * config/arm/arm.md (<mcr>): New.
39639         (<mrc>): New.
39640         * config/arm/arm.c (arm_coproc_builtin_available): Add
39641         support for mcr, mrc, mcr2 and mrc2.
39642         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
39643         (arm_mcr_qualifiers): ... this. New.
39644         (MRC_QUALIFIERS): Define to ...
39645         (arm_mrc_qualifiers): ... this. New.
39646         (MCR_QUALIFIERS): Define to ...
39647         (arm_mcr_qualifiers): ... this. New.
39648         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
39649         __arm_mrc2): New.
39650         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
39651         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
39652         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
39653         VUNSPEC_MRC2): New.
39655 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39657         * config/arm/arm.md (*ldc): New.
39658         (*stc): New.
39659         (<ldc>): New.
39660         (<stc>): New.
39661         * config/arm/arm.c (arm_coproc_builtin_available): Add
39662         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
39663         (arm_coproc_ldc_stc_legitimate_address): New.
39664         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
39665         'qualifier_const_pointer'.
39666         (LDC_QUALIFIERS): Define to...
39667         (arm_ldc_qualifiers): ... this. New.
39668         (STC_QUALIFIERS): Define to...
39669         (arm_stc_qualifiers): ... this. New.
39670         * config/arm/arm-protos.h
39671         (arm_coproc_ldc_stc_legitimate_address): New.
39672         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
39673         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
39674         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
39675         stc2, stcl, stc2l): New.
39676         * config/arm/constraints.md (Uz): New.
39677         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
39678         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
39679         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
39680         VUNSPEC_STC2L): New.
39682 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39684         * config/arm/arm.md (<cdp>): New.
39685         * config/arm/arm.c (neon_const_bounds): Rename this ...
39686         (arm_const_bounds): ... this.
39687         (arm_coproc_builtin_available): New.
39688         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
39689         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
39690         (CDP_QUALIFIERS): Define to...
39691         (arm_cdp_qualifiers): ... this. New.
39692         (void_UP): Define.
39693         (arm_expand_builtin_args): Add case for 6 arguments.
39694         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
39695         (arm_const_bounds): ... this.
39696         (arm_coproc_builtin_available): New.
39697         * config/arm/arm_acle.h (__arm_cdp): New.
39698         (__arm_cdp2): New.
39699         * config/arm/arm_acle_builtins.def (cdp): New.
39700         (cdp2): New.
39701         * config/arm/iterators.md (CDPI,CDP,cdp): New.
39702         * config/arm/neon.md: Rename all 'neon_const_bounds' to
39703         'arm_const_bounds'.
39704         * config/arm/types.md (coproc): New.
39705         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
39706         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
39707         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
39708         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
39710 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39712         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
39713         (UBINOP_QUALIFIERS): New.
39714         (si_UP): Define.
39715         (acle_builtin_data): New. Change comment.
39716         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
39717         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
39718         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
39719         arm_acle_builtins.def.
39720         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
39721         (arm_init_acle_builtins): New.
39722         (CRC32_BUILTIN): Remove.
39723         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
39724         crc32cb, crc32ch and crc32cw.
39725         (arm_init_crc32_builtins): Remove.
39726         (arm_init_builtins): Use arm_init_acle_builtins rather
39727         than arm_init_crc32_builtins.
39728         (arm_expand_acle_builtin): New.
39729         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
39730         * config/arm/arm_acle_builtins.def: New.
39732 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39734         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
39735         (arm_builtin_datum): ... this.
39736         (arm_init_neon_builtin): Rename to ...
39737         (arm_init_builtin): ... this. Add a new parameters PREFIX
39738         and USE_SIG_IN_NAME.
39739         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
39740         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
39741         'arm_builtin_datum'.
39742         (arm_init_vfp_builtins): Likewise.
39743         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
39744         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
39745         (arm_expand_neon_args): Rename to ...
39746         (arm_expand_builtin_args): ... this. Rename builtin_arg
39747         enum values and differentiate between ARG_BUILTIN_MEMORY
39748         and ARG_BUILTIN_NEON_MEMORY.
39749         (arm_expand_neon_builtin_1): Rename to ...
39750         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
39751         values, arm_expand_builtin_args and add bool parameter NEON.
39752         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
39753         (arm_expand_vfp_builtin): Likewise.
39754         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
39756 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
39758         PR middle-end/77484
39759         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
39760         * predict.c (tree_estimate_probability_bb): Reverse direction of
39761         polymorphic call predictor.
39763 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
39765         * passes.c (execute_one_pass): Split out pass-skipping logic into...
39766         (determine_pass_name_match): ...this new function and...
39767         (should_skip_pass_p): ...this new function.
39769 2017-01-06  Nathan Sidwell  <nathan@acm.org>
39771         * ipa-visibility.c (function_and_variable_visibility): Reformat
39772         comments and long lines.  Remove extrneous if.
39773         * symtab.c (symtab_node::make_decl_local): Fix code format.
39774         (symtab_node::set_section_for_node): Fix comment typo.
39776 2017-01-06  Martin Liska  <mliska@suse.cz>
39778         PR bootstrap/79003
39779         * lra-constraints.c: Rename invariant to lra_invariant.
39780         * predict.c (set_even_probabilities): Initialize e to NULL.
39782 2017-01-05  Martin Sebor  <msebor@redhat.com>
39784         PR tree-optimization/78910
39785         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
39786         (format_integer): Correct off-by-one error in the handling
39787         of precision with negative numbers in signed conversions..
39789 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
39791         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
39793 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
39795         PR tree-optimization/71016
39796         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
39797         factor_out_conditional_conversion.  Formatting fix.
39798         (factor_out_conditional_conversion): Add cond_stmt argument.
39799         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
39800         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
39801         Formatting fix.
39803 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
39805         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
39806         read-rtl-function.o, and selftest-rtl.o.
39807         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
39808         (selftest::aarch64_test_loading_full_dump): New function.
39809         (selftest::aarch64_run_selftests): New function.
39810         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
39811         selftest::aarch64_run_selftests.
39812         * config/i386/i386.c
39813         (selftest::ix86_test_loading_dump_fragment_1): New function.
39814         (selftest::ix86_test_loading_call_insn): New function.
39815         (selftest::ix86_test_loading_full_dump): New function.
39816         (selftest::ix86_test_loading_unspec): New function.
39817         (selftest::ix86_run_selftests): Call the new functions.
39818         * emit-rtl.c (maybe_set_max_label_num): New function.
39819         * emit-rtl.h (maybe_set_max_label_num): New decl.
39820         * function.c (instantiate_decls): Guard call to
39821         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
39822         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
39823         "static".
39824         * gensupport.c (gen_reader::gen_reader): Pass "false"
39825         for new "compact" param of rtx_reader.
39826         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
39827         rather than an empty string for NULL strings.
39828         * read-md.c: Potentially include config.h rather than bconfig.h.
39829         Wrap include of errors.h with #ifdef GENERATOR_FILE.
39830         (have_error): New global, copied from errors.c.
39831         (md_reader::read_name): Rename to...
39832         (md_reader::read_name_1): ...this, adding "out_loc" param,
39833         and converting "missing name or number" to returning false, rather
39834         than failing.
39835         (md_reader::read_name): Reimplement in terms of read_name_1.
39836         (md_reader::read_name_or_nil): New function.
39837         (md_reader::read_string): Handle "(nil)" by returning NULL.
39838         (md_reader::md_reader): Add new param "compact".
39839         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
39840         (md_reader::read_file): New method.
39841         * read-md.h (md_reader::md_reader): Add new param "compact".
39842         (md_reader::read_file): New method.
39843         (md_reader::is_compact): New accessor.
39844         (md_reader::read_name): Convert return type from void to file_location.
39845         (md_reader::read_name_or_nil): New decl.
39846         (md_reader::read_name_1): New decl.
39847         (md_reader::m_compact): New field.
39848         (noop_reader::noop_reader): Pass "false" for new "compact" param
39849         of rtx_reader.
39850         (rtx_reader::rtx_reader): Add new "compact" param.
39851         (rtx_reader::read_rtx_operand): Make virtual and convert return
39852         type from void to rtx.
39853         (rtx_reader::read_until): New decl.
39854         (rtx_reader::handle_any_trailing_information): New virtual function.
39855         (rtx_reader::postprocess): New virtual function.
39856         (rtx_reader::finalize_string): New virtual function.
39857         (rtx_reader::m_in_call_function_usage): New field.
39858         (rtx_reader::m_reuse_rtx_by_id): New field.
39859         * read-rtl-function.c: New file.
39860         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
39861         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
39862         (selftest::verify_three_block_rtl_cfg): New decl.
39863         * read-rtl-function.h: New file.
39864         * read-rtl.c: Potentially include config.h rather than bconfig.h.
39865         For host, include function.h, memmodel.h, and emit-rtl.h.
39866         (one_time_initialization): New function.
39867         (struct compact_insn_name): New struct.
39868         (compact_insn_names): New array.
39869         (find_code): Handle insn codes in compact dumps.
39870         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
39871         (bind_subst_iter_and_attr): Likewise.
39872         (add_condition_to_string): Likewise.
39873         (add_condition_to_rtx): Likewise.
39874         (apply_attribute_uses): Likewise.
39875         (add_current_iterators): Likewise.
39876         (apply_iterators): Likewise.
39877         (initialize_iterators): Guard usage of apply_subst_iterator with
39878         #ifdef GENERATOR_FILE.
39879         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
39880         (md_reader::read_mapping): Likewise.
39881         (add_define_attr_for_define_subst): Likewise.
39882         (add_define_subst_attr): Likewise.
39883         (read_subst_mapping): Likewise.
39884         (check_code_iterator): Likewise.
39885         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
39886         logic to...
39887         (one_time_initialization): New function.
39888         (rtx_reader::read_until): New method.
39889         (read_flags): New function.
39890         (parse_reg_note_name): New function.
39891         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
39892         Handle reuse_rtx ids.
39893         Wrap iterator lookup within #ifdef GENERATOR_FILE.
39894         Add parsing support for RTL dumps, mirroring the special-cases in
39895         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
39896         values, and calling handle_any_trailing_information.
39897         (rtx_reader::read_rtx_operand): Convert return type from void
39898         to rtx, returning return_rtx.  Handle case 'e'.  Call
39899         finalize_string on XSTR and XTMPL fields.
39900         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
39901          "(nil)" values were omitted.  Call the postprocess vfunc on the
39902         return_rtx.
39903         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
39904         class ctor.  Initialize m_in_call_function_usage.  Call
39905         one_time_initialization.
39906         * rtl-tests.c (selftest::test_uncond_jump): Call
39907         set_new_first_and_last_insn.
39908         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
39909         * selftest-rtl.c: New file.
39910         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
39911         (selftest::get_insn_by_uid): New decl.
39912         * selftest-run-tests.c (selftest::run_tests): Call
39913         read_rtl_function_c_tests.
39914         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
39915         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
39916         dumps.
39918 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
39920         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
39921         operands in a special way.  Assert that pos+len <= mode precision.
39923 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
39925         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
39926         3 argument Alias with unlimited for the negative form.
39927         (fno-vect-cost-model): Removed.
39929 2017-01-05  Martin Liska  <mliska@suse.cz>
39931         * hsa-gen.c (gen_hsa_divmod): New function.
39932         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
39934 2017-01-05  Martin Liska  <mliska@suse.cz>
39936         PR pch/78970
39937         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
39938         header.
39940 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39942         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
39943         small constant length operands.
39945 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39947         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
39948         between loop iterations.
39950 2017-01-05  Martin Liska  <mliska@suse.cz>
39952         PR sanitizer/78815
39953         * gimplify.c (gimplify_decl_expr): Compare to
39954         asan_poisoned_variables instread of checking flags.
39955         (gimplify_target_expr): Likewise.
39956         (gimplify_expr): Likewise.
39957         (gimplify_function_tree): Conditionally initialize
39958         asan_poisoned_variables.
39960 2017-01-04  Jeff Law  <law@redhat.com>
39962         PR tree-optimizatin/78812
39963         * rtl.h (contains_mem_rtx_p): Prototype.
39964         * ifcvt.c (containts_mem_rtx_p): Move from here to...
39965         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
39966         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
39967         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
39968         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
39970 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
39972         * input.c (assert_char_at_range): Default-initialize actual_range.
39974 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
39976         * df-scan.c (df_ref_create_structure): Make regno unsigned,
39977         to match the caller.
39979 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
39981         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
39982         insns after final jump in test to emit dummy move.
39984 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
39986         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
39987         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
39989 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
39991         * multiple_target.c (create_dispatcher_calls): Init e_next.
39992         * tree-ssa-loop-split.c (split_loop): Init border.
39993         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
39994         scalar_type.
39996 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
39998         PR target/71977
39999         PR target/70568
40000         PR target/78823
40001         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
40002         (altivec_register_operand): Do not return true if the operand
40003         contains a SUBREG mixing SImode and SFmode.
40004         (vsx_register_operand): Likewise.
40005         (vsx_reg_sfsubreg_ok): New predicate.
40006         (vfloat_operand): Do not return true if the operand contains a
40007         SUBREG mixing SImode and SFmode.
40008         (vint_operand): Likewise.
40009         (vlogical_operand): Likewise.
40010         (gpc_reg_operand): Likewise.
40011         (int_reg_operand): Likewise.
40012         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
40013         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
40014         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
40015         SImode and SFmode.
40016         (rs6000_emit_move_si_sf_subreg): New helper function.
40017         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
40018         fixup SUBREGs involving SImode and SFmode.
40019         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
40020         numbers for the new peephole2 optimization.
40021         (peephole2 for SFmode unions): New peephole2 to optimize cases in
40022         the GLIBC math library that do AND/IOR/XOR operations on single
40023         precision floating point.
40024         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
40025         target macros to say whether we need to avoid SUBREGs mixing
40026         SImode and SFmode.
40027         (TARGET_ALLOW_SF_SUBREG): Likewise.
40028         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
40029         (UNSPEC_SI_FROM_SF): Likewise.
40030         (iorxor): Change spacing.
40031         (and_ior_xor): New iterator for AND, IOR, and XOR.
40032         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
40033         (movdi_from_sf_zero_ext): Likewise.
40034         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
40035         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
40036         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
40037         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
40038         (fms<mode>4): Likewise.
40039         (fnma<mode>4): Likewise.
40040         (fnms<mode>4): Likewise.
40041         (nfma<mode>4): Likewise.
40042         (nfms<mode>4): Likewise.
40044 2017-01-04  Marek Polacek  <polacek@redhat.com>
40046         PR c++/64767
40047         * doc/invoke.texi: Document -Wpointer-compare.
40049 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40051         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
40052         RejectNegative.
40054         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
40055         descriptions for -gdwarf-5 and emit them as uleb128 instead of
40056         2-byte data.
40058 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
40060         PR target/78056
40061         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
40062         documentation of the powerpc_popcntb_ok attribute.
40063         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
40064         code to issue warning messages if a requested CPU configuration is
40065         not supported by the binary (assembler and loader) toolchain.
40066         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
40067         made to define a built-in function that has been disabled.
40068         (paired_init_builtins): Add assertion to prevent ICE if attempt is
40069         made to define a built-in function that has been disabled.
40070         (altivec_init_builtins): Add comment explaining why definition
40071         of the DST built-in functions is not preceded by an assertion
40072         check.  Add assertions to prevent ICE if attempts are made to
40073         define an altivec predicate or an abs* built-in function that has
40074         been disabled.
40075         (htm_init_builtins): Add comment explaining why definition of the
40076         htm built-in functions is not preceded by an assertion check.
40078 2017-01-04  Jeff Law  <law@redhat.com>
40080         PR tree-optimizatin/67955
40081         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
40082         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
40083         the points-to solution does not include pt_null.  Use DECL_PT_UID
40084         unconditionally.
40086 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
40088         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
40089         Use gen_int_mode instead of gen_lopwart for const_int operands.
40091 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40093         PR tree-optimization/71563
40094         * match.pd: Simplify X << Y into X if Y is known to be 0 or
40095         out of range value - has low bits known to be zero.
40097 2017-01-04  Alan Modra  <amodra@gmail.com>
40099         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
40100         * configure: Regenerate.
40101         * config.in: Regenerate.
40103 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40105         PR bootstrap/77569
40106         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
40107         a substring of the message, but strcmp with the whole message.  Ifdef
40108         ENABLE_NLS, translate the message first using dgettext.
40110 2017-01-03  Jeff Law  <law@redhat.com>
40112         PR tree-optimizatin/78856
40113         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
40114         (mark_threaded_blocks): Remove code to truncate thread paths that
40115         cross multiple loop headers.  Instead invalidate the cached loop
40116         iteration information and handle case of a thread path walking
40117         into an irreducible region.
40119 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
40121         PR target/78900
40122         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
40123         assertions.  Add support for doing the signbit if the IEEE 128-bit
40124         floating point value is in a GPR.
40125         * config/rs6000/rs6000.md (Fsignbit): Delete.
40126         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
40127         Update the length attribute if the value is in a GPR.
40128         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
40129         the sign or zero extension instruction, since the value is always 0/1.
40130         (signbit<mode>2_dm2): Delete using <Fsignbit>.
40132         PR target/78953
40133         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
40134         extracting SImode to a GPR register so that we can generate a
40135         store, limit the vector to be in a traditional Altivec register
40136         for the vextuwrx instruction.
40138 2017-01-03  Ian Lance Taylor  <iant@google.com>
40140         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
40142 2017-01-03  Martin Sebor  <msebor@redhat.com>
40144         PR tree-optimization/78696
40145         * gimple-ssa-sprintf.c (format_floating): Correct handling of
40146         precision.  Use MPFR for %f for greater fidelity.  Correct handling
40147         of %g.
40148         (pass_sprintf_length::compute_format_length): Set width and precision
40149         specified by asrerisk to void_node for vararg functions.
40150         (try_substitute_return_value): Adjust dump output.
40152 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
40154         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
40156 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40158         * doc/invoke.texi (SPARC options): Document -mlra as the default.
40159         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
40160         -mlra/-mno-lra was passed to the compiler.
40162 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
40164         PR rtl-optimization/65618
40165         * emit-rtl.c (try_split): Move initialization of "before" and
40166         "after" to just before the call to emit_insn_after_setloc.
40168 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40170         * doc/md.texi (Standard Names): Remove reference to Java frontend.
40172 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
40174         * dwarf2out.c (gen_enumeration_type_die): When
40175         -gno-strict-dwarf, add a DW_AT_encoding attribute.
40177 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
40179         PR tree-optimization/78965
40180         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
40181         Change first argument from const call_info & to call_info &.  For %n
40182         set info.nowrite to false.
40184         PR middle-end/78901
40185         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
40186         possibly throwing calls.
40188         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
40189         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
40190         and fns handling, rather than in a separate case SSA_NAME.
40192 2017-01-02  Jeff Law  <law@redhat.com>
40194         * config/darwin-driver.c (darwin_driver_init): Const-correctness
40195         fixes for first_period and second_period variables.
40197 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
40199         PR target/78967
40200         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
40201         (*insvqi_1): New insn pattern.
40202         (*insvqi_1_mem_rex64): Ditto.
40203         (*insvqi_2): Ditto.
40204         (*insvqi_3): Rename from *insvqi.
40206         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
40208 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40210         * doc/cfg.texi (Edges): Remove reference to Java.
40211         (Maintaining the CFG): Ditto.
40213 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40215         PR middle-end/77674
40216         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
40217         transparent aliases.
40219 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40221         PR middle-end/77484
40222         * predict.def (PRED_CALL): Update hitrate.
40223         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
40224         * predict.c (tree_estimate_probability_bb): Split CALL predictor
40225         into direct/indirect/polymorphic variants.
40227 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
40229         Update copyright years.
40231         * gcc.c (process_command): Update copyright notice dates.
40232         * gcov-dump.c (print_version): Ditto.
40233         * gcov.c (print_version): Ditto.
40234         * gcov-tool.c (print_version): Ditto.
40235         * gengtype.c (create_file): Ditto.
40236         * doc/cpp.texi: Bump @copying's copyright year.
40237         * doc/cppinternals.texi: Ditto.
40238         * doc/gcc.texi: Ditto.
40239         * doc/gccint.texi: Ditto.
40240         * doc/gcov.texi: Ditto.
40241         * doc/install.texi: Ditto.
40242         * doc/invoke.texi: Ditto.
40244 Copyright (C) 2017 Free Software Foundation, Inc.
40246 Copying and distribution of this file, with or without modification,
40247 are permitted in any medium without royalty provided the copyright
40248 notice and this notice are preserved.