poly_int: loop versioning threshold
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
2             Alan Hayward  <alan.hayward@arm.com>
3             David Sherwood  <david.sherwood@arm.com>
4
5         * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold
6         field.
7         (LOOP_VINFO_VERSIONING_THRESHOLD): New macro
8         (vect_loop_versioning): Take the loop versioning threshold as a
9         separate parameter.
10         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
11         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
12         versioning_threshold.
13         (vect_analyze_loop_2): Compute the loop versioning threshold
14         whenever loop versioning is needed, and store it in the new
15         field rather than combining it with the cost model threshold.
16         (vect_transform_loop): Update call to vect_loop_versioning.
17         Try to combine the loop versioning and cost thresholds here.
18
19 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
20             Alan Hayward  <alan.hayward@arm.com>
21             David Sherwood  <david.sherwood@arm.com>
22
23         * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as
24         poly_uint64_pod rather than an unsigned HOST_WIDE_INT.
25         * tree-loop-distribution.c (classify_builtin_st): Update accordingly.
26         * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from
27         an unsigned HOST_WIDE_INT to a poly_uint64_pod.
28         (group_compare_offset): Update accordingly.
29         (split_small_address_groups_p): Likewise.
30         (record_use): Take addr_offset as a poly_uint64 rather than
31         an unsigned HOST_WIDE_INT.
32         (strip_offset): Return the offset as a poly_uint64 rather than
33         an unsigned HOST_WIDE_INT.
34         (record_group_use, split_address_groups): Track polynomial offsets.
35         (add_iv_candidate_for_use): Likewise.
36         (addr_offset_valid_p): Take the offset as a poly_int64 rather
37         than a HOST_WIDE_INT.
38         (strip_offset_1): Return the offset as a poly_int64 rather than
39         a HOST_WIDE_INT.
40
41 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
42             Alan Hayward  <alan.hayward@arm.com>
43             David Sherwood  <david.sherwood@arm.com>
44
45         * tree.h (get_binfo_at_offset): Take the offset as a poly_int64
46         rather than a HOST_WIDE_INT.
47         * tree.c (get_binfo_at_offset): Likewise.
48
49 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
50             Alan Hayward  <alan.hayward@arm.com>
51             David Sherwood  <david.sherwood@arm.com>
52
53         * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64
54         rather than a HOST_WIDE_INT.
55         * tree-sra.c (build_ref_for_offset): Likewise.
56
57 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
58             Alan Hayward  <alan.hayward@arm.com>
59             David Sherwood  <david.sherwood@arm.com>
60
61         * fold-const.h (mem_ref_offset): Return a poly_offset_int rather
62         than an offset_int.
63         * tree.c (mem_ref_offset): Likewise.
64         (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints.
65         * builtins.c (get_object_alignment_2): Likewise.
66         * expr.c (get_inner_reference, expand_expr_real_1): Likewise.
67         * gimple-fold.c (get_base_constructor): Likewise.
68         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
69         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
70         Likewise.
71         * ipa-polymorphic-call.c
72         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
73         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
74         (get_ancestor_addr_info): Likewise.
75         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise.
76         * match.pd: Likewise.
77         * tree-data-ref.c (dr_analyze_innermost): Likewise.
78         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
79         * tree-eh.c (tree_could_trap_p): Likewise.
80         * tree-object-size.c (addr_object_size): Likewise.
81         * tree-ssa-address.c (copy_ref_info): Likewise.
82         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
83         (indirect_refs_may_alias_p): Likewise.
84         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
85         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
86         (non_rewritable_mem_ref_base): Likewise.
87         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
88         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
89         * varasm.c (decode_addr_const): Likewise.
90
91 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
92             Alan Hayward  <alan.hayward@arm.com>
93             David Sherwood  <david.sherwood@arm.com>
94
95         * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial
96         offsets for MEM_REFs.
97
98 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
99             Alan Hayward  <alan.hayward@arm.com>
100             David Sherwood  <david.sherwood@arm.com>
101
102         * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment
103         as a poly_uint64 rather than an unsigned int.
104         * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise.
105
106 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
107             Alan Hayward  <alan.hayward@arm.com>
108             David Sherwood  <david.sherwood@arm.com>
109
110         * varasm.c (addr_const::offset): Change from HOST_WIDE_INT
111         to poly_int64.
112         (decode_addr_const): Update accordingly.
113
114 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
115             Alan Hayward  <alan.hayward@arm.com>
116             David Sherwood  <david.sherwood@arm.com>
117
118         * tree.h (bit_field_size, bit_field_offset): New functions.
119         * hsa-gen.c (gen_hsa_addr): Use them.
120         * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise.
121         (simplify_vector_constructor): Likewise.
122         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
123         * tree-cfg.c (verify_expr): Require the sizes and offsets of a
124         BIT_FIELD_REF to be poly_uint64s rather than uhwis.
125         * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with
126         tree_fits_uhwi_p.
127
128 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
129             Alan Hayward  <alan.hayward@arm.com>
130             David Sherwood  <david.sherwood@arm.com>
131
132         * expr.h (emit_group_load, emit_group_load_into_temps)
133         (emit_group_store): Take the size as a poly_int64 rather than an int.
134         * expr.c (emit_group_load_1, emit_group_load): Likewise.
135         (emit_group_load_into_temp, emit_group_store): Likewise.
136
137 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
138             Alan Hayward  <alan.hayward@arm.com>
139             David Sherwood  <david.sherwood@arm.com>
140
141         * ira-int.h (ira_spilled_reg_stack_slot::width): Change from
142         an unsigned int to a poly_uint64.
143         * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the
144         sizes as poly_uint64s rather than unsigned ints.
145         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot):
146         Likewise.
147
148 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
149             Alan Hayward  <alan.hayward@arm.com>
150             David Sherwood  <david.sherwood@arm.com>
151
152         * lra-constraints.c (emit_inc): Change inc_amount from an int
153         to a poly_int64.
154
155 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
156             Alan Hayward  <alan.hayward@arm.com>
157             David Sherwood  <david.sherwood@arm.com>
158
159         * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT
160         to a poly_uint64.
161         (add_stack_var, stack_var_cmp, partition_stack_vars)
162         (dump_stack_var_partition): Update accordingly.
163         (alloc_stack_frame_space): Take the size as a poly_int64 rather
164         than a HOST_WIDE_INT.
165         (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes.
166         (defer_stack_allocation, estimated_stack_frame_size): Likewise.
167         (account_stack_vars, expand_one_var): Likewise.  Return a poly_uint64
168         rather than a HOST_WIDE_INT.
169
170 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
171             Alan Hayward  <alan.hayward@arm.com>
172             David Sherwood  <david.sherwood@arm.com>
173
174         * target.def (return_pops_args): Treat both the input and output
175         sizes as poly_int64s rather than HOST_WIDE_INTS.
176         * targhooks.h (default_return_pops_args): Update accordingly.
177         * targhooks.c (default_return_pops_args): Likewise.
178         * doc/tm.texi: Regenerate.
179         * emit-rtl.h (incoming_args): Change pops_args, size and
180         outgoing_args_size from int to poly_int64_pod.
181         * function.h (expr_status): Change x_pending_stack_adjust and
182         x_stack_pointer_delta from int to poly_int64.
183         (args_size::constant): Change from HOST_WIDE_INT to poly_int64.
184         (ARGS_SIZE_RTX): Update accordingly.
185         * calls.c (highest_outgoing_arg_in_use): Change from int to
186         unsigned int.
187         (stack_usage_watermark, stored_args_watermark): New variables.
188         (stack_region_maybe_used_p, mark_stack_region_used): New functions.
189         (emit_call_1): Change the stack_size and rounded_stack_size
190         parameters from HOST_WIDE_INT to poly_int64.  Track n_popped
191         as a poly_int64.
192         (save_fixed_argument_area): Check stack_usage_watermark.
193         (initialize_argument_information): Change old_pending_adj from
194         a HOST_WIDE_INT * to a poly_int64_pod *.
195         (compute_argument_block_size): Return the size as a poly_int64
196         rather than an int.
197         (finalize_must_preallocate): Track polynomial argument sizes.
198         (compute_argument_addresses): Likewise.
199         (internal_arg_pointer_based_exp): Track polynomial offsets.
200         (mem_overlaps_already_clobbered_arg_p): Rename to...
201         (mem_might_overlap_already_clobbered_arg_p): ...this and take the
202         size as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
203         Check stored_args_used_watermark.
204         (load_register_parameters): Update accordingly.
205         (check_sibcall_argument_overlap_1): Likewise.
206         (combine_pending_stack_adjustment_and_call): Take the unadjusted
207         args size as a poly_int64 rather than an int.  Return a bool
208         indicating whether the optimization was possible and return
209         the new adjustment by reference.
210         (check_sibcall_argument_overlap): Track polynomail argument sizes.
211         Update stored_args_watermark.
212         (can_implement_as_sibling_call_p): Handle polynomial argument sizes.
213         (expand_call): Likewise.  Maintain stack_usage_watermark and
214         stored_args_watermark.  Update calls to
215         combine_pending_stack_adjustment_and_call.
216         (emit_library_call_value_1): Handle polynomial argument sizes.
217         Call stack_region_maybe_used_p and mark_stack_region_used.
218         Maintain stack_usage_watermark.
219         (store_one_arg): Likewise.  Update call to
220         mem_overlaps_already_clobbered_arg_p.
221         * config/arm/arm.c (arm_output_function_prologue): Add a cast to
222         HOST_WIDE_INT.
223         * config/avr/avr.c (avr_outgoing_args_size): Likewise.
224         * config/microblaze/microblaze.c (microblaze_function_prologue):
225         Likewise.
226         * config/cr16/cr16.c (cr16_return_pops_args): Update for new
227         TARGET_RETURN_POPS_ARGS interface.
228         (cr16_compute_frame, cr16_initial_elimination_offset): Add casts
229         to HOST_WIDE_INT.
230         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
231         * config/i386/i386.c (ix86_return_pops_args): Update for new
232         TARGET_RETURN_POPS_ARGS interface.
233         (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT.
234         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
235         * config/m68k/m68k.c (m68k_return_pops_args): Update for new
236         TARGET_RETURN_POPS_ARGS interface.
237         * config/vax/vax.c (vax_return_pops_args): Likewise.
238         * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64.
239         (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size.
240         * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise.
241         * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
242         * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
243         * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise.
244         * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
245         * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
246         * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise.
247         * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust
248         and x_stack_pointer_delta from int to poly_int64.
249         * dojump.c (do_pending_stack_adjust): Update accordingly.
250         * explow.c (allocate_dynamic_stack_space): Handle polynomial
251         stack_pointer_deltas.
252         * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64.
253         (pad_to_arg_alignment): Track polynomial offsets.
254         (assign_parm_find_stack_rtl): Likewise.
255         (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes.
256         * toplev.c (output_stack_usage): Update reference to
257         current_function_pushed_stack_size.
258
259 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
260             Alan Hayward  <alan.hayward@arm.com>
261             David Sherwood  <david.sherwood@arm.com>
262
263         * function.c (in_arg_offset, var_offset, dynamic_offset)
264         (out_arg_offset, cfa_offset): Change from int to poly_int64.
265         (instantiate_new_reg): Return the new offset as a poly_int64_pod
266         rather than a HOST_WIDE_INT.
267         (instantiate_virtual_regs_in_rtx): Track polynomial offsets.
268         (instantiate_virtual_regs_in_insn): Likewise.
269
270 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
271             Alan Hayward  <alan.hayward@arm.com>
272             David Sherwood  <david.sherwood@arm.com>
273
274         * rtl.h (get_args_size, add_args_size_note): New functions.
275         (find_args_size_adjust): Return a poly_int64 rather than a
276         HOST_WIDE_INT.
277         (fixup_args_size_notes): Likewise.  Make the same change to the
278         end_args_size parameter.
279         * rtlanal.c (get_args_size, add_args_size_note): New functions.
280         * builtins.c (expand_builtin_trap): Use add_args_size_note.
281         * calls.c (emit_call_1): Likewise.
282         * explow.c (adjust_stack_1): Likewise.
283         * cfgcleanup.c (old_insns_match_p): Update use of
284         find_args_size_adjust.
285         * combine.c (distribute_notes): Track polynomial arg sizes.
286         * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size,
287         end_true_args_size, beg_delay_args_size and end_delay_args_size
288         from HOST_WIDE_INT to poly_int64.
289         (add_cfi_args_size): Take the args_size as a poly_int64 rather
290         than a HOST_WIDE_INT.
291         (notice_args_size, notice_eh_throw, maybe_record_trace_start)
292         (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track
293         polynomial arg sizes.
294         * emit-rtl.c (try_split): Use get_args_size.
295         * recog.c (peep2_attempt): Likewise.
296         * reload1.c (reload_as_needed): Likewise.
297         * expr.c (find_args_size_adjust): Return the adjustment as a
298         poly_int64 rather than a HOST_WIDE_INT.
299         (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT
300         to a poly_int64 and change the return type in the same way.
301         (emit_single_push_insn): Track polynomial arg sizes.
302
303 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
304             Alan Hayward  <alan.hayward@arm.com>
305             David Sherwood  <david.sherwood@arm.com>
306
307         * expr.h (push_block, emit_push_insn): Change the "extra" parameter
308         from HOST_WIDE_INT to poly_int64.
309         * expr.c (push_block, emit_push_insn): Likewise.
310
311 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
312             Alan Hayward  <alan.hayward@arm.com>
313             David Sherwood  <david.sherwood@arm.com>
314
315         * function.h (frame_space): Change start and length from HOST_WIDE_INT
316         to poly_int64.
317         (get_frame_size): Return the size as a poly_int64 rather than a
318         HOST_WIDE_INT.
319         (frame_offset_overflow): Take the offset as a poly_int64 rather
320         than a HOST_WIDE_INT.
321         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
322         (assign_stack_temp): Likewise for the size.
323         * function.c (get_frame_size): Return a poly_int64 rather than
324         a HOST_WIDE_INT.
325         (frame_offset_overflow): Take the offset as a poly_int64 rather
326         than a HOST_WIDE_INT.
327         (try_fit_stack_local): Take the start, length and size as poly_int64s
328         rather than HOST_WIDE_INTs.  Return the offset as a poly_int64_pod
329         rather than a HOST_WIDE_INT.
330         (add_frame_space): Take the start and end as poly_int64s rather than
331         HOST_WIDE_INTs.
332         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
333         (assign_stack_temp): Likewise for the size.
334         (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT
335         to poly_int64.
336         (find_temp_slot_from_address): Handle polynomial offsets.
337         (combine_temp_slots): Likewise.
338         * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT
339         to poly_int64.
340         * cfgexpand.c (alloc_stack_frame_space): Return the offset as a
341         poly_int64 rather than a HOST_WIDE_INT.
342         (expand_one_stack_var_at): Take the offset as a poly_int64 rather
343         than a HOST_WIDE_INT.
344         (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle
345         polynomial frame offsets.
346         * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size
347         as a poly_int64 rather than an int.
348         * config/m32r/m32r.c (m32r_compute_frame_size): Likewise.
349         * config/v850/v850-protos.h (compute_frame_size): Likewise.
350         * config/v850/v850.c (compute_frame_size): Likewise.
351         * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise.
352         * config/xtensa/xtensa.c (compute_frame_size): Likewise.
353         * config/pa/pa-protos.h (pa_compute_frame_size): Likewise.
354         * config/pa/pa.c (pa_compute_frame_size): Likewise.
355         * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64
356         rather than a HOST_WIDE_INT.
357         * explow.c (get_dynamic_stack_base): Likewise.
358         * final.c (final_start_function): Use the constant lower bound
359         of the frame size for -Wframe-larger-than.
360         * ira.c (do_reload): Adjust for new get_frame_size return type.
361         * lra.c (lra): Likewise.
362         * reload1.c (reload): Likewise.
363         * config/avr/avr.c (avr_asm_function_end_prologue): Likewise.
364         * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise.
365         * rtlanal.c (get_initial_register_offset): Return the offset as
366         a poly_int64 rather than a HOST_WIDE_INT.
367
368 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
369             Alan Hayward  <alan.hayward@arm.com>
370             David Sherwood  <david.sherwood@arm.com>
371
372         * reload1.c (elim_table): Change initial_offset, offset and
373         previous_offset from HOST_WIDE_INT to poly_int64_pod.
374         (offsets_at): Change the target array's element type from
375         HOST_WIDE_INT to poly_int64_pod.
376         (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn)
377         (elimination_costs_in_insn, update_eliminable_offsets)
378         (verify_initial_elim_offsets, set_offsets_for_label)
379         (init_eliminable_invariants): Update after above changes.
380
381 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
382             Alan Hayward  <alan.hayward@arm.com>
383             David Sherwood  <david.sherwood@arm.com>
384
385         * reload.h (reload::inc): Change from an int to a poly_int64_pod.
386         * reload.c (combine_reloads, debug_reload_to_stream): Likewise.
387         (decomposition): Change start and end from HOST_WIDE_INT
388         to poly_int64_pod.
389         (decompose, immune_p): Update accordingly.
390         (find_inc_amount): Return a poly_int64 rather than an int.
391         * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64
392         rather than an int.
393
394 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
395             Alan Hayward  <alan.hayward@arm.com>
396             David Sherwood  <david.sherwood@arm.com>
397
398         * tree.h (get_inner_reference): Return the bitsize and bitpos
399         as poly_int64_pods rather than HOST_WIDE_INT.
400         * fold-const.h (ptr_difference_const): Return the pointer difference
401         as a poly_int64_pod rather than a HOST_WIDE_INT.
402         * expr.c (get_inner_reference): Return the bitsize and bitpos
403         as poly_int64_pods rather than HOST_WIDE_INT.
404         (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial
405         offsets and sizes.
406         * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64
407         rather than a HOST_WIDE_INT.  Update call to get_inner_reference.
408         (optimize_bit_field_compare): Update call to get_inner_reference.
409         (decode_field_reference): Likewise.
410         (fold_unary_loc): Track polynomial offsets and sizes.
411         (split_address_to_core_and_offset): Return the bitpos as a
412         poly_int64_pod rather than a HOST_WIDE_INT.
413         (ptr_difference_const): Likewise for the pointer difference.
414         * asan.c (instrument_derefs): Track polynomial offsets and sizes.
415         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
416         * dbxout.c (dbxout_expand_expr): Likewise.
417         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref)
418         (loc_list_from_tree_1, fortran_common): Likewise.
419         * gimple-laddress.c (pass_laddress::execute): Likewise.
420         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise.
421         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
422         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
423         * tree-affine.c (tree_to_aff_combination): Likewise.
424         (get_inner_reference_aff): Likewise.
425         * tree-data-ref.c (split_constant_offset_1): Likewise.
426         (dr_analyze_innermost): Likewise.
427         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
428         * tree-sra.c (ipa_sra_check_caller): Likewise.
429         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
430         * ubsan.c (maybe_instrument_pointer_overflow): Likewise.
431         (instrument_bool_enum_load, instrument_object_size): Likewise.
432         * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call
433         to get_inner_reference.
434         * hsa-gen.c (gen_hsa_addr): Likewise.
435         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
436         * tsan.c (instrument_expr): Likewise.
437         * match.pd: Update call to ptr_difference_const.
438
439 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
440             Alan Hayward  <alan.hayward@arm.com>
441             David Sherwood  <david.sherwood@arm.com>
442
443         * fold-const.c (fold_comparison): Track sizes and offsets as
444         poly_int64s rather than HOST_WIDE_INTs when folding address
445         comparisons.
446
447 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
448             Alan Hayward  <alan.hayward@arm.com>
449             David Sherwood  <david.sherwood@arm.com>
450
451         * expr.h (get_bit_range): Return the bitstart and bitend as
452         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Return the bitpos
453         as a poly_int64 rather than a HOST_WIDE_INT.
454         * expr.c (get_bit_range): Likewise.
455         (expand_assignment): Update call accordingly.
456         * fold-const.c (optimize_bit_field_compare): Likewise.
457
458 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
459             Alan Hayward  <alan.hayward@arm.com>
460             David Sherwood  <david.sherwood@arm.com>
461
462         * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum.
463         (aarch64_legitimate_address_p): Use it instead of an rtx code,
464         as an optional final parameter.
465         * config/aarch64/aarch64.c (aarch64_classify_address): Likewise.
466         (aarch64_legitimate_address_p): Likewise.
467         (aarch64_print_address_internal): Take an aarch64_addr_query_type
468         instead of an rtx code.
469         (aarch64_address_valid_for_prefetch_p): Update calls accordingly.
470         (aarch64_legitimate_address_hook_p): Likewise.
471         (aarch64_print_ldpstp_address): Likewise.
472         (aarch64_print_operand_address): Likewise.
473         (aarch64_address_cost): Likewise.
474         * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise.
475         * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise.
476         (aarch64_mem_pair_lanes_operand): Likewise.
477
478 2017-12-20  Richard Biener  <rguenther@suse.de>
479
480         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call
481         update_stmt_if_modified.
482
483 2017-12-20  Wilco Dijkstra  <wdijkstr@arm.com>
484
485         PR tree-optimization/83491
486         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME
487         before walking uses.  Improve coding style and comments.
488
489 2017-12-20  Tom de Vries  <tom@codesourcery.com>
490
491         * gimple-fold.c (fold_internal_goacc_dim): Simplify.
492
493 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
494
495         PR ipa/83506
496         * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for
497         todo_flags_finish.
498         (pass_ipa_free_fn_summary): Add small_p private data member,
499         initialize to false in the ctor.
500         (pass_ipa_free_fn_summary::clone,
501         pass_ipa_free_fn_summary::set_pass_param,
502         pass_ipa_free_fn_summary::gate): New methods.
503         (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions
504         | TODO_dump_symtab if small_p.
505         * passes.def: Add true parm for the existing pass_ipa_free_fn_summary
506         entry and add another instance of the pass with false parm after
507         ipa-pure-const.
508         * ipa-pure-const.c (pass_ipa_pure_const): Don't call
509         ipa_free_fn_summary here.
510
511 2017-12-20  Paolo Carlini  <paolo.carlini@oracle.com>
512
513         * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check.
514
515 2017-12-20  Martin Sebor  <msebor@redhat.com>
516
517         PR testsuite/83131
518         * builtins.c (expand_builtin_strlen): Use get_callee_fndecl.
519         (expand_builtin_strcmp): Call maybe_warn_nonstring_arg.
520         (expand_builtin_strncmp): Same.
521
522 2017-12-20  Alexandre Oliva <aoliva@redhat.com>
523
524         PR bootstrap/83396
525         * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
526         allowed debug stmts before labels.
527         (expand_gimple_basic_block): Likewise.
528         * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
529         * gimple-iterator.h (gsi_after_labels): Likewise.
530         * tree-cfgcleanup (remove_forwarder_block): Likewise, but
531         rename reused variable, and simplify using gsi_move_before.
532         * tree-ssa-tail-merge.c (find_duplicate): Likewise.
533         * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
534         (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
535         (gimple_verify_flow_info, gimple_block_label): Likewise.
536         (make_blocks): Move debug markers after adjacent labels.
537         * cfgrtl.c (skip_insns_after_block): Revert SFN changes that
538         allowed debug insns outside blocks.
539         * df-scan.c (df_insn_delete): Likewise.
540         * lra-constraints.c (update_ebb_live_info): Likewise.
541         * var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
542         (vt_initialize, delete_vta_debug_insns): Likewise.
543         (reemit_marker_as_note): Drop BB parm.  Adjust callers.
544
545 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
546             Alan Hayward  <alan.hayward@arm.com>
547             David Sherwood  <david.sherwood@arm.com>
548
549         * poly-int-types.h (round_down_to_byte_boundary): New macro.
550         (round_up_to_byte_boundary): Likewise.
551         * expr.h (get_bit_range): Add temporary shim.
552         * gimple-ssa-store-merging.c (store_operand_info): Change the
553         bitsize, bitpos, bitregion_start and bitregion_end fields from
554         unsigned HOST_WIDE_INT to poly_uint64.
555         (merged_store_group): Likewise load_align_base.
556         (compatible_load_p, compatible_load_p): Update accordingly.
557         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
558         (split_group, imm_store_chain_info::output_merged_store): Likewise.
559         (mem_valid_for_store_merging): Return the bitsize, bitpos,
560         bitregion_start and bitregion_end as poly_uint64s rather than
561         unsigned HOST_WIDE_INTs.  Track polynomial offsets internally.
562         (handled_load): Take the bitsize, bitpos,
563         bitregion_start and bitregion_end as poly_uint64s rather than
564         unsigned HOST_WIDE_INTs.
565         (pass_store_merging::process_store): Update call to
566         mem_valid_for_store_merging.
567
568 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
569             Alan Hayward  <alan.hayward@arm.com>
570             David Sherwood  <david.sherwood@arm.com>
571
572         * builtins.c (get_object_alignment_2): Track polynomial offsets
573         and sizes.  Update the alignment handling.
574
575 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
576             Alan Hayward  <alan.hayward@arm.com>
577             David Sherwood  <david.sherwood@arm.com>
578
579         * tree.h (get_inner_reference): Add a version that returns the
580         offset and size as poly_int64_pods rather than HOST_WIDE_INTs.
581         * cfgexpand.c (expand_debug_expr): Track polynomial offsets.  Simply
582         the case in which bitpos is not associated with the first byte.
583
584 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
585             Alan Hayward  <alan.hayward@arm.com>
586             David Sherwood  <david.sherwood@arm.com>
587
588         * tree-affine.h (get_inner_reference_aff): Return the size as a
589         poly_widest_int.
590         * tree-affine.c (get_inner_reference_aff): Likewise.
591         * tree-data-ref.c (dr_may_alias_p): Update accordingly.
592         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise.
593
594 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
595             Alan Hayward  <alan.hayward@arm.com>
596             David Sherwood  <david.sherwood@arm.com>
597
598         * fold-const.c (pointer_may_wrap_p): Take the offset as a
599         HOST_WIDE_INT rather than a poly_int64.
600
601 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
602             Alan Hayward  <alan.hayward@arm.com>
603             David Sherwood  <david.sherwood@arm.com>
604
605         * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from
606         HOST_WIDE_INT to poly_int64_pod.
607         (perform_symbolic_merge): Update accordingly.
608         (bswap_replace): Likewise.
609
610 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
611             Alan Hayward  <alan.hayward@arm.com>
612             David Sherwood  <david.sherwood@arm.com>
613
614         * tree-affine.h (aff_tree::offset): Change from widest_int
615         to poly_widest_int.
616         (wide_int_ext_for_comb): Delete.
617         (aff_combination_const, aff_comb_cannot_overlap_p): Take the
618         constants as poly_widest_int rather than widest_int.
619         (aff_combination_constant_multiple_p): Return the multiplier
620         as a poly_widest_int.
621         (aff_combination_zero_p, aff_combination_singleton_var_p): Handle
622         polynomial offsets.
623         * tree-affine.c (wide_int_ext_for_comb): Make original widest_int
624         version static and add an overload for poly_widest_int.
625         (aff_combination_const, aff_combination_add_cst)
626         (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take
627         the constants as poly_widest_int rather than widest_int.
628         (tree_to_aff_combination): Generalize INTEGER_CST case to
629         poly_int_tree_p.
630         (aff_combination_to_tree): Track offsets as poly_widest_ints.
631         (aff_combination_add_product, aff_combination_mult): Handle
632         polynomial offsets.
633         (aff_combination_constant_multiple_p): Return the multiplier
634         as a poly_widest_int.
635         * tree-predcom.c (determine_offset): Return the offset as a
636         poly_widest_int.
637         (split_data_refs_to_components, suitable_component_p): Update
638         accordingly.
639         (valid_initializer_p): Update call to
640         aff_combination_constant_multiple_p.
641         * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets.
642         * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step
643         as a poly_int64 rather than a HOST_WIDE_INT.
644         (get_address_cost): Handle polynomial offsets.
645         (iv_elimination_compare_lt): Likewise.
646         (rewrite_use_nonlinear_expr): Likewise.
647
648 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
649             Alan Hayward  <alan.hayward@arm.com>
650             David Sherwood  <david.sherwood@arm.com>
651
652         * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset
653         as a poly_int64_pod rather than a HOST_WIDE_INT.
654         (get_addr_base_and_unit_offset): Likewise.
655         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
656         (get_addr_base_and_unit_offset): Likewise.
657         * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT
658         to poly_int64 in example.
659         * fold-const.c (fold_binary_loc): Update call to
660         get_addr_base_and_unit_offset.
661         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
662         (maybe_canonicalize_mem_ref_addr): Likewise.
663         (gimple_fold_stmt_to_constant_1): Likewise.
664         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
665         Likewise.
666         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
667         * match.pd: Likewise.
668         * omp-low.c (lower_omp_target): Likewise.
669         * tree-sra.c (build_ref_for_offset): Likewise.
670         (build_debug_ref_for_model): Likewise.
671         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
672         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
673         * tree-ssa-ccp.c (optimize_memcpy): Likewise.
674         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
675         (constant_pointer_difference): Likewise.
676         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
677         * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise.
678         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
679         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
680         (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise.
681         (set_ssa_val_to): Likewise.
682         * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr)
683         (maybe_diag_stxncpy_trunc): Likewise.
684         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
685         * tree.c (build_simple_mem_ref_loc): Likewise.
686         (array_at_struct_end_p): Likewise.
687
688 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
689             Alan Hayward  <alan.hayward@arm.com>
690             David Sherwood  <david.sherwood@arm.com>
691
692         * tree-dfa.h (get_ref_base_and_extent): Return the base, size and
693         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
694         (get_ref_base_and_extent_hwi): Declare.
695         * tree-dfa.c (get_ref_base_and_extent): Return the base, size and
696         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
697         (get_ref_base_and_extent_hwi): New function.
698         * cfgexpand.c (expand_debug_expr): Update call to
699         get_ref_base_and_extent.
700         * dwarf2out.c (add_var_loc_to_decl): Likewise.
701         * gimple-fold.c (get_base_constructor): Return the offset as a
702         poly_int64_pod rather than a HOST_WIDE_INT.
703         (fold_const_aggregate_ref_1): Track polynomial sizes and offsets.
704         * ipa-polymorphic-call.c
705         (ipa_polymorphic_call_context::set_by_invariant)
706         (extr_type_from_vtbl_ptr_store): Track polynomial offsets.
707         (ipa_polymorphic_call_context::ipa_polymorphic_call_context)
708         (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi
709         rather than get_ref_base_and_extent.
710         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
711         * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func)
712         (get_ancestor_addr_info, determine_locally_known_aggregate_parts):
713         Likewise.
714         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update
715         call to get_ref_base_and_extent.
716         * tree-sra.c (create_access, get_access_for_expr): Likewise.
717         * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p)
718         (stmt_kills_ref_p): Likewise.
719         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
720         * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p):
721         Likewise.
722         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
723         Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent
724         when calling native_encode_expr.
725         * tree-ssa-structalias.c (get_constraint_for_component_ref): Update
726         call to get_ref_base_and_extent.
727         (do_structure_copy): Use get_ref_base_and_extent_hwi rather than
728         get_ref_base_and_extent.
729         * var-tracking.c (track_expr_p): Likewise.
730
731 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
732             Alan Hayward  <alan.hayward@arm.com>
733             David Sherwood  <david.sherwood@arm.com>
734
735         * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from
736         HOST_WIDE_INT to poly_int64_pod.
737         * ipa-param-manipulation.c (ipa_modify_call_arguments): Track
738         polynomail parameter offsets.
739
740 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
741             Alan Hayward  <alan.hayward@arm.com>
742             David Sherwood  <david.sherwood@arm.com>
743
744         * gengtype.c (main): Handle poly_int64_pod.
745         * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type.
746         (dw_cfi_oprnd::dw_cfi_cfa_loc): New field.
747         (dw_cfa_location::offset, dw_cfa_location::base_offset): Change
748         from HOST_WIDE_INT to poly_int64_pod.
749         * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise.
750         (copy_cfa): New function.
751         (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists.
752         (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc.
753         (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa)
754         (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr)
755         (initial_return_save): Treat offsets as poly_ints.
756         (def_cfa_0): Likewise.  Cache the CFA in dw_cfi_cfa_loc if either
757         offset is nonconstant.
758         (reg_save): Take the offset as a poly_int64.  Fall back to
759         DW_CFA_expression for nonconstant offsets.
760         (queue_reg_save): Take the offset as a poly_int64.
761         * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression.
762
763 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
764             Alan Hayward  <alan.hayward@arm.com>
765             David Sherwood  <david.sherwood@arm.com>
766
767         * rtl.h (operand_subword, operand_subword_force): Take the offset
768         as a poly_uint64 an unsigned int.
769         * emit-rtl.c (operand_subword, operand_subword_force): Likewise.
770
771 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
772             Alan Hayward  <alan.hayward@arm.com>
773             David Sherwood  <david.sherwood@arm.com>
774
775         * doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
776         'p' format code.  Use INT_LIST rather than SUBREG as the example of
777         a code with an XINT and an XEXP.  Remove the implication that
778         accessing an rtx field using XINT is expected to work.
779         * rtl.def (SUBREG): Change format from "ei" to "ep".
780         * rtl.h (rtunion::rt_subreg): New field.
781         (XCSUBREG): New macro.
782         (SUBREG_BYTE): Use it.
783         (subreg_shape): Change offset from an unsigned int to a poly_uint16.
784         Update constructor accordingly.
785         (subreg_shape::operator ==): Update accordingly.
786         (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
787         than an unsigned int.
788         (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
789         a poly_uint64 rather than an unsigned int.
790         (subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
791         than an unsigned int.
792         (subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
793         (subreg_size_highpart_offset): Return a poly_uint64 rather than
794         an unsigned int.  Take the sizes as poly_uint64s.
795         (subreg_offset_from_lsb): Return a poly_uint64 rather than
796         an unsigned int.  Take the shift as a poly_uint64 rather than
797         an unsigned int.
798         (subreg_regno_offset, subreg_offset_representable_p): Take the offset
799         as a poly_uint64 rather than an unsigned int.
800         (simplify_subreg_regno): Likewise.
801         (byte_lowpart_offset): Return the memory offset as a poly_int64
802         rather than an int.
803         (subreg_memory_offset): Likewise.  Take the subreg offset as a
804         poly_uint64 rather than an unsigned int.
805         (simplify_subreg, simplify_gen_subreg, subreg_get_info)
806         (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
807         poly_uint64 rather than an unsigned int.
808         * rtl.c (rtx_format): Describe 'p' in comment.
809         (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
810         * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
811         offset as a poly_uint64 rather than an unsigned int.
812         (byte_lowpart_offset): Return the memory offset as a poly_int64
813         rather than an int.
814         (subreg_memory_offset): Likewise.  Take the subreg offset as a
815         poly_uint64 rather than an unsigned int.
816         (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
817         mode sizes as poly_uint64s rather than unsigned ints.  Return a
818         poly_uint64 rather than an unsigned int.
819         (subreg_lowpart_p): Treat subreg offsets as poly_ints.
820         (copy_insn_1): Handle 'p'.
821         * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
822         (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
823         an unsigned int.  Return the shift in the same way.
824         (subreg_lsb): Return the shift as a poly_uint64 rather than an
825         unsigned int.
826         (subreg_size_offset_from_lsb): Take the sizes and shift as
827         poly_uint64s rather than unsigned ints.  Return the offset as
828         a poly_uint64.
829         (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
830         (simplify_subreg_regno): Take the offset as a poly_uint64 rather than
831         an unsigned int.
832         * rtlhash.c (add_rtx): Handle 'p'.
833         * genemit.c (gen_exp): Likewise.
834         * gengenrtl.c (type_from_format, gendef): Likewise.
835         * gensupport.c (subst_pattern_match, get_alternatives_number)
836         (collect_insn_data, alter_predicate_for_insn, alter_constraints)
837         (subst_dup): Likewise.
838         * gengtype.c (adjust_field_rtx_def): Likewise.
839         * genrecog.c (find_operand, find_matching_operand, validate_pattern)
840         (match_pattern_2): Likewise.
841         (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
842         (rtx_test::subreg_field): New function.
843         (operator ==, safe_to_hoist_p, transition_parameter_type)
844         (print_nonbool_test, print_test): Handle SUBREG_FIELD.
845         * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
846         * genpeep.c (match_rtx): Likewise.
847         * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
848         (rtx_writer::print_rtx_operand): Handle 'p'.
849         (print_value): Handle SUBREG.
850         * read-rtl.c (apply_int_iterator): Likewise.
851         (rtx_reader::read_rtx_operand): Handle 'p'.
852         * alias.c (rtx_equal_for_memref_p): Likewise.
853         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
854         * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
855         as poly_ints.
856         * calls.c (expand_call): Likewise.
857         * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
858         (make_extraction, gen_lowpart_for_combine): Likewise.
859         * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
860         Likewise.
861         * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
862         rather than an unsigned int.  Treat subreg offsets as poly_ints.
863         (exp_equiv_p): Handle 'p'.
864         (hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
865         (equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
866         * dse.c (find_shift_sequence): Likewise.
867         * dwarf2out.c (rtl_for_decl_location): Likewise.
868         * expmed.c (extract_low_bits): Likewise.
869         * expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
870         (expand_expr_real_2): Likewise.
871         * final.c (alter_subreg): Likewise.
872         (leaf_renumber_regs_insn): Handle 'p'.
873         * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
874         Treat subreg offsets as poly_ints.
875         * fwprop.c (forward_propagate_and_simplify): Likewise.
876         * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
877         * ira.c (get_subreg_tracking_sizes): Likewise.
878         * ira-conflicts.c (go_through_subreg): Likewise.
879         * ira-lives.c (process_single_reg_class_operands): Likewise.
880         * jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
881         * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
882         as a poly_uint64 rather than an unsigned int.
883         (simplify_gen_subreg_concatn, resolve_simple_move): Treat
884         subreg offsets as poly_ints.
885         * lra-constraints.c (operands_match_p): Handle 'p'.
886         (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
887         * lra-spills.c (assign_mem_slot): Likewise.
888         * postreload.c (move2add_valid_value_p): Likewise.
889         * recog.c (general_operand, indirect_operand): Likewise.
890         * regcprop.c (copy_value, maybe_mode_change): Likewise.
891         (copyprop_hardreg_forward_1): Likewise.
892         * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
893         (record_subregs_of_mode): Likewise.
894         * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
895         * reload.c (operands_match_p): Handle 'p'.
896         (find_reloads_subreg_address): Treat subreg offsets as poly_ints.
897         * reload1.c (alter_reg, choose_reload_regs): Likewise.
898         (compute_reload_subreg_offset): Likewise, and return an poly_int64.
899         * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
900         (test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
901         (simplify_const_poly_int_tests<N>::run): Likewise.
902         (simplify_subreg, simplify_gen_subreg): Take the subreg offset as
903         a poly_uint64 rather than an unsigned int.
904         * valtrack.c (debug_lowpart_subreg): Likewise.
905         * var-tracking.c (var_lowpart): Likewise.
906         (loc_cmp): Handle 'p'.
907
908 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
909             Alan Hayward  <alan.hayward@arm.com>
910             David Sherwood  <david.sherwood@arm.com>
911
912         * ira.c (get_subreg_tracking_sizes): New function.
913         (init_live_subregs): Take an integer size rather than a register.
914         (build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
915         to init_live_subregs.
916
917 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
918             Alan Hayward  <alan.hayward@arm.com>
919             David Sherwood  <david.sherwood@arm.com>
920
921         * expr.c (store_constructor_field): Change bitsize from a
922         unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a
923         HOST_WIDE_INT to a poly_int64.
924         (store_constructor): Change size from a HOST_WIDE_INT to
925         a poly_int64.
926         (store_field): Likewise bitsize and bitpos.
927
928 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
929             Alan Hayward  <alan.hayward@arm.com>
930             David Sherwood  <david.sherwood@arm.com>
931
932         * expmed.h (store_bit_field): Change bitregion_start and
933         bitregion_end from unsigned HOST_WIDE_INT to poly_uint64.
934         * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p)
935         (store_bit_field_1, store_integral_bit_field, store_bit_field)
936         (store_fixed_bit_field, store_split_bit_field): Likewise.
937         * expr.c (store_constructor_field, store_field): Likewise.
938         (optimize_bitfield_assignment_op): Likewise.  Make the same change
939         to bitsize and bitpos.
940         * machmode.h (bit_field_mode_iterator): Change m_bitregion_start
941         and m_bitregion_end from HOST_WIDE_INT to poly_int64.  Make the
942         same change in the constructor arguments.
943         (get_best_mode): Change bitregion_start and bitregion_end from
944         unsigned HOST_WIDE_INT to poly_uint64.
945         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
946         Change bitregion_start and bitregion_end from HOST_WIDE_INT to
947         poly_int64.
948         (bit_field_mode_iterator::next_mode): Update for new types
949         of m_bitregion_start and m_bitregion_end.
950         (get_best_mode): Change bitregion_start and bitregion_end from
951         unsigned HOST_WIDE_INT to poly_uint64.
952
953 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
954             Alan Hayward  <alan.hayward@arm.com>
955             David Sherwood  <david.sherwood@arm.com>
956
957         * rtl.h (simplify_gen_subreg): Add a temporary overload that
958         accepts poly_uint64 offsets.
959         * expmed.h (extract_bit_field): Take bitsize and bitnum as
960         poly_uint64s rather than unsigned HOST_WIDE_INTs.
961         * expmed.c (lowpart_bit_field_p): Likewise.
962         (extract_bit_field_as_subreg): New function, split out from...
963         (extract_bit_field_1): ...here.  Take bitsize and bitnum as
964         poly_uint64s rather than unsigned HOST_WIDE_INTs.  For vector
965         extractions, check that BITSIZE matches the size of the extracted
966         value and that BITNUM is an exact multiple of that size.
967         If all else fails, try forcing the value into memory if
968         BITNUM is variable, and adjusting the address so that the
969         offset is constant.  Split the part that can only handle constant
970         bitsize and bitnum out into...
971         (extract_integral_bit_field): ...this new function.
972         (extract_bit_field): Take bitsize and bitnum as poly_uint64s
973         rather than unsigned HOST_WIDE_INTs.
974
975 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
976             Alan Hayward  <alan.hayward@arm.com>
977             David Sherwood  <david.sherwood@arm.com>
978
979         * expmed.h (store_bit_field): Take bitsize and bitnum as
980         poly_uint64s rather than unsigned HOST_WIDE_INTs.
981         * expmed.c (simple_mem_bitfield_p): Likewise.  Add a parameter
982         that returns the byte size.
983         (store_bit_field_1): Take bitsize and bitnum as
984         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Update call
985         to simple_mem_bitfield_p.  Split the part that can only handle
986         constant bitsize and bitnum out into...
987         (store_integral_bit_field): ...this new function.
988         (store_bit_field): Take bitsize and bitnum as poly_uint64s rather
989         than unsigned HOST_WIDE_INTs.
990         (extract_bit_field_1): Update call to simple_mem_bitfield_p.
991
992 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
993             Alan Hayward  <alan.hayward@arm.com>
994             David Sherwood  <david.sherwood@arm.com>
995
996         * lra-int.h (lra_reg): Change offset from int to poly_int64.
997         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
998         to poly_int64.
999         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1000         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
1001         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
1002         offset as a poly_int64 rather than an int.
1003         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
1004         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
1005         * lra-constraints.c (equiv_address_substitution): Track offsets
1006         as poly_int64s.
1007         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
1008         (curr_insn_transform): Handle the new form of sp_offset.
1009         * lra-eliminations.c (lra_elim_table): Change previous_offset
1010         and offset from HOST_WIDE_INT to poly_int64.
1011         (print_elim_table, update_reg_eliminate): Update accordingly.
1012         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
1013         (get_elimination): Update accordingly.
1014         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
1015         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1016         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
1017         poly_int64 offsets generally.
1018         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
1019         (mark_not_eliminable, init_elimination): Update accordingly.
1020         (remove_reg_equal_offset_note): Return a bool and pass the new
1021         offset back by pointer as a poly_int64.
1022         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
1023         rather than a HOST_WIDE_INT.
1024         (do_remat): Track offsets poly_int64s.
1025         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
1026
1027 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1028             Alan Hayward  <alan.hayward@arm.com>
1029             David Sherwood  <david.sherwood@arm.com>
1030
1031         * rtl.h (mem_attrs): Add a default constructor.  Change size and
1032         offset from HOST_WIDE_INT to poly_int64.
1033         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
1034         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
1035         (widen_memory_access): Take the sizes and offsets as poly_int64s
1036         rather than HOST_WIDE_INTs.
1037         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
1038         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
1039         and ints.
1040         (adjust_offset_for_component_ref): Change the offset from a
1041         HOST_WIDE_INT to a poly_int64.
1042         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
1043         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
1044         * dce.c (find_call_stack_args): Likewise.
1045         * dse.c (record_store): Likewise.
1046         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
1047         * print-rtl.c (rtx_writer::print_rtx): Likewise.
1048         * read-rtl-function.c (test_loading_mem): Likewise.
1049         * rtlanal.c (may_trap_p_1): Likewise.
1050         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1051         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
1052         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
1053         (mem_attrs::mem_attrs): New function.
1054         (set_mem_attributes_minus_bitpos): Change bitpos from a
1055         HOST_WIDE_INT to poly_int64.
1056         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
1057         (clear_mem_offset, clear_mem_size, change_address)
1058         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
1059         initialize mem_attrs.
1060         (set_mem_offset, set_mem_size, adjust_address_1)
1061         (adjust_automodify_address_1, offset_address, widen_memory_access):
1062         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
1063
1064 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1065             Alan Hayward  <alan.hayward@arm.com>
1066             David Sherwood  <david.sherwood@arm.com>
1067
1068         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
1069         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
1070         rather than 0 to represent an unknown size.  Assert that the size
1071         is known when the mode isn't BLKmode.
1072         (may_trap_p_1): Use -1 for unknown sizes.
1073         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
1074
1075 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1076             Alan Hayward  <alan.hayward@arm.com>
1077             David Sherwood  <david.sherwood@arm.com>
1078
1079         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
1080         to poly_int64.  Update commentary for positions_needed.large.
1081         (read_info_type): Change offset and width from HOST_WIDE_INT
1082         to poly_int64.
1083         (set_usage_bits): Likewise.
1084         (canon_address): Return the offset as a poly_int64 rather than
1085         a HOST_WIDE_INT.  Use strip_offset_and_add.
1086         (set_all_positions_unneeded, any_positions_needed_p): Use
1087         positions_needed.large to track stores with non-constant widths.
1088         (all_positions_needed_p): Likewise.  Take the offset and width
1089         as poly_int64s rather than ints.  Assert that rhs is nonnull.
1090         (record_store): Cope with non-constant offsets and widths.
1091         Nullify the rhs of an earlier store if we can't tell which bytes
1092         of it are needed.
1093         (find_shift_sequence): Take the access_size and shift as poly_int64s
1094         rather than ints.
1095         (get_stored_val): Take the read_offset and read_width as poly_int64s
1096         rather than HOST_WIDE_INTs.
1097         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
1098         non-constant offsets and widths.
1099
1100 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1101             Alan Hayward  <alan.hayward@arm.com>
1102             David Sherwood  <david.sherwood@arm.com>
1103
1104         * inchash.h (inchash::hash::add_poly_int): New function.
1105         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
1106         Use poly_int64 rather than HOST_WIDE_INT.
1107         (ao_ref::max_size_known_p): New function.
1108         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
1109         rather than HOST_WIDE_INT.
1110         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
1111         to temporaries until its interface is adjusted to match.
1112         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
1113         (aliasing_component_refs_p, decl_refs_may_alias_p)
1114         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
1115         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
1116         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
1117         ao_ref fields.
1118         * alias.c (ao_ref_from_mem): Likewise.
1119         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1120         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
1121         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
1122         (maybe_trim_complex_store, maybe_trim_constructor_store)
1123         (live_bytes_read, dse_classify_store): Likewise.
1124         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
1125         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
1126         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
1127         (vn_reference_lookup_3): Likewise.
1128         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1129
1130 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1131             Alan Hayward  <alan.hayward@arm.com>
1132             David Sherwood  <david.sherwood@arm.com>
1133
1134         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
1135         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
1136         instead of ranges_overlap_p.
1137
1138 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1139             Alan Hayward  <alan.hayward@arm.com>
1140             David Sherwood  <david.sherwood@arm.com>
1141
1142         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
1143         sizes as poly_int64s rather than HOST_WIDE_INTs.
1144
1145 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1146             Alan Hayward  <alan.hayward@arm.com>
1147             David Sherwood  <david.sherwood@arm.com>
1148
1149         * gimple-fold.h (fold_ctor_reference): Take the offset and size
1150         as poly_uint64 rather than unsigned HOST_WIDE_INT.
1151         * gimple-fold.c (fold_ctor_reference): Likewise.
1152
1153 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1154             Alan Hayward  <alan.hayward@arm.com>
1155             David Sherwood  <david.sherwood@arm.com>
1156
1157         * target.def (dwarf_poly_indeterminate_value): New hook.
1158         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
1159         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
1160         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
1161         * doc/tm.texi: Regenerate.
1162         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
1163         offset as a poly_int64.
1164         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
1165         offset as a poly_int64.
1166         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
1167         Take the offset as a poly_int64.
1168         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
1169         (frame_pointer_fb_offset): Change to a poly_int64.
1170         (int_loc_descriptor): Take the offset as a poly_int64.  Use
1171         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
1172         (based_loc_descr): Take the offset as a poly_int64.
1173         Use strip_offset_and_add to handle (plus X (const)).
1174         Use new_reg_loc_descr instead of an open-coded version of the
1175         previous implementation.
1176         (mem_loc_descriptor): Handle CONST_POLY_INT.
1177         (compute_frame_pointer_to_fb_displacement): Take the offset as a
1178         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
1179
1180 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1181             Alan Hayward  <alan.hayward@arm.com>
1182             David Sherwood  <david.sherwood@arm.com>
1183
1184         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
1185         (gen_rtx_REG_offset): Take the offset as a poly_int64.
1186         * inchash.h (inchash::hash::add_poly_hwi): New function.
1187         * gengtype.c (main): Register poly_int64.
1188         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
1189         offset as a poly_int.
1190         (reg_attr_hasher::equal): Use must_eq to compare offsets.
1191         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
1192         offset as a poly_int64.
1193         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
1194         * print-rtl.c (print_poly_int): New function.
1195         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
1196         a poly_int.
1197         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
1198         functions.
1199         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
1200         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
1201         (vt_get_decl_and_offset): Return the offset as a poly_int64.
1202         Enforce track_offset_p for parts of a PARALLEL.
1203         (vt_add_function_parameter): Use const_offset for the final
1204         offset to track.  Use get_tracked_reg_offset for the parts
1205         of a PARALLEL.
1206
1207 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1208             Alan Hayward  <alan.hayward@arm.com>
1209             David Sherwood  <david.sherwood@arm.com>
1210
1211         * target.def (truly_noop_truncation): Take poly_uint64s instead of
1212         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
1213         * doc/tm.texi: Regenerate.
1214         * hooks.h (hook_bool_uint_uint_true): Delete.
1215         (hook_bool_puint64_puint64_true): Declare.
1216         * hooks.c (hook_bool_uint_uint_true): Delete.
1217         (hook_bool_puint64_puint64_true): New function.
1218         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
1219         instead of unsigned ints.
1220         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
1221         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
1222
1223 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1224             Alan Hayward  <alan.hayward@arm.com>
1225             David Sherwood  <david.sherwood@arm.com>
1226
1227         * optabs.h (expand_operand): Add an int_value field.
1228         (create_expand_operand): Add an int_value parameter and use it
1229         to initialize the new expand_operand field.
1230         (create_integer_operand): Replace with a declaration of a function
1231         that accepts poly_int64s.  Move the implementation to...
1232         * optabs.c (create_integer_operand): ...here.
1233         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
1234         the mode preserves the value of int_value, instead of calling
1235         const_int_operand on the rtx.  Use gen_int_mode to generate
1236         the new rtx.
1237
1238 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1239             Alan Hayward  <alan.hayward@arm.com>
1240             David Sherwood  <david.sherwood@arm.com>
1241
1242         * dumpfile.h (dump_dec): Declare.
1243         * dumpfile.c (dump_dec): New function.
1244         * pretty-print.h (pp_wide_integer): Turn into a function and
1245         declare a poly_int version.
1246         * pretty-print.c (pp_wide_integer): New function for poly_ints.
1247
1248 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1249             Alan Hayward  <alan.hayward@arm.com>
1250             David Sherwood  <david.sherwood@arm.com>
1251
1252         * doc/generic.texi (POLY_INT_CST): Document.
1253         * tree.def (POLY_INT_CST): New tree code.
1254         * treestruct.def (TS_POLY_INT_CST): New tree layout.
1255         * tree-core.h (tree_poly_int_cst): New struct.
1256         (tree_node): Add a poly_int_cst field.
1257         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
1258         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
1259         instead of a wide_int_ref.
1260         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
1261         of a HOST_WIDE_INT.
1262         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1263         instead of an unsigned HOST_WIDE_INT.
1264         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
1265         (ptrdiff_tree_p): Declare.
1266         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
1267         extern inline implementations if the target doesn't use POLY_INT_CST.
1268         (poly_int_tree_p): New function.
1269         (wi::unextended_tree): New class.
1270         (wi::int_traits <unextended_tree>): New override.
1271         (wi::extended_tree): Add a default constructor.
1272         (wi::extended_tree::get_tree): New function.
1273         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
1274         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
1275         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
1276         (wi::tree_to_poly_wide_ref): New typedefs.
1277         (wi::ints_for): Provide overloads for extended_tree and
1278         unextended_tree.
1279         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
1280         (wi::to_wide): New functions.
1281         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
1282         * tree.c (poly_int_cst_hasher): New struct.
1283         (poly_int_cst_hash_table): New variable.
1284         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
1285         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
1286         POLY_INT_CST.
1287         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
1288         (init_ttree): Initialize poly_int_cst_hash_table.
1289         (build_int_cst, build_int_cst_type, build_invariant_address): Take
1290         a poly_int64 instead of a HOST_WIDE_INT.
1291         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1292         instead of an unsigned HOST_WIDE_INT.
1293         (wide_int_to_tree): Rename to...
1294         (wide_int_to_tree_1): ...this.
1295         (build_new_poly_int_cst, build_poly_int_cst): New functions.
1296         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
1297         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
1298         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
1299         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
1300         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
1301         TS_POLY_INT_CST.
1302         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
1303         (streamer_read_tree_body): Likewise.
1304         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
1305         (streamer_write_tree_body): Likewise.
1306         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
1307         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
1308         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
1309         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
1310         * gimple-expr.h (is_gimple_constant): Likewise.
1311         * gimplify.c (maybe_with_size_expr): Likewise.
1312         * print-tree.c (print_node): Likewise.
1313         * tree-data-ref.c (data_ref_compare_tree): Likewise.
1314         * tree-pretty-print.c (dump_generic_node): Likewise.
1315         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1316         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
1317         * tree-vrp.c (compare_values_warnv): Likewise.
1318         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
1319         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
1320         (force_expr_to_var_cost): Likewise.
1321         * tree-ssa-loop.c (for_each_index): Likewise.
1322         * fold-const.h (build_invariant_address, size_int_kind): Take a
1323         poly_int64 instead of a HOST_WIDE_INT.
1324         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
1325         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
1326         POLY_INT_CST.
1327         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
1328         (int_const_binop_2): New function, split out from...
1329         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
1330         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
1331         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
1332         * gimple-ssa-strength-reduction.c (slsr_process_add)
1333         (slsr_process_mul): Check for INTEGER_CSTs before using them
1334         as candidates.
1335         * stor-layout.c (bits_from_bytes): New function.
1336         (bit_from_pos): Use it.
1337         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
1338         by BITS_PER_UNIT to get the TYPE_SIZE.
1339         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
1340         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
1341
1342 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1343             Alan Hayward  <alan.hayward@arm.com>
1344             David Sherwood  <david.sherwood@arm.com>
1345
1346         * doc/rtl.texi (const_poly_int): Document.  Also document the
1347         rtl sharing behavior.
1348         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
1349         * rtl.h (const_poly_int_def): New struct.
1350         (rtx_def::u): Add a cpi field.
1351         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
1352         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
1353         (wi::rtx_to_poly_wide_ref): New typedef
1354         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
1355         (poly_int_rtx_p): New functions.
1356         (trunc_int_for_mode): Declare a poly_int64 version.
1357         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1358         (immed_wide_int_const): Take a poly_wide_int_ref rather than
1359         a wide_int_ref.
1360         (strip_offset): Declare.
1361         (strip_offset_and_add): New function.
1362         * rtl.def (CONST_POLY_INT): New rtx code.
1363         * rtl.c (rtx_size): Handle CONST_POLY_INT.
1364         (shared_const_p): Use poly_int_rtx_p.
1365         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
1366         HOST_WIDE_INT.
1367         (gen_int_shift_amount): Likewise.
1368         * emit-rtl.c (const_poly_int_hasher): New class.
1369         (const_poly_int_htab): New variable.
1370         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
1371         (const_poly_int_hasher::hash): New function.
1372         (const_poly_int_hasher::equal): Likewise.
1373         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
1374         (immed_wide_int_const): Rename to...
1375         (immed_wide_int_const_1): ...this and make static.
1376         (immed_wide_int_const): New function, taking a poly_wide_int_ref
1377         instead of a wide_int_ref.
1378         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
1379         (gen_lowpart_common): Handle CONST_POLY_INT.
1380         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
1381         * cselib.c (cselib_hash_rtx): Likewise.
1382         * dwarf2out.c (const_ok_for_output_1): Likewise.
1383         * expr.c (convert_modes): Likewise.
1384         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
1385         * rtlhash.c (add_rtx): Likewise.
1386         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
1387         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1388         Handle existing CONST_POLY_INT rtxes.
1389         * expmed.h (expand_shift): Take a poly_int64 instead of a
1390         HOST_WIDE_INT.
1391         * expmed.c (expand_shift): Likewise.
1392         * rtlanal.c (strip_offset): New function.
1393         (commutative_operand_precedence): Give CONST_POLY_INT the same
1394         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
1395         and CONST_INT.
1396         * rtl-tests.c (const_poly_int_tests): New struct.
1397         (rtl_tests_c_tests): Use it.
1398         * simplify-rtx.c (simplify_const_unary_operation): Handle
1399         CONST_POLY_INT.
1400         (simplify_const_binary_operation): Likewise.
1401         (simplify_binary_operation_1): Fold additions of symbolic constants
1402         and CONST_POLY_INTs.
1403         (simplify_subreg): Handle extensions and truncations of
1404         CONST_POLY_INTs.
1405         (simplify_const_poly_int_tests): New struct.
1406         (simplify_rtx_c_tests): Use it.
1407         * wide-int.h (storage_ref): Add default constructor.
1408         (wide_int_ref_storage): Likewise.
1409         (trailing_wide_ints): Use GTY((user)).
1410         (trailing_wide_ints::operator[]): Add a const version.
1411         (trailing_wide_ints::get_precision): New function.
1412         (trailing_wide_ints::extra_size): Likewise.
1413
1414 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1415             Alan Hayward  <alan.hayward@arm.com>
1416             David Sherwood  <david.sherwood@arm.com>
1417
1418         * emit-rtl.h (gen_int_shift_amount): Declare.
1419         * emit-rtl.c (gen_int_shift_amount): New function.
1420         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
1421         instead of GEN_INT.
1422         * calls.c (shift_return_value): Likewise.
1423         * cse.c (fold_rtx): Likewise.
1424         * dse.c (find_shift_sequence): Likewise.
1425         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
1426         (expand_shift, expand_smod_pow2): Likewise.
1427         * lower-subreg.c (shift_cost): Likewise.
1428         * optabs.c (expand_superword_shift, expand_doubleword_mult)
1429         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
1430         (expand_vec_perm_var): Likewise.
1431         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1432         (simplify_binary_operation_1): Likewise.
1433         * combine.c (try_combine, find_split_point, force_int_to_mode)
1434         (simplify_shift_const_1, simplify_shift_const): Likewise.
1435         (change_zero_ext): Likewise.  Use simplify_gen_binary.
1436
1437 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1438
1439         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
1440
1441 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1442
1443         * doc/invoke.texi (ARM Options): Document accepted extension options
1444         for -march=armv8.3-a.
1445
1446 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
1447
1448         PR target/83105
1449         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
1450         or --with-float=softfp, set the default CPU to arm10e.
1451
1452 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
1453
1454         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
1455         * config/visium/predicates.md (const_shift_operand): Likewise.
1456         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
1457         (visium_legitimize_reload_address): Likewise.
1458
1459 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1460
1461         PR target/82975
1462         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
1463
1464 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
1465
1466         PR c++/83490
1467         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
1468
1469 2017-12-20  Julia Koval  <julia.koval@intel.com>
1470
1471         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
1472         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
1473         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
1474         * config.gcc: Include vpclmulqdqintrin.h.
1475         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
1476         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
1477         -mvpclmulqdq.
1478         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
1479         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
1480         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
1481         * config/i386/i386.c (isa2_opts): Add -mcx16.
1482         (isa_opts): Add -mpclmulqdq, remove -mcx16.
1483         (ix86_option_override_internal): Move mcx16 to flags2.
1484         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
1485         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
1486         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
1487         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
1488         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
1489         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
1490         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
1491         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
1492         * doc/invoke.texi: Add -mvpclmulqdq.
1493
1494 2017-12-20  Tom de Vries  <tom@codesourcery.com>
1495
1496         PR middle-end/83423
1497         * config/i386/i386.c (ix86_static_chain): Move DECL_STATIC_CHAIN test ...
1498         * calls.c (rtx_for_static_chain): ... here.  New function.
1499         * calls.h (rtx_for_static_chain): Declare.
1500         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
1501         instead of targetm.calls.static_chain.
1502         * df-scan.c (df_get_entry_block_def_set): Same.
1503
1504 2017-12-19  Tom de Vries  <tom@codesourcery.com>
1505
1506         PR tree-optimization/83493
1507         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
1508         and lb.
1509
1510 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1511
1512         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
1513         inform with hardcoded english plural handling.
1514
1515 2017-12-18  Jeff Law  <law@redhat.com>
1516
1517         PR tree-optimization/83477
1518         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
1519         a non-virtual PHI, always push a new range.
1520
1521 2017-12-19  Martin Sebor  <msebor@redhat.com>
1522
1523         PR middle-end/77608
1524         * builtins.c (compute_objsize): Handle non-constant offsets.
1525
1526 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1527
1528         PR tree-optimization/83444
1529         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
1530         character load case, if get_stridx on MEM_REF's operand doesn't
1531         look usable, retry with get_addr_stridx.
1532
1533 2017-12-19  Alexandre Oliva <aoliva@redhat.com>
1534
1535         PR debug/83422
1536         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
1537         (variable_tracking_main_1): Keep markers even when VTA fails.
1538
1539         PR bootstrap/83396
1540         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
1541         even if there are markers before it.
1542         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
1543
1544 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1545
1546         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
1547         typical order conditions.
1548         * sel-sched.c (extract_new_fences_from): Likewise.
1549         * config/visium/constraints.md (J, K, L): Likewise.
1550         * config/visium/predicates.md (const_shift_operand): Likewise.
1551         * config/visium/visium.c (visium_legitimize_address,
1552         visium_legitimize_reload_address): Likewise.
1553         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
1554         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
1555         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
1556         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
1557         SET_DUMP_DETAIL): Likewise.
1558         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
1559         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
1560         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
1561         avr_set_core_architecture, avr_set_current_function,
1562         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
1563         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
1564         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
1565         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
1566         avr_map_decompose, avr_fold_builtin): Likewise.
1567         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
1568         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
1569         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
1570         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
1571         * config/m32c/m32c.c (m32c_conditional_register_usage,
1572         m32c_address_cost): Likewise.
1573         * config/m32c/predicates.md (shiftcount_operand,
1574         longshiftcount_operand): Likewise.
1575         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1576         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
1577         can_use_cdx_ldstw): Likewise.
1578         * config/nios2/nios2.h (CDX_REG_P): Likewise.
1579         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
1580         Likewise.
1581         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
1582         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
1583         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
1584         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
1585         * config/vax/vax.c (adjacent_operands_p): Likewise.
1586         * config/ft32/constraints.md (L, b, KA): Likewise.
1587         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
1588         Likewise.
1589         * cfgexpand.c (expand_stack_alignment): Likewise.
1590         * gcse.c (insert_expr_in_table): Likewise.
1591         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
1592         * cgraphunit.c (cgraph_node::expand): Likewise.
1593         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
1594         * emit-rtl.c (add_insn): Likewise.
1595         * input.c (dump_location_info): Likewise.
1596         * passes.c (NEXT_PASS): Likewise.
1597         * read-rtl-function.c (parse_note_insn_name,
1598         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
1599         Likewise.
1600         * sched-rgn.c (sched_rgn_init): Likewise.
1601         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
1602         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
1603         if_then_else_cond, simplify_shift_const_1, simplify_comparison): Likewise.
1604         * explow.c (eliminate_constant_term): Likewise.
1605         * final.c (leaf_renumber_regs_insn): Likewise.
1606         * cfgrtl.c (print_rtl_with_bb): Likewise.
1607         * genhooks.c (emit_init_macros): Likewise.
1608         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
1609         * tree-data-ref.c (conflict_fn): Likewise.
1610         * selftest.c (assert_streq): Likewise.
1611         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
1612         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
1613         fold_binary_loc, multiple_of_p): Likewise.
1614         * reload.c (push_reload, find_equiv_reg): Likewise.
1615         * et-forest.c (et_nca, et_below): Likewise.
1616         * dbxout.c (dbxout_symbol_location): Likewise.
1617         * reorg.c (relax_delay_slots): Likewise.
1618         * dojump.c (do_compare_rtx_and_jump): Likewise.
1619         * gengtype-parse.c (type): Likewise.
1620         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
1621         simplify_const_relational_operation): Likewise.
1622         * reload1.c (do_output_reload): Likewise.
1623         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
1624         * gengtype.c (type_for_name): Likewise.
1625         * gimple-ssa-sprintf.c (format_directive): Likewise.
1626
1627 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1628
1629         PR target/82975
1630         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
1631         accessing it.  Adjust comment.
1632
1633 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1634
1635         PR middle-end/81914
1636         * predict.c (zero_one_minusone): New function.
1637         (apply_return_prediction): Avoid return prediction for functions
1638         returning only -1, 0 and 1 values, unless they only return -1 and 0
1639         or 0 and 1.
1640
1641 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
1642
1643         * config/arc/arc.c (legitimate_scaled_address_p): Clean
1644         fall-through warning.
1645         (arc_compute_frame_size): Remove unused variables.
1646         (arc_print_operand): Fix fprintif format.
1647         (arc_can_follow_jump): Clean fall-through warning.
1648
1649 2017-12-19  Marek Polacek  <polacek@redhat.com>
1650
1651         PR c++/83489
1652         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
1653         on an error node.                                                    
1654
1655 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
1656
1657         * config/arc/arc.c (overriderregs): New variable.
1658         (arc_override_options): Track fixed/call saved/call options.
1659         (arc_conditional_register_usage): Check against overrideregs
1660         variable whenever we change register properties.
1661
1662 2017-12-19  Nathan Sidwell  <nathan@acm.org>
1663
1664         * opts.c (finish_options): Don't prefix dump_base_name if it
1665         already contains directories.
1666
1667 2017-12-19  Martin Liska  <mliska@suse.cz>
1668
1669         PR rtl-optimization/82675
1670         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
1671         more element in sbitmap.
1672
1673 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
1674
1675         * gimplify.c (gimplify_expr): Use error_operand_p.
1676
1677 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1678
1679         PR target/83387
1680         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
1681         multilib.
1682
1683 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
1684
1685         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
1686         the jump is to a label.
1687
1688 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1689
1690         PR tree-optimization/83444
1691         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
1692         character loads.
1693
1694         PR ipa/82801
1695         PR ipa/83346
1696         * ipa-inline.c (flatten_remove_node_hook): New function.
1697         (ipa_inline): Keep only nodes with flatten attribute at the end of
1698         the array in the order from ipa_reverse_postorder, only walk that
1699         portion of array for flattening, if there is more than one such
1700         node, temporarily register a removal hook and ignore removed nodes.
1701
1702         PR tree-optimization/80631
1703         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
1704         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
1705         IFN_REDUC_MAX or IFN_REDUC_MIN.
1706
1707 2017-12-18  Jeff Law  <law@redhat.com>
1708
1709         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
1710         record symbolic equivalences from backedges in the CFG.
1711
1712         Revert
1713         2017-11-19  Jeff Law  <law@redhat.com>
1714
1715         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
1716         of degenerates resulting from ignoring an edge.
1717
1718 2017-12-18  Martin Sebor  <msebor@redhat.com>
1719
1720         PR middle-end/83373
1721         PR tree-optimization/78450
1722         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
1723         (handle_builtin_strlen): Call it.
1724
1725 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
1726
1727         PR rtl-optimization/83424
1728         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
1729
1730 2017-12-18  Marek Polacek  <polacek@redhat.com>
1731
1732         PR middle-end/83463
1733         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
1734         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
1735         values.
1736
1737 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
1738
1739         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
1740         (umaddsidi4, umaddsidi_split): Likewise.
1741
1742 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
1743
1744         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
1745         constants.
1746
1747 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1748
1749         PR target/83420
1750         * config/s390/s390.c (s390_option_override): Avoid strncpy.
1751
1752 2017-12-18  Richard Biener  <rguenther@suse.de>
1753
1754         PR tree-optimization/81877
1755         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
1756         (outermost_indep_loop): Adjust.
1757         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
1758         (can_sm_ref_p): Adjust.
1759
1760 2017-12-18  Richard Biener  <rguenther@suse.de>
1761
1762         PR middle-end/77291
1763         * tree.c (array_at_struct_end_p): Return true if the underlying
1764         object has space for at least one element in excess of what
1765         the array domain specifies.
1766
1767 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1768
1769         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
1770         example to avoid overfull hbox.
1771         * doc/invoke.texi (Option Summary): Add missing @gol.
1772         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid 
1773         overfull hbox.
1774         
1775 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1776             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1777
1778         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
1779         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
1780         (AArch64 Options): Document -mverbose-cost-dump.
1781         (ARM Options): Likewise, plus -mflip-thumb.
1782
1783 2017-12-17  Martin Sebor  <msebor@redhat.com>
1784
1785         PR bootstrap/83446
1786         * gimple-ssa-warn-restrict.c
1787         (builtin_memref::offset_out_of_bounds): Correct the handling of
1788         anti-ranges.
1789
1790 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1791
1792         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
1793
1794 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
1795
1796         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
1797
1798 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
1799
1800         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
1801         latencies.
1802
1803 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
1804
1805         * doc/invoke.texi: Fix some typos.
1806
1807 2017-12-16  Martin Sebor  <msebor@redhat.com>
1808
1809         PR tree-optimization/78918
1810         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
1811         * builtins.c (check_sizes): Rename...
1812         (check_access): ...to this.  Rename function arguments for clarity.
1813         (check_memop_sizes): Adjust names.
1814         (expand_builtin_memchr, expand_builtin_memcpy): Same.
1815         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
1816         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
1817         (check_strncat_sizes, expand_builtin_strncat): Same.
1818         (expand_builtin_strncpy, expand_builtin_memset): Same.
1819         (expand_builtin_bzero, expand_builtin_memcmp): Same.
1820         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
1821         (maybe_emit_sprintf_chk_warning): Same.
1822         (expand_builtin_strcpy): Adjust.
1823         (expand_builtin_stpcpy): Same.
1824         (expand_builtin_with_bounds): Detect out-of-bounds accesses
1825         in pointer-checking forms of memcpy, memmove, and mempcpy.
1826         (gcall_to_tree_minimal, max_object_size): Define new functions.
1827         * builtins.h (max_object_size): Declare.
1828         * calls.c (alloc_max_size): Call max_object_size instead of
1829         hardcoding ssizetype limit.
1830         (get_size_range): Handle new argument.
1831         * calls.h (get_size_range): Add a new argument.
1832         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
1833         * doc/invoke.texi (-Wrestrict): Adjust, add example.
1834         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
1835         operations.
1836         (gimple_fold_builtin_memory_chk): Same.
1837         (gimple_fold_builtin_stxcpy_chk): New function.
1838         * gimple-ssa-warn-restrict.c: New source.
1839         * gimple-ssa-warn-restrict.h: New header.
1840         * gimple.c (gimple_build_call_from_tree): Propagate location.
1841         * passes.def (pass_warn_restrict): Add new pass.
1842         * tree-pass.h (make_pass_warn_restrict): Declare.
1843         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
1844         operations.
1845         (handle_builtin_strcat): Same.
1846         (strlen_optimize_stmt): Rename...
1847         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
1848         stpncpy, strncpy, and their checking forms.
1849
1850 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
1851
1852         PR rtl-optimization/82849
1853         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
1854         and get_max_loop_iterations_int.
1855
1856 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1857             Alan Hayward  <alan.hayward@arm.com>
1858             David Sherwood  <david.sherwood@arm.com>
1859
1860         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
1861         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
1862         size as a poly_uint64.
1863         (mode_for_vector, mode_for_int_vector): Take the number of vector
1864         elements as a poly_uint64.
1865         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
1866         size as a poly_uint64.
1867         (mode_for_vector, mode_for_int_vector): Take the number of vector
1868         elements as a poly_uint64.
1869
1870 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1871             Alan Hayward  <alan.hayward@arm.com>
1872             David Sherwood  <david.sherwood@arm.com>
1873
1874         * machmode.h (MACRO_MODE): New macro.
1875         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
1876         * targhooks.c (default_libcall_value, default_secondary_reload)
1877         (default_memory_move_cost, default_register_move_cost)
1878         (default_class_max_nregs): Likewise.
1879
1880 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1881             Alan Hayward  <alan.hayward@arm.com>
1882             David Sherwood  <david.sherwood@arm.com>
1883
1884         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
1885         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
1886         target C file.
1887         * genautomata.c (main): Likewise.
1888         * genconditions.c (write_header): Likewise.
1889         * genemit.c (main): Likewise.
1890         * genextract.c (print_header): Likewise.
1891         * genopinit.c (main): Likewise.
1892         * genoutput.c (output_prologue): Likewise.
1893         * genpeep.c (main): Likewise.
1894         * genpreds.c (write_insn_preds_c): Likewise.
1895         * genrecog.c (writer_header): Likewise.
1896         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
1897         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
1898         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
1899         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
1900         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
1901         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
1902         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
1903         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
1904         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
1905         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
1906         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
1907         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
1908         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
1909         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
1910         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
1911         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
1912         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
1913         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
1914         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
1915         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
1916         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
1917         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
1918         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
1919         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
1920         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
1921         * config/darwin.c (IN_TARGET_CODE): Likewise.
1922         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
1923         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
1924         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
1925         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
1926         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
1927         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
1928         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
1929         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
1930         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
1931         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
1932         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
1933         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
1934         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
1935         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
1936         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
1937         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
1938         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
1939         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
1940         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
1941         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
1942         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
1943         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
1944         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
1945         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
1946         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
1947         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
1948         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
1949         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
1950         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
1951         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
1952         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
1953         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
1954         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
1955         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
1956         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
1957         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
1958         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
1959         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
1960         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
1961         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
1962         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
1963         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
1964         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
1965         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
1966         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
1967         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
1968         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
1969         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
1970         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
1971         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
1972         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
1973         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
1974         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
1975         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
1976         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
1977         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
1978         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
1979         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
1980         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
1981         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
1982         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1983         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
1984         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
1985         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
1986         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
1987         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
1988         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
1989         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
1990         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
1991         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
1992         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
1993         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1994         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
1995         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
1996         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
1997         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
1998         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
1999         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
2000         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
2001         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
2002         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
2003         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
2004         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
2005         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
2006         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
2007         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
2008         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
2009         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
2010         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
2011         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
2012         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
2013         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
2014         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
2015         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
2016         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
2017         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
2018         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
2019         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
2020         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
2021         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
2022         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
2023         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
2024         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
2025         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
2026         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
2027         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
2028
2029 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2030             Alan Hayward  <alan.hayward@arm.com>
2031             David Sherwood  <david.sherwood@arm.com>
2032
2033         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
2034         checks for MEM_REF.
2035
2036 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2037             Alan Hayward  <alan.hayward@arm.com>
2038             David Sherwood  <david.sherwood@arm.com>
2039
2040         * doc/generic.texi (VEC_SERIES_EXPR): Document.
2041         * doc/md.texi (vec_series@var{m}): Document.
2042         * tree.def (VEC_SERIES_EXPR): New tree code.
2043         * tree.h (build_vec_series): Declare.
2044         * tree.c (build_vec_series): New function.
2045         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
2046         * tree-pretty-print.c (dump_generic_node): Likewise.
2047         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
2048         * tree-inline.c (estimate_operator_cost): Likewise.
2049         * expr.c (expand_expr_real_2): Likewise.
2050         * optabs-tree.c (optab_for_tree_code): Likewise.
2051         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
2052         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
2053         * expmed.c (make_tree): Handle VEC_SERIES.
2054         * optabs.def (vec_series_optab): New optab.
2055         * optabs.h (expand_vec_series_expr): Declare.
2056         * optabs.c (expand_vec_series_expr): New function.
2057         * tree-vect-generic.c (expand_vector_operations_1): Check that
2058         the operands also have vector type.
2059
2060 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2061             Alan Hayward  <alan.hawyard@arm.com>
2062             David Sherwood  <david.sherwood@arm.com>
2063
2064         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
2065         (VEC_COND_EXPR): Add missing @tindex.
2066         * doc/md.texi (vec_duplicate@var{m}): Document.
2067         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
2068         * tree.c (build_vector_from_val): Add stubbed-out handling of
2069         variable-length vectors, using VEC_DUPLICATE_EXPR.
2070         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
2071         * cfgexpand.c (expand_debug_expr): Likewise.
2072         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
2073         * tree-inline.c (estimate_operator_cost): Likewise.
2074         * tree-pretty-print.c (dump_generic_node): Likewise.
2075         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
2076         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
2077         (test_vec_duplicate_folding): New function.
2078         (fold_const_c_tests): Call it.
2079         * optabs.def (vec_duplicate_optab): New optab.
2080         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
2081         * optabs.h (expand_vector_broadcast): Declare.
2082         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
2083         vec_duplicate_optab.
2084         * expr.c (store_constructor): Try using vec_duplicate_optab for
2085         uniform vectors.
2086         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
2087
2088 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
2089
2090         PR target/83358
2091         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
2092         div/mod latencies a bit.
2093
2094 2017-12-15  Jeff Law  <law@redhat.com>
2095
2096         PR tree-optimization/36550
2097         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
2098         (mark_threaded_blocks): Rewrite code to avoid block copying when
2099         optimizing for size.  Don't pessimize blocks which will be
2100         copied, but all the statements will be dead.
2101
2102 2017-12-15  Alexandre Oliva <aoliva@redhat.com>
2103
2104         PR tree-optimization/81165
2105         * tree-ssa-threadupdate.c (uses_in_bb): New.
2106         (estimate_threading_killed_stmts): New.
2107         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
2108         * tree-ssa-threadedge.c 
2109         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
2110         when its hit.
2111
2112 2017-12-15  Jeff Law  <law@redhat.com>
2113
2114         PR tree-optimization/83410
2115         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
2116         threads when parallelizing loops.
2117
2118 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
2119
2120         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
2121         handler fields.
2122         * config/alpha/alpha.c (vms_attribute_table): Swap
2123         affects_type_identity and handler fields, adjust comments.
2124         * config/mips/mips.c (mips_attribute_table): Likewise.
2125         * config/visium/visium.c (visium_attribute_table): Likewise.
2126         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
2127         * config/microblaze/microblaze.c (microblaze_attribute_table):
2128         Likewise.
2129         * config/spu/spu.c (spu_attribute_table): Likewise.
2130         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2131         * config/arc/arc.c (arc_attribute_table): Likewise.
2132         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
2133         * config/v850/v850.c (v850_handle_interrupt_attribute,
2134         v850_handle_data_area_attribute): Formatting fixes.
2135         (v850_attribute_table): Swap affects_type_identity and handler
2136         fields, adjust comments.
2137         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2138         * config/arm/arm.c (arm_attribute_table): Likewise.
2139         * config/avr/avr.c (avr_attribute_table): Likewise.
2140         * config/s390/s390.c (s390_attribute_table): Likewise.
2141         * config/sh/sh.c (sh_attribute_table): Likewise.
2142         * config/i386/i386.c (ix86_handle_cconv_attribute,
2143         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
2144         (ix86_attribute_table): Swap affects_type_identity and handler
2145         fields, adjust comments.
2146         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2147         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2148         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
2149         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
2150         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
2151         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2152         * config/rx/rx.c (rx_attribute_table): Likewise.
2153         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
2154         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2155         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
2156         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
2157         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2158         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
2159         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2160         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2161         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2162         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2163         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
2164         exclude.
2165         * attribs.c (empty_attribute_table): Swap affects_type_identity and
2166         handler fields.
2167         (register_scoped_attributes, decl_attributes): Formatting fixes.
2168
2169         PR tree-optimization/83269
2170         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
2171         subtraction in arg0's type if type is signed and arg0 is unsigned.
2172         Formatting fix.
2173
2174         PR sanitizer/81281
2175         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
2176         convert? on @0 instead of convert.  Check type of @1, not @0.
2177         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
2178         convert? on @0 instead of convert.  Check type of @1, not @0.
2179         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
2180         only optimize if either both @1 and @2 types are narrower
2181         precision, or both are wider or equal precision, and in the former
2182         case only if both have undefined overflow.
2183
2184 2017-12-15  Richard Biener  <rguenther@suse.de>
2185
2186         PR lto/83388
2187         * internal-fn.def (IFN_NOP): Add.
2188         * internal-fn.c (expand_NOP): Do nothing.
2189         * lto-streamer-in.c (input_function): Instead of removing
2190         sanitizer calls replace them with IFN_NOP calls.
2191
2192 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
2193             Alan Hayward  <alan.hayward@arm.com>
2194             David Sherwood  <david.sherwood@arm.com>
2195
2196         * dse.c (store_info, read_info_type): Replace begin and end with
2197         offset and width.
2198         (print_range): New function.
2199         (set_all_positions_unneeded, any_positions_needed_p)
2200         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
2201         accordingly.
2202         (record_store): Likewise.  Optimize the case in which all positions
2203         are unneeded.
2204         (get_stored_val): Replace read_begin and read_end with read_offset
2205         and read_width.
2206         (replace_read): Update call accordingly.
2207
2208 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
2209
2210         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
2211         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
2212         (loop_cand::loop_cand): Initialize above members.
2213         (loop_cand::supported_operations): Delete.
2214         (loop_cand::can_interchange_p): Inline above function.
2215         (loop_cand::classify_simple_reduction): Record number of constant
2216         initialized simple reductions.
2217         (should_interchange_loops): New parameters.  Check stmt cost of loops
2218         to be interchange.
2219         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
2220         Update call to should_interchange_loops.
2221         (should_interchange_loop_nest): Update call to
2222         should_interchange_loops.
2223
2224 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
2225
2226         PR target/66488
2227         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
2228         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
2229         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
2230
2231 2017-12-15  Julia Koval  <julia.koval@intel.com>
2232
2233         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
2234         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
2235         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
2236         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
2237         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
2238
2239 2017-12-15  Julia Koval  <julia.koval@intel.com>
2240
2241         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
2242         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
2243         * config/i386/sse.md (vaesenc_<mode>): New pattern.
2244         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
2245         _mm_aesenc_epi128): New intrinsics.
2246
2247 2017-12-15  Julia Koval  <julia.koval@intel.com>
2248
2249         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
2250         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
2251         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
2252         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
2253         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
2254
2255 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2256
2257         * gimple-ssa-strength-reduction.c (analyze_increments):
2258         Distinguish replacement costs for constant strides from those for
2259         unknown strides.
2260
2261 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2262
2263         * var-tracking.c (variable_tracking_main_1): Formatting fix.
2264
2265 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2266
2267         * doc/invoke.texi: Document -Wcast-function-type.
2268         * recog.h (stored_funcptr): Change signature.
2269         * tree-dump.c (dump_node): Avoid warning.
2270         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
2271
2272 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
2273
2274         PR middle_end/79538
2275         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
2276         array.
2277
2278 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
2279
2280         PR tree-optimization/83312
2281         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
2282         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
2283         "val" param, and to cope with arbitrary basic blocks.
2284         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
2285         handle NULL_TREE for "val", dropping "bb" param.
2286         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
2287         drop "bb" param.  Handle NULL_TREE for "val".
2288         (find_case_label_for_value): Make "switch_stmt" param const.
2289         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
2290         of dom_walker.
2291         (vrp_prop::check_all_array_refs): Reimplement as...
2292         (check_array_bounds_dom_walker::before_dom_children): ...this new
2293         vfunc.  Replace linear search through BB block list, excluding
2294         those with non-executable in-edges via dominator walk.
2295
2296 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2297
2298         * config/arm/arm.opt (mverbose-cost-dump): New option.
2299         * config/arm/arm.c (arm_rtx_costs): Use it.
2300
2301 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
2302
2303         PR bootstrap/83396
2304         * reload1.c (emit_input_reload_insns): Skip debug markers.
2305
2306 2017-12-14  Alexandre Oliva <aoliva@redhat.com>
2307
2308         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
2309         for its nop_endbr.
2310
2311         PR bootstrap/83396
2312         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
2313         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
2314         * config/sh/sh.c: Skip debug insns besides notes.
2315         * config/sh/sh.md: Likewise.
2316         * config/sh/sh_treg_combine.cc: Likewise.
2317         * config/sh/sync.md: Likewise.
2318
2319 2017-12-14  Tom de Vries  <tom@codesourcery.com>
2320
2321         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2322         Add item for weak_undefined.
2323
2324 2017-12-14  Richard Biener  <rguenther@suse.de>
2325
2326         PR tree-optimization/67842
2327         * sese.h (bb_in_region): Remove #if 0'ed code.
2328
2329 2017-12-14  Richard Biener  <rguenther@suse.de>
2330
2331         PR tree-optimization/83326
2332         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
2333         may_be_zero parameter and handle it by not marking the first
2334         peeled copy as not exiting the loop.
2335         (try_peel_loop): Likewise.
2336         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
2337         to handle the case of constant or zero iterations and perform
2338         loop header copying on-the-fly.
2339
2340 2017-12-14  Richard Biener  <rguenther@suse.de>
2341
2342         PR tree-optimization/83418
2343         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
2344         Instead of asserting we don't get unfolded comparisons deal with
2345         them.
2346
2347 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2348
2349         PR bootstrap/83396
2350         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
2351         basic blocks.  Assert debug bind insns don't appear outside of bbs,
2352         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
2353         bb.  Simplify.
2354
2355         PR tree-optimization/83198
2356         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
2357         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
2358         value if arg is a REAL_CST with incompatible type.
2359
2360 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
2361             Bin Cheng  <bin.cheng@arm.com>
2362
2363         PR target/81228
2364         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
2365         to CCFPEmode.
2366         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
2367         LTGT.
2368
2369 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2370
2371         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
2372         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
2373
2374 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
2375             Alan Hayward  <alan.hayward@arm.com>
2376             David Sherwood  <david.sherwood@arm.com>
2377
2378         * poly-int.h: New file.
2379         * poly-int-types.h: Likewise.
2380         * coretypes.h: Include them.
2381         (POLY_INT_CONVERSION): Define.
2382         * target.def (estimated_poly_value): New hook.
2383         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
2384         * doc/tm.texi: Regenerate.
2385         * doc/poly-int.texi: New file.
2386         * doc/gccint.texi: Include it.
2387         * doc/rtl.texi: Describe restrictions on subreg modes.
2388         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
2389         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
2390         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
2391         * targhooks.h (default_estimated_poly_value): Declare.
2392         * targhooks.c (default_estimated_poly_value): New function.
2393         * target.h (estimated_poly_value): Likewise.
2394         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
2395         (wi::unary_traits): Delete.
2396         (wi::binary_traits::signed_shift_result_type): Define for
2397         offset_int << HOST_WIDE_INT, etc.
2398         (generic_wide_int::operator <<=): Define for all types and use
2399         wi::lshift instead of <<.
2400         (wi::hwi_with_prec): Add a default constructor.
2401         (wi::ints_for): New class.
2402         (operator <<): Define for all wide-int types.
2403         (operator /): New function.
2404         (operator %): Likewise.
2405         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
2406         (ASSERT_MAYBE_NE_AT): New macros.
2407
2408 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
2409             Dominik Vogt  <vogt@linux.vnet.ibm.com>
2410
2411         PR middle-end/78468
2412         * emit-rtl.c (init_emit): Remove ??? comment.
2413         * explow.c (get_dynamic_stack_size): Take known alignment of stack
2414         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
2415         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
2416         alignment of 3 virtual registers to BITS_PER_WORD.
2417
2418         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
2419
2420 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
2421
2422         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
2423         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
2424
2425 2017-12-13  Alexandre Oliva <aoliva@redhat.com>
2426
2427         PR bootstrap/83396
2428         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
2429
2430 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
2431
2432         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
2433         with the exception of debug begin stmt markers appear before
2434         labels.
2435
2436         PR bootstrap/83396
2437         * final.c (rest_of_handle_final): Call variable_tracking_main only
2438         if !flag_var_tracking.
2439
2440 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
2441             Jakub Jelinek  <jakub@redhat.com>
2442
2443         PR bootstrap/83396
2444         PR debug/83391
2445         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
2446         labels debug stmts that can only appear after labels.
2447
2448 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
2449
2450         PR rtl-optimization/82398
2451         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
2452         EXPR_USEFULNESS in priority comparison.
2453
2454 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
2455
2456         PR rtl-optimization/83393
2457         * combine.c (move_deaths): If reg_stat points to a too new insn in
2458         last_death, do not use it: find the proper insn instead.
2459
2460 2017-12-12  Jeff Law  <law@redhat.com>
2461
2462         PR tree-optimization/83298
2463         PR tree-optimization/83362
2464         PR tree-optimization/83383
2465         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
2466         push_value_range a public interface.  Add new argument to
2467         record_ranges_from_stmt.
2468         * gimple-ssa-evrp-analyze.c
2469         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
2470         Update comments.  Handle recording temporary equivalences.
2471         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
2472         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
2473         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
2474         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
2475         gimple-ssa-evrp-analyze.h.
2476         (record_temporary_equivalences_from_phis): Add new argument.  When
2477         the PHI arg is an SSA_NAME, set the result's range to the range
2478         of the PHI arg.
2479         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
2480         from statements too.
2481         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
2482         Pass it down to children as needed.
2483         (thread_outgoing_edges): Likewise.
2484         (thread_across_edge): Likewise.   Push/pop range state as needed.
2485         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
2486
2487 2017-12-12  Julia Koval  <julia.koval@intel.com>
2488
2489         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
2490         (PTA_CANNONLAKE): Remove PTA_CLWB.
2491
2492 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2493
2494         PR target/83332
2495         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
2496         (vcondv2div2df): Likewise.
2497         (vconduv2dfv2di): Likewise.
2498
2499 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2500
2501         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
2502         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
2503         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
2504         ATTR_MATHFN_FPROUNDING_ERRNO.
2505
2506 2017-12-12  Richard Biener  <rguenther@suse.de>
2507
2508         PR tree-optimization/83385
2509         * graphite-scop-detection.c (get_order, order): Remove.
2510         (bb_to_rpo): New global.
2511         (cmp_pbbs): Adjust.
2512         (build_scops): Sort pbbs in RPO order.
2513
2514 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
2515
2516         * combine.c (simplify_set): Do not transform subregs to zero_extends
2517         if the destination mode is a vector mode.
2518
2519 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2520
2521         PR tree-optimization/83359
2522         * tree-cfg.h (fold_loop_internal_call): Declare.
2523         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
2524         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
2525         (find_loop_dist_alias): New function.
2526         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
2527         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
2528         calls.
2529
2530         PR tree-optimization/80631
2531         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
2532         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
2533         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
2534         hardcoding zero as the value if COND_EXPR is never true.  For
2535         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
2536         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
2537         hardcoding MAX_EXPR as the reduction operation.
2538         (is_nonwrapping_integer_induction): Allow negative step.
2539         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
2540         vect_create_epilog_for_reduction, if no value is suitable, don't
2541         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
2542
2543 2017-12-12  Richard Biener  <rguenther@suse.de>
2544
2545         PR tree-optimization/81889
2546         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
2547         range info from the non-wrapping IV instead of just the range
2548         of the type.
2549
2550 2017-12-12  Julia Koval  <julia.koval@intel.com>
2551
2552         * config.gcc: Add vaesintrin.h.
2553         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
2554         New type.
2555         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
2556         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
2557         New builtins.
2558         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
2559         * config/i386/immintrin.h: Include vaesintrin.h.
2560         * config/i386/sse.md (vaesdec_<mode>): New pattern.
2561         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
2562         _mm_aesdec_epi128): New intrinsics.
2563
2564 2017-12-12  Julia Koval  <julia.koval@intel.com>
2565
2566         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
2567         OPTION_MASK_ISA_VAES_UNSET): New.
2568         (ix86_handle_option): Handle -mvaes.
2569         * config/i386/cpuid.h: Define bit_VAES.
2570         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
2571         * config/i386/i386-c.c (__VAES__): New.
2572         * config/i386/i386.c (ix86_target_string): Add -mvaes.
2573         (ix86_valid_target_attribute_inner_p): Ditto.
2574         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
2575         * config/i386/i386.opt: Add -mvaes.
2576         * doc/invoke.texi: Ditto.
2577
2578 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
2579
2580         * debug.h (gcc_debug_hooks): Add inline_entry.
2581         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2582         * debug.c (do_nothing_debug_hooks): Likewise.
2583         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2584         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2585         (dwarf2_lineno_debug_hooks): Likewise.
2586
2587         * common.opt (gstatement-frontiers): New, setting
2588         debug_nonbind_markers_p.
2589         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
2590         * toplev.c (process_options): Autodetect value for debug statement
2591         frontiers option.
2592         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
2593         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
2594
2595         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
2596         markers.  Integrate source bind into debug stmt expand loop.
2597         (pass_expand::execute): Check debug marker limit.  Avoid deep
2598         TER and expand debug locations for debug bind insns only.
2599         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
2600         followed by them.
2601         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
2602         * final.c (reemit_insn_block_notes): Take current block from
2603         nonbind markers.  Declare note where it's first set.
2604         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
2605         begin stmt markers if enabled.
2606         (notice_source_line): Handle nonbind markers.  Fail if their
2607         location is unknown or that of builtins.
2608         (rest_of_handle_final): Convert begin stmt markers to notes if
2609         var-tracking didn't run.
2610         (rest_of_clean_state): Skip begin stmt markers.
2611         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
2612         markers.
2613         * function.c (allocate_struct_function): Set begin_stmt_markers.
2614         * function.h (struct function): Add debug_marker_count counter
2615         and debug_nonbind_markers flag.
2616         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
2617         * gimple-low.c (lower_function_body): Adjust
2618         debug_nonbind_markers.
2619         (lower_stmt): Drop or skip gimple debug stmts.
2620         (lower_try_catch): Skip debug stmts.
2621         * gimple.c (gimple_build_debug_begin_stmt): New.
2622         (gimple_copy): Increment debug_marker_count if copying one.
2623         * gimple.h (gimple_build_debug_begin_stmt): Declare.
2624         * gimplify.c (rexpr_location): New.
2625         (rexpr_has_location): New.
2626         (warn_switch_unreachable_r): Handle gimple debug stmts.
2627         (shortcut_cond_r): Call expr_location.
2628         (find_goto): New.
2629         (find_goto_label): New.
2630         (shortcut_cond_expr): Call expr_has_location, expr_location, and
2631         find_goto_label.
2632         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
2633         expr_location.
2634         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
2635         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
2636         (LANG_HOOKS_INITIALIZER): ... this.
2637         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
2638         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
2639         debug insns.
2640         (update_ebb_live_info): Skip debug insn markers.
2641         * lra.c (debug_insn_static_data): Rename to...
2642         (debug_bind_static_data): ... this.
2643         (debug_marker_static_data): New.
2644         (lra_set_insn_recog_data): Select one of the above depending
2645         on debug insn kind.
2646         (lra_update_isn_regno_info): Don't assume debug insns have
2647         freqs.
2648         (push_insns): Skip debug insns.
2649         * lto-streamer-in.c (input_function): Drop debug stmts
2650         depending on active options.  Adjust debug_nonbind_markers.
2651         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
2652         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
2653         begin stmt marker notes.
2654         (print_insn): Likewise.
2655         * recog.c (extract_insn): Recognize rtl for debug markers.
2656         * rtl.def (DEBUG_MARKER): New.
2657         * tree-inline.c: Include params.h.
2658         (remap_gimple_stmt): Handle nonbind markers.
2659         (maybe_move_debug_stmts_to_successors): Likewise.
2660         (copy_debug_stmt): Likewise.
2661         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
2662         markers regardless of no side effects.
2663         (tsi_link_before): Don't update container's side effects when adding
2664         a begin stmt marker.
2665         (tsi_link_after): Likewise.
2666         (expr_first): Skip begin stmt markers.
2667         (expr_last): Likewise.
2668         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
2669         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
2670         Disregard nonbind markers.
2671         * tree.c (make_node_stat): Don't set side effects for begin stmt
2672         markers.
2673         (build1_stat): Likewise.
2674         * tree.def (DEBUG_BEGIN_STMT): New.
2675         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
2676         * var-tracking.c (delete_debug_insns): Renamed to...
2677         (delete_vta_debug_insns): ... this.
2678         (reemit_marker_as_note): New.
2679         (vt_initialize): Reemit markers.
2680         (delete_vta_debug_insns): Likewise.
2681         (vt_debug_insns_local): Reemit or delete markers.
2682         (variable_tracking_main_1): Likewise.
2683         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
2684         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
2685         (gimple_debug_nonbind_marker_p): New.
2686         (gimple_build_debug_bind): Adjust.
2687         (gimple_build_debug_begin_stmt): New.
2688         * doc/invoke.texi (max-debug-marker-count): New param.
2689         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
2690         (debug_parameter_ref, debug_marker): New.
2691         (NOTE_INSN_BEGIN_STMT): New.
2692         (DEBUG_INSN): Describe begin stmt markers.
2693
2694         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
2695         without debug insns, we wouldn't, but clean up debug insns
2696         after a control flow insn nevertheless.
2697
2698         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
2699         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
2700         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
2701         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
2702         (rtl_tidy_fallthru_edge): Likewise.
2703         (rtl_verify_fallthru): Likewise.
2704         (rtl_verify_bb_layout): Likewise.
2705         (skip_insns_after_block): Likewise.
2706         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
2707         * dwarf2out.c: Include print-rtl.h.
2708         (dwarf2out_next_real_insn): New.
2709         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
2710         Dump debug binds in asm comments.
2711         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
2712         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
2713         callers to use gsi_start_nondebug_bb instead.
2714         (gsi_after_labels): Skip gimple debug stmts.
2715         (gsi_start_nondebug): New.
2716         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
2717         (proper_loop_form_for_interchange): Adjust.
2718         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
2719         * gimple.h (gimple_seq_last_nondebug_stmt): New.
2720         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
2721         (collect_fallthrough_labels): Likewise.
2722         (should_warn_for_implicit_fallthrough): Likewise.
2723         (warn_implicit_fallthrough_r): Likewise.
2724         (expand_FALLTHROUGH_r): Likewise.
2725         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
2726         (graphite_copy_stmts_from_block): Skip nonbind markers.
2727         * haifa-sched.c (sched_extend_bb): Skip debug insns.
2728         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
2729         * jump.c (clean_barriers): Skip debug insns.
2730         * omp-expand.c (expand_parallel_call): Skip debug insns.
2731         (expand_task_call): Likewise.
2732         (remove_exit_barrier): Likewise.
2733         (expand_omp_taskreg): Likewise.
2734         (expand_omp_for_init_counts): Likewise.
2735         (expand_omp_for_generic): Likewise.
2736         (expand_omp_for_static_nochunk): Likewise.
2737         (expand_omp_for_static_chunk): Likewise.
2738         (expand_omp_simd): Likewise.
2739         (expand_omp_taskloop_for_outer): Likewise.
2740         (expand_omp_taskloop_for_inner): Likewise.
2741         (expand_oacc_for): Likewise.
2742         (expand_omp_sections): Likewise.
2743         (expand_omp_single): Likewise.
2744         (expand_omp_synch): Likewise.
2745         (expand_omp_atomic_load): Likewise.
2746         (expand_omp_atomic_store): Likewise.
2747         (expand_omp_atomic_fetch_op): Likewise.
2748         (expand_omp_atomic_pipeline): Likewise.
2749         (expand_omp_atomic_mutex): Likewise.
2750         (expand_omp_target): Likewise.
2751         (grid_expand_omp_for_loop): Likewise.
2752         (grid_expand_target_grid_body): Likewise.
2753         (build_omp_regions_1): Likewise.
2754         * omp-low.c (check_combined_parallel): Skip debug stmts.
2755         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
2756         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
2757         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
2758         test.
2759         * tree-cfg.c (make_blobs_1): Skip debug stmts.
2760         (make_edges): Likewise.
2761         (cleanup_dead_labels): Likewise.
2762         (gimple_can_merge_blocks_p): Likewise.
2763         (stmt_starts_bb_p): Likewise.
2764         (gimple_block_label): Likewise.
2765         (gimple_redirect_edge_and_branch): Likewise.
2766         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
2767         of debug stmts.
2768         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
2769         TDF_SLIM.
2770         * tree-pretty-print (print_declaration): Omit initializer in slim
2771         dumps.
2772         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
2773         markers.
2774         (eliminate_unnecessary_stmts): Stabilize block removal order.
2775         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
2776         * var-tracking.c (get_first_insn): New.
2777         (vt_emit_notes): Call it.
2778         (vt_initialize): Walk any insns before the first BB.
2779         (delete_debug_insns): Likewise.
2780
2781         * gimple.h (enum gimple_debug_subcode): Add
2782         GIMPLE_DEBUG_BEGIN_STMT.
2783         (gimple_debug_begin_stmt_p): New.
2784         (gimple_debug_nonbind_marker_p): New.
2785         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
2786         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
2787         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
2788         * insn-notes.def (BEGIN_STMT): New.
2789         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
2790         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
2791         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
2792         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
2793         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
2794         (INSN_DEBUG_MARKER_KIND): New.
2795         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
2796         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
2797         (INSN_VAR_LOCATION_PTR): New.
2798         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
2799         only.
2800         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
2801         deps only if debug bind insns are enabled.
2802         (pass_expand::execute): Avoid deep TER and expand
2803         debug locations for debug bind insns only.
2804         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
2805         debug stmts special handling down to debug bind stmts.
2806         * combine.c (try_combine): Narrow debug insns special handling
2807         down to debug bind insns.
2808         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
2809         Narrow debug insns preexisting special handling down to debug
2810         bind insns.
2811         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
2812         handling down to debug bind insns.
2813         * function.c (instantiate_virtual_regs): Skip debug markers,
2814         adjust handling of debug binds.
2815         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
2816         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
2817         * haifa-sched.c (schedule_insn): Narrow special handling of debug
2818         insns to debug bind insns.
2819         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
2820         special handling of debug stmts to debug bind stmts.
2821         * ipa-split.c (split_function): Likewise.
2822         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
2823         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
2824         debug insns.
2825         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
2826         * regrename.c (build_def_use): Likewise.
2827         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
2828         (pass_cprop_hardreg): Narrow special casing of debug insns to
2829         debug bind insns.
2830         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
2831         * reload1.c (reload): Likewise.
2832         * sese.c (sese_insert_phis_for_liveouts): Narrow special
2833         casing of debug stmts to debug bind stmts.
2834         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
2835         * ssa-iterators.h (num_imm_uses): Likewise.
2836         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
2837         debug stmts to debug bind stmts.
2838         * tree-inline.c (tree_function_versioning): Narrow special casing
2839         of debug stmts to debug bind stmts.
2840         * tree-loop-distribution.c (generate_loops_for_partition):
2841         Narrow special casing of debug stmts to debug bind stmts.
2842         * tree-sra.c (analyze_access_subtree): Narrow special casing
2843         of debug stmts to debug bind stmts.
2844         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
2845         stmts to debug bind stmts.
2846         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
2847         casing of debug stmts to debug bind stmts.
2848         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
2849         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
2850         casing of debug stmts to debug bind stmts.
2851         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
2852         Likewise.
2853         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
2854         debug stmts to debug bind stmts.
2855         (gimple_replace_ssa_lhs): Likewise.
2856         (insert_debug_temp_for_var_def): Likewise.
2857         (insert_debug_temps_for_defs): Likewise.
2858         (reset_debug_uses): Likewise.
2859         * tree-ssanames.c (release_ssa_name_fn): Likewise.
2860         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
2861         (adjust_debug_stmts): Likewise.
2862         (adjust_phi_and_debug_stmts): Likewise.
2863         (vect_do_peeling): Likewise.
2864         * tree-vect-loop.c (vect_transform_loop): Likewise.
2865         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
2866         * var-tracking.c (adjust_mems): Narrow special casing of debug
2867         insns to debug bind insns.
2868         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
2869         (compute_bb_dataflow, vt_find_locations): Likewise.
2870         (vt_expand_loc, emit_notes_for_changes): Likewise.
2871         (vt_init_cfa_base): Likewise.
2872         (vt_emit_notes): Likewise.
2873         (vt_initialize): Likewise.
2874         (vt_finalize): Likewise.
2875
2876         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
2877         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
2878         (next_nonnote_nondebug_insn_bb): New.
2879         (prev_nonnote_nondebug_insn_bb): New.
2880         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
2881         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
2882         (prev_nonnote_nondebug_insn_bb): Declare.
2883         (next_nonnote_nondebug_insn_bb): Declare.
2884         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
2885         * cfgrtl.c (get_last_bb_insn): Likewise.
2886         * lra.c (push_insns): Likewise.
2887
2888 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
2889
2890         PR c/82050
2891         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
2892         to...
2893         * selftest.c (selftest::test_runner::test_runner): New ctor.
2894         (selftest::test_runner::~test_runner): New dtor.
2895         * selftest.h (class selftest::test_runner): New class.
2896
2897 2017-12-11  Carl Love  <cel@us.ibm.com>
2898
2899         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
2900         vec_extract_fp32_from_shortl]): Add #defines.
2901         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
2902         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
2903         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
2904         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
2905         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
2906         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
2907         * doc/extend.texi: Add documentation for the added builtins.
2908
2909 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
2910
2911         PR rtl-optimization/80693
2912         PR rtl-optimization/81019
2913         PR rtl-optimization/81020
2914         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
2915         are not mentioned in i3.  Place the REG_UNUSED note on i2,
2916         possibly modified to REG_DEAD, if it did not originate in i3.
2917
2918 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
2919
2920         * recog.c (store_data_bypass_p_1): New function.
2921         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
2922         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
2923
2924 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
2925
2926         PR rtl-optimization/83361
2927         * ifcvt.c (if_convert): Call fixup_partitions.
2928
2929 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
2930
2931         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
2932         early folding of splat_u{8,16,32}.
2933
2934 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
2935
2936         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
2937         output_operand_lossage first argument with capital letter.
2938         (aarch64_override_options): Don't start error and sorry first argument
2939         with capital letter.
2940
2941 2017-12-11  Andi Kleen  <ak@linux.intel.com>
2942
2943         PR gcov-profile/83355
2944         * auto-profile.c (string_table::get_index_by_decl): Don't
2945         recurse when abstract origin points to itself.
2946
2947 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
2948
2949         PR tree-optimization/83320
2950         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
2951         (prune_datarefs_not_in_loop): Ditto.
2952
2953 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
2954
2955         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
2956
2957 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
2958
2959         PR tree-optimization/83337
2960         * gimple-loop-interchange.cc (compute_access_stride): Handle
2961         bitfield DRs properly.
2962
2963 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
2964
2965         PR tree-optimization/83338
2966         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
2967         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
2968         vector of unsigned integers to vector of signed integers.
2969
2970 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
2971
2972         PR rtl-optimization/83317
2973         * lra-constraints.c (process_address_1): Add insn code check.
2974
2975 2017-12-08  Michael Matz  <matz@suse.de>
2976
2977         Fix PR tree-optimization/83323
2978         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
2979         head-controlled loops and loop BBs.
2980         * common.opt (funroll-and-jam): Remove, instead ...
2981         (floop-unroll-and-jam): ... reuse this option.
2982         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
2983         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
2984         (-floop-unroll-and-jam): ... this option.
2985
2986 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
2987
2988         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
2989         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
2990         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
2991
2992 2017-12-08  Richard Biener  <rguenther@suse.de>
2993
2994         PR middle-end/81782
2995         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
2996         handle accesses outside of zero-sized vars.
2997
2998 2017-12-08  Martin Jambor  <mjambor@suse.cz>
2999
3000         PR tree-optimization/83141
3001         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
3002         test for MEM_REFs implicitely changing types with padding.  Remove
3003         inline keyword.
3004         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
3005
3006 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3007
3008         * config/arc/arc.c (arc_attribute_table): Add exclusions to
3009         the comment.
3010         * config/avr/avr.c (avr_attribute_table): Likewise.
3011         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
3012         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
3013         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
3014         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
3015         of struct attribute_spec.
3016         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
3017
3018 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
3019
3020         PR target/82960
3021         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
3022
3023 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
3024
3025         PR middle-end/83609
3026         * profile-count.c (profile_count::from_gcov_type): Move from
3027         profile-count.h; handle overflow.
3028         * profile-count.h (profile_count::from_gcov_type): Move offline.
3029
3030 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
3031
3032         PR rtl-optimization/83304
3033         * combine.c (move_deaths): If we do not know where a register died,
3034         search for it.
3035
3036 2017-12-08  Richard Biener  <rguenther@suse.de>
3037
3038         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
3039         Provide -fopt-info-loop feedback when we interchange in a nest.
3040
3041 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3042
3043         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
3044         for armv6 ARM CPU IDs.
3045
3046 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3047
3048         * common/config/arm/arm-common.c: Include <algorithm>.
3049         (INCLUDE_VECTOR): Define.
3050         (compare_opt_names): New function.
3051         (arm_rewrite_selected_arch): Only strip out extensions that can be
3052         expressed through -mfpu.  Sort the remaining extensions
3053         alphabetically.
3054
3055 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3056
3057         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
3058         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
3059         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
3060         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
3061
3062 2017-06-08  Tristan Gingold  <gindold@adacore.com>
3063
3064         PR ada/81470
3065         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
3066         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
3067
3068 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3069
3070         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
3071         of struct attribute_spec.
3072
3073 2017-12-08  Julia Koval  <julia.koval@intel.com>
3074
3075         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
3076         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
3077         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
3078         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
3079         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
3080         _mm_maskz_dpwssds_epi32): Ditto.
3081
3082 2017-12-08  Richard Biener  <rguenther@suse.de>
3083
3084         PR tree-optimization/81303
3085         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
3086         conditions try to create a comparison vector type matching
3087         the data vector type.
3088         (vectorizable_condition): Adjust.
3089         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
3090         Leave invariant conditions alone in case we can vectorize those.
3091
3092 2017-12-08  Julia Koval  <julia.koval@intel.com>
3093
3094         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
3095         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
3096         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
3097         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
3098         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
3099
3100 2017-12-08  Julia Koval  <julia.koval@intel.com>
3101
3102         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
3103         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
3104         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
3105         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
3106         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
3107         _mm_maskz_dpbusds_epi32): New intrinsics.
3108
3109 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3110
3111         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
3112         operand.
3113         (ld<bh>io_signed): Likewise.
3114         (st<bhw>io): Likewise.
3115         * config/nios2/predicates.md (ldstio_memory_operand): Allow
3116         SMALL_INT12 constant integer operand.
3117
3118 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3119
3120         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
3121         Rename to...
3122         (nios2_large_constant_allowed): ...this.  Adjust uses.
3123         (nios2_plus_symbolic_constant_p): Rename to...
3124         (nios2_plus_large_constant_p): ...this.  Adjust uses.
3125         (nios2_legitimate_address_p): Correct CONST_INT handling.
3126         (nios2_symbolic_memory_operand_p): Rename to...
3127         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
3128         (nios2_large_constant_p): Check for large constant integers too.
3129         (nios2_split_large_constant): Handle constant integers.
3130         (nios2_split_symbolic_memory_operand): Rename to...
3131         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
3132         (nios2_legitimize_constant_address): Handle constant integers.
3133         (r0rel_constant_p): Handle small constant integers.
3134         (nios2_print_operand_address): Handle r0-relative integer addresses.
3135         * config/nios2/nios2-protos.h: Adjust for renamed functions.
3136         * config/nios2/nios2.md: Adjust for renamed functions.
3137
3138 2017-12-07  Andrew Waterman  <andrew@sifive.com>
3139
3140         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
3141         (TARGET_HAVE_SRODATA_SECTION): New define.
3142         (riscv_select_section): New function.
3143
3144 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
3145             Alexander Monakov  <amonakov@ispras.ru>
3146             Jakub Jelinek  <jakub@redhat.com>
3147
3148         PR target/81906
3149         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
3150
3151 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3152
3153         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
3154         a bool success value.  Don't call output_operand_lossage here.
3155         (aarch64_print_ldpstp_address): Return a bool success value.
3156         (aarch64_print_operand_address): Call output_addr_const if
3157         aarch64_print_address_internal fails.
3158         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
3159         'y'; call output_operand_lossage instead.  Call output_operand_lossage
3160         if aarch64_print_ldpstp_address fails.
3161
3162 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3163
3164         * tree-vector-builder.h
3165         (tree_vector_builder::binary_encoded_nelts): Declare.
3166         * tree-vector-builder.c
3167         (tree_vector_builder::binary_encoded_nelts): New function.
3168         * fold-const.c (negate_expr_p): Likewise.
3169         (operand_equal_p, fold_checksum_tree): Likewise.
3170         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
3171         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
3172         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
3173         (uniform_vector_p): Likewise.
3174         * varasm.c (const_hash_1, compare_constant): Likewise.
3175         * tree-ssa-ccp.c: Include tree-vector-builder.h.
3176         (valid_lattice_transition): Operate directly on the VECTOR_CST
3177         encoding.
3178         * ipa-icf.c: Include tree-vector-builder.h.
3179         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
3180         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
3181
3182 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3183
3184         * tree.c (build_vector): Delete.
3185         * tree.h (build_vector): Make static and move into the self-testing
3186         block.
3187
3188 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3189
3190         * vector-builder.h (vector_builder::derived): New const overload.
3191         (vector_builder::elt): New function.
3192         * tree-vector-builder.h (tree_vector_builder::type): New function.
3193         (tree_vector_builder::apply_step): Declare.
3194         * tree-vector-builder.c (tree_vector_builder::apply_step): New
3195         function.
3196         * gimple-fold.h (tree_vector_builder): Declare.
3197         (gimple_build_vector): Take a tree_vector_builder instead of a
3198         type and vector of elements.
3199         * gimple-fold.c (gimple_build_vector): Likewise.
3200         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
3201         accordingly.
3202         (get_initial_defs_for_reduction): Likewise.
3203         (vectorizable_induction): Likewise.
3204
3205 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3206
3207         * tree-vector-builder.h
3208         (tree_vector_builder::new_binary_operation): Declare.
3209         * tree-vector-builder.c
3210         (tree_vector_builder::new_binary_operation): New function.
3211         * fold-const.c (fold_relational_const): Use it.
3212         (const_binop): Likewise.  Check that both input vectors have
3213         the same number of elements, thus excluding things like WIDEN_SUM.
3214         Check whether it is possible to operate directly on the encodings
3215         of stepped inputs.
3216
3217 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3218
3219         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
3220         new_unary_operation, operating only on the encoded elements.
3221         (const_unop): Likewise.
3222         (exact_inverse): Likewise.
3223         (distributes_over_addition_p): New function.
3224         (const_binop): Use tree_vector_builder and new_unary_operation
3225         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
3226         on the encoded elements unless the encoding is strided and the
3227         operation does not distribute over addition.
3228         (fold_convert_const):  Use tree_vector_builder and
3229         new_unary_operation.  Operate only on the encoded elements
3230         for truncating integer conversions, or for non-stepped encodings.
3231
3232 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3233
3234         * config/sparc/sparc.c: Include tree-vector-builder.h.
3235         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
3236         * expmed.c: Include tree-vector-builder.h.
3237         (make_tree): Use tree_vector_builder instead of build_vector.
3238         * fold-const.c: Include tree-vector-builder.h.
3239         (const_binop): Use tree_vector_builder instead of build_vector.
3240         (const_unop): Likewise.
3241         (native_interpret_vector): Likewise.
3242         (fold_vec_perm): Likewise.
3243         (fold_ternary_loc): Likewise.
3244         * gimple-fold.c: Include tree-vector-builder.h.
3245         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
3246         of build_vector.
3247         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
3248         (simplify_vector_constructor): Use tree_vector_builder instead
3249         of build_vector.
3250         * tree-vect-generic.c: Include tree-vector-builder.h.
3251         (add_rshift): Use tree_vector_builder instead of build_vector.
3252         (expand_vector_divmod): Likewise.
3253         (optimize_vector_constructor): Likewise.
3254         * tree-vect-loop.c: Include tree-vector-builder.h.
3255         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
3256         of build_vector.  Explicitly use a stepped encoding for
3257         { 1, 2, 3, ... }.
3258         * tree-vect-slp.c: Include tree-vector-builder.h.
3259         (vect_get_constant_vectors): Use tree_vector_builder instead
3260         of build_vector.
3261         (vect_transform_slp_perm_load): Likewise.
3262         (vect_schedule_slp_instance): Likewise.
3263         * tree-vect-stmts.c: Include tree-vector-builder.h.
3264         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
3265         (vect_gen_perm_mask_any): Likewise.
3266         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
3267         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
3268         of build_vector.
3269         (build_vector_from_val): Likewise.  Explicitly use a duplicate
3270         encoding.
3271
3272 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
3273
3274         * doc/generic.texi (VECTOR_CST): Describe new representation of
3275         vector constants.
3276         * vector-builder.h: New file.
3277         * tree-vector-builder.h: Likewise.
3278         * tree-vector-builder.c: Likewise.
3279         * Makefile.in (OBJS): Add tree-vector-builder.o.
3280         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
3281         * tree-core.h (tree_base): Add a vector_cst field to the u union.
3282         (tree_vector): Change the number of elements to
3283         vector_cst_encoded_nelts.
3284         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
3285         (VECTOR_CST_ELTS): Delete.
3286         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
3287         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
3288         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
3289         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
3290         (VECTOR_CST_ENCODED_ELT): Likewise.
3291         (vector_cst_encoded_nelts): New function.
3292         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3293         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3294         (vector_cst_int_elt, vector_cst_elt): Declare.
3295         * tree.c: Include tree-vector-builder.h.
3296         (tree_code_size): Abort if passed VECTOR_CST.
3297         (tree_size): Update for new VECTOR_CST layout.
3298         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3299         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3300         (build_vector): Use tree_vector_builder.
3301         (vector_cst_int_elt, vector_cst_elt): New functions.
3302         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
3303         encoded elements and then create the vector in the canonical form.
3304         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
3305         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
3306         (tree_c_tests): Call test_vector_cst_patterns.
3307         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
3308         VECTOR_CST fields.
3309         (hash_tree): Likewise.
3310         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
3311         (streamer_write_tree_header): Likewise.
3312         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
3313         (streamer_alloc_tree): Likewise.  Update call to make_vector.
3314         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
3315
3316 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3317
3318         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
3319         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
3320         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
3321
3322 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
3323             Richard Biener  <rguenther@suse.de>
3324
3325         PR tree-optimization/81303
3326         * Makefile.in (gimple-loop-interchange.o): New object file.
3327         * common.opt (floop-interchange): Reuse the option from graphite.
3328         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
3329         -floop-interchange and mention it for -O3.
3330         * opts.c (default_options_table): Enable -floop-interchange at -O3.
3331         * gimple-loop-interchange.cc: New file.
3332         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
3333         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
3334         * passes.def (pass_linterchange): New pass.
3335         * timevar.def (TV_LINTERCHANGE): New time var.
3336         * tree-pass.h (make_pass_linterchange): New declaration.
3337         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
3338         interchange.  Record IV before/after increment in new parameters.
3339         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
3340         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
3341         path check into...
3342         (check_reduction_path): ...New function here.
3343         * tree-vectorizer.h (check_reduction_path): New declaration.
3344
3345 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
3346
3347         PR target/83252
3348         PR rtl-optimization/80818
3349         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
3350         always early clobbered.
3351         * lra-lives.c (process_bb_lives): Check input hard regs for early
3352         clobbered non-operand hard reg.
3353
3354 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
3355
3356         PR middle-end/83164
3357         * tree-cfg.c (verify_gimple_assign_binary): Don't require
3358         types_compatible_p, just that TYPE_MODE is the same.
3359
3360 2017-12-07  Martin Sebor  <msebor@redhat.com>
3361
3362         PR c/81544
3363         * attribs.c (empty_attribute_table): Initialize new member of
3364         struct attribute_spec.
3365         (decl_attributes): Add argument.  Handle mutually exclusive
3366         combinations of attributes.
3367         (selftests::test_attribute_exclusions): New function.
3368         (selftests::attribute_c_tests): Ditto.
3369         * attribs.h (decl_attributes): Add default argument.
3370         * selftest.h (attribute_c_tests): Declare.
3371         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
3372         * tree-core.h (attribute_spec::exclusions, exclude): New type and
3373         member.
3374         * doc/extend.texi (Common Function Attributes): Update const and pure.
3375         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
3376         of struct attribute_spec.
3377         * config/arc/arc.c (arc_attribute_table): Same.
3378         * config/arm/arm.c (arm_attribute_table): Same.
3379         * config/avr/avr.c ( avr_attribute_table): Same.
3380         * config/bfin/bfin.c (bfin_attribute_table): Same.
3381         * config/cr16/cr16.c (cr16_attribute_table): Same.
3382         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
3383         * config/h8300/h8300.c (h8300_attribute_table): Same.
3384         * config/i386/i386.c (ix86_attribute_table): Same.
3385         * config/ia64/ia64.c (ia64_attribute_table): Same.
3386         * config/m32c/m32c.c (m32c_attribute_table): Same.
3387         * config/m32r/m32r.c (m32r_attribute_table): Same.
3388         * config/m68k/m68k.c (m68k_attribute_table): Same.
3389         * config/mcore/mcore.c (mcore_attribute_table): Same.
3390         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
3391         * config/mips/mips.c (mips_attribute_table): Same.
3392         * config/msp430/msp430.c (msp430_attribute_table): Same.
3393         * config/nds32/nds32.c (nds32_attribute_table): Same.
3394         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
3395         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
3396         * config/rl78/rl78.c (rl78__attribute_table): Same.
3397         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
3398         * onfig/rx/rx.c (rx_attribute_table): Same.
3399         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
3400         * config/sh/sh.c (sh_attribute_table): Same.
3401         * config/sparc/sparc.c (sparc_attribute_table): Same.
3402         * config/spu/spu.c (spu_attribute_table): Same.
3403         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
3404         * config/v850/v850.c (v850_attribute_table): Same.
3405         * config/visium/visium.c (visium_attribute_table): Same.
3406
3407 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
3408
3409         PR target/82641
3410         * config/arm/arm.c (INCLUDE_STRING): Define.
3411         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
3412         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
3413         and .fpu.
3414
3415 2017-12-07  Michael Matz  <matz@suse.de>
3416
3417         Add unroll and jam pass
3418
3419         * gimple-loop-jam.c: New file.
3420         * Makefile.in (OBJS): Add gimple-loop-jam.o.
3421         * common.opt (funroll-and-jam): New option.
3422         * opts.c (default_options_table): Add unroll-and-jam at -O3.
3423         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
3424         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
3425         * passes.def: Add pass_loop_jam.
3426         * timevar.def (TV_LOOP_JAM): Add.
3427         * tree-pass.h (make_pass_loop_jam): Declare.
3428         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
3429         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
3430         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
3431         to flow_loop_tree_node_add.
3432         (duplicate_subloops, copy_loops_to): Append to sibling list.
3433         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
3434         * doc/invoke.texi (-funroll-and-jam): Document new option.
3435         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
3436
3437 2017-12-07  Richard Biener  <rguenther@suse.de>
3438
3439         PR tree-optimization/83296
3440         PR tree-optimization/67769
3441         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
3442         flow sensitive info in an unrelated BB.
3443         (value_replacement): Use reset_flow_sensitive_info.
3444         (minmax_replacement): Reset flow sensitive info on the def
3445         we move.  Do not reset flow sensitive info in the whole BB
3446         we move the stmt to.
3447         (abs_replacement): Likewise.
3448
3449 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3450
3451         PR target/43871
3452         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3453         rs6000_cpu to the given -mcpu=, or to the default processor.
3454
3455 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3456
3457         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
3458         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
3459         instead of rs6000_cpu_attr.
3460         (rs6000_adjust_cost): Ditto.
3461         (is_microcoded_insn): Ditto.
3462         (rs6000_adjust_priority): Ditto.
3463         (rs6000_issue_rate): Ditto.
3464         (rs6000_use_sched_lookahead): Ditto.
3465         (rs6000_use_sched_lookahead_guard): Ditto.
3466         (rs6000_sched_reorder): Ditto.
3467         (force_new_group): Ditto.
3468         * config/rs6000/rs6000.md (cpu attribute): Ditto.
3469         (group_ending_nop): Ditto.
3470
3471 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3472
3473         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
3474         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
3475         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
3476         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
3477         appropriate.
3478         (rs6000_reassociation_width): Ditto.
3479         (rs6000_emit_epilogue): Ditto.
3480         (rs6000_adjust_cost): Ditto.
3481         (is_microcoded_insn): Ditto.
3482         (is_cracked_insn): Ditto.
3483         (rs6000_adjust_priority): Ditto.
3484         (rs6000_sched_reorder): Ditto.
3485         (rs6000_sched_reorder2): Ditto.
3486         (insn_must_be_first_in_group): Ditto.
3487         (insn_must_be_last_in_group): Ditto.
3488         (rs6000_register_move_cost): Ditto.
3489         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
3490         rs6000_cpu.
3491
3492 2017-12-07  Julia Koval  <julia.koval@intel.com>
3493
3494         * config.gcc: Add vaesintrin.h.
3495         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
3496         New type.
3497         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3498         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
3499         New builtins.
3500         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3501         * config/i386/immintrin.h: Include vaesintrin.h.
3502         * config/i386/sse.md (vaesdec_<mode>): New pattern.
3503         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
3504         _mm_aesdec_epi128): New intrinsics.
3505
3506 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
3507
3508         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
3509         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
3510         c-family/c-spellcheck.cc.
3511         (best_macro_match::best_macro_match): Likewise.
3512         * spellcheck-tree.h
3513         (struct edit_distance_traits<cpp_hashnode *>): Move to
3514         c-family/c-spellcheck.h.
3515         (class best_macro_match): Likewise.
3516
3517 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3518
3519         PR tree-optimization/83293
3520         * gimple-ssa-strength-reduction.c (insert_initializers): Use
3521         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
3522         might insert into empty bb.
3523
3524         PR sanitizer/81281
3525         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
3526         simplify for plus with :c added, and pointer_plus without that.
3527         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
3528         with undefined overflow and the conversion is not widening,
3529         perform negation in utype and only convert to type afterwards.
3530         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
3531         simplify for plus with :c added, and pointer_plus without that.
3532         If type is integral with undefined overflow and the conversion is
3533         not widening, perform minus in utype and only convert to type
3534         afterwards.  Move the last pointer_diff_expr simplify into the
3535         two outermost ifs.
3536
3537 2017-12-06  Martin Sebor  <msebor@redhat.com>
3538
3539         PR tree-optimization/82646
3540         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
3541         strncpy, not maxlen.
3542
3543 2017-12-06  Martin Sebor  <msebor@redhat.com>
3544
3545         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
3546         nonstring.
3547
3548         PR tree-optimization/83075
3549         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
3550         strncat/strncpy don't change length of source string.
3551
3552 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
3553
3554         Revert
3555         2017-11-29  Martin Aberg  <maberg@gaisler.com>
3556
3557         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
3558         to prevent b2bst errata sequence.
3559         (sqrtdf2_fix): Likewise.
3560
3561 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3562
3563         PR tree-optimization/81945
3564         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
3565         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
3566         to dest_cfun has orig_loop_num set, either remap it to the new
3567         loop number if the loop got moved too, or clear it.
3568
3569 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
3570
3571         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
3572         to reservation.
3573         (thunderx2t99_nothing): New insn reservation.
3574         (thunderx2t99_mrs): New insn reservation.
3575         (thunderx2t99_multiple): New insn reservation.
3576         (thunderx2t99_alu_basi): Add bfx to reservation.
3577         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
3578
3579 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3580
3581         PR target/82248
3582         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
3583
3584 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
3585
3586         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
3587         tree-ssa-pre.c::remove_dead_inserted_code.
3588         * tree-ssa-dce.h: New file.
3589         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
3590         (remove_dead_inserted_code): Move and rename to function
3591         tree-ssa-dce.c::simple_dce_from_worklist.
3592         (pass_pre::execute): Update use.
3593
3594 2017-12-05  Richard Biener  <rguenther@suse.de>
3595
3596         PR tree-optimization/83277
3597         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
3598         to code-gen liveout vars.
3599
3600 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
3601
3602         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
3603         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
3604         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
3605         split condition.
3606
3607 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
3608
3609         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
3610         function.
3611         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
3612         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
3613         ASAN is enabled.
3614
3615 2017-12-05  Richard Biener  <rguenther@suse.de>
3616
3617         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
3618         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
3619         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
3620         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
3621
3622 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3623
3624         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
3625
3626 2017-12-05  Martin Liska  <mliska@suse.cz>
3627             Jakub Jelinek  <jakub@redhat.com>
3628
3629         * doc/invoke.texi: Document the options.
3630         * flag-types.h (enum sanitize_code): Add
3631         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
3632         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
3633         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
3634         * opts.c: Define new sanitizer options.
3635         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
3636         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
3637
3638 2017-12-05  Julia Koval  <julia.koval@intel.com>
3639
3640         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
3641         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
3642         (ix86_handle_option): Handle -mavx512vnni.
3643         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
3644         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
3645         * config/i386/i386-c (__AVX512VNNI__): New.
3646         * config/i386/i386.c (ix86_target_string): Handle new option.
3647         (ix86_valid_target_attribute_inner_p): Handle new option.
3648         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
3649         * config/i386/i386.opt (mavx512vnni): New option.
3650
3651 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3652
3653         PR target/81616
3654         * athlon.md: Disable for generic.
3655         * haswell.md: Enable for generic.
3656         * i386.c (ix86_sched_init_global): Add core hooks for generic.
3657         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
3658         to 4.
3659         (ix86_adjust_cost): Move generic to haswell path.
3660
3661 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
3662
3663         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
3664         instead of MEM_P in a couple more places.  Fix formatting issues.
3665
3666 2017-12-04  Jim Wilson  <jimw@sifive.com>
3667
3668         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
3669         instead of GP_REG_LAST-1.
3670         (riscv_adjust_libcall_cfi_prologue): Likewise.
3671         (riscv_adjust_libcall_cri_epilogue): Likewise.
3672         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
3673         comment.
3674
3675 2017-12-04  Luis Machado  <luis.machado@linaro.org>
3676
3677         * ipa-pure-const.c (check_decl): Add missing newline.
3678         (state_from_flags): Likewise.
3679
3680 2017-12-04  Jeff Law  <law@redhat.com>
3681
3682         PR tree-optimizatin/78496
3683         * gimple-ssa-evrp-analyze.h
3684         (evrp_range_analyzer::get_vr_values): Simplify.
3685         * gimple-ssa-evrp-analyze.c: Corresponding changes.
3686         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
3687         and gimple-ssa-evrp-analyze.h.
3688         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
3689         (simplify_stmt_for_jump_threading): Copy a blob of code from
3690         tree-vrp.c to use ranges to simplify statements.
3691         (dom_opt_dom_walker::before_dom_children): Call
3692         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
3693         (dom_opt_dom_walker::after_dom_children): Similarly for
3694         evrp_range_analyzer::leave.
3695         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
3696         conditionals.
3697
3698         * gimple-ssa-evrp-analyze.c
3699         (evrp_range_analyzer::extract_range_from_stmt):  Always use
3700         vr_values::update_value_range so preexisting range info is
3701         medged with new range info, even if the new range is VR_VARYING.
3702
3703 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3704
3705         * combine.c: Adjust comment.
3706         (use_crosses_set_p): Delete.
3707         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
3708         (try_combine): Ditto.
3709
3710 2017-12-04  Richard Biener  <rguenther@suse.de>
3711
3712         PR tree-optimization/83255
3713         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
3714         Re-add zero-iteration check.
3715
3716 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3717
3718         PR rtl-optimization/83245
3719         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
3720         hard registers as earlyclobber, also if not in an asm.
3721
3722 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3723
3724         PR bootstrap/83265
3725         Revert
3726         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3727
3728         PR target/43871
3729         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3730         rs6000_cpu based on cpu_index, not tune_index.
3731
3732 2017-12-04  Richard Biener  <rguenther@suse.de>
3733
3734         PR tree-optimization/83238
3735         * graphite-scop-detection.c (scop_detection::merge_sese): Make
3736         code match comment, rejecting invalid SESE regions.
3737
3738 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
3739
3740         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
3741         require base operand is a REG_POINTER prior to reload on targets
3742         with non-equivalent space registers.
3743
3744 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3745
3746         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
3747         (update_specialized_profile): Fix updating of counts.
3748         (perhaps_add_new_callers): Likewise.
3749
3750 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3751
3752         PR target/81616
3753         * x86-tune.def: Remove obsolette FIXMEs.
3754         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
3755         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
3756         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
3757         Enable for generic.
3758         (X86_TUNE_PAD_RETURNS): Disable for generic.
3759
3760 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
3761
3762         PR tree-optimization/83170
3763         PR tree-optimization/83241
3764         * gimple-ssa-store-merging.c
3765         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
3766         gimple_vuse (ins_stmt) in case it has changed.
3767         (imm_store_chain_info::output_merged_store): Likewise.
3768
3769         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
3770         POINTER_DIFF_EXPR.
3771
3772         PR c++/81212
3773         * tree-cfg.c (pass_warn_function_return::execute): Handle
3774         __builtin_ubsan_handle_missing_return like __builtin_unreachable
3775         with BUILTINS_LOCATION.
3776
3777         PR target/78643
3778         PR target/80583
3779         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
3780         is BLKmode for vector field with vector raw mode, use TYPE_MODE
3781         instead of DECL_MODE.
3782
3783         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
3784         last argument to rtx pointer.
3785         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
3786         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
3787         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
3788         depending on the chosen ISAs.
3789         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
3790         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
3791         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
3792         callers.
3793         * config/i386/sse.md (mov<mode>_internal): Likewise.
3794         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
3795
3796 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3797
3798         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
3799
3800 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3801
3802         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
3803         parameters from prototype.
3804         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
3805         parameters.  Don't print a comment.
3806         (emit_fusion_gpr_load): Adjust.
3807         (emit_fusion_load_store): Adjust.
3808         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
3809         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
3810         comment on the second line.
3811
3812 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3813
3814         PR target/43871
3815         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3816         rs6000_cpu based on cpu_index, not tune_index.
3817
3818 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3819
3820         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
3821         which_alternative instead of which_alternative + 1.
3822         (output_asm_insn): Print an extra tab if the template is short.
3823
3824 2017-12-01  Jim Wilson  <jimw@sifive.com>
3825
3826         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
3827         comment.
3828         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
3829         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
3830         reference.
3831         * doc/tm.texi: Regenerate.
3832
3833 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3834
3835         PR target/81959
3836         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
3837         whether we can allocate pseudos before trying to fix an address.
3838         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
3839         memory address is indexed or indirect.
3840         (floatuns_<mode>si2_hw2): Likewise.
3841
3842 2017-12-01  Jason Merrill  <jason@redhat.com>
3843
3844         * Makefile.in (TAGS): Add c-family/*.cc.
3845
3846 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
3847
3848         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
3849         (call_value_insn): Likewise.
3850         (sibcall_insn): Likewise.
3851         (sibcall_value_insn): Likewise.
3852         (movsi_aarch64): Likewise.
3853         (movdi_aarch64): Likewise.
3854         (add_losym_): Likewise.
3855         (ldr_got_small_): Likewise.
3856         (ldr_got_small_sidi): Likewise.
3857         (ldr_got_small_28k_): Likewise.
3858         (ldr_got_small_28k_sidi): Likewise.
3859         * config/aarch64/aarch64.c (aarch64_print_address_internal):
3860         Move output_addr_const to symbolic case. Add error check.
3861
3862 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3863
3864         * config/s390/predicates.md (plus16_Q_operand): New predicate.
3865         * config/s390/s390.md: Disable MVC merging peephole if it would
3866         disable operand forwarding.
3867         (new peephole2): Split MVCs if it would turn them into up to 2
3868         forwardable MVCs.
3869
3870 2017-12-01  Richard Biener  <rguenther@suse.de>
3871
3872         PR tree-optimization/83232
3873         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
3874         detection of same access. Instead of breaking the group here
3875         do not consider the duplicate.  Add comment explaining real fix.
3876
3877 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
3878
3879         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
3880
3881 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
3882
3883         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
3884
3885 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
3886
3887         * function.h (struct function): Remove cilk_frame_decl,
3888         is_cilk_function and calls_cilk_spawn fields.
3889         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
3890         field.
3891         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
3892         cilk_elemental field.
3893         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
3894         * target.def: Adjust comment.
3895         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3896         Don't test cilk_elemental.
3897
3898         PR tree-optimization/83233
3899         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
3900         bswap_stat name for the struct.
3901
3902         PR c/79153
3903         * tree.h (SWITCH_BREAK_LABEL_P): Define.
3904         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
3905         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
3906         SWITCH_BREAK_LABEL_P set on the label.
3907         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
3908         added for default case if it was missing and not all cases covered.
3909         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
3910         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
3911         set on the label.
3912         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
3913         to avoid -Wimplicit-fallthrough warning.
3914         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
3915         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
3916
3917         PR tree-optimization/83221
3918         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
3919         down by 16.
3920         (init_reassoc): Formatting fix.
3921
3922         PR sanitizer/81275
3923         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
3924         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
3925         is diagnosed.
3926
3927         PR sanitizer/83219
3928         * tree-cfg.c: Include asan.h.
3929         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
3930
3931 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3932
3933         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
3934
3935 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3936
3937         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
3938         vpcmpeqd instruction.
3939
3940 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3941
3942         * config/i386/i386.c (standard_sse_constant_opcode): Fix
3943         registers type for 128bit mode.
3944
3945 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
3946
3947         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
3948         of ;;.
3949         * gengtype-state.c (read_state_pair): Likewise.
3950         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
3951         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
3952         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
3953         * ifcvt.c (noce_try_store_flag_constants): Likewise.
3954         * tree-ssa-ccp.c (ccp_finalize): Likewise.
3955         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
3956         * builtins.c (fold_builtin_3): Likewise.
3957         * graphite-scop-detection.c
3958         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
3959         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
3960         Likewise.
3961
3962 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
3963
3964         PR sanitizer/81697
3965         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
3966         parameter. Return true if ignore_decl_rtl_set_p is true and other
3967         conditions are satisfied.
3968         * asan.h (asan_protect_global): Add new parameter.
3969         * varasm.c (categorize_decl_for_section): Pass true as second parameter
3970         to asan_protect_global calls.
3971
3972 2017-11-30  Jim Wilson  <jimw@sifive.com>
3973
3974         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
3975         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
3976         -mstrict-align, add info on default value.  Delete redundant lines for
3977         -mabi.  Add missing -mexplicit-relocs docs.
3978
3979 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3980
3981         * config/arc/arc.md (trap): New pattern.
3982
3983 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3984
3985         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
3986         instruction to end into a delay slot.
3987         * config/arc/arc.md (cond_delay_insn): Check if the instruction
3988         can be placed into a delay slot against reg_note.
3989
3990 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3991
3992         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
3993         labels number of usages.
3994
3995 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3996
3997         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
3998         function.
3999         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
4000
4001 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4002
4003         PR target/83210
4004         * internal-fn.c (expand_mul_overflow): Optimize unsigned
4005         multiplication by power of 2 constant into two shifts + comparison.
4006
4007 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
4008
4009         PR target/81616
4010         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
4011
4012 2017-11-30  Richard Biener  <rguenther@suse.de>
4013
4014         PR tree-optimization/83202
4015         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
4016         allow_peel argument and guard peeling.
4017         (canonicalize_loop_induction_variables): Likewise.
4018         (canonicalize_induction_variables): Pass false.
4019         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
4020         peeling from cunrolli.
4021
4022 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4023
4024         * combine.c (try_combine): Print a message to dump file whenever
4025         I0, I1, or I2 cannot be combined into I3.
4026
4027 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4028
4029         PR rtl-optimization/83156
4030         PR rtl-optimization/82621
4031         * combine.c (try_combine): Don't split an I2 if one of the dests is
4032         set again before I3.  Allow unused dests.
4033
4034 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4035
4036         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
4037
4038 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
4039
4040         PR rtl-optimization/80818
4041         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
4042         recursively.  Use insn code for clobber.
4043         (lra_set_insn_recog_data): Pass the new arg to
4044         collect_non_operand_hard_regs.
4045         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
4046         code for clobber.
4047         (lra_update_insn_regno_info): Pass insn to
4048         add_regs_to_insn_regno_info.
4049
4050 2017-11-29  Jim Wilson  <jimw@sifive.com>
4051             Andrew Waterman  <andrew@sifive.com>
4052
4053         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
4054         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
4055         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
4056         use SINGLE_SHIFT_COST.
4057         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
4058         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
4059
4060 2017-11-29  Julia Koval  <julia.koval@intel.com>
4061
4062         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
4063         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
4064         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
4065         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
4066         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
4067         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
4068         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
4069         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
4070         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
4071         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
4072         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
4073         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
4074         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
4075         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
4076         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
4077         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
4078         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
4079         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
4080         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
4081         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
4082         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
4083         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
4084         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
4085         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
4086         __builtin_ia32_vpshldv_v2di_mask,
4087         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
4088         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
4089         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
4090
4091 2017-11-29  Julia Koval  <julia.koval@intel.com>
4092
4093         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
4094         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
4095         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
4096         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
4097         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
4098         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
4099         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
4100         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
4101         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
4102         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
4103         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
4104         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
4105         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
4106         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
4107         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
4108         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
4109         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
4110         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
4111         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4112         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
4113         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
4114
4115 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4116
4117         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
4118         movsi_pic_gotdata_op instruction as a load for the UT699 errata
4119         workaround.
4120
4121 2017-11-29  Martin Aberg  <maberg@gaisler.com>
4122
4123         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
4124         to prevent b2bst errata sequence.
4125         (sqrtdf2_fix): Likewise.
4126
4127 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4128
4129         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
4130         (div_sqrt_insn_p): New function.
4131         (sparc_do_work_around_errata): Insert NOP instructions to
4132         prevent sequences that could trigger the TN-0013 errata for
4133         certain LEON3 processors.
4134         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
4135         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
4136         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
4137         (in_branch_delay): Prevent div and sqrt in delay slot if
4138         fix_lost_divsqrt.
4139         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
4140
4141 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4142
4143         * config/sparc/sparc.c (atomic_insn_p): New function.
4144         (sparc_do_work_around_errata): Insert NOP instructions to
4145         prevent sequences that could trigger the TN-0010 errata for
4146         UT700.
4147         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
4148         instruction referable in atomic_insns_p.
4149
4150 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4151
4152         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
4153         (atomic_compare_and_swap_leon3_1): Likewise.
4154         (ldstub): Likewise.
4155
4156 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4157
4158         * config/sparc/sparc.c (fpop_insn_p): New function.
4159         (sparc_do_work_around_errata): Insert NOP instructions to
4160         prevent sequences that could trigger the TN-0012 errata for
4161         GR712RC.
4162         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
4163         * config/sparc/sparc.md (fix_gr712rc): New attribute.
4164         (in_branch_annul_delay): Prevent floating-point instructions
4165         in delay slot of annulled integer branch.
4166
4167 2017-11-29  Richard Biener  <rguenther@suse.de>
4168
4169         PR tree-optimization/83202
4170         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
4171         (bst_fail): Use it.
4172         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
4173         nodes vectorized to the same stmts multiple times.
4174         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
4175         (vect_analyze_slp_instance): Adjust.
4176         (scalar_stmts_to_slp_tree_map_t): New typedef.
4177         (vect_schedule_slp_instance): Add a map recording the SLP node
4178         representing the vectorized stmts for a set of scalar stmts.
4179         Avoid code-generating redundancies.
4180         (vect_schedule_slp): Allocate map and pass it down.
4181
4182 2017-11-29  Nathan Sidwell  <nathan@acm.org>
4183
4184         PR c++/83187
4185         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
4186         type if it is new.
4187
4188 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
4189
4190         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
4191         cases for printing LDP/STP memory addresses.
4192         (aarch64_print_address_internal): Renamed from
4193         aarch64_print_operand_address, added parameter, add Pmode check.
4194         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
4195         (aarch64_print_operand_address): Indirect to
4196         aarch64_print_address_internal.
4197         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
4198         'y' operand output specifier.
4199
4200 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
4201
4202         PR middle-end/83185
4203         * tree.c (build_simple_mem_ref_loc): Handle
4204         get_addr_base_and_unit_offset returning a MEM_REF.
4205
4206         PR middle-end/80929
4207         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
4208
4209         PR target/80819
4210         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
4211         alternative.
4212
4213 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
4214
4215         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
4216         m_x_offset.
4217         (layout::move_to_column): Likewise.
4218
4219 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4220
4221         PR sanitizer/81275
4222         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
4223         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
4224
4225 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4226             Martin Jambor  <mjambor@suse.cz>
4227
4228         PR ipa/82808
4229         * tree.h (expr_type_first_operand_type_p): Declare
4230         * tree.c (expr_type_first_operand_type_p): New function.
4231         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
4232         (ipa_value_from_jfunc): Adjust declaration.
4233         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
4234         Use it as result type for arithmetics, unless it is NULL in which case
4235         be more conservative.
4236         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
4237         ipa_get_jf_pass_through_result.
4238         (propagate_vals_across_pass_through): Likewise.
4239         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
4240         is to propagate_vals_across_pass_through.
4241         (propagate_constants_across_call): Pass PARM_TYPE to
4242         propagate_scalar_across_jump_function.
4243         (find_more_scalar_values_for_callers_subset): Pass parameter type to
4244         ipa_value_from_jfunc.
4245         (cgraph_edge_brings_all_scalars_for_node): Likewise.
4246         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
4247         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
4248         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
4249         target_type, pass it to ipa_value_from_jfunc.
4250         (update_indirect_edges_after_inlining): Pass parameter type to
4251         try_make_edge_direct_simple_call.
4252
4253 2017-11-28  Jeff Law  <law@redhat.com>
4254
4255         * gimple-ssa-evrp-analyze.c
4256         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
4257         refine ranges if scev_initialized_p returns true.
4258         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
4259
4260 2017-11-28  Julia Koval  <julia.koval@intel.com>
4261
4262         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
4263         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
4264         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
4265         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
4266         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
4267         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
4268         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
4269         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
4270         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
4271         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
4272         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
4273         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
4274         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
4275         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
4276         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
4277         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
4278         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
4279         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
4280         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
4281         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
4282         __builtin_ia32_vpshrd_v2di_mask): New builtins.
4283         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
4284
4285 2017-11-28  Julia Koval  <julia.koval@intel.com>
4286
4287         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
4288         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
4289         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
4290         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
4291         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
4292         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
4293         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
4294         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
4295         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
4296         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
4297         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
4298         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
4299         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
4300         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
4301         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
4302         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
4303         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
4304         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
4305         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
4306         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
4307         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
4308         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
4309         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
4310         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
4311         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
4312         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
4313         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
4314         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
4315         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
4316         __builtin_ia32_vpshld_v2di_mask): New builtins.
4317         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4318         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
4319
4320 2017-11-28  Richard Biener  <rguenther@suse.de>
4321
4322         PR tree-optimization/80776
4323         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
4324         Declare.
4325         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
4326         New function.
4327         (evrp_range_analyzer::record_ranges_from_incoming_edges):
4328         If the incoming edge is an effective fallthru because the other
4329         edge only reaches a __builtin_unreachable () then record ranges
4330         derived from the controlling condition in SSA info.
4331         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
4332         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4333
4334 2017-11-28  Olivier Hainque  <hainque@adacore.com>
4335
4336         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
4337         on mingw build hosts.
4338
4339 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4340
4341         PR debug/81307
4342         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
4343
4344 2017-11-28  Richard Biener  <rguenther@suse.de>
4345
4346         PR middle-end/83141
4347         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
4348         copies generated from memcpy use a character array as reference
4349         type.
4350
4351 2017-11-28  Julia Koval  <julia.koval@intel.com>
4352             Sebastian Peryt  <sebastian.peryt@intel.com>
4353
4354         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
4355         c-family/c-cilkplus.o, c-family/array-notation-common.o,
4356         cilk-common.o, cilk.h, cilk-common.c): Remove.
4357         * builtin-types.def
4358         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
4359         * builtins.c (is_builtin_name): Remove cilkplus condition.
4360         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
4361         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
4362         cilk-builtins.def, cilkplus.def): Remove.
4363         * cif-code.def (CILK_SPAWN): Remove.
4364         * cilk-builtins.def: Delete.
4365         * cilk-common.c: Ditto.
4366         * cilk.h: Ditto.
4367         * cilkplus.def: Ditto.
4368         * config/darwin.h (fcilkplus): Delete.
4369         * cppbuiltin.c: Ditto.
4370         * doc/extend.texi: Remove cilkplus doc.
4371         * doc/generic.texi: Ditto.
4372         * doc/invoke.texi: Ditto.
4373         * doc/passes.texi: Ditto.
4374         * gcc.c (fcilkplus): Remove.
4375         * gengtype.c (cilk.h): Remove.
4376         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
4377         support.
4378         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
4379         Remove.
4380         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
4381         gimplify_call_expr,
4382         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
4383         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
4384         cilkplus conditions.
4385         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
4386         inline_read_section): Ditto.
4387         * ipa-inline-analysis.c (cilk.h): Remove.
4388         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
4389         * lto-wrapper.c (merge_and_complain, append_compiler_options,
4390         append_linker_options): Remove condition for fcilkplus.
4391         * lto/lto-lang.c (cilk.h): Remove.
4392         (lto_init): Remove condition for fcilkplus.
4393         * omp-expand.c (expand_cilk_for_call): Delete.
4394         (expand_omp_taskreg, expand_omp_for_static_chunk,
4395         expand_omp_for): Remove cilkplus
4396         conditions.
4397         (expand_cilk_for): Delete.
4398         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
4399         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
4400         execute_lower_omp, diagnose_sb_0): Ditto.
4401         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
4402         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4403         * tree-nested.c: Ditto.
4404         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
4405         (dump_generic_node): Ditto.
4406         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4407         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
4408         Delete.
4409         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
4410
4411 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4412
4413         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
4414         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
4415         for vector mode and !TARGET_SIMD.
4416
4417 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4418
4419         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
4420         Adjust comment.
4421         * tree.h (SWITCH_LABELS): Remove.
4422         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
4423         assert SWITCH_BODY is non-NULL.
4424         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
4425         handling.
4426         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
4427
4428         PR tree-optimization/80788
4429         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
4430         has TREE_OVERFLOW set, call drop_tree_overflow.
4431
4432 2017-11-28  Richard Biener  <rguenther@suse.de>
4433
4434         PR tree-optimization/83158
4435         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
4436
4437 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
4438
4439         PR 81288/target
4440         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
4441         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
4442
4443 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
4444
4445         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
4446         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
4447
4448 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
4449
4450         PR middle_end/82333
4451         * varasm.c (compare_constant): Take the mode of the constants into
4452         account when comparing floating point constants.
4453
4454 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
4455
4456         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
4457         from explicit instantiation of debug_helper.
4458         * vec.h (DEFINE_DEBUG_VEC): Ditto.
4459
4460 2017-11-27  Richard Biener  <rguenther@suse.de>
4461
4462         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
4463         refactor a bit.
4464
4465 2017-11-27  Richard Biener  <rguenther@suse.de>
4466
4467         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
4468         (type_hash_canon): Also clear int_cst_hash_table entry for
4469         TYPE_MIN/MAX_VALUE.
4470         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
4471
4472 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
4473
4474         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4475         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4476         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4477
4478 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4479
4480         * hash-map.h (gt_cleare_cache): Avoid UB.
4481
4482 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
4483
4484         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
4485         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
4486         (decide_unroll_runtime_iterations): Likewise.
4487         (decide_unroll_stupid): Likewise.
4488
4489 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4490
4491         PR target/83109
4492         * config/i386/i386.md: Add a loop with incssp.
4493
4494 2017-11-27  Martin Jambor  <mjambor@suse.cz>
4495
4496         PR tree-optimization/81248
4497         * tree-sra.c (splice_param_accesses): Remove size check.
4498         (decide_one_param_reduction): Fix size check.
4499         * gimple-pretty-print.c (dump_profile): Silence warning.
4500         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
4501
4502 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
4503
4504         PR debug/81307
4505         * dbxout.c (lastlineno): New variable.
4506         (dbx_debug_hooks): Use dbxout_switch_text_section as
4507         switch_text_section debug hook.
4508         (dbxout_function_end): Switch to current_function_section
4509         rather than function_section.  If crtl->has_bb_partition,
4510         output just one N_FUN, depending on in_cold_section_p.
4511         (dbxout_source_line): Remember last lineno in lastlineno.
4512         (dbxout_switch_text_section): New function.
4513         (dbxout_function_decl): Adjust dbxout_block caller.
4514         (dbx_block_with_cold_children): New function.
4515         (dbxout_block): Return true if any LBRAC/RBRAC have been
4516         emitted.  Use dbx_block_with_cold_children at depth == 0
4517         in second partition.  Add PARENT_BLOCKNUM argument, pass
4518         it optionally adjusted to children.  Output LBRAC/RBRAC
4519         around recursive call only if the block is in the current
4520         partition, if not and anything was output, emit empty
4521         range LBRAC/RBRAC.
4522         * final.c (final_scan_insn): Compute cold_function_name
4523         before calling switch_text_section debug hook.  Call
4524         that hook even if dwarf2out_do_frame if not emitting
4525         dwarf debug info.
4526
4527         PR target/83100
4528         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
4529         TREE_READONLY decls.
4530
4531 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4532
4533         PR rtl-optimization/82488
4534         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
4535
4536 2017-11-26  Julia Koval  <julia.koval@intel.com>
4537
4538         * config/i386/i386.c (processor_target_table): Add skylake_cost for
4539         skylake-avx512.
4540         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
4541         skylake_cost): New.
4542
4543 2017-11-26  Julia Koval  <julia.koval@intel.com>
4544
4545         * config/i386/driver-i386.c (host_detect_local_cpu):
4546         Detect skylake-avx512.
4547
4548 2017-11-26  Julia Koval  <julia.koval@intel.com>
4549
4550         * config.gcc: Add -march=cannonlake.
4551         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
4552         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
4553         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
4554         (PTA_CANNONLAKE): New.
4555         (processor_target_table): Add cannonlake.
4556         (ix86_option_override_internal): Ditto.
4557         (fold_builtin_cpu): Ditto.
4558         (get_builtin_code_for_version): Handle cannonlake.
4559         (M_INTEL_COREI7_CANNONLAKE): New.
4560         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
4561         * doc/invoke.texi: Add -march=cannonlake.
4562
4563 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
4564
4565         * plugin.c (add_new_plugin): Use platform-specific library extensions.
4566         (try_init_one_plugin): Alternative implementation for MinGW.
4567         * Makefile.in (plugin_implib): New.
4568         (gengtype-lex.c): Fix broken AIX workaround.
4569         * configure: Regenerate.
4570         * doc/plugins.texi: Document support for MinGW.
4571
4572 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
4573
4574         PR rtl-optimization/81553
4575         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
4576         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
4577         is a shift where C1 has different mode than the whole shift, use C1's
4578         mode for MULT rather than the shift's mode.
4579
4580         PR target/82848
4581         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
4582         builtins not enabled in the currently selected ISA.
4583
4584 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
4585
4586         PR tree-optimization/71026
4587         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
4588         (insert_reciprocals): Change to insert reciprocals before a division
4589         by a square and to insert the square of a reciprocal.
4590         (execute_cse_reciprocals_1): Change to consider division by a square.
4591         (register_division_in): Add importance parameter.
4592
4593 2017-11-24  Richard Biener  <rguenther@suse.de>
4594
4595         PR tree-optimization/82402
4596         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
4597         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
4598
4599 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
4600
4601         * match.pd (0-ptr): New transformation.
4602
4603 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
4604
4605         PR bootstrap/83015
4606         * ipa-inline.c (inline_small_functions): Set current badnes correctly
4607         when skipping checking.
4608
4609 2017-11-24  Richard Biener  <rguenther@suse.de>
4610
4611         PR tree-optimization/83128
4612         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
4613         (vn_reference_lookup_3): Likewise.
4614
4615 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
4616
4617         PR sanitizer/83014
4618         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
4619         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
4620         tree_to_uhwi twice.
4621
4622         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
4623         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
4624         check for the latter with gimple_call_builtin_p.  Do not handle
4625         BUILT_IN_STPNCPY_CHK which is not a pass through call.
4626
4627 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
4628
4629         * config/arm/arm_neon.h: Fix pragma GCC push_options before
4630         vdot_u32.
4631
4632 2017-11-23  Julia Koval  <julia.koval@intel.com>
4633
4634         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
4635         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
4636         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
4637         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
4638         _mm512_maskz_expandloadu_epi16): New intrinsics.
4639         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
4640         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
4641         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
4642         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
4643         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
4644         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
4645         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
4646         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
4647         _mm256_maskz_expandloadu_epi8): New intrinsics.
4648         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
4649         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
4650         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
4651         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
4652         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
4653         * config/i386/sse.md (VI248_VLBW): New iterator.
4654         (expand<mode>_mask, expand<mode>_maskz): New patterns.
4655
4656 2017-11-23  Julia Koval  <julia.koval@intel.com>
4657
4658         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
4659         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
4660         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
4661         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
4662         _mm512_mask_compressstoreu_epi16): New.
4663         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
4664         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
4665         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
4666         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
4667         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
4668         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
4669         _mm256_mask_compressstoreu_epi8): New.
4670         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
4671         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
4672         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
4673         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
4674         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
4675         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
4676         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
4677         __builtin_ia32_compresshi128_mask,
4678         __builtin_ia32_compressstoreuqi512_mask,
4679         __builtin_ia32_compressstoreuhi512_mask,
4680         __builtin_ia32_compressstoreuqi256_mask,
4681         __builtin_ia32_compressstoreuqi128_mask,
4682         __builtin_ia32_compressstoreuhi256_mask,
4683         __builtin_ia32_compressstoreuhi128_mask): New builtins.
4684         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
4685         array for flags2.
4686         (ix86_expand_special_args_builtin): Handle new types.
4687         (s4fma_expand): Handle new builtin array.
4688         * config/i386/immintrin.h: Include new headers.
4689         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
4690         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
4691
4692 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
4693
4694         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
4695         fixes.  Declare temp and g variables at the top in order to avoid
4696         {} in most of the cases.
4697
4698 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
4699
4700         * match.pd (ptr-0): New transformation.
4701
4702 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
4703
4704         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
4705         (struct addr_mode_cost_table): New.
4706         (struct tune_params): Add field addr_mode_costs.
4707         * config/arm/arm.c (generic_addr_mode_costs): New.
4708         (arm_slowmul_tune): Initialise addr_mode_costs field.
4709         (arm_fastmul_tune): Likewise.
4710         (arm_strongarm_tune): Likewise.
4711         (arm_xscale_tune): Likewise.
4712         (arm_9e_tune): Likewise.
4713         (arm_marvell_pj4_tune): Likewise.
4714         (arm_v6t2_tune): Likewise.
4715         (arm_cortex_tune): Likewise.
4716         (arm_cortex_a8_tune): Likewise.
4717         (arm_cortex_a7_tune): Likewise.
4718         (arm_cortex_a15_tune): Likewise.
4719         (arm_cortex_a35_tune): Likewise.
4720         (arm_cortex_a53_tune): Likewise.
4721         (arm_cortex_a57_tune): Likewise.
4722         (arm_exynosm1_tune): Likewise.
4723         (arm_xgene1_tune): Likewise.
4724         (arm_cortex_a5_tune): Likewise.
4725         (arm_cortex_a9_tune): Likewise.
4726         (arm_cortex_a12_tune): Likewise.
4727         (arm_cortex_a73_tune): Likewise.
4728         (arm_v7m_tune): Likewise.
4729         (arm_cortex_m7_tune): Likewise.
4730         (arm_v6m_tune): Likewise.
4731         (arm_fa726te_tune): Likewise.
4732         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
4733
4734 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
4735
4736         * config/arm/arm.c (arm_mem_costs): New function.
4737         (arm_rtx_costs_internal): Use arm_mem_costs.
4738
4739 2017-11-23  Mark Wielaard  <mark@klomp.org>
4740
4741         * dwarf2out.c (init_sections_and_labels): Use generation to create
4742         unique ranges_section_label and ranges_base_label. Return generation.
4743         (output_rnglists): Add generation argument. Use generation to create
4744         unique ranges labels.
4745         (dwarf2out_finish): Get generation from init_sections_and_labels
4746         and pass generation to output_rnglists.
4747
4748 2017-11-23  Mike Stump  <mikestump@comcast.net>
4749             Eric Botcazou  <ebotcazou@adacore.com>
4750
4751         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
4752         * cfgloop.h (struct loop): Add unroll field.
4753         * function.h (struct function): Add has_unroll bitfield.
4754         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
4755         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
4756         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
4757         (pass_rtl_unroll_loops::gate): Likewise.
4758         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
4759         for which loop->unroll==1.
4760         (decide_unroll_constant_iterations): Use note for consistency and
4761         take loop->unroll into account.  Return early if loop->unroll is set.
4762         Fix thinko in existing test.
4763         (decide_unroll_runtime_iterations): Use note for consistency and
4764         take loop->unroll into account.
4765         (decide_unroll_stupid): Likewise.
4766         * lto-streamer-in.c (input_cfg): Read loop->unroll.
4767         * lto-streamer-out.c (output_cfg): Write loop->unroll.
4768         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
4769         New case.
4770         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
4771         (print_loop): Print loop->unroll if set.
4772         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
4773         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
4774         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
4775         New case.
4776         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
4777         loop->unroll is set and smaller than the trip count.  Otherwise bypass
4778         entirely the heuristics if loop->unroll is set.  Remove dead note.
4779         Fix off-by-one bug in other note.
4780         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
4781         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
4782         is greater than 1.
4783         (tree_unroll_loops_completely): Make static.
4784         (pass_complete_unroll::execute): Use correct type for variable.
4785         (pass_complete_unrolli::execute): Fix formatting.
4786         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
4787
4788 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4789
4790         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
4791         enable when TARGET_PREFER_AVX128 is set.
4792
4793 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4794
4795         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
4796         frequency.
4797         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
4798         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
4799
4800 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4801
4802         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
4803         frequencies. Fix estimation of aggregate parameters.
4804
4805 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4806
4807         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
4808         when inlining.
4809
4810 2017-11-23  Tom de Vries  <tom@codesourcery.com>
4811
4812         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
4813
4814 2017-11-23  Tom de Vries  <tom@codesourcery.com>
4815
4816         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
4817         macro.
4818
4819 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
4820
4821         PR target/83111
4822         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
4823         sibcall_value_pcrel_fdpic): Use local variable instead of
4824         operands[3].
4825         (calli_tbr_rel): Add missing operand 2.
4826         (call_valuei_tbr_rel): Add missing operand 3.
4827
4828 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
4829
4830         PR middle-end/82253
4831         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
4832         bitpos/bitsize covering the whole destination, use store_expr only if
4833         the complex mode is the same.  Otherwise, use expand_normal and if
4834         it returns CONCAT, subreg each part separately instead of trying to
4835         subreg the whole result.
4836
4837 2017-11-23  Richard Biener  <rguenther@suse.de>
4838
4839         PR tree-optimization/23094
4840         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
4841         come here from walking over backedges in the first iteration.
4842         (vn_reference_lookup_3): Skip clobbers that store the same value.
4843
4844 2017-11-23  Richard Biener  <rguenther@suse.de>
4845
4846         PR tree-optimization/81403
4847         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
4848         a block we need a leader relative to.
4849         (phi_translate_1): For nary processing require a leader from
4850         get_representative_for given we run expression simplification
4851         using match-and-simplify.  Remove previous fix.
4852
4853 2017-11-22  Jeff Law  <law@redhat.com>
4854
4855         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
4856         Use new method allocate_value_range rather than accessing the
4857         vrp_value_range_pool data member directly.
4858         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
4859         to use extract_range_from_stmt method to avoid need for
4860         extract_range_from_assignment method.
4861         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
4862         method rather than setting values_propgated data member directly.
4863         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
4864         and values propagated data members and extract_range_from_assignment
4865         method.  Reorder private data members to conform to standards.
4866         Add new methods set_lattice_propagation_complete and
4867         allocate_value_range.
4868
4869 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
4870
4871         PR rtl-optimization/83030
4872         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
4873         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
4874         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
4875         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
4876         CROSSING_JUMP_P flag is already set before setting it.
4877         * cfgrtl.c (fixup_partition_crossing): Likewise.
4878         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
4879         insn as useless.
4880
4881 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
4882
4883         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
4884         Handle the case where both arguments are using gen_const_vec_series.
4885
4886 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
4887
4888         PR c++/62170
4889         * pretty-print.c (pp_format): Move quoting implementation to
4890         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
4891         to pass address of "quote" local.
4892         (pp_begin_quote): New function.
4893         (pp_end_quote): New function.
4894         * pretty-print.h (printer_fn): Convert penultimate param from bool
4895         to bool *.
4896         (pp_begin_quote): New decl.
4897         (pp_end_quote): New decl.
4898         * tree-diagnostic.c (default_tree_printer): Convert penultimate
4899         param from bool to bool *.
4900         * tree-diagnostic.h (default_tree_printer): Likewise.
4901
4902 2017-11-22  Jeff Law  <law@redhat.com>
4903
4904         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
4905         Initialize vr_values.
4906         (evrp_range_analyzer::try_find_new_range): Call methods attached to
4907         vr_values via vr_values class instance rather than delegators.
4908         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
4909         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4910         (evrp_range_analyzer::push_value_range): Likewise.
4911         (evrp_range_analyzer::pop_value_range): Likewise.
4912         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
4913         most delegators.  Those remaining are exposed as public interfaces.
4914         Make vr_values a pointer and private.
4915         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
4916         vr_values.
4917         (evrp_range_analyzer::get_vr_value): New method.
4918         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
4919         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
4920         (class evrp_dom_walker): Attach evrp_folder class, initialize
4921         it in the ctor.  Remove temporary delegators.
4922         (evrp_dom_walker::before_dom_children): Call methods in attached
4923         evrp_range_analyzer class via class instance pointer.  Use
4924         free value_range_constant_singleton to remove need for
4925         op_with_constant_singleton_value delegator method.  Do not
4926         create a vrp_prop class instance for every call!  Narrow
4927         scope of a couple variables.
4928         (evrp_dom_walker::cleanup): Call methods in attached
4929         evrp_range_analyzer class via class instance pointer.
4930         * vr-values.h (class vr_values): Privatize many methods and
4931         data members.
4932
4933 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4934
4935         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
4936         * cfgexpand.c (expand_debug_expr): Remove handling for them.
4937         * expr.c (expand_expr_real_2): Likewise.
4938         * fold-const.c (const_unop): Likewise.
4939         * optabs-tree.c (optab_for_tree_code): Likewise.
4940         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
4941         * tree-inline.c (estimate_operator_cost): Likewise.
4942         * tree-pretty-print.c (dump_generic_node): Likewise.
4943         (op_code_prio): Likewise.
4944         (op_symbol_code): Likewise.
4945         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
4946         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
4947         * internal-fn.c (direct_internal_fn_optab): New function.
4948         (direct_internal_fn_array, direct_internal_fn_supported_p
4949         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
4950         * fold-const-call.c (fold_const_reduction): New function.
4951         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
4952         CFN_REDUC_MIN.
4953         * tree-vect-loop.c: Include internal-fn.h.
4954         (reduction_code_for_scalar_code): Rename to...
4955         (reduction_fn_for_scalar_code): ...this and return an internal
4956         function.
4957         (vect_model_reduction_cost): Take an internal_fn rather than
4958         a tree_code.
4959         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
4960         than assignments.
4961         (vectorizable_reduction): Use internal functions rather than tree
4962         codes for the reduction operation.  Update calls to the functions
4963         above.
4964         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
4965         Use calls to internal functions rather than REDUC tree codes.
4966         * config/aarch64/aarch64-simd.md: Update comment accordingly.
4967
4968 2017-11-22  Olivier Hainque  <hainque@adacore.com>
4969
4970         * config/vxworks.c (vxworks_override_options): Pick default
4971         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
4972         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
4973         DWARF_GNAT_ENCODINGS_DEFAULT.
4974         * config/vxworksae.h: Likewise.
4975
4976 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
4977
4978         PR tree-optimization/83104
4979         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
4980         not result.
4981
4982 2017-11-22  Marek Polacek  <polacek@redhat.com>
4983             H.J. Lu  <hongjiu.lu@intel.com>
4984             Jason Merrill  <jason@redhat.com>
4985
4986         PR c++/60336
4987         PR middle-end/67239
4988         PR target/68355
4989         * calls.c (initialize_argument_information): Call
4990         warn_parameter_passing_abi target hook.
4991         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
4992         argument onto stack.
4993         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
4994         * common.opt: Update -fabi-version description.
4995         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
4996         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
4997         int_size_in_bytes.
4998         (ix86_is_empty_record): New function.
4999         (ix86_warn_parameter_passing_abi): New function.
5000         (TARGET_EMPTY_RECORD_P): Redefine.
5001         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
5002         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
5003         * doc/tm.texi: Regenerated.
5004         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
5005         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
5006         * dwarf2out.c (get_ultimate_context): Move to tree.c.
5007         * explow.c (hard_function_value): Call arg_int_size_in_bytes
5008         instead of int_size_in_bytes.
5009         * expr.c (copy_blkmode_to_reg): Likewise.
5010         * function.c (aggregate_value_p): Return 0 for empty types.
5011         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
5012         target hook.
5013         (locate_and_pad_parm): Call arg size_in_bytes instead
5014         size_in_bytes.
5015         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
5016         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
5017         * target.def (empty_record_p, warn_parameter_passing_abi): New target
5018         hooks.
5019         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
5020         (std_gimplify_va_arg_expr): Skip empty records.  Call
5021         arg_size_in_bytes instead size_in_bytes.
5022         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
5023         * tree-core.h (tree_type_common): Add empty_flag.
5024         (tree_decl_common): Update comments.
5025         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
5026         DECL_PADDING_P.
5027         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5028         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
5029         DECL_PADDING_P.
5030         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5031         * tree.c (default_is_empty_type): New function.
5032         (default_is_empty_record): New function.
5033         (arg_int_size_in_bytes): New function.
5034         (arg_size_in_bytes): New function.
5035         (get_ultimate_context): New function.
5036         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
5037         TRANSLATION_UNIT_WARN_EMPTY_P.
5038         (default_is_empty_record, arg_int_size_in_bytes,
5039         arg_size_in_bytes, get_ultimate_context): Declare.
5040
5041 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5042
5043         * config/arm/arm.c (cmse_clear_registers): New function.
5044         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
5045         code by call to cmse_clear_registers.
5046         (cmse_nonsecure_entry_clear_before_return): Likewise.
5047
5048 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
5049
5050         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
5051         (vdot_s32, vdotq_s32): New.
5052         (vdot_lane_u32, vdotq_lane_u32): New.
5053         (vdot_lane_s32, vdotq_lane_s32): New.
5054
5055
5056 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5057
5058         PR middle-end/82547
5059         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
5060         for unsigned values with fewer HWIs than the precision.
5061         (test_overflow): New function.
5062         (wide_int_cc_tests): Call it.
5063
5064 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5065
5066         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
5067         has the same mode class as Pmode.
5068
5069 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5070
5071         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
5072         padding_bits_to_clear_ptr.
5073         (cmse_nonsecure_entry_clear_before_return): Likewise.
5074
5075 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5076
5077         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
5078         auto_sbitap instead of integer bitfield to control register needing
5079         clearing.
5080
5081 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5082
5083         PR tree-optimization/83044
5084         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
5085         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
5086         that need the upper bound.  Subtract offset from
5087         get_addr_base_and_unit_offset only if positive and subtract it
5088         before division by eltsize rather than after it.
5089
5090         PR debug/83084
5091         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
5092         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
5093         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
5094         asm.
5095
5096         PR middle-end/82875
5097         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
5098         expand_binop with *mul_widen_optab, make sure at least one of the
5099         operands doesn't have VOIDmode.
5100
5101         PR debug/83034
5102         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
5103
5104         PR rtl-optimization/82044
5105         PR tree-optimization/82042
5106         * dse.c (record_store): Check for overflow.
5107         (check_mem_read_rtx): Properly check for overflow if width == -1, call
5108         add_wild_read instead of clear_rhs_from_active_local_stores on
5109         overflow and log it into dump_file.
5110
5111 2017-11-22  Richard Biener  <rguenther@suse.de>
5112
5113         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
5114         fake edges to exit when looking for a place to insert.
5115         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
5116         and remove.
5117         (insert_into_preds_of_block): Commit edge insertion immediately,
5118         assert that doesn't require new BBs.
5119         (fini_pre): Release expressions.
5120         (pass_pre::execute): Shuffle things around a bit, if the fn
5121         is too large do not compute AVAIL either as this is really the
5122         quadratic bit.
5123
5124 2017-11-22  Richard Biener  <rguenther@suse.de>
5125
5126         PR tree-optimization/83089
5127         * tree-if-conv.c (pass_if_conversion::execute): If anything
5128         changed reset SCEV and free the number of iteration estimates.
5129
5130 2017-11-21  Martin Sebor  <msebor@redhat.com>
5131
5132         PR tree-optimization/82945
5133         * calls.h (warn_nonstring_bound): Remove unused function.
5134
5135 2017-11-21  Martin Sebor  <msebor@redhat.com>
5136
5137         PR tree-optimization/82945
5138         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
5139         * calls.h (maybe_warn_nonstring_arg): Declare new function.
5140         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
5141         functions.
5142         (initialize_argument_information): Call maybe_warn_nonstring_arg.
5143         * calls.h (get_attr_nonstring_decl): Declare new function.
5144         * doc/extend.texi (attribute nonstring): Update.
5145         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
5146         get_attr_nonstring_decl and handle it.
5147         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
5148         detection of nul-termination.
5149         (strlen_to_stridx): Change to a pointer.
5150         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
5151         (pass_strlen::execute): Same.
5152
5153 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5154
5155         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
5156         for the new option -mprefer-vector-width=[none|128|256|512].
5157         * config/i386/i386.c (ix86_target_string): remove old style options
5158         -mprefer-avx256 and make -mprefer-avx128 as alias.
5159         (ix86_option_override_internal):  Apply defaults for the
5160         -mprefer-vector-width=[128|256] option.
5161         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
5162         Implement macros to work with -mprefer-vector-width=.
5163         * config/i386/i386.opt: Implemented option
5164         -mprefer-vector-width=[none|128|256|512].
5165         * doc/invoke.texi: Documentation for
5166         -mprefer-vector-width=[none|128|256|512].
5167
5168 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
5169
5170         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
5171
5172 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
5173
5174         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
5175
5176 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
5177
5178         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
5179         POINTER_PLUS_EXPR.
5180         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
5181         * expr.c (expand_expr_real_2): Likewise.
5182         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
5183         fold_binary_loc): Likewise.
5184         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
5185         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
5186         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
5187         MINUS_EXPR transformations.
5188         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
5189         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
5190         * tree-inline.c (estimate_operator_cost): Likewise.
5191         * tree-pretty-print.c (dump_generic_node, op_code_prio,
5192         op_symbol_code): Likewise.
5193         * tree-vect-stmts.c (vectorizable_operation): Likewise.
5194         * vr-values.c (extract_range_from_binary_expr): Likewise.
5195         * varasm.c (initializer_constant_valid_p_1): Likewise.
5196         * tree.def: New tree code POINTER_DIFF_EXPR.
5197
5198 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
5199
5200         * config/i386/i386.md (*bswap<mode>2_movbe): Add
5201         integer suffix to movbe mnemonic.
5202         (*bswaphi2_movbe): Ditto.
5203         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
5204
5205 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5206
5207         PR c++/83045
5208         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
5209         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
5210         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
5211
5212 2017-11-21  Martin Liska  <mliska@suse.cz>
5213
5214         * tree-inline.c (expand_call_inline): Remove not needed
5215         xstrdup_for_dump.
5216
5217 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
5218             Jakub Jelinek  <jakub@redhat.com>
5219
5220         PR target/82880
5221         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
5222         Remove static keyword from f variable.
5223
5224 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5225
5226         PR tree-optimization/83086
5227         * gimple-ssa-store-merging.c
5228         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
5229         rather than n.base_addr.
5230
5231 2017-11-21  Martin Liska  <mliska@suse.cz>
5232
5233         PR rtl-optimization/82044
5234         PR tree-optimization/82042
5235         * dse.c (check_mem_read_rtx): Check for overflow.
5236
5237 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5238
5239         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
5240         typo in comment.
5241
5242 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5243
5244         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
5245         and its corresponding call arg location note.
5246
5247 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5248             Andrew Burgess  <andrew.burgess@embecosm.com>
5249
5250         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
5251         declaration.
5252         (arc_return_slot_offset): Likewise.
5253         (arc_eh_return_address_location): New declaration.
5254         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5255         (MUST_SAVE_REGISTER): Add exception handler case.
5256         (MUST_SAVE_RETURN_ADDR): Likewise.
5257         (arc_frame_pointer_required): Likewise.
5258         (arc_frame_pointer_needed): New function.
5259         (arc_compute_frame_size): Changed.
5260         (arc_expand_prologue): Likewise.
5261         (arc_expand_epilogue): Likewise.
5262         (arc_initial_elimination_offset): Likewise.
5263         (arc_return_slot_offset): Delete.
5264         (arc_eh_return_address_location): New function.
5265         (arc_builtin_setjmp_frame_value): Likewise.
5266         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
5267         (EH_RETURN_STACKADJ_RTX): Define.
5268         (EH_RETURN_HANDLER_RTX): Likewise.
5269         * config/arc/arc.md (eh_return): Delete.
5270
5271 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5272
5273         * print-tree.h (debug_vec_tree): Remove prototype.
5274         * gdbinit.in (pvt): Remove macro.
5275
5276 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5277
5278         PR tree-optimization/83047
5279         * gimple-ssa-store-merging.c
5280         (imm_store_chain_info::output_merged_store): If the loads with the
5281         same vuse are in different basic blocks, for load_gsi pick a load
5282         location that is dominated by the other loads.
5283
5284         PR c++/83059
5285         * config/i386/i386.c (ix86_memmodel_check): Start
5286         -Winvalid-memory-model diagnostics with lowercase letter.
5287
5288         PR debug/82718
5289         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
5290         set in_cold_section_p to the partition containing loc_list->first.
5291         When seeing loc_list->last_before_switch node, update secname and
5292         perform range_across_switch second partition handling only after that.
5293
5294         PR debug/82933
5295         * run-rtl-passes.c: Include debug.h.
5296         (run_rtl_passes): Call debug_hooks->assembly_start.
5297         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
5298         multiple times.
5299
5300         PR target/82981
5301         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
5302         OPTAB_DIRECT in calls to expand_simple_binop.
5303
5304 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5305
5306         PR c/81404
5307         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
5308
5309 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5310
5311         PR c++/72786
5312         * spellcheck.h (best_match::blithely_get_best_candidate): New
5313         accessor.
5314
5315 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5316
5317         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
5318         with lower case letter.
5319
5320 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
5321
5322         * config/i386/i386.md (bswaphi2): New expander.
5323         (*bswaphi2_movbe): New insn pattern.
5324         (bswaphi -> rorhi pepehole2): New peephole pattern.
5325
5326 2017-11-20  Jeff Law  <law@redhat.com>
5327
5328         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
5329         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
5330         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
5331         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
5332         gimple-ssa-evrp-analyze.h.
5333
5334         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
5335         set BB_VISITED here.
5336         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
5337
5338 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5339
5340         * tree-predcom.c: Add general comment on Store-Store chains.
5341         (split_data_refs_to_components): Postpone clearing eliminate_store_p
5342         flag in component.
5343         (get_chain_last_ref_at): Rename into...
5344         (get_chain_last_write_at): ...this.
5345         (get_chain_last_write_before_load): New function.
5346         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
5347         CT_STORE_STORE when write reference is added.
5348         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
5349         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
5350         (initialize_root_vars_store_elim_1): Ditto.
5351         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
5352         definition is created.
5353         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
5354         chain by replacing it with dominant stored value.
5355
5356 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5357
5358         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
5359
5360 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
5361
5362         * vr-values.c (extract_range_from_binary_expr): Use a full range
5363         for VR_VARYING.
5364
5365 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5366
5367         * config/arm/arm.md (R4_REGNUM): Define constant.
5368         (nonsecure_call_internal): Remove r4 clobber.
5369         (nonsecure_call_value_internal): Likewise.
5370         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
5371         clobber and resequence match_operands.
5372         (nonsecure_call_value_reg_thumb1_v5): Likewise.
5373         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
5374         (nonsecure_call_value_reg_thumb2): Likewise.
5375
5376 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5377
5378         PR tree-optimization/78821
5379         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
5380         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
5381         to the address of the base rather than the base itself.
5382         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
5383         (find_bswap_or_nop_finalize): New function.
5384         (find_bswap_or_nop): Use it.
5385         (bswap_replace): Return a tree rather than bool, change first
5386         argument from gimple * to gimple_stmt_iterator, allow inserting
5387         into an empty sequence, allow ins_stmt to be NULL - then emit
5388         all stmts into gsi.  Fix up MEM_REF address gimplification.
5389         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
5390         (struct store_immediate_info): Add N and INS_STMT non-static
5391         data members.
5392         (store_immediate_info::store_immediate_info): Initialize them
5393         from newly added ctor args.
5394         (merged_store_group::apply_stores): Formatting fixes.  Sort by
5395         bitpos at the end.
5396         (stmts_may_clobber_ref_p): For stores call also
5397         refs_anti_dependent_p.
5398         (gather_bswap_load_refs): New function.
5399         (imm_store_chain_info::try_coalesce_bswap): New method.
5400         (imm_store_chain_info::coalesce_immediate_stores): Use it.
5401         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
5402         (imm_store_chain_info::output_merged_store): Fail if number of
5403         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
5404         and NOP_EXPR rhs_code.
5405         (pass_store_merging::process_store): Compute n and ins_stmt, if
5406         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
5407         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
5408         ctor.
5409         (pass_store_merging::execute): Calculate dominators.
5410
5411         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
5412         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
5413         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
5414         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5415         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
5416         class pass_optimize_bswap, bswap_replace,
5417         pass_optimize_bswap::execute): Moved to ...
5418         * gimple-ssa-store-merging.c: ... this file.
5419         Include optabs-tree.h.
5420         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
5421         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5422         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
5423         anonymous namespace, remove static keywords.
5424         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
5425         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
5426
5427 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
5428
5429         PR bootstrap/83062
5430         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
5431
5432 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
5433
5434         * vec.h (debug_helper): New function.
5435         (DEFINE_DEBUG_VEC): New macro.
5436         * hash-set.h (debug_helper): New function.
5437         (DEFINE_DEBUG_HASH_SET): New macro.
5438         * cfg.c (debug_slim (edge)): New function.
5439         Call DEFINE_DEBUG_VEC for edges.
5440         Call DEFINE_DEBUG_HASH_SET for edges.
5441         * cfghooks.c (debug_slim (basic_block)): New function.
5442         Call DEFINE_DEBUG_VEC for basic blocks.
5443         Call DEFINE_DEBUG_HASH_SET for basic blocks.
5444         * print-tree.c (debug_slim): New function to handle trees.
5445         Call DEFINE_DEBUG_VEC for trees.
5446         Call DEFINE_DEBUG_HASH_SET for trees.
5447         (debug (vec<tree, va_gc>) &): Remove.
5448         (debug (<vec<tree, va_gc>) *): Remove.
5449         * print-rtl.c (debug_slim): New function to handle const_rtx.
5450         Call DEFINE_DEBUG_VEC for rtx_def.
5451         Call DEFINE_DEBUG_VEC for rtx_insn.
5452         Call DEFINE_DEBUG_HASH_SET for rtx_def.
5453         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
5454         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
5455         (debug (vec<rtx_insn *> *ptr): Remove.
5456         (debug_insn_vector): Remove.
5457         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
5458
5459 2017-11-20  Tom de Vries  <tom@codesourcery.com>
5460
5461         PR rtl-optimization/82020
5462         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
5463         IF_THEN_ELSE condition.
5464
5465 2017-11-19  Jeff Law  <law@redhat.com>
5466
5467         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
5468         of degenerates resulting from ignoring an edge.
5469
5470 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5471
5472         PR ipa/81360
5473         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
5474
5475 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5476
5477         PR ipa/83001
5478         * profile-count.c (profile_count::to_sreal_scale): Fix return value
5479         for uninitialied counts.
5480
5481 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5482
5483         PR ipa/60243
5484         * tree-inline.c (estimate_num_insns): Set to 1 at least.
5485
5486 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5487
5488         PR target/82713
5489         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
5490
5491 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5492
5493         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
5494         "do while (0)".
5495
5496 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5497
5498         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
5499         "do {} while (0)".
5500
5501 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5502
5503         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
5504         macro body.
5505
5506 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5507
5508         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
5509         "do {} while (0)".
5510         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
5511
5512 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5513
5514         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
5515         "do {} while (0)".
5516         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
5517         semicolon after MCORE_EXPORT_NAME call.
5518
5519 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5520
5521         PR target/82961
5522         * vmsdbgout.c (vmsdbgout_early_finish): New function.
5523         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
5524
5525 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
5526
5527         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
5528         (cgraph_edge::clone): Cleanup updating of profile.
5529         * ipa-cp.c (update_profiling_info): Likewise.
5530         * ipa-inline-transform.c (inline_transform): Likewise.
5531         * ipa-inline.c (inline_small_functions): Add missing space to dump.
5532         * ipa-split.c (execute_split_functions): Do not split when function
5533         is cold.
5534         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
5535         * profile-count.c (profile_count::dump): Add global0.
5536         (profile_count::to_cgraph_frequency): Do not ICE when entry is
5537         undefined.
5538         (profile_count::to_sreal_scale): Likewise.
5539         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
5540         (profile_count::combine_with_ipa_count): New function.
5541         * profile-count.h (profile_guessed_global0adjusted): New.
5542         (profile_count::adjusted_zero): New.
5543         (profile_count::global0adjusted): New.
5544         (profile_count::combine_with_ipa_count): New.
5545         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
5546         correct profile of return block of split functions.
5547         (copy_cfg_body): Remove unused profile_count.
5548         (copy_body): Likewise.
5549         (expand_call_inline): Update.
5550         (tree_function_versioning): Update.
5551
5552 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
5553
5554         * hash-set.h (hash_set::empty): New.
5555         * tree-ssa-threadbackward.h: Delete.
5556         * tree-ssa-threadbackward.c (class thread_jumps): New.
5557         Move max_threaded_paths into class.
5558         (fsm_find_thread_path): Remove arguments that are now in class.
5559         (profitable_jump_thread_path): Rename to...
5560         (thread_jumps::profitable_jump_thread_path): ...this.
5561         (convert_and_register_jump_thread_path): Rename to...
5562         (thread_jumps::convert_and_register_current_path): ...this.
5563         (check_subpath_and_update_thread_path): Rename to...
5564         (thread_jumps::check_subpath_and_update_thread_path): ...this.
5565         (register_jump_thread_path_if_profitable): Rename to...
5566         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
5567         (handle_phi): Rename to...
5568         (thread_jumps::handle_phi): ...this.
5569         (handle_assignment): Rename to...
5570         (thread_jumps::handle_assignment): ...this.
5571         (fsm_find_control_statement_thread_paths): Rename to...
5572         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
5573         (find_jump_threads_backwards): Rename to...
5574         (thread_jumps::find_jump_threads_backwards): ...this.
5575         Initialize path local data.
5576         (pass_thread_jumps::execute): Call find_jump_threads_backwards
5577         from within thread_jumps class.
5578         (pass_early_thread_jumps::execute): Same.
5579
5580 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5581
5582         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
5583
5584 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
5585
5586         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
5587         to canonical location.
5588
5589 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
5590
5591         PR target/81356
5592         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
5593         Remove.
5594         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
5595
5596 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
5597
5598         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
5599         rcrt1.o%s/grcrt1.o%s for -static-pie.
5600
5601 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5602
5603         * i386.c (ix86_multiplication_cost, ix86_division_cost,
5604         ix86_shift_rotate_cost): Break out from ...
5605         (ix86_rtx_costs): ... here.
5606         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
5607         vector operations.
5608
5609 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5610
5611         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
5612         when entry block was promoted unlikely.
5613         (estimate_bb_frequencies): Increase frequency scale.
5614         * profile-count.h (profile_count): Export precision info.
5615
5616 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5617
5618         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
5619         disturbin profile of entry block.
5620
5621 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5622
5623         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
5624         roundoff errors.
5625
5626 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5627
5628         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
5629         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
5630
5631 2017-11-17  Jeff Law  <law@redhat.com>
5632
5633         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
5634         from evrp_dom_walker class.  Various methods moved into new class.
5635         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
5636         (evrp_range_analyzer::enter): New method.
5637         (evrp_range_analyzer::leave): New method.
5638         (evrp_dom_walker): Remove delegators no longer needed by this class.
5639         Replace vr_values data member with evrp_range_analyzer
5640
5641         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
5642         method extracted from evrp_dom_walker::before_dom_children.
5643         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
5644         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
5645
5646         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
5647         Add private copy constructor and move assignment operators.
5648         Privatize methods and class data where trivially possible.
5649         (evrp_dom_walker::cleanup): New function, extracted from
5650         execute_early_vrp.  Simplify access to class data.
5651
5652         * vr-values.h (get_output_for_vrp): Prototype.
5653         * vr-values.c (get_output_for_vrp): New function extracted from
5654         vrp_visit_assignment_or_call and extract_range_from_stmt.
5655         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
5656
5657 2017-11-17  Luis Machado  <luis.machado@linaro.org>
5658
5659         * config/aarch64/aarch64.c
5660         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
5661         (qdf24xx_tunings) <autoprefetcher_model>: Set to
5662         tune_params::AUTOPREFETCHER_WEAK.
5663
5664 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
5665
5666         PR target/82641
5667         * config/arm/arm.c (arm_valid_target_attribute_rec):
5668         Parse "arch=" and "+<ext>".
5669         (arm_valid_target_attribute_tree): Re-init global options.
5670         (arm_option_override): Make non-static.
5671         (arm_options_perform_arch_sanity_checks): Make errors fatal.
5672         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
5673         (__ARM_FEATURE_CRC32): Support undef.
5674         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
5675         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
5676
5677 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
5678
5679         * gdbinit.in (break-on-diagnostic): New command.
5680
5681 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5682
5683         * config/i386/i386.c (ix86_expand_epilogue): Change simple
5684         return to indirect jump for EH return if control-flow
5685         protection is enabled. Change explicit 'false' argument in
5686         pro_epilogue_adjust_stack with a value of
5687         flag_cf_protection.
5688         * config/i386/i386.md (simple_return_indirect_internal):
5689         Remove SImode restriction to support 64-bit.
5690
5691 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
5692
5693         * combine.c (added_notes_insn): New.
5694         (try_combine): Handle added_notes_insn like added_links_insn.
5695         Rewrite return value code.
5696         (distribute_notes): Set added_notes_insn to the earliest insn we added
5697         a note to.
5698
5699 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
5700
5701         PR rtl-optimization/82621
5702         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
5703         dest of one of those SETs is unused.
5704
5705 2017-11-17  Richard Biener  <rguenther@suse.de>
5706
5707         PR fortran/83017
5708         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
5709         * tree-pretty-print.c (dump_generic_node): Handle
5710         annot_expr_parallel_kind.
5711         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
5712         * gimplify.c (gimple_boolify): Likewise.
5713
5714 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5715
5716         * config.gcc (extra_headers): Add cet.h for x86 targets.
5717         * config/i386/cet.h: New file.
5718         * doc/install.texi: Add --enable-cet/--disable-cet.
5719
5720 2017-11-17  Richard Biener  <rguenther@suse.de>
5721
5722         PR tree-optimization/83017
5723         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
5724         (gen_parallel_loop): Properly count iterations.
5725         (parallelize_loops): Handle loop->can_be_parallel independent
5726         of flag_loop_parallelize_all.  Make static profitability test match
5727         the runtime one.
5728         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
5729         * invoke.texi (parloops-min-per-thread): Document.
5730
5731 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
5732
5733         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
5734         upstreaming review comments.
5735
5736 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
5737
5738         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
5739         with fast unaligned access.
5740         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
5741
5742 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5743
5744         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
5745         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
5746
5747 2017-11-17  Richard Biener  <rguenther@suse.de>
5748
5749         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
5750         folding of references.
5751
5752 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
5753
5754         PR middle-end/78809
5755         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
5756         of replacing call to strncmp with corresponding call to strcmp when
5757         meeting conditions.
5758
5759 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5760
5761         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
5762         option prefer-avx256 for skylake-avx512 configuration.
5763         * config/i386/i386.c (ix86_option_override_internal): Ditto.
5764         (get_builtin_code_for_version): Ditto.
5765
5766 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
5767             Monk Chiang  <sh.chiang04@gmail.com>
5768
5769         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
5770         (FIXED_REGISTERS): Reserve more register numbers.
5771         (CALL_USED_REGISTERS): Likewise.
5772         (REG_ALLOC_ORDER): Likewise.
5773         (REG_CLASS_CONTENTS): Likewise.
5774         (REGISTER_NAMES): Likewise.
5775
5776 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
5777             Kito Cheng  <kito.cheng@gmail.com>
5778
5779         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
5780         V2SI.
5781         * config/nds32/iterators.md: Add vector mode iterators and attributes.
5782
5783 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
5784
5785         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
5786         parameter list for vec_splats.
5787
5788 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
5789
5790         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
5791         date of C17.
5792         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
5793
5794 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
5795
5796         PR bootstrap/82856
5797         * doc/install.texi: Document incompatibility of Perl >=5.6.26
5798         with the required version of automake 1.11.6.
5799
5800 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
5801
5802         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
5803         for it.
5804         (DU_C2_3_power9): Correct reservation combinations.
5805         (FP_DIV_power9, VEC_DIV_power9): New.
5806         (power9-alu): Split out rotate/shift...
5807         (power9-rot): ...to here, correct dispatch resource.
5808         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
5809         resource.
5810         (power9-fp): Correct latency.
5811         (power9-sdiv): Add div/sqrt resource.
5812         (power9-ddiv): Correct latency, add div/sqrt resource.
5813         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
5814         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
5815         resource.
5816         (power9-qpdiv, power9-qpmul): Adjust resource usage.
5817
5818 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5819
5820         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
5821         switch statement mapping KF built-ins to TF built-ins if we don't
5822         have the proper ISA 3.0 assembler support.
5823
5824 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5825
5826         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
5827         (lower_emutls_function_body): Do not compute it.
5828
5829 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5830
5831         * ipa-split.c (split_bb_info): Turn time to sreal.
5832         (split_point): Likewise.
5833         (dump_split_point): Likewise.
5834         (fine_split_points): Likewise.
5835         (execute_split_functions): Only zero split_bbs; turn time to sreals.
5836
5837 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5838
5839         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
5840         in sreal.
5841
5842 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5843
5844         * predict.c (combine_predictions_for_bb): Preserve zero predicted
5845         edges.
5846         (expensive_function_p): Remove useless assert.
5847         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
5848
5849 2017-11-16  Martin Sebor  <msebor@redhat.com>
5850
5851         PR tree-optimization/82588
5852         PR tree-optimization/82583
5853         * tree-vrp.c (check_array_ref): Handle flexible array members,
5854         string literals, and inner indices.
5855         (search_for_addr_array): Add detail to diagnostics.
5856
5857 2017-11-16  Nathan Sidwell  <nathan@acm.org>
5858
5859         PR c++/82836
5860         PR c++/82737
5861         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
5862         (SET_DECL_ASSEMBLER_NAME): Forward to
5863         overwrite_decl_assembler_name.
5864         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
5865         (overwrite_decl_assembler_name): Declare.
5866         * tree.c (overwrite_decl_assembler_name): New.
5867         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
5868         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
5869         (LANG_HOOKS_INITIALIZER): Add it.
5870         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
5871         * langhooks.c (lhd_set_decl_assembler_name): Use
5872         SET_DECL_ASSEMBLER_NAME.
5873         (lhd_overwrite_decl_assembler_name): Default implementation.
5874
5875 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
5876             Jackson Woodruff  <jackson.woodruff@arm.com>
5877
5878         PR tree-optimization/71026
5879         * match.pd: Canonicalize constant multiplies in division.
5880
5881 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
5882
5883         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
5884         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
5885         Remove OPT_fomit_frame_pointer entry.
5886         * common/config/arc/arc-common.c: Likewise.
5887         * common/config/arm/arm-common.c: Likewise.
5888         * common/config/avr/avr-common.c: Likewise.
5889         * common/config/c6x/c6x-common.c: Likewise.
5890         * common/config/cr16/cr16-common.c: Likewise.
5891         * common/config/cris/cris-common.c: Likewise.
5892         * common/config/epiphany/epiphany-common.c: Likewise.
5893         * common/config/fr30/fr30-common.c: Likewise.
5894         * common/config/frv/frv-common.c: Likewise.
5895         * common/config/ia64/ia64-common.c: Likewise.
5896         * common/config/iq2000/iq2000-common.c: Likewise.
5897         * common/config/lm32/lm32-common.c: Likewise.
5898         * common/config/m32r/m32r-common.c: Likewise.
5899         * common/config/mcore/mcore-common.c: Likewise.
5900         * common/config/microblaze/microblaze-common.c: Likewise.
5901         * common/config/mips/mips-common.c: Likewise.
5902         * common/config/mmix/mmix-common.c: Likewise.
5903         * common/config/mn10300/mn10300-common.c: Likewise.
5904         * common/config/nios2/nios2-common.c: Likewise.
5905         * common/config/pa/pa-common.c: Likewise.
5906         * common/config/pdp11/pdp11-common.c: Likewise.
5907         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
5908         * common/config/riscv/riscv-common.c: Likewise.
5909         * common/config/rs6000/rs6000-common.c: Likewise.
5910         * common/config/rx/rx-common.c: Likewise.
5911         * common/config/s390/s390-common.c: Likewise.
5912         * common/config/sh/sh-common.c: Likewise.
5913         * common/config/sparc/sparc-common.c: Likewise.
5914         * common/config/tilegx/tilegx-common.c: Likewise.
5915         * common/config/tilepro/tilepro-common.c: Likewise.
5916         * common/config/v850/v850-common.c: Likewise.
5917         * common/config/visium/visium-common.c: Likewise.
5918         * common/config/xstormy16/xstormy16-common.c: Likewise.
5919         * common/config/xtensa/xtensa-common.c: Likewise.
5920         * invoke.texi (-fomit-frame-pointer): Update documentation.
5921
5922 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5923
5924         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
5925
5926 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5927
5928         * cfg.c (scale_bbs_frequencies_int,
5929         cale_bbs_frequencies_gcov_type): Remove.
5930         * cfg.h (scale_bbs_frequencies_int,
5931         cale_bbs_frequencies_gcov_type): Remove.
5932
5933 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5934
5935         * tree-ssa-loop-manip.c
5936         (scale_dominated_blocks_in_loop): Update to profile counts.
5937         (tree_transform_and_unroll_loop): Likewise.
5938
5939 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5940
5941         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
5942         scale_bbs_frequencies_int.
5943
5944 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5945
5946         * final.c (compute_alignments): Use counts rather than frequencies.
5947
5948 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5949
5950         * cfgloopanal.c: Include sreal.h
5951         (average_num_loop_insns): Use counts and sreal for accounting.
5952
5953 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5954
5955         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
5956         manipulation.
5957
5958 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5959             Kito Cheng  <kito.cheng@gmail.com>
5960
5961         * config/nds32/constraints.md: Provide more constraints.
5962         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
5963         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
5964         support constraints usage.
5965
5966 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5967
5968         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
5969
5970 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5971             Kito Cheng  <kito.cheng@gmail.com>
5972
5973         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
5974         * config/nds32/nds32.opt: Refine the layout.
5975         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
5976         TARGET_EXT_STRING): Support new options.
5977         * config/nds32/nds32.h: Likewise.
5978         * config/nds32/nds32.md: Likewise.
5979         * config/nds32/nds32-predicates.c: Likewise.
5980         * config/nds32/constraints.md: Likewise.
5981         * common/config/nds32/nds32-common.c: Likewise.
5982
5983 2017-11-16  Julia Koval  <julia.koval@intel.com>
5984
5985         PR target/82983
5986         * config/i386/gfniintrin.h: Add sse check.
5987         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
5988
5989 2017-11-16  Julia Koval  <julia.koval@intel.com>
5990
5991         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
5992         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
5993         (ix86_handle_option): Handle -mavx512vbmi2.
5994         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
5995         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
5996         * config/i386/i386-c.c (__AVX512VBMI2__): New.
5997         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
5998         (ix86_valid_target_attribute_inner_p): Ditto.
5999         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
6000         * config/i386/i386.opt (mavx512vbmi2): New option.
6001         * doc/invoke.texi: Add new option.
6002
6003 2017-11-16  Julia Koval  <julia.koval@intel.com>
6004
6005         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
6006         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
6007         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
6008         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
6009         _mm512_gf2p8mul_epi8): New intrinsics.
6010         * config/i386/i386-builtin-types.def
6011         (V64QI_FTYPE_V64QI_V64QI): New type.
6012         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
6013         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
6014         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
6015         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
6016         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
6017         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
6018
6019 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
6020
6021         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
6022         explicitly as a stream of bytes.
6023
6024 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6025
6026         * config/rs6000/altivec.h (vec_xst_be): New #define.
6027         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
6028         and externalize from *altivec_vperm_<mode>_internal.
6029         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
6030         instantiation.
6031         (XL_BE_V8HI): Likewise.
6032         (XL_BE_V4SI): Likewise.
6033         (XL_BE_V4SI): Likewise.
6034         (XL_BE_V2DI): Likewise.
6035         (XL_BE_V4SF): Likewise.
6036         (XL_BE_V2DF): Likewise.
6037         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
6038         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
6039         all array entries with these keys: VSX_BUILTIN_VEC_XL,
6040         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
6041         VSX_BUILTIN_VEC_XST_BE.
6042         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
6043         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
6044         built-ins.
6045         (altivec_init_builtins): Replace conditional calls to def_builtin
6046         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
6047         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
6048         with unconditional calls.  Remove calls to def_builtin for
6049         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
6050         __builtin_vec_xst_be.
6051         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
6052         to define_expand, and add alternate RTL generation for P8.
6053         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
6054         vsx_ld_elemrev_v8hi.
6055         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
6056         add alternate RTL generation for P8.
6057         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
6058         vsx_ld_elemrev_v16qi.
6059         (vsx_st_elemrev_v8hi): Convert define_insn
6060         to define_expand, and add alternate RTL generation for P8.
6061         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
6062         vsx_st_elemrev_v8hi.
6063         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
6064         add alternate RTL generation for P8.
6065         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
6066         vsx_st_elemrev_v16qi.
6067
6068 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
6069
6070         PR target/82990
6071         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
6072         TARGET_AVX512ER check.
6073         (ix86_option_override_internal): Set MASK_VZEROUPPER if
6074         neither -mzeroupper nor -mno-zeroupper is used and
6075         TARGET_EMIT_VZEROUPPER is set.
6076         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
6077         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
6078
6079 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
6080
6081         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
6082         folding of vector compares.
6083         (fold_build_vec_cmp): New helper function.
6084         (fold_compare_helper): New helper function.
6085         (builtin_function_type): Add compare builtins to the list of functions
6086         having unsigned arguments.  Cosmetic updates to comment indentation.
6087         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
6088         the not+eq combination.
6089
6090 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6091
6092         PR tree-optimization/82726
6093         PR tree-optimization/70754
6094         * tree-predcom.c (order_drefs_by_pos): New function.
6095         (combine_chains): Move code setting has_max_use_after to...
6096         (try_combine_chains): ...here.  New parameter.  Sort combined chains
6097         according to position information.
6098         (tree_predictive_commoning_loop): Update call to above function.
6099         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
6100
6101 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6102
6103         PR tree-optimization/82726
6104         Revert
6105         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
6106
6107         PR tree-optimization/70754
6108         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
6109         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
6110         combined stmt before it if not NULL.
6111         (combine_chains): Process refs reversely and compute dominance point
6112         for root ref.
6113
6114         Revert
6115         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
6116
6117         PR tree-optimization/79663
6118         * tree-predcom.c (combine_chains): Process refs in reverse order
6119         only for ZERO length chains, and add explaining comment.
6120
6121 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6122
6123         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
6124         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
6125         * doc/invoke.texi (ARM Options): Add armv8.3-a.
6126
6127 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6128
6129         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
6130
6131 2017-11-15  Martin Liska  <mliska@suse.cz>
6132
6133         * tree-cfg.c (pass_warn_function_return::execute):
6134         Compare warn_return_type for greater than zero.
6135
6136 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
6137
6138         PR target/82941
6139         PR target/82942
6140         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
6141         to return true on Xeon and not on Xeon Phi.
6142         (ix86_check_avx256_register): Changed to ...
6143         (ix86_check_avx_upper_register): ... this. Add extra check for
6144         VALID_AVX512F_REG_OR_XI_MODE.
6145         (ix86_avx_u128_mode_needed): Changed
6146         ix86_check_avx256_register to ix86_check_avx_upper_register.
6147         (ix86_check_avx256_stores): Changed to ...
6148         (ix86_check_avx_upper_stores): ... this. Changed
6149         ix86_check_avx256_register to ix86_check_avx_upper_register.
6150         (ix86_avx_u128_mode_after): Changed
6151         avx_reg256_found to avx_upper_reg_found. Changed
6152         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
6153         (ix86_avx_u128_mode_entry): Changed
6154         ix86_check_avx256_register to ix86_check_avx_upper_register.
6155         (ix86_avx_u128_mode_exit): Ditto.
6156         * config/i386/i386.h: (host_detect_local_cpu): New define.
6157
6158 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
6159
6160         * config/arm/xgene1.md (xgene1): Split into automatons
6161         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
6162         (xgene1_f_load): Adjust reservations and/or types.
6163         (xgene1_f_store): Likewise.
6164         (xgene1_load_pair): Likewise.
6165         (xgene1_store_pair): Likewise.
6166         (xgene1_fp_load1): Likewise.
6167         (xgene1_load1): Likewise.
6168         (xgene1_store1): Likewise.
6169         (xgene1_move): Likewise.
6170         (xgene1_alu): Likewise.
6171         (xgene1_simd): Likewise.
6172         (xgene1_bfm): Likewise.
6173         (xgene1_neon_load1): Likewise.
6174         (xgene1_neon_store1): Likewise.
6175         (xgene1_neon_logic): Likewise.
6176         (xgene1_neon_st1): Likewise.
6177         (xgene1_neon_ld1r): Likewise.
6178         (xgene1_alu_cond): Added.
6179         (xgene1_shift_reg): Likwise.
6180         (xgene1_bfx): Likewise.
6181         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
6182
6183 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
6184
6185         PR target/82981
6186         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
6187         ssa-iterators.h.
6188         (can_widen_mult_without_libcall): New function.
6189         (expand_mul_overflow): If only checking unsigned mul overflow,
6190         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
6191         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
6192         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
6193         (expand_DIVMOD): Formatting fix.
6194         * expmed.h (expand_mult): Add NO_LIBCALL argument.
6195         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
6196         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
6197
6198         PR tree-optimization/82977
6199         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
6200         constructed temporary to strlen_to_stridx.put.
6201
6202 2017-11-15  Martin Liska  <mliska@suse.cz>
6203
6204         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
6205         * configure: Regenerate.
6206
6207 2017-11-15  Martin Liska  <mliska@suse.cz>
6208
6209         PR target/82927
6210         * config/sh/sh-mem.cc: Use proper probability for
6211         REG_BR_PROB_NOTE.
6212
6213 2017-11-14  Jeff Law  <law@redhat.com>
6214
6215         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
6216         the red zone for stack_clash_protection_final_dynamic_probe targets
6217         when the total dynamic stack size is zero bytes.
6218
6219         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
6220         blocks is post order.
6221
6222 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
6223
6224         * dumpfile.h (TDF_COMPARE_DEBUG): New.
6225         * final.c (rest_of_clean_state): Set it for the
6226         -fcompare-debug dump.
6227         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
6228         class when TDF_COMPARE_DEBUG is set.
6229
6230         * dwarf2out.c (gen_producer_string): Discard
6231         OPT_fcompare_debug.
6232
6233 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6234
6235         PR c/81156
6236         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
6237         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
6238         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
6239         (__TGMATH_REAL_2_3): Remove macros.
6240         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
6241         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
6242         __builtin_tgmath.
6243         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
6244         __TGMATH_REAL_2.
6245         (remquo): Define using __TGMATH_REAL_3.
6246
6247 2017-11-14  Jeff Law  <law@redhat.com>
6248
6249         * vr-values.c: New file with contents extracted from tree-vrp.c.
6250         * Makefile.in (OBJS): Add vr-values.o
6251         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
6252         (set_value_range, set_and_canonicalize_value_range): Likewise.
6253         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
6254         (value_range_constant_singleton, symbolic_range_p): Likewise.
6255         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
6256         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
6257         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
6258         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
6259         (find_case_label_range, find_case_label_index): Likewise.
6260         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
6261         (range_int_cst_singleton_p, value_inside_range): Likewise.
6262         (get_single_symbol): Likewise.
6263         (switch_update): Move structure definition here.
6264         (to_remove_edges, to_update_switch_stmts): Provide externs.
6265         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
6266         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
6267         (vrp_val_is_min, set_value_range): Likewise.
6268         (set_and_canonicalize_value_range, copy_value_range): Likewise.
6269         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
6270         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
6271         (range_is_nonnull, range_int_cst_p): Likewwise.
6272         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
6273         (get_single_symbol, operand_less_p): Likewise
6274         (compare_values_warnv, compare_values): Likewise.
6275         (value_inside_range, value_range_constant_singleton): Likewise.
6276         (zero_nonzero_bitgs_from_vr): Likewise.
6277         (extract_range_from_binary_expr_1): Likewise.
6278         (overflow_comparison_p): Likewise.
6279         (to_remove_edges, to_update_switch_stmts): Likewise.
6280         (find_case_label-index, find_case_label_range): Likewise.
6281         (switch_update, set_value_range_to_nonnegative): Remove.
6282         (set_value_range_to_truthvalue): Likewise.
6283         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
6284         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
6285         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
6286         (find_case_label_ranges, test_for_singularity): Likewise.
6287         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
6288         (x_vr_values): Move to its remaining use site.
6289
6290 2017-11-10  Jeff Law  <law@redhat.com>
6291
6292         * vr-values.h (VR_INITIALIZER): Move #define here.
6293         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
6294         * Makefile.in (OBJS): Add tree-evrp.o
6295         * tree-vrp.h (assert_info): Move structure definition here.
6296         (set_value_range_to_varying): Prototype.
6297         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6298         (infer_value_range, register_edge_assert_for): Likewise.
6299         (stmt_interesting_for_vrp): Likewise.
6300         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
6301         (set_value_range_to_varying): No longer static.
6302         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6303         (infer_value_range, register_edge_assert_for): Likewise.
6304
6305 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6306
6307         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
6308         generate the XXBRD instruction.
6309
6310         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
6311         (rs6000_builtin_type_compatible): Treat _Float128 and long double
6312         as being compatible if -mabi=ieeelongdouble.
6313         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
6314         to setup float128 built-ins with hardware support.
6315         (BU_FLOAT128_HW_2): Likewise.
6316         (BU_FLOAT128_HW_3): Likewise.
6317         (BU_FLOAT128_HW_VSX_1): Likewise.
6318         (BU_FLOAT128_HW_VSX_2): Likewise.
6319         (scalar_extract_expq): Change float128 built-in functions to
6320         accommodate having both KFmode and TFmode functions.  Use the
6321         KFmode variant as the default.
6322         (scalar_extract_sigq): Likewise.
6323         (scalar_test_neg_qp): Likewise.
6324         (scalar_insert_exp_q): Likewise.
6325         (scalar_insert_exp_qp): Likewise.
6326         (scalar_test_data_class_qp): Likewise.
6327         (sqrtf128_round_to_odd): Delete processing the round to odd
6328         built-in functions as special built-in functions, and define them
6329         as float128 built-ins.  Use the KFmode variant as the default.
6330         (truncf128_round_to_odd): Likewise.
6331         (addf128_round_to_odd): Likewise.
6332         (subf128_round_to_odd): Likewise.
6333         (mulf128_round_to_odd): Likewise.
6334         (divf128_round_to_odd): Likewise.
6335         (fmaf128_round_to_odd): Likewise.
6336         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
6337         support for KFmode and TFmode xststdcqp calls.
6338         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
6339         point, switch the built-in handlers for the get/set float128
6340         exponent, get float128 mantissa, float128 test built-ins, and the
6341         float128 round to odd built-in functions.  Eliminate creating the
6342         float128 round to odd built-in functions as special built-ins.
6343         (rs6000_init_builtins): Eliminate special creation of the float128
6344         round to odd built-in functions.
6345         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
6346         function insns to support both TFmode and KFmode variants.
6347         (xsxsigqp_<mode>): Likewise.
6348         (xsiexpqpf_<mode>): Likewise.
6349         (xsiexpqp_<mode>): Likewise.
6350         (xststdcqp_<mode>): Likewise.
6351         (xststdcnegqp_<mode>): Likewise.
6352         (xststdcqp_<mode>): Likewise.
6353
6354 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6355
6356         * tree-ssa-threadupdate.c (compute_path_counts): Remove
6357         unused path_in_freq_ptr parameter.
6358         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
6359
6360 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6361
6362         * ipa-inline.c (edge_badness): Dump sreal frequency.
6363         (compute_inlined_call_time): Match natural implementaiton ...
6364         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
6365         forgotten division by CGRAPH_FREQ_BASE.
6366
6367 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6368
6369         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
6370         Solaris 11.  Update comment.
6371         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
6372         renaming.
6373         * config/sol2.h (STARTFILE_SPEC): Likewise.
6374         * configure: Regenerate.
6375
6376 2017-11-14  Carl Love  <cel@us.ibm.com>
6377
6378         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
6379         le_ and be_ prefixes to swap* variables.  Remove
6380         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
6381         statements.
6382
6383 2017-11-14  Jason Merrill  <jason@redhat.com>
6384
6385         Support GTY((cache)) on hash_map.
6386         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
6387         (ggc_cache_remove): Override it instead of ggc_mx.
6388         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
6389         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
6390         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
6391         (simple_cache_map_traits): Override maybe_mx.
6392         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
6393         (hash_map): Friend gt_cleare_cache.
6394         (gt_cleare_cache): New.
6395         * tree.h (tree_cache_traits): New hash_map traits class.
6396         (tree_cache_map): New typedef.
6397
6398 2017-11-14  Richard Biener  <rguenther@suse.de>
6399
6400         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
6401         paramter and handling.
6402         (cleanup_control_flow_bb): Likewise.
6403         (cleanup_control_flow_pre): New helper performing a DFS walk
6404         to call cleanup_control_flow_bb in PRE order.
6405         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
6406         via cleanup_control_flow_pre.
6407
6408 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
6409
6410         * config/aarch64/aarch64-simd.md
6411         (aarch64_simd_bsl<mode>_internal): Remove DImode.
6412         (*aarch64_simd_bsl<mode>_alt): Likewise.
6413         (aarch64_simd_bsldi_internal): New.
6414         (aarch64_simd_bsldi_alt): Likewise.
6415
6416 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6417
6418         * tracer.c (better_p): Do not compare frequencies.
6419         * reg-stack.c (better_edge): Likewise.
6420         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
6421         and back.
6422
6423 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6424
6425         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
6426         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
6427         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
6428         * lto-streamer-in.c (input_function): Use update_max_bb_count.
6429         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
6430         * predict.c (maybe_hot_frequency_p): Inline to ...
6431         (maybe_hot_count_p): ... here; rewrite to counts.
6432         (counts_to_freqs): Rename to ...
6433         (update_max_bb_count): ... this one.
6434         (expensive_function_p): Use counts.
6435         (estimate_bb_frequencies): Update.
6436         (rebuild_frequencies): Update.
6437         * predict.h (counts_to_freqs): Rename to ...
6438         (update_max_bb_count): ... this one.
6439         * profile.c (compute_branch_probabilities): Add debug info
6440         * tree-inline.c (expand_call_inline): Update debug info.
6441         (optimize_inline_calls): Use update_max_bb_count..
6442         (tree_function_versioning): Use update_max_bb_count..
6443         * value-prof.c (gimple_value_profile_transformations):
6444         Do not use update_max_bb_count.
6445
6446 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6447
6448         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
6449         always use frequencies.
6450
6451 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6452
6453         * bb-reorder.c: Remove frequencies from comments.
6454         (better_edge_p): Use profile counts.
6455         (find_traces): Dump profile counts.
6456         (rotate_loop): Use profile counts.
6457         (find_traces_1_round): Likewise.
6458         (connect_better_edge_p): Use counts instead of probabilities for
6459         reverse walk.
6460         (copy_bb_p): Drop early check for non-0 frequency.
6461         (sanitize_hot_paths): Update comments.
6462
6463 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6464
6465         * ipa-split.c (struct split_point): Add count.
6466         (consider_split): Do not compute incoming frequency; compute incoming
6467         count and store it to split_point.
6468         (split_function): Set count of the call to split part correctly.
6469
6470 2017-11-13  Carl Love  <cel@us.ibm.com>
6471
6472         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
6473
6474 2017-11-13  Tom Tromey  <tom@tromey.com>
6475
6476         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
6477
6478 2017-11-13  Carl Love  <cel@us.ibm.com>
6479
6480         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
6481         Add support for builtins:
6482         unsigned int vec_first_{,miss}_match_{,or_eos}index,
6483         vector {un,}signed {char,int,short},
6484         vector {un,}signed {char,int,short}) arguments.
6485         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
6486         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
6487         Add BU_P9V_AV_2 expansions for the builtins.
6488         * config/rs6000/altivec.h (vec_first_match_index,
6489         vec_first_mismatch_index, vec_first_match_or_eos_index,
6490         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
6491         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
6492         new extern declaration.
6493         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
6494         * config/rs6000/vsx.md (first_match_index_<mode>,
6495         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
6496         first_mismatch_or_eos_index_<mode>): Add define expand.
6497         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
6498         * doc/extend.texi: Update the built-in documenation file for the new
6499         built-in functions.
6500
6501 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6502
6503         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
6504         into the min/max operations for _Float<N> and _Float<N>X types.
6505
6506 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6507
6508         PR lto/81351
6509         * dwarf2out.c (do_eh_frame): New static variable.
6510         (dwarf2out_begin_prologue): Set it.
6511         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
6512
6513 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6514
6515         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
6516
6517         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
6518
6519 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6520
6521         PR lto/81351
6522         * debug.h (dwarf2out_do_eh_frame): Declare.
6523         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
6524         (dwarf2out_do_frame): Use it.
6525         (dwarf2out_do_cfi_asm): Likewise.
6526         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
6527         (dwarf2out_assembly_start): Likewise.
6528         (dwarf2out_begin_prologue): Fix comment.
6529         * toplev.c (compile_file): Always call dwarf2out_frame_finish
6530         if the target needs either debug or unwind DWARF2 info.
6531         * lto-opts.c (lto_write_options): Do not save -fexceptions,
6532         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
6533         -ftrapping-math, -ftrapv and -fwrapv.
6534
6535 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6536
6537         * cgraph.c (cgraph_edge::sreal_frequency): New function.
6538         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
6539         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
6540         (estimate_edge_size_and_time): Likewise.
6541         (ipa_merge_fn_summary_after_inlining): Likewise.
6542         * ipa-inline.c (cgraph_freq_base_rec): Remove.
6543         (compute_uninlined_call_time): Use sreal_frequency.
6544         (compute_inlined_call_time): Likewise.
6545         (ipa_inline): Do not initialize cgraph_freq_base_rec.
6546         * profile-count.c: Include sreal.h.
6547         (profile_count::to_sreal_scale): New.
6548         * profile-count.h: Forward declare sreal.
6549         (profile_count::to_sreal_scale): Declare.
6550
6551 2017-11-13  Nathan Sidwell  <nathan@acm.org>
6552
6553         * diagnostic.c (maybe_line_and_column): New.
6554         (diagnostic_get_location_text): Use it.
6555         (diagnostic_report_current_module): Likewise.
6556         (test_diagnostic_get_location_text): Add tests.
6557
6558 2017-11-13  Luis Machado  <luis.machado@linaro.org>
6559
6560         * doc/md.texi (Specifying processor pipeline description): Fix
6561         incorrect latency for the div instruction example.
6562
6563 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
6564
6565         PR tree-optimization/78821
6566         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
6567         that bit_not_p is the same.
6568         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
6569         (split_group): Count precisely bit_not_p bits in each statement.
6570         (invert_op): New function.
6571         (imm_store_chain_info::output_merged_store): Use invert_op to
6572         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
6573         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
6574
6575 2017-11-13  Martin Liska  <mliska@suse.cz>
6576
6577         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
6578         (struct source_info): Likewise.
6579         (add_branch_counts): Likewise.
6580         (add_line_counts): Likewise.
6581         (function_summary): Likewise.
6582         (output_intermediate_line): Likewise.
6583         (generate_results): Likewise.
6584
6585 2017-11-13  Martin Liska  <mliska@suse.cz>
6586
6587         * gcov.c (struct block_info): Remove typedef for block_t.
6588         (struct line_info): Likewise.
6589         (line_info::has_block): Likewise.
6590         (EXIT_BLOCK): Likewise.
6591         (unblock): Likewise.
6592         (circuit): Likewise.
6593         (get_cycles_count): Likewise.
6594         (process_file): Likewise.
6595         (read_graph_file): Likewise.
6596         (solve_flow_graph): Likewise.
6597         (find_exception_blocks): Likewise.
6598         (add_line_counts): Likewise.
6599         (accumulate_line_info): Likewise.
6600         (output_line_details): Likewise.
6601
6602 2017-11-13  Martin Liska  <mliska@suse.cz>
6603
6604         * gcov.c (struct arc_info): Remove typedef for arc_t.
6605         (struct line_info): Likewise.
6606         (add_branch_counts): Likewise.
6607         (output_branch_count): Likewise.
6608         (function_info::~function_info): Likewise.
6609         (circuit): Likewise.
6610         (output_intermediate_line): Likewise.
6611         (read_graph_file): Likewise.
6612         (solve_flow_graph): Likewise.
6613         (find_exception_blocks): Likewise.
6614         (add_line_counts): Likewise.
6615         (accumulate_line_info): Likewise.
6616         (output_line_details): Likewise.
6617         (output_function_details): Likewise.
6618
6619 2017-11-13  Martin Liska  <mliska@suse.cz>
6620
6621         * gcov.c (struct function_info): Remove typedef for function_t.
6622         (struct source_info): Likewise.
6623         (source_info::get_functions_at_location): Likewise.
6624         (solve_flow_graph): Likewise.
6625         (find_exception_blocks): Likewise.
6626         (add_line_counts): Likewise.
6627         (output_intermediate_file): Likewise.
6628         (process_file): Likewise.
6629         (generate_results): Likewise.
6630         (release_structures): Likewise.
6631         (read_graph_file): Likewise.
6632         (read_count_file): Likewise.
6633         (accumulate_line_counts): Likewise.
6634         (output_lines): Likewise.
6635
6636 2017-11-13  Martin Liska  <mliska@suse.cz>
6637
6638         * gcov.c (function_info::function_info): Remove num_counts
6639         and add vector<gcov_type>.
6640         (function_info::~function_info): Use the vector.
6641         (process_file): Likewise.
6642         (read_graph_file): Likewise.
6643         (read_count_file): Likewise.
6644         (solve_flow_graph): Likewise.
6645
6646 2017-11-13  Martin Liska  <mliska@suse.cz>
6647
6648         * gcov.c (function_info::is_artificial): New function.
6649         (process_file): Erase all artificial early.
6650         (generate_results): Skip as all artificial are already
6651         removed.
6652
6653 2017-11-13  Martin Liska  <mliska@suse.cz>
6654
6655         * gcov.c (read_graph_file): Store to global vector of functions.
6656         (read_count_file): Iterate the vector.
6657         (process_file): Likewise.
6658         (generate_results): Likewise.
6659         (release_structures): Likewise.
6660
6661 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
6662
6663         PR tree-optimization/82954
6664         * gimple-ssa-store-merging.c
6665         (imm_store_chain_info::coalesce_immediate_stores): If
6666         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
6667
6668 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
6669
6670         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
6671         Upddate call to ENDIAN_LANE_N.
6672         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
6673         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
6674         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
6675         and use aarch64_endian_lane_rtx.
6676         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
6677
6678 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6679
6680         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
6681
6682 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6683
6684         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
6685
6686 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6687
6688         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
6689         body.
6690         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
6691         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
6692         * defaults.h (ASM_OUTPUT_LABELREF): Same.
6693
6694 2017-11-11  Martin Sebor  <msebor@redhat.com>
6695
6696         PR c/81117
6697         * doc/extend.texi (attribute nonstring): Remove spurious argument.
6698
6699         PR bootstrap/82948
6700         * prefic.c (translate_name): Replace strncpy with memcpy to
6701         avoid -Wstringop-truncation.
6702
6703 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6704
6705         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
6706
6707 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6708
6709         * predict.c (maybe_hot_frequency_p): Do not use cfun.
6710
6711 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6712
6713         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
6714         merging.
6715
6716 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6717
6718         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
6719         enable generating XXBRH if the value is in a vector register.
6720         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
6721         value is in a vector register.
6722         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
6723         register to register bswap64's instead of doing the GPR sequence
6724         used on previous machines.
6725         (bswapdi2_xxbrd): New insn.
6726         (bswapdi2_reg): Disallow on ISA 3.0.
6727         (register to register bswap64 splitter): Do not split the insn on
6728         ISA 3.0 systems that use XXBRD.
6729
6730 2017-11-10  Martin Sebor  <msebor@redhat.com>
6731
6732         PR c/81117
6733         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
6734         with memcpy.
6735         (find_subframework_file): Same.
6736
6737 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6738
6739         * auto-profile.c (afdo_indirect_call): Drop frequency.
6740         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
6741         (cgraph_node::create_edge): Drop frequency argument.
6742         (cgraph_node::create_indirect_edge): Drop frequency argument.
6743         (cgraph_edge::make_speculative): Drop frequency arguments.
6744         (cgraph_edge::resolve_speculation): Do not update frequencies
6745         (cgraph_edge::dump_edge_flags): Do not dump frequency.
6746         (cgraph_node::dump): Check consistency in IPA mode.
6747         (cgraph_edge::maybe_hot_p): Use IPA counter.
6748         (cgraph_edge::verify_count_and_frequency): Rename to ...
6749         (cgraph_edge::verify_count): ... this one; drop frequency checking.
6750         (cgraph_node::verify_node): Update.
6751         * cgraph.h (struct cgraph_edge): Drop frequency.
6752         (cgraph_edge::frequency): New function.
6753         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
6754         frequencies.
6755         (cgraph_edge::rebuild_edges): Likewise.
6756         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
6757         (duplicate_thunk_for_node): Do not pass frequency.
6758         (cgraph_node::create_clone): Scale only counts.
6759         (cgraph_node::create_virtual_clone): Do not pass frequency.
6760         (cgraph_node::create_edge_including_clones): Do not pass frequency.
6761         (cgraph_node::create_version_clone): Do not pass frequency.
6762         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
6763         (cgraph_node::expand_thunk): Do not pass frequency.
6764         (cgraph_node::create_wrapper): Do not pass frequency.
6765         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
6766         frequency.
6767         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
6768         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
6769         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
6770         (gather_caller_stats): Use frequency function.
6771         (ipcp_cloning_candidate_p): Use frequency function.
6772         (ipcp_propagate_stage): Use frequency function.
6773         (get_info_about_necessary_edges): Use frequency function.
6774         (update_profiling_info): Update only IPA profile.
6775         (update_specialized_profile): Use frequency functoin.
6776         (perhaps_add_new_callers): Update only IPA profile.
6777         * ipa-devirt.c (ipa_devirt): Use IPA profile.
6778         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
6779         (dump_ipa_call_summary): Use frequency function.
6780         (estimate_edge_size_and_time): Use frequency function.
6781         (ipa_merge_fn_summary_after_inlining): Use frequency function.
6782         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
6783         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
6784         (update_noncloned_counts): ... ths one; scale counts only.
6785         (clone_inlined_nodes): Do not scale frequency.
6786         (inline_call): Do not pass frequency.
6787         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
6788         (compute_inlined_call_time): Use IPA profile.
6789         (want_inline_small_function_p): Use IPA profile.
6790         (want_inline_self_recursive_call_p): Use IPA profile.
6791         (edge_badness): Use IPA profile.
6792         (lookup_recursive_calls): Use IPA profile.
6793         (recursive_inlining): Do not pass frequency.
6794         (resolve_noninline_speculation): Do not update frequency.
6795         (inline_small_functions): Collect max of IPA profile.
6796         (dump_overall_stats): Dump IPA porfile.
6797         (dump_inline_stats): Dump IPA porfile.
6798         (ipa_inline): Collect IPA stats.
6799         * ipa-inline.h (clone_inlined_nodes): Update prototype.
6800         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
6801         (ipa_propagate_frequency): Use frequency function.
6802         (ipa_profile): Cleanup.
6803         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
6804         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
6805         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
6806         (input_node): Do not stream frequency.
6807         (input_edge): Do not stream frequency.
6808         (merge_profile_summaries): Scale only IPA profiles.
6809         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
6810         * predict.c (drop_profile): Do not recompute frequency.
6811         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
6812         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
6813         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
6814         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
6815         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
6816         * tree-inline.c (copy_bb): Do not scale frequency.
6817         (expand_call_inline): Do not scale frequency.
6818         (tree_function_versioning): Do not scale frequency.
6819         * ubsan.c (ubsan_create_edge): Do not pass frequency.
6820
6821 2017-11-10  Julia Koval  <julia.koval@intel.com>
6822
6823         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
6824         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
6825         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
6826         (_mm256_maskz_gf2p8affine_epi64_epi8)
6827         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
6828         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
6829         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
6830         (__builtin_ia32_vgf2p8affineqb_v32qi)
6831         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
6832         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
6833
6834 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
6835
6836         PR target/82641
6837         * config/arm/arm.c
6838         (arm_option_override): Refactor.
6839         (arm_option_reconfigure_globals): New.
6840         (arm_options_perform_arch_sanity_checks): New.
6841         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
6842         New prototype.
6843         (arm_options_perform_arch_sanity_checks): Likewise
6844
6845 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
6846
6847         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
6848         (power9-qpmul): New.
6849         * rs6000/rs6000.md ("type" attr): Add qmul.
6850         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
6851         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
6852         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
6853
6854 2017-11-10  Martin Sebor  <msebor@redhat.com>
6855
6856         PR c/81117
6857         * builtins.c (compute_objsize): Handle arrays that
6858         compute_builtin_object_size likes to fail for.  Make extern.
6859         * builtins.h (compute_objsize): Declare.
6860         (check_strncpy_sizes): New function.
6861         (expand_builtin_strncpy): Call check_strncpy_sizes.
6862         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
6863         -Wstringop-truncation.
6864         (gimple_fold_builtin_strncat): Same.
6865         * gimple.c (gimple_build_call_from_tree): Set call location.
6866         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
6867         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
6868         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
6869         (handle_builtin_strlen): Use strlen_to_stridx.
6870         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
6871         stpncpy.
6872         Use strlen_to_stridx.
6873         (pass_strlen::execute): Release strlen_to_stridx.
6874         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
6875         (-Wstringop-truncation): Document new option.
6876
6877 2017-11-10  Martin Liska  <mliska@suse.cz>
6878
6879         PR gcov-profile/82702
6880         * gcov.c (main): Handle intermediate files in a different
6881         way.
6882         (get_gcov_intermediate_filename): New function.
6883         (output_gcov_file): Remove support of intermediate files.
6884         (generate_results): Allocate intermediate file.
6885         (release_structures): Clean-up properly fn_end.
6886         (output_intermediate_file): Start iterating with line 1.
6887
6888 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
6889
6890         PR tree-optimization/82929
6891         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
6892         ops_swapped_p non-static data member.
6893         (store_immediate_info::store_immediate_info): Clear it.
6894         (imm_store_chain_info::coalesce_immediate_stores): If swapping
6895         ops set ops_swapped_p.
6896         (count_multiple_uses): Handle ops_swapped_p.
6897
6898 2017-11-10  Martin Liska  <mliska@suse.cz>
6899
6900         * coverage.c (coverage_init): Stream information about
6901         support of has_unexecuted_blocks.
6902         * doc/gcov.texi: Document that.
6903         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
6904         * gcov.c (read_graph_file): Likewise.
6905         (output_line_beginning): Fix a small issue with
6906         color output.
6907
6908 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
6909
6910         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
6911         reference of trivial component.
6912
6913 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
6914
6915         PR bootstrap/82916
6916         * gimple-ssa-store-merging.c
6917         (pass_store_merging::terminate_all_aliasing_chains): For
6918         gimple_store_p stmts also call refs_output_dependent_p.
6919
6920         PR rtl-optimization/82913
6921         * compare-elim.c (try_merge_compare): Punt if def_insn is not
6922         single set.
6923
6924 2017-11-09  Jeff Law  <law@redhat.com>
6925
6926         * vr-values.h: New file with vr_values class.
6927         * tree-vrp.c: Include vr-values.h
6928         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
6929         data objects into the vr_values class.
6930         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
6931         (get_value_range): Make it a member function within vr_values class.
6932         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
6933         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
6934         (op_with_constant_singleton_value_range): Likewise.
6935         (extract_range_for_var_from_comparison_expr): Likewise.
6936         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
6937         (extract_range_from_binary_expr): Likewise.
6938         (extract_range_from_unary_expr): Likewise.
6939         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
6940         (check_for_binary_op_overflow, extract_range_basic): Likewise.
6941         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
6942         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
6943         (compare_name_with_value, compare_names): Likewise.
6944         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
6945         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
6946         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
6947         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
6948         (extract_range_from_phi_node): Likewise.
6949         (simplify_truth_ops_using_ranges): Likewise.
6950         (simplify_div_or_mod_using_ranges): Likewise.
6951         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
6952         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
6953         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
6954         (simplify_float_conversion_using_ranges): Likewise.
6955         (simplify_internal_call_using_ranges): Likewise.
6956         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
6957         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
6958         poitner via x_vr_values for calls into gimple folder.
6959         (vrp_initialize_lattice): Make this the vr_values ctor.
6960         (vrp_free_lattice): Make this the vr_values dtor.
6961         (set_vr_value): New function.
6962         (class vrp_prop): Add vr_values data member.  Add various member
6963         functions as well as member functions that delegate to vr_values.
6964         (check_array_ref): Make a member function within vrp_prop class.
6965         (search_for_addr_array, vrp_initialize): Likewise.
6966         (vrp_finalize): Likewise.  Revamp to avoid direct access to
6967         vr_value, values_propagated, etc.
6968         (check_array_bounds): Extract vrp_prop class instance pointer from
6969         walk info structure.  Use it to call member functions.
6970         (check_all_array_refs): Make a member function within vrp_prop class.
6971         Smuggle class instance pointer via walk info structure.
6972         (x_vr_values): New local static.
6973         (vrp_valueize): Use x_vr_values to get class instance.
6974         (vr_valueize_1): Likewise.
6975         (class vrp_folder): Add vr_values data member.  Add various member
6976         functions as well as member functions that delegate to vr_values.
6977         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
6978         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
6979         class instance from vr_values.  Use it to call member functions.
6980         (vrp_dom_walker): Add vr_values data member.
6981         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
6982         instance via x_vr_values.
6983         (identify_jump_threads): Accept vr_values as argument.  Store
6984         it into the walker structure.
6985         (evrp_dom_walker): Add vr_values class data member.  Add various
6986         delegators.
6987         (evrp_dom_walker::try_find_new_range): Use vr_values data
6988         member to access the memory allocator.
6989         (evrp_dom_walker::before_dom_children): Store vr_values class
6990         instance into the vrp_folder class.
6991         (evrp_dom_walker::push_value_range): Rework to avoid direct
6992         access to num_vr_values and vr_value.
6993         (evrp_dom_walker::pop_value_range): Likewise.
6994         (execute_early_vrp): Remove call to vrp_initialize_lattice.
6995         Use vr_values to get to dump_all_value_ranges member function.
6996         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
6997         and simplify_cond_using_ranges_2 via vrp_prop class instance.
6998         Pass vr_values class instance down to identify_jump_threads.
6999         Remove call to vrp_free_lattice.
7000         (debug_all_value_ranges): Remove.
7001
7002         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
7003         (vrp_folder): Likewise.
7004
7005         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
7006         Get it from the existing bitmap instead.
7007         (vrp_intersect_ranges_1): Likewise.
7008
7009 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7010
7011         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7012         bit_not_p field.
7013         (store_immediate_info::store_immediate_info): Add bitnotp argument,
7014         set bit_not_p to it.
7015         (imm_store_chain_info::coalesce_immediate_stores): Break group
7016         if bit_not_p is different.
7017         (count_multiple_uses, split_group,
7018         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
7019         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
7020         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
7021         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
7022         to store_immediate_info ctor.
7023
7024 2017-11-09  Jim Wilson  <jimw@sifive.com>
7025
7026         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
7027         (scan_prog_file): Likewise.
7028
7029 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7030
7031         * bb-reorder.c (max_entry_frequency): Remove.
7032         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
7033         connect_traces, push_to_next_round_p): Remove prototypes.
7034         (find_traces_1_round): Use counts only.
7035         (push_to_next_round_p): Likewise.
7036         (find_traces): Likewise.
7037         (rotate_loop): Likewise.
7038         (find_traces_1_round): Likewise.
7039         (connect_traces): Likewise.
7040         (edge_order): Likewise.
7041
7042 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7043
7044         * config/arm/arm.c (output_return_instruction): Add comments to
7045         indicate requirement for cmse_nonsecure_entry return to account
7046         for the size of clearing instruction output here.
7047         (thumb_exit): Likewise.
7048         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
7049         return in hardfloat mode.
7050
7051 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
7052
7053         * config/rs6000/rs6000.c (machine_function): Add a bool,
7054         "toc_is_wrapped_separately".
7055         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
7056         if it wasn't explicitly set or unset, we are optimizing for speed, and
7057         doing separate shrink-wrapping.
7058         (rs6000_get_separate_components): Enable the TOC component if
7059         saving the TOC register in the prologue.
7060         (rs6000_components_for_bb): Handle the TOC component.
7061         (rs6000_emit_prologue_components): Store the TOC register where needed.
7062         (rs6000_set_handled_components): Mark TOC as handled, if handled.
7063         (rs6000_emit_prologue): Don't save the TOC if that is already done.
7064
7065 2017-11-09  Martin Jambor  <mjambor@suse.cz>
7066
7067         * ipa-param-manipulation.c: New file.
7068         * ipa-param-manipulation.h: Likewise.
7069         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
7070         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
7071         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
7072         (ipa_parm_adjustment): Likewise.
7073         (ipa_parm_adjustment_vec): Likewise.
7074         (ipa_get_vector_of_formal_parms): Moved declaration to
7075         ipa-param-manipulation.h.
7076         (ipa_get_vector_of_formal_parm_types): Likewise.
7077         (ipa_modify_formal_parameters): Likewise.
7078         (ipa_modify_call_arguments): Likewise.
7079         (ipa_combine_adjustments): Likewise.
7080         (ipa_dump_param_adjustments): Likewise.
7081         (ipa_modify_expr): Likewise.
7082         (ipa_get_adjustment_candidate): Likewise.
7083         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
7084         ipa-param-manipulation.c.
7085         (ipa_get_vector_of_formal_parm_types): Likewise.
7086         (ipa_modify_formal_parameters): Likewise.
7087         (ipa_modify_call_arguments): Likewise.
7088         (ipa_modify_expr): Likewise.
7089         (get_ssa_base_param): Likewise.
7090         (ipa_get_adjustment_candidate): Likewise.
7091         (index_in_adjustments_multiple_times_p): Likewise.
7092         (ipa_combine_adjustments): Likewise.
7093         (ipa_dump_param_adjustments): Likewise.
7094         * tree-sra.c: Also include ipa-param-manipulation.h
7095         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
7096         ipa-param.h.
7097
7098 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7099             Alan Hayward  <alan.hayward@arm.com>
7100             David Sherwood  <david.sherwood@arm.com>
7101
7102         * doc/sourcebuild.texi (vect_masked_store): Document.
7103
7104 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7105             Alan Hayward  <alan.hayward@arm.com>
7106             David Sherwood  <david.sherwood@arm.com>
7107
7108         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
7109
7110 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7111             Alan Hayward  <alan.hayward@arm.com>
7112             David Sherwood  <david.sherwood@arm.com>
7113
7114         * doc/sourcebuild.texi (vect_variable_length): Document.
7115
7116 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7117             Alan Hayward  <alan.hayward@arm.com>
7118             David Sherwood  <david.sherwood@arm.com>
7119
7120         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
7121
7122 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7123             Alan Hayward  <alan.hayward@arm.com>
7124             David Sherwood  <david.sherwood@arm.com>
7125
7126         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
7127
7128 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7129             Alan Hayward  <alan.hayward@arm.com>
7130             David Sherwood  <david.sherwood@arm.com>
7131
7132         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
7133         previously undocumented selectors.
7134         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
7135
7136 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7137
7138         * doc/rtl.texi (const_vector): Say that elements can be
7139         const_wide_ints too.
7140         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
7141         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
7142         (gen_vec_duplicate): Use it instead of CONSTANT_P.
7143         * optabs.c (expand_vector_broadcast): Likewise.
7144
7145 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7146             Alan Hayward  <alan.hayward@arm.com>
7147             David Sherwood  <david.sherwood@arm.com>
7148
7149         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
7150         scaled index even if the unscaled address was invalid.
7151         Don't increase the complexity of using a scale in that case.
7152
7153 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7154             Alan Hayward  <alan.hayward@arm.com>
7155             David Sherwood  <david.sherwood@arm.com>
7156
7157         * doc/rtl.texi: Rewrite the subreg rules so that they partition
7158         the inner register into REGMODE_NATURAL_SIZE bytes rather than
7159         UNITS_PER_WORD bytes.
7160         * emit-rtl.c (validate_subreg): Divide subregs into blocks
7161         based on REGMODE_NATURAL_SIZE of the inner mode.
7162         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
7163         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
7164         * expmed.c (lowpart_bit_field_p): Divide the value up into
7165         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
7166         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
7167         whether something is likely to occupy more than one register.
7168
7169 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7170
7171         PR ipa/82879
7172         * ipa-inline-transform.c (update_noncloned_frequencies): Use
7173         profile_count::adjust_for_ipa_scaling.
7174         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
7175         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
7176         function.
7177         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
7178
7179 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7180
7181         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
7182         (split_group): Add total_orig and total_new arguments, estimate the
7183         number of statements related to the store group without store merging
7184         and with store merging.
7185         (imm_store_chain_info::output_merged_store): Adjust split_group
7186         callers, punt if estimated number of statements with store merging
7187         is not smaller than estimated number of statements without it.
7188         Formatting fix.
7189         (handled_load): Remove has_single_use checks.
7190         (pass_store_merging::process_store): Likewise.
7191
7192 2017-11-09  Richard Biener  <rguenther@suse.de>
7193
7194         PR tree-optimization/82902
7195         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
7196
7197 2017-11-09  Martin Liska  <mliska@suse.cz>
7198
7199         PR target/82863
7200         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
7201         uninitialized.
7202
7203 2017-11-09  Martin Liska  <mliska@suse.cz>
7204
7205         PR tree-optimization/82669
7206         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
7207
7208 2017-11-09  Martin Liska  <mliska@suse.cz>
7209
7210         PR gcov-profile/48463
7211         * coverage.c (coverage_begin_function): Output also end locus
7212         of a function and information whether the function is
7213         artificial.
7214         * gcov-dump.c (tag_function): Parse and print the information.
7215         * gcov.c (INCLUDE_MAP): Add include.
7216         (INCLUDE_SET): Likewise.
7217         (struct line_info): Move earlier in the source file because
7218         of vector<line_info> in function_info structure.
7219         (line_info::line_info): Likewise.
7220         (line_info::has_block): Likewise.
7221         (struct source_info): Add new member index.
7222         (source_info::get_functions_at_location): New function.
7223         (function_info::group_line_p): New function.
7224         (output_intermediate_line): New function.
7225         (output_intermediate_file): Use the mentioned function.
7226         (struct function_start): New.
7227         (struct function_start_pair_hash): Likewise.
7228         (process_file): Add code that identifies group functions.
7229         Assign lines either to global or function scope.
7230         (generate_results): Skip artificial functions.
7231         (find_source): Assign index for each source file.
7232         (read_graph_file): Read new flag artificial and end_line.
7233         (add_line_counts): Assign it either to global of function scope.
7234         (accumulate_line_counts): Isolate core of the function to
7235         accumulate_line_info and call it for both function and global
7236         scope lines.
7237         (accumulate_line_info): New function.
7238         (output_line_beginning): Fix GNU coding style.
7239         (print_source_line): New function.
7240         (output_line_details): Likewise.
7241         (output_function_details): Likewise.
7242         (output_lines): Iterate both source (global) scope and function
7243         scope.
7244         (struct function_line_start_cmp): New class.
7245         * doc/gcov.texi: Reflect changes in documentation.
7246
7247 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7248
7249         PR debug/82837
7250         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
7251         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
7252         and similarly for not instead of neg.
7253
7254 2017-11-08  Andi Kleen  <ak@linux.intel.com>
7255
7256         * config/i386/i386.opt: Add -mforce-indirect-call.
7257         * config/i386/predicates.md: Check for flag_force_indirect_call.
7258         * doc/invoke.texi: Document -mforce-indirect-call
7259
7260 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
7261
7262         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
7263         New extern.
7264         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
7265         config/riscv/riscv.c (predict.h): New include.
7266         (riscv_slow_unaligned_access_p): No longer static.
7267         (riscv_block_move_straight): Add require.
7268         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
7269
7270 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7271
7272         PR target/82855
7273         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
7274         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
7275         nonimmediate_operand predicate for operand 1 instead of
7276         register_operand.
7277
7278 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7279
7280         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
7281         New pattern.
7282         * config/aarch64/constraints.md (Uml): New constraint.
7283         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
7284         predicate.
7285
7286 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7287
7288         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
7289         of two vec_duplicates into a vec_concat.
7290
7291 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7292
7293         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7294         Simplify vec_merge of vec_duplicate and vec_concat.
7295         * config/aarch64/constraints.md (Utq): New constraint.
7296         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
7297         define_insn.
7298
7299 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7300
7301         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7302         Simplify vec_merge of vec_duplicate and const_vector.
7303         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
7304         New predicate.
7305         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
7306         mode iterator.  Update predicate on operand 1 to
7307         handle non-const_vec constants.  Delete constraints.
7308         (*aarch64_combinez_be<mode>): Likewise for operand 2.
7309
7310 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7311
7312         PR tree-optimization/78821
7313         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
7314         data member.
7315         (store_operand_info::store_operand_info): Initialize it to false.
7316         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
7317         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
7318         store in the group, and if chain_info is non-NULL, to ignore altogether
7319         that chain.
7320         (compatible_load_p): Fail if bit_not_p does not match.
7321         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
7322         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
7323         (pass_store_merging::process_store): Adjust
7324         terminate_all_aliasing_chains calls to pass NULL in all current spots,
7325         call terminate_all_aliasing_chains newly when adding a store into
7326         a chain with non-NULL chain_info.
7327
7328 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7329
7330         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
7331
7332 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7333
7334         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
7335         Remove.
7336         (aarch64_layout_frame): Initialise emit_frame_chain.
7337         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
7338         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
7339
7340 2017-11-08  Martin Liska  <mliska@suse.cz>
7341
7342         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
7343         of gimple_call_internal_p.
7344
7345 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7346
7347         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
7348
7349 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7350
7351         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
7352         "do {} while (0)".
7353
7354 2017-11-08  Martin Liska  <mliska@suse.cz>
7355
7356         PR sanitizer/82792
7357         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
7358
7359 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7360
7361         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
7362
7363 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
7364
7365         PR target/82855
7366         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
7367         (*cmp<mode>_ccz_1): New insn with $k alternative.
7368
7369         PR target/82855
7370         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
7371         RTX_COMM_COMPARE as commutative as well.
7372         (ix86_binary_operator_ok): Formatting fix.
7373         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
7374         *<code><mode>3<mask_name><round_saeonly_name>,
7375         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
7376         *<s>mul<mode>3_highpart<mask_name>,
7377         *vec_widen_umult_even_v16si<mask_name>,
7378         *vec_widen_umult_even_v8si<mask_name>,
7379         *vec_widen_umult_even_v4si<mask_name>,
7380         *vec_widen_smult_even_v16si<mask_name>,
7381         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
7382         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
7383         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
7384         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
7385         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
7386         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
7387         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
7388         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
7389         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
7390         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
7391         ix86_binary_operator_ok.  Formatting fixes.
7392         (*<plusminus_insn><mode>3<mask_name><round_name>,
7393         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
7394         fixes.
7395
7396 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
7397
7398         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
7399         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
7400         eq and ne if TARGET_ISEL.
7401         (cmp): New code_iterator.
7402         (UNS, UNSU_, UNSIK): New code_attrs.
7403         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
7404         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
7405         to...
7406         ("eq<mode>3"): ... this.
7407         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
7408         to...
7409         ("ne<mode>3"): ... this.
7410
7411 2017-11-07  Julia Koval  <julia.koval@intel.com>
7412
7413         PR target/82812
7414         * common/config/i386/i386-common.c
7415         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
7416         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
7417         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
7418         * config/i386/i386.opt: Ditto.
7419         * config/i386/i386.c (ix86_target_string): Ditto.
7420         (ix86_option_override_internal): Ditto.
7421         (ix86_init_mpx_builtins): Move MPX to args2.
7422         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
7423         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
7424         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
7425         __builtin_ia32_vgf2p8affineinvqb_v32qi,
7426         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
7427         __builtin_ia32_vgf2p8affineinvqb_v16qi,
7428         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
7429
7430 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
7431
7432         PR target/80425
7433         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
7434         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
7435         (zero-extendsidi peephole2): Remove peephole.
7436
7437 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7438
7439         PR c/53037
7440         * stor-layout.c: Include attribs.h.
7441         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
7442         explicit lookup of "aligned" attribute.
7443
7444 2017-11-07  Andrew Waterman  <andrew@sifive.com>
7445
7446         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
7447         (riscv_expand_block_move): Likewise.
7448         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
7449         implementation.
7450         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
7451         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
7452         * config/riscv/riscv.c (riscv_block_move_straight): New function.
7453         (riscv_adjust_block_mem): Likewise.
7454         (riscv_block_move_loop): Likewise.
7455         (riscv_expand_block_move): Likewise.
7456         * config/riscv/riscv.md (movmemsi): New pattern.
7457
7458 2017-11-07  Michael Clark  <michaeljclark@mac.com>
7459
7460         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
7461         (MUSL_DYNAMIC_LINKER): Likewise.
7462
7463 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
7464
7465         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
7466         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
7467         nonmmory_operand.
7468
7469 2017-11-07  Richard Biener  <rguenther@suse.de>
7470
7471         * match.pd: Fix build.
7472
7473 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
7474             Jackson Woodruff  <jackson.woodruff@arm.com>
7475
7476         PR tree-optimization/71026
7477         * match.pd: Canonicalize negate in division.
7478
7479 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
7480
7481         PR middle-end/80131
7482         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
7483
7484 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7485
7486         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
7487         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
7488
7489 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7490
7491         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
7492         non-scalar integral types.
7493         * match.pd (negate_expr_p): Handle MINUS_EXPR.
7494         (-(A-B), -(~A)): New transformations.
7495
7496 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7497
7498         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7499         semicolon after "do {} while (0)".
7500         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7501         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7502         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7503         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7504         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7505
7506 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7507
7508         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
7509         after "do {} while (0)".
7510         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7511         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7512         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7513         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7514         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7515
7516 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7517
7518         PR other/82784
7519         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
7520         "while {} do (0)".
7521         (arm_rtx_costs_internal): Add missing semicolon after
7522         HANDLE_NARROW_SHIFT_ARITH call.
7523
7524 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7525
7526         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7527         disable isel if it was not set explicitly.
7528
7529 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
7530
7531         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
7532         (add_type_attribute) likewise.
7533
7534 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
7535
7536         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
7537         of struct ix86_frame.
7538         (ix86_initial_elimination_offset): Likewise.
7539         (ix86_expand_split_stack_prologue): Likewise.
7540
7541 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
7542
7543         * tree-vrp.h (enum value_range_type): Update stale comment.
7544
7545 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7546             Alan Hayward  <alan.hayward@arm.com>
7547             David Sherwood  <david.sherwood@arm.com>
7548
7549         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
7550         (aarch64_expand_vec_perm_const): Take the number of units too.
7551         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
7552         (aarch64_expand_vec_perm_const): Likewise.
7553         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
7554         (vec_perm<mode>): Update accordingly.
7555
7556 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7557             Alan Hayward  <alan.hayward@arm.com>
7558             David Sherwood  <david.sherwood@arm.com>
7559
7560         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
7561         Take the number of units too.
7562         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
7563         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
7564         but check for a vector mode before rather than after the call.
7565         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
7566         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
7567         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
7568         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
7569         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
7570         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
7571         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
7572         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
7573         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
7574         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
7575         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
7576         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
7577         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
7578         (aarch64_sqdmull2_n<mode>): Update accordingly.
7579
7580 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7581             Alan Hayward  <alan.hayward@arm.com>
7582             David Sherwood  <david.sherwood@arm.com>
7583
7584         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
7585         the number of units too.
7586         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
7587         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
7588         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
7589         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
7590         (vec_store_lanesxi<mode>): Update accordingly.
7591
7592 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7593             Alan Hayward  <alan.hayward@arm.com>
7594             David Sherwood  <david.sherwood@arm.com>
7595
7596         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
7597         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
7598         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
7599         of units rather than the mode.
7600         * config/aarch64/iterators.md (nunits): New mode attribute.
7601         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
7602         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
7603         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
7604         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
7605         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
7606         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
7607         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
7608         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
7609         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
7610         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
7611         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
7612         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
7613         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
7614         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
7615         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
7616         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
7617         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
7618         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
7619         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
7620         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
7621         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7622         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
7623         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
7624         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
7625         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
7626         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
7627         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
7628         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
7629         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
7630         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
7631         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
7632         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
7633         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
7634         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
7635         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
7636         (aarch64_simd_vec_setv2di): Likewise.
7637
7638 2017-11-06  Carl Love  <cel@us.ibm.com>
7639
7640         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
7641         definitions.
7642         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
7643         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
7644         to power 8.
7645         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
7646         extern declaration.
7647         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
7648         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
7649         Add power 8 macro expansions.
7650         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
7651         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
7652         power 8 instructions.  (VSX_XXBR): Add iterator.
7653
7654 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
7655
7656         * config/arm/arm.md (predicable_short_it): Change default to "no",
7657         improve documentation, remove uses that are identical to the default.
7658         (enabled_for_depr_it): Rename to enabled_for_short_it.
7659         * gcc/config/arm/arm-fixed.md (predicable_short_it):
7660         Remove default uses.
7661         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
7662         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
7663         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
7664         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
7665
7666 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7667
7668         PR target/82748
7669         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
7670         float128 helper macros, which are no longer used after deleting
7671         the old 'q' built-in functions, and moving the round to odd
7672         built-in functions to being special built-in functions.
7673         (BU_FLOAT128_2): Likewise.
7674         (BU_FLOAT128_1_HW): Likewise.
7675         (BU_FLOAT128_2_HW): Likewise.
7676         (BU_FLOAT128_3_HW): Likewise.
7677         (FABSQ): Delete old 'q' built-in functions.
7678         (COPYSIGNQ): Likewise.
7679         (SQRTF128_ODD): Move round to odd built-in functions to be
7680         special built-in functions, so that we can handle
7681         -mabi=ieeelongdouble.
7682         (TRUNCF128_ODD): Likewise.
7683         (ADDF128_ODD): Likewise.
7684         (SUBF128_ODD): Likewise.
7685         (MULF128_ODD): Likewise.
7686         (DIVF128_ODD): Likewise.
7687         (FMAF128_ODD): Likewise.
7688         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
7689         built-in names to 'f128'.
7690         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
7691         old 'q' built-in functions, as the machine independent code for
7692         'f128' built-in functions handles this.
7693         (rs6000_expand_builtin): Add expansion for float128 round to odd
7694         functions, keying off on -mabi=ieeelongdouble of whether to use
7695         the KFmode or TFmode variant.
7696         (rs6000_init_builtins): Initialize the _Float128 round to odd
7697         built-in functions.
7698         * doc/extend.texi (PowerPC Built-in Functions): Document the old
7699         _Float128 'q' built-in functions are now mapped into the new
7700         'f128' built-in functions.
7701
7702 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
7703
7704         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
7705         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
7706
7707 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
7708
7709         PR jit/82826
7710         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
7711         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
7712         * toplev.c: Include "ipa-fnsummary.h".
7713         (toplev::finalize): Call ipa_fnsummary_c_finalize.
7714
7715 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
7716
7717         PR tree-optimization/82838
7718         * gimple-ssa-store-merging.c
7719         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
7720         on a separate gimple_seq which is then appended to seq.
7721
7722 2017-11-06  Jeff Law  <law@redhat.com>
7723
7724         PR target/82788
7725         * config/i386/i386.c (PROBE_INTERVAL): Remove.
7726         (get_probe_interval): New functions.
7727         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
7728         (ix86_adjust_stack_and_probe): Likewise.
7729         (output_adjust_stack_and_probe): Likewise.
7730         (ix86_emit_probe_stack_range): Likewise.
7731         (ix86_expand_prologue): Likewise.
7732
7733 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7734
7735         PR tree-optimization/82816
7736         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
7737         if the modes of the two types are the same.
7738         (convert_plusminus_to_widen): Likewise.
7739
7740 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7741
7742         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
7743         p9_vadu<mode>3.
7744         (usadv16qi): New define_expand.
7745         (usadv8hi): New define_expand.
7746
7747 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
7748
7749         PR bootstrap/82832
7750         * ipa-inline-transform.c (update_noncloned_frequencies): Always
7751         scale.
7752         (inline_transform): Likewise.
7753         * predict.c (counts_to_freqs): Remove useless conditional.
7754         * profile-count.h (profile_count::apply_scale): Move sanity check.
7755         * tree-inline.c (copy_bb): Always scale.
7756         (copy_cfg_body): Likewise.
7757
7758 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
7759
7760         PR target/67591
7761         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
7762         attribute.
7763         (*cmp_ite0): Add enabled_for_depr_it attribute.
7764         (*cmp_ite1): Likewise.
7765
7766 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7767
7768         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
7769         TYPE_MFCRF.
7770
7771 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7772
7773         * tree-vrp.c (vrp_int_const_binop): Return true on success and
7774         return the value by pointer.
7775         (extract_range_from_multiplicative_op_1): Update accordingly.
7776         Return as soon as an operation fails.
7777
7778 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7779
7780         PR other/82784
7781         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
7782         (DEF_SANITIZER_BUILTIN): ... here.
7783         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
7784         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
7785
7786 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7787
7788         PR other/82784
7789         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
7790         macro body.
7791         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
7792         ASM_OUTPUT_BEFORE_CASE_LABEL call.
7793         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
7794         after macro body.
7795         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7796         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7797         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7798
7799 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7800
7801         PR other/82784
7802         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
7803         "do {} while (0)".
7804
7805 2017-11-04  Michael Clark  <michaeljclark@mac.com>
7806
7807         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
7808         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
7809         (adddi3): Likewise.
7810         (*addsi3_extended): Likewise.
7811         (*addsi3_extended2): Likewise.
7812         (<optab>si3): Likewise.
7813         (<optab>di3): Likewise.
7814         (<optab><mode>3): Likewise.
7815         (<*optabe>si3_internal): Likewise.
7816         (zero_extendqi<SUPERQI:mode>2): Likewise.
7817         (*add<mode>hi3): Likewise.
7818         (*xor<mode>hi3): Likewise.
7819         (<optab>di3): Likewise.
7820         (*<optab>si3_extend): Likewise.
7821         (*sge<u>_<X:mode><GPR:mode>): Likewise.
7822         (*slt<u>_<X:mode><GPR:mode>): Likewise.
7823         (*sle<u>_<X:mode><GPR:mode>): Likewise.
7824
7825 2017-11-04  Andrew Waterman  <andrew@sifive.com>
7826
7827         * config/riscv/riscv.c (riscv_option_override): Conditionally set
7828         TARGET_STRICT_ALIGN based upon -mtune argument.
7829
7830 2017-11-04  Andrew Waterman  <andrew@sifive.com>
7831
7832         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
7833
7834 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
7835
7836         * config/i386/i386.c (choose_basereg): Use optional scratch
7837         register and add assertion.
7838         (x86_emit_outlined_ms2sysv_save): Use scratch register when
7839         needed, and don't allocate stack.
7840         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
7841         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
7842         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
7843
7844 2017-11-03  Jeff Law  <law@redhat.com>
7845
7846         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
7847         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
7848         to probe at the start of a noreturn function.
7849
7850 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
7851
7852         PR tree-optimization/78821
7853         * gimple-ssa-store-merging.c: Update the file comment.
7854         (MAX_STORE_ALIAS_CHECKS): Define.
7855         (struct store_operand_info): New type.
7856         (store_operand_info::store_operand_info): New constructor.
7857         (struct store_immediate_info): Add rhs_code and ops data members.
7858         (store_immediate_info::store_immediate_info): Add rhscode, op0r
7859         and op1r arguments to the ctor, initialize corresponding data members.
7860         (struct merged_store_group): Add load_align_base and load_align
7861         data members.
7862         (merged_store_group::merged_store_group): Initialize them.
7863         (merged_store_group::do_merge): Update them.
7864         (merged_store_group::apply_stores): Pick the constant for
7865         encode_tree_to_bitpos from one of the two operands, or skip
7866         encode_tree_to_bitpos if neither operand is a constant.
7867         (class pass_store_merging): Add process_store method decl.  Remove
7868         bool argument from terminate_all_aliasing_chains method decl.
7869         (pass_store_merging::terminate_all_aliasing_chains): Remove
7870         var_offset_p argument and corresponding handling.
7871         (stmts_may_clobber_ref_p): New function.
7872         (compatible_load_p): New function.
7873         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
7874         if there is overlap and rhs_code is not INTEGER_CST.  For
7875         non-overlapping stores terminate group if rhs is not mergeable.
7876         (get_alias_type_for_stmts): Change first argument from
7877         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
7878         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
7879         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
7880         alias type.
7881         (get_location_for_stmts): Change first argument from
7882         auto_vec<gimple *> & to vec<gimple *> &.
7883         (struct split_store): Remove orig_stmts data member, add orig_stores.
7884         (split_store::split_store): Create orig_stores rather than orig_stmts.
7885         (find_constituent_stmts): Renamed to ...
7886         (find_constituent_stores): ... this.  Change second argument from
7887         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
7888         to info structures rather than the statements.
7889         (split_group): Rename ALLOW_UNALIGNED argument to
7890         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
7891         it.  Adjust find_constituent_stores caller.
7892         (imm_store_chain_info::output_merged_store): Handle rhs_code other
7893         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
7894         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
7895         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
7896         (mem_valid_for_store_merging): New function.
7897         (handled_load): New function.
7898         (pass_store_merging::process_store): New method.
7899         (pass_store_merging::execute): Use process_store method.  Adjust
7900         terminate_all_aliasing_chains caller.
7901
7902 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7903
7904         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
7905         Return true for more constants, symbols and label references.
7906         (aarch64_valid_floating_const): Remove unused function.
7907
7908 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7909
7910         PR target/82786
7911         * config/aarch64/aarch64.c (aarch64_layout_frame):
7912         Undo forcing of LR at bottom of frame.
7913
7914 2017-11-03  Jeff Law  <law@redhat.com>
7915
7916         PR target/82823
7917         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
7918         for int_registers_saved.
7919
7920         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
7921         extracted from tree-ssa-dom.c.
7922         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
7923         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
7924         (record_equivalences_from_incoming_edge): Add additional argument
7925         to single_pred_edge_ignoring_loop_edges call.
7926         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
7927         (uncprop_dom_walker::before_dom_children): Add additional argument
7928         to single_pred_edge_ignoring_loop_edges call.
7929         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
7930         single_pred_edge_ignoring_loop_edges rather than open coding.
7931         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
7932
7933 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
7934
7935         * match.pd (-(-A)): Rewrite.
7936
7937 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7938
7939         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
7940         (rs6000_emit_int_cmove): New declaration.
7941         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
7942         (rs6000_emit_sISEL): Delete.
7943         (rs6000_emit_int_cmove): Make non-static.
7944         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
7945         instead of rs6000_emit_sISEL.
7946
7947 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
7948
7949         * asan.c (create_cond_insert_point): Maintain profile.
7950         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
7951         merged.
7952         * basic-block.h (struct basic_block_def): Remove frequency.
7953         (EDGE_FREQUENCY): Use to_frequency
7954         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
7955         heuristics.
7956         (find_traces): Update to use to_frequency.
7957         (find_traces_1_round): Likewise; use only IPA counts.
7958         (bb_to_key): Likewise.
7959         (connect_traces): Use IPA counts only.
7960         (copy_bb_p): Update to use to_frequency.
7961         (fix_up_crossing_landing_pad): Likewise.
7962         (sanitize_hot_paths): Likewise.
7963         * bt-load.c (basic_block_freq): Likewise.
7964         * cfg.c (init_flow): Set count_max to uninitialized.
7965         (check_bb_profile): Remove frequencies; check counts.
7966         (dump_bb_info): Do not dump frequencies.
7967         (update_bb_profile_for_threading): Update counts only.
7968         (scale_bbs_frequencies_int): Likewise.
7969         (MAX_SAFE_MULTIPLIER): Remove.
7970         (scale_bbs_frequencies_gcov_type): Update counts only.
7971         (scale_bbs_frequencies_profile_count): Update counts only.
7972         (scale_bbs_frequencies): Update counts only.
7973         * cfg.h (struct control_flow_graph): Add count-max.
7974         (update_bb_profile_for_threading): Update prototype.
7975         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
7976         (find_many_sub_basic_blocks): Likewise.
7977         * cfgcleanup.c (try_forward_edges): Likewise.
7978         (try_crossjump_to_edge): Likewise.
7979         * cfgexpand.c (expand_gimple_cond): Likewise.
7980         (expand_gimple_tailcall): Likewise.
7981         (construct_init_block): Likewise.
7982         (construct_exit_block): Likewise.
7983         * cfghooks.c (verify_flow_info): Check consistency of counts.
7984         (dump_bb_for_graph): Do not dump frequencies.
7985         (split_block_1): Do not update frequencies.
7986         (split_edge): Do not update frequencies.
7987         (make_forwarder_block): Do not update frequencies.
7988         (duplicate_block): Do not update frequencies.
7989         (account_profile_record): Do not update frequencies.
7990         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
7991         for global heuristics.
7992         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
7993         (expected_loop_iterations_unbounded): Use counts only.
7994         * cfgloopmanip.c (scale_loop_profile): Simplify.
7995         (create_empty_loop_on_edge): Simplify
7996         (loopify): Simplify
7997         (duplicate_loop_to_header_edge): Simplify
7998         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
7999         (update_br_prob_note): Take care of removing note when profile
8000         becomes undefined.
8001         (relink_block_chain): Do not dump frequency.
8002         (rtl_account_profile_record): Use to_frequency.
8003         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
8004         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
8005         (cgraph_update_edges_for_call_stmt_node): Likewise.
8006         (cgraph_edge::verify_count_and_frequency): Update.
8007         (cgraph_node::verify_node): Temporarily disable frequency verification.
8008         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
8009         to_cgraph_frequency.
8010         (cgraph_edge::rebuild_edges): Convert to ipa counts.
8011         * cgraphunit.c (init_lowered_empty_function): Do not initialize
8012         frequencies.
8013         (cgraph_node::expand_thunk): Update profile.
8014         * except.c (dw2_build_landing_pads): Do not update frequency.
8015         * final.c (compute_alignments): Use to_frequency.
8016         (dump_basic_block_info): Do not dump frequency.
8017         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
8018         (dump_gimple_bb_header): Do not dump frequency.
8019         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
8020         do update count.
8021         * gimple-streamer-in.c (input_bb): Do not stream frequency.
8022         * gimple-streamer-out.c (output_bb): Do not stream frequency.
8023         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
8024         (init_before_recovery): Do not update frequency.
8025         (sched_create_recovery_edges): Do not update frequency.
8026         * hsa-gen.c (convert_switch_statements): Do not update frequency.
8027         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
8028         (ipa_cp_c_finalize): Set max_count to uninitialized.
8029         * ipa-fnsummary.c (get_minimal_bb): Use counts.
8030         (param_change_prob): Use counts.
8031         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
8032         local profiles.
8033         * ipa-split.c (consider_split): Use to_frequency.
8034         (split_function): Use to_frequency.
8035         * ira-build.c (loop_compare_func): Likewise.
8036         (mark_loops_for_removal): Likewise.
8037         (mark_all_loops_for_removal): Likewise.
8038         * loop-doloop.c (doloop_modify): Do not update frequency.
8039         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
8040         frequency.
8041         * lto-streamer-in.c (input_function): Update count_max.
8042         * omp-expand.c (expand_omp_taskreg): Update count_max.
8043         * omp-simd-clone.c (simd_clone_adjust): Update profile.
8044         * predict.c (maybe_hot_frequency_p): Use to_frequency.
8045         (maybe_hot_count_p): Use ipa counts only.
8046         (maybe_hot_bb_p): Simplify.
8047         (maybe_hot_edge_p): Simplify.
8048         (probably_never_executed): Do not take frequency argument.
8049         (probably_never_executed_bb_p): Do not pass frequency.
8050         (probably_never_executed_edge_p): Likewise.
8051         (combine_predictions_for_bb): Check that profile is nonzero.
8052         (propagate_freq): Do not set frequency.
8053         (drop_profile): Simplify.
8054         (counts_to_freqs): Simplify.
8055         (expensive_function_p): Use to_frequency.
8056         (propagate_unlikely_bbs_forward): Simplify.
8057         (determine_unlikely_bbs): Simplify.
8058         (estimate_bb_frequencies): Add hack to silence graphite issues.
8059         (compute_function_frequency): Use ipa counts.
8060         (pass_profile::execute): Update.
8061         (rebuild_frequencies): Use counts only.
8062         (force_edge_cold): Use counts only.
8063         * profile-count.c (profile_count::dump): Dump new count types.
8064         (profile_count::differs_from_p): Check compatiblity.
8065         (profile_count::to_frequency): New function.
8066         (profile_count::to_cgraph_frequency): New function.
8067         * profile-count.h (struct function): Declare.
8068         (enum profile_quality): Add profile_guessed_local and
8069         profile_guessed_global0.
8070         (class profile_proability): Decrease number of bits to 29;
8071         update from_reg_br_prob_note and to_reg_br_prob_note.
8072         (class profile_count: Update comment; decrease number of bits
8073         to 61. Check compatibility.
8074         (profile_count::compatible_p): New private member function.
8075         (profile_count::ipa_p): New member function.
8076         (profile_count::operator<): Handle global zero correctly.
8077         (profile_count::operator>): Handle global zero correctly.
8078         (profile_count::operator<=): Handle global zero correctly.
8079         (profile_count::operator>=): Handle global zero correctly.
8080         (profile_count::nonzero_p): New member function.
8081         (profile_count::force_nonzero): New member function.
8082         (profile_count::max): New member function.
8083         (profile_count::apply_scale): Handle IPA scalling.
8084         (profile_count::guessed_local): New member function.
8085         (profile_count::global0): New member function.
8086         (profile_count::ipa): New member function.
8087         (profile_count::to_frequency): Declare.
8088         (profile_count::to_cgraph_frequency): Declare.
8089         * profile.c (OVERLAP_BASE): Delete.
8090         (compute_frequency_overlap): Delete.
8091         (compute_branch_probabilities): Do not use compute_frequency_overlap.
8092         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
8093         * sched-ebb.c (rank): Use counts only.
8094         * shrink-wrap.c (handle_simple_exit): Use counts only.
8095         (try_shrink_wrapping): Use counts only.
8096         (place_prologue_for_one_component): Use counts only.
8097         * tracer.c (find_best_predecessor): Use to_frequency.
8098         (find_trace): Use to_frequency.
8099         (tail_duplicate): Use to_frequency.
8100         * trans-mem.c (expand_transaction): Do not update frequency.
8101         * tree-call-cdce.c: Do not update frequency.
8102         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
8103         (gimple_merge_blocks): Likewise.
8104         (gimple_split_edge): Likewise.
8105         (gimple_duplicate_sese_region): Likewise.
8106         (gimple_duplicate_sese_tail): Likewise.
8107         (move_sese_region_to_fn): Likewise.
8108         (gimple_account_profile_record): Likewise.
8109         (insert_cond_bb): Likewise.
8110         * tree-complex.c (expand_complex_div_wide): Likewise.
8111         * tree-eh.c (lower_resx): Update profile.
8112         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
8113         frequencies.
8114         (initialize_cfun): Do not initialize frequencies
8115         (freqs_to_counts): Delete.
8116         (copy_cfg_body): Ignore count parameter.
8117         (copy_body): Update.
8118         (expand_call_inline): Update count_max.
8119         (optimize_inline_calls): Update count_max.
8120         (tree_function_versioning): Update count_max.
8121         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
8122         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
8123         frequency.
8124         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
8125         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
8126         (try_peel_loop): Likewise.
8127         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
8128         to_frequency.
8129         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
8130         (tree_transform_and_unroll_loop): Do not use frequencies
8131         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
8132         Use reliable prediction only.
8133         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
8134         * tree-ssa-sink.c (select_best_block): Use to_frequency.
8135         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
8136         probability scaling.
8137         * tree-ssa-threadupdate.c (create_block_for_threading): Do
8138         not update frequency
8139         (any_remaining_duplicated_blocks): Likewise.
8140         (update_profile): Likewise.
8141         (estimated_freqs_path): Delete.
8142         (freqs_to_counts_path): Delete.
8143         (clear_counts_path): Delete.
8144         (ssa_fix_duplicate_block_edges): Likewise.
8145         (duplicate_thread_path): Likewise.
8146         * tree-switch-conversion.c (gen_inbound_check): Use counts.
8147         * tree-tailcall.c (decrease_profile): Do not update frequency.
8148         (eliminate_tail_call): Likewise.
8149         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
8150         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
8151         (optimize_mask_stores): Likewise.
8152         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
8153         * ubsan.c (ubsan_expand_null_ifn): Update profile.
8154         (ubsan_expand_ptr_ifn): Update profile.
8155         * value-prof.c (gimple_ic): Simplify.
8156         * value-prof.h (gimple_ic): Update prototype.
8157         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
8158         * ipa-inline.c (compute_uninlined_call_time): Be sure that
8159         counts are nonzero.
8160         (want_inline_self_recursive_call_p): Likewise.
8161         (resolve_noninline_speculation): Only cummulate defined counts.
8162         (inline_small_functions): Use nonzero_p.
8163         (ipa_inline): Do not access freed node.
8164
8165 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8166
8167         * config/aarch64/aarch64.c (aarch64_override_options_internal):
8168         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
8169
8170 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
8171
8172         * config/riscv/riscv.c (riscv_legitimize_move): Handle
8173         non-legitimate address.
8174
8175 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8176
8177         * config/rs6000/rs6000.md (*lt0_disi): Delete.
8178         (*lt0_<mode>di, *lt0_<mode>si): New.
8179
8180 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8181
8182         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
8183         TARGET_PAIRED_FLOAT.
8184
8185 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
8186             Jim Wilson  <jim.wilson@linaro.org>
8187
8188         * config/aarch64/aarch64-cores.def (saphira): New CPU.
8189         * config/aarch64/aarch64-tune.md: Regenerated.
8190         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
8191         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
8192
8193 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
8194
8195         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
8196         (arc_expand_prologue): Restore blink for millicode.
8197         * config/arc/linux.h (LINK_EH_SPEC): Defined.
8198
8199 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
8200
8201         PR target/82809
8202         * config/i386/i386.c (ix86_vector_duplicate_value): Use
8203         gen_vec_duplicate after forcing the scalar into a register.
8204
8205 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
8206
8207         * combine (try_combine): Print the insns input to try_combine to the
8208         dump file.
8209
8210 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
8211
8212         PR target/79868
8213         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8214         Remove second argument from aarch64_process_target_attr call.
8215         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
8216         Ditto.
8217         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
8218         field type.
8219         (aarch64_handle_attr_arch): Remove second argument.
8220         (aarch64_handle_attr_cpu): Ditto.
8221         (aarch64_handle_attr_tune): Ditto.
8222         (aarch64_handle_attr_isa_flags): Ditto.
8223         (aarch64_process_one_target_attr): Ditto.
8224         (aarch64_process_target_attr): Ditto.
8225         (aarch64_option_valid_attribute_p): Remove second argument.
8226         on aarch64_process_target_attr call.
8227
8228 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8229
8230         * diagnostic.c: Include "selftest-diagnostic.h".
8231         (selftest::assert_location_text): New function.
8232         (selftest::test_diagnostic_get_location_text): New function.
8233         (selftest::diagnostic_c_tests): Call it.
8234
8235 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8236
8237         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
8238         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
8239         (class selftest::test_diagnostic_context): Move to...
8240         * selftest-diagnostic.c: New file.
8241         * selftest-diagnostic.h: New file.
8242
8243 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
8244
8245         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
8246         offset range for FT32B.
8247         * config/ft32/ft32.h: option "mcompress" enables relaxation.
8248         * config/ft32/ft32.md: Add TARGET_NOPM.
8249         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
8250         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
8251
8252 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
8253
8254         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
8255
8256 2017-11-02  Jeff Law  <law@redhat.com>
8257
8258         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
8259         virtual keyword on FINAL OVERRIDE members.
8260
8261         * tree-ssa-propagate.h (ssa_propagation_engine): Group
8262         virtuals together.  Add virtual destructor.
8263         (substitute_and_fold_engine): Similarly.
8264
8265 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
8266
8267         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
8268
8269 2017-11-02  Richard Biener  <rguenther@suse.de>
8270
8271         PR tree-optimization/82795
8272         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
8273
8274 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8275
8276         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
8277         gcc_SUN_LD_VERSION.
8278         (gcc_GAS_CHECK_FEATURE): Remove.
8279         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
8280         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
8281         * configure: Regenerate.
8282
8283 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
8284
8285         * config/arc/arc.c (hwloop_optimize): Account for empty
8286         body loops.
8287
8288 2017-11-02  Richard Biener  <rguenther@suse.de>
8289
8290         PR middle-end/82765
8291         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
8292         Truncate ARRAY_REF index and element size.
8293
8294 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8295
8296         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
8297
8298 2017-11-01  Jeff Law  <law@redhat.com>
8299
8300         * tree-ssa-ccp.c (ccp_folder): New class derived from
8301         substitute_and_fold_engine.
8302         (ccp_folder::get_value): New member function.
8303         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
8304         (ccp_fold_stmt): Remove prototype.
8305         (ccp_finalize): Call substitute_and_fold from the ccp_class.
8306         * tree-ssa-copy.c (copy_folder): New class derived from
8307         substitute_and_fold_engine.
8308         (copy_folder::get_value): Renamed from get_value.
8309         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
8310         * tree-vrp.c (vrp_folder): New class derived from
8311         substitute_and_fold_engine.
8312         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
8313         (vrp_folder::get_value): New member function.
8314         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
8315         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
8316         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
8317         provide a class interface to folder/substitute routines.
8318         (ssa_prop_fold_stmt_fn): Remove typedef.
8319         (ssa_prop_get_value_fn): Likewise.
8320         (subsitute_and_fold): Remove prototype.
8321         (replace_uses_in): Likewise.
8322         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
8323         Renamed from replace_uses_in.  Call the virtual member function
8324         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
8325         (substitute_and_fold_dom_walker): Remove initialization of
8326         data member entries for calbacks.  Add substitute_and_fold_engine
8327         member and initialize it.
8328         (substitute_and_fold_dom_walker::before_dom_children0: Use the
8329         member functions for get_value, replace_phi_args_in c
8330         replace_uses_in, and fold_stmt calls.
8331         (substitute_and_fold_engine::substitute_and_fold): Renamed from
8332         substitute_and_fold.  Remove assert.   Update ctor call.
8333
8334         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
8335         (ssa_prop_visit_phi_fn): Likewise.
8336         (class ssa_propagation_engine): New class to provide an interface
8337         into ssa_propagate.
8338         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
8339         variable.
8340         (ssa_prop_visit_phi): Likewise.
8341         (ssa_propagation_engine::simulate_stmt): Moved into class.
8342         Call visit_phi/visit_stmt from the class rather than via
8343         file scoped static variables.
8344         (ssa_propagation_engine::simulate_block): Moved into class.
8345         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
8346         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
8347         set file scoped statics for the visit_stmt/visit_phi callbacks.
8348         * tree-complex.c (complex_propagate): New class derived from
8349         ssa_propagation_engine.
8350         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
8351         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
8352         (tree_lower_complex): Call ssa_propagate via the complex_propagate
8353         class.
8354         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
8355         ssa_propagation_engine.
8356         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
8357         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
8358         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
8359         * tree-ssa-copy.c (copy_prop): New class derived from
8360         ssa_propagation_engine.
8361         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
8362         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
8363         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
8364         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
8365         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
8366         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
8367         (execute_vrp): Call ssa_propagate from the vrp_prop class.
8368
8369 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
8370
8371         PR rtl-optimization/82778
8372         PR rtl-optimization/82597
8373         * compare-elim.c (struct comparison): Add in_a_setter field.
8374         (find_comparison_dom_walker::before_dom_children): Remove killed
8375         bitmap and df_simulate_find_defs call, instead walk the defs.
8376         Compute last_setter and initialize in_a_setter.  Merge definitions
8377         with first initialization for a few variables.
8378         (try_validate_parallel): Use insn_invalid_p instead of
8379         recog_memoized.  Return insn rather than just the pattern.
8380         (try_merge_compare): Fix up comment.  Don't uselessly test if
8381         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
8382         chains.
8383         (execute_compare_elim_after_reload): Remove df_chain_add_problem
8384         call.
8385
8386 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8387             Alan Hayward  <alan.hayward@arm.com>
8388             David Sherwood  <david.sherwood@arm.com>
8389
8390         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8391         aarch64_hard_regno_nregs to get the number of registers
8392         in a mode.
8393
8394 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8395             Alan Hayward  <alan.hayward@arm.com>
8396             David Sherwood  <david.sherwood@arm.com>
8397
8398         * config/aarch64/constraints.md (Upl): Rename to...
8399         (Uaa): ...this.
8400         * config/aarch64/aarch64.md
8401         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
8402         Update accordingly.
8403
8404 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8405             Alan Hayward  <alan.hayward@arm.com>
8406             David Sherwood  <david.sherwood@arm.com>
8407
8408         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
8409         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
8410         earlier in file.
8411
8412 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8413             Alan Hayward  <alan.hayward@arm.com>
8414             David Sherwood  <david.sherwood@arm.com>
8415
8416         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
8417         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
8418         (aarch64_evpc_dup): Generate rtl direcly, rather than using
8419         named expanders.
8420         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
8421         of a single element.
8422         * config/aarch64/iterators.md: Add a comment above the permute
8423         unspecs to say that they are generated directly by
8424         aarch64_expand_vec_perm_const.
8425         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
8426
8427 2017-11-01  Nathan Sidwell  <nathan@acm.org>
8428
8429         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
8430
8431 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8432
8433         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
8434         and medany code models, and describe what they do.
8435
8436 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8437
8438         Revert accidental duplicate:
8439
8440         * combine.c (can_change_dest_mode): Reject changes in
8441         REGMODE_NATURAL_SIZE.
8442
8443 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
8444
8445         PR rtl-optimization/64682
8446         PR rtl-optimization/69567
8447         PR rtl-optimization/69737
8448         PR rtl-optimization/82683
8449         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
8450         register mentioned in the note, drop the note, unless it came from I3,
8451         in which case it should go to I3 again.
8452
8453 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8454
8455         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
8456         and return false if not.
8457         (clear_bytes_written_by, live_bytes_read): Update accordingly.
8458
8459 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8460
8461         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
8462         range is known to be empty.
8463
8464 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8465             Alan Hayward  <alan.hayward@arm.com>
8466             David Sherwood  <david.sherwood@arm.com>
8467
8468         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
8469         and CONST_VECTOR_NUNITS instead of computing the number of units from
8470         the byte sizes of the vector and element.
8471         (simplify_binary_operation_1): Likewise.
8472         (simplify_const_binary_operation): Likewise.
8473         (simplify_ternary_operation): Likewise.
8474
8475 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8476             Alan Hayward  <alan.hayward@arm.com>
8477             David Sherwood  <david.sherwood@arm.com>
8478
8479         * var-tracking.c (INT_MEM_OFFSET): Replace with...
8480         (int_mem_offset): ...this new function.
8481         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
8482         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
8483         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
8484         Update accordingly.
8485
8486 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8487             Alan Hayward  <alan.hayward@arm.com>
8488             David Sherwood  <david.sherwood@arm.com>
8489
8490         * lower-subreg.c (interesting_mode_p): New function.
8491         (compute_costs, find_decomposable_subregs, decompose_register)
8492         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
8493         (resolve_clobber, dump_choices): Use it.
8494
8495 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8496             Alan Hayward  <alan.hayward@arm.com>
8497             David Sherwood  <david.sherwood@arm.com>
8498
8499         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
8500
8501 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8502             Alan Hayward  <alan.hayward@arm.com>
8503             David Sherwood  <david.sherwood@arm.com>
8504
8505         * alias.c (find_base_value, find_base_term): Only process integer
8506         truncations.  Check the precision rather than the size.
8507
8508 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8509             Alan Hayward  <alan.hayward@arm.com>
8510             David Sherwood  <david.sherwood@arm.com>
8511
8512         * machmode.h (is_narrower_int_mode): New function
8513         * optabs.c (expand_float, expand_fix): Use it.
8514         * dwarf2out.c (rotate_loc_descriptor): Likewise.
8515
8516 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8517             Alan Hayward  <alan.hayward@arm.com>
8518             David Sherwood  <david.sherwood@arm.com>
8519
8520         * rtl.h (narrower_subreg_mode): New function.
8521         * ira-color.c (update_costs_from_allocno): Use it.
8522
8523 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8524             Alan Hayward  <alan.hayward@arm.com>
8525             David Sherwood  <david.sherwood@arm.com>
8526
8527         * optabs-query.h (convert_optab_p): New function, split out from...
8528         (convert_optab_handler): ...here.
8529         (widening_optab_handler): Delete.
8530         (find_widening_optab_handler): Remove permit_non_widening parameter.
8531         (find_widening_optab_handler_and_mode): Likewise.  Provide an
8532         override that operates on mode class wrappers.
8533         * optabs-query.c (widening_optab_handler): Delete.
8534         (find_widening_optab_handler_and_mode): Remove permit_non_widening
8535         parameter.  Assert that the two modes are the same class and that
8536         the "from" mode is narrower than the "to" mode.  Use
8537         convert_optab_handler instead of widening_optab_handler.
8538         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
8539         instead of widening_optab_handler.
8540         * expr.c (expand_expr_real_2): Update calls to
8541         find_widening_optab_handler.
8542         * optabs.c (expand_widen_pattern_expr): Likewise.
8543         (expand_binop_directly): Take the insn_code as a parameter.
8544         (expand_binop): Only call find_widening_optab_handler for
8545         conversion optabs; use optab_handler otherwise.  Update calls
8546         to find_widening_optab_handler and expand_binop_directly.
8547         Use convert_optab_handler instead of widening_optab_handler.
8548         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
8549         find_widening_optab_handler and use scalar_mode rather than
8550         machine_mode.
8551         (convert_plusminus_to_widen): Likewise.
8552
8553 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8554             Alan Hayward  <alan.hayward@arm.com>
8555             David Sherwood  <david.sherwood@arm.com>
8556
8557         * machmode.h (fixed_size_mode): New class.
8558         * rtl.h (get_pool_mode): Return fixed_size_mode.
8559         * gengtype.c (main): Add fixed_size_mode.
8560         * target.def (get_raw_result_mode): Return a fixed_size_mode.
8561         (get_raw_arg_mode): Likewise.
8562         * doc/tm.texi: Regenerate.
8563         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
8564         * targhooks.c (default_get_reg_raw_mode): Likewise.
8565         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
8566         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
8567         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
8568         (msp430_get_raw_result_mode): Likewise.
8569         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
8570         * dbxout.c (dbxout_parms): Require fixed-size modes.
8571         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
8572         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
8573         * omp-low.c (lower_oacc_reductions): Likewise.
8574         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
8575         (simplify_subreg): Update accordingly.
8576         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
8577         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
8578         that aren't fixed-size.
8579         (get_pool_mode): Return a fixed_size_mode.
8580         (output_constant_pool_2): Take a fixed_size_mode.
8581
8582 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8583             Alan Hayward  <alan.hayward@arm.com>
8584             David Sherwood  <david.sherwood@arm.com>
8585
8586         * doc/rtl.texi (vec_series): Document.
8587         (const): Say that the operand can be a vec_series.
8588         * rtl.def (VEC_SERIES): New rtx code.
8589         * rtl.h (const_vec_series_p_1): Declare.
8590         (const_vec_series_p): New function.
8591         * emit-rtl.h (gen_const_vec_series): Declare.
8592         (gen_vec_series): Likewise.
8593         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
8594         (gen_vec_series): Likewise.
8595         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
8596         * simplify-rtx.c (simplify_unary_operation): Handle negations
8597         of vector series.
8598         (simplify_binary_operation_series): New function.
8599         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
8600         (test_vector_ops_series): New function.
8601         (test_vector_ops): Call it.
8602         * config/powerpcspe/altivec.md (altivec_lvsl): Use
8603         gen_const_vec_series.
8604         (altivec_lvsr): Likewise.
8605         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
8606
8607 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8608             Alan Hayward  <alan.hayward@arm.com>
8609             David Sherwood  <david.sherwood@arm.com>
8610
8611         * doc/rtl.texi (const): Update description of address constants.
8612         Say that vector constants are allowed too.
8613         * common.md (E, F): Use CONSTANT_P instead of checking for
8614         CONST_VECTOR.
8615         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
8616         checking for CONST_VECTOR.
8617         * expmed.c (make_tree): Use build_vector_from_val for a CONST
8618         VEC_DUPLICATE.
8619         * expr.c (expand_expr_real_2): Check for vector modes instead
8620         of checking for CONST_VECTOR.
8621         * rtl.h (const_vec_p): New function.
8622         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
8623         (unwrap_const_vec_duplicate): Handle them here too.
8624
8625 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8626             David Malcolm  <dmalcolm@redhat.com>
8627             Alan Hayward  <alan.hayward@arm.com>
8628             David Sherwood  <david.sherwood@arm.com>
8629
8630         * rtl.h (vec_duplicate_p): New function.
8631         * selftest-rtl.c (assert_rtx_eq_at): New function.
8632         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
8633         (assert_rtx_eq_at): Declare.
8634         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
8635         * selftest-run-tests.c (selftest::run_tests): Call it.
8636         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
8637         (simplify_unary_operation_1): Recursively handle vector duplicates.
8638         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
8639         vector duplicates.
8640         (simplify_subreg): Handle subregs of vector duplicates.
8641         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
8642         (selftest::simplify_rtx_c_tests): New functions.
8643
8644 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8645             Alan Hayward  <alan.hayward@arm.com>
8646             David Sherwood  <david.sherwood@arm.com>
8647
8648         * emit-rtl.h (gen_const_vec_duplicate): Declare.
8649         (gen_vec_duplicate): Likewise.
8650         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
8651         out from...
8652         (gen_const_vector): ...here.
8653         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
8654         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
8655         whose elements are all equal.
8656         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
8657         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8658         (simplify_relational_operation): Likewise.
8659         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
8660         Likewise.
8661         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
8662         (aarch64_expand_vector_init): Likewise.
8663         * config/arm/arm.c (neon_vdup_constant): Likewise.
8664         (neon_expand_vector_init): Likewise.
8665         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
8666         (arm_block_set_unaligned_vect): Likewise.
8667         (arm_block_set_aligned_vect): Likewise.
8668         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
8669         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
8670         (expand_vec_perm_even_odd_pack): Likewise.
8671         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
8672         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
8673         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
8674         gen_const_vec_duplicate.
8675         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
8676         * config/mips/mips.c (mips_gen_const_int_vector): Use
8677         gen_const_vec_duplicate.
8678         (mips_expand_vector_init): Use CONST0_RTX.
8679         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
8680         (define_split): Use gen_const_vec_duplicate.
8681         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
8682         (define_split): Use gen_const_vec_duplicate.
8683         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
8684         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
8685         * config/spu/spu.c (spu_const): Likewise.
8686
8687 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8688             Alan Hayward  <alan.hayward@arm.com>
8689             David Sherwood  <david.sherwood@arm.com>
8690
8691         * combine.c (can_change_dest_mode): Reject changes in
8692         REGMODE_NATURAL_SIZE.
8693
8694 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
8695
8696         * configure.ac (--enable-libssp): New.
8697         (gcc_cv_libc_provides_ssp): Check for explicit setting before
8698         trying to determine target-specific default.  Adjust indentation.
8699         * configure: Regenerated.
8700         * doc/install.texi (Configuration): Expand --disable-libssp
8701         documentation.
8702
8703 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
8704
8705         config/i386/i386.c (ix86_expand_epilogue): Correct stack
8706         calculation.
8707
8708 2017-10-31  Martin Jambor  <mjambor@suse.cz>
8709
8710         PR c++/81702
8711         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
8712
8713 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
8714
8715         * auto-profile.c (autofdo_source_profile::read): Use
8716         UNKNOWN_LOCATION rather than 0.
8717         * diagnostic-core.h (warning_at_rich_loc): Rename to...
8718         (warning_at): ...this overload.
8719         (warning_at_rich_loc_n): Rename to...
8720         (warning_n): ...this overload.
8721         (error_at_rich_loc): Rename to...
8722         (error_at): ...this overload.
8723         (pedwarn_at_rich_loc): Rename to...
8724         (pedwarn): ...this overload.
8725         (permerror_at_rich_loc): Rename to...
8726         (permerror): ...this overload.
8727         (inform_at_rich_loc): Rename to...
8728         (inform): ...this overload.
8729         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
8730         (diagnostic_n_impl_richloc): Rename to...
8731         (diagnostic_n_impl): ...this rich_location *-based decl.
8732         (inform_at_rich_loc): Rename to...
8733         (inform): ...this, and add an assertion.
8734         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
8735         (warning_at_rich_loc): Rename to...
8736         (warning_at): ...this, and add an assertion.
8737         (warning_at_rich_loc_n): Rename to...
8738         (warning_n): ...this, and add an assertion.
8739         (warning_n): Update location_t-based implementation for removal of
8740         location_t-based diagnostic_n_impl.
8741         (pedwarn_at_rich_loc): Rename to...
8742         (pedwarn): ...this, and add an assertion.
8743         (permerror_at_rich_loc): Rename to...
8744         (permerror): ...this, and add an assertion.
8745         (error_n): Update for removal of location_t-based diagnostic_n_impl.
8746         (error_at_rich_loc): Rename to...
8747         (error_at): ...this, and add an assertion.
8748         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
8749         (driver::do_spec_on_infiles): Likewise.
8750         * substring-locations.c (format_warning_va): Update for renaming
8751         of inform_at_rich_loc.
8752
8753 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
8754
8755         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
8756         _Float<N>X built-in functions so that the variant without the
8757         "__builtin_" prefix is only enabled for the GNU C and Objective C
8758         languages when they are in non-strict ANSI/ISO mode.
8759         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
8760         * target.def (floatn_builtin_p): Add a target hook to control
8761         whether _Float<N> and _Float<N>X built-in functions without the
8762         "__builtin_" prefix are enabled, and return true for C and
8763         Objective C in the default hook.  Include langhooks.h in
8764         targhooks.c.
8765         * targhooks.h (default_floatn_builtin_p): Likewise.
8766         * targhooks.c (default_floatn_builtin_p): Likewise.
8767         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
8768         floatn_builtin_p target hook.
8769         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
8770
8771 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
8772             Eric Botcazou  <ebotcazou@adacore.com>
8773
8774         PR rtl-optimization/81803
8775         * lra-constraints.c (curr_insn_transform): Also reload the whole
8776         register for a strict subreg no wider than a word if this is for
8777         a WORD_REGISTER_OPERATIONS target.
8778
8779 2017-10-31  Jason Merrill  <jason@redhat.com>
8780
8781         * gdbinit.in: Skip over inlines from timevar.h.
8782
8783 2017-10-31  Martin Liska  <mliska@suse.cz>
8784
8785         * doc/gcov.texi: Document new option.
8786         * gcov.c (print_usage): Likewise print it.
8787         (process_args): Support the argument.
8788         (format_count): New function.
8789         (format_gcov): Use the function.
8790
8791 2017-10-31  Martin Liska  <mliska@suse.cz>
8792
8793         * gcov.c (struct name_map): do not use typedef.
8794         Define operator== and operator<.
8795         (name_search): Remove.
8796         (name_sort): Remove.
8797         (main): Do not allocate names.
8798         (process_file): Add vertical space.
8799         (generate_results): Use std::find.
8800         (release_structures): Do not release memory.
8801         (find_source): Use std::find.
8802
8803 2017-10-31  Martin Liska  <mliska@suse.cz>
8804
8805         * gcov.c (struct line_info): Remove it's typedef.
8806         (line_info::line_info): Add proper ctor.
8807         (line_info::has_block): Do not use a typedef.
8808         (struct source_info): Do not use typedef.
8809         (circuit): Likewise.
8810         (get_cycles_count): Likewise.
8811         (output_intermediate_file): Iterate via vector iterator.
8812         (add_line_counts): Use std::vector methods.
8813         (accumulate_line_counts): Likewise.
8814         (output_lines): Likewise.
8815
8816 2017-10-31  Martin Liska  <mliska@suse.cz>
8817
8818         * gcov.c (struct source_info): Remove typedef.
8819         (source_info::source_info): Add proper ctor.
8820         (accumulate_line_counts): Use struct, not it's typedef.
8821         (output_gcov_file): Likewise.
8822         (output_lines): Likewise.
8823         (main): Do not allocate an array.
8824         (output_intermediate_file): Use size of vector container.
8825         (process_file): Resize the vector.
8826         (generate_results): Do not preallocate, use newly added vector
8827         lines.
8828         (release_structures): Do not release sources.
8829         (find_source): Use vector methods.
8830         (add_line_counts): Do not use typedef.
8831
8832 2017-10-31  Martin Liska  <mliska@suse.cz>
8833
8834         * doc/gcov.texi: Document that.
8835         * gcov.c (add_line_counts): Mark lines with a non-executed
8836         statement.
8837         (output_line_beginning): Handle such lines.
8838         (output_lines): Pass new argument.
8839         (output_intermediate_file): Print it in intermediate format.
8840
8841 2017-10-31  Martin Liska  <mliska@suse.cz>
8842
8843         * color-macros.h: New file.
8844         * diagnostic-color.c: Factor out color related to macros to
8845         color-macros.h.
8846         * doc/gcov.texi: Document -k option.
8847         * gcov.c (INCLUDE_STRING): Include string.h.
8848         (print_usage): Add -k option.
8849         (process_args): Parse it.
8850         (pad_count_string): New function.
8851         (output_line_beginning): Likewise.
8852         (DEFAULT_LINE_START): New macro.
8853         (output_lines): Support color output.
8854
8855 2017-10-31  Martin Liska  <mliska@suse.cz>
8856
8857         PR gcov-profile/82633
8858         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
8859         their interaction with GCOV infrastructure.
8860         * configure.ac: Add -fkeep-{inline,static}-functions to
8861         coverage_flags.
8862         * configure: Regenerate.
8863
8864 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
8865
8866         PR target/82772
8867         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
8868
8869 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
8870
8871         PR target/82674
8872         * config/rs6000/rs6000.md (allocate_stack): Force update interval
8873         into a register if it does not fit into an immediate offset field.
8874
8875 2017-10-31  Olivier Hainque  <hainque@adacore.com>
8876
8877         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
8878
8879 2017-10-31  Julia Koval  <julia.koval@intel.com>
8880
8881         * config.gcc: Add gfniintrin.h.
8882         * config/i386/gfniintrin.h: New.
8883         * config/i386/i386-builtin-types.def
8884         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
8885         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
8886         __builtin_ia32_vgf2p8affineinvqb_v32qi,
8887         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
8888         __builtin_ia32_vgf2p8affineinvqb_v16qi,
8889         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
8890         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
8891         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
8892         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
8893         V64QI_FTYPE_V64QI_V64QI_INT): New types.
8894         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
8895         * config/i386/immintrin.h: Include gfniintrin.h.
8896         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
8897
8898 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
8899
8900         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
8901
8902 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
8903
8904         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
8905         (arm_ashldi3_1bit): Remove pattern.
8906         (ashrdi3): Remove shift by 1 expansion.
8907         (arm_ashrdi3_1bit): Remove pattern.
8908         (lshrdi3): Remove shift by 1 expansion.
8909         (arm_lshrdi3_1bit): Remove pattern.
8910         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
8911         cost of ashldi3 by 1.
8912         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
8913         (<shift>di3_neon): Likewise.
8914
8915 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
8916
8917         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
8918         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
8919         and (*aarch64_simd_mov<VQ:mode>).
8920         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
8921         pattern alternative.
8922         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
8923         attributes to match pattern alternative.
8924
8925 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
8926
8927         * config.gcc (powerpc*-*-*): Add emmintrin.h.
8928         * config/rs6000/emmintrin.h: New file.
8929         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
8930
8931 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
8932
8933         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
8934         * (movdi_vfp_cortexa8): Remove pattern.
8935
8936 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8937
8938         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
8939         etc. reference.
8940         (Specific, alpha*-dec-osf5.1): Remove.
8941         (Specific, mips-sgi-irix5): Remove.
8942         (Specific, mips-sgi-irix6): Remove.
8943
8944 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
8945
8946         PR middle-end/22141
8947         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
8948         arguments to clear_bit_region_be.
8949
8950 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
8951
8952         * gimplify.c: Include memmodel.h.
8953
8954 2017-10-30  Martin Jambor  <mjambor@suse.cz>
8955
8956         * omp-grid.c (grid_attempt_target_gridification): Also insert a
8957         condition whether loop should be executed at all.
8958
8959 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
8960
8961         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
8962         gimple folding of vec_madd() intrinsics.
8963         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
8964         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
8965         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
8966
8967 2017-10-30  Richard Biener  <rguenther@suse.de>
8968
8969         PR tree-optimization/82762
8970         Revert
8971         2017-10-23  Richard Biener  <rguenther@suse.de>
8972
8973         PR tree-optimization/82129
8974         Revert
8975         2017-08-01  Richard Biener  <rguenther@suse.de>
8976
8977         PR tree-optimization/81181
8978         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
8979         (compute_antic): ... end of iteration here.
8980
8981 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
8982
8983         * doc/invoke.texi (C Dialect Options): Document -std=c17,
8984         -std=iso9899:2017 and -std=gnu17.
8985         * doc/standards.texi (C Language): Document C17 support.
8986         * doc/cpp.texi (Overview): Mention -std=c17.
8987         (Standard Predefined Macros): Document C11 and C17 values of
8988         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
8989         * doc/extend.texi (Inline): Do not list individual options for
8990         standards newer than C99.
8991         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
8992         "GNU C17".
8993         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
8994         language name.
8995
8996 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
8997
8998         * asan.c (asan_finish_file): Align asan globals array by shadow
8999         granularity.
9000
9001 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9002
9003         PR middle-end/22141
9004         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
9005         (struct store_immediate_info): Add bitregion_start and bitregion_end
9006         fields.
9007         (store_immediate_info::store_immediate_info): Add brs and bre
9008         arguments and initialize bitregion_{start,end} from those.
9009         (struct merged_store_group): Add bitregion_start, bitregion_end,
9010         align_base and mask fields.  Drop unnecessary struct keyword from
9011         struct store_immediate_info.  Add do_merge method.
9012         (clear_bit_region_be): Use memset instead of loop storing zeros.
9013         (merged_store_group::do_merge): New method.
9014         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
9015         stores as long as the surrounding bitregions have no gaps.
9016         (merged_store_group::merge_overlapping): Use do_merge.
9017         (merged_store_group::apply_stores): Test that bitregion_{start,end}
9018         is byte aligned, rather than requiring that start and width are
9019         byte aligned.  Drop unnecessary struct keyword from
9020         struct store_immediate_info.  Allocate and populate also mask array.
9021         Make start of the arrays relative to bitregion_start rather than
9022         start and size them according to bitregion_{end,start} difference.
9023         (struct imm_store_chain_info): Drop unnecessary struct keyword from
9024         struct store_immediate_info.
9025         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
9026         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
9027         struct keyword from struct store_immediate_info.
9028         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
9029         between stores as long as the surrounding bitregions have no gaps.
9030         Formatting fixes.
9031         (struct split_store): Add orig non-static data member.
9032         (split_store::split_store): Initialize orig to false.
9033         (find_constituent_stmts): Return store_immediate_info *, non-NULL
9034         if there is exactly a single original stmt.  Change stmts argument
9035         to pointer from reference, if NULL, don't push anything to it.  Add
9036         first argument, use it to optimize skipping over orig stmts that
9037         are known to be before bitpos already.  Simplify.
9038         (split_group): Return unsigned int count how many stores are or
9039         would be needed rather than a bool.  Add allow_unaligned argument.
9040         Change split_stores argument from reference to pointer, if NULL,
9041         only do a dry run computing how many stores would be produced.
9042         Rewritten algorithm to use both alignment and misalign if
9043         !allow_unaligned and handle bitfield stores with gaps.
9044         (imm_store_chain_info::output_merged_store): Set start_byte_pos
9045         from bitregion_start instead of start.  Compute allow_unaligned
9046         here, if true, do 2 split_group dry runs to compute which one
9047         produces fewer stores and prefer aligned if equal.  Punt if
9048         new count is bigger or equal than original before emitting any
9049         statements, rather than during that.  Remove no longer needed
9050         new_ssa_names tracking.  Replace num_stmts with
9051         split_stores.length ().  Use 32-bit stack allocated entries
9052         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
9053         if possible.  Handle bitfields with gaps.
9054         (pass_store_merging::execute): Ignore bitsize == 0 stores.
9055         Compute bitregion_{start,end} for the stores and construct
9056         store_immediate_info with that.  Formatting fixes.
9057
9058 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
9059
9060         PR target/82725
9061         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
9062         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
9063
9064 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
9065
9066         * gimplify.c: Include tm_p.h.
9067
9068         * common.opt (gcoff): Re-add as ignored option.
9069         (gcoff1, gcoff2, gcoff3): Likewise.
9070
9071         * Makefile.in (OBJS): Delete sdbout.o.
9072         (GTFILES): Delete $(srcdir)/sdbout.c.
9073         * debug.h: Delete sdb_debug_hooks.
9074         * final.c: Delete sdbout.h include.
9075         (final_scan_insn): Delete SDB_DEBUG check.
9076         (rest_of_clean_state): Likewise.
9077         * output.h: Delete sdb_begin_function_line.
9078         * sdbout.c: Delete.
9079         * sdbout.h: Delete.
9080         * toplev.c: Delete sdbout.h include.
9081         (process_options): Delete SDB_DEBUG check.
9082         * tree-core.h (tree_type_common): Delete pointer field of
9083         tree_type_symtab.
9084         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
9085         TYPE_SYMTAB_POINTER.
9086         * tree.h (TYPE_SYMTAB_POINTER): Delete.
9087         (TYPE_SYMTAB_IS_POINTER): Delete.
9088         (TYPE_SYMTAB_IS_DIE): Renumber.
9089         * xcoffout.c: Refer to former sdbout.c file.
9090         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
9091
9092         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
9093         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
9094         (Debugging Options): Delete -gcoff.
9095         (-gstabs): Delete SDB reference.
9096         (-gcoff): Delete.
9097         (-gcoff@var{level}): Delete.
9098         * doc/passes.texi (Debugging information output): Delete SDB and
9099         sdbout.c references.
9100         * doc/tm.texi: Regenerate.
9101         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
9102         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
9103         references.
9104         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
9105         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
9106         (SDB_DEBUGGING_INFO): Delete.
9107         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
9108         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
9109         * target.def (output_source_filename): Delete COFF reference.
9110
9111         * common.opt (gcoff): Delete.
9112         (gxcoff+): Update Negative chain.
9113         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
9114         SDB_DEBUG.
9115         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
9116         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
9117         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
9118         and SDB references.
9119         (expand_function_start): Change sdb reference to past tense.
9120         (expand_function_end): Change sdb reference to past tense.
9121         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
9122         * opts.c (debug_type_names): Delete coff entry.
9123         (common_handle_option): Delete OPT_gcoff case.
9124         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
9125
9126         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
9127         * config/cris/cris.h: Delete SDB reference in comment.
9128         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
9129         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
9130         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
9131         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
9132         to past tense.
9133         (ix86_expand_prologue): Likewise.
9134         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
9135         * config/ia64/ia64.h: Likewise.
9136         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
9137         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
9138         support.
9139         * config/mmix/mmix.h: Likewise.
9140         * config/nds32/nds32.c: Likewise.
9141         * config/stormy/storym16.h: Likewise.
9142         * config/visium/visium.h: Likewise.
9143         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
9144
9145 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
9146
9147         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
9148         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
9149         FRAME_POINTER_REGNUM point at high end of local var area.
9150
9151 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
9152
9153         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
9154         Move comment around.  Do not reset best_edge for a copiable
9155         destination if the copy would cause a partition change.
9156         (better_edge_p): Remove redundant check.
9157
9158 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9159
9160         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
9161
9162 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
9163
9164         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
9165         for math functions that have _Float<N> and _Float<N>X variants.
9166         (mathfn_built_in_2): Add support for math functions that have
9167         _Float<N> and _Float<N>X variants.
9168         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
9169         (expand_builtin_mathfn_ternary): Add support for fma with
9170         _Float<N> and _Float<N>X variants.
9171         (expand_builtin): Likewise.
9172         (fold_builtin_3): Likewise.
9173         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
9174         create math function _Float<N> and _Float<N>X variants as external
9175         library builtins.
9176         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
9177         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
9178         the __builtin_ prefix and if not strict ansi, without the prefix.
9179         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
9180         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
9181         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
9182         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
9183         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
9184         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
9185         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
9186         function signatures for fma _Float<N> and _Float<N>X variants.
9187         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
9188         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
9189         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
9190         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
9191         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
9192         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
9193         * gencfn-macros.c (print_case_cfn): Add support for math functions
9194         that have _Float<N> and _Float<N>X variants.
9195         (print_define_operator_list): Likewise.
9196         (fltfn_suffixes): Likewise.
9197         (main): Likewise.
9198         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
9199         for math functions that have _Float<N> and _Float<N>X variants.
9200         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
9201         and _Float<N>X variants.
9202         (COPYSIGN): Likewise.
9203         (FMIN): Likewise.
9204         (FMAX): Likewise.
9205         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
9206         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
9207         variants.
9208         (integer_valued_read_call_p): Likewise.
9209         * fold-const-call.c (fold_const_call_ss): Likewise.
9210         (fold_const_call_sss): Add support for copysign, fmin, and fmax
9211         _Float<N> and _Float<N>X variants.
9212         (fold_const_call_ssss): Add support for fma _Float<N> and
9213         _Float<N>X variants.
9214         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
9215         support for copysign and fma _Float<N> and _Float<N>X variants.
9216         (backprop::process_builtin_call_use): Likewise.
9217         * tree-call-cdce.c (can_test_argument_range); Add support for
9218         sqrt _Float<N> and _Float<N>X variants.
9219         (edom_only_function): Likewise.
9220         (get_no_error_domain): Likewise.
9221         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
9222         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
9223         copysign _Float<N> and _Float<N>X variants.
9224         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
9225         handled by machine independent code.
9226         (FMAF128): Likewise.
9227         * doc/cpp.texi (Common Predefined Macros): Document defining
9228         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
9229         fma _Float<N> and _Float<N>X variants.
9230
9231 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9232
9233         PR target/82692
9234         * config/i386/i386-modes.def (CCFPU): Remove definition.
9235         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
9236         (ix86_cc_modes_compatible): Ditto.
9237         (ix86_expand_carry_flag_compare): Ditto.
9238         (ix86_expand_int_movcc): Ditto.
9239         (ix86_expand_int_addcc): Ditto.
9240         (ix86_reverse_condition): Ditto.
9241         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
9242         Return true/false for unordered/ordered fp comparisons.
9243         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
9244         (ix86_prepare_fp_compare_args): Update for rename.
9245         (ix86_expand_fp_compare): Update for rename.  Generate unordered
9246         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
9247         (ix86_expand_sse_compare_and_jump): Ditto.
9248         * config/i386/predicates.md (fcmov_comparison_operator):
9249         Remove CCFPU mode handling.
9250         (ix86_comparison_operator): Ditto.
9251         (ix86_carry_flag_operator): Ditto.
9252         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
9253         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
9254         (*cmpu<mode>_cc_i387): Ditto.
9255         (FPCMP): Remove mode iterator.
9256         (unord): Remove mode attribute.
9257         (unord_subst): New define_subst transformation
9258         (unord): New define_subst attribute.
9259         (unordered): Ditto.
9260         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
9261         (*cmpi<unord>xf_i387): Ditto.
9262         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
9263         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
9264         using unord_subst transformation.
9265         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
9266         (round_saeonly): Also handle CCFP mode.
9267         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
9268         Remove UNSPEC_SAHF unspec handling.
9269
9270 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9271
9272         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
9273
9274 2017-10-27  Jeff Law  <law@redhat.com>
9275
9276         * gimple-ssa-sprintf.c: Include domwalk.h.
9277         (class sprintf_dom_walker): New class, derived from dom_walker.
9278         (sprintf_dom_walker::before_dom_children): New function.
9279         (struct call_info): Moved into sprintf_dom_walker class
9280         (compute_formath_length, handle_gimple_call): Likewise.
9281         (sprintf_length::execute): Call the dominator walker rather
9282         than walking the statements.
9283
9284         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
9285         gimple statement locations.
9286         (check_array_bounds): Corresponding changes.  Get the statement's
9287         location directly from wi->stmt.
9288
9289 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
9290
9291         PR target/82717
9292         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
9293
9294 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9295
9296         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
9297         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
9298
9299 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
9300
9301         PR target/82703
9302         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
9303         * config/i386/i386.c (maybe_get_pool_constant): Removed.
9304         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
9305         maybe_get_pool_constant.
9306         * config/i386/predicates.md (zero_extended_scalar_load_operand):
9307         Likewise.
9308
9309 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9310
9311         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
9312         2.26 caveat.  Update gas and gld versions.
9313         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
9314         reference.
9315
9316 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9317
9318         * cgraph.h (set_malloc_flag): Declare.
9319         * cgraph.c (set_malloc_flag_1): New function.
9320         (set_malloc_flag): Likewise.
9321         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
9322         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
9323         false.
9324         (read_ipa_call_summary): Add support for reading is_return_callee.
9325         (write_ipa_call_summary): Stream is_return_callee.
9326         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
9327         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
9328         ipa-prop.h, ipa-fnsummary.h.
9329         (pure_const_names): Change to static.
9330         (malloc_state_e): Define.
9331         (malloc_state_names): Define.
9332         (funct_state_d): Add field malloc_state.
9333         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
9334         (check_retval_uses): New function.
9335         (malloc_candidate_p): Likewise.
9336         (analyze_function): Add support for malloc attribute.
9337         (pure_const_write_summary): Stream malloc_state.
9338         (pure_const_read_summary): Add support for reading malloc_state.
9339         (dump_malloc_lattice): New function.
9340         (propagate_malloc): New function.
9341         (warn_function_malloc): New function.
9342         (ipa_pure_const::execute): Call propagate_malloc and
9343         ipa_free_fn_summary.
9344         (pass_local_pure_const::execute): Add support for malloc attribute.
9345         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
9346         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
9347
9348 2017-10-27  Martin Liska  <mliska@suse.cz>
9349
9350         PR gcov-profile/82457
9351         * doc/invoke.texi: Document that one needs a non-strict ISO mode
9352         for fork-like functions to be properly instrumented.
9353
9354 2017-10-27  Richard Biener  <rguenther@suse.de>
9355
9356         PR middle-end/81659
9357         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
9358         info when we redirected EH.
9359
9360 2017-10-26  Michael Collison  <michael.collison@arm.com>
9361
9362         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
9363         New pattern.
9364         (<optab>_trunchf<GPI:mode>2: New pattern.
9365         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
9366         * config/aarch64/iterators.md (wv): New mode attribute.
9367         (vf, VF): New mode attributes.
9368         (vgp, VGP): New mode attributes.
9369         (s): Update attribute with SImode and DImode prefixes.
9370
9371 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9372
9373         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
9374         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
9375         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
9376         (nios2_option_overide): Initialize it.  Don't allow R0-relative
9377         addressing with PIC.
9378         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
9379         (nios2_symbolic_constant_p): Likewise.
9380         (nios2_legitimate_address_p): Likewise.
9381         (nios2_r0rel_section_name_p): New.
9382         (nios2_symbol_ref_in_r0rel_data_p): New.
9383         (nios2_emit_move_sequence): Handle r0rel_constant_p.
9384         (r0rel_constant_p): New.
9385         (nios2_print_operand_address): Handle r0rel_constant_p.
9386         (nios2_cdx_narrow_form_p): Likewise.
9387         * config/nios2/nios2.opt (mr0rel-sec=): New option.
9388         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
9389         (Nios II Options): Document -mr0rel-sec.
9390
9391 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9392
9393         * config/nios2/nios2.c: Include xregex.h.
9394         (nios2_gprel_sec_regex): New.
9395         (nios2_option_overide): Initialize it.  Don't allow GP-relative
9396         addressing with PIC.
9397         (nios2_small_section_name_p): Check for regex match.
9398         * config/nios2/nios2.opt (mgprel-sec=): New option.
9399         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
9400         (Nios II Options): Document -mgprel-sec.
9401
9402 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
9403
9404         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
9405
9406 2017-10-26  Tom de Vries  <tom@codesourcery.com>
9407
9408         PR tree-optimization/82707
9409         * gimple.c (gimple_copy): Fix unsharing of
9410         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
9411
9412 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
9413
9414         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
9415         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
9416         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
9417         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
9418         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
9419         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
9420         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
9421         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
9422         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
9423         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
9424         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
9425         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
9426         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
9427         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
9428         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
9429         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
9430         _mm512_mask_cmpunord_ps_mask): New intrinsics.
9431
9432 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9433
9434         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
9435         default to IBM.
9436         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
9437         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
9438         warning to rs6000.c.  Remove the Undocumented flag, since it has
9439         been documented.
9440         (-mabi=ibmlongdouble): Likewise.
9441         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
9442         already set, set the default format for long double.
9443         (rs6000_debug_reg_global): Print whether long double is IBM or
9444         IEEE.
9445         (rs6000_option_override_internal): Rework setting long double
9446         format.  Only warn if the user is changing the long double default
9447         and they did not use -Wno-psabi.
9448         * doc/invoke.texi (PowerPC options): Update the documentation for
9449         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
9450
9451 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9452             Alan Hayward  <alan.hayward@arm.com>
9453             David Sherwood  <david.sherwood@arm.com>
9454
9455         * rtl.h (wider_subreg_mode): New function.
9456         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
9457         rather than an unsigned int *.
9458         * ira-color.c (regno_max_ref_width): Replace with...
9459         (regno_max_ref_mode): ...this new variable.
9460         (coalesced_pseudo_reg_slot_compare): Update accordingly.
9461         Use wider_subreg_mode.
9462         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
9463         rather than an unsigned int *.
9464         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
9465         (process_alt_operands): Likewise.
9466         (invariant_p): Likewise.
9467         * lra-spills.c (assign_mem_slot): Likewise.
9468         (add_pseudo_to_slot): Likewise.
9469         * lra.c (collect_non_operand_hard_regs): Likewise.
9470         (add_regs_to_insn_regno_info): Likewise.
9471         * reload1.c (regno_max_ref_width): Replace with...
9472         (regno_max_ref_mode): ...this new variable.
9473         (reload): Update accordingly.  Update call to
9474         ira_sort_regnos_for_alter_reg.
9475         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
9476         (init_eliminable_invariants): Update to use regno_max_ref_mode.
9477         (scan_paradoxical_subregs): Likewise.
9478
9479 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9480
9481         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
9482         (aarch64_frame): Add emit_frame_chain boolean.
9483         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9484         Move eh_return case to aarch64_layout_frame.
9485         (aarch64_layout_frame): Initialize emit_frame_chain.
9486         (aarch64_expand_prologue): Use emit_frame_chain.
9487
9488 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9489
9490         * config/aarch64/aarch64.c (aarch64_layout_frame):
9491         Ensure LR is always stored at the bottom of the callee-saves.
9492         Remove rarely used frame layout which saves callee-saves at top of
9493         frame, so the store of LR can be used as a valid probe in all cases.
9494
9495 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9496
9497         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
9498         Improve unaligned TImode/TFmode base/offset split.
9499
9500 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9501             Alan Hayward  <alan.hayward@arm.com>
9502             David Sherwood  <david.sherwood@arm.com>
9503
9504         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
9505         * combine.c (find_single_use_1): Likewise.
9506         (expand_field_assignment): Likewise.
9507         (move_deaths): Likewise.
9508         * lra-constraints.c (simplify_operand_subreg): Likewise.
9509         (curr_insn_transform): Likewise.
9510         * lra.c (collect_non_operand_hard_regs): Likewise.
9511         (add_regs_to_insn_regno_info): Likewise.
9512         * rtlanal.c (reg_referenced_p): Likewise.
9513         (covers_regno_no_parallel_p): Likewise.
9514
9515 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9516
9517         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
9518         Don't print any bits outside the precision of the value.
9519         * wide-int.cc (test_printing): Add some new tests.
9520
9521 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9522
9523         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
9524         supports -xbrace_comment option.
9525         * configure: Regenerate.
9526         * config.in: Regenerate.
9527         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
9528         (ASM_CPU_SPEC): Use it.
9529
9530 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9531
9532         * target.def (static_rtx_alignment): New hook.
9533         * targhooks.h (default_static_rtx_alignment): Declare.
9534         * targhooks.c (default_static_rtx_alignment): New function.
9535         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
9536         * doc/tm.texi: Regenerate.
9537         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
9538         instead of targetm.constant_alignment.  Remove call to
9539         set_mem_attributes.
9540         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9541         (cris_preferred_mininum_alignment): New function, split out from...
9542         (cris_constant_alignment): ...here.
9543         (cris_static_rtx_alignment): New function.
9544         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
9545         split out from...
9546         (ix86_constant_alignment): ...here.
9547         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9548         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9549         (mmix_static_rtx_alignment): New function.
9550         * config/spu/spu.c (spu_static_rtx_alignment): New function.
9551         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9552
9553 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
9554
9555         PR target/81800
9556         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
9557         Add flag_trapping_math and flag_fp_int_builtin_inexact.
9558
9559 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
9560
9561         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
9562         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
9563         mark as a sign-extending load.
9564         (local_pic_load_u): Define.
9565
9566 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
9567
9568         PR middle-end/82062
9569         * fold-const.c (operand_equal_for_comparison_p): Also return true
9570         if ARG0 is a simple variant of ARG1 with narrower precision.
9571         (fold_ternary_loc): Always pass unstripped operands to the predicate.
9572
9573 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
9574
9575         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
9576         cost correctly.
9577         * i386.h (processor_costs): Add gather_static, gather_per_elt,
9578         scatter_static, scatter_per_elt.
9579         * x86-tune-costs.h: Add new cost entries.
9580
9581 2017-10-25  Richard Biener  <rguenther@suse.de>
9582
9583         * tree-ssa-sccvn.h (vn_eliminate): Declare.
9584         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
9585         class pass_fre): Move to ...
9586         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
9587         class pass_fre): ... here and adjust for statistics.
9588
9589 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
9590
9591         PR libstdc++/81706
9592         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
9593         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
9594         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
9595         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
9596         declarations.
9597
9598 2017-10-25  Richard Biener  <rguenther@suse.de>
9599
9600         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
9601         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
9602         eliminate_push_avail, eliminate_insert): Move inside...
9603         (class eliminate_dom_walker): ... this class in preparation
9604         of move.
9605         (fini_eliminate): Remove by merging with ...
9606         (eliminate): ... this function.  Adjust for class changes.
9607         (pass_pre::execute): Remove fini_eliminate call.
9608         (pass_fre::execute): Likewise.
9609
9610 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
9611
9612         PR target/82460
9613         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
9614         (VPERMI2, VPERMI2I): New mode iterators.
9615         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
9616         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
9617         patterns.
9618         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
9619         mode iterator.  Remove 3 old define_insn patterns.
9620         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
9621         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
9622         VPERMI2 mode iterator, remove the other two expanders.
9623         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
9624         to use VPERMI2 mode iterator, add another alternative for vpermi2*
9625         instructions, remove the other two patterns.
9626         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
9627         mode iterator, remove the other two patterns.
9628         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
9629         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
9630         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
9631         and adjust argument order accordingly.
9632         (ix86_expand_vec_perm): Adjust caller.
9633         (expand_vec_perm_1): Likewise.
9634         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
9635         (expand_vec_perm_vpermt2_vpshub2): ... this.
9636         (ix86_expand_vec_perm_const_1): Adjust caller.
9637         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
9638
9639         PR target/82370
9640         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
9641         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
9642         (vec_shl_<mode>): Remove unused expander.
9643         (avx512bw_<shift_insn><mode>3): New define_insn.
9644         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
9645         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
9646
9647 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
9648
9649         PR c++/82466
9650         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
9651         description.
9652
9653 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9654
9655         PR rtl-optimization/82396
9656         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
9657         (autopref_multipass_init): Simplify initialization.
9658         (autopref_rank_data): Simplify sort order.
9659         * gcc/sched-int.h (autopref_multipass_data_): Remove
9660         multi_mem_insn_p, min_offset and max_offset.
9661
9662 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9663
9664         PR middle-end/60580
9665         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9666         Check special value of flag_omit_frame_pointer.
9667         (aarch64_can_eliminate): Likewise.
9668         (aarch64_override_options_after_change_1): Simplify handling of
9669         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
9670
9671 2017-10-24  Richard Biener  <rguenther@suse.de>
9672
9673         PR tree-optimization/82697
9674         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
9675         zero for conditional load and unconditional store.
9676
9677 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
9678
9679         * doc/install.texi: Document bootstrap-cet.
9680
9681 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
9682
9683         PR target/82659
9684         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
9685         ENDBR instruction at function entrance if function is only
9686         called directly.
9687
9688 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
9689
9690         PR target/82628
9691         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
9692         patterns to better describe from which operation the CF is computed.
9693         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
9694         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
9695         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
9696         is 0, use _0 suffixed expanders instead of emitting a comparison
9697         before it.
9698
9699 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
9700
9701         * config/i386/i386.md(*movsf_internal, *movdf_internal):
9702         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
9703
9704 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
9705
9706         PR middle-end/82569
9707         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
9708         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
9709         * loop-iv.c (iv_get_reaching_def): Likewise.
9710         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
9711         variable is promoted and the partition contains undefined values.
9712
9713 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9714
9715         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
9716         reflect reality.
9717         (nios2_address_cost): Define.
9718         (nios2_legitimize_address): Recognize (exp + constant) directly.
9719         (TARGET_ADDRESS_COST): Define.
9720
9721 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9722
9723         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
9724         (nios2_symbolic_memory_operand_p): Declare.
9725         (nios2_split_large_constant): Declare.
9726         (nios2_split_symbolic_memory_operand): Declare.
9727         * config/nios2/nios2.c: Adjust includes.
9728         (nios2_symbolic_constant_allowed): New.
9729         (nios2_symbolic_constant_p): New.
9730         (nios2_plus_symbolic_constant_p): New.
9731         (nios2_valid_addr_expr_p): Recognize addresses involving
9732         symbolic constants.
9733         (nios2_legitimate_address_p): Likewise, also LO_SUM.
9734         (nios2_symbolic_memory_operand_p): New.
9735         (nios2_large_constant_p): New.
9736         (nios2_split_large_constant): New.
9737         (nios2_split_plus_large_constant): New.
9738         (nios2_split_symbolic_memory_operand): New.
9739         (nios2_legitimize_address): Code refactoring.  Handle addresses
9740         involving symbolic constants.
9741         (nios2_emit_move_sequence): Likewise.
9742         (nios2_print_operand): Improve error output.
9743         (nios2_print_operand_address): Handle LO_SUM.
9744         (nios2_cdx_narrow_form_p): Likewise.
9745         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
9746         operands involving symbolic constants.
9747         (movhi_internal, movsi_internal): Likewise.
9748         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
9749         (extendhisi2, extendqi<mode>2): Likewise.
9750
9751 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9752
9753         * tree-pass.h (PROP_rtl_split_insns): Define.
9754         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
9755
9756 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9757
9758         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
9759
9760 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
9761
9762         PR debug/82630
9763         * target.def (const_not_ok_for_debug_p): Default to
9764         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
9765         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
9766         * targhooks.c (default_const_not_ok_for_debug_p): New function.
9767         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
9768         which targetm.const_not_ok_for_debug_p returned true.
9769         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
9770         for UNSPECs.
9771         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
9772         Likewise.
9773         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
9774         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
9775         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
9776         if !base_term_p.
9777         (ix86_const_not_ok_for_debug_p): New function.
9778         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
9779         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
9780
9781 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
9782
9783         PR bootstrap/82610
9784         * system.h: Conditionally include "unique-ptr.h" if
9785         INCLUDE_UNIQUE_PTR is defined.
9786         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
9787         of defining INCLUDE_UNIQUE_PTR before including "system.h".
9788
9789 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
9790
9791         * config/rl78/rl78.md: New define_expand "subdi3".
9792
9793 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
9794
9795         PR target/82673
9796         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
9797         DF_REF_INSN if DF_REF_INSN_INFO is false.
9798
9799 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
9800
9801         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
9802         xmm_move instead of sse_move.
9803         (sse_store_index): New function.
9804         (ix86_register_move_cost): Be more sensible about mismatch stall;
9805         model AVX moves correctly; make difference between sse->integer and
9806         integer->sse.
9807         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
9808         moves; make difference between SSE and AVX.
9809         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
9810         and zmm_move. Increase size of sse load and store tables;
9811         add unaligned load and store tables; add ssemmx_to_integer.
9812         * x86-tune-costs.h: Update all entries according to real
9813         move latencies from Agner Fog's manual and chip documentation.
9814
9815 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
9816
9817         PR target/82628
9818         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
9819         * config/i386/constraints.md (Wf): New constraint.
9820         * config/i386/i386.md (UNSPEC_SBB): New unspec.
9821         (cmp<dwi>_doubleword): Removed.
9822         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
9823         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
9824         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
9825         expand with cmp<dwi>_doubleword.  For LTU and GEU use
9826         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
9827
9828         * common.opt (gcolumn-info): Enable by default.
9829         * doc/invoke.texi (gcolumn-info): Document new default.
9830
9831 2017-10-23  Richard Biener  <rguenther@suse.de>
9832
9833         PR tree-optimization/82672
9834         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
9835         Fold the stmt if we propagated into it.
9836
9837 2017-10-23  Richard Biener  <rguenther@suse.de>
9838
9839         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
9840         (bitmap_remove_expr_from_set): ... this.  All callers call this
9841         for non-constant values.
9842         (bitmap_set_subtract): Rename to...
9843         (bitmap_set_subtract_expressions): ... this.  Adjust and
9844         optimize.
9845         (bitmap_set_contains_value): Remove superfluous check.
9846         (bitmap_set_replace_value): Inline into single caller ...
9847         (bitmap_value_replace_in_set): ... here and simplify.
9848         (dependent_clean): Merge into ...
9849         (clean): ... this using an overload.  Adjust.
9850         (prune_clobbered_mems): Adjust.
9851         (compute_antic_aux): Likewise.
9852         (compute_partial_antic_aux): Likewise.
9853
9854 2017-10-23  Richard Biener  <rguenther@suse.de>
9855
9856         PR tree-optimization/82129
9857         Revert
9858         2017-08-01  Richard Biener  <rguenther@suse.de>
9859
9860         PR tree-optimization/81181
9861         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
9862         (compute_antic): ... end of iteration here.
9863
9864 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9865
9866         * target.def (starting_frame_offset): New hook.
9867         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
9868         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
9869         * doc/tm.texi.in: Regenerate.
9870         * hooks.h (hook_hwi_void_0): Declare.
9871         * hooks.c (hook_hwi_void_0): New function.
9872         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
9873         STARTING_FRAME_OFFSET.
9874         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
9875         * reload1.c (reload): Likewise.
9876         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
9877         instead of STARTING_FRAME_OFFSET.
9878         * function.c (try_fit_stack_local): Likewise.
9879         (assign_stack_local_1): Likewise
9880         (instantiate_virtual_regs): Likewise.
9881         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
9882         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
9883         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
9884         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
9885         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
9886         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
9887         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
9888         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
9889         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
9890         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
9891         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
9892         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
9893         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
9894         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
9895         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
9896         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
9897         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
9898         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
9899         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
9900         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
9901         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
9902         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
9903         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
9904         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
9905         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
9906         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
9907         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
9908         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
9909         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
9910         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
9911         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
9912         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
9913         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
9914         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
9915         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
9916         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
9917         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
9918         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
9919         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
9920         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
9921         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
9922         * config/avr/avr.c (avr_starting_frame_offset): Make static and
9923         return a HOST_WIDE_INT.
9924         (avr_builtin_setjmp_frame_value): Use it instead of
9925         STARTING_FRAME_OFFSET.
9926         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9927         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
9928         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
9929         New function.
9930         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9931         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
9932         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
9933         (TARGET_CONSTANT_ALIGNMENT): Redefine.
9934         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
9935         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
9936         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9937         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
9938         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
9939         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9940         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
9941         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
9942         New function.
9943         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9944         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
9945         * config/mips/mips.c (mips_compute_frame_info): Refer to
9946         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
9947         (mips_starting_frame_offset): New function.
9948         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9949         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
9950         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
9951         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
9952         and return a HOST_WIDE_INT.
9953         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9954         (mmix_initial_elimination_offset): Refer to
9955         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
9956         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
9957         * config/pa/pa.c (pa_starting_frame_offset): New function.
9958         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
9959         (pa_expand_prologue): Likewise.
9960         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9961         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
9962         !FRAME_GROWS_DOWNWARD handling to...
9963         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9964         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
9965         !FRAME_GROWS_DOWNWARD handling to...
9966         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9967         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
9968         !FRAME_GROWS_DOWNWARD handling to...
9969         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9970         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
9971         Redefine.
9972         (rs6000_starting_frame_offset): New function.
9973         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
9974         !FRAME_GROWS_DOWNWARD handling to...
9975         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9976         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
9977         !FRAME_GROWS_DOWNWARD handling to...
9978         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9979         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
9980         !FRAME_GROWS_DOWNWARD handling to...
9981         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9982         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
9983         (rs6000_starting_frame_offset): New function.
9984         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
9985         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
9986         * config/vax/vax.c (vax_starting_frame_offset): New function.
9987         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
9988         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9989         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
9990         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
9991         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9992         * system.h (STARTING_FRAME_OFFSET): Poison.
9993
9994 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9995
9996         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
9997         SCALAR_TYPE_MODE instead of TYPE_MODE.
9998
9999 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10000             Alan Hayward  <alan.hayward@arm.com>
10001             David Sherwood  <david.sherwood@arm.com>
10002
10003         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
10004
10005 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10006             Alan Hayward  <alan.hayward@arm.com>
10007             David Sherwood  <david.sherwood@arm.com>
10008
10009         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
10010
10011 2017-10-23  Richard Biener  <rguenther@suse.de>
10012
10013         PR tree-optimization/82129
10014         * tree-ssa-pre.c (bitmap_set_and): Remove.
10015         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
10016         canonicalizing expressions in the set to those with lowest
10017         ID rather than taking that from the first edge.
10018
10019 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10020
10021         * combine.c (rtx_equal_for_field_assignment_p): Use
10022         byte_lowpart_offset.
10023
10024 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10025             Alan Hayward  <alan.hayward@arm.com>
10026             David Sherwood  <david.sherwood@arm.com>
10027
10028         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
10029         to a SUBREG_PROMOTED_VAR.
10030
10031 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10032             Alan Hayward  <alan.hayward@arm.com>
10033             David Sherwood  <david.sherwood@arm.com>
10034
10035         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
10036         (expand_debug_source_expr): Likewise.
10037         * combine.c (combine_simplify_rtx): Likewise.
10038         * cse.c (fold_rtx): Likewise.
10039         * optabs.c (expand_float): Likewise.
10040         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10041         (simplify_binary_operation_1): Likewise.
10042
10043 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10044             Alan Hayward  <alan.hayward@arm.com>
10045             David Sherwood  <david.sherwood@arm.com>
10046
10047         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
10048         (record_promoted_value): Likewise.
10049         * expr.c (expand_expr_real_2): Likewise.
10050         * ree.c (update_reg_equal_equiv_notes): Likewise.
10051         (combine_set_extension): Likewise.
10052         * rtlanal.c (low_bitmask_len): Likewise.
10053         * simplify-rtx.c (neg_const_int): Likewise.
10054         (simplify_binary_operation_1): Likewise.
10055
10056 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10057             Alan Hayward  <alan.hayward@arm.com>
10058             David Sherwood  <david.sherwood@arm.com>
10059
10060         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
10061         * regcprop.c (maybe_mode_change): Likewise.
10062         * reload1.c (alter_reg): Likewise.
10063
10064 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10065
10066         * inchash.h (inchash::hash::add_wide_int): New function.
10067         * lto-streamer-out.c (hash_tree): Use it.
10068
10069 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10070
10071         * inchash.h (inchash::hash::add_wide_int): Rename to...
10072         (inchash::hash::add_hwi): ...this.
10073         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
10074         (polymorphic_call_target_hasher::hash): Likewise.
10075         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
10076         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
10077         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
10078         * lto-streamer-out.c (hash_tree): Likewise.
10079         * optc-save-gen.awk: Likewise.
10080         * tree.c (add_expr): Likewise.
10081
10082 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10083
10084         PR target/52451
10085         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
10086         for ordered inequality comparisons even with TARGET_IEEE_FP.
10087
10088 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10089
10090         PR target/82628
10091         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
10092         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10093         Expand with cmp<dwi>_doubleword.
10094
10095 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10096
10097         * extend.texi: Add x86 specific to 'nocf_check' attribute.
10098         List CET intrinsics.
10099         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
10100         specific to -fcf-protection option.
10101
10102 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10103
10104         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
10105         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
10106         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
10107         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
10108         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
10109         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
10110         (extra_objs): Add cet.o for Linux/x86 targets.
10111         (tmake_file): Add i386/t-cet for Linux/x86 targets.
10112         * config/i386/cet.c: New file.
10113         * config/i386/cetintrin.h: Likewise.
10114         * config/i386/t-cet: Likewise.
10115         * config/i386/cpuid.h (bit_SHSTK): New.
10116         (bit_IBT): Likewise.
10117         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
10118         pass IBT and SHSTK bits.
10119         * config/i386/i386-builtin-types.def
10120         (VOID_FTYPE_UNSIGNED_PVOID): New.
10121         (VOID_FTYPE_UINT64_PVOID): Likewise.
10122         * config/i386/i386-builtin.def: Add CET intrinsics.
10123         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10124         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
10125         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
10126         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
10127         prototype.
10128         * config/i386/i386.c (rest_of_insert_endbranch): New.
10129         (pass_data_insert_endbranch): Likewise.
10130         (pass_insert_endbranch): Likewise.
10131         (make_pass_insert_endbranch): Likewise.
10132         (ix86_notrack_prefixed_insn_p): Likewise.
10133         (ix86_target_string): Add -mibt, -mshstk flags.
10134         (ix86_option_override_internal): Add flag_cf_protection
10135         processing.
10136         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
10137         (ix86_print_operand): Add 'notrack' prefix output.
10138         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
10139         (ix86_expand_builtin): Expand CET intrinsics.
10140         (x86_output_mi_thunk): Add 'endbranch' instruction.
10141         * config/i386/i386.h (TARGET_IBT): New.
10142         (TARGET_IBT_P): Likewise.
10143         (TARGET_SHSTK): Likewise.
10144         (TARGET_SHSTK_P): Likewise.
10145         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
10146         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
10147         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
10148         (builtin_setjmp_setup): New pattern.
10149         (builtin_longjmp): Likewise.
10150         (rdssp<mode>): Likewise.
10151         (incssp<mode>): Likewise.
10152         (saveprevssp): Likewise.
10153         (rstorssp): Likewise.
10154         (wrss<mode>): Likewise.
10155         (wruss<mode>): Likewise.
10156         (setssbsy): Likewise.
10157         (clrssbsy): Likewise.
10158         (nop_endbr): Likewise.
10159         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
10160         options.
10161         * config/i386/immintrin.h: Include <cetintrin.h>.
10162         * config/i386/linux-common.h
10163         (file_end_indicate_exec_stack_and_cet): New prototype.
10164         (TARGET_ASM_FILE_END): New.
10165
10166 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10167
10168         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
10169         latencies instead of having separate table; make difference between
10170         integer and float costs.
10171         * i386.h (processor_costs): Remove scalar_stmt_cost,
10172         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
10173         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
10174         vec_store_cost.
10175         * x86-tune-costs.h: Remove entries which has been removed in
10176         procesor_costs from all tables; make cond_taken_branch_cost
10177         and cond_not_taken_branch_cost COST_N_INSNS based.
10178
10179 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10180
10181         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
10182
10183 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10184
10185         * config/i386/i386.md (isa): Remove fma_avx512f.
10186         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
10187         <avx512>_fmadd_<mode>_mask3<round_name>,
10188         <avx512>_fmsub_<mode>_mask<round_name>,
10189         <avx512>_fmsub_<mode>_mask3<round_name>,
10190         <avx512>_fnmadd_<mode>_mask<round_name>,
10191         <avx512>_fnmadd_<mode>_mask3<round_name>,
10192         <avx512>_fnmsub_<mode>_mask<round_name>,
10193         <avx512>_fnmsub_<mode>_mask3<round_name>,
10194         <avx512>_fmaddsub_<mode>_mask<round_name>,
10195         <avx512>_fmaddsub_<mode>_mask3<round_name>,
10196         <avx512>_fmsubadd_<mode>_mask<round_name>,
10197         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
10198         (*vec_widen_umult_even_v16si<mask_name>,
10199         *vec_widen_smult_even_v16si<mask_name>): Likewise.
10200         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
10201
10202 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10203
10204         * extend.texi: Add 'nocf_check' documentation.
10205         * gimple.texi: Add second parameter to
10206         gimple_build_call_from_tree.
10207         * invoke.texi: Add -fcf-protection documentation.
10208         * rtl.texi: Add REG_CALL_NOTRACK documenation.
10209
10210 2017-10-20  Richard Biener  <rguenther@suse.de>
10211
10212         PR tree-optimization/82473
10213         * tree-vect-loop.c (vectorizable_reduction): Properly get at
10214         the largest input type.
10215
10216 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10217
10218         * c-attribs.c (handle_nocf_check_attribute): New function.
10219         (c_common_attribute_table): Add 'nocf_check' handling.
10220         * gimple-parser.c: Add second argument NULL to
10221         gimple_build_call_from_tree.
10222         * attrib.c (comp_type_attributes): Check nocf_check attribute.
10223         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
10224         call insn.
10225         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
10226         * common.opt: Add fcf-protection flag.
10227         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
10228         * flag-types.h: Add enum cf_protection_level.
10229         * gimple.c (gimple_build_call_from_tree): Add second parameter.
10230         Add 'nocf_check' attribute propagation to gimple call.
10231         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
10232         (gimple_build_call_from_tree): Update prototype.
10233         (gimple_call_nocf_check_p): New function.
10234         (gimple_call_set_nocf_check): Likewise.
10235         * gimplify.c: Add second argument to gimple_build_call_from_tree.
10236         * ipa-icf.c: Add nocf_check attribute in statement hash.
10237         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
10238         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
10239         * toplev.c (process_options): Add flag_cf_protection handling.
10240
10241 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10242
10243         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
10244
10245 2017-10-20  Richard Biener  <rguenther@suse.de>
10246
10247         PR tree-optimization/82603
10248         * tree-if-conv.c (predicate_mem_writes): Make sure to only
10249         remove false predicated stores.
10250
10251 2017-10-20  Richard Biener  <rguenther@suse.de>
10252
10253         * graphite-isl-ast-to-gimple.c
10254         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
10255         Remove return value and simplify, dump copied stmt after lhs
10256         adjustment.
10257         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
10258         Reduce dump verbosity.
10259         (gsi_insert_earliest): Likewise.
10260         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
10261         * graphite.c (print_global_statistics): Adjust dumping.
10262         (print_graphite_scop_statistics): Likewise.
10263         (print_graphite_statistics): Do not dump loops here.
10264         (graphite_transform_loops): But here.
10265
10266 2017-10-20  Nicolas Roche  <roche@adacore.com>
10267
10268         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
10269         * configure: Regenerate.
10270
10271 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10272
10273         PR target/82158
10274         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
10275         functions when optimizing replace GIMPLE_RETURN stmts with
10276         calls to __builtin_unreachable ().
10277
10278         PR sanitizer/82595
10279         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
10280         for -fsanitize=thread link of executables.
10281         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
10282         link of executables.
10283
10284         PR target/82370
10285         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
10286         New mode iterators.
10287         (<shift_insn><mode>3<mask_name>): Change the last of the 3
10288         define_insns for logical vector shifts to use VI248_AVX512BW
10289         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
10290         condition, useless isa and prefix attributes.  Change the first
10291         2 of these define_insns to ...
10292         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
10293         define_insn for avx512vl.
10294         (<shift_insn><mode>3): ... and this, new define_insn without
10295         masking for non-avx512vl.
10296
10297         PR target/82370
10298         * config/i386/sse.md (*andnot<mode>3,
10299         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
10300         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
10301         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
10302         not applied use empty suffix even for TARGET_AVX512VL.
10303         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
10304         is applied, supply evex,evex or evex,evex,evex instead of just
10305         evex.
10306
10307 2017-10-20  Julia Koval  <julia.koval@intel.com>
10308
10309         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
10310         (OPTION_MASK_ISA_GFNI_UNSET): New.
10311         (ix86_handle_option): Handle OPT_mgfni.
10312         * config/i386/cpuid.h (bit_GFNI): New.
10313         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
10314         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
10315         * config/i386/i386.c (ix86_target_string): Add -mgfni.
10316         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
10317         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
10318         * config/i386/i386.opt: Add mgfni.
10319
10320 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
10321
10322         * config/msp430/msp430.c (msp430_option_override): Disable
10323         -fdelete-null-pointer-checks.
10324         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
10325
10326 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10327
10328         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
10329         of x87 and SSE instructions.
10330
10331 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10332
10333         * asan.c (create_cond_insert_point): Do not update edge count.
10334         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
10335         (afdo_propagate_circuit): Likewise.
10336         (afdo_calculate_branch_prob): Likewise.
10337         (afdo_annotate_cfg): Likewise.
10338         * basic-block.h (struct edge_def): Remove count.
10339         (edge_def::count): New accessor.
10340         * bb-reorder.c (rotate_loop): Update.
10341         (find_traces_1_round): Update.
10342         (connect_traces): Update.
10343         (sanitize_hot_paths): Update.
10344         * cfg.c (unchecked_make_edge): Update.
10345         (make_single_succ_edge): Update.
10346         (check_bb_profile): Update.
10347         (dump_edge_info): Update.
10348         (update_bb_profile_for_threading): Update.
10349         (scale_bbs_frequencies_int): Update.
10350         (scale_bbs_frequencies_gcov_type): Update.
10351         (scale_bbs_frequencies_profile_count): Update.
10352         (scale_bbs_frequencies): Update.
10353         * cfganal.c (connect_infinite_loops_to_exit): Update.
10354         * cfgbuild.c (compute_outgoing_frequencies): Update.
10355         (find_many_sub_basic_blocks): Update.
10356         * cfgcleanup.c (try_forward_edges): Update.
10357         (try_crossjump_to_edge): Update
10358         * cfgexpand.c (expand_gimple_cond): Update
10359         (expand_gimple_tailcall): Update
10360         (construct_exit_block): Update
10361         * cfghooks.c (verify_flow_info): Update
10362         (redirect_edge_succ_nodup): Update
10363         (split_edge): Update
10364         (make_forwarder_block): Update
10365         (duplicate_block): Update
10366         (account_profile_record): Update
10367         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
10368         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
10369         * cfgloopmanip.c (scale_loop_profile): Update.
10370         (loopify): Update.
10371         (lv_adjust_loop_entry_edge): Update.
10372         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
10373         (force_nonfallthru_and_redirect): Update.
10374         (purge_dead_edges): Update.
10375         (rtl_flow_call_edges_add): Update.
10376         * cgraphunit.c (init_lowered_empty_function): Update.
10377         (cgraph_node::expand_thunk): Update.
10378         * gimple-pretty-print.c (dump_probability): Update.
10379         (dump_edge_probability): Update.
10380         * gimple-ssa-isolate-paths.c (isolate_path): Update.
10381         * haifa-sched.c (sched_create_recovery_edges): Update.
10382         * hsa-gen.c (convert_switch_statements): Update.
10383         * ifcvt.c (dead_or_predicable): Update.
10384         * ipa-inline-transform.c (inline_transform): Update.
10385         * ipa-split.c (split_function): Update.
10386         * ipa-utils.c (ipa_merge_profiles): Update.
10387         * loop-doloop.c (add_test): Update.
10388         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
10389         * lto-streamer-in.c (input_cfg): Update.
10390         (input_function): Update.
10391         * lto-streamer-out.c (output_cfg): Update.
10392         * modulo-sched.c (sms_schedule): Update.
10393         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
10394         * predict.c (maybe_hot_edge_p): Update.
10395         (unlikely_executed_edge_p): Update.
10396         (probably_never_executed_edge_p): Update.
10397         (dump_prediction): Update.
10398         (drop_profile): Update.
10399         (propagate_unlikely_bbs_forward): Update.
10400         (determine_unlikely_bbs): Update.
10401         (force_edge_cold): Update.
10402         * profile.c (compute_branch_probabilities): Update.
10403         * reg-stack.c (better_edge): Update.
10404         * shrink-wrap.c (handle_simple_exit): Update.
10405         * tracer.c (better_p): Update.
10406         * trans-mem.c (expand_transaction): Update.
10407         (split_bb_make_tm_edge): Update.
10408         * tree-call-cdce.c: Update.
10409         * tree-cfg.c (gimple_find_sub_bbs): Update.
10410         (gimple_split_edge): Update.
10411         (gimple_duplicate_sese_region): Update.
10412         (gimple_duplicate_sese_tail): Update.
10413         (gimple_flow_call_edges_add): Update.
10414         (insert_cond_bb): Update.
10415         (execute_fixup_cfg): Update.
10416         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
10417         * tree-complex.c (expand_complex_div_wide): Update.
10418         * tree-eh.c (lower_resx): Update.
10419         (unsplit_eh): Update.
10420         (cleanup_empty_eh_move_lp): Update.
10421         * tree-inline.c (copy_edges_for_bb): Update.
10422         (freqs_to_counts): Update.
10423         (copy_cfg_body): Update.
10424         * tree-ssa-dce.c (remove_dead_stmt): Update.
10425         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
10426         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
10427         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
10428         (unloop_loops): Update.
10429         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10430         * tree-ssa-loop-split.c (connect_loops): Update.
10431         (split_loop): Update.
10432         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
10433         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
10434         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
10435         * tree-ssa-reassoc.c (branch_fixup): Update.
10436         * tree-ssa-tail-merge.c (replace_block_by): Update.
10437         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
10438         (compute_path_counts): Update.
10439         (update_profile): Update.
10440         (recompute_probabilities): Update.
10441         (update_joiner_offpath_counts): Update.
10442         (estimated_freqs_path): Update.
10443         (freqs_to_counts_path): Update.
10444         (clear_counts_path): Update.
10445         (ssa_fix_duplicate_block_edges): Update.
10446         (duplicate_thread_path): Update.
10447         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
10448         (case_bit_test_cmp): Update.
10449         (collect_switch_conv_info): Update.
10450         (gen_inbound_check): Update.
10451         (do_jump_if_equal): Update.
10452         (emit_cmp_and_jump_insns): Update.
10453         * tree-tailcall.c (decrease_profile): Update.
10454         (eliminate_tail_call): Update.
10455         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
10456         (vect_do_peeling): Update.
10457         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10458         * ubsan.c (ubsan_expand_null_ifn): Update.
10459         (ubsan_expand_ptr_ifn): Update.
10460         * value-prof.c (gimple_divmod_fixed_value): Update.
10461         (gimple_mod_pow2): Update.
10462         (gimple_mod_subtract): Update.
10463         (gimple_ic): Update.
10464         (gimple_stringop_fixed_value): Update.
10465
10466 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10467
10468         PR target/82618
10469         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
10470
10471 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
10472
10473         PR rtl-optimization/82395
10474         * ira-color.c (allocno_priority_compare_func): Fix comparison step
10475         based on non_spilled_static_chain_regno_p.
10476
10477 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10478
10479         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
10480         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
10481         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
10482
10483 2017-10-19  Martin Sebor  <msebor@redhat.com>
10484
10485         PR tree-optimization/82596
10486         * tree.c (array_at_struct_end_p): Handle STRING_CST.
10487
10488 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10489
10490         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
10491         (get_mem_refs_of_builtin_call): Likewise.
10492         * builtins.c (expand_builtin_apply): Adjust call to
10493         allocate_dynamic_stack_space.
10494         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
10495         the third argument to allocate_dynamic_stack_space, otherwise -1.
10496         (expand_builtin): Deal with all alloca variants.
10497         (is_inexpensive_builtin): Likewise.
10498         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
10499         * calls.c (special_function_p): Deal with all alloca variants.
10500         (initialize_argument_information): Adjust call to
10501         allocate_dynamic_stack_space.
10502         (expand_call): Likewise.
10503         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
10504         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
10505         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
10506         use it for the stack usage computation.
10507         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
10508         * function.c (gimplify_parameters): Call build_alloca_call_expr.
10509         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
10510         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
10511         (in_loop_p): Remove first argument and useless check.
10512         (pass_walloca::execute): Remove useless test and adjust call to above.
10513         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
10514         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
10515         (gimplify_call_expr): Deal with all alloca variants.
10516         * hsa-gen.c (gen_hsa_alloca): Likewise.
10517         (gen_hsa_insns_for_call): Likewise.
10518         * ipa-pure-const.c (special_builtin_state): Likewise.
10519         * tree-chkp.c (chkp_build_returned_bound): Likewise.
10520         * tree-object-size.c (alloc_object_size): Likewise.
10521         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10522         (call_may_clobber_ref_p_1): Likewise.
10523         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
10524         (ccp_fold_stmt): Likewise.
10525         (optimize_stack_restore): Likewise.
10526         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10527         (mark_all_reaching_defs_necessary_1): Likewise.
10528         (propagate_necessity): Likewise.
10529         (eliminate_unnecessary_stmts): Likewise.
10530         * tree.c (build_common_builtin_nodes): Build
10531         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
10532         (build_alloca_call_expr): New function.
10533         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
10534         (CASE_BUILT_IN_ALLOCA): Likewise.
10535         (build_alloca_call_expr): Declare.
10536         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
10537
10538 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10539
10540         PR debug/82509
10541         * dwarf2out.c (new_die_raw): New static inline function.
10542         (new_die): Use it to create the DIE.
10543         (add_AT_external_die_ref): Likewise.
10544         (clone_die): Likewise.
10545         (clone_as_declaration): Likewise.
10546         (dwarf2out_vms_debug_main_pointer): Likewise.
10547         (base_type_die): Likewise.  Remove early return for corner cases.
10548         Do not call add_pubtype on the DIE here.
10549         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
10550         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
10551         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
10552         native order exists for base types, attach the DIE manually and call
10553         add_pubtype on it.  Do not equate a reverse order DIE to the type.
10554
10555 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
10556
10557         * config/arm/arm.c (align_ok_ldrd_strd): New function.
10558         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
10559         the mem into it.
10560         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
10561
10562 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
10563
10564         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
10565         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
10566         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
10567         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
10568         * opts.c (sanitizer_opts): Add builtin.
10569         * ubsan.c (instrument_builtin): New function.
10570         (pass_ubsan::execute): Call it.
10571         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
10572         * doc/invoke.texi: Document -fsanitize=builtin.
10573
10574         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
10575         builtins, store max (log2 (align), 0) into uchar field instead of
10576         align into uptr field.
10577         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
10578         store uchar 0 field instead of uptr 0 field.
10579         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
10580         instead of passing one address of struct with 2 locations pass
10581         two addresses of structs with 1 location each.
10582         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
10583         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
10584         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
10585         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
10586         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
10587         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
10588         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
10589         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
10590
10591 2017-10-19  Martin Liska  <mliska@suse.cz>
10592
10593         PR driver/81829
10594         * file-find.c (remove_prefix): Remove.
10595         * file-find.h (remove_prefix): Likewise.
10596         * gcc-ar.c: Remove smartness of lookup.
10597
10598 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
10599
10600         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
10601         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
10602         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
10603
10604 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
10605
10606         PR target/82580
10607         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
10608         (setcc + and to xor + setcc): New peephole2.
10609
10610 2017-10-19  Tom de Vries  <tom@codesourcery.com>
10611
10612         * doc/sourcebuild.texi (Test Directives, Variants of
10613         dg-require-support): Add dg-require-stack-size.
10614
10615 2017-10-19  Martin Liska  <mliska@suse.cz>
10616
10617         PR sanitizer/82517
10618         * gimplify.c (gimplify_decl_expr): Do not instrument variables
10619         that have a large alignment.
10620         (gimplify_target_expr): Likewise.
10621
10622 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
10623
10624         PR rtl-optimization/82602
10625         * ira.c (rtx_moveable_p): Return false for volatile asm.
10626
10627 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
10628
10629         PR target/82580
10630         * config/i386/i386-modes.def (CCGZ): New CC mode.
10631         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
10632         * config/i386/predicates.md (ix86_comparison_operator):
10633         Handle CCGZmode.
10634         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10635         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
10636         with double-word subtraction.
10637         (put_condition_code): Handle CCGZmode.
10638
10639 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
10640
10641         * wide-int.cc (debug (const wide_int &)): New.
10642         (debug (const wide_int *)): New.
10643         (debug (const widest_int &)): New.
10644         (debug (const widest_int *)): New.
10645
10646 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
10647
10648         PR middle-end/82556
10649         * lra-constraints.c (curr_insn_transform): Use non-input operand
10650         instead of output one for matched reload.
10651
10652 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
10653
10654         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
10655         (tree-ssa-loop-ivopts.h): New header file.
10656         (struct builtin_info): New fields.
10657         (classify_builtin_1): Compute and record base and offset parts for
10658         memset builtin partition by calling strip_offset.
10659         (offset_cmp, fuse_memset_builtins): New functions.
10660         (finalize_partitions): Fuse adjacent memset partitions by calling
10661         above function.
10662         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
10663         Expose the interface.
10664         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
10665
10666 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
10667
10668         PR tree-optimization/82574
10669         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
10670         that data reference must be executed exactly once per iteration
10671         against the outermost loop in nest.
10672         (classify_partition): Update call to above function.
10673
10674 2017-10-18  Richard Biener  <rguenther@suse.de>
10675
10676         PR tree-optimization/82591
10677         * graphite.c (graphite_transform_loops): Move code gen message
10678         printing ...
10679         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
10680         Here.  Handle scop_to_isl_ast failing.
10681         (scop_to_isl_ast): Limit the number of ISL operations.
10682
10683 2017-10-18  Richard Biener  <rguenther@suse.de>
10684
10685         * graphite-isl-ast-to-gimple.c
10686         (translate_isl_ast_to_gimple::set_rename): Simplify.
10687         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
10688         (graphite_copy_stmts_from_block): ... here.
10689         (copy_bb_and_scalar_dependences): Simplify.
10690         (add_parameters_to_ivs_params): Canonicalize.
10691         (generate_entry_out_of_ssa_copies): Simplify.
10692         * graphite-sese-to-poly.c (extract_affine_name): Simplify
10693         by passing in ISL dimension.
10694         (parameter_index_in_region_1): Rename to ...
10695         (parameter_index_in_region): ... this.
10696         (extract_affine): Adjust assert, pass down parameter index.
10697         (add_param_constraints): Use range-info when available.
10698         (build_scop_context): Adjust.
10699         * sese.c (new_sese_info): Adjust.
10700         (free_sese_info): Likewise.
10701         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
10702         Remove unused typedefs.
10703         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
10704
10705 2017-10-18  Martin Liska  <mliska@suse.cz>
10706
10707         * combine.c (simplify_compare_const): Add gcc_fallthrough.
10708
10709 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
10710
10711         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
10712         (s390_sched_init): Do not reset s390_sched_state if we entered the
10713         current basic block via a fallthru edge and all others are unlikely.
10714
10715 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
10716
10717         * config/s390/s390.c (NUM_SIDES): New variable.
10718         (LONGRUNNING_THRESHOLD): New variable.
10719         (LATENCY_FACTOR): New variable.
10720         (s390_sched_score): Decrease score for long-running instructions on
10721         wrong side.
10722         (s390_sched_variable_issue): Perform bookkeeping for long-running
10723         instructions.
10724
10725 2017-10-18  Richard Biener  <rguenther@suse.de>
10726
10727         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10728         Simplify with removal of the parameter rename map.
10729         (set_rename): Likewise.
10730         (should_copy_to_new_region): Likewise.
10731         (graphite_copy_stmts_from_block): Likewise.
10732         (copy_bb_and_scalar_dependences): Remove initialization of
10733         unused copied_bb_map.
10734         (copy_def): Remove.
10735         (copy_internal_parameters): Likewise.
10736         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
10737         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
10738         Use INTEGRAL_TYPE_P.
10739         (parameter_index_in_region_1): Rename to ...
10740         (assign_parameter_index_in_region): ... this.  Assert we have
10741         a parameter we handle.
10742         (scan_tree_for_params): Adjust.
10743         * sese.h (parameter_rename_map_t): Remove.
10744         (struct sese_info_t): Remove unused parameter_rename_map and
10745         copied_bb_map members.
10746         * sese.c (new_sese_info): Adjust.
10747         (free_sese_info): Likewise.
10748
10749 2017-10-18  Martin Liska  <mliska@suse.cz>
10750
10751         PR sanitizer/82545
10752         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
10753         on an abnormal edge.
10754
10755 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10756
10757         * doc/invoke.texi (ffunction-sections and fdata-sections):
10758         Update.
10759
10760 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
10761
10762         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
10763         the use statement can throw internally.
10764
10765 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
10766
10767         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
10768         any RTX present on the RHS of a SET.
10769         * compare-elim.c (try_eliminate_compare): Restore comment.
10770
10771 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
10772
10773         * langhooks.h (struct lang_hooks): Document that tree_size langhook
10774         may be also called on tcc_type nodes.
10775         * langhooks.c (lhd_tree_size): Likewise.
10776
10777 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
10778
10779         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
10780         format_warning_at_substring.
10781         (maybe_warn): Convert source_range * param to a location_t.  Pass
10782         UNKNOWN_LOCATION rather than NULL to fmtwarn.
10783         (format_directive): Remove code to extract source_ranges and
10784         source_range * in favor of just a location_t.
10785         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
10786         fmtwarn.
10787         * substring-locations.c (format_warning_va): Convert
10788         source_range * param to a location_t.
10789         (format_warning_at_substring): Likewise.
10790         * substring-locations.h (format_warning_va): Likewise.
10791         (format_warning_at_substring): Likewise.
10792
10793 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
10794
10795         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
10796         vec_scatter_store
10797         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
10798         and scatter/gather ops.
10799
10800         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
10801         vec_gather_load and vec_scatter_store.
10802         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
10803         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
10804         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
10805         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
10806         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
10807         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
10808
10809 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
10810
10811         * reg-stack.c (compare_for_stack_reg): Add bool argument.
10812         Detect FTST instruction and handle its register pops.  Only pop
10813         second operand if can_pop_second_op is true.
10814         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
10815         set can_pop_second_op to false in the compare_for_stack_reg call.
10816
10817         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
10818         output_fp_compare for stack register operands.
10819         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
10820         instructions here.  Do not emit stack register pops here.  Assert
10821         that FCOMPP pops next to top stack register.  Rewrite function.
10822
10823 2017-10-17  Nathan Sidwell  <nathan@acm.org>
10824
10825         PR middle-end/82577
10826         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
10827         use DECL_ASSEMBLER_NAME_RAW.
10828
10829         PR middle-end/82546
10830         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
10831         TYPE nodes.
10832
10833 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
10834             Wilco Dijkstra <wilco.dijkstra@arm.com>
10835
10836         * builtins.c (expand_builtin_update_setjmp_buf): Add a
10837         converstion to Pmode from the buf_addr.
10838
10839 2017-10-17  Richard Biener  <rguenther@suse.de>
10840
10841         * graphite-dependences.c (scop_get_reads_and_writes): Change
10842         output parameters to references.
10843
10844 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
10845
10846         PR 71026/tree-optimization
10847         * fold-const.c (distribute_real_division): Removed.
10848         (fold_binary_loc): Remove calls to distribute_real_divison.
10849
10850 2017-10-17  Richard Biener  <rguenther@suse.de>
10851
10852         * graphite-scop-detection.c
10853         (scop_detection::stmt_has_simple_data_refs_p): Always use
10854         the full nest as region.
10855         (try_generate_gimple_bb): Likewise.
10856         * sese.c (scalar_evolution_in_region): Simplify now that
10857         SCEV can handle instantiation in regions.
10858         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
10859         in the non-loop part of a function if requested.
10860
10861 2017-10-17  Richard Biener  <rguenther@suse.de>
10862
10863         PR tree-optimization/82563
10864         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
10865         New function.
10866         (graphite_regenerate_ast_isl): Call it.
10867         * graphite-scop-detection.c (build_scops): Remove entry edge split.
10868
10869 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
10870
10871         PR tree-optimization/82549
10872         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
10873         Formatting fixes.  Instead of calling make_bit_field_ref with negative
10874         bitpos return 0.
10875
10876 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
10877
10878         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
10879         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
10880         _mm_maskz_reduce_ss): New.
10881         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
10882         __builtin_ia32_reducess_mask): Ditto..
10883         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
10884         * config/i386/sse.md (reduces<mode>): Renamed to ...
10885         (reduces<mode><mask_scalar_name>): ... this.
10886         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
10887         Changed to ...
10888         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
10889         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
10890
10891 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
10892
10893         * Makefile.in (OBJS): Add unique-ptr-tests.o.
10894         * selftest-run-tests.c (selftest::run_tests): Call
10895         selftest::unique_ptr_tests_cc_tests.
10896         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
10897         * unique-ptr-tests.cc: New file.
10898
10899 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
10900
10901         PR sanitizer/82353
10902         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10903         locations.
10904         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10905         (make_hard_regno_born, make_hard_regno_dead): Update
10906         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
10907
10908 2017-10-16  Jeff Law  <law@redhat.com>
10909
10910         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
10911
10912 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
10913
10914         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
10915
10916 2017-10-16  Olivier Hainque  <hainque@adacore.com>
10917
10918         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
10919         with_cpu if we were configured for an e500v2 target cpu name.
10920
10921 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10922
10923         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
10924         * doc/invoke.texi: Document +nodsp as a valid extension for
10925         -mcpu=cortex-m33.
10926
10927 2017-10-16  Martin Liska  <mliska@suse.cz>
10928
10929         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
10930         (test_set_range): Likewise.
10931         (test_range_functions): Rename to ...
10932         (test_bit_in_range): ... this.
10933         (sbitmap_c_tests): Add new test.
10934
10935 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10936
10937         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
10938         New.
10939         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
10940         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
10941
10942 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10943
10944         * config/aarch64/aarch64-builtins.c
10945         (aarch64_types_quadopu_lane_qualifiers): New.
10946         (TYPES_QUADOPU_LANE): New.
10947         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
10948         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
10949         (aarch64_<sur>dot_laneq<vsi2qi>): New.
10950         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
10951         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
10952         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
10953         (Vdottype, DOTPROD): New.
10954         (sur): Add SDOT and UDOT.
10955
10956 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10957
10958         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
10959         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
10960         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
10961         Add TARGET_DOTPROD.
10962         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
10963         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
10964         Enable TARGET_DOTPROD.
10965         (cortex-a75.cortex-a55): Likewise.
10966         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
10967
10968 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10969
10970         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
10971         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
10972         New.
10973         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
10974         New.
10975         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
10976         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
10977         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
10978         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
10979         * config/arm/types.md (neon_dot, neon_dot_q): New.
10980         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
10981
10982 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10983
10984         * config/arm/arm.h (TARGET_DOTPROD): New.
10985         * config/arm/arm.c (arm_arch_dotprod): New.
10986         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
10987         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
10988         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
10989         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
10990         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
10991         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
10992         * doc/invoke.texi (armv8.2-a): Document dotprod
10993
10994 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10995
10996         * i386.c (ix86_vec_cost): New function.
10997         (ix86_rtx_costs): Handle vector operations better.
10998         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
10999         * x86-tune-costs.h: Add new costs to all tables.
11000
11001 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11002
11003         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
11004         operations.
11005         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
11006         divsd, sqrtss and sqrtsd
11007         * x86-tune-costs.h: Add new entries to all costs.
11008         (znver1_cost): Fix to match real instruction latencies.
11009
11010 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11011             Michael Collison <michael.collison@arm.com>
11012
11013         * compare-elim.c: Include emit-rtl.h.
11014         (can_merge_compare_into_arith): New function.
11015         (try_validate_parallel): Likewise.
11016         (try_merge_compare): Likewise.
11017         (try_eliminate_compare): Call the above when no previous clobber
11018         is available.
11019         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
11020         dataflow problems.
11021
11022 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11023
11024         PR middle-end/62263
11025         PR middle-end/82498
11026         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
11027         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
11028
11029         PR middle-end/62263
11030         PR middle-end/82498
11031         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
11032         to be any operand_equal_p operands.  For & (B - 1) require
11033         B to be power of 2.  Recognize
11034         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
11035
11036 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11037
11038         PR bootstrap/82553
11039         * optabs.c (expand_memory_blockage): Fix call of
11040         targetm.have_memory_blockage.
11041
11042 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11043
11044         PR bootstrap/82548
11045         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
11046         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
11047         objects to extra_objs instead of overwriting it.
11048
11049 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11050
11051         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
11052         Use any_fp_register_operand as operand[3] predicate.  Simplify
11053         equality test for operands[2] and operands[4] memory location.
11054         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
11055         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
11056         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
11057         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
11058         any_fp_register_operand as operand[1] predicate.  Simplify
11059         equality test for operands[0] and operands[3] memory location.
11060         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
11061         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
11062         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
11063
11064 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11065
11066         * target-insns.def: Add memory_blockage.
11067         * optabs.c (expand_memory_blockage): New function.
11068         (expand_asm_memory_barrier): Rename ...
11069         (expand_asm_memory_blockage): ... to this.
11070         (expand_mem_thread_fence): Call expand_memory_blockage
11071         instead of expand_asm_memory_barrier.
11072         (expand_mem_singnal_fence): Ditto.
11073         (expand_atomic_load): Ditto.
11074         (expand_atomic_store): Ditto.
11075         * doc/md.texi (Standard Pattern Names For Generation):
11076         Document memory_blockage instruction pattern.
11077
11078 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
11079
11080         * config/rl78/rl78.c (rl78_emit_libcall): New function.
11081         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
11082         * config/rl78/rl78.md: New define_expand "adddi3".
11083
11084 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11085
11086         * cfghooks.c (verify_flow_info): Disable check that all probabilities
11087         are set correctly.
11088
11089 2017-10-13  Jeff Law  <law@redhat.com>
11090
11091         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
11092
11093 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11094
11095         PR target/82274
11096         * internal-fn.c (expand_mul_overflow): If both operands have
11097         the same highpart of -1 or 0 and the topmost bit of lowpart
11098         is different, overflow is if res <= 0 rather than res < 0.
11099
11100 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
11101
11102         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
11103         TARGET_P9_VECTOR code for unaligned_load case.
11104
11105 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11106
11107         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
11108
11109 2017-10-13  Nathan Sidwell  <nathan@acm.org>
11110
11111         * tree-core.h (tree_contains_struct): Make bool.
11112         * tree.c (tree_contains_struct): Likewise.
11113         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
11114         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
11115         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
11116         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
11117         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
11118
11119 2017-10-13  Richard Biener  <rguenther@suse.de>
11120
11121         * graphite-isl-ast-to-gimple.c
11122         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
11123         parameters and dominance check.
11124         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
11125         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
11126         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
11127         Do not update SSA form here or do intermediate IL verification.
11128         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
11129         (graphite_initialize): Remove check on the number of loops in
11130         the function and inline into graphite_transform_loops.
11131         (graphite_finalize): Inline into graphite_transform_loops.
11132         (graphite_transform_loops): Perform SSA update and IL verification
11133         here.
11134         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
11135
11136 2017-10-13  Richard Biener  <rguenther@suse.de>
11137
11138         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
11139         graphite_expression_type_precision): Avoid global constructor
11140         by moving ...
11141         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
11142         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
11143         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
11144         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
11145         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
11146         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
11147
11148 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
11149
11150         PR target/82499
11151         * config/i386/i386.h (ix86_red_zone_size): New.
11152         * config/i386/i386.md (push peephole2s): Replace
11153         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
11154
11155 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11156             Alan Hayward  <alan.hayward@arm.com>
11157             David Sherwood  <david.sherwood@arm.com>
11158
11159         * combine.c (can_change_dest_mode): Reject changes in
11160         REGMODE_NATURAL_SIZE.
11161
11162 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11163             Alan Hayward  <alan.hayward@arm.com>
11164             David Sherwood  <david.sherwood@arm.com>
11165
11166         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
11167         (expand_debug_source_expr): Likewise.
11168         * combine.c (combine_simplify_rtx): Likewise.
11169         * cse.c (fold_rtx): Likewise.
11170         * fwprop.c (canonicalize_address): Likewise.
11171         * targhooks.c (default_shift_truncation_mask): Likewise.
11172
11173 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11174             Alan Hayward  <alan.hayward@arm.com>
11175             David Sherwood  <david.sherwood@arm.com>
11176
11177         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
11178         (widened_mode): Likewise.
11179         (expand_unop): Likewise.
11180         * ree.c (transform_ifelse): Likewise.
11181         (merge_def_and_ext): Likewise.
11182         (combine_reaching_defs): Likewise.
11183         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11184
11185 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11186             Alan Hayward  <alan.hayward@arm.com>
11187             David Sherwood  <david.sherwood@arm.com>
11188
11189         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
11190         * combine.c (gen_lowpart_for_combine): Likewise.
11191         * dwarf2out.c (rtl_for_decl_location): Likewise.
11192         * final.c (alter_subreg): Likewise.
11193         * rtlhooks.c (gen_lowpart_general): Likewise.
11194         (gen_lowpart_if_possible): Likewise.
11195
11196 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11197             Alan Hayward  <alan.hayward@arm.com>
11198             David Sherwood  <david.sherwood@arm.com>
11199
11200         * calls.c (expand_call): Use subreg_lowpart_offset.
11201         * cse.c (cse_insn): Likewise.
11202         * regcprop.c (copy_value): Likewise.
11203         (copyprop_hardreg_forward_1): Likewise.
11204
11205 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11206
11207         PR target/82524
11208         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
11209         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
11210         =Q constraints to +Q and into insn condition add check
11211         that operands[0] and operands[1] are equal.
11212         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
11213         =Q constraints to +Q and into insn condition add check
11214         that operands[0] is equal to either operands[1] or operands[2].
11215
11216         PR target/82498
11217         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
11218         instead of handling MINUS_EXPR twice (once for each argument),
11219         canonicalize operand order and handle just once, use rtype where
11220         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
11221
11222         PR target/82498
11223         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
11224         any values of __C while still being pattern recognizable as a simple
11225         rotate instruction.
11226
11227 2017-10-13  Richard Biener  <rguenther@suse.de>
11228
11229         PR tree-optimization/82451
11230         Revert
11231         2017-10-02  Richard Biener  <rguenther@suse.de>
11232
11233         PR tree-optimization/82355
11234         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
11235         a mapping for the enclosing loop but avoid generating one for
11236         the loop tree root.
11237         (copy_bb_and_scalar_dependences): Remove premature codegen
11238         error on PHIs in blocks duplicated into multiple places.
11239         * graphite-scop-detection.c
11240         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
11241         in the region use it as loop and nest to analyze the DR in.
11242         (try_generate_gimple_bb): Likewise.
11243         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
11244         (add_loop_constraints): For blocks in a loop not in the region
11245         create a dimension with a single iteration.
11246         * sese.h (gbb_loop_at_index): Remove assert.
11247
11248         * cfgloop.c (loop_preheader_edge): For the loop tree root
11249         return the single successor of the entry block.
11250         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11251         Reset the SCEV hashtable and niters.
11252         * graphite-scop-detection.c
11253         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
11254         assert that we only have POLYNOMIAL_CHREC that vary in loops
11255         contained in the region.
11256         (scop_detection::graphite_can_represent_expr): Adjust.
11257         (scop_detection::stmt_has_simple_data_refs_p): For loops
11258         not in the region set loop to NULL.  The nest is now the
11259         entry edge to the region.
11260         (try_generate_gimple_bb): Likewise.
11261         * sese.c (scalar_evolution_in_region): Adjust for
11262         instantiate_scev change.
11263         * tree-data-ref.h (graphite_find_data_references_in_stmt):
11264         Make nest parameter the edge into the region.
11265         (create_data_ref): Likewise.
11266         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
11267         entry edge into a region and adjust instantiate_scev calls.
11268         (create_data_ref): Likewise.
11269         (graphite_find_data_references_in_stmt): Likewise.
11270         (find_data_references_in_stmt): Pass the loop preheader edge
11271         from the nest argument.
11272         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
11273         parameter the edge into the region.
11274         (instantiate_parameters): Use the loop preheader edge as entry.
11275         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
11276         NULL loop.
11277         (get_instantiated_value_entry): Make instantiate_below parameter
11278         the edge into the region.
11279         (instantiate_scev_name): Likewise.  Adjust dominance checks,
11280         when we cannot use loop-based instantiation instantiate by
11281         walking use-def chains.
11282         (instantiate_scev_poly): Adjust.
11283         (instantiate_scev_binary): Likewise.
11284         (instantiate_scev_convert): Likewise.
11285         (instantiate_scev_not): Likewise.
11286         (instantiate_array_ref): Remove.
11287         (instantiate_scev_3): Likewise.
11288         (instantiate_scev_2): Likewise.
11289         (instantiate_scev_1): Likewise.
11290         (instantiate_scev_r): Do not blindly handle N-operand trees.
11291         Do not instantiate array-refs.  Handle all constants and invariants.
11292         (instantiate_scev): Make instantiate_below parameter
11293         the edge into the region.
11294         (resolve_mixers): Use the loop preheader edge for the region
11295         parameter to instantiate_scev_r.
11296         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
11297
11298 2017-10-13  Richard Biener  <rguenther@suse.de>
11299
11300         PR tree-optimization/82525
11301         * graphite-isl-ast-to-gimple.c
11302         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
11303         out from ...
11304         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
11305         Fail code generation when we cannot represent the isl integer.
11306         (binary_op_to_tree): Elide modulo operations that are no-ops
11307         in the type we code generate.  Remove now superfluous code
11308         generation errors.
11309
11310 2017-10-13  Richard Biener  <rguenther@suse.de>
11311
11312         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
11313         (scop_detection::harmful_loop_in_region): Remove premature
11314         IV type restriction.
11315         (scop_detection::graphite_can_represent_scev): We can handle
11316         pointer IVs just fine.
11317
11318 2017-10-13  Alan Modra  <amodra@gmail.com>
11319
11320         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
11321         "Clobbers and Scratch Registers".  Add paragraph on
11322         alternative to clobbers for scratch registers and OpenBLAS
11323         example.
11324
11325 2017-10-13  Alan Modra  <amodra@gmail.com>
11326
11327         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
11328         example of a memory input for a string of known length.  Move
11329         commentary out of table.  Add a number of new examples
11330         covering array memory inputs.
11331
11332 2017-10-12  Martin Liska  <mliska@suse.cz>
11333
11334         PR tree-optimization/82493
11335         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
11336         (test_range_functions): New function.
11337         (sbitmap_c_tests): Likewise.
11338         * selftest-run-tests.c (selftest::run_tests): Run new tests.
11339         * selftest.h (sbitmap_c_tests): New function.
11340
11341         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11342
11343 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11344
11345         * config/rs6000/amo.h: Fix spacing issue.
11346
11347 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11348
11349         PR target/82498
11350         * config/i386/i386.md (*ashl<mode>3_mask_1,
11351         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
11352         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
11353         patterns.
11354
11355 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11356
11357         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
11358         (profile_probability): Set max_probability
11359         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
11360         in temporaries.
11361         * profile-count.c (profile_probability::differs_from_p): Do not
11362         rely on max_probaiblity == 10000
11363
11364 2017-10-12  Jeff Law  <law@redhat.com>
11365
11366         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
11367         negative offsets.
11368
11369 2017-10-12  Martin Sebor  <msebor@redhat.com>
11370
11371         PR other/82301
11372         PR c/82435
11373         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
11374         (handle_alias_pairs): Call it.
11375         * common.opt (-Wattribute-alias): New option.
11376         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
11377         * doc/invoke.texi (-Wattribute-alias): Document.
11378
11379 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
11380
11381         Revert
11382         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11383         PR sanitizer/82353
11384         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11385         locations.
11386         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11387         (make_hard_regno_born, make_hard_regno_dead): Update
11388         bb_killed_pseudos and bb_gen_pseudos.
11389
11390 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11391
11392         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
11393
11394 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
11395
11396         * config/alpha/alpha.c (alpha_split_conditional_move):
11397         Use std::swap instead of manually swapping.
11398         (alpha_stdarg_optimize_hook): Ditto.
11399         (alpha_canonicalize_comparison): Ditto.
11400
11401 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11402
11403         * tree-loop-distribution.c (struct builtin_info): New struct.
11404         (struct partition): Refactor fields into struct builtin_info.
11405         (partition_free): Free struct builtin_info.
11406         (build_size_arg_loc, build_addr_arg_loc): Delete.
11407         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
11408         information from struct builtin_info.
11409         (find_single_drs): New function refactored from classify_partition.
11410         Also moved builtin validity checks to this function.
11411         (compute_access_range, alloc_builtin): New functions.
11412         (classify_builtin_st, classify_builtin_ldst): New functions.
11413         (classify_partition): Refactor code into functions find_single_drs,
11414         classify_builtin_st and classify_builtin_ldst.
11415         (distribute_loop): Don't do runtime alias check when distributing
11416         loop nest.
11417         (find_seed_stmts_for_distribution): New function.
11418         (pass_loop_distribution::execute): Refactor code finding seed
11419         stmts into above function.  Support distribution for the innermost
11420         two-level loop nest.  Adjust dump information.
11421
11422 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11423
11424         * tree-loop-distribution.c: Adjust the general comment.
11425         (NUM_PARTITION_THRESHOLD): New macro.
11426         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
11427         (classify_partition): Skip builtin pattern of loop nest's inner loop.
11428         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
11429         in call to build_partition_graph.
11430         (finalize_partitions): New parameter.  Make loop distribution more
11431         conservative by fusing more partitions.
11432         (distribute_loop): Don't do runtime alias check in case of loop nest
11433         distribution.
11434         (find_seed_stmts_for_distribution): New function.
11435         (prepare_perfect_loop_nest): New function.
11436         (pass_loop_distribution::execute): Refactor code finding seed stmts
11437         and loop nest into above functions.  Support loop nest distribution.
11438         Adjust dump information accordingly.
11439
11440 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11441
11442         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
11443         and set PTYPE_SEQUENTIAL for merged partition.
11444
11445 2017-10-12  Richard Biener  <rguenther@suse.de>
11446
11447         PR tree-optimization/69728
11448         Revert
11449         2017-09-19  Richard Biener  <rguenther@suse.de>
11450
11451         PR tree-optimization/69728
11452         * graphite-sese-to-poly.c (schedule_error): New global.
11453         (add_loop_schedule): Handle empty domain by failing the
11454         schedule.
11455         (build_original_schedule): Handle schedule_error.
11456
11457         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
11458         domain by returning an unchanged schedule.
11459
11460 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11461
11462         * genrecog.c (validate_pattern): For VEC_SELECT verify that
11463         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
11464
11465 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
11466
11467         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
11468         Handle params.def.
11469
11470 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11471
11472         PR c++/82159
11473         * expr.c (store_field): Don't optimize away bitsize == 0 store
11474         from CALL_EXPR with addressable return type.
11475
11476 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11477
11478         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
11479         * config/rs6000/rs6000.md (sel): Delete mode attribute.
11480         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
11481         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
11482         TARGET_ISEL instead of TARGET_ISEL<sel>.
11483
11484 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
11485
11486         * config/rs6000/rs6000.c
11487         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
11488
11489 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11490
11491         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
11492         Move up in file.
11493         (reg_or_cint_operand): Fix comment.
11494         (reg_or_zero_operand): New predicate.
11495         * config/rs6000/rs6000-protos.h (output_isel): Delete.
11496         * config/rs6000/rs6000.c (output_isel): Delete.
11497         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
11498         instead of reg_or_cint_operand.  Output instruction directly (not via
11499         output_isel).
11500         (isel_unsigned_<mode>): Ditto.
11501         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
11502         gpc_reg_operand.  Add an instruction alternative for this.  Output
11503         instruction directly.
11504         (*isel_reversed_unsigned_<mode>): Ditto.
11505
11506 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11507
11508         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
11509         (TARGET_CANONICALIZE_COMPARISON): Define.
11510
11511 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
11512
11513         PR target/81422
11514         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11515         Check whether the dest is REG before adding REG_EQUIV note.
11516
11517 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11518
11519         PR sanitizer/82353
11520         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11521         locations.
11522         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11523         (make_hard_regno_born, make_hard_regno_dead): Update
11524         bb_killed_pseudos and bb_gen_pseudos.
11525
11526 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11527
11528         * incpath.h (enum incpath_kind): Name enum, prefix values.
11529         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
11530         * incpath.c (heads, tails): Use INC_MAX.
11531         (add_env_var_paths, add_standard_paths): Use incpath_kind.
11532         (merge_include_chains, split_quote_chain,
11533         register_include_chains): Update incpath_kind names.
11534         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
11535         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
11536         names.
11537         (add_framework_path, darwin_register_objc_includes): Likewise.
11538         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
11539
11540 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11541
11542         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
11543         Do not use float_operator operator predicate.
11544         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
11545         * config/i386/predicates.md (float_operator): Remove predicate.
11546
11547 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11548
11549         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
11550         (*jccxf_i387): Ditto.
11551         (*jcc<mode>_i387): Ditto.
11552         (*jccu<mode>_i387): Ditto.
11553         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
11554         (*jcc_*_i387 splitters): Remove.
11555         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
11556         * config/i386/i386.c (ix86_split_fp_branch): Remove.
11557         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
11558         Remove predicate.
11559
11560 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
11561
11562         * profile-count.h (slow_safe_scale_64bit): New function.
11563         (safe_scale_64bit): New inline.
11564         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
11565         * profile-count.c: Include wide-int.h
11566         (slow_safe_scale_64bit): New.
11567
11568 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11569
11570         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
11571         HAS_DECL_ASSEMBLER_NAME_P.
11572         * gimple-expr.c (gimple_decl_printable_name: Check
11573         HAS_DECL_ASSEMBLER_NAME_P too.
11574         * ipa-utils.h (type_in_anonymous_namespace_p): Check
11575         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
11576         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
11577         * passes.c (rest_of_decl_compilation): Check
11578         HAS_DECL_ASSEMBLER_NAME_P too.
11579         * recog.c (verify_changes): Likewise.
11580         * tree-pretty-print.c (dump_decl_name): Likewise.
11581         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
11582
11583         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
11584         (SET_DECL_ASSEMBLER_NAME): Use it.
11585         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
11586         (COPY_DECL_ASSEMBLER_NAME): Likewise.
11587         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
11588
11589 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
11590
11591         * config.gcc (i386, x86_64): Add extra objects.
11592         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
11593         (ix86_min_insn_size): Declare.
11594         (ix86_issue_rate): Declare.
11595         (ix86_adjust_cost): Declare.
11596         (ia32_multipass_dfa_lookahead): Declare.
11597         (ix86_macro_fusion_p): Declare.
11598         (ix86_macro_fusion_pair_p): Declare.
11599         (ix86_bd_has_dispatch): Declare.
11600         (ix86_bd_do_dispatch): Declare.
11601         (ix86_core2i7_init_hooks): Declare.
11602         (ix86_atom_sched_reorder): Declare.
11603         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
11604         (COSTS_N_BYTES): Move to x86-tune-costs.h.
11605         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
11606         (rip_relative_addr_p): Rename to ...
11607         (ix86_rip_relative_addr_p): ... this one; export.
11608         (memory_address_length): Update.
11609         (ix86_issue_rate): Move to x86-tune-sched.c.
11610         (ix86_flags_dependent): Move to x86-tune-sched.c.
11611         (ix86_agi_dependent): Move to x86-tune-sched.c.
11612         (exact_dependency_1): Move to x86-tune-sched.c.
11613         (exact_store_load_dependency): Move to x86-tune-sched.c.
11614         (ix86_adjust_cost): Move to x86-tune-sched.c.
11615         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
11616         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
11617         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
11618         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
11619         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
11620         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
11621         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
11622         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
11623         (min_insn_size): Rename to ...
11624         (ix86_min_insn_size): ... this one; export.
11625         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
11626         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
11627         (core2i7_first_cycle_multipass_backtrack): Move to
11628         x86-tune-sched-core.c.
11629         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
11630         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
11631         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
11632         (ix86_avoid_jump_mispredicts): Update.
11633         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
11634         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
11635         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
11636         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
11637         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
11638         (MAX_INSN): Move to ix86-tune-sched-bd.c.
11639         (MAX_IMM): Move to ix86-tune-sched-bd.c.
11640         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
11641         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
11642         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
11643         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
11644         (MAX_STORE): Move to ix86-tune-sched-bd.c.
11645         (BIG): Move to ix86-tune-sched-bd.c.
11646         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
11647         (enum insn_path): Move to ix86-tune-sched-bd.c.
11648         (get_mem_group): Move to ix86-tune-sched-bd.c.
11649         (is_cmp): Move to ix86-tune-sched-bd.c.
11650         (dispatch_violation): Move to ix86-tune-sched-bd.c.
11651         (is_branch): Move to ix86-tune-sched-bd.c.
11652         (is_prefetch): Move to ix86-tune-sched-bd.c.
11653         (init_window): Move to ix86-tune-sched-bd.c.
11654         (allocate_window): Move to ix86-tune-sched-bd.c.
11655         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
11656         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
11657         (process_end_window): Move to ix86-tune-sched-bd.c.
11658         (allocate_next_window): Move to ix86-tune-sched-bd.c.
11659         (find_constant): Move to ix86-tune-sched-bd.c.
11660         (get_num_immediates): Move to ix86-tune-sched-bd.c.
11661         (has_immediate): Move to ix86-tune-sched-bd.c.
11662         (get_insn_path): Move to ix86-tune-sched-bd.c.
11663         (get_insn_group): Move to ix86-tune-sched-bd.c.
11664         (count_num_restricted): Move to ix86-tune-sched-bd.c.
11665         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
11666         (add_insn_window): Move to ix86-tune-sched-bd.c.
11667         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
11668         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
11669         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
11670         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
11671         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
11672         (do_dispatch): Move to ix86-tune-sched-bd.c.
11673         (has_dispatch): Move to ix86-tune-sched-bd.c.
11674         * config/i386/t-i386: Add new object files.
11675         * config/i386/x86-tune-costs.h: New file.
11676         * config/i386/x86-tune-sched-atom.c: New file.
11677         * config/i386/x86-tune-sched-bd.c: New file.
11678         * config/i386/x86-tune-sched-core.c: New file.
11679         * config/i386/x86-tune-sched.c: New file.
11680
11681 2017-10-11  Liu Hao  <lh_mouse@126.com>
11682
11683         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
11684         the generic version below instead.
11685         (should_colorize): Recognize Windows consoles as terminals
11686         for MinGW targets.
11687         * pretty-print.c [__MINGW32__] (write_all): New function.
11688         [__MINGW32__] (find_esc_head): Likewise.
11689         [__MINGW32__] (find_esc_terminator): Likewise.
11690         [__MINGW32__] (eat_esc_sequence): Likewise.
11691         [__MINGW32__] (mingw_ansi_fputs): New function that handles
11692         ANSI escape codes.
11693         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
11694         for MinGW targets.
11695
11696 2017-10-11  Richard Biener  <rguenther@suse.de>
11697
11698         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
11699         Properly call analyze_scalar_evolution with the loop of the stmt.
11700
11701 2017-10-11  Richard Biener  <rguenther@suse.de>
11702
11703         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
11704         * tree-core.h (tree_base): Add chrec_var union member.
11705         * tree.h (CHREC_VAR): Remove.
11706         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
11707         * tree-chrec.h (build_polynomial_chrec): Adjust.
11708         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
11709         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
11710
11711 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
11712
11713         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
11714         * match.pd: ... here.
11715         ((T) X == (T) Y): Relax condition.
11716
11717 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
11718
11719         PR tree-optimization/82472
11720         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
11721         comment.
11722         (break_alias_scc_partitions): Update postorder number.
11723
11724 2017-10-11  Martin Liska  <mliska@suse.cz>
11725
11726         PR sanitizer/82490
11727         * opts.c (parse_no_sanitize_attribute): Do not use error_value
11728         variable.
11729         * opts.h (parse_no_sanitize_attribute): Remove last argument.
11730
11731 2017-10-11  Martin Liska  <mliska@suse.cz>
11732
11733         * print-rtl.c (print_insn): Move declaration of idbuf
11734         to same scope as name.
11735
11736 2017-10-11  Martin Liska  <mliska@suse.cz>
11737
11738         Revert r253637:
11739
11740         PR sanitizer/82484
11741         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
11742         volatile arguments.
11743
11744 2017-10-11  Martin Liska  <mliska@suse.cz>
11745
11746         PR sanitizer/82484
11747         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
11748         volatile arguments.
11749
11750 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
11751
11752         * config.gcc (default_gnu_indirect_function): Default to yes for
11753         arm*-*-linux* with glibc.
11754
11755 2017-10-11  Richard Biener  <rguenther@suse.de>
11756
11757         * tree-scalar-evolution.c (get_scalar_evolution): Handle
11758         default-defs and types we do not want to analyze.
11759         (interpret_loop_phi): Replace unreachable code with an assert.
11760         (compute_scalar_evolution_in_loop): Remove and inline ...
11761         (analyze_scalar_evolution_1): ... here, replacing condition with
11762         what makes the intent clearer.  Remove handling of cases
11763         get_scalar_evolution now handles.
11764
11765 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
11766
11767         PR rtl-optimization/81434
11768         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
11769         comment for main loop.  In sched_group_found if, also add checks for
11770         pass and min_cost_group.
11771
11772 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
11773
11774         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
11775         (rs6000_insn_cost): New function.
11776         * config/rs6000/rs6000.md (cost): New attribute.
11777
11778 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
11779             H.J. Lu  <hongjiu.lu@intel.com>
11780
11781         PR target/79565
11782         PR target/82483
11783         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
11784         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
11785         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
11786         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
11787         to OPTION_MASK_ISA_AVX512VL - builtins that have both
11788         OPTION_MASK_ISA_MMX and some other bit set require both
11789         mmx and the ISAs without the mmx bit.
11790         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
11791         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
11792         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
11793         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
11794         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
11795         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
11796         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
11797         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
11798         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
11799         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
11800         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
11801         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
11802         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
11803         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
11804         Add OPTION_MASK_ISA_MMX.
11805
11806 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
11807
11808         * config.gcc (armv7*-*-freebsd*): New target.
11809         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
11810
11811 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
11812
11813         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
11814         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
11815         spot in the file.
11816
11817 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
11818
11819         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
11820         a template parameter.
11821         (WIDE_INT_REF_FOR): Update accordingly.
11822         * tree.h (wi::int_traits <const_tree>): Delete.
11823         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
11824         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
11825         (wi::tree_to_wide_ref): New typedef.
11826         (wi::to_wide): New function.
11827         * calls.c (get_size_range): Use wi::to_wide when operating on
11828         trees as wide_ints.
11829         * cgraph.c (cgraph_node::create_thunk): Likewise.
11830         * config/i386/i386.c (ix86_data_alignment): Likewise.
11831         (ix86_local_alignment): Likewise.
11832         * dbxout.c (stabstr_O): Likewise.
11833         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
11834         * expr.c (const_vector_from_tree): Likewise.
11835         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
11836         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
11837         (fold_negate_expr_1, int_const_binop_1, const_binop)
11838         (fold_convert_const_int_from_real, optimize_bit_field_compare)
11839         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
11840         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
11841         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
11842         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
11843         (fold_not_const, round_up_loc): Likewise.
11844         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
11845         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
11846         (alloca_call_type): Likewise.
11847         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
11848         * godump.c (go_output_typedef): Likewise.
11849         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
11850         * internal-fn.c (get_min_precision): Likewise.
11851         * ipa-cp.c (ipcp_store_vr_results): Likewise.
11852         * ipa-polymorphic-call.c
11853         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
11854         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
11855         (ipa_modify_call_arguments): Likewise.
11856         * match.pd: Likewise.
11857         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
11858         * print-tree.c (print_node_brief, print_node): Likewise.
11859         * stmt.c (expand_case): Likewise.
11860         * stor-layout.c (layout_type): Likewise.
11861         * tree-affine.c (tree_to_aff_combination): Likewise.
11862         * tree-cfg.c (group_case_labels_stmt): Likewise.
11863         * tree-data-ref.c (dr_analyze_indices): Likewise.
11864         (prune_runtime_alias_test_list): Likewise.
11865         * tree-dump.c (dequeue_and_dump): Likewise.
11866         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
11867         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
11868         * tree-pretty-print.c (dump_generic_node): Likewise.
11869         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
11870         (simple_iv_with_niters): Likewise.
11871         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11872         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
11873         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
11874         * tree-ssa-loop-niter.c (split_to_var_and_offset)
11875         (refine_value_range_using_guard, number_of_iterations_ne_max)
11876         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
11877         (get_cst_init_from_scev, record_nonwrapping_iv)
11878         (scev_var_range_cant_overflow): Likewise.
11879         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
11880         * tree-ssa-pre.c (compute_avail): Likewise.
11881         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
11882         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
11883         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
11884         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
11885         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
11886         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
11887         (dump_case_nodes, try_switch_expansion): Likewise.
11888         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
11889         (vect_do_peeling): Likewise.
11890         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
11891         * tree-vect-stmts.c (vectorizable_load): Likewise.
11892         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
11893         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
11894         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
11895         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
11896         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
11897         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
11898         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
11899         (evrp_dom_walker::before_dom_children): Likewise.
11900         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
11901         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
11902         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
11903         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
11904         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
11905         (get_range_pos_neg): Likewise.
11906         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
11907         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
11908         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
11909         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
11910         * config/avr/avr.c (avr_fold_builtin): Likewise.
11911         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
11912         * config/msp430/msp430.c (msp430_attr): Likewise.
11913         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
11914         * config/powerpcspe/powerpcspe-c.c
11915         (altivec_resolve_overloaded_builtin): Likewise.
11916         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
11917         (rs6000_expand_ternop_builtin): Likewise.
11918         * config/rs6000/rs6000-c.c
11919         (altivec_resolve_overloaded_builtin): Likewise.
11920         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
11921         (rs6000_expand_ternop_builtin): Likewise.
11922         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
11923
11924 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11925
11926         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
11927         when copying loop nest with only one inner loop.
11928
11929 2017-10-10  Richard Biener  <rguenther@suse.de>
11930
11931         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
11932         blocks if SCEV is active.
11933         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
11934         dead code.
11935         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
11936         (scev_initialize): Assert we are not yet initialized.
11937
11938 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11939
11940         * tree-loop-distribution.c (generate_loops_for_partition): Remove
11941         inner loop's exit stmt by making it always exit the loop, otherwise
11942         we would generate an infinite empty loop.
11943
11944 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11945
11946         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
11947         renaming variables in new preheader if it's deleted.
11948
11949 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11950
11951         * tree-loop-distribution.c (struct partition): Remove unused field
11952         loops of the structure.
11953         (partition_alloc, partition_free): Ditto.
11954         (build_rdg_partition_for_vertex): Ditto.
11955
11956 2017-10-09  Jeff Law  <law@redhat.com>
11957
11958         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
11959         return type to match prototype and documentation.
11960
11961 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11962
11963         * config/rs6000/rs6000.c (processor_costs): Move to ...
11964         * config/rs6000/rs6000.h: ... here.
11965         (rs6000_cost): Declare.
11966
11967 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
11968
11969         * except.c (setjmp_fn): New global variable.
11970         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
11971         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
11972         if DONT_USE_BUILTIN_SETJMP is defined.
11973
11974 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11975
11976         * target.def (insn_cost): New hook.
11977         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
11978         * doc/tm.texi: Regenerate.
11979         * rtlanal.c (insn_cost): Use the new hook.
11980
11981 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11982
11983         * combine.c (combine_validate_cost): Compute the new insn_cost,
11984         not just pattern_cost.
11985         (try_combine): Adjust comment.
11986
11987 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11988
11989         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
11990         insn_cost.
11991         * combine.c (uid_insn_cost): Adjust comment.
11992         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
11993         of insn_rtx_cost
11994         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
11995         * dse.c (find_shift_sequence): Ditto.
11996         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
11997         (bb_valid_for_noce_process_p): Use pattern_cost.
11998         * rtl.h (insn_rtx_cost): Delete.
11999         (pattern_cost): New prototype.
12000         (insn_cost): New prototype.
12001         * rtlanal.c (insn_rtx_cost): Rename to...
12002         (pattern_cost): ... this.
12003         (insn_cost): New.
12004
12005 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
12006
12007         * config/i386/i386.md (*jcc_2): Remove insn pattern.
12008         (*jcc<mode>_0_r_i387): Ditto.
12009         (*jccxf_r_i387): Ditto.
12010         (*jcc<mode>_r_i387): Ditto.
12011         (*jccu<mode>_r_i387): Ditto.
12012         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
12013         (*jcc): Rename from *jcc_1.
12014
12015 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12016
12017         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
12018         deferred rescans after the lvx/stvx recombination pre-pass.
12019
12020 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12021
12022         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
12023         memory operation instruction support.
12024         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
12025         (rs6000-ibm-aix[789]*): Likewise.
12026         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
12027         Document new functions.
12028
12029 2017-10-09  Richard Biener  <rguenther@suse.de>
12030
12031         PR tree-optimization/82397
12032         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
12033         equality only for semantically equal trees.
12034
12035 2017-10-09  Richard Biener  <rguenther@suse.de>
12036
12037         PR tree-optimization/82449
12038         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
12039         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
12040         allow constant addresses.
12041         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
12042         are linear.
12043
12044 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12045
12046         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
12047         flags.
12048
12049 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12050
12051         PR target/82463
12052         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
12053         definitions.
12054
12055 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12056
12057         PR target/82465
12058         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
12059
12060 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
12061
12062         PR target/82464
12063         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
12064         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
12065
12066 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
12067
12068         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
12069         (WI_BINARY_PREDICATE_RESULT): Likewise.
12070         (wi::binary_traits::operator_result): New type.
12071         (wi::binary_traits::predicate_result): Likewise.
12072         (generic_wide_int::operator~, unary generic_wide_int::operator-)
12073         (generic_wide_int::operator==, generic_wide_int::operator!=)
12074         (generic_wide_int::operator&, generic_wide_int::and_not)
12075         (generic_wide_int::operator|, generic_wide_int::or_not)
12076         (generic_wide_int::operator^, generic_wide_int::operator+
12077         (binary generic_wide_int::operator-, generic_wide_int::operator*):
12078         Delete.
12079         (operator~, unary operator-, operator==, operator!=, operator&)
12080         (operator|, operator^, operator+, binary operator-, operator*): New
12081         functions.
12082         * expr.c (get_inner_reference): Use wi::bit_and_not.
12083         * fold-const.c (fold_binary_loc): Likewise.
12084         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
12085         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12086         (bit_value_binop): Likewise.
12087         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
12088         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
12089         (extract_range_from_binary_expr_1): Likewise.
12090         (masked_increment): Likewise.
12091         (simplify_bit_ops_using_ranges): Likewise.
12092
12093 2017-10-09  Martin Jambor  <mjambor@suse.cz>
12094
12095         PR hsa/82416
12096         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
12097         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
12098         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
12099         COMPLEX types.
12100         (hsa_fixup_mov_insn_type): New function.
12101         (hsa_op_with_type::get_in_type): Use it.
12102         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
12103         immediates in an assert.
12104         (hsa_op_with_type::extend_int_to_32bit): New method.
12105         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
12106         types.  Convert to dest type if necessary.
12107         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
12108         (reg_for_gimple_ssa): Pass false as min32int to
12109         hsa_type_for_scalar_tree_type.
12110         (gen_hsa_addr): Fixup type when creating addresable temporary.
12111         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
12112         (gen_hsa_unary_operation): Extend operands and convert to dest type if
12113         necessary.  Call hsa_fixup_mov_insn_type.
12114         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
12115         extend operands and convert to dest type if necessary.
12116         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
12117         to dest type if necessary.
12118         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
12119         if conversion nt necessary and size matches.
12120         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
12121         to dest type if necessary.
12122         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
12123         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
12124         necessary.
12125         (gen_hsa_clrsb): Likewise.
12126         (gen_hsa_ffs): Likewise.
12127         (gen_hsa_divmod): Extend operands and convert to dest type if
12128         necessary.
12129         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
12130
12131 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12132
12133         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
12134         Remove empty default arguments.  Use a brace block as output
12135         statement.
12136         (conditional return): Ditto.
12137         (jump): Ditto.
12138         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
12139         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
12140         Ditto.
12141         (group_ending_nop): Ditto.
12142         (doloop_end): Ditto.
12143         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
12144         (splitters for those): Ditto.
12145
12146 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12147
12148         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
12149         a conditional jump (and the compare for it) so that pc_rtx is the
12150         last operand.
12151         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
12152         for the deleted and renamed ctr<mode>_internal[234] patterns.
12153         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
12154         Delete second conditional return pattern.
12155         (ctr<mode>_internal2): Delete this second bdnz pattern.
12156         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
12157         (ctr<mode>_internal4): Delete this second bdz pattern.
12158
12159 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12160
12161         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
12162         (always_initialized_rtx_for_ssa_name_p): New predicate.
12163         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
12164         (finish_out_of_ssa): Free new field of SA.
12165         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
12166         * tree-ssa-coalesce.c: Include tree-ssa.h.
12167         (get_parm_default_def_partitions): Remove extern keyword.
12168         (get_undefined_value_partitions): New function.
12169         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
12170         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
12171         uninitialized bits.
12172         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
12173
12174 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12175
12176         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
12177
12178 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12179
12180         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
12181         for targets that preffer 128bit.
12182
12183 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12184
12185         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
12186
12187 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12188
12189         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
12190         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
12191         prevent DSE.
12192         (thumb_set_return_address): Likewise.
12193
12194 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12195
12196         * common/config/arm/arm-common.c (arm_except_unwind_info):
12197         Handle DWARF2_UNWIND_INFO.
12198
12199 2017-10-07  Michael Collison <michael.collison@arm.com>
12200
12201         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
12202         New pattern.
12203
12204 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
12205
12206         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
12207         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
12208         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
12209         defined, force the creation of a new block for a dispatch label.
12210
12211 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
12212
12213         * invoke.texi (Wsuggest-attribute=cold): Document.
12214         * common.opt (Wsuggest-attribute=cold): New
12215         * ipa-pure-const.c (warn_function_cold): New function.
12216         * predict.c (compute_function_frequency): Use it.
12217         * predict.h (warn_function_cold): Declare.
12218
12219 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
12220
12221         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
12222         Update profile.
12223
12224 2017-10-06  Martin Liska  <mliska@suse.cz>
12225
12226         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
12227         keyword for member functions.
12228         (struct sanopt_tree_couple): New struct.
12229         (struct sanopt_tree_couple_hash): New function.
12230         (struct sanopt_ctx): Add new hash_map.
12231         (has_dominating_ubsan_ptr_check): New function.
12232         (record_ubsan_ptr_check_stmt): Likewise.
12233         (maybe_optimize_ubsan_ptr_ifn): Likewise.
12234         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
12235         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
12236
12237 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
12238
12239         PR target/82440
12240         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
12241         aarch64_simd_valid_immediate on CONST_VECTORs.
12242         (aarch64_reg_or_bic_imm): Likewise.
12243
12244 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
12245
12246         PR rtl-optimization/82396
12247         * haifa-sched.c (ready_sort_real): Disable qsort checking.
12248
12249 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
12250
12251         * graphite-dependences.c (scop_get_reads): Move code to...
12252         (scop_get_must_writes): Move code to...
12253         (scop_get_may_writes): Move code to...
12254         (scop_get_reads_and_writes): ... here.
12255         (scop_get_dependences): Call scop_get_reads_and_writes.
12256
12257 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
12258
12259         PR tree-optimization/82434
12260         * fold-const.h (can_native_encode_type_p,
12261         can_native_encode_string_p): Remove.
12262         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
12263         don't encode anything, just return what would be otherwise returned.
12264         (native_encode_fixed, native_encode_complex, native_encode_vector):
12265         Likewise.
12266         (native_encode_string): Likewise.  Inline by hand
12267         can_native_encode_string_p.
12268         (can_native_encode_type_p): Remove.
12269         (can_native_encode_string_p): Remove.
12270         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
12271         STRING_CSTs using can_native_encode_string_p, test all
12272         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
12273         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
12274         argument from native_encode_expr.
12275         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
12276         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
12277         but just 2.
12278
12279 2017-10-06  Richard Biener  <rguenther@suse.de>
12280
12281         PR tree-optimization/82397
12282         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
12283         operand_equal_p but rely on data_ref_compare_tree for detecting
12284         equalities.
12285         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
12286         to match up with dr_group_sort_cmp.
12287
12288 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12289
12290         PR target/82322
12291         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
12292         builtin.
12293         * config/s390/s390-builtin-types.def: Regenerate.
12294
12295 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12296
12297         PR target/82317
12298         * config/s390/s390-builtin-types.def: Regenerate.
12299         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
12300         Change flag from B_VXE to B_VX.
12301         (s390_vec_min_dbl): Remove B_VXE flag.
12302
12303 2017-10-06  Richard Biener  <rguenther@suse.de>
12304
12305         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
12306         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
12307         translate_isl_ast_to_gimple::is_valid_rename,
12308         translate_isl_ast_to_gimple::get_rename,
12309         translate_isl_ast_to_gimple::get_def_bb_for_const,
12310         translate_isl_ast_to_gimple::get_new_name,
12311         translate_isl_ast_to_gimple::collect_all_ssa_names,
12312         translate_isl_ast_to_gimple::copy_loop_phi_args,
12313         translate_isl_ast_to_gimple::collect_all_ssa_names,
12314         translate_isl_ast_to_gimple::copy_loop_phi_args,
12315         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
12316         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
12317         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
12318         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
12319         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
12320         translate_isl_ast_to_gimple::copy_cond_phi_args,
12321         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
12322         translate_isl_ast_to_gimple::edge_for_new_close_phis,
12323         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
12324         translate_isl_ast_to_gimple::rename_uses,
12325         translate_isl_ast_to_gimple::rename_all_uses): Remove.
12326         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
12327         (set_rename_for_each_def): Likewise.
12328         (graphite_copy_stmts_from_block): Handle debug stmt resetting
12329         here.  Handle rewriting SCEV analyzable uses here.
12330         (copy_bb_and_scalar_dependences): Generate code for PHI
12331         copy-in/outs.
12332         (graphite_regenerate_ast_isl): Adjust.
12333         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
12334         (add_write, add_read): New functions.
12335         (build_cross_bb_scalars_def): Use it and simplify.
12336         (build_cross_bb_scalars_use): Likewise.
12337         (graphite_find_cross_bb_scalar_vars): Inline into...
12338         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
12339         simulating out-of-SSA.  Compute liveout and add dependencies.
12340         (build_scops): Force an empty entry block.
12341         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
12342         members.
12343         (sese_build_liveouts): Declare.
12344         (sese_trivially_empty_bb_p): Likewise.
12345         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
12346         compute liveout and debug_liveout.
12347         (sese_bad_liveouts_use): Remove.
12348         (sese_reset_debug_liveouts_bb): Likewise.
12349         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
12350         (sese_build_liveouts): Build liveout and debug_liveout and store
12351         it in region.
12352         (new_sese_info): Adjust.
12353         (free_sese_info): Likewise.
12354         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
12355         do not build liveout here.
12356         (move_sese_in_condition): Adjust region entry.
12357         (scev_analyzable_p): Match up with chrec_apply requirements.
12358         (sese_trivially_empty_bb_p): New.
12359         * tree-into-ssa.c (get_reaching_def): Properly support generating
12360         default-defs for incremental rewrite of anonymous names.
12361
12362 2017-10-06  Richard Biener  <rguenther@suse.de>
12363
12364         * graphite-sese-to-poly.c (extract_affine): For casts increasing
12365         precision do not perform modulo reduction.
12366
12367 2017-10-06  Richard Biener  <rguenther@suse.de>
12368
12369         PR tree-optimization/82436
12370         * tree-vect-slp.c (vect_supported_load_permutation_p): More
12371         conservatively choose the vectorization factor when checking
12372         whether we can perform the required load permutation.
12373         (vect_transform_slp_perm_load): Assert when we may not fail.
12374
12375 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
12376
12377         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
12378         message for incompatible -msdata=* and -mcall-* options.
12379
12380 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12381
12382         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
12383         rate for post-reload scheduling.
12384
12385 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12386
12387         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
12388
12389 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12390
12391         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
12392         to improve monte carlo in scimark.
12393
12394 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12395
12396         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
12397         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
12398         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
12399         pentium4_cost, nocona_cost): Set reassociation width to 1.
12400         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
12401         width to 2 for fp operations and 1 otherwise.
12402         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
12403         for int and fp.
12404         (atom_cost): Set reassociation width to 2.
12405         (slm_cost, generic_cost): Set fp reassociation width
12406         to 2 and 1 otherwise.
12407         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
12408         (core_cost): Set fp reassociation width to 4 and vector to 2.
12409         (ix86_reassociation_width): Rewrite using cost table; special case
12410         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
12411         and TARGET_AVX128_OPTIMAL.
12412         * config/i386/i386.h (processor_costs): Add
12413         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
12414         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
12415         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
12416         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
12417         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
12418         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
12419
12420 2017-10-05  Nathan Sidwell  <nathan@acm.org>
12421
12422         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
12423
12424 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12425
12426         * config/arm/arm.c (arm_test_fpu_data): New.
12427         (arm_run_selftests): Call arm_test_fpu_data.
12428
12429 2017-10-04  Nathan Sidwell  <nathan@acm.org>
12430
12431         * toplev.c (toplev::main): Remove excess parens on pretty_printer
12432         decl.
12433         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
12434
12435 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
12436
12437         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
12438         check type for aarch64_simd_valid_immediate.
12439         (aarch64_output_simd_mov_immediate): Update prototype.
12440         (aarch64_simd_valid_immediate): Update prototype.
12441         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
12442         support for ORR-immediate.
12443         (and<mode>3): modified pattern to add support for BIC-immediate.
12444         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
12445         now checks for valid immediate for BIC and ORR based on new enum
12446         argument.
12447         (aarch64_output_simd_mov_immediate): Function now used to output
12448         BIC/ORR imm as well based on new enum argument.
12449         * config/aarch64/constraints.md (Do): New vector immediate constraint.
12450         (Db) : Likewise.
12451         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
12452         (aarch64_reg_or_bic_imm): Likewise.
12453
12454 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12455
12456         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
12457         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
12458
12459 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12460
12461         Revert r253399:
12462
12463         PR rtl-optimization/82396
12464         * haifa-sched.c (autopref_multipass_init): Simplify
12465         initialization.
12466         (autopref_rank_data): Simplify sort order.
12467         * sched-int.h (autopref_multipass_data_): Remove
12468         multi_mem_insn_p, min_offset and max_offset.
12469
12470 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12471
12472         * doc/sourcebuild.texi: Document vect_peeling_profitable.
12473
12474 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12475
12476         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
12477         vect_doubleint_cvt.
12478
12479 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12480
12481         * doc/sourcebuild.texi: Document vect_long_mult.
12482
12483 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
12484
12485         PR tree-optimization/82413
12486         * fold-const.c (build_range_check): Use widest_int when comparing
12487         the maximum ETYPE value with HIGH.
12488
12489 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12490
12491         PR rtl-optimization/82396
12492         * haifa-sched.c (autopref_multipass_init): Simplify
12493         initialization.
12494         (autopref_rank_data): Simplify sort order.
12495         * sched-int.h (autopref_multipass_data_): Remove
12496         multi_mem_insn_p, min_offset and max_offset.
12497
12498 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
12499
12500         PR tree-optimization/82381
12501         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
12502         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
12503         is not.
12504
12505         PR tree-optimization/82374
12506         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
12507         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
12508         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
12509         current_function_decl to the new decl.
12510
12511 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12512
12513         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
12514         helper macro for IEEE float128 hardware built-in functions.
12515         (SQRTF128_ODD): Add built-in functions with the round-to-odd
12516         semantics.
12517         (TRUNCF128_ODD): Likewise.
12518         (ADDF128_ODD): Likewise.
12519         (SUBF128_ODD): Likewise.
12520         (MULF128_ODD): Likewise.
12521         (DIVF128_ODD): Likewise.
12522         (FMAF128_ODD): Likewise.
12523         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
12524         UNSPEC_TRUNC_ROUND_TO_ODD.
12525         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
12526         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
12527         floating point round to odd instructions.
12528         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
12529         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
12530         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
12531         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
12532         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
12533         (trunc<mode>sf2_hw): Change the truncate with round to odd
12534         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
12535         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
12536         to odd hardware instructions.
12537         (sub<mode>3_odd): Likewise.
12538         (mul<mode>3_odd): Likewise.
12539         (div<mode>3_odd): Likewise.
12540         (sqrt<mode>2_odd): Likewise.
12541         (fma<mode>4_odd): Likewise.
12542         (fms<mode>4_odd): Likewise.
12543         (nfma<mode>4_odd): Likewise.
12544         (nfms<mode>4_odd): Likewise.
12545         (trunc<mode>df2_odd): Change the truncate with round to odd
12546         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
12547         function.
12548         * doc/extend.texi (PowerPC built-in functions): Update documentation
12549         for existing IEEE float128-bit built-in functions.  Add built-in
12550         functions that generate the IEEE 128-bit floating point round to
12551         odd instructions.
12552
12553 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
12554
12555         PR rtl-optimization/77729
12556         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
12557         to (X&(C1&~C2))|C2 transformations.
12558
12559 2017-10-03  Martin Jambor  <mjambor@suse.cz>
12560
12561         PR tree-optimization/82363
12562         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
12563         mismatch, mark lacc written regardless of racc.
12564
12565 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
12566
12567         PR tree-optimization/82381
12568         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
12569         stmt_to_insert nor wheather SSA_NAMEs are default defs.
12570         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
12571         fallthrough into reassoc_stmt_dominates_stmt_p.
12572
12573         PR target/82386
12574         * combine.c (combine_instructions): Don't combine in unreachable
12575         basic blocks.
12576
12577 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
12578
12579         PR target/80210
12580         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
12581         function to not use the have_cpu variable.  Do not set cpu_index,
12582         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
12583         or the default cpu.
12584         (rs6000_valid_attribute_p): Remove duplicate initializations of
12585         old_optimize and func_optimize.
12586         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
12587         (rs6000_activate_target_options): Make global.
12588         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
12589         prototype.
12590
12591 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
12592
12593         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
12594         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
12595         Set *poffset to 0 and *psize and *pmax_size to -1 if
12596         *poffset + *psize overflows in HOST_WIDE_INT.
12597
12598         PR tree-optimization/82387
12599         PR tree-optimization/82388
12600         PR tree-optimization/82389
12601         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
12602         instead of live_bytes non-NULL.
12603
12604 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
12605
12606         PR target/41076
12607         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
12608         alternative.
12609
12610 2017-10-02  Richard Biener  <rguenther@suse.de>
12611
12612         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
12613         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
12614         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
12615
12616 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
12617
12618         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
12619         requested precision matches the type's.
12620         * calls.c (alloc_max_size): Calculate the new candidate size as
12621         a widest_int and use wi::to_widest when comparing it with the
12622         current candidate size.
12623         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
12624         zero rather than integer_zero_node.
12625         * match.pd: Check for a no-op conversion before using wi::add
12626         rather than after.  Use tree_to_uhwi when summing small shift
12627         counts into an unsigned int.
12628
12629 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
12630             Alan Hayward  <alan.hayward@arm.com>
12631             David Sherwood  <david.sherwood@arm.com>
12632
12633         PR target/71307
12634         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
12635         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12636         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
12637         POINTER_AND_FP_REGS.
12638
12639 2017-10-02  Richard Biener  <rguenther@suse.de>
12640
12641         PR tree-optimization/82355
12642         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
12643         a mapping for the enclosing loop but avoid generating one for
12644         the loop tree root.
12645         (copy_bb_and_scalar_dependences): Remove premature codegen
12646         error on PHIs in blocks duplicated into multiple places.
12647         * graphite-scop-detection.c
12648         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
12649         in the region use it as loop and nest to analyze the DR in.
12650         (try_generate_gimple_bb): Likewise.
12651         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
12652         (add_loop_constraints): For blocks in a loop not in the region
12653         create a dimension with a single iteration.
12654         * sese.h (gbb_loop_at_index): Remove assert.
12655
12656 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
12657
12658         * omp-expand.c (adjust_context_scope): New function.
12659         (expand_parallel_call): Call adjust_context_scope.
12660
12661 2017-10-01  Jeff Law  <law@redhat.com>
12662
12663         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
12664         dom_opt_dom_walker class with direct access to private members.
12665         Add comments.  Call test_for_singularity.
12666         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
12667         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
12668         m_dummy_cond anymore.
12669         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
12670         class ctor.
12671         (pass_dominator:execute): Build the dummy_cond here and pass it
12672         to the dom_opt_dom_walker ctor.
12673         (test_for_singularity): New function.
12674
12675 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
12676             Maya Rashish  <coypu@sdf.org>
12677
12678         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
12679         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
12680         (alpha*-*-netbsd*) Use nbsd_tm_file.
12681         (arm*-*-netbsdelf*) Likewise.
12682         (i[34567]86-*-netbsdelf*) Likewise.
12683         (x86_64-*-netbsd*) Likewise.
12684         (mips*-*-netbsd*) Likewise.
12685         (powerpc-*-netbsd*) Likewise.
12686         (sh*-*-netbsd*) Likewise.
12687         (sparc-*-netbsdelf*) Likewise.
12688         (sparc64-*-netbsd*) Likewise.
12689         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
12690         to tm_defines.
12691         (vax-*-netbsdelf*) Likewise.
12692         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
12693         (UINT_FAST8_TYPE) Likewise.
12694         (INT_FAST16_TYPE) Check CHAR_FAST16.
12695         (UINT_FAST16_TYPE) Likewise.
12696
12697 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
12698
12699         PR target/82361
12700         * config/i386/i386.md
12701         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
12702         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
12703         *divmodsi4_zext_2): New define_insn_and_split.
12704         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
12705         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
12706         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
12707         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
12708         New define_insn_and_split.
12709         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
12710         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
12711         operands[1] having DImode when mode is SImode.
12712
12713         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
12714         always SImode for DIV and MOD in REG_EQUAL notes.
12715
12716 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
12717
12718         PR middle-end/82319
12719         * match.pd: Fix handling of NaNs in pattern.
12720
12721 2017-09-29  Jeff Law  <law@redhat.com>
12722
12723         * sbitmap.c (bitmap_bit_in_range_p): New function.
12724         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
12725         * tree-ssa-dse.c (live_bytes_read): New function.
12726         (dse_classify_store): Ignore reads of dead bytes.
12727
12728         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
12729         typos and whitespace errors.
12730         * config/i386/predicates.md (address_no_seg_operand): Likewise.
12731         * config/s390/s390.c (s390_emit_prologue): Likewise.
12732
12733 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
12734
12735         PR target/81481
12736         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
12737         with a symbol for LRA.
12738
12739 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
12740
12741         PR rtl-optimization/82338
12742         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
12743
12744 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
12745
12746         * genmodes.c (calc_wider_mode): Suppress qsort macro.
12747         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
12748         (qsort_chk): Declare.
12749         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
12750         (qsort_chk): New function.
12751
12752 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12753
12754         PR tree-optimization/82337
12755         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
12756         phi definition if the PHI result appears in an abnormal PHI.
12757         (find_basis_for_base_expr): Don't record a basis if the LHS of the
12758         basis appears in an abnormal PHI.
12759
12760 2017-09-29  Richard Biener  <rguenther@suse.de>
12761
12762         * graphite-isl-ast-to-gimple.c
12763         (translate_isl_ast_to_gimple::set_codegen_error): New function.
12764         (binary_op_to_tree): Use it.
12765         (get_rename_from_scev): Likewise.
12766         (copy_loop_phi_nodes): Likewise.
12767         (copy_bb_and_scalar_dependences): Likewise.
12768         (translate_pending_phi_nodes): Likewise.
12769
12770 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
12771
12772         PR target/82339
12773         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
12774         for movabsq $(i32 << shift), r64.
12775
12776 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
12777
12778         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
12779         index when encoding %esp as %rsp to avoid 0x67 prefix.
12780
12781 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
12782
12783         * config/i386/i386.md (*movsf_internal, *movdf_internal):
12784         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
12785
12786 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12787
12788         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
12789         Extensions with more than 16 double VFP registers.
12790         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
12791         to_clear_mask and all code related to it.  Replace the remaining
12792         entry by a sbitmap and adapt code accordingly.
12793
12794 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
12795
12796         * brig-builtins.def: Change pure attributes to const.
12797
12798 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
12799
12800         * config.gcc (default_gnu_indirect_function): Default to yes for
12801         sparc*-*-linux* with glibc.
12802
12803 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
12804
12805         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
12806         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
12807         when creating .init_array and .fini_array sections with priority
12808         specified.
12809
12810 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
12811
12812         PR target/71727
12813         * config/aarch64/aarch64.c
12814         (aarch64_builtin_support_vector_misalignment): Always return false
12815         when misalignment is unknown.
12816
12817 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12818
12819         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
12820         this function to return false if the definition used by the swap
12821         instruction is artificial, or if the memory address from which the
12822         constant value is loaded is not represented by a base address held
12823         in a register or if the base address register is a frame or stack
12824         pointer.  Additionally, return false if the base address of the
12825         loaded constant is a SYMBOL_REF but is not considered to be a
12826         constant.
12827         (replace_swapped_load_constant): New function.
12828         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
12829         loaded constant vector with a load of a swapped constant vector.
12830
12831 2017-09-27  Carl Love  <cel@us.ibm.com>
12832
12833         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
12834         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
12835         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
12836         fctiw instruction.
12837
12838 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
12839
12840         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
12841         first, always call autopref_rank_data otherwise.
12842
12843 2017-09-27  Richard Biener  <rguenther@suse.de>
12844
12845         * graphite-scop-detection.c (find_scop_parameters): Move
12846         loop bound handling ...
12847         (gather_bbs::before_dom_children): ... here, avoiding the need
12848         to build scop_info->loop_nest.
12849         (record_loop_in_sese): Remove.
12850         * sese.h (sese_info_t::loop_nest): Remove.
12851         * sese.c (new_sese_info): Do not allocate loop_nest.
12852         (free_sese_info): Do not free loop_nest.
12853
12854 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
12855
12856         PR c++/82159
12857         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
12858         lhs from calls if the lhs has addressable type.
12859
12860 2017-09-27  Richard Biener  <rguenther@suse.de>
12861
12862         * graphite.h (scop::max_alias_set): New member.
12863         * graphite-scop-detection.c: Remove references to non-existing
12864         --param in comments.
12865         (build_alias_sets): Record the maximum alias set used for drs.
12866         (build_scops): Support zero as unlimited for
12867         --param graphite-max-arrays-per-scop.
12868         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
12869         and inline into ...
12870         (build_poly_sr_1): ... here.  Compute alias set based on the
12871         maximum alias set used for drs rather than
12872         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
12873
12874 2017-09-27  Richard Biener  <rguenther@suse.de>
12875
12876         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
12877         --param loop-block-tile-size=0 to disable tiling.
12878
12879 2017-09-27  Richard Biener  <rguenther@suse.de>
12880
12881         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
12882         (graphite-max-nb-scop-params): Document special value zero.
12883         * domwalk.h (dom_walker::STOP): New symbolical constant.
12884         (dom_walker::dom_walker): Add optional parameter for bb to
12885         RPO mapping.
12886         (dom_walker::~dom_walker): Declare.
12887         (dom_walker::before_dom_children): Document STOP return value.
12888         (dom_walker::m_user_bb_to_rpo): New member.
12889         (dom_walker::m_bb_to_rpo): Likewise.
12890         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
12891         mapping here if not provided by the user.
12892         (dom_walker::~dom_walker): Free bb to RPO mapping if not
12893         provided by the user.
12894         (dom_walker::STOP): Define.
12895         (dom_walker::walk): Do not compute bb to RPO mapping here.
12896         Support STOP return value from before_dom_children to stop
12897         walking.
12898         * graphite-optimize-isl.c (optimize_isl): If the schedule
12899         is the same still generate code if -fgraphite-identity
12900         or -floop-parallelize-all are given.
12901         * graphite-scop-detection.c: Include cfganal.h.
12902         (gather_bbs::gather_bbs): Get and pass through bb to RPO
12903         mapping.
12904         (gather_bbs::before_dom_children): Return STOP for BBs
12905         not in the region.
12906         (build_scops): Compute bb to RPO mapping and pass it to
12907         the domwalk.  Treat --param graphite-max-nb-scop-params=0
12908         as not limiting the number of params.
12909         * graphite.c (graphite_initialize): Remove limit on the
12910         number of basic-blocks in a function.
12911         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
12912         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
12913         default value of 10.
12914
12915 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12916
12917         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
12918         Adjust code to eliminate needing to do the shift right 32-bits
12919         operation after XSCVDPSPN.
12920
12921 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12922
12923         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
12924         ((X / Y) != 0 -> X >= Y): Likewise.
12925
12926 2017-09-26  Carl Love  <cel@us.ibm.com>
12927
12928         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
12929         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
12930         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
12931         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
12932         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
12933         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
12934         definitions and overloading.
12935         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
12936         statement for P9V_BUILTIN_XST_LEN_R.
12937         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
12938         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
12939         define_expand and define_insn for the instructions and builtins.
12940         * doc/extend.texi: Update the built-in documentation file for the new
12941         built-in functions.
12942         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
12943         define_insn for the instructions
12944
12945 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
12946
12947         PR target/39570
12948         * gcc/config/netbsd-protos.h: New file.
12949         * gcc/config/netbsd.c: New file.
12950         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
12951         * gcc/config/t-netbsd: New file.
12952         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
12953         (tmake_file) Add t-netbsd.
12954         (extra_objs) Add netbsd.o.
12955
12956 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
12957
12958         PR fortran/82143
12959         PR fortran/82324
12960         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
12961
12962 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12963
12964         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
12965         sign extension from a vector register to a GPR by doing a 32-bit
12966         direct move and then an EXTSW.
12967         (extendsi<mode>2 splitter): Likewise.
12968         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
12969         right or vector extract after doing XSCVDPSPN.  Use
12970         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
12971         the GPRs.
12972         (movdi_from_sf_zero_ext): Likewise.
12973         (reload_gpr_from_vsxsf): Likewise.
12974         (p8_mfvsrd_4_disf): Delete, no longer used.
12975         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
12976         then needing to move the SFmode to a GPR to use the XSCVDPSP
12977         instruction instead of FRSP and XSCVDPSPN.
12978         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
12979         it is adjacent to the other XSCVSPDP insns.
12980         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
12981         SFmode to be in traditional Altivec registers.
12982         (vsx_xscvdpspn): Eliminate useless alternative constraint.
12983         (vsx_xscvspdpn): Likewise.
12984         (vsx_xscvspdpn_scalar): Likewise.
12985
12986 2017-09-26  Martin Jambor  <mjambor@suse.cz>
12987
12988         * tree-sra.c (compare_access_positions): Put integral types first,
12989         stabilize sorting of integral types, remove conditions putting
12990         non-full-precision integers last.
12991         (sort_and_splice_var_accesses): Disable scalarization if a
12992         non-integert would be represented by a non-full-precision integer.
12993
12994 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
12995
12996         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
12997         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
12998         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
12999         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
13000         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
13001         conditionals inside the function instead of around it.  Call
13002         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
13003         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
13004
13005 2017-09-26  Richard Biener  <rguenther@suse.de>
13006
13007         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
13008         fold in ...
13009         (scop_detection::build_scop_breadth): ... this.  Removed.
13010         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
13011         (scop_detection::harmful_stmt_in_bb): Likewise.
13012         (scop_detection::graphite_can_represent_stmt): Likewise.
13013         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
13014         (scop_detection::can_represent_loop): Remove recursion, fold in ...
13015         (scop_detection::can_represent_loop_1): ... this.  Removed.
13016         (scop_detection::harmful_loop_in_region): Simplify after inlining
13017         the above and remove more quadraticness.
13018         (build_scops): Adjust.
13019         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
13020         quadraticness.
13021
13022 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
13023
13024         PR target/82267
13025         * config/i386/i386.c (ix86_print_operand_address_as): Only test
13026         REGNO (base) == SP_REG if base is a REG.
13027
13028         PR middle-end/35691
13029         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
13030         if it is different SSA_NAME.
13031         (optimize_range_tests_cmp_bitwise): New function.
13032         (optimize_range_tests): Call it.
13033
13034 2017-09-26  Richard Biener  <rguenther@suse.de>
13035
13036         PR tree-optimization/82321
13037         * graphite.c (canonicalize_loop_closed_ssa): Properly check
13038         for the def being inside the loop.
13039
13040 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13041
13042         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
13043         assembler output.
13044         * config/s390/s390-builtins.def: Fix constraint on op4.
13045
13046 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13047
13048         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
13049         independent expanders.
13050         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
13051         ("vec_ordered", "vec_unordered"): New expanders.
13052
13053 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13054
13055         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
13056         for SFmode.
13057
13058 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13059
13060         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
13061         vec_unpacks_lo_v16qi.
13062         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
13063
13064 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13065
13066         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
13067         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
13068         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
13069
13070 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13071
13072         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
13073         predicate.
13074         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
13075         and V16QI.
13076         ("*vec_slb<mode>"): New insn pattern.
13077         ("vec_shr_<mode>"): New expander.
13078         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
13079         and force the shift count operand to V16QImode.
13080         ("vec_srb<mode>"): Set shift count mode to V16QI.
13081
13082 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13083
13084         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
13085         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
13086         ("vec_widen_smult_hi_<mode>"): New expander definitions.
13087
13088 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
13089
13090         PR target/82175
13091         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
13092
13093 2017-09-26  Richard Biener  <rguenther@suse.de>
13094
13095         PR tree-optimization/82320
13096         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
13097         isn't a change.
13098
13099 2017-09-25  Jeff Law  <law@redhat.com>
13100
13101         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
13102         prototype for new argument.
13103         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
13104         mostly extracted from rs6000_emit_allocate_stack.
13105         (rs6000_emit_probe_stack_range_stack_clash): New function.
13106         (rs6000_emit_allocate_stack): Call
13107         rs6000_emit_probe_stack_range_stack_clash as needed.
13108         (rs6000_emit_probe_stack_range): Add additional argument
13109         to call to gen_probe_stack_range{si,di}.
13110         (output_probe_stack_range): New.
13111         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
13112         (output_probe_stack_range_stack_clash): New.
13113         (rs6000_emit_prologue): Emit notes into dump file as requested.
13114         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
13115         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
13116         Add additional operand and pass it to output_probe_stack_range.
13117
13118 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
13119
13120         PR tree-optimization/82163
13121         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
13122         (checking_verify_loop_closed_ssa): New parameter.
13123         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
13124         (check_loop_closed_ssa_stmt): Delete.
13125         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
13126         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
13127         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
13128         changed loops.
13129
13130 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
13131
13132         * brig-builtins.def: Treat HSAIL barrier builtins as
13133         setjmp/longjump style functions.
13134
13135 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13136
13137         * target.def (constant_alignment): New hook.
13138         * defaults.h (CONSTANT_ALIGNMENT): Delete.
13139         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
13140         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
13141         * doc/tm.texi: Regenerate.
13142         * targhooks.h (default_constant_alignment): Declare.
13143         (constant_alignment_word_strings): Likewise.
13144         * targhooks.c (default_constant_alignment): New function.
13145         (constant_alignment_word_strings): Likewise.
13146         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
13147         instead of CONSTANT_ALIGNMENT.
13148         * varasm.c (align_variable, get_variable_align, build_constant_desc)
13149         (force_const_mem): Likewise.
13150         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
13151         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
13152         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
13153         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13154         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
13155         definition.
13156         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
13157         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13158         constant_alignment_word_strings.
13159         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
13160         (CONSTANT_ALIGNMENT): Likewise.
13161         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13162         (arm_constant_alignment): New function.
13163         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
13164         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13165         constant_alignment_word_strings.
13166         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
13167         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13168         constant_alignment_word_strings.
13169         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
13170         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13171         (cris_constant_alignment): New function.
13172         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
13173         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13174         (epiphany_constant_alignment): New function.
13175         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
13176         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13177         constant_alignment_word_strings.
13178         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
13179         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13180         constant_alignment_word_strings.
13181         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
13182         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13183         constant_alignment_word_strings.
13184         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
13185         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
13186         * config/i386/i386.c (ix86_constant_alignment): Make static.
13187         Use the same interface as the target hook.
13188         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13189         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
13190         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13191         constant_alignment_word_strings.
13192         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
13193         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
13194         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13195         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
13196         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13197         constant_alignment_word_strings.
13198         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
13199         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13200         constant_alignment_word_strings.
13201         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
13202         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13203         constant_alignment_word_strings.
13204         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
13205         * config/microblaze/microblaze.c (microblaze_constant_alignment):
13206         New function.
13207         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13208         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
13209         * config/mips/mips.c (mips_constant_alignment): New function.
13210         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13211         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
13212         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
13213         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13214         (mmix_constant_alignment): Make static.  Use the same interface
13215         as the target hook.
13216         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
13217         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13218         constant_alignment_word_strings.
13219         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
13220         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13221         constant_alignment_word_strings.
13222         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
13223         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13224         constant_alignment_word_strings.
13225         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
13226         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13227         (rs6000_constant_alignment): New function.
13228         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
13229         * config/riscv/riscv.c (riscv_constant_alignment): New function.
13230         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13231         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
13232         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13233         (rs6000_constant_alignment): New function.
13234         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
13235         * config/s390/s390.c (s390_constant_alignment): New function.
13236         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13237         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
13238         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13239         constant_alignment_word_strings.
13240         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
13241         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13242         (sparc_constant_alignment): New function.
13243         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
13244         * config/spu/spu.c (spu_constant_alignment): New function.
13245         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13246         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
13247         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13248         constant_alignment_word_strings.
13249         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
13250         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13251         constant_alignment_word_strings.
13252         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
13253         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13254         constant_alignment_word_strings.
13255         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
13256         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13257         (visium_constant_alignment): New function.
13258         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
13259         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13260         (xtensa_constant_alignment): New function.
13261         * system.h (CONSTANT_ALIGNMENT): Poison.
13262
13263 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
13264
13265         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13266         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
13267         (rs6000_builtin_valid_without_lhs): New helper function.
13268         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13269         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
13270
13271 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13272
13273         * target.h (vec_perm_indices): Use unsigned short rather than
13274         unsigned char.
13275         (auto_vec_perm_indices): Likewise.
13276         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
13277         Use unsigned int rather than unsigned char.
13278         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
13279
13280 2017-09-25  Richard Biener  <rguenther@suse.de>
13281
13282         * cfgloop.h (sort_sibling_loops): Declare.
13283         * cfgloop.c (sort_sibling_loops_cmp): New helper.
13284         (sort_sibling_loops): New function sorting the sibling loop list
13285         in RPO order.
13286         * graphite.c (graphite_transform_loops): Sort sibling loops.
13287
13288 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
13289
13290         * target.def (vec_perm_const_ok): Change sel parameter to
13291         vec_perm_indices.
13292         * optabs-query.c (can_vec_perm_p): Update accordingly.
13293         * doc/tm.texi: Regenerate.
13294         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
13295         auto_vec_perm_indices and remove separate nelt field.
13296         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
13297         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
13298         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
13299         (aarch64_expand_vec_perm_const): Update accordingly.
13300         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
13301         to vec_perm_indices.
13302         * config/arm/arm.c (expand_vec_perm_d): Change perm to
13303         auto_vec_perm_indices and remove separate nelt field.
13304         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
13305         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
13306         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
13307         accordingly.
13308         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
13309         to vec_perm_indices.
13310         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
13311         sel to vec_perm_indices.
13312         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
13313         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
13314         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
13315         Likewise.
13316         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
13317         Likewise.
13318
13319 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
13320
13321         PR debug/82155
13322         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
13323         on the FUNCTION_DECL function context if it has a DIE that is a
13324         declaration.
13325
13326 2017-09-25  Richard Biener  <rguenther@suse.de>
13327
13328         PR tree-optimization/82285
13329         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
13330         enumeral types.
13331
13332 2017-09-25  Tom de Vries  <tom@codesourcery.com>
13333
13334         PR target/80035
13335         PR target/81069
13336         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
13337         noreturn function.
13338
13339 2017-09-25  Richard Biener  <rguenther@suse.de>
13340
13341         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
13342         ISL errors other than isl_error_quota happen.  Dump if the
13343         schedule is the same.
13344         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
13345         errors instead of aborting inside ISL.
13346
13347 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
13348
13349         PR target/80556
13350         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
13351         of libgcc_eh for m64.
13352         * config/i386/darwin64.h: Likewise.
13353
13354 2017-09-25  Richard Biener  <rguenther@suse.de>
13355
13356         PR middle-end/82144
13357         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
13358         attribute for incomplete types nor twice for complete ones.
13359
13360 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
13361
13362         PR target/82267
13363         * config/i386/i386.c (ix86_print_operand_address_as): Encode
13364         %esp as %rsp to avoid 0x67 prefix if there is no index or base
13365         register.
13366
13367 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
13368
13369         PR bootstrap/82306
13370         * config/i386/i386.opt (mprefer-avx256): Use
13371         ix86_target_flags variable.
13372         * config/i386/i386.c (ix86_target_string): Move
13373         -mprefer-avx256 to flag2_opts.
13374
13375 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
13376
13377         PR middle-end/35691
13378         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
13379         and x != -1 | y != -1 into (x & y) != -1.
13380
13381 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
13382
13383         * config.gcc: Add new case statement to set
13384         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
13385         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
13386         s390x-*-linux* case statements.   Added aarch64 to the list of
13387         supported architectures.
13388
13389 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13390
13391         PR tree-optimization/82289
13392         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
13393         STMT_VINFO_RELEVANT_P.
13394
13395 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13396             Alan Hayward  <alan.hayward@arm.com>
13397             David Sherwood  <david.sherwood@arm.com>
13398
13399         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
13400         for VR_RANGE only; don't allow VR_ANTI_RANGE.
13401         (extract_range_from_binary_expr_1): Don't call
13402         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
13403
13404 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13405             Alan Hayward  <alan.hayward@arm.com>
13406             David Sherwood  <david.sherwood@arm.com>
13407
13408         * target.def (preferred_vector_alignment): New hook.
13409         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
13410         hook.
13411         * doc/tm.texi: Regenerate.
13412         * targhooks.h (default_preferred_vector_alignment): Declare.
13413         * targhooks.c (default_preferred_vector_alignment): New function.
13414         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
13415         Expand commentary.
13416         (DR_TARGET_ALIGNMENT): New macro.
13417         (aligned_access_p): Update commentary.
13418         (vect_known_alignment_in_bytes): New function.
13419         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
13420         function.
13421         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
13422         Calculate the misalignment based on the target alignment rather than
13423         the vector size.
13424         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
13425         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
13426         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
13427         the target alignment, rather than masking the element misalignment
13428         with the number of elements in a vector.  Also use the target
13429         alignment when calculating the maximum number of peels.
13430         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
13431         instead of TYPE_ALIGN_UNIT.
13432         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
13433         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
13434         (vect_create_addr_base_for_vector_ref): Update call accordingly.
13435         (vect_create_data_ref_ptr): Likewise.
13436         (vect_setup_realignment): Realign by ANDing with
13437         -DR_TARGET_MISALIGNMENT.
13438         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
13439         the number of peels based on DR_TARGET_ALIGNMENT.
13440         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
13441         with the guaranteed alignment boundary when deciding whether
13442         overrun is OK.
13443         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
13444         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
13445         (ensure_base_align): Remove stmt_info parameter.  Get the
13446         target base alignment from DR_TARGET_ALIGNMENT.
13447         (vectorizable_store): Update call accordingly.   Interpret
13448         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
13449         TYPE_ALIGN_UNIT.
13450         (vectorizable_load): Likewise.
13451
13452 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13453             Alan Hayward  <alan.hayward@arm.com>
13454             David Sherwood  <david.sherwood@arm.com>
13455
13456         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
13457         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
13458         (vect_enhance_data_refs_alignment): Likewise.
13459
13460 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13461
13462         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
13463         error.  Only quit immediately if parsing is complete.
13464         (BEGIN): Initialize fatal_err and parse_done.
13465         (begin fpu, end fpu): Check number of arguments.
13466         (begin arch, end arch): Likewise.
13467         (begin cpu, end cpu): Likewise.
13468         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
13469         (optalias): Likewise.
13470
13471 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13472
13473         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
13474         * config/arm/arm-isa.h: Delete.  Move definitions to ...
13475         * arm-cpus.in: ... here.  Use new feature and fgroup values.
13476         * config/arm/arm.c (arm_option_override): Use lower case for feature
13477         bit names.
13478         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
13479         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
13480         * config/arm/parsecpu.awk (END): Add new command 'isa'.
13481         (isa_pfx): Delete.
13482         (print_isa_bits_for): New function.
13483         (gen_isa): New function.
13484         (gen_comm_data): Use print_isa_bits_for.
13485         (define feature): New keyword.
13486         (define fgroup): New keyword.
13487         * config/arm/t-arm (TM_H): Remove.
13488         (GTM_H): Add arm-isa.h.
13489         (arm-isa.h): Add rule to generate file.
13490         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
13491         case for feature bit names.
13492
13493 2017-09-22  Richard Biener  <rguenther@suse.de>
13494
13495         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
13496         single caller.
13497         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
13498         print of no dependency loops ...
13499         * graphite.c (graphite_transform_loops): ... here.
13500         (canonicalize_loop_closed_ssa_form): Work from inner to outer
13501         loops.
13502         (same_close_phi_node, remove_duplicate_close_phi,
13503         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
13504         (canonicalize_loop_closed_ssa): ... here and simplify.
13505         * graphite-optimize-isl.c: Include tree-vectorizer.h.
13506         (optimize_isl): Use dump_printf_loc to tell when we stopped
13507         optimizing because of an ISL timeout.
13508
13509 2017-09-22  Richard Biener  <rguenther@suse.de>
13510
13511         PR tree-optimization/82291
13512         * tree-if-conv.c (predicate_mem_writes): Make sure to
13513         remove writes in blocks predicated with false.
13514
13515 2017-09-22  Richard Biener  <rguenther@suse.de>
13516
13517         * sese.c: Include cfganal.h.
13518         (if_region_set_false_region): Remove.
13519         (create_if_region_on_edge): Likewise.
13520         (move_sese_in_condition): Re-implement without destroying
13521         dominators.
13522
13523 2017-09-22  Richard Biener  <rguenther@suse.de>
13524
13525         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
13526         Verify both BBs contain loop PHI nodes before dispatching to
13527         copy_loop_phi_args.
13528         (graphite_regenerate_ast_isl): Do not recompute dominators,
13529         do not verify three times.  Restructure for clarity.
13530         * graphite-scop-detection.c (same_close_phi_node,
13531         remove_duplicate_close_phi, make_close_phi_nodes_unique,
13532         defined_in_loop_p, canonicalize_loop_closed_ssa,
13533         canonicalize_loop_closed_ssa_form): Simplify, remove excess
13534         checking and SSA rewrite, move to ...
13535         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
13536         (graphite_initialize): Do not pass in ctx, do not reset the
13537         SCEV cache, compute only dominators.
13538         (graphite_transform_loops): Allocate ISL ctx after
13539         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
13540         Maintain post-dominators only around build_scops.
13541         * sese.c (if_region_set_false_region): Make static.  Free
13542         and recompute dominators.
13543         (move_sese_in_condition): Assert we don't get called with
13544         post-dominators computed.
13545         * sese.h (if_region_set_false_region): Remove.
13546
13547 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
13548
13549         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
13550         mode attribute for TARGET_AVX512VL.
13551
13552 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
13553
13554         * config/i386/i386.opt (mprefer-avx256): New option.
13555         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
13556         to flag_opts.
13557         (ix86_preferred_simd_mode): Return 256-bit AVX modes
13558         for TARGET_PREFER_AVX256.
13559         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
13560
13561 2017-09-21  Jeff Law  <law@redhat.com>
13562
13563         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
13564         Fix dump output if the only stack space is for pushed registers.
13565
13566 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13567
13568         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
13569         of insn_cost.
13570
13571 2017-09-21  Martin Sebor  <msebor@redhat.com>
13572
13573         PR c/81882
13574         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
13575         code (in C++) or code that triggers warnings.
13576
13577 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
13578
13579         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
13580
13581 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
13582
13583         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
13584         * sched-rgn.c: Ditto.
13585         * sel-sched-ir.c: Ditto.
13586
13587 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
13588
13589         * toplev.h (set_random_seed): Adjust return type.
13590         * toplev.c (init_local_tick): Move eager initialization of random_seed
13591         to get_random_seed.  Adjust comment.
13592         (init_random_seed): Inline to get_random_seed, delete.
13593         (get_random_seed): Initialize random_seed lazily.
13594         (set_random_seed): Do not return previous value.
13595         (print_switch_value): Do not call get_random_seed.
13596
13597 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
13598
13599         * cgraph.c (delete_function_version): New, broken out from...
13600         (cgraph_node::delete_function_version): ...here.  Rename to
13601         cgraph_node::delete_function_version_by_decl.  Update all uses.
13602         (cgraph_node::remove): Call delete_function_version.
13603
13604 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
13605
13606         PR sanitizer/81715
13607         * tree-inline.c (expand_call_inline): Emit clobber stmts for
13608         VAR_DECLs to which addressable non-volatile parameters are mapped
13609         and for id->retvar after the return value assignment.  Clear
13610         id->retval and id->retbnd after inlining.
13611
13612 2017-09-21  Richard Biener  <rguenther@suse.de>
13613
13614         PR tree-optimization/82276
13615         PR tree-optimization/82244
13616         * tree-vrp.c (build_assert_expr_for): Set
13617         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
13618         has it set.
13619         (remove_range_assertions): Revert earlier change.
13620
13621 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
13622
13623         PR target/71951
13624         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
13625
13626 2017-09-21  Richard Biener  <rguenther@suse.de>
13627
13628         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
13629         Restore valid IL after code generation errors.
13630         * graphite.c (graphite_transform_loops): Diagnose code
13631         generation issues as MSG_MISSED_OPTIMIZATION and continue
13632         with processing SCOPs.
13633
13634 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13635             Alan Hayward  <alan.hayward@arm.com>
13636             David Sherwood  <david.sherwood@arm.com>
13637
13638         * calls.c (compute_argument_addresses): Use simplify_gen_binary
13639         rather than choosing between plus_constant and gen_rtx_<CODE>.
13640         * expr.c (emit_push_insn): Likewise.
13641         (expand_expr_real_2): Likewise.
13642
13643 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13644             Alan Hayward  <alan.hayward@arm.com>
13645             David Sherwood  <david.sherwood@arm.com>
13646
13647         * loop-unroll.c (split_iv): Call copy_rtx on the step.
13648
13649 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13650             Alan Hayward  <alan.hayward@arm.com>
13651             David Sherwood  <david.sherwood@arm.com>
13652
13653         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
13654         calling tree_to_uhwi.
13655
13656 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13657             Alan Hayward  <alan.hayward@arm.com>
13658             David Sherwood  <david.sherwood@arm.com>
13659
13660         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
13661         INTEGER_CST rather than a negative test for ADDR_EXPR.
13662
13663 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13664             Alan Hayward  <alan.hayward@arm.com>
13665             David Sherwood  <david.sherwood@arm.com>
13666
13667         * tree-vrp.c (extract_range_from_binary_expr_1): Check
13668         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
13669
13670 2017-09-21  Richard Biener  <rguenther@suse.de>
13671
13672         PR tree-optimization/71351
13673         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
13674         graphite_create_new_loop_guard): Remove, fold remaining parts
13675         into caller ...
13676         (translate_isl_ast_node_for): ... here and simplify.
13677
13678 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
13679
13680         PR target/82260
13681         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
13682         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
13683         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
13684         alternative always use QI mode, for -Os imov (=R,R) alternative
13685         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
13686         ignore -Os.
13687
13688 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13689             Jeff Law  <law@redhat.com>
13690
13691         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
13692         (allocate_stack_space): New function, partially extracted from
13693         s390_emit_prologue.
13694         (s390_emit_prologue): Track offset to most recent stack probe.
13695         Code to allocate space moved into allocate_stack_space.
13696         Dump actions when no stack is allocated.
13697         (s390_prologue_plus_offset): New function.
13698         (s390_emit_stack_probe): Likewise.
13699
13700 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
13701
13702         * common.opt (Wa, Wl, Wp, g, gz=): Add
13703         RejectNegative.
13704         (gno-column-info): Remove.
13705         (gcolumn-info): Drop RejectNegative.
13706         (gno-): New prefix.
13707         (gno-record-gcc-switches): Remove.
13708         (grecord-gcc-switches): Drop RejectNegative.
13709         (gno-split-dwarf): Remove.
13710         (gsplit-dwarf): Drop RejectNegative.
13711         (gno-strict-dwarf): Remove.
13712         (gstrict-dwarf): Drop RejectNegative.
13713         * config/darwin.opt (gfull, gused): Add RejectNegative.
13714         * dwarf2out.c (gen_producer_string): Drop
13715         gno-record-gcc-switches handler.
13716         * optc-gen.awk: Add g to prefixes with negative forms.
13717         * opts-common.c (remapping_prefix_p): New.
13718         (find_opt): Check it.
13719         (generate_canonical_option): Test g prefix.
13720         (option_map): Add -gno- mapping.
13721         (add_misspelling_candidates): Check remapping_prefix_p.
13722
13723 2017-09-20  Jeff Law  <law@redhat.com>
13724
13725         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
13726         thinko in stack clash protection support.
13727
13728         * explow.c (compute_stack_clash_protection_loop_data): Use
13729         CONST_INT_P instead of explicit test.  Verify object is a
13730         CONST_INT_P before looking at INTVAL.
13731         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
13732         instead of explicit test.
13733
13734 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
13735
13736         PR target/77687
13737         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
13738         address instead of to r1 and r11.
13739
13740 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
13741
13742         * config.gcc: Support "knm".
13743         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
13744         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13745         PROCESSOR_KNM.
13746         * config/i386/i386.c (m_KNM): Define.
13747         (processor_target_table): Add "knm".
13748         (PTA_KNM): Define.
13749         (ix86_option_override_internal): Add "knm".
13750         (ix86_issue_rate): Add PROCESSOR_KNM.
13751         (ix86_adjust_cost): Ditto.
13752         (ia32_multipass_dfa_lookahead): Ditto.
13753         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
13754         (fold_builtin_cpu): Add M_INTEL_KNM.
13755         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
13756         (processor_type): Add PROCESSOR_KNM.
13757         * config/i386/x86-tune.def: Add m_KNM.
13758         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
13759
13760 2017-09-20  Richard Biener  <rguenther@suse.de>
13761
13762         PR tree-optimization/80213
13763         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
13764         are allowed in empty BBs as well.
13765         (canonicalize_loop_closed_ssa): Also look for other complex
13766         edges.
13767         (scop_detection::get_sese): Include the loop-closed PHI block
13768         in loop SESEs.
13769         (scop_detection::merge_sese): Remove code adding extra blocks.
13770         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
13771         (build_scops): Assert the final returned scop is invalid.
13772
13773 2017-09-20  Richard Biener  <rguenther@suse.de>
13774
13775         PR tree-optimization/82264
13776         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
13777         for GIMPLE_CONDs.
13778         (vn_phi_lookup): Likewise.
13779         (vn_phi_insert): Likewise.
13780
13781 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
13782
13783         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
13784         that fits into uhwi or shwi, add DW_AT_const_value regardless
13785         of early_dwarf without going through RTL, using add_AT_unsigned
13786         or add_AT_int.
13787
13788         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
13789         (DEBUG_LTO_ABBREV_SECTION): Likewise.
13790         (DEBUG_LTO_MACINFO_SECTION): Likewise.
13791         (DEBUG_MACRO_SECTION): Likewise.
13792         (DEBUG_LTO_MACRO_SECTION): Likewise.
13793         (DEBUG_STR_DWO_SECTION): Likewise.
13794         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
13795         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
13796         (DEBUG_LTO_DWO_LINE_SECTION): Define.
13797         (DEBUG_LTO_LINE_STR_SECTION): Define.
13798         (init_sections_and_labels): Initialize debug_line_str_section
13799         variable.  Initialize debug_loc_section for -gdwarf-5 to
13800         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
13801
13802 2017-09-20  Richard Biener  <rguenther@suse.de>
13803
13804         * graphite-sese-to-poly.c (extract_affine): Properly handle
13805         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
13806
13807 2017-09-20  Richard Biener  <rguenther@suse.de>
13808
13809         PR tree-optimization/81373
13810         * graphite-scop-detection.c (build_cross_bb_scalars_def):
13811         Force SESE live-out defs to be handled even if they are
13812         scev_analyzable_p.
13813
13814 2017-09-19  Jeff Law  <law@redhat.com>
13815
13816         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
13817         nothing for stack adjustments with REG_STACK_CHECK.
13818         * sched-deps.c (parse_add_or_inc): Reject insns with
13819         REG_STACK_CHECK from dependency breaking.
13820         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
13821         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
13822         * reg-notes.def (STACK_CHECK): New note.
13823
13824         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
13825         (ix86_expand_prologue): Dump stack clash info as needed.
13826         Call ix86_adjust_stack_and_probe_stack_clash as needed.
13827
13828         * function.c (dump_stack_clash_frame_info): New function.
13829         * function.h (dump_stack_clash_frame_info): Prototype.
13830         (enum stack_clash_probes): New enum.
13831
13832         * config/alpha/alpha.c (alpha_expand_prologue): Also check
13833         flag_stack_clash_protection.
13834         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
13835         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
13836         (arm_frame_pointer_required): Likewise.
13837         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
13838         (ia64_expand_prologue): Likewise.
13839         * config/mips/mips.c (mips_expand_prologue): Likewise.
13840         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
13841         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13842         (sparc_flat_expand_prologue): Likewise.
13843         * config/spu/spu.c (spu_expand_prologue): Likewise.
13844
13845         * explow.c: Include "params.h".
13846         (anti_adjust_stack_and_probe_stack_clash): New function.
13847         (get_stack_check_protect): Likewise.
13848         (compute_stack_clash_protection_loop_data): Likewise.
13849         (emit_stack_clash_protection_loop_start): Likewise.
13850         (emit_stack_clash_protection_loop_end): Likewise.
13851         (allocate_dynamic_stack_space): Use get_stack_check_protect.
13852         Use anti_adjust_stack_and_probe_stack_clash.
13853         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
13854         (emit_stack_clash_protection_loop_start): Likewise.
13855         (emit_stack_clash_protection_loop_end): Likewise.
13856         * rtl.h (get_stack_check_protect): Prototype.
13857         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
13858         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
13859         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
13860         Prototype.
13861         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
13862         Add @hook.
13863         * doc/tm.texi: Rebuilt.
13864         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
13865         get_stack_check_protect.
13866         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
13867         * config/arm/arm.c (arm_expand_prologue): Likewise.
13868         (arm_frame_pointer_required): Likewise.
13869         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13870         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13871         * config/mips/mips.c (mips_expand_prologue): Likewise.
13872         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
13873         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13874         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13875         (sparc_flat_expand_prologue): Likewise.
13876
13877         * common.opt (-fstack-clash-protection): New option.
13878         * flag-types.h (enum stack_check_type): Note difference between
13879         -fstack-check= and -fstack-clash-protection.
13880         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
13881         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
13882         * toplev.c (process_options): Issue warnings/errors for cases
13883         not handled with -fstack-clash-protection.
13884         * doc/invoke.texi (-fstack-clash-protection): Document new option.
13885         (-fstack-check): Note additional problem with -fstack-check=generic.
13886         Note that -fstack-check is primarily for Ada and refer users
13887         to -fstack-clash-protection for stack-clash-protection.
13888         Document new params for stack clash protection.
13889
13890 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
13891
13892         * config/i386/i386.c (ix86_split_long_move): Do not handle
13893         address used for LEA in a special way.
13894
13895 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
13896
13897         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
13898
13899 2017-09-19  Martin Sebor  <msebor@redhat.com>
13900
13901         PR c/81854
13902         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
13903         of incompatible types.
13904
13905 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
13906
13907         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13908         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
13909         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13910         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
13911
13912 2017-09-19  Richard Biener  <rguenther@suse.de>
13913
13914         PR tree-optimization/82244
13915         * tree-vrp.c (remove_range_assertions): Do not propagate
13916         a constant to abnormals but replace the assert with a copy.
13917
13918 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
13919
13920         PR rtl-optimization/57878
13921         PR rtl-optimization/68988
13922         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
13923         avoidance test involving non_reload_pseudos.  Move frequency test
13924         below the general fragmentation avoidance test.
13925
13926 2017-09-19  Richard Biener  <rguenther@suse.de>
13927
13928         PR tree-optimization/69728
13929         * graphite-sese-to-poly.c (schedule_error): New global.
13930         (add_loop_schedule): Handle empty domain by failing the
13931         schedule.
13932         (build_original_schedule): Handle schedule_error.
13933
13934 2017-09-19  Richard Biener  <rguenther@suse.de>
13935
13936         * graphite-scop-detection.c (scop_detection::can_represent_loop):
13937         Do not iterate to sibling loops but only to siblings of inner
13938         loops.
13939
13940 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
13941
13942         PR target/81613
13943         * config/m68k/m68k.md (moveq feeding equality comparison): Check
13944         that the registers are different.
13945
13946 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
13947
13948         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
13949         to processor_model and "amdfam17h" to arch_names_table.
13950         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
13951
13952 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
13953
13954         PR c/82234
13955         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
13956
13957 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13958             Alan Hayward  <alan.hayward@arm.com>
13959             David Sherwood  <david.sherwood@arm.com>
13960
13961         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
13962         with a vec_info *.
13963         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
13964         accordingly.
13965         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
13966         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
13967         vect_schedule_slp_instance.
13968         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
13969         Update call to vect_slp_analyze_node_operations.  Simplify return
13970         value.
13971         (vect_slp_analyze_bb_1): Update call accordingly.
13972         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
13973         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
13974         (vect_schedule_slp): Update call accordingly.
13975
13976 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13977             Alan Hayward  <alan.hayward@arm.com>
13978             David Sherwood  <david.sherwood@arm.com>
13979
13980         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
13981         with types that aren't in fact scalar.
13982
13983 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13984
13985         * tree-vect-slp.c (vect_record_max_nunits): New function,
13986         split out from...
13987         (vect_build_slp_tree_1): ...here.
13988         (vect_build_slp_tree_2): Call it for phis too.
13989
13990 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13991
13992         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
13993         to vect_get_vec_def_for_operand when getting the mask operand.
13994
13995 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13996             Alan Hayward  <alan.hayward@arm.com>
13997             David Sherwood  <david.sherwood@arm.com>
13998
13999         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
14000         bitstart.
14001
14002 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14003             Alan Hayward  <alan.hayward@arm.com>
14004             David Sherwood  <david.sherwood@arm.com>
14005
14006         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
14007         calculation for vector booleans.
14008
14009 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14010             Alan Hayward  <alan.hayward@arm.com>
14011             David Sherwood  <david.sherwood@arm.com>
14012
14013         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
14014         split out from...
14015         (vect_transform_stmt): ...here.
14016         (vect_analyze_stmt): Use it instead of calling
14017         vectorizable_live_operation directly.
14018
14019 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
14020
14021         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
14022         non-SIMT targets in acc vector loops.
14023
14024 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
14025
14026         * configure.ac: Add arc and check if assembler supports gdwarf2.
14027         * configure: Regenerate.
14028
14029 2017-09-18  Richard Biener  <rguenther@suse.de>
14030
14031         PR tree-optimization/82220
14032         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
14033         epilogue niters from the min_profitable_iters compute.
14034
14035 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14036
14037         PR target/82145
14038         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
14039         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
14040         (ix86_init_pic_reg): Revert 2017-09-01 changes.
14041
14042 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
14043
14044         PR target/81361
14045         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
14046         switching to a new text section.
14047
14048 2017-09-18  Richard Biener  <rguenther@suse.de>
14049
14050         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
14051         Simplify.
14052         (build_alias_set): Reject aliases with no access function.
14053
14054 2017-09-18  Richard Biener  <rguenther@suse.de>
14055
14056         PR tree-optimization/79622
14057         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
14058         handle PHIs.
14059         (build_cross_bb_scalars_use): Likewise.
14060
14061 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
14062
14063         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
14064
14065 2017-09-18  Alan Modra  <amodra@gmail.com>
14066
14067         PR target/81996
14068         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
14069         stack_pointer_rtx for count 0.  Update comments.  Break up
14070         large rtl expression.
14071
14072 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
14073
14074         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
14075         Increase to 20 bytes.
14076         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
14077         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
14078         or avx version of the stub.
14079
14080 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
14081
14082         PR target/82166
14083         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
14084         compute the minimum stack alignment.  Also update preferred stack
14085         boundary for leaf functions.
14086
14087 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
14088
14089         PR tree-optimization/82228
14090         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
14091         of ncopies.
14092
14093 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14094
14095         * common/config/nds32/nds32-common.c
14096         (nds32_option_optimization_table): Refine formatting.
14097         (nds32_option_optimization_table): Use -fsched-pressure and
14098         -fomit-frame-pointer for specific optimization level.
14099
14100 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14101
14102         * config/nds32/nds32.c: Refine formatting and comments.
14103         * config/nds32/nds32.h: Likewise.
14104         * config/nds32/nds32.md: Likewise.
14105         * config/nds32/nds32-cost.c: Likewise.
14106         * config/nds32/nds32-isr.c: Likewise.
14107         * config/nds32/nds32-md-auxiliary.c: Likewise.
14108         * config/nds32/nds32-multiple.md: Likewise.
14109         * config/nds32/nds32-predicates.c: Likewise.
14110
14111 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
14112             Jakub Jelinek  <jakub@redhat.com>
14113
14114         Add support for -std=c++2a.
14115         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
14116         or -std=gnu+2a.
14117         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
14118
14119 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
14120
14121         PR target/82066
14122         * doc/extend.texi (Common Function Attributes): Add 
14123         references to ARM, AArch64, and S/390 specific attributes.
14124         (Function Specific Option Pragmas): Add AArch64 and S/390
14125         to list of back ends that support the target pragma.
14126
14127 2017-09-15  Nathan Sidwell  <nathan@acm.org>
14128
14129         * doc/standards.texi: Fix C++17 description.  Update URLs for
14130         C++11 & 14.
14131
14132 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14133
14134         * common.opt (Wcast-align=strict): New warning option.
14135         * doc/invoke.texi: Document -Wcast-align=strict. 
14136
14137 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
14138
14139         * cgraph.h (cgraph_thunk_info): Add comments.
14140         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
14141         assert for VIRTUAL_* arguments stricter.
14142
14143 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
14144
14145         PR tree-optimization/71026
14146         * match.pd: Move RDIV patterns from fold-const.c
14147         * fold-const.c (distribute_real_division): Removed.
14148         (fold_binary_loc): Remove calls to distribute_real_divison.
14149
14150 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14151
14152         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
14153         c++1z and gnu++1z as deprecated.  Change other references to
14154         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
14155         Change -Wc++1z-compat to -Wc++17-compat.
14156         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
14157         * dwarf2out.c (highest_c_language): Handle C++17.
14158         (gen_compile_unit_die): Likewise.
14159
14160 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14161
14162         PR rtl-optimization/82192
14163         * combine.c (make_extraction): Don't look through non-paradoxical
14164         SUBREGs or TRUNCATE if pos + len is or might be bigger than
14165         inner's mode.
14166
14167 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14168             Alan Hayward  <alan.hayward@arm.com>
14169             David Sherwood  <david.sherwood@arm.com>
14170
14171         * target.def (function_arg_offset): New hook.
14172         * targhooks.h (default_function_arg_offset): Declare.
14173         * targhooks.c (default_function_arg_offset): New function.
14174         * function.c (locate_and_pad_parm): Use
14175         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
14176         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
14177         (TARGET_FUNCTION_ARG_OFFSET): ...this.
14178         * doc/tm.texi: Regenerate.
14179         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
14180         * config/spu/spu.c (spu_function_arg_offset): New function.
14181         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
14182         * system.h (FUNCTION_ARG_OFFSET): Poison.
14183
14184 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14185             Alan Hayard  <alan.hayward@arm.com>
14186             David Sherwood  <david.sherwood@arm.com>
14187
14188         * target.def (truly_noop_truncation): New hook.
14189         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
14190         than TRULY_NOOP_TRUNCATION.
14191         * hooks.h (hook_bool_uint_uint_true): Declare.
14192         * hooks.c (hook_bool_uint_uint_true): New function.
14193         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
14194         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
14195         * doc/tm.texi: Regenerate.
14196         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
14197         rather than TRULY_NOOP_TRUNCATION in comments.
14198         (simplify_comparison): Likewise.
14199         (record_truncated_value): Likewise.
14200         * expmed.c (extract_bit_field_1): Likewise.
14201         (extract_split_bit_field): Likewise.
14202         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
14203         instead of TRULY_NOOP_TRUNCATION.
14204         * function.c (assign_parm_setup_block): Likewise.
14205         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
14206         * rtlhooks.c: Include target.h.
14207         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
14208         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
14209         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
14210         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
14211         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
14212         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
14213         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
14214         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
14215         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
14216         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
14217         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
14218         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
14219         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
14220         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
14221         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
14222         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
14223         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
14224         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
14225         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
14226         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
14227         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
14228         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
14229         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
14230         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
14231         * config/mips/mips.c (mips_truly_noop_truncation): New function.
14232         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14233         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14234         rather than TRULY_NOOP_TRUNCATION in comments.
14235         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
14236         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
14237         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
14238         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
14239         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
14240         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
14241         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
14242         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
14243         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
14244         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
14245         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
14246         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14247         rather than TRULY_NOOP_TRUNCATION in comments.
14248         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
14249         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
14250         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
14251         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
14252         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
14253         TRULY_NOOP_TRUNCATION condition.
14254         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
14255         (TRULY_NOOP_TRUNCATION): Delete.
14256         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
14257         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
14258         * config/spu/spu.c (spu_truly_noop_truncation): New function.
14259         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14260         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
14261         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
14262         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
14263         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14264         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14265         rather than TRULY_NOOP_TRUNCATION in comments.
14266         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
14267         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
14268         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
14269         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
14270         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
14271         * system.h (TRULY_NOOP_TRUNCATION): Poison.
14272
14273 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
14274
14275         PR target/67591
14276         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
14277         (*cmp_ior): Likewise.
14278         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
14279         (*ior_scc_scc_cmp): Likewise.
14280         (*and_scc_scc): Likewise.
14281         (*and_scc_scc_cmp): Likewise.
14282
14283 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14284             Alan Hayard  <alan.hayward@arm.com>
14285             David Sherwood  <david.sherwood@arm.com>
14286
14287         * target.def (can_change_mode_class): New hook.
14288         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
14289         (hard_regno_nregs): Likewise.
14290         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
14291         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
14292         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
14293         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
14294         (LOAD_EXTEND_OP): Update accordingly.
14295         * doc/tm.texi: Regenerate.
14296         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
14297         CANNOT_CHANGE_MODE_CLASS.
14298         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
14299         (REG_CAN_CHANGE_MODE_P): ...this new macro.
14300         * combine.c (simplify_set): Update accordingly.
14301         * emit-rtl.c (validate_subreg): Likewise.
14302         * recog.c (general_operand): Likewise.
14303         * regcprop.c (mode_change_ok): Likewise.
14304         * reload1.c (choose_reload_regs): Likewise.
14305         (inherit_piecemeal_p): Likewise.
14306         * rtlanal.c (simplify_subreg_regno): Likewise.
14307         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
14308         instead of CANNOT_CHANGE_MODE_CLASS.
14309         (reload_cse_simplify_operands): Likewise.
14310         * reload.c (push_reload): Use targetm.can_change_mode_class
14311         instead of CANNOT_CHANGE_MODE_CLASS.
14312         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
14313         REG_CANNOT_CHANGE_MODE_P.
14314         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14315         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
14316         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14317         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14318         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14319         (arm_can_change_mode_class): New function.
14320         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14321         than CANNOT_CHANGE_MODE_CLASS in comments.
14322         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14323         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
14324         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
14325         (ix86_can_change_mode_class): ...this new function, inverting the
14326         sense of the return value.
14327         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14328         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14329         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14330         (ia64_can_change_mode_class): New function.
14331         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14332         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
14333         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
14334         (m32c_can_change_mode_class): ...this new function, inverting the
14335         sense of the return value.
14336         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14337         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14338         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
14339         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
14340         (mips_can_change_mode_class): ...this new function, inverting the
14341         sense of the return value.
14342         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14343         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14344         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14345         (msp430_can_change_mode_class): New function.
14346         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14347         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
14348         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14349         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14350         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14351         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
14352         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14353         (pa_cannot_change_mode_class): Replace with...
14354         (pa_can_change_mode_class): ...this new function, inverting the
14355         sense of the return value.
14356         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14357         than CANNOT_CHANGE_MODE_CLASS in comments.
14358         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14359         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
14360         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14361         (pdp11_cannot_change_mode_class): Replace with...
14362         (pdp11_can_change_mode_class): ...this new function, inverting the
14363         sense of the return value.
14364         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14365         * config/powerpcspe/powerpcspe-protos.h
14366         (rs6000_cannot_change_mode_class_ptr): Delete.
14367         * config/powerpcspe/powerpcspe.c
14368         (rs6000_cannot_change_mode_class_ptr): Delete.
14369         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14370         (rs6000_option_override_internal): Assign to
14371         targetm.can_change_mode_class instead of
14372         rs6000_cannot_change_mode_class_ptr.
14373         (rs6000_cannot_change_mode_class): Replace with...
14374         (rs6000_can_change_mode_class): ...this new function, inverting the
14375         sense of the return value.
14376         (rs6000_debug_cannot_change_mode_class): Replace with...
14377         (rs6000_debug_can_change_mode_class): ...this new function.
14378         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14379         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
14380         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14381         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14382         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
14383         Delete.
14384         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
14385         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14386         (rs6000_option_override_internal): Assign to
14387         targetm.can_change_mode_class instead of
14388         rs6000_cannot_change_mode_class_ptr.
14389         (rs6000_cannot_change_mode_class): Replace with...
14390         (rs6000_can_change_mode_class): ...this new function, inverting the
14391         sense of the return value.
14392         (rs6000_debug_cannot_change_mode_class): Replace with...
14393         (rs6000_debug_can_change_mode_class): ...this new function.
14394         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14395         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
14396         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
14397         (s390_can_change_mode_class): ...this new function, inverting the
14398         sense of the return value.
14399         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14400         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14401         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
14402         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14403         (sh_cannot_change_mode_class): Replace with...
14404         (sh_can_change_mode_class): ...this new function, inverting the
14405         sense of the return value.
14406         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14407         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14408         (sparc_can_change_mode_class): New function.
14409         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14410         * config/spu/spu.c (spu_can_change_mode_class): New function.
14411         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14412         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14413         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14414         (visium_can_change_mode_class): New function.
14415         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
14416
14417 2017-09-15  Richard Biener  <rguenther@suse.de>
14418
14419         PR tree-optimization/82217
14420         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
14421         but not undefined case.
14422
14423 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14424
14425         PR target/82145
14426         * postreload.c (reload_cse_simplify_operands): Skip
14427         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
14428
14429 2017-09-15  Richard Biener  <rguenther@suse.de>
14430
14431         PR tree-optimization/68823
14432         * graphite-scop-detection.c (build_alias_set): If we have a
14433         possible dependence check whether we can handle them by just
14434         looking at the DRs DR_ACCESS_FNs.
14435         (build_scops): If build_alias_set fails, fail the SCOP.
14436
14437 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14438
14439         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
14440         to support float128 built-in functions that require the ISA 3.0
14441         hardware.
14442         (BU_FLOAT128_3_HW): Likewise.
14443         (SQRTF128): Add support for the IEEE 128-bit square root and fma
14444         built-in functions.
14445         (FMAF128): Likewise.
14446         (FMAQ): Likewise.
14447         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
14448         support for built-in functions that need the ISA 3.0 IEEE 128-bit
14449         floating point instructions.
14450         (rs6000_invalid_builtin): Likewise.
14451         (rs6000_builtin_mask_names): Likewise.
14452         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
14453         (RS6000_BTM_FLOAT128_HW): Likewise.
14454         (RS6000_BTM_COMMON): Likewise.
14455         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
14456         function.
14457         * doc/extend.texi (RS/6000 built-in functions): Document the
14458         IEEE 128-bit floating point square root and fused multiply-add
14459         built-in functions.
14460
14461 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
14462
14463         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
14464         reg (r2) isn't in the set of registers defined in the prologue.
14465
14466 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14467             Alan Hayward  <alan.hayward@arm.com>
14468             David Sherwood  <david.sherwood@arm.com>
14469
14470         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
14471         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
14472         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
14473         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
14474         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
14475         accordingly.
14476         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14477         max_vectorization_factor.
14478         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
14479
14480 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14481             Alan Hayward  <alan.hayward@arm.com>
14482             David Sherwood  <david.sherwood@arm.com>
14483
14484         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
14485         (vect_worthwhile_without_simd_p): Declare.
14486         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
14487         (vectorizable_reduction): Use it.
14488         * tree-vect-stmts.c (vectorizable_shift): Likewise.
14489         (vectorizable_operation): Likewise.
14490
14491 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14492             Alan Hayward  <alan.hayward@arm.com>
14493             David Sherwood  <david.sherwood@arm.com>
14494
14495         * tree-vectorizer.h (vect_get_num_copies): New function.
14496         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
14497         * tree-vect-loop.c (vectorizable_reduction): Likewise.
14498         (vectorizable_induction): Likewise.
14499         (vectorizable_live_operation): Likewise.
14500         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
14501         (vectorizable_bswap): Likewise.
14502         (vectorizable_call): Likewise.
14503         (vectorizable_conversion): Likewise.
14504         (vectorizable_assignment): Likewise.
14505         (vectorizable_shift): Likewise.
14506         (vectorizable_operation): Likewise.
14507         (vectorizable_store): Likewise.
14508         (vectorizable_load): Likewise.
14509         (vectorizable_condition): Likewise.
14510         (vectorizable_comparison): Likewise.
14511         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
14512
14513 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14514             Alan Hayward  <alan.hayward@arm.com>
14515             David Sherwood  <david.sherwood@arm.com>
14516
14517         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
14518         of vect_init_vector.
14519
14520 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14521             Alan Hayward  <alan.hayward@arm.com>
14522             David Sherwood  <david.sherwood@arm.com>
14523
14524         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
14525         an inline wrapper that provides a location.
14526         (gimple_build_vector): Likewise.
14527         * gimple-fold.c (gimple_build_vector_from_val): New function.
14528         (gimple_build_vector): Likewise.
14529         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
14530         functions to build the initial value.  Always return a gimple value.
14531         (get_initial_defs_for_reduction): Likewise.  Only compute
14532         neutral_vec once.
14533         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
14534         vect_init_vector on the results from get_initial_def(s)_for_reduction.
14535         (vectorizable_induction): Use gimple_build_vector rather than
14536         vect_init_vector.
14537
14538 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14539             Alan Hayward  <alan.hayward@arm.com>
14540             David Sherwood  <david.sherwood@arm.com>
14541
14542         * target.h (vec_perm_indices): New typedef.
14543         (auto_vec_perm_indices): Likewise.
14544         * optabs-query.h: Include target.h
14545         (can_vec_perm_p): Take a vec_perm_indices *.
14546         * optabs-query.c (can_vec_perm_p): Likewise.
14547         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
14548         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14549         * tree-vect-generic.c (lower_vec_perm): Likewise.
14550         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
14551         (vect_grouped_load_supported): Likewise.
14552         (vect_shift_permute_load_chain): Likewise.
14553         (vect_permute_store_chain): Use auto_vec_perm_indices.
14554         (vect_permute_load_chain): Likewise.
14555         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
14556         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
14557         Update uses of can_vec_perm_p.
14558         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
14559         mode with a number of elements.  Take a vec_perm_indices *.
14560         (vect_create_epilog_for_reduction): Update accordingly.
14561         Use auto_vec_perm_indices.
14562         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
14563         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
14564         (vect_transform_slp_perm_load): Likewise.
14565         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
14566         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
14567         (vect_gen_perm_mask_checked): Likewise.
14568         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
14569         (vect_gen_perm_mask_checked): Likewise.
14570         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
14571         (vectorizable_store): Likewise.
14572         (vectorizable_load): Likewise.
14573         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
14574         (vectorizable_bswap): Likewise.
14575
14576 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14577             Alan Hayward  <alan.hayward@arm.com>
14578             David Sherwood  <david.sherwood@arm.com>
14579
14580         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
14581         * tree.c (build_vector): Likewise.
14582         (build_vector_from_ctor): Update accordingly.
14583         (build_vector_from_val): Likewise.
14584         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
14585         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14586         * tree-vect-generic.c (add_rshift): Likewise.
14587         (expand_vector_divmod): Likewise.
14588         (optimize_vector_constructor): Likewise.
14589         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14590         (vect_transform_slp_perm_load): Likewise.
14591         (vect_schedule_slp_instance): Likewise.
14592         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
14593         (vectorizable_call): Likewise.
14594         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
14595         * expmed.c (make_tree): Likewise.
14596         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
14597         a vector passed to build_vector.
14598         (fold_convert_const): Likewise.
14599         (exact_inverse): Likewise.
14600         (fold_ternary_loc): Likewise.
14601         (fold_relational_const): Likewise.
14602         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
14603         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
14604         (const_unop): Likewise.  Store the reduction accumulator in a
14605         variable rather than an array.
14606         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
14607         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
14608         the new vector, rather than constructing it after the input arrays.
14609         (native_interpret_vector): Use auto_vec<tree> when building
14610         a vector passed to build_vector.  Add elements in order.
14611         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
14612         auto_vec<tree> when building a vector passed to build_vector.
14613         (vect_create_epilog_for_reduction): Likewise.
14614         (vectorizable_induction): Likewise.
14615         (get_initial_def_for_reduction): Likewise.  Fix indentation of
14616         case statements.
14617         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
14618         to a vec<tree> *.
14619         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
14620         passed to build_vector.
14621
14622 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14623             Alan Hayward  <alan.hayward@arm.com>
14624             David Sherwood  <david.sherwood@arm.com>
14625
14626         * tree-core.h (tree_base::u): Add an "nelts" field.
14627         (tree_vector): Use VECTOR_CST_NELTS as the length.
14628         * tree.c (tree_size): Likewise.
14629         (make_vector): Initialize VECTOR_CST_NELTS.
14630         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
14631         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
14632         TYPE_VECTOR_SUBPARTS.
14633         * expr.c (const_vector_mask_from_tree): Consistently use "units"
14634         as the number of units, setting it from VECTOR_CST_NELTS.
14635         (const_vector_from_tree): Likewise.
14636         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
14637         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
14638         (fold_negate_expr_1): Likewise.
14639         (fold_convert_const): Likewise.
14640         (const_binop): Likewise.  Differentiate the number of output and
14641         input elements.
14642         (const_unop): Likewise.
14643         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
14644         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
14645         in cases that did the opposite.
14646
14647 2017-09-14  Richard Biener  <rguenther@suse.de>
14648
14649         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
14650         to VN_TOP.
14651
14652 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14653
14654         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
14655
14656 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
14657
14658         PR target/81325
14659         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
14660         if and where to split a bb, except for splitting before debug insn
14661         sequences followed by non-label real insn.  Delete debug insns
14662         in between basic blocks.
14663
14664         * combine.c (make_compound_operation_int): Formatting fixes.
14665
14666         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
14667         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14668         * config/netbsd.h (LINK_EH_SPEC): Likewise.
14669         * config/sol2.h (LINK_EH_SPEC): Likewise.
14670         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14671         * config/s390/linux.h (LINK_SPEC): Likewise.
14672         * config/freebsd.h (LINK_EH_SPEC): Likewise.
14673         * config/openbsd.h (LINK_EH_SPEC): Likewise.
14674         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14675         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
14676         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
14677         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14678         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
14679         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
14680
14681 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
14682
14683         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
14684         support.
14685         (ENDFILE_LINUX_SPEC): Likewise.
14686         (LINK_EH_SPEC): Likewise.
14687         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
14688         (LINK_OS_LINUX_SPEC32): Likewise.
14689         (LINK_OS_LINUX_SPEC64): Likewise.
14690         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
14691         (LINK_OS_LINUX_SPEC): Likewise.
14692
14693 2017-09-13  Martin Liska  <mliska@suse.cz>
14694
14695         PR middle-end/82154
14696         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
14697         CASE_HIGH is NULL_TREE.
14698
14699 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
14700             Alan Hayward  <alan.hayward@arm.com>
14701             David Sherwood  <david.sherwood@arm.com>
14702
14703         * target.def (secondary_memory_needed): New hook.
14704         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
14705         instead of SECONDARY_MEMORY_NEEDED.
14706         (secondary_memory_needed_mode): Likewise.
14707         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
14708         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
14709         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
14710         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
14711         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
14712         * doc/tm.texi: Regenerate.
14713         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
14714         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
14715         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14716         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
14717         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
14718         * config/i386/i386.c (inline_secondary_memory_needed): Put the
14719         mode argument first and change the reg_class arguments to reg_class_t.
14720         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
14721         Make static.  Update the call to inline_secondary_memory_needed.
14722         (ix86_register_move_cost): Update the call to
14723         inline_secondary_memory_needed.
14724         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14725         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
14726         definition.
14727         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
14728         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14729         in comment.
14730         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
14731         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
14732         * config/mips/mips.c (mips_secondary_memory_needed): Make static
14733         and match hook interface.  Add comment from mips.h.
14734         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14735         * config/mmix/mmix.md (truncdfsf2): Refer to
14736         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14737         in comment.
14738         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
14739         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
14740         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14741         (pa_secondary_memory_needed): New function.
14742         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
14743         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
14744         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14745         (pdp11_secondary_memory_needed): Make static and match hook interface.
14746         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
14747         * config/powerpcspe/powerpcspe-protos.h
14748         (rs6000_secondary_memory_needed_ptr): Delete.
14749         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
14750         Delete.
14751         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14752         (rs6000_option_override_internal): Assign to
14753         targetm.secondary_memory_needed rather than
14754         rs6000_secondary_memory_needed_ptr.
14755         (rs6000_secondary_memory_needed): Match hook interface.
14756         (rs6000_debug_secondary_memory_needed): Likewise.
14757         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
14758         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
14759         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
14760         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14761         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
14762         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
14763         Delete.
14764         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
14765         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14766         (rs6000_option_override_internal): Assign to
14767         targetm.secondary_memory_needed rather than
14768         rs6000_secondary_memory_needed_ptr.
14769         (rs6000_secondary_memory_needed): Match hook interface.
14770         (rs6000_debug_secondary_memory_needed): Likewise.
14771         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
14772         * config/s390/s390.c (s390_secondary_memory_needed): New function.
14773         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14774         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
14775         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14776         (sparc_secondary_memory_needed): New function.
14777         * lra-constraints.c (check_and_process_move): Refer to
14778         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14779         in comment.
14780         (curr_insn_transform): Likewise.
14781         (process_alt_operands): Use targetm.secondary_memory_needed
14782         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14783         (check_secondary_memory_needed_p): Likewise.
14784         (choose_split_class): Likewise.
14785         * reload.c: Unconditionally include code that was previously
14786         conditional on SECONDARY_MEMORY_NEEDED.
14787         (push_secondary_reload): Use targetm.secondary_memory_needed
14788         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14789         (push_reload): Likewise.
14790         * reload1.c: Unconditionally include code that was previously
14791         conditional on SECONDARY_MEMORY_NEEDED.
14792         (choose_reload_regs): Use targetm.secondary_memory_needed
14793         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14794         (gen_reload): Likewise.
14795         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
14796
14797 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
14798             Alan Hayward  <alan.hayward@arm.com>
14799             David Sherwood  <david.sherwood@arm.com>
14800
14801         * target.def (secondary_memory_needed_mode): New hook:
14802         * targhooks.c (default_secondary_memory_needed_mode): Declare.
14803         * targhooks.h (default_secondary_memory_needed_mode): New function.
14804         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
14805         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
14806         * doc/tm.texi: Regenerate.
14807         * lra-constraints.c (check_and_process_move): Use
14808         targetm.secondary_memory_needed_mode instead of
14809         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
14810         (curr_insn_transform): Likewise.
14811         * reload.c (get_secondary_mem): Likewise.
14812         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14813         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
14814         function.
14815         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14816         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14817         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
14818         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14819         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
14820         Delete.
14821         * config/powerpcspe/powerpcspe-protos.h
14822         (rs6000_secondary_memory_needed_mode): Delete.
14823         * config/powerpcspe/powerpcspe.c
14824         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14825         (rs6000_secondary_memory_needed_mode): Make static.
14826         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14827         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
14828         Delete.
14829         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
14830         Redefine.
14831         (rs6000_secondary_memory_needed_mode): Make static.
14832         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14833         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
14834         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14835         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14836         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
14837         Redefine.
14838         (sparc_secondary_memory_needed_mode): New function.
14839         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
14840
14841 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
14842
14843         * config/aarch64/constraints.md (Umq): New constraint.
14844         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
14845         Change to use Umq.
14846         (mov<mode>): Update condition.
14847
14848 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14849
14850         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
14851         when bitposition is the same.
14852
14853 2017-09-13  Richard Biener  <rguenther@suse.de>
14854
14855         * dwarf2out.c (output_die_symbol): Remove.
14856         (output_die): Do not output a DIEs symbol.
14857
14858 2017-09-13  Richard Biener  <rguenther@suse.de>
14859
14860         PR middle-end/82128
14861         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
14862         default-def to avoid breaking iterator update with the weird
14863         interaction with cgraph_update_edges_for_call_stmt_node.
14864
14865 2017-09-13  Richard Biener  <rguenther@suse.de>
14866
14867         * tree-cfg.c (verify_gimple_assign_binary): Add verification
14868         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
14869         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
14870         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
14871
14872 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
14873
14874         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
14875         Disable pc relative literal load irrespective of
14876         TARGET_FIX_ERR_A53_84341 for default.
14877
14878 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
14879
14880         * config/sparc/sparc.c (output_return): Output the source location of
14881         the insn in the delay slot, if any.
14882         (output_sibcall): Likewise.
14883
14884 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
14885
14886         PR driver/81498
14887         * common.opt (-static-pie): New alias.
14888         (shared): Negate static-pie.
14889         (-no-pie): Update help text.
14890         (-pie): Likewise.
14891         (static-pie): New option.
14892         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
14893         -static-pie support.
14894         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
14895         (LINK_EH_SPEC): Likewise.
14896         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14897         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
14898         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
14899         * gcc.c (LINK_COMMAND_SPEC): Likewise.
14900         (init_gcc_specs): Likewise.
14901         (init_spec): Likewise.
14902         (display_help): Update help message for -pie.
14903         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
14904         -static-pie.
14905
14906 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
14907
14908         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
14909         (movdi_aarch64): Likewise.
14910         (movti_aarch64): Likewise.
14911
14912 2017-09-12 Simon Wright <simon@pushface.org>
14913
14914         PR target/80204
14915         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
14916         calculation of the minor version, always output as 0.
14917
14918 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
14919
14920         PR target/82112
14921         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
14922         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
14923         on it early, rather than manual conversion late.  For
14924         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
14925         instead of performing manual conversion.
14926
14927 2017-09-12  Carl Love  <cel@us.ibm.com>
14928
14929         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
14930         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
14931         vmulouw, vmulosw.
14932         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
14933         VMULOSW): Add definitions.
14934         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14935         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
14936         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
14937         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
14938         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
14939
14940 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
14941
14942         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
14943         types correctly.
14944         (movti_aarch64): Likewise.
14945         (movdf_aarch64): Likewise.
14946         (movtf_aarch64): Likewise.
14947         (load_pairdi): Likewise.
14948         (store_pairdi): Likewise.
14949         (load_pairdf): Likewise.
14950         (store_pairdf): Likewise.
14951         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
14952         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
14953         (ldr_got_small_<mode>): Likewise.
14954         (ldr_got_small_28k_<mode>): Likewise.
14955         (ldr_got_tiny): Likewise.
14956         * config/aarch64/iterators.md (ldst_sz): New.
14957         (ldpstp_sz): Likewise.
14958         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
14959         to store_16.
14960         (thunderx_load): Split load_8 to load_16.
14961         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
14962         load_8 to load_16.
14963         (thunderx2t99_storepair_basic): Split store_8 to store_16.
14964         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
14965         (xgene1_store_pair): Split store_8 to store_16.
14966         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
14967         (falkor_st_0_st_sd): Split store_8 to store_16.
14968
14969 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
14970
14971         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
14972         and store1/2/3/4 to store_4/8/12/16.
14973         * config/aarch64/aarch64.md: Update for rename.
14974         * config/arm/arm.md: Likewise.: Likewise.
14975         * config/arm/arm.c: Likewise.
14976         * config/arm/thumb1.md: Likewise.
14977         * config/arm/thumb2.md: Likewise.
14978         * config/arm/vfp.md: Likewise.
14979         * config/arm/arm-generic.md: Likewise.
14980         * config/arm/arm1020e.md: Likewise.
14981         * config/arm/arm1026ejs.md: Likewise.
14982         * config/arm/arm1136jfs.md: Likewise.
14983         * config/arm/arm926ejs.md: Likewise.
14984         * config/arm/cortex-a15.md: Likewise.
14985         * config/arm/cortex-a17.md: Likewise.
14986         * config/arm/cortex-a5.md: Likewise.
14987         * config/arm/cortex-a53.md: Likewise.
14988         * config/arm/cortex-a57.md: Likewise.
14989         * config/arm/cortex-a7.md: Likewise.
14990         * config/arm/cortex-a8.md: Likewise.
14991         * config/arm/cortex-a9.md: Likewise.
14992         * config/arm/cortex-m4.md: Likewise.
14993         * config/arm/cortex-m7.md: Likewise.
14994         * config/arm/cortex-r4.md: Likewise.
14995         * config/arm/exynos-m1.md: Likewise.
14996         * config/arm/fa526.md: Likewise.
14997         * config/arm/fa606te.md: Likewise.
14998         * config/arm/fa626te.md: Likewise.
14999         * config/arm/fa726te.md: Likewise.
15000         * config/arm/fmp626.md: Likewise.
15001         * config/arm/iwmmxt.md: Likewise.
15002         * config/arm/ldmstm.md: Likewise.
15003         * config/arm/marvell-pj4.md: Likewise.
15004         * config/arm/xgene1.md: Likewise.
15005         * config/aarch64/thunderx.md: Likewise.
15006         * config/aarch64/thunderx2t99.md: Likewise.
15007         * config/aarch64/falkor.md: Likewise.
15008
15009 2017-09-12  Martin Liska  <mliska@suse.cz>
15010
15011         * attribs.c (private_lookup_attribute): New function.
15012         * attribs.h (private_lookup_attribute): Declared here.
15013         (lookup_attribute): Called from this place.
15014
15015 2017-09-12  Richard Biener  <rguenther@suse.de>
15016
15017         PR tree-optimization/82157
15018         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
15019         stmts with side-effects.
15020
15021 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15022             Alan Hayward  <alan.hayward@arm.com>
15023             David Sherwood <david.sherwood@arm.com>
15024
15025         * target.def (hard_regno_nregs): New hook.
15026         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
15027         * targhooks.h (default_hard_regno_nregs): Declare.
15028         * targhooks.c (default_hard_regno_nregs): New function.
15029         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
15030         (TARGET_HARD_REGNO_NREGS): ...this hook.
15031         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
15032         (CLASS_MAX_NREGS): Likewise.
15033         * doc/tm.texi: Regenerate.
15034         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
15035         instead of HARD_REGNO_NREGS.
15036         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
15037         HARD_REGNO_NREGS in the comment.
15038         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
15039         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
15040         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
15041         Return an unsigned int.
15042         (TARGET_HARD_REGNO_NREGS): Redefine.
15043         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
15044         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
15045         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15046         (arc_hard_regno_nregs): New function.
15047         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
15048         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
15049         (arm_hard_regno_nregs): New function.
15050         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
15051         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
15052         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
15053         (TARGET_HARD_REGNO_NREGS): Redefine.
15054         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
15055         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
15056         (HARD_REGNO_NREGS): Delete.
15057         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
15058         (cr16_hard_regno_nregs): New function.
15059         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
15060         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
15061         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
15062         (cris_hard_regno_nregs): New function.
15063         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
15064         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
15065         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15066         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
15067         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
15068         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
15069         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
15070         (frv_hard_regno_nregs): Make static.  Take and return an
15071         unsigned int.
15072         (frv_class_max_nregs): Remove outdated copy of documentation.
15073         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
15074         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
15075         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
15076         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
15077         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
15078         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
15079         (TARGET_HARD_REGNO_NREGS): Redefine.
15080         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
15081         (CLASS_MAX_NREGS): Update comment.
15082         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
15083         (ia64_hard_regno_nregs): New function.
15084         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
15085         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
15086         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
15087         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
15088         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
15089         an unsigned int.
15090         (m32c_hard_regno_nregs): Likewise.  Make static.
15091         (TARGET_HARD_REGNO_NREGS): Redefine.
15092         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
15093         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
15094         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
15095         (m68k_hard_regno_nregs): New function.
15096         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
15097         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
15098         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
15099         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
15100         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
15101         Take and return an unsigned int.
15102         (TARGET_HARD_REGNO_NREGS): Redefine.
15103         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
15104         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15105         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
15106         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
15107         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
15108         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
15109         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
15110         (msp430_hard_regno_nregs): Make static.  Take and return an
15111         unsigned int.
15112         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
15113         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
15114         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
15115         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
15116         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
15117         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
15118         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
15119         (TARGET_HARD_REGNO_NREGS): Redefine.
15120         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
15121         (PA_HARD_REGNO_NREGS): ...this.
15122         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
15123         (PA_HARD_REGNO_NREGS): ...this.
15124         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15125         (pa_hard_regno_nregs): New function.
15126         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
15127         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
15128         (pdp11_hard_regno_nregs): New function.
15129         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
15130         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
15131         (rs6000_hard_regno_nregs_hook): New function.
15132         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
15133         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
15134         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
15135         Take and return an unsigned int.  Move earlier in file.
15136         (TARGET_HARD_REGNO_NREGS): Redefine.
15137         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
15138         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
15139         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
15140         (rl78_hard_regno_nregs): Make static.  Take and return an
15141         unsigned int.
15142         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
15143         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
15144         (rs6000_hard_regno_nregs_hook): New function.
15145         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
15146         * config/rx/rx.c (rx_hard_regno_nregs): New function.
15147         (TARGET_HARD_REGNO_NREGS): Redefine.
15148         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
15149         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
15150         instead of HARD_REGNO_NREGS.
15151         (s390_hard_regno_nregs): New function.
15152         (s390_hard_regno_mode_ok): Add comment from s390.h.
15153         (TARGET_HARD_REGNO_NREGS): Redefine.
15154         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
15155         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
15156         (sh_hard_regno_nregs): New function.
15157         (sh_pass_in_reg_p): Use it.
15158         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
15159         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15160         (sparc_hard_regno_nregs): New function.
15161         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
15162         * config/spu/spu.c (spu_hard_regno_nregs): New function.
15163         (spu_function_arg_advance): Use it, supplying a valid register number.
15164         (TARGET_HARD_REGNO_NREGS): Redefine.
15165         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
15166         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
15167         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
15168         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
15169         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
15170         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
15171         (CLASS_MAX_NREGS): Remove copy of old documentation.
15172         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
15173         (visium_hard_regno_nregs): New function.
15174         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
15175         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
15176         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15177         xtensa_hard_regno_nregs): New function.
15178         * system.h (HARD_REGNO_NREGS): Poison.
15179
15180 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15181
15182         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
15183         hard_regno_nregs instead of HARD_REGNO_NREGS.
15184         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15185         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
15186         (c6x_expand_epilogue): Likewise.
15187         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15188         (frv_read_iacc_argument): Likewise.
15189         * config/sh/sh.c: Include regs.h.
15190         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15191         (regs_used): Likewise.
15192         (output_stack_adjust): Likewise.
15193         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
15194         * expmed.c: Include regs.h.
15195         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15196         * ree.c: Include regs.h.
15197         (combine_reaching_defs): Use hard_regno_nregs instead of
15198         HARD_REGNO_NREGS.
15199         (add_removable_extension): Likewise.
15200
15201 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15202
15203         * regs.h (hard_regno_nregs): Turn into a function.
15204         (end_hard_regno): Update accordingly.
15205         * caller-save.c (setup_save_areas): Likewise.
15206         (save_call_clobbered_regs): Likewise.
15207         (replace_reg_with_saved_mem): Likewise.
15208         (insert_restore): Likewise.
15209         (insert_save): Likewise.
15210         * combine.c (can_change_dest_mode): Likewise.
15211         (move_deaths): Likewise.
15212         (distribute_notes): Likewise.
15213         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
15214         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
15215         (rs6000_split_multireg_move): Likewise.
15216         (rs6000_register_move_cost): Likewise.
15217         (rs6000_memory_move_cost): Likewise.
15218         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
15219         (rs6000_split_multireg_move): Likewise.
15220         (rs6000_register_move_cost): Likewise.
15221         (rs6000_memory_move_cost): Likewise.
15222         * cselib.c (cselib_reset_table): Likewise.
15223         (cselib_lookup_1): Likewise.
15224         * emit-rtl.c (set_mode_and_regno): Likewise.
15225         * function.c (aggregate_value_p): Likewise.
15226         * ira-color.c (setup_profitable_hard_regs): Likewise.
15227         (check_hard_reg_p): Likewise.
15228         (calculate_saved_nregs): Likewise.
15229         (assign_hard_reg): Likewise.
15230         (improve_allocation): Likewise.
15231         (calculate_spill_cost): Likewise.
15232         * ira-emit.c (modify_move_list): Likewise.
15233         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
15234         (ira_hard_reg_in_set_p): Likewise.
15235         * ira.c (setup_reg_mode_hard_regset): Likewise.
15236         (clarify_prohibited_class_mode_regs): Likewise.
15237         (check_allocation): Likewise.
15238         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15239         (lra_setup_reg_renumber): Likewise.
15240         (setup_try_hard_regno_pseudos): Likewise.
15241         (spill_for): Likewise.
15242         (assign_hard_regno): Likewise.
15243         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
15244         * lra-constraints.c (in_class_p): Likewise.
15245         (lra_constraint_offset): Likewise.
15246         (simplify_operand_subreg): Likewise.
15247         (lra_constraints): Likewise.
15248         (split_reg): Likewise.
15249         (split_if_necessary): Likewise.
15250         (invariant_p): Likewise.
15251         (inherit_in_ebb): Likewise.
15252         * lra-lives.c (process_bb_lives): Likewise.
15253         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
15254         (get_hard_regs): Likewise.
15255         (do_remat): Likewise.
15256         * lra-spills.c (assign_spill_hard_regs): Likewise.
15257         * mode-switching.c (create_pre_exit): Likewise.
15258         * postreload.c (reload_combine_recognize_pattern): Likewise.
15259         * recog.c (peep2_find_free_register): Likewise.
15260         * regcprop.c (kill_value_regno): Likewise.
15261         (set_value_regno): Likewise.
15262         (copy_value): Likewise.
15263         (maybe_mode_change): Likewise.
15264         (find_oldest_value_reg): Likewise.
15265         (copyprop_hardreg_forward_1): Likewise.
15266         * regrename.c (check_new_reg_p): Likewise.
15267         (regrename_do_replace): Likewise.
15268         * reload.c (push_reload): Likewise.
15269         (combine_reloads): Likewise.
15270         (find_dummy_reload): Likewise.
15271         (operands_match_p): Likewise.
15272         (find_reloads): Likewise.
15273         (find_equiv_reg): Likewise.
15274         (reload_adjust_reg_for_mode): Likewise.
15275         * reload1.c (count_pseudo): Likewise.
15276         (count_spilled_pseudo): Likewise.
15277         (find_reg): Likewise.
15278         (clear_reload_reg_in_use): Likewise.
15279         (free_for_value_p): Likewise.
15280         (allocate_reload_reg): Likewise.
15281         (choose_reload_regs): Likewise.
15282         (reload_adjust_reg_for_temp): Likewise.
15283         (emit_reload_insns): Likewise.
15284         (delete_output_reload): Likewise.
15285         * rtlanal.c (subreg_get_info): Likewise.
15286         * sched-deps.c (sched_analyze_reg): Likewise.
15287         * sel-sched.c (init_regs_for_mode): Likewise.
15288         (mark_unavailable_hard_regs): Likewise.
15289         (choose_best_reg_1): Likewise.
15290         (verify_target_availability): Likewise.
15291         * valtrack.c (dead_debug_insert_temp): Likewise.
15292         * var-tracking.c (track_loc_p): Likewise.
15293         (emit_note_insn_var_location): Likewise.
15294         * varasm.c (make_decl_rtl): Likewise.
15295         * reginfo.c (choose_hard_reg_mode): Likewise.
15296         (init_reg_modes_target): Refer directly to
15297         this_target_regs->x_hard_regno_nregs.
15298
15299 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15300
15301         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
15302         instead of hard_regno_nregs.
15303
15304 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15305
15306         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
15307         end_hard_regno instead of hard_regno_nregs.
15308         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
15309         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
15310         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
15311         * ira-color.c (improve_allocation): Likewise.
15312         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15313         * lra-lives.c (mark_regno_live): Likewise.
15314         (mark_regno_dead): Likewise.
15315         * lra-remat.c (operand_to_remat): Likewise.
15316         * lra.c (collect_non_operand_hard_regs): Likewise.
15317         * postreload.c (reload_combine_note_store): Likewise.
15318         (move2add_valid_value_p): Likewise.
15319         * reload.c (regno_clobbered_p): Likewise.
15320
15321 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15322
15323         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
15324         hard_regno_nregs.
15325         * config/v850/v850.c (v850_reorg): Likewise.
15326         * reload.c (refers_to_regno_for_reload_p): Likewise.
15327         (find_equiv_reg): Likewise.
15328         * reload1.c (reload_reg_reaches_end_p): Likewise.
15329
15330 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15331
15332         * caller-save.c (add_used_regs): Use REG_NREGS instead of
15333         hard_regno_nregs.
15334         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
15335         * config/arm/arm.c (output_move_neon): Likewise.
15336         (arm_attr_length_move_neon): Likewise.
15337         (neon_split_vcombine): Likewise.
15338         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
15339         (c6x_mark_reg_written): Likewise.
15340         (c6x_dwarf_register_span): Likewise.
15341         * config/i386/i386.c (ix86_save_reg): Likewise.
15342         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
15343         (rws_access_reg): Likewise.
15344         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15345         * mode-switching.c (create_pre_exit): Likewise.
15346         * ree.c (combine_reaching_defs): Likewise.
15347         (add_removable_extension): Likewise.
15348         * regcprop.c (find_oldest_value_reg): Likewise.
15349         (copyprop_hardreg_forward_1): Likewise.
15350         * reload.c (reload_inner_reg_of_subreg): Likewise.
15351         (push_reload): Likewise.
15352         (combine_reloads): Likewise.
15353         (find_dummy_reload): Likewise.
15354         (reload_adjust_reg_for_mode): Likewise.
15355         * reload1.c (find_reload_regs): Likewise.
15356         (forget_old_reloads_1): Likewise.
15357         (reload_reg_free_for_value_p): Likewise.
15358         (reload_adjust_reg_for_temp): Likewise.
15359         (emit_reload_insns): Likewise.
15360         (delete_output_reload): Likewise.
15361         * sel-sched.c (choose_best_reg_1): Likewise.
15362         (choose_best_pseudo_reg): Likewise.
15363
15364 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15365             Alan Hayward  <alan.hayward@arm.com>
15366             David Sherwood <david.sherwood@arm.com>
15367
15368         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
15369         * target.def (slow_unaligned_access): New hook.
15370         * targhooks.h (default_slow_unaligned_access): Declare.
15371         * targhooks.c (default_slow_unaligned_access): New function.
15372         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
15373         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
15374         * doc/tm.texi: Regenerate.
15375         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
15376         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
15377         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
15378         definition.
15379         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
15380         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
15381         Redefine.
15382         (rs6000_slow_unaligned_access): New function.
15383         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15384         (expand_block_compare): Likewise.
15385         (expand_strn_compare): Likewise.
15386         (rs6000_rtx_costs): Likewise.
15387         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
15388         (riscv_slow_unaligned_access): Likewise.
15389         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
15390         (riscv_slow_unaligned_access_p): ...this and make static.
15391         (riscv_option_override): Update accordingly.
15392         (riscv_slow_unaligned_access): New function.
15393         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15394         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
15395         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15396         (rs6000_slow_unaligned_access): New function.
15397         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15398         (rs6000_rtx_costs): Likewise.
15399         * config/rs6000/rs6000-string.c (expand_block_compare)
15400         (expand_strn_compare): Use targetm.slow_unaligned_access instead
15401         of SLOW_UNALIGNED_ACCESS.
15402         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
15403         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
15404         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
15405         of SLOW_UNALIGNED_ACCESS.
15406         * expmed.c (simple_mem_bitfield_p): Likewise.
15407         * expr.c (alignment_for_piecewise_move): Likewise.
15408         (emit_group_load_1): Likewise.
15409         (emit_group_store): Likewise.
15410         (copy_blkmode_from_reg): Likewise.
15411         (emit_push_insn): Likewise.
15412         (expand_assignment): Likewise.
15413         (store_field): Likewise.
15414         (expand_expr_real_1): Likewise.
15415         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
15416         * lra-constraints.c (simplify_operand_subreg): Likewise.
15417         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
15418         * gimple-ssa-store-merging.c: Likewise in block comment at start
15419         of file.
15420         * tree-ssa-strlen.c: Include target.h.
15421         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
15422         of SLOW_UNALIGNED_ACCESS.
15423         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
15424
15425 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15426
15427         PR rtl-optimization/82185
15428         * expmed.c (emit_store_flag_int): Only test tem if it has been
15429         initialized.
15430
15431 2017-09-12  Richard Biener  <rguenther@suse.de>
15432
15433         PR middle-end/82149
15434         * match.pd ((FTYPE) N CMP CST): Fix typo.
15435
15436 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
15437
15438         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
15439         attribute.
15440         (mips_near_type_p): Add 'short_call' attribute as a synonym
15441         for 'near'.
15442         * doc/extend.texi (short_call): Document new function attribute.
15443
15444 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15445
15446         PR target/82112
15447         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
15448         assertion check that in the condition.
15449         (get_atomic_generic_size): Likewise.  Before testing if parameter
15450         has pointer type, if it has array type, call for C++
15451         default_conversion to perform array-to-pointer conversion.
15452
15453 2017-09-12  Richard Biener  <rguenther@suse.de>
15454
15455         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
15456         for operations we cannot scalarize.
15457
15458 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
15459
15460         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
15461         vectors heap vectors.  Clean up comments.
15462         Make visited_bbs a reference.
15463         (profitable_jump_thread_path): Make GC
15464         vectors heap vectors.  Clean up comments.
15465         Misc cleanups.
15466         (convert_and_register_jump_thread_path): Make GC vectors heap
15467         vectors.
15468         (check_subpath_and_update_thread_path): Same.  Clean up comments.
15469         Make visited_bbs a reference.
15470         (handle_phi): Abstract common code to to
15471         register_jump_thread_path_if_profitable.
15472         Rename VAR_BB to DEF_BB.
15473         Update comments.
15474         Make GC vectors heap vectors.
15475         Make visited_bbs a reference.
15476         (handle_assignment): Same.
15477         (register_jump_thread_path_if_profitable): New.
15478         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
15479         DEF_BB.
15480         Make GC vectors heap vectors.  Clean up comments.
15481         Make visited_bbs a reference.
15482         (find_jump_threads_backwards): Make visited_bbs live in the stack.
15483         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
15484         comment.
15485
15486 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
15487
15488         PR target/82181
15489         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
15490         words of E_DImode object are reachable by xtensa_uimm8x4 access.
15491
15492 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
15493
15494         Revert r251800 and r251799.
15495
15496 2017-09-11  Martin Jambor  <mjambor@suse.cz>
15497
15498         PR hsa/82119
15499         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
15500         arguments in advance.
15501         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
15502         use it to find predecessor edges.
15503         (naive_outof_ssa): Collect vector of predecessors.
15504
15505 2017-09-08  Jason Merrill  <jason@redhat.com>
15506
15507         PR c++/70029 - ICE with ref-qualifier and -flto
15508         * langhooks.h (struct lang_hooks_for_types): Add
15509         copy_lang_qualifiers.
15510         * attribs.c (build_type_attribute_qual_variant): Use it.
15511         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
15512         NULL.
15513         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
15514         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
15515
15516 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
15517
15518         PR target/81988
15519         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
15520         (*mulsi3_sp64): New instruction.
15521         (mulsi3): New expander.
15522
15523 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
15524
15525         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
15526
15527 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15528
15529         * sancov.c: Include memmodel.h.
15530
15531 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
15532
15533         PR target/80897
15534         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
15535         large offsets.
15536
15537 2017-09-07  Carl Love  <cel@us.ibm.com>
15538
15539         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
15540         the sldi instruction.
15541
15542 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
15543
15544         * sancov.c: Include tm_p.h.
15545
15546 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
15547
15548         PR target/81979
15549         * output.h (switch_to_other_text_partition): New declaration.
15550         * varasm.c (switch_to_other_text_partition): New function.
15551         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
15552         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
15553         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
15554         to the other text partition before emitting LCL label and switch back
15555         after emitting the word after it.
15556
15557 2017-09-07  Richard Biener  <rguenther@suse.de>
15558
15559         * passes.def (pass_split_crit_edges): Remove instance before PRE.
15560         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
15561         critical edges here, after loop init.
15562         (pass_data_pre): Remove PROP_no_crit_edges flags.
15563         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
15564         for valueization of call args to avoid leaking VN_TOP.
15565         (visit_use): Assert we do not visit default defs.
15566         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
15567         Use error_mark_node to more easily detect leaking VN_TOP.
15568         All default-defs are varying, not VN_TOP.  Mark them visited.
15569         (run_scc_vn): Make code match comment.
15570
15571 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
15572
15573         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
15574         OPTION_MASK_FLOAT128_KEYWORD.
15575         (POWERPC_MASKS): Likewise.
15576         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
15577         support for the -mfloat128-type option, and make -mfloat128
15578         default on PowerPC Linux systems.  Define or undefine
15579         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
15580         Define __float128 to be __ieee128 if IEEE 128-bit support is
15581         enabled, or undefine it.
15582         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
15583         Delete defining __FLOAT128_TYPE__.
15584         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
15585         -mfloat128-type option and make -mfloat128 default on PowerPC
15586         Linux systems.
15587         (TARGET_FLOAT128_TYPE): Likewise.
15588         (-mfloat128-type): Likewise.
15589         * config/rs6000/rs6000.c (rs6000_option_override_internal):
15590         Delete the -mfloat128-type option and make -mfloat128 default on
15591         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
15592         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
15593         128-bit floating point is enabled.  Change tests from using
15594         -mfloat128-type to -mfloat128.
15595         (rs6000_mangle_type): Use the correct mangling for the __float128
15596         type even if normal long double is restricted to 64-bits.
15597         (floatn_mode): Enable the _Float128 type by default on VSX Linux
15598         systems.
15599         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
15600         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
15601         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
15602         -mfloat128-type.
15603         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
15604         documentation for -mfloat128.
15605
15606 2017-09-06  Olivier Hainque  <hainque@adacore.com>
15607
15608         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
15609
15610 2017-09-06  Wish Wu  <wishwu007@gmail.com>
15611             Jakub Jelinek  <jakub@redhat.com>
15612
15613         * asan.c (initialize_sanitizer_builtins): Add
15614         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
15615         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
15616         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
15617         BT_FN_VOID_UINT64_PTR variables.
15618         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
15619         (BT_FN_VOID_UINT16_UINT16): Likewise.
15620         (BT_FN_VOID_UINT32_UINT32): Likewise.
15621         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
15622         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
15623         (BT_FN_VOID_UINT64_PTR): Likewise.
15624         * common.opt (flag_sanitize_coverage): New variable.
15625         (fsanitize-coverage=trace-pc): Remove.
15626         (fsanitize-coverage=): Add.
15627         * flag-types.h (enum sanitize_coverage_code): New enum.
15628         * fold-const.c (fold_range_test): Disable non-short-circuit
15629         optimization if flag_sanitize_coverage.
15630         (fold_truth_andor): Likewise.
15631         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
15632         * opts.c (COVERAGE_SANITIZER_OPT): Define.
15633         (coverage_sanitizer_opts): New array.
15634         (get_closest_sanitizer_option): Add OPTS argument, handle also
15635         OPT_fsanitize_coverage_.
15636         (parse_sanitizer_options): Adjusted to also handle
15637         OPT_fsanitize_coverage_.
15638         (common_handle_option): Add OPT_fsanitize_coverage_.
15639         * sancov.c (instrument_comparison, instrument_switch): New function.
15640         (sancov_pass): Add trace-cmp support.
15641         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
15642         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
15643         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
15644         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
15645         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
15646         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
15647         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
15648         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
15649         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
15650         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
15651
15652 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
15653
15654         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
15655         error.  Only quit immediately if parsing is complete.
15656         (BEGIN): Initialize fatal_err and parse_done.
15657         (begin fpu, end fpu): Check number of arguments.
15658         (begin arch, end arch): Likewise.
15659         (begin cpu, end cpu): Likewise.
15660         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
15661         (optalias): Likewise.
15662
15663 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
15664
15665         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
15666         * config/arm/arm-isa.h: Delete.  Move definitions to ...
15667         * arm-cpus.in: ... here.  Use new feature and fgroup values.
15668         * config/arm/arm.c (arm_option_override): Use lower case for feature
15669         bit names.
15670         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
15671         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
15672         * config/arm/parsecpu.awk (END): Add new command 'isa'.
15673         (isa_pfx): Delete.
15674         (print_isa_bits_for): New function.
15675         (gen_isa): New function.
15676         (gen_comm_data): Use print_isa_bits_for.
15677         (define feature): New keyword.
15678         (define fgroup): New keyword.
15679         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
15680         (arm-isa.h): Add rule to generate file.
15681         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
15682         case for feature bit names.
15683
15684 2017-09-06  Richard Biener  <rguenther@suse.de>
15685
15686         * tree-ssa-pre.c (NECESSARY): Remove.
15687         (create_expression_by_pieces): Do not touch pass-local flags.
15688         (insert_into_preds_of_block): Likewise.
15689         (do_pre_regular_insertion): Likewise.
15690         (eliminate_insert): Likewise.
15691         (eliminate_dom_walker::before_dom_children): Likewise.
15692         (fini_eliminate): Do not look at inserted_exprs.
15693         (mark_operand_necessary): Remove.
15694         (remove_dead_inserted_code): Replace with simple work-list
15695         algorithm based on inserted_exprs and SSA uses.
15696         (pass_pre::execute): Re-order fini_eliminate and
15697         remove_dead_inserted_code.
15698
15699 2017-09-06  Olivier Hainque  <hainque@adacore.com>
15700
15701         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
15702         for VxWorks 7.  Adjust surrounding comments.
15703
15704 2017-09-06  Richard Biener  <rguenther@suse.de>
15705
15706         * gimple-ssa-strength-reduction.c
15707         (find_candidates_dom_walker::before_dom_children): Also allow
15708         pointer types.
15709
15710 2017-09-06  Richard Biener  <rguenther@suse.de>
15711
15712         PR tree-optimization/82108
15713         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
15714         for gap in the non-permutation SLP case.
15715
15716 2017-09-06  Martin Jambor  <mjambor@suse.cz>
15717
15718         PR tree-optimization/82078
15719         * tree-sra.c (sort_and_splice_var_accesses): Move call to
15720         add_access_to_work_queue...
15721         (build_accesses_from_assign): ...here.
15722         (propagate_all_subaccesses): Make sure racc is the group
15723         representative, if there is one.
15724
15725 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
15726
15727         PR middle-end/82095
15728         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
15729         NULL DECL_INITIAL.
15730
15731 2017-09-06  Richard Biener  <rguenther@suse.de>
15732
15733         * gimple-ssa-strength-reduction.c
15734         (find_candidates_dom_walker::before_doom_children): Use a
15735         type and not a mode check.
15736
15737 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15738
15739         PR target/77308
15740         * config/arm/predicates.md (arm_general_adddi_operand): Create new
15741         non-vfp predicate.
15742         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
15743
15744 2017-09-05  Jeff Law  <law@redhat.com>
15745
15746         PR tree-optimization/64910
15747         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
15748         cases where we have 3 or more operands.
15749
15750 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
15751
15752         PR middle-end/81768
15753         * omp-low.c (lower_omp_for): Recompute tree invariant if
15754         gimple_omp_for_initial/final is ADDR_EXPR.
15755
15756         PR middle-end/81768
15757         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
15758         into gimple val before gimplification fo the COND_EXPR.
15759
15760 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
15761
15762         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
15763         REGION_COPY argument.
15764         (thread_through_all_blocks): Remove unused argument to
15765         duplicate_thread_path.
15766
15767 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15768             Alan Hayward  <alan.hayward@arm.com>
15769             David Sherwood  <david.sherwood@arm.com>
15770
15771         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
15772         Take a scalar_mode rather than a machine_mode.
15773         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15774         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
15775         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15776         (aarch64_gen_adjusted_ldpstp): Likewise.
15777         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
15778
15779 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15780             Alan Hayward  <alan.hayward@arm.com>
15781             David Sherwood  <david.sherwood@arm.com>
15782
15783         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
15784         Take a scalar_int_mode instead of a machine_mode.
15785         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
15786         (aarch64_output_scalar_simd_mov_immediate): Likewise.
15787         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
15788         (aarch64_simd_attr_length_rglist): Delete.
15789         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
15790         a scalar_int_mode instead of a machine_mode.
15791         (aarch64_add_offset): Likewise.
15792         (aarch64_internal_mov_immediate): Likewise
15793         (aarch64_add_constant_internal): Likewise.
15794         (aarch64_add_constant): Likewise.
15795         (aarch64_movw_imm): Likewise.
15796         (aarch64_rtx_arith_op_extract_p): Likewise.
15797         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
15798         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
15799         Remove assert that the mode isn't a vector.
15800         (aarch64_output_scalar_simd_mov_immediate): Likewise.
15801         (aarch64_expand_mov_immediate): Update calls after above changes.
15802         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
15803         (aarch64_and_bitmask_imm): Check for scalar integer modes.
15804         (aarch64_move_imm): Likewise.
15805         (aarch64_can_const_movi_rtx_p): Likewise.
15806         (aarch64_strip_extend): Likewise.
15807         (aarch64_extr_rtx_p): Likewise.
15808         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
15809         a CONST_INT when the mode parameter is VOIDmode.
15810         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
15811
15812 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15813
15814         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
15815         * stor-layout.c (bitwise_mode_for_mode): Likewise.
15816         (bitwise_type_for_mode): Update accordingly.
15817
15818 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15819
15820         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
15821         * stor-layout.c (mode_for_size_tree): Likewise.
15822         (mode_for_array): Update accordingly.
15823         (layout_decl): Likewise.
15824         (compute_record_mode): Likewise.  Only set the mode once.
15825
15826 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15827
15828         * target.def (get_mask_mode): Change return type to opt_mode.
15829         Expand commentary.
15830         * doc/tm.texi: Regenerate.
15831         * targhooks.h (default_get_mask_mode): Return an opt_mode.
15832         * targhooks.c (default_get_mask_mode): Likewise.
15833         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
15834         * optabs-query.c (can_vec_mask_load_store_p): Update use of
15835         targetm.get_mask_mode.
15836         * tree.c (build_truth_vector_type): Likewise.
15837
15838 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15839
15840         * machmode.h (mode_for_vector): Return an opt_mode.
15841         * stor-layout.c (mode_for_vector): Likewise.
15842         (mode_for_int_vector): Update accordingly.
15843         (layout_type): Likewise.
15844         * config/i386/i386.c (emit_memmov): Likewise.
15845         (ix86_expand_set_or_movmem): Likewise.
15846         (ix86_expand_vector_init): Likewise.
15847         (ix86_get_mask_mode): Likewise.
15848         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
15849         Likewise.
15850         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
15851         * expmed.c (extract_bit_field_1): Likewise.
15852         * expr.c (expand_expr_real_2): Likewise.
15853         * optabs-query.c (can_vec_perm_p): Likewise.
15854         (can_vec_mask_load_store_p): Likewise.
15855         * optabs.c (expand_vec_perm): Likewise.
15856         * targhooks.c (default_get_mask_mode): Likewise.
15857         * tree-vect-stmts.c (vectorizable_store): Likewise.
15858         (vectorizable_load): Likewise.
15859         (get_vectype_for_scalar_type_and_size): Likewise.
15860
15861 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15862
15863         * machmode.h (mode_for_int_vector): New function.
15864         * stor-layout.c (mode_for_int_vector): Likewise.
15865         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
15866         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
15867         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15868         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
15869         (s390_expand_vcond): Likewise.
15870
15871 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15872
15873         * machmode.h (opt_machine_mode): New type.
15874         (opt_mode<T>): Allow construction from anything that can be
15875         converted to a T.
15876         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
15877         (mode_for_size): Return an opt_machine_mode.
15878         * stor-layout.c (mode_for_size): Likewise.
15879         (mode_for_size_tree): Update call accordingly.
15880         (bitwise_mode_for_mode): Likewise.
15881         (make_fract_type): Likewise.
15882         (make_accum_type): Likewise.
15883         * caller-save.c (replace_reg_with_saved_mem): Update call
15884         accordingly.
15885         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15886         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15887         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15888         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15889         * expmed.c (extract_bit_field_1): Likewise.
15890         * reload.c (get_secondary_mem): Likewise.
15891         * varasm.c (assemble_integer): Likewise.
15892         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
15893         early-out.
15894
15895 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15896
15897         * machmode.h (decimal_float_mode_for_size): New function.
15898         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
15899         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
15900         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
15901         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
15902         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
15903         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
15904
15905 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15906
15907         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
15908         (get_builtin_sync_mode): Likewise.
15909         (expand_ifn_atomic_compare_exchange): Likewise.
15910         (expand_builtin_atomic_clear): Likewise.
15911         (expand_builtin_atomic_test_and_set): Likewise.
15912         (fold_builtin_atomic_always_lock_free): Likewise.
15913         * calls.c (compute_argument_addresses): Likewise.
15914         (emit_library_call_value_1): Likewise.
15915         (store_one_arg): Likewise.
15916         * combine.c (combine_instructions): Likewise.
15917         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
15918         * config/arm/arm.c (arm_function_value): Likewise.
15919         (aapcs_allocate_return_reg): Likewise.
15920         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
15921         * config/i386/i386.c (construct_container): Likewise.
15922         (ix86_gimplify_va_arg): Likewise.
15923         (ix86_expand_sse_cmp): Likewise.
15924         (emit_memmov): Likewise.
15925         (emit_memset): Likewise.
15926         (expand_small_movmem_or_setmem): Likewise.
15927         (ix86_expand_pextr): Likewise.
15928         (ix86_expand_pinsr): Likewise.
15929         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
15930         * config/microblaze/microblaze.c (microblaze_block_move_straight):
15931         Likewise.
15932         * config/mips/mips.c (mips_function_value_1) Likewise.
15933         (mips_block_move_straight): Likewise.
15934         (mips_expand_ins_as_unaligned_store): Likewise.
15935         * config/powerpcspe/powerpcspe.c
15936         (rs6000_darwin64_record_arg_advance_flush): Likewise.
15937         (rs6000_darwin64_record_arg_flush): Likewise.
15938         * config/rs6000/rs6000.c
15939         (rs6000_darwin64_record_arg_advance_flush): Likewise.
15940         (rs6000_darwin64_record_arg_flush): Likewise.
15941         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
15942         (sparc_function_value_1): Likewise.
15943         * config/spu/spu.c (adjust_operand): Likewise.
15944         (spu_emit_branch_or_set): Likewise.
15945         (arith_immediate_p): Likewise.
15946         * emit-rtl.c (gen_lowpart_common): Likewise.
15947         * expr.c (expand_expr_real_1): Likewise.
15948         * function.c (assign_parm_setup_block): Likewise.
15949         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
15950         * reload1.c (alter_reg): Likewise.
15951         * stor-layout.c (mode_for_vector): Likewise.
15952         (layout_type): Likewise.
15953
15954 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15955
15956         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
15957         (spu_convert_move): Likewise.
15958         * lower-subreg.c (resolve_simple_move): Likewise.
15959
15960 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15961
15962         PR target/81833
15963         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
15964         define_insn to a define_expand.
15965         (altivec_vsum2sws_direct): New define_insn.
15966         (altivec_vsumsws): Convert from a define_insn to a define_expand.
15967
15968 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
15969
15970         * config/arm/arm.c (arm_option_params_internal): Improve setting of
15971         max_insns_skipped.
15972
15973 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
15974
15975         PR target/59501
15976         PR target/81624
15977         PR target/81769
15978         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
15979         realign stack if stack alignment needed is less than incoming
15980         stack boundary.
15981
15982 2017-09-05  Marek Polacek  <polacek@redhat.com>
15983
15984         PR sanitizer/82072
15985         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
15986         check earlier.
15987
15988 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
15989
15990         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
15991
15992 2017-09-05  Richard Biener  <rguenther@suse.de>
15993
15994         PR tree-optimization/82084
15995         * fold-const.c (can_native_encode_string_p): Handle wide characters.
15996
15997 2017-09-05  Richard Biener  <rguenther@suse.de>
15998
15999         PR tree-optimization/82102
16000         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
16001
16002 2017-09-05  Martin Liska  <mliska@suse.cz>
16003
16004         PR tree-optimization/82032
16005         * tree-cfg.c (generate_range_test): New function.
16006         * tree-cfg.h (generate_range_test): Declared here.
16007         * tree-cfgcleanup.c (convert_single_case_switch): New function.
16008         (cleanup_control_expr_graph): Use it.
16009         * tree-switch-conversion.c (try_switch_expansion): Remove
16010         assert.
16011         (emit_case_nodes): Use generate_range_test.
16012
16013 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16014
16015         PR target/82098
16016         * config/i386/i386.md (*<btsc><mode>_mask): Add
16017         TARGET_USE_BT to insn constraint.
16018         (*btr<mode>_mask): Ditto.
16019
16020 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
16021
16022         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
16023         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
16024
16025 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16026
16027         PR target/77308
16028         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
16029         TARGET_NEON and TARGET_IWMMXT.
16030         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
16031         TARGET_NEON and TARGET_IWMMXT.
16032         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
16033
16034 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16035
16036         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
16037         (ix86_rewrite_tls_address): Ditto.
16038         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
16039         (ix86_rewrite_tls_address_1): Ditto.
16040         (ix86_rewrite_tls_address): Ditto.
16041         * config/i386/predicates.md (tls_address_pattern): New predicate.
16042         * config/i386/i386.md (TLS address splitter): New splitter.
16043
16044 2017-09-04  Richard Biener  <rguenther@suse.de>
16045
16046         PR tree-optimization/82084
16047         * fold-const.h (can_native_encode_string_p): Declare.
16048         * fold-const.c (can_native_encode_string_p): Factor out from ...
16049         (native_encode_string): ... here.
16050         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
16051         vectorizing stores from constants we later cannot handle.
16052
16053 2017-09-04  Marek Polacek  <polacek@redhat.com>
16054
16055         PR c/81783
16056         * doc/invoke.texi: Update -Wtautological-compare documentation.
16057
16058 2017-09-04  Jeff Law  <law@redhat.com>
16059
16060         PR tree-optimization/64910
16061         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
16062         swap the first and last operand if the last is a constant.
16063
16064 2017-09-04  Marek Polacek  <polacek@redhat.com>
16065
16066         PR sanitizer/82072
16067         * convert.c (do_narrow): When sanitizing signed integer overflows,
16068         bail out for signed types.
16069         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
16070
16071 2017-09-04  Richard Biener  <rguenther@suse.de>
16072
16073         PR tree-optimization/82060
16074         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16075         Move devirtualization after stmt folding and before EH/AB/noreturn
16076         cleanup to get the stmt refs canonicalized.  Use a bool instead
16077         of gimple_modified_p since that doesn't work for NOPs.  Schedule
16078         NOPs generated by folding for removal.
16079
16080 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16081             Alan Hayward  <alan.hayward@arm.com>
16082             David Sherwood  <david.sherwood@arm.com>
16083
16084         * coretypes.h (pad_direction): New enum.
16085         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
16086         (FUNCTION_ARG_PADDING): Likewise.
16087         * target.def (function_arg_padding): New hook.
16088         * targhooks.h (default_function_arg_padding): Declare.
16089         * targhooks.c (default_function_arg_padding): New function.
16090         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
16091         (TARGET_FUNCTION_ARG_PADDING): ...this.
16092         * doc/tm.texi: Regenerate.
16093         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
16094         instead of direction.
16095         (compute_argument_addresses): Likewise.
16096         (load_register_parameters): Likewise.
16097         (emit_library_call_value_1): Likewise.
16098         (store_one_arg): Use targetm.calls.function_arg_padding instead
16099         of FUNCTION_ARG_PADDING.
16100         (must_pass_in_stack_var_size_or_pad): Likewise.
16101         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
16102         (emit_group_store): Likewise.
16103         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
16104         instead of FUNCTION_ARG_PADDING.
16105         (emit_push_insn): Likewise, and propagate enum change throughout
16106         function.
16107         * function.h (direction): Delete.
16108         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
16109         of direction.
16110         * function.c (assign_parm_find_stack_rtl): Likewise.
16111         (assign_parm_setup_block_p): Likewise.
16112         (assign_parm_setup_block): Likewise.
16113         (gimplify_parameters): Likewise.
16114         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
16115         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
16116         function.
16117         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
16118         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16119         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
16120         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
16121         (aarch64_function_arg_padding): ...this new function.
16122         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
16123         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16124         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
16125         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16126         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
16127         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16128         (arm_pad_arg_upward): Replace with...
16129         (arm_function_arg_padding): ...this new function.
16130         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
16131         of direction.
16132         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
16133         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
16134         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16135         (ia64_hpux_function_arg_padding): Replace with...
16136         (ia64_function_arg_padding): ...this new function.  Use pad_direction
16137         instead of direction.  Check for TARGET_HPUX.
16138         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
16139         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16140         (iq2000_function_arg_padding): New function.
16141         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
16142         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
16143         (mips_function_arg_padding): ...this new function.
16144         (mips_pad_reg_upward): Update accordingly.
16145         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16146         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
16147         targetm.calls.function_arg_padding.
16148         (FUNCTION_ARG_PADDING): Delete.
16149         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16150         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
16151         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16152         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
16153         (nios2_block_reg_padding): Return pad_direction instead of direction.
16154         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
16155         instead of direction.
16156         (nios2_function_arg_padding): Likewise.  Make static.
16157         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16158         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
16159         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
16160         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
16161         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16162         (pa_function_arg_padding): Make static.  Return pad_direction instead
16163         of direction.
16164         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
16165         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16166         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
16167         instead of direction.  Use targetm.calls.function_arg_padding.
16168         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
16169         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16170         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
16171         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
16172         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
16173         Redefine.
16174         (function_arg_padding): Rename to...
16175         (rs6000_function_arg_padding): ...this.  Make static.  Return
16176         pad_direction instead of direction.
16177         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16178         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
16179         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16180         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
16181         instead of direction.  Use targetm.calls.function_arg_padding.
16182         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
16183         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16184         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
16185         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
16186         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16187         (function_arg_padding): Rename to...
16188         (rs6000_function_arg_padding): ...this.  Make static.  Return
16189         pad_direction instead of direction.
16190         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16191         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
16192         * config/s390/s390.c (s390_function_arg_padding): New function.
16193         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16194         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
16195         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
16196         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16197         (function_arg_padding): Rename to...
16198         (sparc_function_arg_padding): ...this.  Make static.  Return
16199         pad_direction instead of direction.
16200         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
16201         * config/spu/spu.c (spu_function_arg_padding): New function.
16202         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16203         * system.h (FUNCTION_ARG_PADDING): Poison.
16204
16205 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16206             Alan Hayward  <alan.hayward@arm.com>
16207             David Sherwood  <david.sherwood@arm.com>
16208
16209         * target.def (modes_tieable_p): New hook.
16210         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
16211         (TARGET_MODES_TIEABLE_P): ...this.
16212         * doc/tm.texi.in: Regenerate.
16213         * hooks.h (hook_bool_mode_mode_true): Declare.
16214         * hooks.c (hook_bool_mode_mode_true): New function.
16215         * combine.c (subst): Use targetm.modes_tieable_p instead of
16216         MODES_TIEABLE_P.
16217         * dse.c (find_shift_sequence): Likewise.
16218         * expmed.c (extract_low_bits): Likewise.
16219         * lower-subreg.c: Include target.h.
16220         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
16221         MODES_TIEABLE_P.
16222         * rtlanal.c (rtx_cost): Likewise.
16223         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
16224         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
16225         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
16226         (TARGET_MODES_TIEABLE_P): Redefine.
16227         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
16228         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
16229         (TARGET_MODES_TIEABLE_P): Redefine.
16230         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
16231         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
16232         (arc_modes_tieable_p): New function.
16233         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
16234         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
16235         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
16236         (arm_modes_tieable_p): Make static.
16237         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
16238         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
16239         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
16240         (TARGET_MODES_TIEABLE_P): Redefine.
16241         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
16242         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
16243         (TARGET_MODES_TIEABLE_P): Redefine.
16244         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
16245         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
16246         (cr16_modes_tieable_p): New function.
16247         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
16248         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
16249         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
16250         (TRULY_NOOP_TRUNCATION): Update comment.
16251         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
16252         (TRULY_NOOP_TRUNCATION): Update comment.
16253         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
16254         (frv_modes_tieable_p): New function.
16255         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
16256         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
16257         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
16258         (TARGET_MODES_TIEABLE_P): Redefine.
16259         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
16260         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
16261         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
16262         (TARGET_MODES_TIEABLE_P): Redefine.
16263         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
16264         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
16265         (ia64_modes_tieable_p): New function.
16266         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
16267         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
16268         (iq2000_modes_tieable_p): New function.
16269         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
16270         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
16271         (lm32_modes_tieable_p): New function.
16272         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
16273         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
16274         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
16275         (TARGET_MODES_TIEABLE_P): Redefine.
16276         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
16277         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
16278         (m32r_modes_tieable_p): New function.
16279         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
16280         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
16281         (m68k_modes_tieable_p): New function.
16282         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
16283         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
16284         (mcore_modes_tieable_p): New function.
16285         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
16286         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
16287         function.
16288         (TARGET_MODES_TIEABLE_P): Redefine.
16289         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
16290         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
16291         * config/mips/mips.c (mips_modes_tieable_p): Make static.
16292         (TARGET_MODES_TIEABLE_P): Redefine.
16293         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
16294         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
16295         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
16296         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
16297         (mn10300_modes_tieable_p): ...this and make static.
16298         (TARGET_MODES_TIEABLE_P): Redefine.
16299         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
16300         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
16301         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
16302         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
16303         (msp430_modes_tieable_p): Make static.
16304         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
16305         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
16306         (TARGET_MODES_TIEABLE_P): Redefine.
16307         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
16308         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
16309         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
16310         (TARGET_MODES_TIEABLE_P): Redefine.
16311         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
16312         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
16313         * config/pa/pa.c (pa_modes_tieable_p): Make static.
16314         (TARGET_MODES_TIEABLE_P): Redefine.
16315         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
16316         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
16317         (pdp11_modes_tieable_p): New function.
16318         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
16319         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
16320         (rs6000_modes_tieable_p): New function.
16321         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16322         * config/powerpcspe/powerpcspe.md: Update comment.
16323         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
16324         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
16325         (TARGET_MODES_TIEABLE_P): Redefine.
16326         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
16327         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
16328         (rl78_modes_tieable_p): New function.
16329         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
16330         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
16331         (rs6000_modes_tieable_p): New function.
16332         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16333         * config/rs6000/rs6000.md: Update comment.
16334         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
16335         * config/rx/rx.c (rx_modes_tieable_p): New function.
16336         (TARGET_MODES_TIEABLE_P): Redefine.
16337         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
16338         * config/s390/s390.c (s390_modes_tieable_p): New function.
16339         (TARGET_MODES_TIEABLE_P): Redefine.
16340         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
16341         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
16342         (sh_modes_tieable_p): New function.
16343         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
16344         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
16345         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
16346         (sparc_modes_tieable_p): Make static.
16347         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
16348         * config/spu/spu.c (spu_modes_tieable_p): New function.
16349         (TARGET_MODES_TIEABLE_P): Redefine.
16350         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
16351         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
16352         (TARGET_MODES_TIEABLE_P): Redefine.
16353         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
16354         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
16355         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
16356         * config/v850/v850.c (v850_modes_tieable_p): New function.
16357         (TARGET_MODES_TIEABLE_P): Redefine.
16358         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
16359         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
16360         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
16361         (visium_modes_tieable_p): New function.
16362         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
16363         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
16364         (xtensa_modes_tieable_p): New function.
16365         * system.h (MODES_TIEABLE_P): Poison.
16366
16367 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16368             Alan Hayward  <alan.hayward@arm.com>
16369             David Sherwood  <david.sherwood@arm.com>
16370
16371         * target.def (hard_regno_mode_ok): New hook.
16372         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
16373         (TARGET_HARD_REGNO_MODE_OK): ...this.
16374         * doc/tm.texi.in: Regenerate.
16375         * hooks.h (hook_bool_uint_mode_true): Declare.
16376         * hooks.c (hook_bool_uint_mode_true): New function.
16377         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
16378         HARD_REGNO_MODE_OK.
16379         * genpreds.c (write_insn_preds_c): Add an include of target.h.
16380         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
16381         instead of HARD_REGNO_MODE_OK.
16382         * caller-save.c: Include target.h.
16383         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
16384         HARD_REGNO_MODE_OK.
16385         * combine.c (can_combine_p): Likewise.
16386         (combinable_i3pat): Likewise.
16387         (can_change_dest_mode): Likewise.
16388         * expr.c (init_expr_target): Likewise.
16389         (convert_move): Likewise.
16390         (convert_modes): Likewise.
16391         * ira.c (setup_prohibited_class_mode_regs): Likewise.
16392         (setup_prohibited_mode_move_regs): Likewise.
16393         * ira.h (target_ira): Likewise.
16394         * lra-assigns.c (find_hard_regno_for_1): Likewise.
16395         * lra-constraints.c (process_alt_operands): Likewise.
16396         (split_reg): Likewise.
16397         * recog.c (peep2_find_free_register): Likewise.
16398         * ree.c (combine_reaching_defs): Likewise.
16399         * regcprop.c (maybe_mode_change): Likewise.
16400         * reginfo.c (init_reg_sets_1): Likewise.
16401         (choose_hard_reg_mode): Likewise.
16402         (simplifiable_subregs): Likewise.
16403         * regrename.c (check_new_reg_p): Likewise.
16404         * reload.c (find_valid_class): Likewise.
16405         (find_valid_class_1): Likewise.
16406         (reload_inner_reg_of_subreg): Likewise.
16407         (push_reload): Likewise.
16408         (combine_reloads): Likewise.
16409         (find_dummy_reload): Likewise.
16410         (find_reloads): Likewise.
16411         * reload1.c (find_reg): Likewise.
16412         (set_reload_reg): Likewise.
16413         (allocate_reload_reg): Likewise.
16414         (choose_reload_regs): Likewise.
16415         (reload_adjust_reg_for_temp): Likewise.
16416         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
16417         (simplify_subreg_regno): Likewise.
16418         * sel-sched.c (init_regs_for_mode): Likewise.
16419         * varasm.c (make_decl_rtl): Likewise.
16420         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
16421         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
16422         HARD_REGNO_MODE_OK.
16423         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
16424         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
16425         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16426         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
16427         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
16428         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16429         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
16430         (arc_mode_class): Delete.
16431         (HARD_REGNO_MODE_OK): Delete.
16432         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16433         (arc_hard_regno_mode_ok): Rename old array to...
16434         (arc_hard_regno_mode_ok_modes): ...this.
16435         (arc_conditional_register_usage): Update accordingly.
16436         (arc_mode_class): Make static.
16437         (arc_hard_regno_mode_ok): New function.
16438         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
16439         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
16440         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16441         (arm_hard_regno_mode_ok): Make static.
16442         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
16443         HARD_REGNO_MODE_OK.
16444         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
16445         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
16446         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
16447         return a bool.
16448         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16449         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
16450         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
16451         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
16452         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
16453         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16454         * config/bfin/predicates.md (valid_reg_operand): Use
16455         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
16456         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
16457         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
16458         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16459         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
16460         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
16461         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16462         (cr16_hard_regno_mode_ok): Make static and return a bool.
16463         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
16464         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16465         (cris_hard_regno_mode_ok): New function.
16466         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
16467         (epiphany_mode_class): Delete.
16468         (HARD_REGNO_MODE_OK): Delete.
16469         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
16470         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16471         (hard_regno_mode_ok): Rename to...
16472         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
16473         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
16474         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
16475         HARD_REGNO_MODE_OK.
16476         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
16477         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
16478         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16479         (frv_hard_regno_mode_ok): Make static and return a bool.
16480         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
16481         HARD_REGNO_MODE_OK.
16482         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
16483         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
16484         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
16485         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
16486         and return a bool.
16487         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16488         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
16489         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
16490         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
16491         return a bool.
16492         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16493         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
16494         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16495         (ia64_hard_regno_mode_ok): New function.
16496         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
16497         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16498         (iq2000_hard_regno_mode_ok): New function.
16499         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
16500         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16501         (lm32_hard_regno_mode_ok): New function.
16502         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
16503         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
16504         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
16505         instead of HARD_REGNO_MODE_OK.
16506         (m32c_hard_regno_ok): Rename to...
16507         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
16508         (m32c_cannot_change_mode_class): Update accordingly.
16509         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16510         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
16511         (m32r_mode_class): Delete.
16512         (HARD_REGNO_MODE_OK): Delete.
16513         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16514         (m32r_hard_regno_mode_ok): Rename to...
16515         (m32r_hard_regno_modes): ...this.
16516         (m32r_mode_class): Make static.
16517         (m32r_hard_regno_mode_ok): New function.
16518         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
16519         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
16520         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16521         (m68k_hard_regno_mode_ok): Make static.
16522         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
16523         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16524         (mcore_hard_regno_mode_ok): New function.
16525         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
16526         (HARD_REGNO_MODE_OK): Delete.
16527         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
16528         Rename to...
16529         (microblaze_hard_regno_mode_ok_p): ...this and make static.
16530         (microblaze_hard_regno_mode_ok): New function.
16531         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16532         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
16533         (mips_hard_regno_mode_ok): Delete.
16534         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
16535         (mips_hard_regno_mode_ok_p): ...this and make static.
16536         (mips_hard_regno_mode_ok_p): Rename to...
16537         (mips_hard_regno_mode_ok_uncached): ...this.
16538         (mips_hard_regno_mode_ok): New function.
16539         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
16540         of HARD_REGNO_MODE_OK.
16541         (mips_option_override): Update after above name changes.
16542         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16543         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
16544         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
16545         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
16546         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
16547         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16548         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
16549         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
16550         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
16551         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16552         (msp430_hard_regno_mode_ok): Make static and return a bool.
16553         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
16554         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
16555         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
16556         and return a bool.
16557         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16558         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
16559         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
16560         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
16561         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
16562         (PA_HARD_REGNO_MODE_OK): ...this
16563         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
16564         (PA_HARD_REGNO_MODE_OK): ...this.
16565         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16566         (pa_hard_regno_mode_ok): New function.
16567         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
16568         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16569         (pdp11_hard_regno_mode_ok): New function.
16570         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
16571         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
16572         Delete.
16573         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
16574         Make static.
16575         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16576         (rs6000_hard_regno_mode_ok): Rename to...
16577         (rs6000_hard_regno_mode_ok_uncached): ...this.
16578         (rs6000_init_hard_regno_mode_ok): Update accordingly.
16579         (rs6000_hard_regno_mode_ok): New function.
16580         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
16581         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
16582         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
16583         (riscv_hard_regno_mode_ok): ...this and make static.
16584         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16585         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
16586         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
16587         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16588         (rl78_hard_regno_mode_ok): Make static and return bool.
16589         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
16590         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
16591         Delete.
16592         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
16593         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16594         (rs6000_hard_regno_mode_ok): Rename to...
16595         (rs6000_hard_regno_mode_ok_uncached): ...this.
16596         (rs6000_init_hard_regno_mode_ok): Update accordingly.
16597         (rs6000_hard_regno_mode_ok): New function.
16598         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
16599         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
16600         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16601         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
16602         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
16603         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
16604         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16605         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
16606         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
16607         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16608         (sh_hard_regno_mode_ok): Make static.
16609         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
16610         instead of HARD_REGNO_MODE_OK.
16611         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
16612         (sparc_mode_class): Delete.
16613         (HARD_REGNO_MODE_OK): Delete.
16614         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16615         (hard_regno_mode_classes): Make static.
16616         (sparc_mode_class): Likewise.
16617         (sparc_hard_regno_mode_ok): New function.
16618         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
16619         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
16620         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
16621         function.
16622         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16623         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
16624         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
16625         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
16626         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
16627         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16628         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
16629         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
16630         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16631         (visium_hard_regno_mode_ok): New function.
16632         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
16633         instead of HARD_REGNO_MODE_OK.
16634         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
16635         (HARD_REGNO_MODE_OK): Delete.
16636         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
16637         (xtensa_hard_regno_mode_ok_p): ...this and make static.
16638         (xtensa_option_override): Update accordingly.
16639         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16640         (xtensa_hard_regno_mode_ok): New function.
16641         * system.h (HARD_REGNO_MODE_OK): Poison.
16642
16643 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16644             Alan Hayward  <alan.hayward@arm.com>
16645             David Sherwood  <david.sherwood@arm.com>
16646
16647         * target.def (hard_regno_call_part_clobbered): New hook.
16648         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
16649         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
16650         * doc/tm.texi: Regenerate.
16651         * hooks.h (hook_bool_uint_mode_false): Declare.
16652         * hooks.c (hook_bool_uint_mode_false): New function.
16653         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16654         * cselib.c (cselib_process_insn): Use
16655         targetm.hard_regno_call_part_clobbered instead of
16656         HARD_REGNO_CALL_PART_CLOBBERED.
16657         * ira-conflicts.c (ira_build_conflicts): Likewise.
16658         * ira-costs.c (ira_tune_allocno_costs): Likewise.
16659         * lra-constraints.c (need_for_call_save_p): Likewise.
16660         * lra-lives.c: Include target.h.
16661         (check_pseudos_live_through_calls): Use
16662         targetm.hard_regno_call_part_clobbered instead of
16663         HARD_REGNO_CALL_PART_CLOBBERED.
16664         * regcprop.c: Include target.h.
16665         (copyprop_hardreg_forward_1): Use
16666         targetm.hard_regno_call_part_clobbered instead of
16667         HARD_REGNO_CALL_PART_CLOBBERED.
16668         * reginfo.c (choose_hard_reg_mode): Likewise.
16669         * regrename.c (check_new_reg_p): Likewise.
16670         * reload.c (find_equiv_reg): Likewise.
16671         * reload1.c (emit_reload_insns): Likewise.
16672         * sched-deps.c (deps_analyze_insn): Likewise.
16673         * sel-sched.c (init_regs_for_mode): Likewise.
16674         (mark_unavailable_hard_regs): Likewise.
16675         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
16676         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16677         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
16678         New function.
16679         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16680         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16681         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
16682         Delete.
16683         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
16684         and return a bool.
16685         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16686         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16687         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
16688         function.
16689         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16690         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16691         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
16692         function.
16693         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16694         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
16695         Delete.
16696         * config/powerpcspe/powerpcspe.c
16697         (rs6000_hard_regno_call_part_clobbered): New function.
16698         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16699         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16700         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
16701         New function.
16702         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16703         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16704         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
16705         function.
16706         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16707         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16708         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
16709
16710 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16711             Alan Hayward  <alan.hayward@arm.com>
16712             David Sherwood  <david.sherwood@arm.com>
16713
16714         * rtl.h (subreg_memory_offset): Declare.
16715         * emit-rtl.c (subreg_memory_offset): New function.
16716         * expmed.c (store_bit_field_1): Use it.
16717         * expr.c (undefined_operand_subword_p): Likewise.
16718         * simplify-rtx.c (simplify_subreg): Likewise.
16719
16720 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
16721
16722         PR rtl-optimization/57448
16723         PR target/67458
16724         PR target/81316
16725         * optabs.c (expand_atomic_load): Place compiler memory barriers if
16726         using atomic_load pattern.
16727         (expand_atomic_store): Likewise.
16728
16729 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
16730
16731         PR sanitizer/81981
16732         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
16733         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
16734         handling.  Use replace_call_with_value with NULL instead of
16735         gsi_replace, unlink_stmt_vdef and release_defs.
16736
16737         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
16738         instead of tab.
16739
16740         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
16741
16742 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16743
16744         PR bootstrap/82045
16745         * rtl.h (emit_library_call_value_1): Declare.
16746         (emit_library_call): Replace declaration with a series of overloads.
16747         Remove the parameter count argument.
16748         (emit_library_call_value): Likewise.
16749         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
16750         with an "rtx_mode_t *".
16751         (emit_library_call_value): Delete.
16752         (emit_library_call): Likewise.
16753         * asan.c (asan_emit_stack_protection): Update calls accordingly.
16754         (asan_emit_allocas_unpoison): Likewise.
16755         * builtins.c (expand_builtin_powi): Likewise.
16756         (expand_asan_emit_allocas_unpoison): Likewise.
16757         * cfgexpand.c (expand_main_function): Likewise.
16758         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
16759         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
16760         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
16761         * config/arm/arm.c (arm_trampoline_init): Likewise.
16762         (arm_call_tls_get_addr): Likewise.
16763         (arm_expand_divmod_libfunc): Likewise.
16764         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
16765         (smulsi3_highpart): Likewise.
16766         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
16767         (c6x_expand_compare): Likewise.
16768         (c6x_expand_movmem): Likewise.
16769         * config/frv/frv.c (frv_trampoline_init): Likewise.
16770         * config/i386/i386.c (ix86_trampoline_init): Likewise.
16771         (ix86_expand_divmod_libfunc): Likewise.
16772         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16773         (ia64_expand_compare): Likewise.
16774         (ia64_profile_hook): Likewise.
16775         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
16776         (nonlocal_goto): Likewise.
16777         (restore_stack_nonlocal): Likewise.
16778         * config/m32r/m32r.c (block_move_call): Likewise.
16779         (m32r_trampoline_init): Likewise.
16780         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
16781         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
16782         (m68k_call_m68k_read_tp): Likewise.
16783         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
16784         (microblaze_expand_divide): Likewise.
16785         * config/mips/mips.h (mips_args): Likewise.
16786         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
16787         (MIPS_ICACHE_SYNC): Likewise.
16788         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
16789         (nios2_trampoline_init): Likewise.
16790         * config/pa/pa.c (hppa_tls_call): Likewise.
16791         (pa_trampoline_init): Likewise.
16792         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
16793         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
16794         (expand_strn_compare): Likewise.
16795         (rs6000_generate_compare): Likewise.
16796         (rs6000_expand_float128_convert): Likewise.
16797         (output_profile_hook): Likewise.
16798         (rs6000_trampoline_init): Likewise.
16799         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
16800         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
16801         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
16802         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16803         (rs6000_generate_compare): Likewise.
16804         (rs6000_expand_float128_convert): Likewise.
16805         (output_profile_hook): Likewise.
16806         (rs6000_trampoline_init): Likewise.
16807         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
16808         * config/sh/sh.c (sh_trampoline_init): Likewise.
16809         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
16810         (sparc_emit_float_lib_cmp): Likewise.
16811         (sparc32_initialize_trampoline): Likewise.
16812         (sparc64_initialize_trampoline): Likewise.
16813         (sparc_profile_hook): Likewise.
16814         * config/spu/spu.c (ea_load_store): Likewise.
16815         * config/spu/spu.md (floatunssidf2): Likewise.
16816         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
16817         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
16818         * config/visium/visium.c (expand_block_move_4): Likewise.
16819         (expand_block_move_2): Likewise.
16820         (expand_block_move_1): Likewise.
16821         (expand_block_set_4): Likewise.
16822         (expand_block_set_2): Likewise.
16823         (expand_block_set_1): Likewise.
16824         (visium_trampoline_init): Likewise.
16825         (visium_profile_hook): Likewise.
16826         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
16827         (xtensa_setup_frame_addresses): Likewise.
16828         (xtensa_trampoline_init): Likewise.
16829         * except.c (sjlj_emit_function_enter): Likewise.
16830         (sjlj_emit_function_exit): Likewise.
16831         * explow.c (allocate_dynamic_stack_space): Likewise.
16832         (probe_stack_range): Likewise.
16833         * expr.c (convert_mode_scalar): Likewise.
16834         * optabs.c (expand_binop): Likewise.
16835         (expand_twoval_binop_libfunc): Likewise.
16836         (expand_unop): Likewise.
16837         (prepare_cmp_insn): Likewise.
16838         (prepare_float_lib_cmp): Likewise.
16839         (expand_float): Likewise.
16840         (expand_fix): Likewise.
16841         (expand_fixed_convert): Likewise.
16842         (maybe_emit_sync_lock_test_and_set): Likewise.
16843         (expand_atomic_compare_and_swap): Likewise.
16844         (expand_mem_thread_fence): Likewise.
16845         (expand_atomic_fetch_op): Likewise.
16846
16847 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
16848
16849         * doc/generic.texi (OpenACC): Adjust URL.
16850         * doc/invoke.texi (C Dialect Options): Ditto.
16851
16852 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
16853
16854         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
16855         predicate for operand 1.  Add (m,<S>) constraint.
16856         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
16857         Prevent memory operand 1 with register operand 2.
16858
16859 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
16860
16861         PR rtl-optimization/82024
16862         * combine.c (try_combine): If the combination result is a PARALLEL,
16863         and we only need to retain the SET in there that would be placed
16864         at I2, check that we can place that at I3 instead, before doing so.
16865
16866 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
16867
16868         PR target/81766
16869         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
16870         instead of void.
16871         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
16872         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
16873         and label.
16874
16875 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
16876             Jeff Law  <law@redhat.com>
16877
16878         * varasm.c (bss_initializer_p): Do not put constants into .bss
16879         (categorize_decl_for_section): Handle bss_initializer_p returning
16880         false when DECL_INITIAL is NULL.
16881
16882 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16883
16884         PR target/82012
16885         * config/s390/s390.c (s390_can_inline_p): New function.
16886
16887 2017-09-01  Jeff Law  <law@redhat.com>
16888
16889         PR tree-optimization/82052
16890         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
16891         Always initialize the returned slot after a hash table miss
16892         when INSERT is true.
16893
16894 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
16895
16896         * config/s390/s390.md (mem_signal_fence): Remove.
16897         * doc/md.texi (mem_signal_fence): Remove.
16898         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
16899         Update comments.
16900         * target-insns.def (mem_signal_fence): Remove.
16901
16902 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
16903
16904         PR sanitizer/81902
16905         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
16906
16907         PR sanitizer/81923
16908         * asan.c (create_odr_indicator): Strip name encoding from assembler
16909         name before appending it after __odr_asan_.
16910
16911 2017-09-01  Martin Liska  <mliska@suse.cz>
16912
16913         PR tree-optimization/82059
16914         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
16915         frequency only when an edge is redirected.
16916
16917 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16918
16919         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
16920         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
16921         (arc_conditional_register_usage): Remove ARC600 lp_count
16922         exception.
16923         (arc_file_start): Emit Tag_ARC_CPU_variation.
16924         (arc_can_use_doloop_p): New conditions to use ZOLs.
16925         (hwloop_fail): New function.
16926         (hwloop_optimize): Likewise.
16927         (hwloop_pattern_reg): Likewise.
16928         (arc_doloop_hooks): New struct, to be used with reorg_loops.
16929         (arc_reorg_loops): New function, calls reorg_loops.
16930         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
16931         (arc600_corereg_hazard): Remove ZOL checking, case handled by
16932         hwloop_optimize.
16933         (arc_loop_hazard): Remove function, functionality moved into
16934         hwloop_optimize.
16935         (arc_hazard): Remove arc_loop_hazard call.
16936         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
16937         into hwloop_optimize.
16938         (arc_label_align): Remove ZOL handling.
16939         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
16940         * config/arc/arc.md (doloop_begin): Remove pattern.
16941         (doloop_begin_i): Likewise.
16942         (doloop_end_i): Likewise.
16943         (doloop_fallback): Likewise.
16944         (doloop_fallback_m): Likewise.
16945         (doloop_end): Reimplement expand.
16946         (arc_lp): New pattern for LP instruction.
16947         (loop_end): New pattern.
16948         (loop_fail): Likewise.
16949         (decrement_and_branch_until_zero): Likewise.
16950         * config/arc/arc.opt (mlpc-width): New option.
16951         * doc/invoke.texi (mlpc-width): Document option.
16952
16953 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16954
16955         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
16956         (arc_ccfsm_advance): Fix checking for delay slots.
16957         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
16958
16959 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16960
16961         * config/arc/arc.md (movqi_insn): Add stores to save constant long
16962         immediates.
16963         (movhi_insn): Update store instruction constraint which are saving
16964         6-bit short immediates.
16965         (movsi_insn): Consider also short scaled load operations.
16966         (zero_extendhisi2_i): Use Usd constraint instead of T.
16967         (extendhisi2_i): Add q constraint.
16968         (arc_clzsi2): Add type and length attributes.
16969         (arc_ctzsi2): Likewise.
16970         * config/arc/constraints.md (Usc): Update constraint, the
16971         assembler can parse two relocations for a single instruction.
16972
16973 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16974
16975         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
16976         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
16977
16978 2017-08-31  Olivier Hainque  <hainque@adacore.com>
16979
16980         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
16981         match as powerpc-wrs-vxworks*.
16982
16983 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
16984
16985         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
16986         register constraint for by-element operand.
16987         (aarch64_mls_elt_merge<mode>): Likewise.
16988
16989 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16990
16991         * config/arc/arc.c (arc_can_follow_jump): Check for short
16992         branches.
16993
16994 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16995
16996         * config.gcc: Use g.opt for arc.
16997         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
16998         functionality moved to ...
16999         (legitimate_scaled_address_p): New function, ...here.
17000         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
17001         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
17002         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
17003         condition.
17004         (arc_override_options): Handle G option.
17005         (arc_output_pic_addr_const): Correct function definition.
17006         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
17007         (arc_decl_anon_ns_mem_p): Delete.
17008         (arc_in_small_data_p): Overhaul this function to take into
17009         consideration the value given via G option.
17010         (arc_rewrite_small_data_1): Renamed and corrected old
17011         arc_rewrite_small_data function.
17012         (arc_rewrite_small_data): New function.
17013         (small_data_pattern): Don't use pic_offset_table_rtx.
17014         * config/arc/arc.h (CC1_SPEC): Recognize G option.
17015         * config/arc/simdext.md (movmisalignv2hi): Use
17016         prepare_move_operands function.
17017         (mov*): Likewise.
17018         (movmisalign*): Likewise.
17019         * doc/invoke.texi (ARC options): Document -G option.
17020
17021 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17022
17023         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
17024         prototype.
17025         * config/arc/arc.c (arc_print_operand): Output scalled address for
17026         sdata whenever is possible.
17027         (arc_in_small_data_p): Allow sdata for 64bit datum when double
17028         load/stores are available.
17029         (compact_sda_memory_operand): Check for the alignment required by
17030         code density instructions.
17031         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
17032         constraint.
17033         * config/arc/constraints.md (Usd): Update constraint.
17034         (Us0): New constraint.
17035         (Usc): Update constraint.
17036
17037 2017-08-31  Richard Biener  <rguenther@suse.de>
17038
17039         PR middle-end/82054
17040         * dwarf2out.c (dwarf2out_early_global_decl): Process each
17041         function only once.
17042
17043 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
17044
17045         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17046         Resize type_signature.
17047
17048 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17049             Alan Hayward  <alan.hayward@arm.com>
17050             David Sherwood  <david.sherwood@arm.com>
17051
17052         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
17053         subregs whose inner modes can be stored in GPRs.
17054         (aarch64_classify_index): Likewise.
17055
17056 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17057             Alan Hayward  <alan.hayward@arm.com>
17058             David Sherwood  <david.sherwood@arm.com>
17059
17060         * config/aarch64/iterators.md (V_cmp_result): Rename to...
17061         (V_INT_EQUIV): ...this.
17062         (v_cmp_result): Rename to...
17063         (v_int_equiv): ...this.
17064         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
17065         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
17066         (copysign<mode>3): Likewise.
17067         (aarch64_simd_bsl<mode>_internal): Likewise.
17068         (aarch64_simd_bsl<mode>): Likewise.
17069         (vec_cmp<mode><mode>): Likewise.
17070         (vcond<mode><mode>): Likewise.
17071         (vcond<v_cmp_mixed><mode>): Likewise.
17072         (vcondu<mode><v_cmp_mixed>): Likewise.
17073         (aarch64_cm<optab><mode>): Likewise.
17074         (aarch64_cmtst<mode>): Likewise.
17075         (aarch64_fac<optab><mode>): Likewise.
17076         (vec_perm_const<mode>): Likewise.
17077         (vcond_mask_<mode><v_cmp_result>): Rename to...
17078         (vcond_mask_<mode><v_int_equiv>): ...this.
17079         (vec_cmp<mode><v_cmp_result>): Rename to...
17080         (vec_cmp<mode><v_int_equiv>): ...this.
17081
17082 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17083             Alan Hayward  <alan.hayward@arm.com>
17084             David Sherwood  <david.sherwood@arm.com>
17085
17086         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
17087         vector modes.
17088         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
17089         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
17090         (UNSPEC_LD4_DREG): New unspecs.
17091         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
17092         (aarch64_ld2<mode>_dreg_be): Replace with...
17093         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
17094         unspec.
17095         (aarch64_ld3<mode>_dreg_le)
17096         (aarch64_ld3<mode>_dreg_be): Replace with...
17097         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
17098         unspec.
17099         (aarch64_ld4<mode>_dreg_le)
17100         (aarch64_ld4<mode>_dreg_be): Replace with...
17101         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
17102         unspec.
17103
17104 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17105
17106         PR tree-optimization/81987
17107         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
17108         insert an initializer in a location not dominated by the stride
17109         definition.
17110
17111 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17112
17113         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
17114         on the entire header of the finally block in the fallthru case.
17115
17116 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17117
17118         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
17119
17120 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
17121
17122         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
17123         rs6000_emit_move_from_cr and call renamed function.
17124         (rs6000_emit_prologue): Call renamed functions.
17125         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
17126         movesi_from_cr, remove volatile CRs.
17127
17128 2017-08-30  Jon Beniston  <jon@beniston.com>
17129             Richard Biener  <rguenther@suse.de>
17130
17131         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
17132         of VECTOR_MODE_P check.
17133         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
17134         element vector types.
17135
17136 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17137
17138         * df.h (df_read_modify_subreg_p): Remove in favor of...
17139         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
17140         const_rtx instead of an rtx.
17141         * cprop.c (local_cprop_find_used_regs): Update accordingly.
17142         * df-problems.c (df_word_lr_mark_ref): Likewise.
17143         * ira-lives.c (mark_pseudo_reg_live): Likewise.
17144         (mark_pseudo_reg_dead): Likewise.
17145         (mark_ref_dead): Likewise.
17146         * reginfo.c (init_subregs_of_mode): Likewise.
17147         * sched-deps.c (sched_analyze_1): Likewise.
17148         * df-scan.c (df_def_record_1): Likewise.
17149         (df_uses_record): Likewise.
17150         (df_read_modify_subreg_p): Remove in favor of...
17151         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
17152         const_rtx instead of an rtx.
17153
17154 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17155             Alan Hayward  <alan.hayward@arm.com>
17156             David Sherwood  <david.sherwood@arm.com>
17157
17158         * rtl.h (partial_subreg_p): New function.
17159         * caller-save.c (save_call_clobbered_regs): Use it.
17160         * calls.c (expand_call): Likewise.
17161         * combine.c (combinable_i3pat): Likewise.
17162         (simplify_set): Likewise.
17163         (make_extraction): Likewise.
17164         (make_compound_operation_int): Likewise.
17165         (gen_lowpart_or_truncate): Likewise.
17166         (force_to_mode): Likewise.
17167         (make_field_assignment): Likewise.
17168         (reg_truncated_to_mode): Likewise.
17169         (record_truncated_value): Likewise.
17170         (move_deaths): Likewise.
17171         * cse.c (record_jump_cond): Likewise.
17172         (cse_insn): Likewise.
17173         * cselib.c (cselib_lookup_1): Likewise.
17174         * expmed.c (extract_bit_field_using_extv): Likewise.
17175         * function.c (assign_parm_setup_reg): Likewise.
17176         * ifcvt.c (noce_convert_multiple_sets): Likewise.
17177         * ira-build.c (create_insn_allocnos): Likewise.
17178         * lra-coalesce.c (merge_pseudos): Likewise.
17179         * lra-constraints.c (match_reload): Likewise.
17180         (simplify_operand_subreg): Likewise.
17181         (curr_insn_transform): Likewise.
17182         * lra-lives.c (process_bb_lives): Likewise.
17183         * lra.c (new_insn_reg): Likewise.
17184         (lra_substitute_pseudo): Likewise.
17185         * regcprop.c (mode_change_ok): Likewise.
17186         (maybe_mode_change): Likewise.
17187         (copyprop_hardreg_forward_1): Likewise.
17188         * reload.c (push_reload): Likewise.
17189         (find_reloads): Likewise.
17190         (find_reloads_subreg_address): Likewise.
17191         * reload1.c (alter_reg): Likewise.
17192         (eliminate_regs_1): Likewise.
17193         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17194
17195 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
17196
17197         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
17198         back to if statements, including unpack.
17199
17200 2017-08-30  Martin Liska  <mliska@suse.cz>
17201
17202         PR inline-asm/82001
17203         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
17204         Rename to ...
17205         (func_checker::compare_asm_inputs_outputs): ... this function.
17206         (func_checker::compare_gimple_asm): Use the function to compare
17207         also ASM constrains.
17208         * ipa-icf-gimple.h: Rename the function.
17209
17210 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17211             Alan Hayward  <alan.hayward@arm.com>
17212             David Sherwood  <david.sherwood@arm.com>
17213
17214         * coretypes.h (complex_mode): New type.
17215         * gdbhooks.py (build_pretty_printer): Handle it.
17216         * machmode.h (complex_mode): New class.
17217         (complex_mode::includes_p): New function.
17218         (is_complex_int_mode): Likewise.
17219         (is_complex_float_mode): Likewise.
17220         * genmodes.c (get_mode_class): Handle complex mode classes.
17221         * function.c (expand_function_end): Use is_complex_int_mode.
17222
17223 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17224             Alan Hayward  <alan.hayward@arm.com>
17225             David Sherwood  <david.sherwood@arm.com>
17226
17227         * coretypes.h (scalar_mode_pod): New typedef.
17228         * gdbhooks.py (build_pretty_printer): Handle it.
17229         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
17230         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
17231         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
17232         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
17233         as_a <scalar_mode>.
17234
17235 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17236             Alan Hayward  <alan.hayward@arm.com>
17237             David Sherwood  <david.sherwood@arm.com>
17238
17239         * machmode.h (mode_for_vector): Take a scalar_mode instead
17240         of a machine_mode.
17241         * stor-layout.c (mode_for_vector): Likewise.
17242         * explow.c (promote_mode): Use as_a <scalar_mode>.
17243         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
17244
17245 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17246             Alan Hayward  <alan.hayward@arm.com>
17247             David Sherwood  <david.sherwood@arm.com>
17248
17249         * target.def (preferred_simd_mode): Take a scalar_mode
17250         instead of a machine_mode.
17251         * targhooks.h (default_preferred_simd_mode): Likewise.
17252         * targhooks.c (default_preferred_simd_mode): Likewise.
17253         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
17254         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
17255         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
17256         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
17257         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
17258         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
17259         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
17260         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
17261         Likewise.
17262         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
17263         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
17264         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
17265         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
17266         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
17267         * doc/tm.texi: Regenerate.
17268         * optabs-query.c (can_vec_mask_load_store_p): Return false for
17269         non-scalar modes.
17270
17271 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17272             Alan Hayward  <alan.hayward@arm.com>
17273             David Sherwood  <david.sherwood@arm.com>
17274
17275         * target.def (scalar_mode_supported_p): Take a scalar_mode
17276         instead of a machine_mode.
17277         * targhooks.h (default_scalar_mode_supported_p): Likewise.
17278         * targhooks.c (default_scalar_mode_supported_p): Likewise.
17279         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
17280         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
17281         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
17282         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
17283         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
17284         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
17285         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
17286         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
17287         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
17288         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
17289         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
17290         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
17291         Likewise.
17292         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
17293         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
17294         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
17295         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
17296         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
17297         Likewise.
17298         * doc/tm.texi: Regenerate.
17299
17300 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17301             Alan Hayward  <alan.hayward@arm.com>
17302             David Sherwood  <david.sherwood@arm.com>
17303
17304         * coretypes.h (opt_scalar_mode): New typedef.
17305         * gdbhooks.py (build_pretty_printers): Handle it.
17306         * machmode.h (mode_iterator::get_2xwider): Add overload for
17307         opt_mode<T>.
17308         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
17309         over scalar modes.
17310         * expr.c (convert_mode_scalar): Likewise.
17311         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17312         * optabs.c (expand_float): Likewise.
17313         (expand_fix): Likewise.
17314         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17315
17316 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17317             Alan Hayward  <alan.hayward@arm.com>
17318             David Sherwood  <david.sherwood@arm.com>
17319
17320         * optabs.c (expand_float): Explicitly check for scalars before
17321         using a branching expansion.
17322         (expand_fix): Likewise.
17323
17324 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17325             Alan Hayward  <alan.hayward@arm.com>
17326             David Sherwood  <david.sherwood@arm.com>
17327
17328         * expr.c (convert_mode): Split scalar handling out into...
17329         (convert_mode_scalar): ...this new function.  Treat the modes
17330         as scalar_modes.
17331
17332 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17333             Alan Hayward  <alan.hayward@arm.com>
17334             David Sherwood  <david.sherwood@arm.com>
17335
17336         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
17337         and scalar_mode.
17338         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
17339
17340 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17341             Alan Hayward  <alan.hayward@arm.com>
17342             David Sherwood  <david.sherwood@arm.com>
17343
17344         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
17345         rather than a machine_mode.
17346         (fixed_from_string): Likewise.
17347         (fixed_convert): Likewise.
17348         (fixed_convert_from_int): Likewise.
17349         (fixed_convert_from_real): Likewise.
17350         (real_convert_from_fixed): Likewise.
17351         * fixed-value.c (fixed_from_double_int): Likewise.
17352         (fixed_from_string): Likewise.
17353         (fixed_convert): Likewise.
17354         (fixed_convert_from_int): Likewise.
17355         (fixed_convert_from_real): Likewise.
17356         (real_convert_from_fixed): Likewise.
17357         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
17358
17359 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17360             Alan Hayward  <alan.hayward@arm.com>
17361             David Sherwood  <david.sherwood@arm.com>
17362
17363         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
17364         of separate mode class checks.  Do not allow vector modes here.
17365         (immed_wide_int_const): Use as_a <scalar_mode>.
17366         * explow.c (trunc_int_for_mode): Likewise.
17367         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
17368         (wi::shwi): Likewise.
17369         (wi::min_value): Likewise.
17370         (wi::max_value): Likewise.
17371         * dwarf2out.c (loc_descriptor): Likewise.
17372         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
17373         for CONST_WIDE_INT.
17374
17375 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17376             Alan Hayward  <alan.hayward@arm.com>
17377             David Sherwood  <david.sherwood@arm.com>
17378
17379         * tree.h (SCALAR_TYPE_MODE): New macro.
17380         * expr.c (expand_expr_addr_expr_1): Use it.
17381         (expand_expr_real_2): Likewise.
17382         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
17383         (fold_convert_const_fixed_from_int): Likewise.
17384         (fold_convert_const_fixed_from_real): Likewise.
17385         (native_encode_fixed): Likewise
17386         (native_encode_complex): Likewise
17387         (native_encode_vector): Likewise.
17388         (native_interpret_fixed): Likewise.
17389         (native_interpret_real): Likewise.
17390         (native_interpret_complex): Likewise.
17391         (native_interpret_vector): Likewise.
17392         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
17393         (simd_clone_adjust_argument_types): Likewise.
17394         (simd_clone_init_simd_arrays): Likewise.
17395         (simd_clone_adjust): Likewise.
17396         * stor-layout.c (layout_type): Likewise.
17397         * tree.c (build_minus_one_cst): Likewise.
17398         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17399         * tree-inline.c (estimate_move_cost): Likewise.
17400         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
17401         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17402         (vectorizable_reduction): Likewise.
17403         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
17404         (vect_recog_mixed_size_cond_pattern): Likewise.
17405         (check_bool_pattern): Likewise.
17406         (adjust_bool_pattern): Likewise.
17407         (search_type_for_mask_1): Likewise.
17408         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
17409         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17410         (vectorizable_load): Likewise.
17411         (vectorizable_store): Likewise.
17412         * ubsan.c (ubsan_encode_value): Likewise.
17413         * varasm.c (output_constant): Likewise.
17414
17415 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17416             Alan Hayward  <alan.hayward@arm.com>
17417             David Sherwood  <david.sherwood@arm.com>
17418
17419         * coretypes.h (scalar_mode): New class.
17420         * machmode.h (scalar_mode): Likewise.
17421         (scalar_mode::includes_p): New function.
17422         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
17423         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
17424         * genmodes.c (get_mode_class): Handle remaining scalar modes.
17425         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
17426         * expmed.c (store_bit_field_1): Likewise.
17427         (extract_bit_field_1): Likewise.
17428         * expr.c (write_complex_part): Likewise.
17429         (read_complex_part): Likewise.
17430         (emit_move_complex_push): Likewise.
17431         (expand_expr_real_2): Likewise.
17432         * function.c (assign_parm_setup_reg): Likewise.
17433         (assign_parms_unsplit_complex): Likewise.
17434         * optabs.c (expand_binop): Likewise.
17435         * rtlanal.c (subreg_get_info): Likewise.
17436         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17437         * varasm.c (output_constant_pool_2): Likewise.
17438
17439 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17440             Alan Hayward  <alan.hayward@arm.com>
17441             David Sherwood  <david.sherwood@arm.com>
17442
17443         * expmed.c (extract_high_half): Use scalar_int_mode and remove
17444         assertion.
17445         (expmed_mult_highpart_optab): Likewise.
17446         (expmed_mult_highpart): Likewise.
17447
17448 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17449             Alan Hayward  <alan.hayward@arm.com>
17450             David Sherwood  <david.sherwood@arm.com>
17451
17452         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
17453         instead of a machine_mode.
17454         (builtin_memset_read_str): Likewise.
17455         * builtins.c (c_readstr): Likewise.
17456         (builtin_memcpy_read_str): Likewise.
17457         (builtin_strncpy_read_str): Likewise.
17458         (builtin_memset_read_str): Likewise.
17459         (builtin_memset_gen_str): Likewise.
17460         (expand_builtin_signbit): Use scalar_int_mode for local variables.
17461         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
17462         instead of a machine_mode.
17463         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
17464         variables.
17465         (make_extraction): Likewise.
17466         (try_widen_shift_mode): Take and return scalar_int_modes instead
17467         of machine_modes.
17468         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
17469         a scalar_int_mode instead of a machine_mode.
17470         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
17471         (avr_addr_space_pointer_mode): Likewise.
17472         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
17473         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
17474         (msp430_unwind_word_mode): Likewise.
17475         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
17476         (spu_addr_space_pointer_mode): Likewise.
17477         (spu_addr_space_address_mode): Likewise.
17478         (spu_libgcc_cmp_return_mode): Likewise.
17479         (spu_libgcc_shift_count_mode): Likewise.
17480         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
17481         (rl78_addr_space_pointer_mode): Likewise.
17482         (fl78_unwind_word_mode): Likewise.
17483         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
17484         machine_mode.
17485         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
17486         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
17487         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
17488         (mips_valid_pointer_mode): Likewise.
17489         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
17490         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
17491         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
17492         of a machine_mode.
17493         (ft32_addr_space_address_mode): Likewise.
17494         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
17495         scalar_int_mode instead of a machine_mode.
17496         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
17497         of a machine_mode.
17498         (m32c_addr_space_address_mode): Likewise.
17499         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
17500         (rs6000_eh_return_filter_mode): Likewise.
17501         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
17502         (rs6000_eh_return_filter_mode): Likewise.
17503         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
17504         (s390_libgcc_shift_count_mode): Likewise.
17505         (s390_unwind_word_mode): Likewise.
17506         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
17507         machine_mode.
17508         * target.def (mode_rep_extended): Likewise.
17509         (valid_pointer_mode): Likewise.
17510         (addr_space.valid_pointer_mode): Likewise.
17511         (eh_return_filter_mode): Return a scalar_int_mode rather than
17512         a machine_mode.
17513         (libgcc_cmp_return_mode): Likewise.
17514         (libgcc_shift_count_mode): Likewise.
17515         (unwind_word_mode): Likewise.
17516         (addr_space.pointer_mode): Likewise.
17517         (addr_space.address_mode): Likewise.
17518         * doc/tm.texi: Regenerate.
17519         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
17520         a machine_mode.
17521         (do_jump): Use scalar_int_mode for local variables.
17522         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
17523         rather than a machine_mode.
17524         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
17525         (scompare_loc_descriptor_wide): Likewise.
17526         (scompare_loc_descriptor_narrow): Likewise.
17527         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
17528         variables.
17529         * except.c (sjlj_emit_dispatch_table): Likewise.
17530         (expand_builtin_eh_copy_values): Likewise.
17531         * explow.c (convert_memory_address_addr_space_1): Likewise.
17532         Take a scalar_int_mode rather than a machine_mode.
17533         (convert_memory_address_addr_space): Take a scalar_int_mode rather
17534         than a machine_mode.
17535         (memory_address_addr_space): Use scalar_int_mode for local variables.
17536         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
17537         rather than a machine_mode.
17538         * expmed.c (mask_rtx): Likewise.
17539         (init_expmed_one_conv): Likewise.
17540         (expand_mult_highpart_adjust): Likewise.
17541         (extract_high_half): Likewise.
17542         (expmed_mult_highpart_optab): Likewise.
17543         (expmed_mult_highpart): Likewise.
17544         (expand_smod_pow2): Likewise.
17545         (expand_sdiv_pow2): Likewise.
17546         (emit_store_flag_int): Likewise.
17547         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
17548         variables.
17549         (extract_low_bits): Likewise.
17550         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
17551         a machine_mode.
17552         * expr.c (pieces_addr::adjust):  Likewise.
17553         (can_store_by_pieces): Likewise.
17554         (store_by_pieces): Likewise.
17555         (clear_by_pieces_1): Likewise.
17556         (expand_expr_addr_expr_1): Likewise.
17557         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
17558         (expand_expr_real_1): Likewise.
17559         (try_casesi): Likewise.
17560         * final.c (shorten_branches): Likewise.
17561         * fold-const.c (fold_convert_const_int_from_fixed): Change the
17562         type of "mode" to machine_mode.
17563         * internal-fn.c (expand_arith_overflow_result_store): Take a
17564         scalar_int_mode rather than a machine_mode.
17565         (expand_mul_overflow): Use scalar_int_mode for local variables.
17566         * loop-doloop.c (doloop_modify): Likewise.
17567         (doloop_optimize): Likewise.
17568         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
17569         than a machine_mode.
17570         (expand_doubleword_shift_condmove): Likewise.
17571         (expand_doubleword_shift): Likewise.
17572         (expand_doubleword_clz): Likewise.
17573         (expand_doubleword_popcount): Likewise.
17574         (expand_doubleword_parity): Likewise.
17575         (expand_absneg_bit): Use scalar_int_mode for local variables.
17576         (prepare_float_lib_cmp): Likewise.
17577         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
17578         rather than a machine_mode.
17579         (convert_memory_address_addr_space): Likewise.
17580         (get_mode_bounds): Likewise.
17581         (get_address_mode): Return a scalar_int_mode rather than a
17582         machine_mode.
17583         * rtlanal.c (get_address_mode): Likewise.
17584         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
17585         than a machine_mode.
17586         * targhooks.c (default_mode_rep_extended): Likewise.
17587         (default_valid_pointer_mode): Likewise.
17588         (default_addr_space_valid_pointer_mode): Likewise.
17589         (default_eh_return_filter_mode): Return a scalar_int_mode rather
17590         than a machine_mode.
17591         (default_libgcc_cmp_return_mode): Likewise.
17592         (default_libgcc_shift_count_mode): Likewise.
17593         (default_unwind_word_mode): Likewise.
17594         (default_addr_space_pointer_mode): Likewise.
17595         (default_addr_space_address_mode): Likewise.
17596         * targhooks.h (default_eh_return_filter_mode): Likewise.
17597         (default_libgcc_cmp_return_mode): Likewise.
17598         (default_libgcc_shift_count_mode): Likewise.
17599         (default_unwind_word_mode): Likewise.
17600         (default_addr_space_pointer_mode): Likewise.
17601         (default_addr_space_address_mode): Likewise.
17602         (default_mode_rep_extended): Take a scalar_int_mode rather than
17603         a machine_mode.
17604         (default_valid_pointer_mode): Likewise.
17605         (default_addr_space_valid_pointer_mode): Likewise.
17606         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
17607         local variables.
17608         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
17609         rather than a machine_mode.
17610         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
17611         for local variables.
17612         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17613         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
17614         than a machine_mode.
17615
17616 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17617             Alan Hayward  <alan.hayward@arm.com>
17618             David Sherwood  <david.sherwood@arm.com>
17619
17620         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
17621         the mode argument to scalar_int_mode.
17622         (do_jump_by_parts_zero_rtx): Likewise.
17623         (do_jump_by_parts_equality_rtx): Likewise.
17624         (do_jump_by_parts_greater): Take a mode argument.
17625         (do_jump_by_parts_equality): Likewise.
17626         (do_jump_1): Update calls accordingly.
17627
17628 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17629             Alan Hayward  <alan.hayward@arm.com>
17630             David Sherwood  <david.sherwood@arm.com>
17631
17632         * is-a.h (safe_dyn_cast): New function.
17633         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
17634         (jump_table_for_label): Likewise.
17635         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
17636         instead of an rtx_insn *.
17637         (shorten_branches): Use dyn_cast instead of LABEL_P and
17638         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
17639         rtx_jump_table_data::get_data_mode.
17640         (final_scan_insn): Likewise.
17641
17642 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17643             Alan Hayward  <alan.hayward@arm.com>
17644             David Sherwood  <david.sherwood@arm.com>
17645
17646         * combine.c (try_combine): Use is_a <scalar_int_mode> when
17647         trying to combine a full-register integer set with a subreg
17648         integer set.
17649
17650 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17651             Alan Hayward  <alan.hayward@arm.com>
17652             David Sherwood  <david.sherwood@arm.com>
17653
17654         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
17655         that is always either address_mode or pointer_mode.
17656
17657 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17658             Alan Hayward  <alan.hayward@arm.com>
17659             David Sherwood  <david.sherwood@arm.com>
17660
17661         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
17662         when the two are known to be equal.
17663
17664 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17665             Alan Hayward  <alan.hayward@arm.com>
17666             David Sherwood  <david.sherwood@arm.com>
17667
17668         * simplify-rtx.c (simplify_const_unary_operation): Use
17669         is_a <scalar_int_mode> instead of checking for a nonzero
17670         precision.  Forcibly convert op_mode to a scalar_int_mode
17671         in that case.  More clearly differentiate the operand and
17672         result modes and use the former when deciding what the value
17673         of a count-bits operation should be.  Use is_int_mode instead
17674         of checking for a MODE_INT.  Remove redundant check for whether
17675         this mode has a zero precision.
17676
17677 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17678             Alan Hayward  <alan.hayward@arm.com>
17679             David Sherwood  <david.sherwood@arm.com>
17680
17681         * optabs.c (widen_leading): Change the type of the mode argument
17682         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
17683         (widen_bswap): Likewise.
17684         (expand_parity): Likewise.
17685         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
17686         (expand_ffs): Likewise.
17687         (epand_unop): Check for scalar integer modes before calling the
17688         above routines.
17689
17690 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17691             Alan Hayward  <alan.hayward@arm.com>
17692             David Sherwood  <david.sherwood@arm.com>
17693
17694         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
17695         Expand commentary.
17696         (expand_expr_real_1): Update call accordingly.
17697
17698 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17699             Alan Hayward  <alan.hayward@arm.com>
17700             David Sherwood  <david.sherwood@arm.com>
17701
17702         * expmed.c (store_bit_field_using_insv): Add op0_mode and
17703         value_mode arguments.  Use scalar_int_mode internally.
17704         (store_bit_field_1): Rename the new integer mode from imode
17705         to op0_mode and use it instead of GET_MODE (op0).  Update calls
17706         to store_split_bit_field, store_bit_field_using_insv and
17707         store_fixed_bit_field.
17708         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
17709         Use scalar_int_mode internally.  Use a bit count rather than a mode
17710         when calculating the largest bit size for get_best_mode.
17711         Update calls to store_split_bit_field and store_fixed_bit_field_1.
17712         (store_fixed_bit_field_1): Add mode and value_mode arguments.
17713         Remove assertion that OP0 has a scalar integer mode.
17714         (store_split_bit_field): Add op0_mode and value_mode arguments.
17715         Update calls to extract_fixed_bit_field.
17716         (extract_bit_field_using_extv): Add an op0_mode argument.
17717         Use scalar_int_mode internally.
17718         (extract_bit_field_1): Rename the new integer mode from imode to
17719         op0_mode and use it instead of GET_MODE (op0).  Update calls to
17720         extract_split_bit_field, extract_bit_field_using_extv and
17721         extract_fixed_bit_field.
17722         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
17723         to extract_split_bit_field and extract_fixed_bit_field_1.
17724         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
17725         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
17726         on the target mode.
17727         (extract_split_bit_field): Add an op0_mode argument.  Update call
17728         to extract_fixed_bit_field.
17729
17730 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17731             Alan Hayward  <alan.hayward@arm.com>
17732             David Sherwood  <david.sherwood@arm.com>
17733
17734         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
17735         * explow.c (hard_function_value): Likewise.
17736         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
17737         convert_to_mode call outside the loop.
17738         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
17739         for the mode iterator.  Require the mode specified by max_pieces
17740         to exist.
17741         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
17742         mode iterator.
17743         (copy_blkmode_to_reg): Likewise.
17744         (set_storage_via_setmem): Likewise.
17745         * optabs.c (prepare_cmp_insn): Likewise.
17746         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
17747         * stor-layout.c (finish_bitfield_representative): Likewise.
17748
17749 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17750             Alan Hayward  <alan.hayward@arm.com>
17751             David Sherwood  <david.sherwood@arm.com>
17752
17753         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
17754         * expr.c (convert_move): Use them.
17755         (convert_modes): Likewise.
17756         (store_expr_with_bounds): Likewise.
17757
17758 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17759             Alan Hayward  <alan.hayward@arm.com>
17760             David Sherwood  <david.sherwood@arm.com>
17761
17762         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
17763         parameter for the mode of "x".  Remove the "known_x", "known_mode"
17764         and "known_ret" arguments.  Change the type of the mode argument
17765         to scalar_int_mode.
17766         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
17767         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
17768         (reg_num_sign_bit_copies_for_combine): Likewise.
17769         * rtlanal.c (nonzero_bits1): Likewise.
17770         (num_sign_bit_copies1): Likewise.
17771         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
17772         (reg_num_sign_bit_copies_general): Likewise.
17773         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
17774         (reg_nonzero_bits_general): Likewise.
17775
17776 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17777             Alan Hayward  <alan.hayward@arm.com>
17778             David Sherwood  <david.sherwood@arm.com>
17779
17780         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
17781         than in subroutines.  Return 1 for non-integer modes.
17782         (cached_num_sign_bit_copies): Change the type of the mode parameter
17783         to scalar_int_mode.
17784         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
17785         classes.  Handle CONST_INT_P first and then check whether X also
17786         has a scalar integer mode.  Check the same thing for inner registers
17787         of a SUBREG and for values that are being extended or truncated.
17788
17789 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17790             Alan Hayward  <alan.hayward@arm.com>
17791             David Sherwood  <david.sherwood@arm.com>
17792
17793         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
17794         in subroutines.  Return the mode mask for non-integer modes.
17795         (cached_nonzero_bits): Change the type of the mode parameter
17796         to scalar_int_mode.
17797         (nonzero_bits1): Likewise.  Remove early exit for other mode
17798         classes.  Handle CONST_INT_P first and then check whether X
17799         also has a scalar integer mode.
17800
17801 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17802             Alan Hayward  <alan.hayward@arm.com>
17803             David Sherwood  <david.sherwood@arm.com>
17804
17805         * expr.c (widest_int_mode_for_size): Make the comment match the code.
17806         Return a scalar_int_mode and assert that the size is greater than
17807         one byte.
17808         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
17809         (op_by_pieces_d::op_by_pieces_d): Likewise.
17810         (op_by_pieces_d::run): Likewise.
17811         (can_store_by_pieces): Likewise.
17812
17813 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17814             Alan Hayward  <alan.hayward@arm.com>
17815             David Sherwood  <david.sherwood@arm.com>
17816
17817         * combine.c (extract_left_shift): Add a mode argument and update
17818         recursive calls.
17819         (make_compound_operation_int): Change the type of the mode parameter
17820         to scalar_int_mode and update the call to extract_left_shift.
17821
17822 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17823             Alan Hayward  <alan.hayward@arm.com>
17824             David Sherwood  <david.sherwood@arm.com>
17825
17826         * combine.c (simplify_and_const_int): Change the type of the mode
17827         parameter to scalar_int_mode.
17828         (simplify_and_const_int_1): Likewise.  Update recursive call.
17829
17830 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17831             Alan Hayward  <alan.hayward@arm.com>
17832             David Sherwood  <david.sherwood@arm.com>
17833
17834         * combine.c (simplify_compare_const): Check that the mode is a
17835         scalar_int_mode (rather than VOIDmode) before testing its
17836         precision.
17837         (simplify_comparison): Move COMPARISON_P handling out of the
17838         loop and restrict the latter part of the loop to scalar_int_modes.
17839         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
17840         and when considering SUBREG_REGs.  Use is_int_mode instead of
17841         checking GET_MODE_CLASS against MODE_INT.
17842
17843 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17844             Alan Hayward  <alan.hayward@arm.com>
17845             David Sherwood  <david.sherwood@arm.com>
17846
17847         * combine.c (try_widen_shift_mode): Move check for equal modes to...
17848         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
17849         shift_unit_mode and for modes involved in scalar shifts.
17850
17851 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17852             Alan Hayward  <alan.hayward@arm.com>
17853             David Sherwood  <david.sherwood@arm.com>
17854
17855         * combine.c (force_int_to_mode): New function, split out from...
17856         (force_to_mode): ...here.  Keep xmode up-to-date and use it
17857         instead of GET_MODE (x).
17858
17859 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17860             Alan Hayward  <alan.hayward@arm.com>
17861             David Sherwood  <david.sherwood@arm.com>
17862
17863         * optabs-query.h (extraction_insn::struct_mode): Change type to
17864         opt_scalar_int_mode and update comment.
17865         (extraction_insn::field_mode): Change type to scalar_int_mode.
17866         (extraction_insn::pos_mode): Likewise.
17867         * combine.c (make_extraction): Update accordingly.
17868         * optabs-query.c (get_traditional_extraction_insn): Likewise.
17869         (get_optab_extraction_insn): Likewise.
17870         * recog.c (simplify_while_replacing): Likewise.
17871         * expmed.c (narrow_bit_field_mem): Change the type of the mode
17872         parameter to opt_scalar_int_mode.
17873
17874 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17875             Alan Hayward  <alan.hayward@arm.com>
17876             David Sherwood  <david.sherwood@arm.com>
17877
17878         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
17879         to a scalar_int_mode instead of a machine_mode.
17880         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
17881         (get_best_mode): Return a boolean and use a pointer argument to store
17882         the selected mode.  Replace the limit mode parameter with a bit limit.
17883         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
17884         for the values returned by bit_field_mode_iterator::next_mode.
17885         (store_bit_field): Update call to get_best_mode.
17886         (store_fixed_bit_field): Likewise.
17887         (extract_fixed_bit_field): Likewise.
17888         * expr.c (optimize_bitfield_assignment_op): Likewise.
17889         * fold-const.c (optimize_bit_field_compare): Likewise.
17890         (fold_truth_andor_1): Likewise.
17891         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
17892         Update for new type of m_mode.
17893         (get_best_mode): As above.
17894
17895 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17896             Alan Hayward  <alan.hayward@arm.com>
17897             David Sherwood  <david.sherwood@arm.com>
17898
17899         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
17900         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
17901         (store_bit_field): Check is_a <scalar_int_mode> before calling
17902         strict_volatile_bitfield_p.
17903         (extract_bit_field): Likewise.
17904
17905 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17906             Alan Hayward  <alan.hayward@arm.com>
17907             David Sherwood  <david.sherwood@arm.com>
17908
17909         * target.def (cstore_mode): Return a scalar_int_mode.
17910         * doc/tm.texi: Regenerate.
17911         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
17912         * targhooks.h (default_cstore_mode): Likewise.
17913         * targhooks.c (default_cstore_mode): Likewise, using a forced
17914         conversion.
17915         * expmed.c (emit_cstore): Expect the target of the cstore to be
17916         a scalar_int_mode.
17917
17918 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17919             Alan Hayward  <alan.hayward@arm.com>
17920             David Sherwood  <david.sherwood@arm.com>
17921
17922         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
17923         scalar_int_mode.
17924         (niter_desc): Likewise mode.
17925         (iv_analyze): Add a mode parameter.
17926         (biv_p): Likewise.
17927         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
17928         and change its type to scalar_int_mode.
17929         * loop-iv.c: Update commentary at head of file.
17930         (iv_constant): Pass the mode paraeter before the rtx it describes
17931         and change its type to scalar_int_mode.  Remove VOIDmode handling.
17932         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
17933         (iv_extend): Likewise.
17934         (shorten_into_mode): Likewise.
17935         (iv_add): Use scalar_int_mode.
17936         (iv_mult): Likewise.
17937         (iv_shift): Likewise.
17938         (canonicalize_iv_subregs): Likewise.
17939         (get_biv_step_1): Pass the outer_mode parameter before the rtx
17940         it describes and change its mode to scalar_int_mode.   Also change
17941         the type of the returned inner_mode to scalar_int_mode.
17942         (get_biv_step): Likewise, turning outer_mode from a pointer
17943         into a direct parameter.  Update call to get_biv_step_1.
17944         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
17945         iv_constant and get_biv_step.
17946         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
17947         and change its type to scalar_int_mode.  Don't initialise iv->mode
17948         to VOIDmode and remove later checks for its still being VOIDmode.
17949         Update calls to iv_analyze_op and iv_analyze_expr.  Check
17950         is_a <scalar_int_mode> when changing the mode under consideration.
17951         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
17952         Update call to iv_analyze_expr.
17953         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
17954         inner register is not also a scalar_int_mode.  Update call to
17955         iv_analyze_biv.
17956         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
17957         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
17958         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
17959         separate mode class checks.  Update calls to iv_analyze.  Remove
17960         fix-up of VOIDmodes after iv_analyze_biv.
17961         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
17962         don't have a scalar_int_mode.  Update call to biv_p.
17963
17964 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17965             Alan Hayward  <alan.hayward@arm.com>
17966             David Sherwood  <david.sherwood@arm.com>
17967
17968         * cfgexpand.c (convert_debug_memory_address): Use
17969         as_a <scalar_int_mode>.
17970         * combine.c (expand_compound_operation): Likewise.
17971         (make_extraction): Likewise.
17972         (change_zero_ext): Likewise.
17973         (simplify_comparison): Likewise.
17974         * cse.c (cse_insn): Likewise.
17975         * dwarf2out.c (minmax_loc_descriptor): Likewise.
17976         (mem_loc_descriptor): Likewise.
17977         (loc_descriptor): Likewise.
17978         * expmed.c (init_expmed_one_mode): Likewise.
17979         (synth_mult): Likewise.
17980         (emit_store_flag_1): Likewise.
17981         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
17982         of a comparison with size.
17983         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
17984         (reduce_to_bit_field_precision): Likewise.
17985         * function.c (expand_function_end): Likewise.
17986         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
17987         * loop-doloop.c (doloop_modify): Likewise.
17988         * optabs.c (expand_binop): Likewise.
17989         (expand_unop): Likewise.
17990         (expand_copysign_absneg): Likewise.
17991         (prepare_cmp_insn): Likewise.
17992         (maybe_legitimize_operand): Likewise.
17993         * recog.c (const_scalar_int_operand): Likewise.
17994         * rtlanal.c (get_address_mode): Likewise.
17995         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17996         (simplify_cond_clz_ctz): Likewise.
17997         * tree-nested.c (get_nl_goto_field): Likewise.
17998         * tree.c (build_vector_type_for_mode): Likewise.
17999         * var-tracking.c (use_narrower_mode): Likewise.
18000
18001 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18002             Alan Hayward  <alan.hayward@arm.com>
18003             David Sherwood  <david.sherwood@arm.com>
18004
18005         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
18006         * builtins.c (expand_builtin_signbit): Use it.
18007         * cfgexpand.c (expand_debug_expr): Likewise.
18008         * dojump.c (do_jump): Likewise.
18009         (do_compare_and_jump): Likewise.
18010         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
18011         * expmed.c (make_tree): Likewise.
18012         * expr.c (expand_expr_real_2): Likewise.
18013         (expand_expr_real_1): Likewise.
18014         (try_casesi): Likewise.
18015         * fold-const-call.c (fold_const_call_ss): Likewise.
18016         * fold-const.c (unextend): Likewise.
18017         (extract_muldiv_1): Likewise.
18018         (fold_single_bit_test): Likewise.
18019         (native_encode_int): Likewise.
18020         (native_encode_string): Likewise.
18021         (native_interpret_int): Likewise.
18022         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
18023         * internal-fn.c (expand_addsub_overflow): Likewise.
18024         (expand_neg_overflow): Likewise.
18025         (expand_mul_overflow): Likewise.
18026         (expand_arith_overflow): Likewise.
18027         * match.pd: Likewise.
18028         * stor-layout.c (layout_type): Likewise.
18029         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
18030         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
18031         * tree-ssanames.c (get_range_info): Likewise.
18032         * tree-switch-conversion.c (array_value_type) Likewise.
18033         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
18034         (vect_recog_divmod_pattern): Likewise.
18035         (vect_recog_mixed_size_cond_pattern): Likewise.
18036         * tree-vrp.c (extract_range_basic): Likewise.
18037         (simplify_float_conversion_using_ranges): Likewise.
18038         * tree.c (int_fits_type_p): Likewise.
18039         * ubsan.c (instrument_bool_enum_load): Likewise.
18040         * varasm.c (mergeable_string_section): Likewise.
18041         (narrowing_initializer_constant_valid_p): Likewise.
18042         (output_constant): Likewise.
18043
18044 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18045             Alan Hayward  <alan.hayward@arm.com>
18046             David Sherwood  <david.sherwood@arm.com>
18047
18048         * machmode.h (NARROWEST_INT_MODE): New macro.
18049         * expr.c (alignment_for_piecewise_move): Use it instead of
18050         GET_CLASS_NARROWEST_MODE (MODE_INT).
18051         (push_block): Likewise.
18052         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
18053         Likewise.
18054         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18055
18056 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18057             Alan Hayward  <alan.hayward@arm.com>
18058             David Sherwood  <david.sherwood@arm.com>
18059
18060         * postreload.c (move2add_valid_value_p): Change the type of the
18061         mode parameter to scalar_int_mode.
18062         (move2add_use_add2_insn): Add a mode parameter and use it instead
18063         of GET_MODE (reg).
18064         (move2add_use_add3_insn): Likewise.
18065         (reload_cse_move2add): Update accordingly.
18066
18067 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18068             Alan Hayward  <alan.hayward@arm.com>
18069             David Sherwood  <david.sherwood@arm.com>
18070
18071         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
18072         double-word mode.
18073         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
18074         * optabs.c (expand_unop): Likewise.
18075
18076 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18077             Alan Hayward  <alan.hayward@arm.com>
18078             David Sherwood  <david.sherwood@arm.com>
18079
18080         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
18081         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
18082         (popcount_loc_descriptor): Likewise.
18083         (bswap_loc_descriptor): Likewise.
18084         (rotate_loc_descriptor): Likewise.
18085         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
18086         calling the functions above.
18087
18088 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18089             Alan Hayward  <alan.hayward@arm.com>
18090             David Sherwood  <david.sherwood@arm.com>
18091
18092         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
18093         checks.
18094         (try_combine): Likewise.
18095         (simplify_if_then_else): Likewise.
18096         * cse.c (cse_insn): Likewise.
18097         * dwarf2out.c (mem_loc_descriptor): Likewise.
18098         * emit-rtl.c (gen_lowpart_common): Likewise.
18099         * simplify-rtx.c (simplify_truncation): Likewise.
18100         (simplify_binary_operation_1): Likewise.
18101         (simplify_const_relational_operation): Likewise.
18102         (simplify_ternary_operation): Likewise.
18103         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
18104
18105 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18106             Alan Hayward  <alan.hayward@arm.com>
18107             David Sherwood  <david.sherwood@arm.com>
18108
18109         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
18110         * reload.c (push_reload): Likewise.
18111         (find_reloads): Likewise.
18112
18113 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18114             Alan Hayward  <alan.hayward@arm.com>
18115             David Sherwood  <david.sherwood@arm.com>
18116
18117         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
18118         (make_compound_operation_int): Likewise.
18119         (change_zero_ext): Likewise.
18120         * expr.c (convert_move): Likewise.
18121         (convert_modes): Likewise.
18122         * fwprop.c (forward_propagate_subreg): Likewise.
18123         * loop-iv.c (get_biv_step_1): Likewise.
18124         * optabs.c (widen_operand): Likewise.
18125         * postreload.c (move2add_valid_value_p): Likewise.
18126         * recog.c (simplify_while_replacing): Likewise.
18127         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18128         (simplify_binary_operation_1): Likewise.  Remove redundant
18129         mode equality check.
18130
18131 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18132             Alan Hayward  <alan.hayward@arm.com>
18133             David Sherwood  <david.sherwood@arm.com>
18134
18135         * combine.c (combine_simplify_rtx): Add checks for
18136         is_a <scalar_int_mode>.
18137         (simplify_if_then_else): Likewise.
18138         (make_field_assignment): Likewise.
18139         (simplify_comparison): Likewise.
18140         * ifcvt.c (noce_try_bitop): Likewise.
18141         * loop-invariant.c (canonicalize_address_mult): Likewise.
18142         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18143
18144 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18145             Alan Hayward  <alan.hayward@arm.com>
18146             David Sherwood  <david.sherwood@arm.com>
18147
18148         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
18149         is_a <scalar_int_mode> instead of != BLKmode.
18150
18151 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18152             Alan Hayward  <alan.hayward@arm.com>
18153             David Sherwood  <david.sherwood@arm.com>
18154
18155         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
18156         instead of != VOIDmode.
18157         * combine.c (if_then_else_cond): Likewise.
18158         (change_zero_ext): Likewise.
18159         * dwarf2out.c (mem_loc_descriptor): Likewise.
18160         (loc_descriptor): Likewise.
18161         * rtlanal.c (canonicalize_condition): Likewise.
18162         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
18163
18164 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18165             Alan Hayward  <alan.hayward@arm.com>
18166             David Sherwood  <david.sherwood@arm.com>
18167
18168         * simplify-rtx.c (simplify_binary_operation_1): Use
18169         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
18170
18171 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18172             Alan Hayward  <alan.hayward@arm.com>
18173             David Sherwood  <david.sherwood@arm.com>
18174
18175         * wide-int.h (int_traits<unsigned char>) New class.
18176         (int_traits<unsigned short>) Likewise.
18177         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
18178         Use GET_MODE_UNIT_PRECISION and remove redundant test for
18179         SCALAR_INT_MODE_P.
18180         * combine.c (set_nonzero_bits_and_sign_copies): Use
18181         is_a <scalar_int_mode>.
18182         (find_split_point): Likewise.
18183         (combine_simplify_rtx): Likewise.
18184         (simplify_logical): Likewise.
18185         (expand_compound_operation): Likewise.
18186         (expand_field_assignment): Likewise.
18187         (make_compound_operation): Likewise.
18188         (extended_count): Likewise.
18189         (change_zero_ext): Likewise.
18190         (simplify_comparison): Likewise.
18191         * dwarf2out.c (scompare_loc_descriptor): Likewise.
18192         (ucompare_loc_descriptor): Likewise.
18193         (minmax_loc_descriptor): Likewise.
18194         (mem_loc_descriptor): Likewise.
18195         (loc_descriptor): Likewise.
18196         * expmed.c (init_expmed_one_mode): Likewise.
18197         * lra-constraints.c (lra_constraint_offset): Likewise.
18198         * optabs.c (prepare_libcall_arg): Likewise.
18199         * postreload.c (move2add_note_store): Likewise.
18200         * reload.c (operands_match_p): Likewise.
18201         * rtl.h (load_extend_op): Likewise.
18202         * rtlhooks.c (gen_lowpart_general): Likewise.
18203         * simplify-rtx.c (simplify_truncation): Likewise.
18204         (simplify_unary_operation_1): Likewise.
18205         (simplify_binary_operation_1): Likewise.
18206         (simplify_const_binary_operation): Likewise.
18207         (simplify_const_relational_operation): Likewise.
18208         (simplify_subreg): Likewise.
18209         * stor-layout.c (bitwise_mode_for_mode): Likewise.
18210         * var-tracking.c (adjust_mems): Likewise.
18211         (prepare_call_arguments): Likewise.
18212
18213 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18214             Alan Hayward  <alan.hayward@arm.com>
18215             David Sherwood  <david.sherwood@arm.com>
18216
18217         * machmode.h (is_int_mode): New fuction.
18218         * combine.c (find_split_point): Use it.
18219         (combine_simplify_rtx): Likewise.
18220         (simplify_if_then_else): Likewise.
18221         (simplify_set): Likewise.
18222         (simplify_shift_const_1): Likewise.
18223         (simplify_comparison): Likewise.
18224         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
18225         * cse.c (notreg_cost): Likewise.
18226         (cse_insn): Likewise.
18227         * cselib.c (cselib_lookup_1): Likewise.
18228         * dojump.c (do_jump_1): Likewise.
18229         (do_compare_rtx_and_jump): Likewise.
18230         * dse.c (get_call_args): Likewise.
18231         * dwarf2out.c (rtl_for_decl_init): Likewise.
18232         (native_encode_initializer): Likewise.
18233         * expmed.c (emit_store_flag_1): Likewise.
18234         (emit_store_flag): Likewise.
18235         * expr.c (convert_modes): Likewise.
18236         (store_field): Likewise.
18237         (expand_expr_real_1): Likewise.
18238         * fold-const.c (fold_read_from_constant_string): Likewise.
18239         * gimple-ssa-sprintf.c (get_format_string): Likewise.
18240         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
18241         * optabs.c (expand_binop): Likewise.
18242         (expand_unop): Likewise.
18243         (expand_abs_nojump): Likewise.
18244         (expand_one_cmpl_abs_nojump): Likewise.
18245         * simplify-rtx.c (mode_signbit_p): Likewise.
18246         (val_signbit_p): Likewise.
18247         (val_signbit_known_set_p): Likewise.
18248         (val_signbit_known_clear_p): Likewise.
18249         (simplify_relational_operation_1): Likewise.
18250         * tree.c (vector_type_mode): Likewise.
18251
18252 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18253             Alan Hayward  <alan.hayward@arm.com>
18254             David Sherwood  <david.sherwood@arm.com>
18255
18256         * machmode.h (smallest_mode_for_size): Fix formatting.
18257         (smallest_int_mode_for_size): New function.
18258         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
18259         instead of smallest_mode_for_size.
18260         * combine.c (make_extraction): Likewise.
18261         * config/arc/arc.c (arc_expand_movmem): Likewise.
18262         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
18263         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
18264         * config/s390/s390.c (s390_expand_insv): Likewise.
18265         * config/sparc/sparc.c (assign_int_registers): Likewise.
18266         * config/spu/spu.c (spu_function_value): Likewise.
18267         (spu_function_arg): Likewise.
18268         * coverage.c (get_gcov_type): Likewise.
18269         (get_gcov_unsigned_t): Likewise.
18270         * dse.c (find_shift_sequence): Likewise.
18271         * expmed.c (store_bit_field_1): Likewise.
18272         * expr.c (convert_move): Likewise.
18273         (store_field): Likewise.
18274         * internal-fn.c (expand_arith_overflow): Likewise.
18275         * optabs-query.c (get_best_extraction_insn): Likewise.
18276         * optabs.c (expand_twoval_binop_libfunc): Likewise.
18277         * stor-layout.c (layout_type): Likewise.
18278         (initialize_sizetypes): Likewise.
18279         * targhooks.c (default_get_mask_mode): Likewise.
18280         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
18281
18282 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18283             Alan Hayward  <alan.hayward@arm.com>
18284             David Sherwood  <david.sherwood@arm.com>
18285
18286         * machmode.h (opt_mode::else_blk): New function.
18287         (int_mode_for_mode): Declare.
18288         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
18289         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
18290         return type.
18291         * cfgexpand.c (expand_debug_expr): Likewise.
18292         * combine.c (gen_lowpart_or_truncate): Likewise.
18293         (gen_lowpart_for_combine): Likewise.
18294         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
18295         * config/avr/avr.c (avr_to_int_mode): Likewise.
18296         (avr_out_plus_1): Likewise.
18297         (avr_out_plus): Likewise.
18298         (avr_out_round): Likewise.
18299         * config/i386/i386.c (ix86_split_to_parts): Likewise.
18300         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
18301         (s390_expand_vcond): Likewise.
18302         * config/spu/spu.c (spu_split_immediate): Likewise.
18303         (spu_expand_mov): Likewise.
18304         * dse.c (get_stored_val): Likewise.
18305         * expmed.c (store_bit_field_1): Likewise.
18306         (convert_extracted_bit_field): Use int_mode_for_mode instead of
18307         int_mode_for_size.
18308         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
18309         (extract_low_bits): Likewise.
18310         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
18311         handling rather than repeating the check.
18312         (emit_group_store): Likewise.
18313         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
18314         * optabs.c (expand_absneg_bit): Likewise.
18315         (expand_copysign_absneg): Likewise.
18316         (expand_copysign_bit): Likewise.
18317         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
18318         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
18319         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
18320         * var-tracking.c (prepare_call_arguments):  Likewise.
18321         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
18322         int_mode_for_mode instead of mode_for_size.
18323         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
18324
18325 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18326             Alan Hayward  <alan.hayward@arm.com>
18327             David Sherwood  <david.sherwood@arm.com>
18328
18329         * machmode.h (int_mode_for_size): New function.
18330         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
18331         instead of mode_for_size.
18332         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
18333         explicit.
18334         * combine.c (expand_field_assignment): Use int_mode_for_size
18335         instead of mode_for_size.
18336         (make_extraction): Likewise.
18337         (simplify_shift_const_1): Likewise.
18338         (simplify_comparison): Likewise.
18339         * dojump.c (do_jump): Likewise.
18340         * dwarf2out.c (mem_loc_descriptor): Likewise.
18341         * emit-rtl.c (init_derived_machine_modes): Likewise.
18342         * expmed.c (flip_storage_order): Likewise.
18343         (convert_extracted_bit_field): Likewise.
18344         * expr.c (copy_blkmode_from_reg): Likewise.
18345         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
18346         * internal-fn.c (expand_mul_overflow): Likewise.
18347         * lower-subreg.c (simple_move): Likewise.
18348         * optabs-libfuncs.c (init_optabs): Likewise.
18349         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18350         * tree.c (vector_type_mode): Likewise.
18351         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
18352         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
18353         * tree-vect-generic.c (expand_vector_parallel): Likewise.
18354         * tree-vect-stmts.c (vectorizable_load): Likewise.
18355         (vectorizable_store): Likewise.
18356
18357 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18358             Alan Hayward  <alan.hayward@arm.com>
18359             David Sherwood  <david.sherwood@arm.com>
18360
18361         * coretypes.h (pod_mode): New type.
18362         (scalar_int_mode_pod): New typedef.
18363         * machmode.h (pod_mode): New class.
18364         (int_n_data_t::m): Change type to scalar_int_mode_pod.
18365         * genmodes.c (emit_mode_int_n): Update accordingly.
18366         * lower-subreg.h (target_lower_subreg): Change type to
18367         scalar_int_mode_pod.
18368         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
18369         scalar_int_mode_pod.
18370
18371 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18372             Alan Hayward  <alan.hayward@arm.com>
18373             David Sherwood  <david.sherwood@arm.com>
18374
18375         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
18376         machine_mode to scalar_int_mode.
18377         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
18378         (rs6000_option_override_internal): Remove cast to int.
18379         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
18380         machine_mode to scalar_int_mode.
18381         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
18382         (rs6000_option_override_internal): Remove cast to int.
18383         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
18384         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
18385         to machine_mode.
18386         * config/s390/s390.c (s390_expand_builtin): Likewise.
18387         * coretypes.h (scalar_int_mode): New type.
18388         (opt_scalar_int_mode): New typedef.
18389         * machmode.h (scalar_int_mode): New class.
18390         (scalar_int_mode::includes_p): New function.
18391         (byte_mode): Change type to scalar_int_mode.
18392         (word_mode): Likewise.
18393         (ptr_mode): Likewise.
18394         * emit-rtl.c (byte_mode): Likewise.
18395         (word_mode): Likewise.
18396         (ptr_mode): Likewise.
18397         (init_derived_machine_modes): Update accordingly.
18398         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
18399         and MODE_PARTIAL_INT.
18400         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
18401         opt_scalar_int_mode.
18402
18403 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18404             Alan Hayward  <alan.hayward@arm.com>
18405             David Sherwood  <david.sherwood@arm.com>
18406
18407         * target.def (libgcc_floating_mode_supported_p): Take a
18408         scalar_float_mode.
18409         * doc/tm.texi: Regenerate.
18410         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
18411         scalar_float_mode.
18412         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18413         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
18414         Likewise.
18415
18416 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18417             Alan Hayward  <alan.hayward@arm.com>
18418             David Sherwood  <david.sherwood@arm.com>
18419
18420         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
18421         * doc/tm.texi: Regenerate.
18422         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
18423         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
18424         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
18425         * targhooks.h (default_floatn_mode): Likewise.
18426         * targhooks.c (default_floatn_mode): Likewise.
18427         * tree.c (build_common_tree_nodes): Update accordingly.
18428
18429 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18430             Alan Hayward  <alan.hayward@arm.com>
18431             David Sherwood  <david.sherwood@arm.com>
18432
18433         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
18434         (mode_iterator::iterate_p): Likewise.
18435         (mode_iterator::get_wider): Likewise.
18436         * expr.c (init_expr_target): Use opt_scalar_float_mode.
18437
18438 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18439             Alan Hayward  <alan.hayward@arm.com>
18440             David Sherwood  <david.sherwood@arm.com>
18441
18442         * coretypes.h (opt_scalar_float_mode): New typedef.
18443         * machmode.h (float_mode_for_size): New function.
18444         * emit-rtl.c (double_mode): Delete.
18445         (init_emit_once): Use float_mode_for_size.
18446         * stor-layout.c (layout_type): Likewise.
18447         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
18448
18449 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18450             Alan Hayward  <alan.hayward@arm.com>
18451             David Sherwood  <david.sherwood@arm.com>
18452
18453         * output.h (assemble_real): Take a scalar_float_mode.
18454         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
18455         * config/arm/arm.md (consttable_4): Likewise.
18456         (consttable_8): Likewise.
18457         (consttable_16): Likewise.
18458         * config/mips/mips.md (consttable_float): Likewise.
18459         * config/s390/s390.c (s390_output_pool_entry): Likewise.
18460         * varasm.c (assemble_real): Take a scalar_float_mode.
18461         (output_constant_pool_2): Update accordingly.
18462         (output_constant): Likewise.
18463
18464 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18465             Alan Hayward  <alan.hayward@arm.com>
18466             David Sherwood  <david.sherwood@arm.com>
18467
18468         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
18469         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
18470         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
18471         (native_encode_real): Likewise.
18472         (native_interpret_real): Likewise.
18473         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
18474         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18475
18476 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18477             Alan Hayward  <alan.hayward@arm.com>
18478             David Sherwood  <david.sherwood@arm.com>
18479
18480         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
18481         <scalar_float_mode>.  Simplify.
18482         (gen_extend_conv_libfunc): Likewise.
18483
18484 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18485             Alan Hayward  <alan.hayward@arm.com>
18486             David Sherwood  <david.sherwood@arm.com>
18487
18488         * coretypes.h (scalar_float_mode): New type.
18489         * machmode.h (mode_traits::from_int): Use machine_mode if
18490         USE_ENUM_MODES is defined.
18491         (is_a): New function.
18492         (as_a): Likewise.
18493         (dyn_cast): Likewise.
18494         (scalar_float_mode): New class.
18495         (scalar_float_mode::includes_p): New function.
18496         (is_float_mode): Likewise.
18497         * gdbhooks.py (MachineModePrinter): New class.
18498         (build_pretty_printer): Use it for scalar_float_mode.
18499         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
18500         (format_helper::format_helper): Turn into a template.
18501         * genmodes.c (get_mode_class): New function.
18502         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
18503         or machine_mode if none.
18504         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
18505         as_a <scalar_float_mode>.
18506         * dwarf2out.c (mem_loc_descriptor): Likewise.
18507         (insert_float): Likewise.
18508         (add_const_value_attribute): Likewise.
18509         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18510         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
18511         (expand_unop): Update accordingly.
18512         (expand_abs_nojump): Likewise.
18513         (expand_copysign_absneg): Take a scalar_float_mode.
18514         (expand_copysign_bit): Likewise.
18515         (expand_copysign): Update accordingly.
18516
18517 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18518             Alan Hayward  <alan.hayward@arm.com>
18519             David Sherwood  <david.sherwood@arm.com>
18520
18521         * coretypes.h (opt_mode): New class.
18522         * machmode.h (opt_mode): Likewise.
18523         (opt_mode::else_void): New function.
18524         (opt_mode::require): Likewise.
18525         (opt_mode::exists): Likewise.
18526         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
18527         (GET_MODE_2XWIDER_MODE): Likewise.
18528         (mode_iterator::get_wider): Update accordingly.
18529         (mode_iterator::get_2xwider): Likewise.
18530         (mode_iterator::get_known_wider): Likewise, turning into a template.
18531         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
18532         forcing a wider mode to exist.
18533         * config/cr16/cr16.h (LONG_REG_P): Likewise.
18534         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18535         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
18536         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
18537         * lower-subreg.c (init_lower_subreg): Likewise.
18538         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
18539         on the final iteration.
18540         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
18541         a wider mode exists before asking for a move pattern.
18542         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
18543         forcing a wider mode to exist.
18544         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
18545         returning false if no such mode exists.
18546         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
18547         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
18548         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
18549         Avoid checking for a MODE_INT if we already know the mode is not a
18550         SCALAR_INT_MODE_P.
18551         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
18552         forcing a wider mode to exist.
18553         (expmed_mult_highpart_optab): Likewise.
18554         (expmed_mult_highpart): Likewise.
18555         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
18556         using else_void.
18557         * lto-streamer-in.c (lto_input_mode_table): Likewise.
18558         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
18559         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
18560         * internal-fn.c (expand_mul_overflow): Update use of
18561         GET_MODE_2XWIDER_MODE.
18562         * omp-low.c (omp_clause_aligned_alignment): Likewise.
18563         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
18564         GET_MODE_WIDER_MODE.
18565         (convert_plusminus_to_widen): Likewise.
18566         * tree-switch-conversion.c (array_value_type): Likewise.
18567         * var-tracking.c (emit_note_insn_var_location): Likewise.
18568         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18569         Return false inside rather than outside the loop if no wider mode
18570         exists
18571         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
18572         and GET_MODE_2XWIDER_MODE
18573         (can_compare_p): Use else_void.
18574         * gdbhooks.py (OptMachineModePrinter): New class.
18575         (build_pretty_printer): Use it for opt_mode.
18576
18577 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18578             Alan Hayward  <alan.hayward@arm.com>
18579             David Sherwood  <david.sherwood@arm.com>
18580
18581         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
18582         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
18583
18584 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18585             Alan Hayward  <alan.hayward@arm.com>
18586             David Sherwood  <david.sherwood@arm.com>
18587
18588         * machmode.h (mode_traits): New structure.
18589         (get_narrowest_mode): New function.
18590         (mode_iterator::start): Likewise.
18591         (mode_iterator::iterate_p): Likewise.
18592         (mode_iterator::get_wider): Likewise.
18593         (mode_iterator::get_known_wider): Likewise.
18594         (mode_iterator::get_2xwider): Likewise.
18595         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
18596         (FOR_EACH_MODE): Likewise.
18597         (FOR_EACH_MODE_FROM): Likewise.
18598         (FOR_EACH_MODE_UNTIL): Likewise.
18599         (FOR_EACH_WIDER_MODE): Likewise.
18600         (FOR_EACH_2XWIDER_MODE): Likewise.
18601         * builtins.c (expand_builtin_strlen): Use new mode iterators.
18602         * combine.c (simplify_comparison): Likewise
18603         * config/i386/i386.c (type_natural_mode): Likewise.
18604         * cse.c (cse_insn): Likewise.
18605         * dse.c (find_shift_sequence): Likewise.
18606         * emit-rtl.c (init_derived_machine_modes): Likewise.
18607         (init_emit_once): Likewise.
18608         * explow.c (hard_function_value): Likewise.
18609         * expmed.c (extract_fixed_bit_field_1): Likewise.
18610         (extract_bit_field_1): Likewise.
18611         (expand_divmod): Likewise.
18612         (emit_store_flag_1): Likewise.
18613         * expr.c (init_expr_target): Likewise.
18614         (convert_move): Likewise.
18615         (alignment_for_piecewise_move): Likewise.
18616         (widest_int_mode_for_size): Likewise.
18617         (emit_block_move_via_movmem): Likewise.
18618         (copy_blkmode_to_reg): Likewise.
18619         (set_storage_via_setmem): Likewise.
18620         (compress_float_constant): Likewise.
18621         * omp-low.c (omp_clause_aligned_alignment): Likewise.
18622         * optabs-query.c (get_best_extraction_insn): Likewise.
18623         * optabs.c (expand_binop): Likewise.
18624         (expand_twoval_unop): Likewise.
18625         (expand_twoval_binop): Likewise.
18626         (widen_leading): Likewise.
18627         (widen_bswap): Likewise.
18628         (expand_parity): Likewise.
18629         (expand_unop): Likewise.
18630         (prepare_cmp_insn): Likewise.
18631         (prepare_float_lib_cmp): Likewise.
18632         (expand_float): Likewise.
18633         (expand_fix): Likewise.
18634         (expand_sfix_optab): Likewise.
18635         * postreload.c (move2add_use_add2_insn): Likewise.
18636         * reg-stack.c (reg_to_stack): Likewise.
18637         * reginfo.c (choose_hard_reg_mode): Likewise.
18638         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18639         * stor-layout.c (mode_for_size): Likewise.
18640         (smallest_mode_for_size): Likewise.
18641         (mode_for_vector): Likewise.
18642         (finish_bitfield_representative): Likewise.
18643         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
18644         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
18645         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
18646         * var-tracking.c (prepare_call_arguments): Likewise.
18647
18648 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18649             Alan Hayward  <alan.hayward@arm.com>
18650             David Sherwood  <david.sherwood@arm.com>
18651
18652         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
18653         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
18654         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
18655         * machmode.h (mode_size): Move earlier in file.
18656         (mode_precision): Likewise.
18657         (mode_inner): Likewise.
18658         (mode_nunits): Likewise.
18659         (mode_unit_size): Likewise.
18660         (unit_unit_precision): Likewise.
18661         (mode_wider): Likewise.
18662         (mode_2xwider): Likewise.
18663         (machine_mode): New class.
18664         (mode_to_bytes): New function.
18665         (mode_to_bits): Likewise.
18666         (mode_to_precision): Likewise.
18667         (mode_to_inner): Likewise.
18668         (mode_to_unit_size): Likewise.
18669         (mode_to_unit_precision): Likewise.
18670         (mode_to_nunits): Likewise.
18671         (GET_MODE_SIZE): Use mode_to_bytes.
18672         (GET_MODE_BITSIZE): Use mode_to_bits.
18673         (GET_MODE_PRECISION): Use mode_to_precision.
18674         (GET_MODE_INNER): Use mode_to_inner.
18675         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
18676         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
18677         (GET_MODE_NUNITS): Use mode_to_nunits.
18678         * system.h (ALWAYS_INLINE): New macro.
18679         * config/powerpcspe/powerpcspe-c.c
18680         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
18681         int for arg1_mode and arg2_mode.
18682
18683 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18684             Alan Hayward  <alan.hayward@arm.com>
18685             David Sherwood  <david.sherwood@arm.com>
18686
18687         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
18688         Prefix mode names with E_ in case statements.
18689         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18690         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
18691         (aarch64_split_simd_move): Likewise.
18692         (aarch64_gen_storewb_pair): Likewise.
18693         (aarch64_gen_loadwb_pair): Likewise.
18694         (aarch64_gen_store_pair): Likewise.
18695         (aarch64_gen_load_pair): Likewise.
18696         (aarch64_get_condition_code_1): Likewise.
18697         (aarch64_constant_pool_reload_icode): Likewise.
18698         (get_rsqrte_type): Likewise.
18699         (get_rsqrts_type): Likewise.
18700         (get_recpe_type): Likewise.
18701         (get_recps_type): Likewise.
18702         (aarch64_gimplify_va_arg_expr): Likewise.
18703         (aarch64_simd_container_mode): Likewise.
18704         (aarch64_emit_load_exclusive): Likewise.
18705         (aarch64_emit_store_exclusive): Likewise.
18706         (aarch64_expand_compare_and_swap): Likewise.
18707         (aarch64_gen_atomic_cas): Likewise.
18708         (aarch64_emit_bic): Likewise.
18709         (aarch64_emit_atomic_swap): Likewise.
18710         (aarch64_emit_atomic_load_op): Likewise.
18711         (aarch64_evpc_trn): Likewise.
18712         (aarch64_evpc_uzp): Likewise.
18713         (aarch64_evpc_zip): Likewise.
18714         (aarch64_evpc_ext): Likewise.
18715         (aarch64_evpc_rev): Likewise.
18716         (aarch64_evpc_dup): Likewise.
18717         (aarch64_gen_ccmp_first): Likewise.
18718         (aarch64_gen_ccmp_next): Likewise.
18719         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
18720         (alpha_emit_xfloating_libcall): Likewise.
18721         (emit_insxl): Likewise.
18722         (alpha_arg_type): Likewise.
18723         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
18724         (arc_preferred_simd_mode): Likewise.
18725         (arc_secondary_reload): Likewise.
18726         (get_arc_condition_code): Likewise.
18727         (arc_print_operand): Likewise.
18728         (arc_legitimate_constant_p): Likewise.
18729         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18730         * config/arc/arc.md (casesi_load): Likewise.
18731         (casesi_compact_jump): Likewise.
18732         * config/arc/predicates.md (proper_comparison_operator): Likewise.
18733         (cc_use_register): Likewise.
18734         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18735         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
18736         (arm_init_iwmmxt_builtins): Likewise.
18737         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
18738         (neon_expand_vector_init): Likewise.
18739         (arm_attr_length_move_neon): Likewise.
18740         (maybe_get_arm_condition_code): Likewise.
18741         (arm_emit_vector_const): Likewise.
18742         (arm_preferred_simd_mode): Likewise.
18743         (arm_output_iwmmxt_tinsr): Likewise.
18744         (thumb1_output_casesi): Likewise.
18745         (thumb2_output_casesi): Likewise.
18746         (arm_emit_load_exclusive): Likewise.
18747         (arm_emit_store_exclusive): Likewise.
18748         (arm_expand_compare_and_swap): Likewise.
18749         (arm_evpc_neon_vuzp): Likewise.
18750         (arm_evpc_neon_vzip): Likewise.
18751         (arm_evpc_neon_vrev): Likewise.
18752         (arm_evpc_neon_vtrn): Likewise.
18753         (arm_evpc_neon_vext): Likewise.
18754         (arm_validize_comparison): Likewise.
18755         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
18756         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
18757         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
18758         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
18759         (c6x_preferred_simd_mode): Likewise.
18760         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
18761         (epiphany_rtx_costs): Likewise.
18762         * config/epiphany/predicates.md (proper_comparison_operator):
18763         Likewise.
18764         * config/frv/frv.c (condexec_memory_operand): Likewise.
18765         (frv_emit_move): Likewise.
18766         (output_move_single): Likewise.
18767         (output_condmove_single): Likewise.
18768         (frv_hard_regno_mode_ok): Likewise.
18769         (frv_matching_accg_mode): Likewise.
18770         * config/h8300/h8300.c (split_adds_subs): Likewise.
18771         (h8300_rtx_costs): Likewise.
18772         (h8300_print_operand): Likewise.
18773         (compute_mov_length): Likewise.
18774         (output_logical_op): Likewise.
18775         (compute_logical_op_length): Likewise.
18776         (compute_logical_op_cc): Likewise.
18777         (h8300_shift_needs_scratch_p): Likewise.
18778         (output_a_shift): Likewise.
18779         (compute_a_shift_length): Likewise.
18780         (compute_a_shift_cc): Likewise.
18781         (expand_a_rotate): Likewise.
18782         (output_a_rotate): Likewise.
18783         * config/i386/i386.c (classify_argument): Likewise.
18784         (function_arg_advance_32): Likewise.
18785         (function_arg_32): Likewise.
18786         (function_arg_64): Likewise.
18787         (function_value_64): Likewise.
18788         (ix86_gimplify_va_arg): Likewise.
18789         (ix86_legitimate_constant_p): Likewise.
18790         (put_condition_code): Likewise.
18791         (split_double_mode): Likewise.
18792         (ix86_avx256_split_vector_move_misalign): Likewise.
18793         (ix86_expand_vector_logical_operator): Likewise.
18794         (ix86_split_idivmod): Likewise.
18795         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
18796         (ix86_build_const_vector): Likewise.
18797         (ix86_build_signbit_mask): Likewise.
18798         (ix86_match_ccmode): Likewise.
18799         (ix86_cc_modes_compatible): Likewise.
18800         (ix86_expand_branch): Likewise.
18801         (ix86_expand_sse_cmp): Likewise.
18802         (ix86_expand_sse_movcc): Likewise.
18803         (ix86_expand_int_sse_cmp): Likewise.
18804         (ix86_expand_vec_perm_vpermi2): Likewise.
18805         (ix86_expand_vec_perm): Likewise.
18806         (ix86_expand_sse_unpack): Likewise.
18807         (ix86_expand_int_addcc): Likewise.
18808         (ix86_split_to_parts): Likewise.
18809         (ix86_vectorize_builtin_gather): Likewise.
18810         (ix86_vectorize_builtin_scatter): Likewise.
18811         (avx_vpermilp_parallel): Likewise.
18812         (inline_memory_move_cost): Likewise.
18813         (ix86_tieable_integer_mode_p): Likewise.
18814         (x86_maybe_negate_const_int): Likewise.
18815         (ix86_expand_vector_init_duplicate): Likewise.
18816         (ix86_expand_vector_init_one_nonzero): Likewise.
18817         (ix86_expand_vector_init_one_var): Likewise.
18818         (ix86_expand_vector_init_concat): Likewise.
18819         (ix86_expand_vector_init_interleave): Likewise.
18820         (ix86_expand_vector_init_general): Likewise.
18821         (ix86_expand_vector_set): Likewise.
18822         (ix86_expand_vector_extract): Likewise.
18823         (emit_reduc_half): Likewise.
18824         (ix86_emit_i387_round): Likewise.
18825         (ix86_mangle_type): Likewise.
18826         (ix86_expand_round_sse4): Likewise.
18827         (expand_vec_perm_blend): Likewise.
18828         (canonicalize_vector_int_perm): Likewise.
18829         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
18830         (expand_vec_perm_1): Likewise.
18831         (expand_vec_perm_interleave3): Likewise.
18832         (expand_vec_perm_even_odd_pack): Likewise.
18833         (expand_vec_perm_even_odd_1): Likewise.
18834         (expand_vec_perm_broadcast_1): Likewise.
18835         (ix86_vectorize_vec_perm_const_ok): Likewise.
18836         (ix86_expand_vecop_qihi): Likewise.
18837         (ix86_expand_mul_widen_hilo): Likewise.
18838         (ix86_expand_sse2_abs): Likewise.
18839         (ix86_expand_pextr): Likewise.
18840         (ix86_expand_pinsr): Likewise.
18841         (ix86_preferred_simd_mode): Likewise.
18842         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
18843         * config/i386/sse.md (*andnot<mode>3): Likewise.
18844         (<mask_codefor><code><mode>3<mask_name>): Likewise.
18845         (*<code><mode>3): Likewise.
18846         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
18847         (ia64_expand_atomic_op): Likewise.
18848         (ia64_arg_type): Likewise.
18849         (ia64_mode_to_int): Likewise.
18850         (ia64_scalar_mode_supported_p): Likewise.
18851         (ia64_vector_mode_supported_p): Likewise.
18852         (expand_vec_perm_broadcast): Likewise.
18853         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
18854         (iq2000_function_arg_advance): Likewise.
18855         (iq2000_function_arg): Likewise.
18856         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
18857         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
18858         (m68k_libcall_value): Likewise.
18859         (m68k_function_value): Likewise.
18860         (sched_attr_op_type): Likewise.
18861         * config/mcore/mcore.c (mcore_output_move): Likewise.
18862         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
18863         Likewise.
18864         (microblaze_function_arg): Likewise.
18865         * config/mips/mips.c (mips16_build_call_stub): Likewise.
18866         (mips_print_operand): Likewise.
18867         (mips_mode_ok_for_mov_fmt_p): Likewise.
18868         (mips_vector_mode_supported_p): Likewise.
18869         (mips_preferred_simd_mode): Likewise.
18870         (mips_expand_vpc_loongson_even_odd): Likewise.
18871         (mips_expand_vec_unpack): Likewise.
18872         (mips_expand_vi_broadcast): Likewise.
18873         (mips_expand_vector_init): Likewise.
18874         (mips_expand_vec_reduc): Likewise.
18875         (mips_expand_msa_cmp): Likewise.
18876         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
18877         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
18878         (cc_flags_for_mode): Likewise.
18879         * config/msp430/msp430.c (msp430_print_operand): Likewise.
18880         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
18881         (nds32_output_casesi_pc_relative): Likewise.
18882         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18883         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
18884         (nvptx_gen_unpack): Likewise.
18885         (nvptx_gen_pack): Likewise.
18886         (nvptx_gen_shuffle): Likewise.
18887         (nvptx_gen_wcast): Likewise.
18888         (nvptx_preferred_simd_mode): Likewise.
18889         * config/pa/pa.c (pa_secondary_reload): Likewise.
18890         * config/pa/predicates.md (base14_operand): Likewise.
18891         * config/powerpcspe/powerpcspe-c.c
18892         (altivec_resolve_overloaded_builtin): Likewise.
18893         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
18894         Likewise.
18895         (rs6000_preferred_simd_mode): Likewise.
18896         (output_vec_const_move): Likewise.
18897         (rs6000_expand_vector_extract): Likewise.
18898         (rs6000_split_vec_extract_var): Likewise.
18899         (reg_offset_addressing_ok_p): Likewise.
18900         (rs6000_legitimate_offset_address_p): Likewise.
18901         (rs6000_legitimize_address): Likewise.
18902         (rs6000_emit_set_const): Likewise.
18903         (rs6000_const_vec): Likewise.
18904         (rs6000_emit_move): Likewise.
18905         (spe_build_register_parallel): Likewise.
18906         (rs6000_darwin64_record_arg_recurse): Likewise.
18907         (swap_selector_for_mode): Likewise.
18908         (spe_init_builtins): Likewise.
18909         (paired_init_builtins): Likewise.
18910         (altivec_init_builtins): Likewise.
18911         (do_load_for_compare): Likewise.
18912         (rs6000_generate_compare): Likewise.
18913         (rs6000_expand_float128_convert): Likewise.
18914         (emit_load_locked): Likewise.
18915         (emit_store_conditional): Likewise.
18916         (rs6000_output_function_epilogue): Likewise.
18917         (rs6000_handle_altivec_attribute): Likewise.
18918         (rs6000_function_value): Likewise.
18919         (emit_fusion_gpr_load): Likewise.
18920         (emit_fusion_p9_load): Likewise.
18921         (emit_fusion_p9_store): Likewise.
18922         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
18923         (fusion_gpr_mem_load): Likewise.
18924         (fusion_addis_mem_combo_load): Likewise.
18925         (fusion_addis_mem_combo_store): Likewise.
18926         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
18927         (fusion_gpr_mem_load): Likewise.
18928         (fusion_addis_mem_combo_load): Likewise.
18929         (fusion_addis_mem_combo_store): Likewise.
18930         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18931         Likewise.
18932         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
18933         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
18934         (rs6000_preferred_simd_mode): Likewise.
18935         (output_vec_const_move): Likewise.
18936         (rs6000_expand_vector_extract): Likewise.
18937         (rs6000_split_vec_extract_var): Likewise.
18938         (reg_offset_addressing_ok_p): Likewise.
18939         (rs6000_legitimate_offset_address_p): Likewise.
18940         (rs6000_legitimize_address): Likewise.
18941         (rs6000_emit_set_const): Likewise.
18942         (rs6000_const_vec): Likewise.
18943         (rs6000_emit_move): Likewise.
18944         (rs6000_darwin64_record_arg_recurse): Likewise.
18945         (swap_selector_for_mode): Likewise.
18946         (paired_init_builtins): Likewise.
18947         (altivec_init_builtins): Likewise.
18948         (rs6000_expand_float128_convert): Likewise.
18949         (emit_load_locked): Likewise.
18950         (emit_store_conditional): Likewise.
18951         (rs6000_output_function_epilogue): Likewise.
18952         (rs6000_handle_altivec_attribute): Likewise.
18953         (rs6000_function_value): Likewise.
18954         (emit_fusion_gpr_load): Likewise.
18955         (emit_fusion_p9_load): Likewise.
18956         (emit_fusion_p9_store): Likewise.
18957         * config/rx/rx.c (rx_gen_move_template): Likewise.
18958         (flags_from_mode): Likewise.
18959         * config/s390/predicates.md (s390_alc_comparison): Likewise.
18960         (s390_slb_comparison): Likewise.
18961         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
18962         (s390_vector_mode_supported_p): Likewise.
18963         (s390_cc_modes_compatible): Likewise.
18964         (s390_match_ccmode_set): Likewise.
18965         (s390_canonicalize_comparison): Likewise.
18966         (s390_emit_compare_and_swap): Likewise.
18967         (s390_branch_condition_mask): Likewise.
18968         (s390_rtx_costs): Likewise.
18969         (s390_secondary_reload): Likewise.
18970         (__SECONDARY_RELOAD_CASE): Likewise.
18971         (s390_expand_cs): Likewise.
18972         (s390_preferred_simd_mode): Likewise.
18973         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
18974         * config/sh/sh.c (sh_print_operand): Likewise.
18975         (dump_table): Likewise.
18976         (sh_secondary_reload): Likewise.
18977         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18978         * config/sh/sh.md (casesi_worker_1): Likewise.
18979         (casesi_worker_2): Likewise.
18980         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
18981         (fcc_comparison_operator): Likewise.
18982         * config/sparc/sparc.c (sparc_expand_move): Likewise.
18983         (emit_soft_tfmode_cvt): Likewise.
18984         (sparc_preferred_simd_mode): Likewise.
18985         (output_cbranch): Likewise.
18986         (sparc_print_operand): Likewise.
18987         (sparc_expand_vec_perm_bmask): Likewise.
18988         (vector_init_bshuffle): Likewise.
18989         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
18990         (spu_vector_mode_supported_p): Likewise.
18991         (spu_expand_insv): Likewise.
18992         (spu_emit_branch_or_set): Likewise.
18993         (spu_handle_vector_attribute): Likewise.
18994         (spu_builtin_splats): Likewise.
18995         (spu_builtin_extract): Likewise.
18996         (spu_builtin_promote): Likewise.
18997         (spu_expand_sign_extend): Likewise.
18998         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
18999         (tilegx_simd_int): Likewise.
19000         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
19001         (tilepro_simd_int): Likewise.
19002         * config/v850/v850.c (const_double_split): Likewise.
19003         (v850_print_operand): Likewise.
19004         (ep_memory_offset): Likewise.
19005         * config/vax/vax.c (vax_rtx_costs): Likewise.
19006         (vax_output_int_move): Likewise.
19007         (vax_output_int_add): Likewise.
19008         (vax_output_int_subtract): Likewise.
19009         * config/visium/predicates.md (visium_branch_operator): Likewise.
19010         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
19011         (visium_print_operand_address): Likewise.
19012         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19013         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
19014         (xtensa_expand_conditional_branch): Likewise.
19015         (xtensa_copy_incoming_a7): Likewise.
19016         (xtensa_output_literal): Likewise.
19017         * dfp.c (decimal_real_maxval): Likewise.
19018         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
19019
19020 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19021             Alan Hayward  <alan.hayward@arm.com>
19022             David Sherwood  <david.sherwood@arm.com>
19023
19024         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
19025         (mode_nunits_inline): Likewise.
19026         (mode_inner_inline): Likewise.
19027         (mode_unit_size_inline): Likewise.
19028         (mode_unit_precision_inline): Likewise.
19029         (emit_insn_modes_h): Likewise.  Also emit a #define of the
19030         unprefixed name.
19031         (emit_mode_wider): Add an E_ prefix to mode names.
19032         (emit_mode_complex): Likewise.
19033         (emit_mode_inner): Likewise.
19034         (emit_mode_adjustments): Likewise.
19035         (emit_mode_int_n): Likewise.
19036         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
19037         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
19038         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
19039         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
19040         (CRC32_BUILTIN, ENTRY): Likewise.
19041         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
19042         (aarch64_pop_regs): Likewise.
19043         (aarch64_process_components): Likewise.
19044         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
19045         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
19046         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
19047         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
19048         * config/arm/arm.c (arm_init_libfuncs): Likewise.
19049         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
19050         Likewise.
19051         * config/i386/i386-builtin.def (pcmpestr): Likewise.
19052         (pcmpistr): Likewise.
19053         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
19054         * config/mmix/mmix.c (mmix_output_condition): Likewise.
19055         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
19056         Likewise.
19057         * config/rl78/rl78.c (mduc_regs): Likewise.
19058         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19059         (htm_expand_builtin): Likewise.
19060         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
19061         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
19062         * config/xtensa/xtensa.c (print_operand): Likewise.
19063         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
19064         (NUM_MODE_VECTOR_INT): Likewise.
19065         * genoutput.c (null_operand): Likewise.
19066         (output_operand_data): Likewise.
19067         * genrecog.c (print_parameter_value): Likewise.
19068         * lra.c (debug_operand_data): Likewise.
19069
19070 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19071
19072         * dwarf2out.c (scompare_loc_descriptor_wide)
19073         (scompare_loc_descriptor_narrow): New functions, split out from...
19074         (scompare_loc_descriptor): ...here.
19075         * expmed.c (emit_store_flag_int): New function, split out from...
19076         (emit_store_flag): ...here.
19077
19078 2017-08-30  Richard Biener  <rguenther@suse.de>
19079
19080         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
19081         (dwarf2out_early_finish): Move setting of AT_pubnames from
19082         early debug output to early finish.
19083
19084 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19085
19086         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
19087         and -mdata-region to the assembler.
19088
19089 2017-08-30  Richard Biener  <rguenther@suse.de>
19090
19091         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
19092         attributes.
19093         (gen_subprogram_die): Add DW_AT_object_pointer only early.
19094         (dwarf2out_early_global_decl): Only generate a DIE for the
19095         abstract origin if it doesn't already exist or is a declaration DIE.
19096         (resolve_addr): Do not add the linkage name twice when
19097         generating a stub DIE for the DW_TAG_GNU_call_site target.
19098
19099 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19100
19101         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19102         Use machine_mode rather than int for arg1_mode.
19103
19104 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
19105
19106         PR target/82015
19107         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
19108         that the second argument of the built-in functions to unpack
19109         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
19110         switch statement instead a lot of if statements.
19111         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
19112         Allow 64-bit values to be in Altivec registers as well as
19113         traditional floating point registers.
19114         (pack<mode>, FMOVE128_VSX iterator): Likewise.
19115
19116 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
19117
19118         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
19119         MAX_REGS_PER_ADDRESS == 1.
19120
19121 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
19122
19123         * config/i386/i386.opt (flag_fentry): Do not init to -1.
19124         * config/i386/i386.c (ix86_option_override_internal): Simplify
19125         setting of opts->x_flag_entry.
19126
19127 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19128             Jakub Jelinek  <jakub@redhat.com>
19129             Richard Biener  <rguenther@suse.de>
19130
19131         PR tree-optimization/81503
19132         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
19133         folded constant fits in the target type; reorder tests for clarity.
19134
19135 2017-08-29  Martin Liska  <mliska@suse.cz>
19136
19137         * passes.def: Include pass_lower_switch.
19138         * stmt.c (dump_case_nodes): Remove and move to
19139         tree-switch-conversion.
19140         (case_values_threshold): Likewise.
19141         (expand_switch_as_decision_tree_p): Likewise.
19142         (emit_case_decision_tree): Likewise.
19143         (expand_case): Likewise.
19144         (balance_case_nodes): Likewise.
19145         (node_has_low_bound): Likewise.
19146         (node_has_high_bound): Likewise.
19147         (node_is_bounded): Likewise.
19148         (emit_case_nodes): Likewise.
19149         (struct simple_case_node): New struct.
19150         (add_case_node): Remove.
19151         (emit_case_dispatch_table): Use vector instead of case_list.
19152         (reset_out_edges_aux): Remove.
19153         (compute_cases_per_edge): Likewise.
19154         (expand_case): Build list of simple_case_node.
19155         (expand_sjlj_dispatch_table): Use it.
19156         * tree-switch-conversion.c (struct case_node): Moved from
19157         stmt.c and adjusted.
19158         (emit_case_nodes): Likewise.
19159         (node_has_low_bound): Likewise.
19160         (node_has_high_bound): Likewise.
19161         (node_is_bounded): Likewise.
19162         (case_values_threshold): Likewise.
19163         (reset_out_edges_aux): Likewise.
19164         (compute_cases_per_edge): Likewise.
19165         (add_case_node): Likewise.
19166         (dump_case_nodes): Likewise.
19167         (balance_case_nodes): Likewise.
19168         (expand_switch_as_decision_tree_p): Likewise.
19169         (emit_jump): Likewise.
19170         (emit_case_decision_tree): Likewise.
19171         (try_switch_expansion): Likewise.
19172         (do_jump_if_equal): Likewise.
19173         (emit_cmp_and_jump_insns): Likewise.
19174         (fix_phi_operands_for_edge): New function.
19175         (record_phi_operand_mapping): Likewise.
19176         (class pass_lower_switch): New pass.
19177         (pass_lower_switch::execute): New function.
19178         (make_pass_lower_switch): Likewise.
19179         (conditional_probability):
19180         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
19181         * tree-pass.h: Add make_pass_lower_switch.
19182
19183 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19184
19185         PR target/80993
19186         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
19187         handlers as used.
19188
19189 2017-08-29  Richard Biener  <rguenther@suse.de>
19190
19191         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
19192         we do not add a DW_AT_inline attribute twice.
19193         (gen_subprogram_die): Remove code setting DW_AT_inline on
19194         DECL_ABSTRACT_P nodes.
19195
19196 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
19197
19198         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
19199         calls to internal functions.
19200         (gimplify_modify_expr): Likewise.
19201         * tree-call-cdce.c (use_internal_fn): Likewise.
19202         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
19203         (convert_to_divmod): Set the nothrow flag.
19204         * tree-if-conv.c (predicate_mem_writes):  Likewise.
19205         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19206         (vectorizable_call): Likewise.
19207         (vectorizable_store): Likewise.
19208         (vectorizable_load): Likewise.
19209         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
19210         (vect_recog_mask_conversion_pattern): Likewise.
19211
19212 2017-08-29  Martin Liska  <mliska@suse.cz>
19213
19214         PR other/39851
19215         * gcc.c (driver_handle_option): Add new argument.
19216         * opts-common.c (handle_option): Pass
19217         target_option_override_hook.
19218         * opts-global.c (lang_handle_option): Add new option.
19219         (set_default_handlers):  Add new argument.
19220         (decode_options): Likewise.
19221         * opts.c (target_handle_option): Likewise.
19222         (common_handle_option): Call target_option_override_hook.
19223         * opts.h (struct cl_option_handler_func): Add hook for
19224         target option override.
19225         (struct cl_option_handlers): Likewise.
19226         (set_default_handlers): Add new argument.
19227         (decode_options): Likewise.
19228         (common_handle_option): Likewise.
19229         (target_handle_option): Likewise.
19230         * toplev.c (toplev::main): Pass targetm.target_option.override
19231         hook.
19232
19233 2017-08-29  Richard Biener  <rguenther@suse.de>
19234         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
19235
19236         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
19237         life to the active subtree.
19238
19239 2017-08-28  Jeff Law  <law@redhat.com>
19240
19241         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
19242         derive_equivalences.
19243         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
19244         Code moved into....
19245         (edge_info::derive_equivalences): New private member function
19246
19247         * tree-ssa-dom.c (class edge_info): Changed from a struct
19248         to a class.  Add ctor/dtor, methods and data members.
19249         (edge_info::edge_info): Renamed from allocate_edge_info.
19250         Initialize additional members.
19251         (edge_info::~edge_info): New.
19252         (free_dom_edge_info): Delete the edge info.
19253         (record_edge_info): Use new class & associated member functions.
19254         Tighten forms for testing for edge equivalences.
19255         (record_temporary_equivalences): Iterate over the simple
19256         equivalences rather than assuming there's only one per edge.
19257         (cprop_into_successor_phis): Iterate over the simple
19258         equivalences rather than assuming there's only one per edge.
19259         (optimize_stmt): Use operand_equal_p rather than pointer
19260         equality for mini-DSE code.
19261
19262 2017-08-28  Nathan Sidwell  <nathan@acm.org>
19263
19264         * gcc.c (execute): Fold SIGPIPE handling into switch
19265         statement.  Adjust internal error message.
19266
19267 2017-08-28  Richard Biener  <rguenther@suse.de>
19268
19269         PR debug/81993
19270         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
19271         Do nothing for removed DIEs.
19272
19273 2017-08-28  Richard Biener  <rguenther@suse.de>
19274
19275         PR tree-optimization/81977
19276         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
19277         memcpy.
19278
19279 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
19280
19281         PR target/80640
19282         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
19283         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
19284         using targetm.gen_mem_thread_fence.
19285
19286 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
19287
19288         PR target/81995
19289         * config/i386/i386.md (*<btsc><mode>): Change operand 2
19290         predicate to register_operand.  Reorder operands.
19291         (*btr<mode>): Ditto.
19292         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
19293         (*btr<mode>_mask): Ditto.
19294
19295 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
19296
19297         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
19298         * config/rs6000/xmmintrin.h: New file.
19299         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
19300
19301 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19302
19303         PR target/81504
19304         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
19305         parameter and_insn and return it.
19306         (recombine_lvx_pattern): Insert a copy to ensure availability of
19307         the base register of the copied masking operation at the point of
19308         the instruction replacement.
19309         (recombine_stvx_pattern): Likewise.
19310
19311 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19312
19313         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
19314         undocumented switches.
19315         (-mpower9-dform-vector): Likewise.
19316         (-mpower9-dform): Likewise.
19317         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
19318         comments to delete references to -mpower9-dform* switches.
19319         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
19320         Delete reference to -mpower9-dform* switches, test for
19321         -mpower9-vector instead.
19322         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
19323         (OTHER_P9_VECTOR_MASKS): Likewise.
19324         (POWERPC_MASKS): Likewise.
19325         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
19326         tests against -mpower9-dform* to -mpower9-vector.  Delete code
19327         that checked for -mpower9-dform* consistancy with other options.
19328         Add test for -mpower9-misc to enable other power9 switches.
19329         (rs6000_init_hard_regno_mode_ok): Likewise.
19330         (rs6000_option_override_internal): Likewise.
19331         (rs6000_emit_prologue): Likewise.
19332         (rs6000_emit_epilogue): Likewise.
19333         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
19334         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
19335         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
19336         -mpower9-vector.
19337         (emit_fusion_p9_store): Likewise.
19338         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
19339         resetting these macros if the assembler does not support ISA 3.0
19340         instructions.
19341         (TARGET_P9_DFORM_VECTOR): Likewise.
19342         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
19343         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
19344
19345 2017-08-25  Alan Modra  <amodra@gmail.com>
19346
19347         PR rtl-optimization/81747
19348         * cse.c (cse_extended_basic_block): Don't attempt to record
19349         equivalences for degenerate conditional branches that branch
19350         to their fall-through.
19351
19352 2017-08-24  Martin Sebor  <msebor@redhat.com>
19353
19354         PR middle-end/81908
19355         * gimple-fold.c (size_must_be_zero_p): New function.
19356         (gimple_fold_builtin_memory_op): Call it.
19357
19358 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
19359
19360         * config/rs6000/mm_malloc.h: New file.
19361
19362 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
19363
19364         PR tree-optimization/81913
19365         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
19366         analysis when either IVs in condition can wrap.
19367
19368 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
19369
19370         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
19371         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
19372
19373 2017-08-24  Richard Biener  <rguenther@suse.de>
19374
19375         PR target/81921
19376         * targhooks.c (default_target_can_inline_p): Properly
19377         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
19378         is present and always compare.
19379         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
19380         infer -mfpmath=sse from TARGET_SSE_P.
19381         (ix86_can_inline_p): Properly use target_option_default_node when
19382         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
19383
19384 2017-08-24  Richard Biener  <rguenther@suse.de>
19385
19386         PR debug/81936
19387         * dwarf2out.c (output_die): Handle flag_generate_offload like
19388         flag_generate_lto.
19389         (output_comp_unit): Likewise.
19390         (gen_array_type_die): Likewise.
19391         (dwarf2out_early_finish): Likewise.
19392         (note_variable_value_in_expr): Likewise.
19393         (dwarf2out_finish): Likewise.  Adjust assert.
19394         * cgraphunit.c (symbol_table::compile): Move setting of
19395         flag_generate_offload earlier ...
19396         (symbol_table::finalize_compilation_unit): ... here, before
19397         early debug finalization.
19398
19399 2017-08-24  Richard Biener  <rguenther@suse.de>
19400
19401         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
19402         and ipa-fnsummary.h.
19403         (ix86_can_inline_p): When ix86_fpmath flags do not match
19404         check whether the callee uses FP math at all.
19405
19406 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
19407
19408         PR middle-end/81931
19409         * tree-ssanames.c (get_nonzero_bits): Use element_precision
19410         instead of TYPE_PRECISION.
19411
19412 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
19413             Alan Hayward  <alan.hayward@arm.com>
19414             David Sherwood  <david.sherwood@arm.com>
19415
19416         * combine.c (make_extraction): Use subreg_offset_from_lsb.
19417
19418 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
19419
19420         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
19421         Remove field.
19422         (ix86_frame::stack_realign_allocate): New field.
19423         (struct machine_frame_state): Modify comments.
19424         (machine_frame_state::sp_realigned_fp_end): New field.
19425         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
19426         layout calculation.
19427         (sp_valid_at): Add assertion to assure no attempt to access invalid
19428         offset of a realigned stack.
19429         (fp_valid_at): Likewise.
19430         (choose_baseaddr): Modify comments.
19431         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
19432         ix86_expand_prologue.
19433         (ix86_expand_prologue): Modify stack realignment and allocation.
19434         (ix86_expand_epilogue): Modify comments.
19435         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
19436         avx2_runtime, avx512f, and avx512f_runtime.
19437
19438 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
19439
19440         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
19441         (mstackrealign): Do not init to -1.
19442         * config/i386/i386.c (ix86_option_override_internal):
19443         Check opts_set, not opts when setting default value of
19444         opts->x_ix86_force_align_arg_pointer.
19445
19446 2017-08-23  Richard Biener  <rguenther@suse.de>
19447
19448         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
19449         lang_hooks.decl_printable_name.
19450         * print-rtl-function.c (print_rtx_function): Likewise.
19451         * tree-pretty-print.c (dump_function_header): Likewise.
19452
19453 2017-08-23  Richard Biener  <rguenther@suse.de>
19454
19455         PR lto/81940
19456         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
19457         -g0 at compile-time.
19458
19459 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19460
19461         PR middle-end/19706
19462         * doc/sourcebuild.texi (Other hardware attributes):
19463         Document xorsign.
19464
19465 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19466
19467         PR middle-end/19706
19468         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
19469         Fix single-use check.
19470
19471 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19472
19473         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
19474
19475 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19476
19477         * doc/install.texi: Modify to add more details on running selected
19478         tests.
19479
19480 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19481
19482         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
19483         is combined with -mabi=ms.
19484         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
19485         ms_abi.
19486
19487 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19488
19489         PR tree-optimization/81488
19490         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
19491         and cached_basis fields.
19492         (MAX_SPREAD): New constant.
19493         (alloc_cand_and_find_basis): Initialize new fields.
19494         (clear_visited): New function.
19495         (create_phi_basis_1): Rename from create_phi_basis, set visited
19496         and cached_basis fields.
19497         (create_phi_basis): New wrapper function.
19498         (phi_add_costs_1): Rename from phi_add_costs, add spread
19499         parameter, set visited field, short-circuit when limits reached.
19500         (phi_add_costs): New wrapper function.
19501         (record_phi_increments_1): Rename from record_phi_increments, set
19502         visited field.
19503         (record_phi_increments): New wrapper function.
19504         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
19505         (phi_incr_cost): New wrapper function.
19506         (all_phi_incrs_profitable_1): Rename from
19507         all_phi_incrs_profitable, set visited field.
19508         (all_phi_incrs_profitable): New wrapper function.
19509
19510 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19511             Alan Hayward  <alan.hayward@arm.com>
19512             David Sherwood  <david.sherwood@arm.com>
19513
19514         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
19515         that takes the outer and inner modes.
19516         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
19517         comparison as the canonical test for a paradoxical subreg.
19518         * combine.c (simplify_set): Use paradoxical_subreg_p.
19519         (make_extraction): Likewise.
19520         (force_to_mode): Likewise.
19521         (rtx_equal_for_field_assignment_p): Likewise.
19522         (gen_lowpart_for_combine): Likewise.
19523         (simplify_comparison): Likewise.
19524         * cse.c (equiv_constant): Likewise.
19525         * expmed.c (store_bit_field_1): Likewise.
19526         * final.c (alter_subreg): Likewise.
19527         * fwprop.c (propagate_rtx): Likewise.
19528         (forward_propagate_subreg): Likewise.
19529         * ira-conflicts.c (ira_build_conflicts): Likewise.
19530         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
19531         * lra-constraints.c (curr_insn_transform): Likewise.
19532         (split_reg): Likewise.
19533         * lra-eliminations.c (move_plus_up): Likewise.
19534         (lra_eliminate_regs_1): Likewise.
19535         * recog.c (general_operand): Likewise.
19536         * ree.c (combine_reaching_defs): Likewise.
19537         * reload.c (push_reload): Likewise.
19538         (find_reloads): Likewise.
19539         * reload1.c (elimination_effects): Likewise.
19540         (compute_reload_subreg_offset): Likewise.
19541         (choose_reload_regs): Likewise.
19542         * rtlanal.c (subreg_lsb_1): Likewise.
19543         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
19544         (simplify_subreg): Likewise.
19545         * var-tracking.c (track_loc_p): Likewise.
19546         * emit-rtl.c (byte_lowpart_offset): Likewise.
19547         (paradoxical_subreg_p): Delete out-of-line definition.
19548
19549 2017-08-22  Jeff Law  <law@redhat.com>
19550
19551         PR tree-optimization/81741
19552         PR tree-optimization/71947
19553         * tree-ssa-dom.c: Include tree-inline.h.
19554         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
19555         equivalences if one is more expensive to compute than the other.
19556         * tree-ssa-scopedtables.h (class const_or_copies): Make
19557         record_const_or_copy_raw method private.
19558         (class avail_exprs_stack): New method simplify_binary_operation.
19559         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
19560         avail_exprs_stack::simplify_binary_operation as needed.
19561         (avail_exprs_stack::simplify_binary_operation): New function.
19562
19563 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19564
19565         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
19566         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
19567         (DOT_SYMBOLS): Likewise.
19568         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
19569         (RELOCATABLE_NEEDS_FIXUP): Likewise.
19570         (RS6000_ABI_NAME): Likewise.
19571         (TARGET_CMODEL): Likewise.
19572         (TOC_SECTION_ASM_OP): Likewise.
19573         (SET_CMODEL): New macro.
19574         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
19575
19576 2017-08-22  Richard Biener  <rguenther@suse.de>
19577
19578         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
19579         to allow for free-lang-data replacements similar to verify_type_variant.
19580
19581 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19582             Alan Hayward  <alan.hayward@arm.com>
19583             David Sherwood  <david.sherwood@arm.com>
19584
19585         * config/aarch64/aarch64.md (casesi): Use DImode rather than
19586         VOIDmode for the LABEL_REF.
19587
19588 2017-08-22  Richard Biener  <rguenther@suse.de>
19589
19590         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
19591
19592 2017-08-22  Richard Biener  <rguenther@suse.de>
19593
19594         * common.opt (feliminate-dwarf2-dups): Ignore.
19595         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
19596         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
19597         same_die_p_wrap, compute_section_prefix,
19598         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
19599         (comdat_symbol_id, comdat_symbol_number): Likewise.
19600         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
19601         Likewise.
19602         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
19603         (output_die): Mark unreachable path unreachable.
19604         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
19605         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
19606         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
19607         (dwarf2out_early_finish): Likewise.
19608
19609 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
19610
19611         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
19612
19613 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
19614
19615         PR target/81910
19616         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
19617         not VAR_P. Filter attribute warnings with OPT_Wattributes.
19618         (avr_attribute_table) <io, io_low, address>: Initialize
19619         .decl_required with true.
19620
19621 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19622
19623         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
19624         undocumented debugging options.
19625         (-mvsx-scalar-double): Likewise.
19626         (-mallow-df-permute): Likewise.
19627         (-mvectorize-builtins): Likewise.
19628         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19629         (rs6000_builtin_vectorized_function): Likewise.
19630         (rs6000_builtin_md_vectorized_function): Likewise.
19631         (rs6000_opt_vars): Likewise.
19632
19633 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
19634
19635         PR target/46091
19636         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
19637         (*btrq_imm): Rename from *btrq.
19638         (*btcq_imm): Rename from *btcq.
19639         (btsc): New code attribute.
19640         (*<btsc><mode>): New insn pattern.
19641         (*btr<mode>): Ditto.
19642         (*<btsc><mode>_mask): New insn_and_split pattern.
19643         (*btr<mode>_mask): Ditto.
19644
19645 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19646             Alan Hayward  <alan.hayward@arm.com>
19647             David Sherwood  <david.sherwood@arm.com>
19648
19649         * function.c (pad_below): Simplify padding calculation.
19650
19651 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19652             Alan Hayward  <alan.hayward@arm.com>
19653             David Sherwood  <david.sherwood@arm.com>
19654
19655         * target.def (function_prologue): Remove frame size argument.
19656         (function_epilogue): Likewise.
19657         * doc/tm.texi: Regenerate.
19658         * final.c (final_start_function): Update call to function_prologue.
19659         (final_end_function): Update call to function_epilogue.
19660         (default_function_pro_epilogue): Remove frame size argument.
19661         * output.h (default_function_pro_epilogue): Likewise.
19662         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
19663         (arm_output_function_prologue): Likewise.
19664         * config/frv/frv.c (frv_function_prologue): Likewise.
19665         (frv_function_epilogue): Likewise.
19666         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
19667         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
19668         (ia64_output_function_epilogue): Likewise.
19669         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
19670         (m32r_output_function_epilogue): Likewise.
19671         * config/microblaze/microblaze.c (microblaze_function_prologue)
19672         (microblaze_function_epilogue): Likewise.
19673         * config/mips/mips.c (mips_output_function_prologue): Likewise.
19674         (mips_output_function_epilogue): Likewise.
19675         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
19676         (mmix_target_asm_function_epilogue): Likewise.
19677         * config/msp430/msp430.c (msp430_start_function): Likewise.
19678         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
19679         (nds32_asm_function_epilogue): Likewise.
19680         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
19681         * config/pa/pa.c (pa_output_function_prologue): Likewise.
19682         (pa_output_function_epilogue): Likewise.
19683         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
19684         (rs6000_output_function_epilogue): Likewise.
19685         * config/rl78/rl78.c (rl78_start_function): Likewise.
19686         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
19687         (rs6000_output_function_epilogue): Likewise.
19688         * config/rx/rx.c (rx_output_function_prologue): Likewise.
19689         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
19690         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
19691         (sparc_asm_function_epilogue): Likewise.
19692
19693 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19694
19695         * tree.h (type_has_mode_precision_p): New function.
19696         * convert.c (convert_to_integer_1): Use it.
19697         * expr.c (expand_expr_real_2): Likewise.
19698         (expand_expr_real_1): Likewise.
19699         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
19700         * match.pd: Likewise.
19701         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
19702         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
19703         * tree-tailcall.c (process_assignment): Likewise.
19704         * tree-vect-loop.c (vectorizable_reduction): Likewise.
19705         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
19706         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
19707         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
19708         (vectorizable_assignment): Likewise.
19709         (vectorizable_shift): Likewise.
19710         (vectorizable_operation): Likewise.
19711         * tree-vrp.c (register_edge_assert_for_2): Likewise.
19712
19713 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
19714
19715         * match.pd: Add pow (C, x) simplification.
19716
19717 2017-08-21  Richard Biener  <rguenther@suse.de>
19718
19719         PR tree-optimization/81900
19720         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
19721         for blocks with abnormal predecessors.
19722         (compute_antic): Do not set visited flag prematurely.
19723
19724 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
19725
19726         PR target/79883
19727         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
19728
19729 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19730
19731         * stor-layout.h (vector_type_mode): Move to...
19732         * tree.h (vector_type_mode): ...here.
19733         * stor-layout.c (vector_type_mode): Move to...
19734         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
19735
19736 2017-08-21  Richard Biener  <rguenther@suse.de>
19737
19738         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
19739         register_external_die hooks.
19740         (debug_false_tree_charstarstar_uhwistar): Declare.
19741         (debug_nothing_tree_charstar_uhwi): Likewise.
19742         * debug.c (do_nothing_debug_hooks): Adjust.
19743         (debug_false_tree_charstarstar_uhwistar): New do nothing.
19744         (debug_nothing_tree_charstar_uhwi): Likewise.
19745         * dbxout.c (dbx_debug_hooks): Adjust.
19746         (xcoff_debug_hooks): Likewise.
19747         * sdbout.c (sdb_debug_hooks): Likewise.
19748         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19749         * dwarf2out.c (macinfo_label_base): New global.
19750         (dwarf2out_register_external_die): New function for the
19751         register_external_die hook.
19752         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
19753         (dwarf2_debug_hooks): Use them.
19754         (dwarf2_lineno_debug_hooks): Adjust.
19755         (struct die_struct): Add with_offset flag.
19756         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
19757         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
19758         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
19759         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
19760         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
19761         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
19762         defining section names for the early LTO debug variants.
19763         (reset_indirect_string): New helper.
19764         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
19765         (print_dw_val): Add support for offsetted symbol references.
19766         (get_ultimate_context): Split out from is_cxx.
19767         (is_cxx): Use get_ultimate_context.
19768         (is_fortran): Add decl overload.
19769         (compute_comp_unit_symbol): Split out worker from
19770         compute_section_prefix.
19771         (compute_section_prefix): Call compute_comp_unit_symbol and
19772         set comdat_type_p here.
19773         (output_die): Skip DIE symbol output for the LTO added one.
19774         Handle DIE symbol references with offset.
19775         (output_comp_unit): Guard section name mangling properly.
19776         For LTO debug sections emit a symbol at the section beginning
19777         which we use to refer to its DIEs.
19778         (add_abstract_origin_attribute): For DIEs registered via
19779         dwarf2out_register_external_die directly refer to the early
19780         DIE rather than indirectly through the shadow one we created.
19781         Remove obsolete call to dwarf2out_abstract_function for
19782         non-function/block origins.
19783         (gen_array_type_die): When generating early LTO debug do
19784         not emit DW_AT_string_length.
19785         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
19786         late when in LTO.  As suggested place a gcc_unreachable for
19787         the DECL_ABSTRACT_P case.
19788         (gen_subprogram_die): Avoid another specification DIE
19789         for early built declarations/definitions for the late LTO case.
19790         (gen_variable_die): Add type references for late duplicated VLA dies
19791         when in late LTO.
19792         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
19793         we have the abstract instance already.
19794         (process_scope_var): Adjust decl DIE contexts in LTO which
19795         first puts them in limbo.
19796         (gen_decl_die): Do not generate type DIEs late apart from
19797         types for VLAs or for decls we do not yet have a DIE.  Do not
19798         call dwarf2out_abstract_function late.
19799         (dwarf2out_early_global_decl): Make sure to create DIEs
19800         for abstract instances of a decl first.
19801         (dwarf2out_late_global_decl): Adjust comment.
19802         (output_macinfo_op): With multiple macro sections use
19803         macinfo_label_base to distinguish labels.
19804         (output_macinfo): Likewise.  Update macinfo_label_base.
19805         Pass in the line info label.
19806         (note_variable_value_in_expr): When generating LTO resolve
19807         all variable values here by generating DIEs as needed.
19808         (init_sections_and_labels): Add early LTO debug flag parameter
19809         and generate different sections and names if set.  Add generation
19810         counter for the labels so we can have multiple of them.
19811         (reset_dies): Helper to allow DIEs to be output multiple times.
19812         (dwarf2out_finish): When outputting DIEs to the fat part of an
19813         LTO object first reset DIEs.
19814         (dwarf2out_early_finish): Output early DIEs when generating LTO.
19815         (modified_type_die): Check for decl_ultimate_origin being self
19816         before recursing.
19817         (gen_type_die_with_usage): Likewise.
19818         (gen_typedef_die): Allow decl_ultimate_origin being self.
19819         (set_decl_abstract_flags): Remove.
19820         (set_block_abstract_flags): Likewise.
19821         (dwarf2out_abstract_function): Treat the early generated DIEs
19822         as the abstract copy and only add DW_AT_inline and
19823         DW_AT_artificial here and call set_decl_origin_self.
19824         If the DIE has an abstract origin don't do anything.
19825         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
19826         if we have none yet (Go fails to build one, PR78628).
19827         (variably_modified_type_p): Prevent endless recursion for Ada
19828         cyclic pointer types.
19829         * lto-streamer-in.c: Include debug.h.
19830         (dref_queue): New global.
19831         (lto_read_tree_1): Stream in DIE references.
19832         (lto_input_tree): Register DIE references.
19833         (input_function): Stream DECL_DEBUG_ARGS.
19834         * lto-streamer-out.c: Include debug.h.
19835         (lto_write_tree_1): Output DIE references.
19836         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
19837         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
19838         (output_function): Stream DECL_DEBUG_ARGS.
19839         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19840         Stream DECL_ABSTRACT_ORIGIN.
19841         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
19842         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
19843         DECL_CONTEXT for file-scope decls.
19844         * lto-streamer.h (struct dref_entry): Declare.
19845         (dref_queue): Likewise.
19846         * cfgexpand.c (pass_expand::execute): Do not call the
19847         outlining_inline_function hook here.
19848         * lto-wrapper.c (debug_obj): New global.
19849         (tool_cleanup): Unlink it if required.
19850         (debug_objcopy): New function.
19851         (run_gcc): Handle early debug sections in the IL files by
19852         extracting them to separate files, partially linkin them and
19853         feeding the result back as result to the linker.
19854         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
19855         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
19856         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
19857         sections into a separate segment.
19858         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
19859         segments.
19860         (darwin_asm_dwarf_section): Likewise.
19861         (darwin_asm_output_dwarf_offset): Likewise.
19862         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
19863
19864 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19865             Alan Hayward  <alan.hayward@arm.com>
19866             David Sherwood  <david.sherwood@arm.com>
19867
19868         * read-md.h (md_reader::record_potential_iterator_use): Replace
19869         pointer argument with an rtx and an index.
19870         * read-rtl.c (iterator_group::apply_iterator): Likewise.
19871         (apply_mode_iterator): Likewise.
19872         (apply_code_iterator): Likewise.
19873         (apply_int_iterator): Likewise.
19874         (apply_subst_iterator): Likewise.
19875         (record_iterator_use): Likewise.
19876         (record_attribute_use): Likewise.
19877         (md_reader::record_potential_iterator_use): Likewise.  Update calls
19878         to record_iterator_use and apply_iterator.
19879         (iterator_use): Replace ptr with x and index.
19880         (attribute_use): Likewise.
19881         (apply_attribute_uses): Update calls to apply_iterator.
19882         (apply_iterators): Likewise.  Update initialization of iterator_use.
19883         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
19884         and record_potential_iterator_use.
19885         (rtx_reader::read_rtx_operand): Likewise.
19886
19887 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19888             Alan Hayward  <alan.hayward@arm.com>
19889             David Sherwood  <david.sherwood@arm.com>
19890
19891         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
19892         CONST_WIDE_INT.
19893
19894 2017-08-21  Richard Biener  <rguenther@suse.de>
19895
19896         PR middle-end/81884
19897         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
19898         at struct end conservatively when comparing common bases.
19899
19900 2017-08-21  Richard Biener  <rguenther@suse.de>
19901
19902         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
19903         (mem_ref_in_stmt): Remove.
19904         (determine_max_movement): Use ref index to get at the reference.
19905         (invariantness_dom_walker::before_dom_children): Deal with
19906         lim data already initialized.
19907         (gather_mem_refs_stmt): Initialize lim data and record ref index.
19908
19909 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
19910
19911         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
19912         (TARGET_ISA_ROUND): Ditto.
19913         (TARGET_ROUND): Ditto.
19914         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
19915         * config/i386/i386.md: Ditto.
19916         * config/i386/sse.md: Ditto.
19917         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
19918         with OPTION_MASK_ISA_SSE4_1.
19919
19920 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
19921
19922         PR target/81894
19923         * doc/extend.texi (x86 Built-in Functions): Correct the name of
19924         __builtin_ia32_lzcnt_u16.
19925
19926 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
19927
19928         PR target/80210
19929         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
19930         (rs6000_set_current_function): Rewrite function to use it.
19931
19932 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
19933
19934         PR c/53037
19935         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
19936         and TYPE_WARN_IF_NOT_ALIGN.
19937         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
19938         (handle_warn_if_not_align): New.
19939         (place_union_field): Call handle_warn_if_not_align.
19940         (place_field): Call handle_warn_if_not_align.
19941         Copy TYPE_WARN_IF_NOT_ALIGN.
19942         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
19943         (layout_type): Likewise.
19944         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
19945         spare to 18.
19946         (tree_decl_common): Add warn_if_not_align.
19947         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
19948         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
19949         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
19950         (DECL_WARN_IF_NOT_ALIGN): Likewise.
19951         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
19952         * doc/extend.texi: Document warn_if_not_aligned attribute.
19953         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
19954
19955 2017-08-17  Martin Liska  <mliska@suse.cz>
19956
19957         PR bootstrap/81864
19958         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
19959         (get_data_dependence): Use it as pointer type.
19960         (distribute_loop): Likewise.
19961
19962 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19963
19964         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
19965         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
19966         (p8_vmrgow_<mode>_direct): New define_insn.
19967         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
19968         handle endianness for vmrgew and vmrgow permute patterns.
19969
19970 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
19971
19972         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
19973         * config/rs6000/rs6000-cpus.def: Remove comment.
19974         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
19975         (POWERPC_MASKS): Likewise.
19976         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
19977         use of TARGET_VSX_TIMODE.
19978         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
19979         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
19980         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
19981         (rs6000_option_override_internal): Remove dead code.
19982         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
19983         (rs6000_legitimize_reload_address): Likewise.
19984         (rs6000_legitimate_address_p): Likewise.
19985         (rs6000_opt_masks): Delete "vsx-timode".
19986         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
19987         from function comment.
19988         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
19989         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
19990         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
19991         condition.
19992         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
19993         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
19994         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
19995         (VSX_TI): Likewise.
19996         (VSX_M): Likewise.
19997         (define_peephole2): Likewise.
19998
19999 2017-08-17  Martin Sebor  <msebor@redhat.com>
20000
20001         PR c/81859
20002         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
20003         past the end of an array.
20004         (test_pp_format): Add test cases.
20005
20006 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
20007
20008         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
20009         missing ECF_NOTHROW flags.
20010
20011 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20012
20013         PR target/72804
20014         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
20015         operands residing in integer registers.
20016         (*vsx_le_perm_load_<mode>): Likewise.
20017         (*vsx_le_perm_store_<mode>): Likewise.
20018         (define_peephole2): Add peepholes to optimize the above.
20019
20020 2017-08-17  Marek Polacek  <polacek@redhat.com>
20021
20022         PR middle-end/81814
20023         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
20024         to mimic what shorten_compare did.  Change the return type to bool.
20025         (fold_cond_expr_with_comparison): Update call to
20026         operand_equal_for_comparison_p.
20027         (fold_ternary_loc): Likewise.
20028
20029 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
20030
20031         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
20032         register.
20033         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
20034
20035 2017-08-17  Richard Biener  <rguenther@suse.de>
20036
20037         * tree-ssa-structalias.c (solve_graph): When propagating
20038         to successors update the graphs succ edges and avoid duplicate work.
20039
20040 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
20041
20042         PR target/81861
20043         * config/i386/i386.c (ix86_option_override_internal): Save target
20044         specific options after ix86_stack_protector_guard_reg was changed.
20045
20046 2017-08-17  Richard Biener  <rguenther@suse.de>
20047
20048         PR tree-optimization/81827
20049         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
20050         (new_var_info): Initialize it conservatively.
20051         (get_call_vi): Mark register vars.
20052         (new_scalar_tmp_constraint_exp): Likewise.
20053         (handle_rhs_call): Likewise.
20054         (handle_const_call): Likewise.
20055         (create_function_info_for): Likewise.
20056         (solve_constraints): Sort varinfos to separate register from
20057         non-register vars to pack points-to solution bitmaps during
20058         iteration.
20059
20060 2017-08-17  Marek Polacek  <polacek@redhat.com>
20061
20062         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
20063
20064 2017-08-17  Richard Biener  <rguenther@suse.de>
20065
20066         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
20067         to true when overflow is undefined and we saturated the result.
20068
20069 2017-08-17  Alan Modra  <amodra@gmail.com>
20070
20071         PR target/80938
20072         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
20073         Don't use store multiple if only one reg needs saving.
20074         (interesting_frame_related_regno): New function.
20075         (rs6000_frame_related): Don't emit frame info for regs that
20076         don't need saving.
20077         (rs6000_emit_epilogue): Likewise.
20078
20079 2017-08-16  Nathan Sidwell  <nathan@acm.org>
20080
20081         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
20082         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
20083         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
20084         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
20085         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
20086         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
20087         (verify_type): Adjust for TYPE_BINFO move.
20088         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
20089         process TYPE_BINFO directly.
20090         (hash_tree): Likewise.
20091         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20092         Likewise.
20093         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20094         Likewise.
20095
20096 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
20097
20098         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
20099
20100 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
20101
20102         PR target/46091
20103         * config/i386/i386.md (*anddi_1_btr): Change predicates of
20104         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
20105         Add ix86_binary_operator_ok to insn constraint.
20106         (*iordi_1_bts): Ditto.
20107         (*xordi_1_btc): Ditto.
20108         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
20109         Update corresponding peephole2 pattern.
20110         (*btrq): Ditto.
20111         (*btcq): Ditto.
20112
20113 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
20114
20115         PR tree-optimization/81832
20116         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
20117         copy loop header which has IFN_LOOP_DIST_ALIAS call.
20118
20119 2017-08-16  Marek Polacek  <polacek@redhat.com>
20120
20121         PR middle/81695
20122         * fold-const.c (fold_indirect_ref_1): Restore original behavior
20123         regarding size_zero_node.
20124
20125 2017-08-16  Martin Liska  <mliska@suse.cz>
20126
20127         PR target/81753
20128         * config.gcc: Respect previously set extra_objs in case
20129         of darwin target.
20130
20131 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
20132
20133         PR tree-optimization/81835
20134         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
20135         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
20136         not depend on the phi.
20137
20138 2017-08-16  Alan Modra  <amodra@gmail.com>
20139
20140         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
20141         dead code.
20142
20143 2017-08-16  Alan Modra  <amodra@gmail.com>
20144
20145         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
20146         (save_reg_p): ..into this.  Update all callers.
20147         (first_reg_to_save): Simplify.
20148
20149 2017-08-16  Alan Modra  <amodra@gmail.com>
20150
20151         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
20152         fixed regs.
20153
20154 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
20155
20156         PR target/78460
20157         PR target/67712
20158         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
20159         constant count if that count is less than 32.
20160
20161 2017-08-15  Nathan Sidwell  <nathan@acm.org>
20162
20163         * gcc.c (execute): Emit friendlier message if inferior is killed
20164         by an external cause.
20165
20166 2017-08-15  Richard Biener  <rguenther@suse.de>
20167
20168         PR tree-optimization/81790
20169         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
20170         CONSTRUCTORs from simplifying and VN.
20171
20172 2017-08-14  Martin Sebor  <msebor@redhat.com>
20173
20174         * builtin-attrs.def: Add comments.
20175
20176 2017-08-14  Martin Sebor  <msebor@redhat.com>
20177
20178         PR c/81117
20179         * doc/extend.texi (attribute nonstring): Document new attribute.
20180
20181 2017-08-14  Martin Sebor  <msebor@redhat.com>
20182
20183         PR c/81117
20184         * tree-diagnostic.c (default_tree_printer): Handle %G.
20185         * gimple-pretty-print.h (percent_G_format): Declare new function.
20186         * gimple-pretty-print.c (percent_G_format): Define.
20187         * tree-pretty-print.c (percent_K_format): Add argument.
20188
20189 2017-08-14  Martin Sebor  <msebor@redhat.com>
20190
20191         PR translation/79998
20192         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
20193         Remove a stray space.
20194
20195 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
20196
20197         PR target/46091
20198         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
20199         (*iordi_1_bts): Ditto.
20200         (*xordi_1_btc): Ditto.
20201
20202 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20203
20204         PR target/79845
20205         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
20206         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20207         Likewise.
20208         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
20209         quoted strings, and make more translator-friendly.
20210         (darwin_rs6000_override_options): Likewise.
20211         (rs6000_option_override_internal): Likewise.
20212         (rs6000_return_in_memory): Fix overlong line.
20213         (init_cmulative_args): Use quoted strings, and make more
20214         translator-friendly.
20215         (rs6000_pass_by_reference): Fix overlong line.
20216         (def_builtin): Use quoted strings.
20217         (altivec_expand_predicate_builtin): Use quoted strings, and make
20218         more translator-friendly.
20219         (htm_expand_builtin): Use quoted strings.
20220         (cpu_expand_builtin): Use quoted strings, and make more
20221         translator-friendly.
20222         (altivec_expand_builtin): Likewise.
20223         (paired_expand_predicate_builtin): Likewise.
20224         (rs6000_invalid_builtin): Likewise.
20225         (builtin_function_type): Use quoted strings.
20226         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
20227         more translator-friendly.
20228         (rs6000_trampoline_init): Likewise.
20229         (rs6000_handle_altivec_attribute): Likewise.
20230         (rs6000_inner_target_options): Use quoted strings.
20231         (rs6000_disable_incompatible_switches): Likewise.
20232         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
20233         strings, and make more translator-friendly.
20234         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
20235
20236 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
20237
20238         PR tree-optimization/81799
20239         * tree-loop-distribution.c (version_loop_by_alias_check): Force
20240         cond_expr to simple gimple operand.
20241
20242 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
20243
20244         PR middle-end/46932
20245         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
20246
20247 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
20248
20249         PR target/81754
20250         PR target/81268
20251         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
20252         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
20253         TARGET_GASISR_PROLOGUES.
20254         * config/avr/avr.c (avr_option_override): Same.
20255         (avr_pass_pre_proep::execute): Same.
20256
20257 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
20258
20259         PR target/81820
20260         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
20261         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
20262
20263 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
20264
20265         * config/i386/i386.md (*load_tp_<mode>): Redefine as
20266         define_insn_and_split.  Split to a memory load from 0 in
20267         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
20268         using PTR mode iterator.
20269         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
20270         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
20271         (*add_tp_<mode>): Redefine as define_insn_and_split.
20272         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
20273         address space.  Merge with *add_tp_x32 using PTR mode iterator.
20274         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
20275         Split to an add with a  memory load from 0 in
20276         DEFAULT_TLS_SEG_REG address space.
20277
20278 2017-08-12  Andrew Pinski  <apinski@cavium.com>
20279
20280         * config/aarch64/aarch64-option-extensions.def (rdma):
20281         Fix feature string to what Linux prints out in /proc/cpuinfo.
20282
20283 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
20284
20285         PR ada/79542
20286         * dwarf2out.c (modified_type_die): For C typedef types that have
20287         an ultimate origin, process the ultimate origin instead of the
20288         input type.
20289         (gen_typedef_die): Assert that input DECLs have no ultimate
20290         origin.
20291         (gen_type_die_with_usage): For typedef variants that have an
20292         ultimate origin, just call gen_decl_die on the original DECL.
20293         (process_scope_var): Avoid creating DIEs for local typedefs and
20294         concrete static variables.
20295
20296 2017-08-12  Alan Modra  <amodra@gmail.com>
20297
20298         PR target/81170
20299         PR target/81295
20300         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
20301         match gnu-user.h startfile.
20302         (ENDFILE_LINUX_SPEC): Similarly.
20303
20304 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
20305
20306         PR lto/81430
20307         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
20308         Remove function.
20309         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
20310
20311 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
20312         * config/aarch64/aarch64.md (mov<mode>): Change.
20313         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
20314         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
20315         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
20316
20317 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
20318
20319         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
20320         for storage order barriers.
20321
20322 2017-08-11  Martin Liska  <mliska@suse.cz>
20323
20324         PR tree-opt/79987
20325         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
20326         variables of void type.
20327
20328 2017-08-11  Martin Liska  <mliska@suse.cz>
20329
20330         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
20331         TARGET_SUPPORTS_ALIASES.
20332         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
20333         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
20334         (optimize_weakref): Likewise.
20335         * symtab.c (symtab_node::noninterposable_alias): Likewise.
20336         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
20337         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
20338
20339 2017-08-11  Martin Liska  <mliska@suse.cz>
20340
20341         PR ipa/81213
20342         * config/i386/i386.c (make_resolver_func): Do complete
20343         refactoring of the function.
20344
20345 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20346
20347         PR target/81708
20348         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
20349         * config/i386/i386.c (ix86_stack_protect_guard): Use
20350         ix86_stack_protect_guard_symbol_str to generate varible declaration.
20351         * doc/invoke.texi (x86 Options): Document
20352         -mstack-protector-guard-symbol= option.
20353
20354 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20355
20356         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
20357         * config/i386/i386.c (ix86_split_stack_guard): New function.
20358         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
20359         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
20360         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
20361         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
20362         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
20363         (split_stack_space_check): Call ix86_split_stack_guard.
20364
20365 2017-08-10  Martin Sebor  <msebor@redhat.com>
20366
20367         * print-tree.c (print_node): Print location using the established
20368         format %s:%i%i.
20369         Replace spaces with colons.
20370         (debug_raw, debug): Ditto.
20371
20372 2017-08-10  Martin Sebor  <msebor@redhat.com>
20373
20374         PR c++/81586
20375         * pretty-print.c (pp_format): Correct the handling of %s precision.
20376
20377 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
20378
20379         PR target/81736
20380         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20381         to ...
20382         (ix86_finalize_stack_frame_flags): This.  Also clear
20383         frame_pointer_needed if -fno-omit-frame-pointer is used without
20384         stack access.
20385         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20386         with ix86_finalize_stack_frame_flags.
20387         (ix86_expand_epilogue): Likewise.
20388         (ix86_expand_split_stack_prologue): Likewise.
20389         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
20390
20391 2017-08-10  Martin Liska  <mliska@suse.cz>
20392
20393         PR c++/81355
20394         * c-attribs.c (handle_target_attribute):
20395         Report warning for an empty string argument of target attribute.
20396
20397 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
20398
20399         PR c/81687
20400         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
20401         LABEL_DECLs.
20402         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
20403         or DECL_NONLOCAL labels.
20404         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
20405         or DECL_NONLOCAL labels here.
20406
20407 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
20408
20409         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
20410         to indicate when early gimple folding has been disabled.
20411         (rs6000_gimple_fold_builtin): Add debug content.
20412         (rs6000_invalid_builtin): Fix whitespace.
20413         (rs6000_expand_builtin): Fix whitespace.
20414         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
20415
20416 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
20417
20418         PR target/80938
20419         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
20420         SAVE_MULTIPLE if not all the registers that saves, should be saved.
20421
20422 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
20423
20424         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
20425         (qdf24xx): Likewise.
20426         * config/aarch64/aarch64.md: Include falkor.md.
20427         * config/aarch64/falkor.md: New.
20428
20429 2017-08-09  Marek Polacek  <polacek@redhat.com>
20430
20431         PR c/81233
20432         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
20433         * diagnostic.c (emit_diagnostic): Add a comment.
20434         (emit_diagnostic_valist): New function.
20435
20436 2017-08-09  Marek Polacek  <polacek@redhat.com>
20437
20438         PR c/81417
20439         * input.c (make_location): New overload.
20440         * input.h (make_location): Declare.
20441
20442 2017-08-08  Alan Modra  <amodra@gmail.com>
20443             H.J. Lu  <hongjiu.lu@intel.com>
20444
20445         PR driver/81523
20446         * gcc.c (NO_PIE_SPEC): Delete.
20447         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
20448         exclusion..
20449         (LINK_PIE_SPEC): ..to here.
20450         (LINK_COMMAND_SPEC): Support -no-pie.
20451         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
20452         chain of crtbegin*.o selection, update for PIE_SPEC changes and
20453         format.
20454         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
20455         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
20456         (ENDFILE_CRTEND_SPEC): Similarly.
20457
20458 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
20459
20460         PR target/81708
20461         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
20462         (mstack-protector-guard-offset=): Ditto.
20463         * config/i386/i386.c (ix86_option_override): Handle
20464         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
20465         options.
20466         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
20467         ix86_stack_protect_guard_offset variables.
20468         (TARGET_STACK_PROTECT_GUARD): Always define.
20469         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
20470         and -mstack-protector-guard-offset= options.
20471
20472 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20473
20474         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
20475         boundary case for the last candidate.
20476
20477 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20478
20479         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
20480         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
20481
20482 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20483
20484         PR middle-end/19706
20485         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
20486         * config/aarch64/aarch64-builtins.c
20487         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
20488         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
20489         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
20490
20491 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20492             Andrew Pinski <pinskia@gmail.com>
20493
20494         PR middle-end/19706
20495         * internal-fn.def (XORSIGN): New.
20496         * optabs.def (xorsign_optab): New.
20497         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
20498         (convert_expand_mult_copysign): New.
20499         (pass_optimize_widening_mul::execute): Call
20500         convert_expand_mult_copysign.
20501
20502 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20503
20504         PR tree-optimization/81354
20505         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
20506         Insert on edges rather than explicitly creating landing pads.
20507         (analyze_candidates_and_replace): Commit edge inserts.
20508
20509 2017-08-08  Richard Biener  <rguenther@suse.de>
20510
20511         PR middle-end/81719
20512         * tree-ssa-loop-niter.c: Include tree-dfa.h.
20513         (expand_simple_operations): Also look through ADDR_EXPRs with
20514         MEM_REF bases treating them as POINTER_PLUS_EXPR.
20515
20516 2017-08-08  Richard Biener  <rguenther@suse.de>
20517
20518         PR tree-optimization/81723
20519         * tree-vect-slp.c (struct bst_traits): New hash traits.
20520         (bst_fail): New global.
20521         (vect_build_slp_tree_2): New worker, split out from ...
20522         (vect_build_slp_tree): ... this now wrapping it with using
20523         bst_fail set to cache SLP tree build fails.  Properly handle
20524         max_tree_size.
20525         (vect_analyze_slp_instance): Allocate and free bst_fail.
20526
20527 2017-08-08  Martin Liska  <mliska@suse.cz>
20528
20529         PR tree-opt/81696
20530         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
20531         LABEL_DECLs that can be from a different function.
20532
20533 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20534
20535         PR tree-optimization/81744
20536         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
20537         loop's number of iterations.
20538
20539 2017-08-08  Martin Liska  <mliska@suse.cz>
20540
20541         * asan.c: Include header files.
20542         * attribs.c (build_decl_attribute_variant): New function moved
20543         from tree.[ch].
20544         (build_type_attribute_qual_variant): Likewise.
20545         (cmp_attrib_identifiers): Likewise.
20546         (simple_cst_list_equal): Likewise.
20547         (omp_declare_simd_clauses_equal): Likewise.
20548         (attribute_value_equal): Likewise.
20549         (comp_type_attributes): Likewise.
20550         (build_type_attribute_variant): Likewise.
20551         (lookup_ident_attribute): Likewise.
20552         (remove_attribute): Likewise.
20553         (merge_attributes): Likewise.
20554         (merge_type_attributes): Likewise.
20555         (merge_decl_attributes): Likewise.
20556         (merge_dllimport_decl_attributes): Likewise.
20557         (handle_dll_attribute): Likewise.
20558         (attribute_list_equal): Likewise.
20559         (attribute_list_contained): Likewise.
20560         * attribs.h (lookup_attribute): New function moved from tree.[ch].
20561         (lookup_attribute_by_prefix): Likewise.
20562         * bb-reorder.c: Include header files.
20563         * builtins.c: Likewise.
20564         * calls.c: Likewise.
20565         * cfgexpand.c: Likewise.
20566         * cgraph.c: Likewise.
20567         * cgraphunit.c: Likewise.
20568         * convert.c: Likewise.
20569         * dwarf2out.c: Likewise.
20570         * final.c: Likewise.
20571         * fold-const.c: Likewise.
20572         * function.c: Likewise.
20573         * gimple-expr.c: Likewise.
20574         * gimple-fold.c: Likewise.
20575         * gimple-pretty-print.c: Likewise.
20576         * gimple.c: Likewise.
20577         * gimplify.c: Likewise.
20578         * hsa-common.c: Likewise.
20579         * hsa-gen.c: Likewise.
20580         * internal-fn.c: Likewise.
20581         * ipa-chkp.c: Likewise.
20582         * ipa-cp.c: Likewise.
20583         * ipa-devirt.c: Likewise.
20584         * ipa-fnsummary.c: Likewise.
20585         * ipa-inline.c: Likewise.
20586         * ipa-visibility.c: Likewise.
20587         * ipa.c: Likewise.
20588         * lto-cgraph.c: Likewise.
20589         * omp-expand.c: Likewise.
20590         * omp-general.c: Likewise.
20591         * omp-low.c: Likewise.
20592         * omp-offload.c: Likewise.
20593         * omp-simd-clone.c: Likewise.
20594         * opts-global.c: Likewise.
20595         * passes.c: Likewise.
20596         * predict.c: Likewise.
20597         * sancov.c: Likewise.
20598         * sanopt.c: Likewise.
20599         * symtab.c: Likewise.
20600         * toplev.c: Likewise.
20601         * trans-mem.c: Likewise.
20602         * tree-chkp.c: Likewise.
20603         * tree-eh.c: Likewise.
20604         * tree-into-ssa.c: Likewise.
20605         * tree-object-size.c: Likewise.
20606         * tree-parloops.c: Likewise.
20607         * tree-profile.c: Likewise.
20608         * tree-ssa-ccp.c: Likewise.
20609         * tree-ssa-live.c: Likewise.
20610         * tree-ssa-loop.c: Likewise.
20611         * tree-ssa-sccvn.c: Likewise.
20612         * tree-ssa-structalias.c: Likewise.
20613         * tree-ssa.c: Likewise.
20614         * tree-streamer-in.c: Likewise.
20615         * tree-vectorizer.c: Likewise.
20616         * tree-vrp.c: Likewise.
20617         * tsan.c: Likewise.
20618         * ubsan.c: Likewise.
20619         * varasm.c: Likewise.
20620         * varpool.c: Likewise.
20621         * tree.c: Remove functions moved to attribs.[ch].
20622         * tree.h: Likewise.
20623         * config/aarch64/aarch64.c: Add attrs.h header file.
20624         * config/alpha/alpha.c: Likewise.
20625         * config/arc/arc.c: Likewise.
20626         * config/arm/arm.c: Likewise.
20627         * config/avr/avr.c: Likewise.
20628         * config/bfin/bfin.c: Likewise.
20629         * config/c6x/c6x.c: Likewise.
20630         * config/cr16/cr16.c: Likewise.
20631         * config/cris/cris.c: Likewise.
20632         * config/darwin.c: Likewise.
20633         * config/epiphany/epiphany.c: Likewise.
20634         * config/fr30/fr30.c: Likewise.
20635         * config/frv/frv.c: Likewise.
20636         * config/ft32/ft32.c: Likewise.
20637         * config/h8300/h8300.c: Likewise.
20638         * config/i386/winnt.c: Likewise.
20639         * config/ia64/ia64.c: Likewise.
20640         * config/iq2000/iq2000.c: Likewise.
20641         * config/lm32/lm32.c: Likewise.
20642         * config/m32c/m32c.c: Likewise.
20643         * config/m32r/m32r.c: Likewise.
20644         * config/m68k/m68k.c: Likewise.
20645         * config/mcore/mcore.c: Likewise.
20646         * config/microblaze/microblaze.c: Likewise.
20647         * config/mips/mips.c: Likewise.
20648         * config/mmix/mmix.c: Likewise.
20649         * config/mn10300/mn10300.c: Likewise.
20650         * config/moxie/moxie.c: Likewise.
20651         * config/msp430/msp430.c: Likewise.
20652         * config/nds32/nds32-isr.c: Likewise.
20653         * config/nds32/nds32.c: Likewise.
20654         * config/nios2/nios2.c: Likewise.
20655         * config/nvptx/nvptx.c: Likewise.
20656         * config/pa/pa.c: Likewise.
20657         * config/pdp11/pdp11.c: Likewise.
20658         * config/powerpcspe/powerpcspe.c: Likewise.
20659         * config/riscv/riscv.c: Likewise.
20660         * config/rl78/rl78.c: Likewise.
20661         * config/rx/rx.c: Likewise.
20662         * config/s390/s390.c: Likewise.
20663         * config/sh/sh.c: Likewise.
20664         * config/sol2.c: Likewise.
20665         * config/sparc/sparc.c: Likewise.
20666         * config/spu/spu.c: Likewise.
20667         * config/stormy16/stormy16.c: Likewise.
20668         * config/tilegx/tilegx.c: Likewise.
20669         * config/tilepro/tilepro.c: Likewise.
20670         * config/v850/v850.c: Likewise.
20671         * config/vax/vax.c: Likewise.
20672         * config/visium/visium.c: Likewise.
20673         * config/xtensa/xtensa.c: Likewise.
20674
20675 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
20676
20677         PR target/81593
20678         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
20679         constraints since the -mupper-regs-* switches have been
20680         eliminated.
20681         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
20682         into a vector from a double word element that was extracted from
20683         another vector, and eliminate extra XXPERMDI instructions.
20684         (vsx_concat_<mode>_2): Likewise.
20685         (vsx_concat_<mode>_3): Likewise.
20686         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
20687         concat to allow optimizing inserts from previous extracts.
20688
20689 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
20690
20691         * config/i386/i386.c (ix86_stack_protect_guard): Generate
20692         memory reference to a SSP offset in TLS address space.
20693         (ix86_print_operand) <case '@'>: Remove.
20694         (ix86_print_operand_punct_valid_p): Remove '@' code.
20695         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
20696         UNSPEC_SP_TLS_TEST.
20697         (stack_tls_protect_set_<mode>): Remove.
20698         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
20699         (stack_tls_protect_test_<mode>): Remove.
20700         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
20701
20702 2017-08-07  Olivier Hainque  <hainque@adacore.com>
20703
20704         PR target/81755
20705         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
20706
20707 2017-08-07  Douglas Rupp  <rupp@adacore.com>
20708
20709         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
20710         variable was referenced as multidir in command.
20711
20712 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
20713
20714         PR c/69389
20715         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
20716         BIT_FIELD_REF.
20717
20718 2017-08-07  Martin Liska  <mliska@suse.cz>
20719
20720         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
20721         * config/rl78/rl78.c: Add include of attribs.h.
20722         * config/sh/sh.c: Likewise.
20723         * config/v850/v850.c: Likewise.
20724
20725 2017-08-07  Tom de Vries  <tom@codesourcery.com>
20726
20727         PR middle-end/78266
20728         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
20729
20730 2017-08-07  Martin Liska  <mliska@suse.cz>
20731
20732         * config/mips/mips.c: Include attribs.h.
20733
20734 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
20735
20736         PR fortran/68829
20737         * doc/invoke.texi: Document change in behvaior for -Ofast for
20738         Fortran.
20739
20740 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
20741
20742         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
20743         Use gen_frame_mem.
20744         (aarch64_pop_regs): Likewise.
20745         (aarch64_gen_load_pair): Likewise.
20746         (aarch64_save_callee_saves): Likewise.
20747         (aarch64_restore_callee_saves): Likewise.
20748
20749 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20750
20751         * config/i386/i386.c: Revert the last change.
20752
20753 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20754
20755         PR target/81736
20756         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20757         to ...
20758         (ix86_finalize_stack_frame_flags): This.  Also clear
20759         frame_pointer_needed if -fno-omit-frame-pointer is used without
20760         stack access.
20761         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20762         with ix86_finalize_stack_frame_flags.
20763         (ix86_expand_epilogue): Likewise.
20764         (ix86_expand_split_stack_prologue): Likewise.
20765
20766 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20767
20768         PR target/81743
20769         * config/i386/i386.c (get_builtin_code_for_version): Set priority
20770         to P_AES for Westmere.
20771
20772 2017-08-07  Jonathan Yong  <10walls@gmail.com>
20773
20774         * config/i386/mingw.opt (fset-stack-executable): Removed.
20775         * config/i386/cygming.opt (fset-stack-executable): Moved
20776         from mingw.opt.
20777         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
20778
20779 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
20780
20781         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
20782
20783 2017-08-07  Marek Polacek  <polacek@redhat.com>
20784
20785         PR middle-end/81737
20786         * fold-const.c (fold_indirect_ref_1): Check type_domain.
20787
20788 2017-08-07  Martin Liska  <mliska@suse.cz>
20789
20790         * attribs.h (canonicalize_attr_name): New function.
20791         (cmp_attribs): Move from c-format.c and adjusted.
20792         (is_attribute_p): Moved from tree.h.
20793         * tree-inline.c: Add new includes.
20794         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
20795         (private_is_attribute_p): Remove.
20796         (private_lookup_attribute): Likewise.
20797         (private_lookup_attribute_by_prefix): Simplify.
20798         (remove_attribute): Use is_attribute_p.
20799         * tree.h: Remove removed declarations.
20800
20801 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
20802
20803         PR middle-end/81698
20804         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
20805         instead of computing it in the function.  Formatting fix.
20806         (expand_case): Don't rely on default_edge being the first edge,
20807         clear it if removing it, pass default_edge to
20808         emit_case_dispatch_table.
20809         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
20810         fix.
20811
20812 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
20813
20814         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
20815         insn in the function, emit NOP after the insn.
20816
20817 2017-08-06  Tom de Vries  <tom@codesourcery.com>
20818
20819         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
20820         and element loops.
20821
20822 2017-08-06  Tom de Vries  <tom@codesourcery.com>
20823
20824         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
20825         loop.
20826
20827 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
20828
20829         PR tree-optimization/57371
20830         * match.pd: New pattern.
20831
20832 2017-08-04  Marek Polacek  <polacek@redhat.com>
20833
20834         PR middle-end/81695
20835         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
20836         perform the computation in offset_int.
20837
20838 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20839
20840         PR tree-optimization/81136
20841         * tree-vectorizer.h: Include tree-hash-traits.h.
20842         (vec_base_alignments): New typedef.
20843         (vec_info): Add a base_alignments field.
20844         (vect_record_base_alignments): Declare.
20845         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
20846         field.
20847         (DR_IS_CONDITIONAL_IN_STMT): New macro.
20848         (create_data_ref): Add an is_conditional_in_stmt argument.
20849         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
20850         the is_conditional_in_stmt field.
20851         (data_ref_loc): Add an is_conditional_in_stmt field.
20852         (get_references_in_stmt): Set the is_conditional_in_stmt field.
20853         (find_data_references_in_stmt): Update call to create_data_ref.
20854         (graphite_find_data_references_in_stmt): Likewise.
20855         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
20856         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
20857         (vect_record_base_alignment): New function.
20858         (vect_record_base_alignments): Likewise.
20859         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
20860         for nested statements even if we fail to compute a misalignment.
20861         Use pooled base alignments for unconditional references.
20862         (vect_find_same_alignment_drs): Compare base addresses instead
20863         of base objects.
20864         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
20865         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
20866
20867 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20868
20869         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
20870         Add an explicit name for the enum.  Use auto_vec for slp_instances
20871         and grouped_stores.
20872         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
20873         for all vectors.
20874         (_bb_vec_info): Add a constructor and destructor.
20875         (vinfo_for_stmt): Return NULL for uids of -1 as well.
20876         (destroy_loop_vec_info): Delete.
20877         (vect_destroy_datarefs): Likewise.
20878         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
20879         (vec_info::vec_info): New function.
20880         (vec_info::~vec_info): Likewise.
20881         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
20882         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
20883         destroy_loop_vec_info.
20884         * tree-vect-loop.c (new_loop_vec_info): Replace with...
20885         (_loop_vec_info::_loop_vec_info): ...this.
20886         (destroy_loop_vec_info): Replace with...
20887         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
20888         the stmt_vec_infos.  Leave handling of vec_info information to its
20889         destructor.  Remove explicit vector releases.
20890         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
20891         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
20892         * tree-vect-slp.c (new_bb_vec_info): Replace with...
20893         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
20894         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
20895         (destroy_bb_vec_info): Replace with...
20896         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
20897         information to its destructor.
20898         (vect_slp_analyze_bb_1): Use new and delete instead of
20899         new_bb_vec_info and destroy_bb_vec_info.
20900         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
20901         single delete.
20902
20903 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20904
20905         * tree-data-ref.h (subscript): Add access_fn field.
20906         (data_dependence_relation): Add could_be_independent_p.
20907         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
20908         (same_access_functions): Move to tree-data-ref.c.
20909         * tree-data-ref.c (ref_contains_union_access_p): New function.
20910         (access_fn_component_p): Likewise.
20911         (access_fn_components_comparable_p): Likewise.
20912         (dr_analyze_indices): Add a reference to access_fn_component_p.
20913         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
20914         DR_ACCESS_FN.
20915         (constant_access_functions): Likewise.
20916         (add_other_self_distances): Likewise.
20917         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
20918         (initialize_data_dependence_relation): Use XCNEW and remove
20919         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
20920         of access functions that have the same type.  Allow the
20921         subsequence to end with different bases in some circumstances.
20922         Record the chosen access functions in SUB_ACCESS_FN.
20923         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
20924         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
20925         (subscript_dependence_tester_1): Likewise dra and drb.
20926         (build_classic_dist_vector): Update calls accordingly.
20927         (subscript_dependence_tester): Likewise.
20928         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
20929         DDR_COULD_BE_INDEPENDENT_P.
20930         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
20931         comp_alias_ddrs instead of may_alias_ddrs.
20932         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
20933         New function.
20934         (vect_analyze_data_ref_dependence): Use it if
20935         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
20936         distance vectors if that fails.
20937         (dependence_distance_ge_vf): New function.
20938         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
20939         LOOP_VINFO_MAY_ALIAS_DDRS.
20940
20941 2017-08-04  Richard Biener  <rguenther@suse.de>
20942
20943         PR middle-end/81705
20944         * fold-const.c (fold_binary_loc): Properly restrict
20945         minus_var0 && minus_var1 case when associating undefined overflow
20946         entities.
20947
20948 2017-08-04  Tom de Vries  <tom@codesourcery.com>
20949
20950         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
20951
20952 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20953
20954         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20955         Don't start diagnostic messages with a capital letter.
20956         * config/rs6000/rs6000.c (rs6000_option_override_internal):
20957         Likewise.
20958         (rs6000_invalid_builtin): Likewise.
20959         (rs6000_trampoline_init): Likewise.
20960
20961 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
20962
20963         PR target/81621
20964         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
20965         after setting changeable df flags.
20966
20967 2017-08-03  Richard Biener  <rguenther@suse.de>
20968
20969         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
20970         up if the use is in USE - X.
20971
20972 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
20973
20974         * toplev.c (dumpfile.h): New include.
20975         (internal_error_reentered): New static function.  Use it...
20976         (internal_error_function): ...here to handle reentered internal_error.
20977
20978 2017-08-03  Richard Biener  <rguenther@suse.de>
20979
20980         PR middle-end/81148
20981         * fold-const.c (split_tree): Add minus_var and minus_con
20982         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
20983         here but always use minus_*.
20984         (associate_trees): Assert we never associate with MINUS_EXPR
20985         and NULL first operand.  Do not recurse for PLUS_EXPR operands
20986         when associating as MINUS_EXPR either.
20987         (fold_binary_loc): Track minus_var and minus_con.
20988
20989 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20990
20991         PR lto/81430
20992         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
20993         ACCEL_COMPILER, apply finish_options on
20994         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
20995
20996 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20997
20998         PR target/81662
20999         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
21000         function_entry_patch_area_size > 0.
21001
21002 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21003
21004         PR driver/81650
21005         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
21006         instead of 10??LU, perform unit multiplication in wide_int,
21007         don't change alloc_object_size_limit if the limit is larger
21008         than SSIZE_MAX.
21009
21010         PR tree-optimization/81655
21011         PR tree-optimization/81588
21012         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
21013         the case when ranges[i].low and high are 1 for unsigned type with
21014         precision 1.
21015
21016         PR middle-end/81052
21017         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
21018         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
21019
21020 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21021
21022         * tree-vrp.h: Add include guard.
21023
21024 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
21025
21026         PR target/81644
21027         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
21028         (ud2): New insn pattern.
21029         * config/i386/i386.c (ix86_expand_epilogue):
21030         For naked functions, generate ud2 instead of trap insn.
21031
21032 2017-08-02  Marek Polacek  <polacek@redhat.com>
21033
21034         PR other/81667
21035         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
21036
21037 2017-08-02  Tom de Vries  <tom@codesourcery.com>
21038             Cesar Philippidis  <cesar@codesourcery.com>
21039
21040         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
21041         Add missing edge probabilities.
21042
21043 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
21044
21045         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
21046         Correct endianness.
21047
21048 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
21049
21050         PR middle-end/79499
21051         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
21052         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
21053         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
21054         prologue_seq sequences - if any.
21055
21056 2017-08-02  Richard Biener  <rguenther@suse.de>
21057
21058         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
21059         via vectors if supported, integer extracts via punning if supported
21060         or otherwise vector extracts.
21061
21062 2017-08-02  Richard Biener  <rguenther@suse.de>
21063
21064         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
21065         into ...
21066         (bitmap_insert_into_set): ... this.
21067
21068 2017-08-02  Richard Biener  <rguenther@suse.de>
21069
21070         PR tree-optimization/81633
21071         Revert
21072         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
21073
21074         PR tree-optimization/71752
21075         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
21076
21077 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
21078
21079         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
21080         (machine_function::call_ms2sysv_pad_out): Remove field.
21081         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
21082         (ix86_compute_frame_layout): Likewise.
21083
21084 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
21085
21086         PR target/81654
21087         * config/i386/i386.c (ix86_set_func_type): Disallow naked
21088         attribute with interrupt attribute.
21089
21090 2017-08-01  Andrew Pinski  <apinski@cavium.com>
21091
21092         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
21093         BIT_INSERT_EXPR's operand 1
21094         to see if the types precision matches.
21095
21096 2017-08-01  Martin Liska  <mliska@suse.cz>
21097
21098         PR middle-end/70140
21099         * builtins.c (expand_builtin_memcpy_args): Remove.
21100         (expand_builtin_memcpy): Call newly added function
21101         expand_builtin_memory_copy_args.
21102         (expand_builtin_memcpy_with_bounds): Likewise.
21103         (expand_builtin_mempcpy): Remove last argument.
21104         (expand_builtin_mempcpy_with_bounds): Likewise.
21105         (expand_builtin_memory_copy_args): New function created from
21106         expand_builtin_mempcpy_args with small modifications.
21107         (expand_builtin_mempcpy_args): Remove.
21108         (expand_builtin_stpcpy): Remove unused argument.
21109         (expand_builtin): Likewise.
21110         (expand_builtin_with_bounds): Likewise.
21111
21112 2017-08-01  Martin Liska  <mliska@suse.cz>
21113
21114         Revert r250771
21115         Make mempcpy more optimal (PR middle-end/70140).
21116
21117 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21118
21119         PR target/81622
21120         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
21121         __builtin_vec_cmpne verify both arguments are compatible vectors
21122         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
21123         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
21124         move computation of aligned to after checking the argument types.
21125         Formatting fixes.
21126
21127         PR target/80846
21128         * config/rs6000/vsx.md (vextract_fp_from_shorth,
21129         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
21130         calls.
21131
21132 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
21133             Doug Rupp  <rupp@adacore.com>
21134             Olivier Hainque  <hainque@adacore.com>
21135
21136         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
21137         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
21138         arm8 (arch v4).
21139         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
21140         for TARGET_OS_CPP_BUILTIN.
21141         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
21142         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
21143         arm_arch7.
21144         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
21145         passing required abi options to the assembler for EABI configurations.
21146         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
21147         of .text.hot and .text.unlikely sections for kernel modules when
21148         using ARM style exceptions.
21149         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
21150         options. Add EXTRA_CC1_SPEC.
21151         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
21152         toolchain options.
21153         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
21154         transition.
21155         (ARM_TARGET2_DWARF_FORMAT): Define.
21156         * config/arm/t-vxworks: Adjust multilib control to removal of the
21157         Diab command line options.
21158
21159 2017-08-01  Martin Liska  <mliska@suse.cz>
21160
21161         PR gcov-profile/81561
21162         * gcov.c (unblock): Make unblocking safe as we need to preserve
21163         index correspondence of blocks and block_lists.
21164
21165 2017-08-01  Richard Biener  <rguenther@suse.de>
21166
21167         PR tree-optimization/81181
21168         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
21169         (compute_antic): ... end of iteration here.
21170
21171 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
21172
21173         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
21174         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
21175         (ftree-slp-vectorize): Likewise.
21176         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
21177         can no longer be set independent of flag_tree_loop_vectorize.
21178         * omp-general.c (emp_max_vf): Likewise.
21179         * opts.c (enable_fdo_optimizations): Remove references to
21180         flag_tree_vectorize, these are now implicit.
21181         (common_handle_option): Remove handling for OPT_ftree_vectorize,
21182         and leave it for the options machinery.
21183
21184 2017-08-01  Martin Liska  <mliska@suse.cz>
21185
21186         PR middle-end/70140
21187         * builtins.c (expand_builtin_memcpy_args): Remove.
21188         (expand_builtin_memcpy): Call newly added function
21189         expand_builtin_memory_copy_args.
21190         (expand_builtin_memcpy_with_bounds): Likewise.
21191         (expand_builtin_mempcpy): Remove last argument.
21192         (expand_builtin_mempcpy_with_bounds): Likewise.
21193         (expand_builtin_memory_copy_args): New function created from
21194         expand_builtin_mempcpy_args with small modifications.
21195         (expand_builtin_mempcpy_args): Remove.
21196         (expand_builtin_stpcpy): Remove unused argument.
21197         (expand_builtin): Likewise.
21198         (expand_builtin_with_bounds): Likewise.
21199
21200 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21201
21202         PR target/81641
21203         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
21204         print "ds:" only for immediates in generic address space.
21205
21206 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21207
21208         PR target/81639
21209         * config/i386/i386.c (ix86_funciton_naked): New prototype.
21210         (ix86_function_ok_for_sibcall): Return false for naked functions.
21211
21212 2017-08-01  Richard Biener  <rguenther@suse.de>
21213
21214         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
21215         (compute_antic): Seed worklist with exit block predecessors.
21216         * cfganal.c (dfs_find_deadend): For a cycle return the source
21217         of the edge closing it.
21218
21219 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
21220
21221         * config/aarch64/aarch64.c
21222         (aarch64_can_const_movi_rtx_p): Move 0 check.
21223
21224 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21225
21226         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
21227         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
21228         above macro.
21229         * match.pd: Ditto in address comparison pattern.
21230
21231 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21232
21233         PR tree-optimization/81627
21234         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
21235         closed ssa form for store-store chain.
21236
21237 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21238
21239         PR tree-optimization/81620
21240         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
21241         for store-store chain.
21242
21243 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21244
21245         PR tree-optimization/81588
21246         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
21247         ranges[i].in_p, invert comparison code ccode.  For >/>=,
21248         swap rhs1 and rhs2 and comparison code unconditionally,
21249         for </<= don't do that.  Don't swap rhs1/rhs2 again if
21250         ranges[i].in_p, instead invert comparison code ccode if
21251         opcode or oe->rank is BIT_IOR_EXPR.
21252
21253         PR target/80846
21254         * optabs.def (vec_extract_optab, vec_init_optab): Change from
21255         a direct optab to conversion optab.
21256         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
21257         with GET_MODE_INNER as last argument instead of optab_handler.
21258         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
21259         vector extraction if possible and optab is available.
21260         * expr.c (store_constructor): Use convert_optab_handler instead
21261         of optab_handler.  Use vector initialization from smaller
21262         vectors if possible and optab is available.
21263         * tree-vect-stmts.c (vectorizable_load): Likewise.
21264         * doc/md.texi (vec_extract, vec_init): Document that the optabs
21265         now have two modes.
21266         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
21267         of vec_init from half-sized vectors with the same element mode.
21268         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
21269         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
21270         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
21271         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
21272         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
21273         after mode in gen_vec_extract* calls.
21274         (vec_extract<mode>): Renamed to ...
21275         (vec_extract<mode><ssescalarmodelower>): ... this.
21276         (vec_extract<mode><ssehalfvecmodelower>): New expander.
21277         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
21278         element mode after mode in gen_vec_init* calls.
21279         (VEC_INIT_HALF_MODE): New mode iterator.
21280         (vec_init<mode>): Renamed to ...
21281         (vec_init<mode><ssescalarmodelower>): ... this.
21282         (vec_init<mode><ssehalfvecmodelower>): New expander.
21283         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
21284         (vec_extractv2sfsf): ... this.
21285         (vec_initv2sf): Renamed to ...
21286         (vec_initv2sfsf): ... this.
21287         (vec_extractv2si): Renamed to ...
21288         (vec_extractv2sisi): ... this.
21289         (vec_initv2si): Renamed to ...
21290         (vec_initv2sisi): ... this.
21291         (vec_extractv4hi): Renamed to ...
21292         (vec_extractv4hihi): ... this.
21293         (vec_initv4hi): Renamed to ...
21294         (vec_initv4hihi): ... this.
21295         (vec_extractv8qi): Renamed to ...
21296         (vec_extractv8qiqi): ... this.
21297         (vec_initv8qi): Renamed to ...
21298         (vec_initv8qiqi): ... this.
21299         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
21300         (vec_init<mode>): Renamed to ...
21301         (vec_init<mode><VEC_base_l>): ... this.
21302         (vec_extract<mode>): Renamed to ...
21303         (vec_extract<mode><VEC_base_l>): ... this.
21304         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
21305         (vec_initv2sfsf): ... this.
21306         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
21307         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21308         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
21309         element mode after mode in gen_vec_init* calls.
21310         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
21311         (vec_init<mode><Vel>): ... this.
21312         (vec_extract<mode>): Renamed to ...
21313         (vec_extract<mode><Vel>): ... this.
21314         * config/aarch64/iterators.md (Vel): New mode attribute.
21315         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
21316         Add element mode after mode in gen_vec_extract* calls.
21317         * config/s390/vector.md (non_vec_l): New mode attribute.
21318         (vec_extract<mode>): Renamed to ...
21319         (vec_extract<mode><non_vec_l>): ... this.
21320         (vec_init<mode>): Renamed to ...
21321         (vec_init<mode><non_vec_l>): ... this.
21322         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
21323         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
21324         vec_extract mode.
21325         * config/arm/iterators.md (V_elem_l): New mode attribute.
21326         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
21327         (vec_extract<mode><V_elem_l>): ... this.
21328         (vec_extractv2di): Renamed to ...
21329         (vec_extractv2didi): ... this.
21330         (vec_init<mode>): Renamed to ...
21331         (vec_init<mode><V_elem_l>): ... this.
21332         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
21333         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
21334         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
21335         Add element mode after gen_vec_extract* calls.
21336         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
21337         (vec_init<mode><unitmode>): ... this.
21338         (vec_extract<mode>): Renamed to ...
21339         (vec_extract<mode><unitmode>): ... this.
21340         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
21341         (vec_init<mode><unitmode>): ... this.
21342         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
21343         (vec_initv2sfsf): ... this.
21344         (vec_extractv2sf): Renamed to ...
21345         (vec_extractv2sfsf): ... this.
21346         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
21347         Add element mode after gen_vec_extract* calls.
21348         * config/mips/mips.md (unitmode): New mode iterator.
21349         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
21350         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
21351         * config/spu/spu.md (inner_l): New mode attribute.
21352         (vec_init<mode>): Renamed to ...
21353         (vec_init<mode><inner_l>): ... this.
21354         (vec_extract<mode>): Renamed to ...
21355         (vec_extract<mode><inner_l>): ... this.
21356         * config/sparc/sparc.md (veltmode): New mode iterator.
21357         (vec_init<VMALL:mode>): Renamed to ...
21358         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
21359         * config/ia64/vect.md (vec_initv2si): Renamed to ...
21360         (vec_initv2sisi): ... this.
21361         (vec_initv2sf): Renamed to ...
21362         (vec_initv2sfsf): ... this.
21363         (vec_extractv2sf): Renamed to ...
21364         (vec_extractv2sfsf): ... this.
21365         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
21366         (vec_init<mode>): Renamed to ...
21367         (vec_init<mode><VEC_base_l>): ... this.
21368         (vec_extract<mode>): Renamed to ...
21369         (vec_extract<mode><VEC_base_l>): ... this.
21370         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
21371         (vec_initv2sfsf): ... this.
21372         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
21373         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21374         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
21375         gen_vec_init* calls.
21376
21377 2017-08-01  Richard Biener  <rguenther@suse.de>
21378
21379         PR tree-optimization/81297
21380         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
21381         TREE_OVERFLOW from INTEGER_CSTs.
21382
21383 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
21384
21385         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
21386
21387 2017-07-31  Carl Love  <cel@us.ibm.com>
21388
21389         * config/rs6000/rs6000-c: Add support for built-in functions
21390         vector signed char vec_xl_be (signed long long, signed char *);
21391         vector unsigned char vec_xl_be (signed long long, unsigned char *);
21392         vector signed int vec_xl_be (signed long long, signed int *);
21393         vector unsigned int vec_xl_be (signed long long, unsigned int *);
21394         vector signed long long vec_xl_be (signed long long, signed long long *);
21395         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
21396         vector signed short vec_xl_be (signed long long, signed short *);
21397         vector unsigned short vec_xl_be (signed long long, unsigned short *);
21398         vector double vec_xl_be (signed long long, double *);
21399         vector float vec_xl_be (signed long long, float *);
21400         * config/rs6000/altivec.h (vec_xl_be): Add #define.
21401         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
21402         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
21403         for the builtins.
21404         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
21405         (altivec_expand_builtin): Add switch statement to call
21406         altivec_expand_xl_be for each builtin.
21407         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
21408         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
21409         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
21410         __builtin_vsx_le_be_v16qi.
21411         * doc/extend.texi: Update the built-in documentation file for the
21412         new built-in functions.
21413
21414 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21415
21416         PR target/25967
21417         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
21418         New function.
21419         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
21420
21421 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21422
21423         * config.gcc: Add z14.
21424         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
21425         CPU model numbers for z13s and z14.
21426         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
21427         arch12 with z14.
21428         * config/s390/s390-opts.h (enum processor_type): Rename
21429         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21430         * config/s390/s390.c (processor_table): Add field for CPU name to
21431         be passed to Binutils.
21432         (s390_asm_output_machine_for_arch): Use the new field in
21433         processor_table for Binutils.
21434         (s390_expand_builtin): Replace arch12 with z14.
21435         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21436         (s390_get_sched_attrmask): Likewise.
21437         (s390_get_unit_mask): Likewise.
21438         * config/s390/s390.opt: Add z14 to processor_type enum.
21439
21440 2017-07-31  Martin Jambor  <mjambor@suse.cz>
21441
21442         PR hsa/81477
21443         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
21444         regardless of optimization level.
21445
21446 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
21447             Martin Liska  <mliska@suse.cz>
21448
21449         * predict.def: Remove old comment and adjust probability.
21450         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
21451         PREDICT statements.
21452
21453 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21454
21455         PR target/25967
21456         * config/i386/i386.c (ix86_function_naked): New function.
21457         (ix86_can_use_return_insn_p): Return false for naked functions.
21458         (ix86_expand_prologue): Skip prologue for naked functions.
21459         (ix86_expand_epilogue): Skip epilogue for naked functions
21460         and emit trap instruction.
21461         (ix86_warn_func_return): New function.
21462         (ix86_attribute_table): Add "naked" attribute specification.
21463         (TARGET_WARN_FUNC_RETURN): Define.
21464         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
21465
21466 2017-07-31  Martin Liska  <mliska@suse.cz>
21467
21468         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
21469         (dump_gimple_bb_header): Always dump BB info.
21470         (pp_cfg_jump): Do not append info about BB when dumping a jump.
21471
21472 2017-07-31  Martin Liska  <mliska@suse.cz>
21473
21474         PR sanitize/81530
21475         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
21476         also with current_function_decl non-null equality.
21477
21478 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
21479
21480         PR sanitizer/81604
21481         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
21482         change type to the element type, instead add eltype variable and
21483         use it where we are interested in the element type.
21484
21485         PR tree-optimization/81603
21486         * ipa-polymorphic-call.c
21487         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
21488         offset arithmetic in offset_int, bail out if the resulting bit offset
21489         doesn't fit into shwi.
21490
21491 2017-07-31  Martin Liska  <mliska@suse.cz>
21492
21493         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
21494         (gimplify_save_expr): Fix comment.
21495
21496 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
21497
21498         PR target/79793
21499         * config/i386/i386.c (ix86_function_arg): Update arguments for
21500         exception handler.
21501         (ix86_compute_frame_layout): Set the initial stack offset to
21502         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
21503         INCOMING_FRAME_SP_OFFSET.
21504         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
21505         stack before exception handler returns.
21506         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
21507         the 'ERROR_CODE' for exception handler.
21508
21509 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
21510
21511         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
21512         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
21513         (ASM_OUTPUT_REG_POP): Ditto.
21514         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
21515         instead of asm_fprintf to output pure string.
21516
21517 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
21518
21519         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
21520         to imported_module_or_decl hook.
21521         (debug_nothing_tree_tree_tree_bool): Remove.
21522         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
21523         * debug.c (do_nothing_debug_hooks): Use
21524         debug_nothing_tree_tree_tree_bool_bool instead of
21525         debug_nothing_tree_tree_tree_bool.
21526         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
21527         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
21528         * sdbout.c (sdb_debug_hooks): Likewise.
21529         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
21530         (gen_namespace_die): Add DW_AT_export_symbols attribute if
21531         langhook wants it.
21532         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
21533         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
21534         attribute, don't add anything.
21535
21536 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21537
21538         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
21539         (fold_build2_stat_loc): Likewise.
21540         (fold_build3_stat_loc): Likewise.
21541         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
21542         (fold_build1_loc): Remove macro.
21543         (fold_build2_loc): Likewise.
21544         (fold_build3_loc): Likewise.
21545
21546 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21547
21548         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
21549         (gimple_build_debug_bind_source_stat): Likewise.
21550         * gimple.h (gimple_build_debug_bind): Remove macro.
21551         (gimple_build_debug_bind_source): Likewise.
21552
21553 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21554
21555         * bitmap.c (bitmap_alloc): Adjust.
21556         (bitmap_gc_alloc): Likewise.
21557         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
21558
21559 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21560
21561         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
21562         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
21563         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
21564         (bitmap_gc_alloc_stat): Likewise.
21565         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
21566
21567 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21568
21569         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
21570         * rtl.h (shallow_copy_rtx): Remove macro.
21571
21572 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21573
21574         * emit-rtl.c (gen_raw_REG): Adjust.
21575         * gengenrtl.c (gendef): Likewise.
21576         * rtl.c (rtx_alloc_stat): Remove _stat from name.
21577         * rtl.h (rtx_alloc): Remove macro.
21578
21579 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21580
21581         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
21582         (build_tree_list_stat): Likewise.
21583         * tree.h (build_tree_list): Remove macro.
21584         (build_tree_list_vec): Likewise.
21585
21586 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21587
21588         * tree.c (make_vector_stat): Remove _stat from name.
21589         (build_vector_stat): Likewise.
21590         * tree.h (make_vector_stat): Remove macro.
21591         (build_vector_stat): Likewise.
21592
21593 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21594
21595         * tree.h (build_var_debug_value): Remove prototype.
21596
21597 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21598
21599         * tree.c (tree_cons_stat): Remove _stat from name.
21600         * tree.h (tree_cons): Remove macro.
21601
21602 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21603
21604         * tree.c (build_vl_exp_stat): Remove _stat from name.
21605         * tree.h (build_vl_exp): Remove macro.
21606
21607 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21608
21609         * tree.c (build_decl_stat): Remove _stat from name.
21610         * tree.h (build_decl): Remove macro.
21611
21612 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21613
21614         * gimple.c (gimple_build_with_ops_stat): Adjust.
21615         (gimple_alloc_stat): Remove _stat from name.
21616         * gimple.h (gimple_alloc): Remove macro.
21617
21618 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21619
21620         * tree.c (make_tree_vec_stat): Remove _stat from name.
21621         (grow_tree_vec_stat): Likewise.
21622         * tree.h (make_tree_vec_stat): Adjust prototype.
21623         (grow_tree_vec_stat): Likewise.
21624         (make_tree_vec): Remove macro.
21625         (grow_tree_vec): Likewise.
21626
21627 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21628
21629         * fold-const.c (fold_build1_stat_loc): Adjust.
21630         (fold_build2_stat_loc): Likewise.
21631         (fold_build3_stat_loc): Likewise.
21632         * tree.c (build0_stat): Remove _stat from name.
21633         (build1_stat): Likewise.
21634         (build2_stat): Likewise.
21635         (build3_stat): Likewise.
21636         (build4_stat): Likewise.
21637         (build5_stat): Likewise.
21638         * tree.h (build1_loc): Remove macro, and rename _stat function
21639         to this.
21640         (build2_loc): Likewise.
21641         (build3_loc): Likewise.
21642         (build4_loc): Likewise.
21643         (build5_loc): Likewise.
21644
21645 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21646
21647         * tree.c (make_int_cst_stat): Remove _stat from name.
21648         * tree.h (make_int_cst_stat): Adjust prototype.
21649         (make_int_cst): Remove macro.
21650
21651 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21652
21653         * tree.c (make_tre_binfo_stat): Remove _stat from name.
21654         * tree.h (make_tree_binfo_stat): Adjust prototype.
21655         (make_tree_binfo): Remove.
21656
21657 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21658
21659         * tree.c (copy_node_stat): Rename to copy_node.
21660         (build_distinct_type_copy): Adjust.
21661         * tree.h (copy_node_stat): Adjust prototype.
21662         (copy_node): Remove macro.
21663
21664 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21665
21666         * tree.c (make_node_stat): rename to make_node.
21667         (build_tree_list_stat): Adjust.
21668         (build0_stat): Likewise.
21669         (build2_stat): Likewise.
21670         (build3_stat): Likewise.
21671         (build4_stat): Likewise.
21672         (build5_stat): Likewise.
21673         (build_decl_stat): Likewise.
21674         * tree.h (make_node_stat): Adjust prototype.
21675         (make_node): remove macro.
21676
21677 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
21678
21679         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
21680         (PPC_FEATURE2_SCV): Likewise.
21681         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
21682
21683 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21684
21685         * config/aarch64/aarch64.c
21686         (aarch64_internal_mov_immediate): Add new special pattern.
21687         * config/aarch64/aarch64.md (*movdi_aarch64):
21688         Add reg/32bit const mov case.
21689
21690 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21691             Richard Sandiford <richard.sandiford@linaro.org>
21692
21693         * config/aarch64/aarch64.md (mov<mode>): Generalize.
21694         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
21695         Add integer and movi cases.
21696         (movi-split-hf-df-sf split, fp16): New.
21697         (enabled): Added TARGET_FP_F16INST.
21698         * config/aarch64/iterators.md (GPF_HF): New.
21699         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
21700
21701 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21702
21703         * config/aarch64/aarch64.c
21704         (aarch64_simd_container_mode): Add prototype.
21705         (aarch64_expand_mov_immediate): Add HI support.
21706         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
21707         (aarch64_can_const_movi_rtx_p): New.
21708         (aarch64_preferred_reload_class):
21709         Remove restrictions of using FP registers for certain SIMD operations.
21710         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
21711         (aarch64_valid_floating_const): Add integer move validation.
21712         (aarch64_simd_imm_scalar_p): Remove.
21713         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
21714         (aarch64_legitimate_constant_p): Expand list of supported cases.
21715         * config/aarch64/aarch64-protos.h
21716         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
21717         (aarch64_reinterpret_float_as_int): New.
21718         (aarch64_simd_imm_scalar_p): Remove.
21719         * config/aarch64/constraints.md (Uvi): New.
21720         (Dd): Split into Ds and new Dd.
21721         * config/aarch64/aarch64.md (*movsi_aarch64):
21722         Add SIMD mov case.
21723         (*movdi_aarch64): Add SIMD mov case.
21724
21725 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21726
21727         * tree-predcom.c: (struct chain): Handle store-store chain in which
21728         stores for elimination only store loop invariant values.
21729         (execute_pred_commoning_chain): Ditto.
21730         (prepare_initializers_chain_store_elim): Ditto.
21731         (prepare_finalizers): Ditto.
21732         (is_inv_store_elimination_chain): New function.
21733         (initialize_root_vars_store_elim_1): New function.
21734
21735 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21736
21737         * tree-predcom.c: Revise general description of the pass.
21738         (enum chain_type): New enum type for store elimination.
21739         (struct chain): New field supporting store elimination.
21740         (struct component): Ditto.
21741         (dump_chain): Dump store-stores chain.
21742         (release_chain): Release resources.
21743         (split_data_refs_to_components): Compute and create component
21744         contains only stores for elimination.
21745         (get_chain_last_ref_at): New function.
21746         (make_invariant_chain): Initialization.
21747         (make_rooted_chain): Specify chain type in parameter and record it.
21748         (add_looparound_copies): Skip for store-stores chain.
21749         (determine_roots_comp): Compute type of chain and pass it to
21750         make_rooted_chain.
21751         (initialize_root_vars_store_elim_2): New function.
21752         (finalize_eliminated_stores): New function.
21753         (remove_stmt): Handle store for elimination.
21754         (execute_pred_commoning_chain): Execute predictive commoning on
21755         store-store chains.
21756         (determine_unroll_factor): Skip unroll for store-stores chain.
21757         (prepare_initializers_chain_store_elim): New function.
21758         (prepare_initializers_chain): Hanlde store-store chain.
21759         (prepare_finalizers_chain, prepare_finalizers): New function.
21760         (tree_predictive_commoning_loop): Return integer value indicating
21761         if loop is unrolled or lcssa form is corrupted.
21762         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
21763
21764 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21765
21766         * tree-predcom.c (initialize_root): Delete.
21767         (execute_pred_commoning_chain): Initialize root vars and replace
21768         reference of non-combined chain directly, rather than call above
21769         function.
21770
21771 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21772
21773         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
21774         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
21775
21776 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21777
21778         * tree-predcom.c (struct chain): New field init_seq.
21779         (release_chain): Release init_seq.
21780         (prepare_initializers_chain): Record intialization stmts in above
21781         field.
21782         (insert_init_seqs): New function.
21783         (tree_predictive_commoning_loop): Call insert_init_seqs.
21784
21785 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21786
21787         * tree-predcom.c (determine_roots_comp): Skip trivial components.
21788
21789 2017-07-28  Richard Biener  <rguenther@suse.de>
21790
21791         * match.pd: Remove superfluous :c.
21792         * genmatch.c (simplify::id): Add member.
21793         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
21794         Copy id.
21795         (current_id): New global.
21796         (dt_node::parent): Move from ...
21797         (dt_operand::parent): ... here.  Add for_id member.
21798         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
21799         (decision_tree::find_node): Relax order requirement when
21800         merging DT_TRUE nodes to ones inbetween the current simplify
21801         and the one we try to merge with.  Add diagnostic whenever
21802         we need to enforce pattern order by not merging.
21803         (decision_tree::insert): Set current_id.
21804         (decision_tree::print_node): Dump parent node and for_id.
21805         (parser::last_id): Add member.
21806         (parser::push_simplify): Assign unique id.
21807         (parser::parser): Initialize last_id.
21808
21809 2017-07-28  Martin Liska  <mliska@suse.cz>
21810
21811         PR sanitizer/81340
21812         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
21813         gimple_build_debug_bind.
21814
21815 2017-07-28  Richard Biener  <rguenther@suse.de>
21816
21817         PR tree-optimization/81502
21818         * match.pd: Add pattern combining BIT_INSERT_EXPR with
21819         BIT_FIELD_REF.
21820         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
21821         size/pos operands.
21822         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
21823         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
21824         for BIT_FIELD_REF args.
21825         * fold-const.c (make_bit_field_ref): Likewise.
21826         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
21827
21828 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
21829
21830         PR sanitizer/80998
21831         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
21832         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
21833         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
21834         Or it into SANITIZER_UNDEFINED.
21835         * ubsan.c: Include gimple-fold.h and varasm.h.
21836         (ubsan_expand_ptr_ifn): New function.
21837         (instrument_pointer_overflow): New function.
21838         (maybe_instrument_pointer_overflow): New function.
21839         (instrument_object_size): Formatting fix.
21840         (pass_ubsan::execute): Call instrument_pointer_overflow
21841         and maybe_instrument_pointer_overflow.
21842         * internal-fn.c (expand_UBSAN_PTR): New function.
21843         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
21844         * sanitizer.def (__ubsan_handle_pointer_overflow,
21845         __ubsan_handle_pointer_overflow_abort): New builtins.
21846         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
21847         * internal-fn.def (UBSAN_PTR): New internal function.
21848         * opts.c (sanitizer_opts): Add pointer-overflow.
21849         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
21850         * fold-const.c (build_range_check): Compute pointer range check in
21851         integral type if pointer arithmetics would be needed.  Formatting
21852         fixes.
21853
21854 2017-07-28  Martin Liska  <mliska@suse.cz>
21855
21856         PR sanitizer/81460
21857         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
21858         parameters that are of a variable-length.
21859
21860 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21861
21862         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
21863         rs6000/biarch64.h.
21864         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
21865         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21866         (CRT_CALL_STATIC_FUNCTION): Likewise.
21867         (ASM_DEFAULT_SPEC): New define.
21868         (ASM_SPEC32): Likewise.
21869         (ASM_SPEC64): Likewise.
21870         (ASM_SPEC_COMMON): Likewise.
21871         (ASM_SPEC): Likewise.
21872         (INVALID_64BIT): Likewise.
21873         (LINK_OS_DEFAULT_SPEC): Likewise.
21874         (LINK_OS_SPEC32): Likewise.
21875         (LINK_OS_SPEC64): Likewise.
21876         (POWERPC_LINUX): Likewise.
21877         (PTRDIFF_TYPE): Likewise.
21878         (RESTORE_FP_PREFIX): Likewise.
21879         (RESTORE_FP_SUFFIX): Likewise.
21880         (SAVE_FP_PREFIX): Likewise.
21881         (SAVE_FP_SUFFIX): Likewise.
21882         (SIZE_TYPE): Likewise.
21883         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
21884         (TARGET_64BIT): Likewise.
21885         (TARGET_64BIT): Likewise.
21886         (TARGET_AIX): Likewise.
21887         (WCHAR_TYPE_SIZE): Likewise.
21888         (WCHAR_TYPE): Undefine.
21889         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
21890         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
21891         (CPP_OS_RTEMS_SPEC): Delete.
21892         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
21893         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
21894         link_os_spec64.
21895         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
21896
21897 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
21898
21899         PR tree-optimization/81578
21900         * tree-parloops.c (build_new_reduction): Bail out if
21901         reduction_code isn't one of the standard OpenMP reductions.
21902         Move the details printing after that decision.
21903
21904 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21905
21906         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
21907         related to reload_in_progress.
21908         (splat_input_operand): Likewise.
21909         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
21910         Delete prototype.
21911         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
21912         field.
21913         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
21914         (TARGET_INSTANTIATE_DECLS): Likewise.
21915         (legitimate_indexed_address_p): Delete reload_in_progress code.
21916         (rs6000_debug_legitimate_address_p): Likewise.
21917         (rs6000_eliminate_indexed_memrefs): Likewise.
21918         (rs6000_emit_le_vsx_store): Likewise.
21919         (rs6000_emit_move_si_sf_subreg): Likewise.
21920         (rs6000_emit_move): Likewise.
21921         (register_to_reg_type): Likewise.
21922         (rs6000_pre_atomic_barrier): Likewise.
21923         (rs6000_machopic_legitimize_pic_address): Likewise.
21924         (rs6000_allocate_stack_temp): Likewise.
21925         (rs6000_address_for_fpconvert): Likewise.
21926         (rs6000_address_for_altivec): Likewise.
21927         (rs6000_secondary_memory_needed_rtx): Delete function.
21928         (rs6000_check_sdmode): Likewise.
21929         (rs6000_alloc_sdmode_stack_slot): Likewise.
21930         (rs6000_instantiate_decls): Likewise.
21931         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
21932         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
21933         Delete reload_in_progress.
21934         (*vec_reload_and_plus_<mptrsize>): Likewise.
21935         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
21936         (vsx_div_v2di): Likewise.
21937         (vsx_udiv_v2di): Likewise.
21938
21939 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21940
21941         * config/rs6000/rs6000.opt (mlra): Replace with stub.
21942         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
21943         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
21944         (rs6000_debug_reg_global): Delete print of LRA status.
21945         (rs6000_option_override_internal): Delete dead LRA related code.
21946         (rs6000_lra_p): Delete function.
21947         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
21948
21949 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21950
21951         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
21952         * config/riscv/rtems.h: New file.
21953
21954 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21955             Sudakshina Das  <sudi.das@arm.com>
21956
21957         * config/aarch64/aarch64.md
21958         (define_split for and<mode>3nr_compare): Move
21959         non aarch64_logical_operand to a register.
21960         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
21961         register immediate operand to a register.
21962         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
21963
21964 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21965
21966         PR middle-end/81564
21967         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
21968
21969 2017-07-27  Richard Biener  <rguenther@suse.de>
21970
21971         PR tree-optimization/81573
21972         PR tree-optimization/81494
21973         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
21974         multi defuse cycle case.
21975
21976 2017-07-27  Richard Biener  <rguenther@suse.de>
21977
21978         PR tree-optimization/81571
21979         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
21980         PHIs.
21981
21982 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
21983
21984         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
21985         earlier and only if MASK_FPU is set.  Adjust formatting.
21986
21987 2017-07-27  Martin Liska  <mliska@suse.cz>
21988
21989         * opt-functions.awk: Add validation of value of Init.
21990         * optc-gen.awk: Pass new argument.
21991
21992 2017-07-27  Martin Liska  <mliska@suse.cz>
21993
21994         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
21995         Fix wrong condition.
21996
21997 2017-07-27  Martin Liska  <mliska@suse.cz>
21998
21999         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
22000         BBs and edges seen by autoFDO.
22001
22002 2017-07-27  Richard Biener  <rguenther@suse.de>
22003
22004         PR tree-optimization/81502
22005         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
22006         with incompatible but same sized type.
22007         (execute_update_addresses_taken): Likewise.
22008
22009 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
22010
22011         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
22012         flag_tree_loop_vectorize rather than flag_tree_vectorize.
22013
22014 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22015
22016         PR target/81534
22017         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
22018         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
22019         Change s_operand to memory_operand.
22020
22021 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
22022
22023         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
22024         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
22025         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
22026         Emit instructions rather than returning an expression.  Handle TFmode
22027         and KFmode by casting to TImode.
22028         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
22029         (rs6000_emit_le_vsx_store): Likewise.
22030         * config/rs6000/vsx.md (VSX_TI): New iterator.
22031         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
22032         (*vsx_le_undo_permute_<mode>): Likewise.
22033         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
22034         emit the split sequence.
22035         (*vsx_le_perm_store_<mode>): Likewise.
22036
22037 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
22038
22039         PR tree-optimization/81555
22040         PR tree-optimization/81556
22041         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
22042         if true, force CHANGED for the recursive invocation.
22043         (reassociate_bb): Remember original length of ops array, pass
22044         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
22045
22046         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
22047         attributes for noipa attribute.  For naked attribute use
22048         lookup_attribute first before lookup_attribute_spec.
22049         * final.c (rest_of_handle_final): Disable IPA RA for functions with
22050         noipa attribute.
22051         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
22052         for functions with noipa attribute.
22053         (cgraph_externally_visible_p): Return true for functions with noipa
22054         attribute.
22055         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
22056         for functions with noipa attribute.
22057         * doc/extend.texi: Document noipa function attribute.
22058         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
22059         also for functions with noipa attribute.
22060         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
22061
22062 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22063
22064         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
22065         vec_unalign_load_cost and vec_unalign_store_cost.
22066
22067 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22068
22069         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
22070         -mvsx-small-integer option.
22071         (ISA_3_0_MASKS_IEEE): Likewise.
22072         (OTHER_VSX_VECTOR_MASKS): Likewise.
22073         (POWERPC_MASKS): Likewise.
22074         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
22075         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
22076         code, only testing for DImode being allowed in non-VSX floating
22077         point registers.
22078         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
22079         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
22080         another VSX test.
22081         (rs6000_option_override_internal): Delete -mvsx-small-integer.
22082         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
22083         TARGET_P8_VECTOR test.
22084         (rs6000_secondary_reload_simple_move): Likewise.
22085         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
22086         since TARGET_P9_VECTOR was already tested.
22087         (rs6000_opt_masks): Remove -mvsx-small-integer.
22088         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
22089         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22090         used.
22091         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
22092         test for TARGET_VEXTRACTUB was used, and that uses
22093         TARGET_P9_VECTOR.
22094         (p9 extract splitter): Likewise.
22095         (vsx_extract_<mode>_di_p9): Likewise.
22096         (vsx_extract_<mode>_store_p9): Likewise.
22097         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
22098         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
22099         the elimination of TARGET_VSX_SMALL_INTEGER.
22100         (vsx_extract_<mode>_p8): Likewise.
22101         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
22102         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
22103         (vsx_set_<mode>_p9): Likewise.
22104         (vsx_set_v4sf_p9): Likewise.
22105         (vsx_set_v4sf_p9_zero): Likewise.
22106         (vsx_insert_extract_v4sf_p9): Likewise.
22107         (vsx_insert_extract_v4sf_p9_2): Likewise.
22108         * config/rs6000/rs6000.md (sign extend splitter): Change
22109         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
22110         (floatsi<mode>2_lfiwax_mem): Likewise.
22111         (floatunssi<mode>2_lfiwzx_mem): Likewise.
22112         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
22113         since a test for TARGET_P9_VECTOR was used.
22114         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22115         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
22116         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22117         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22118         TARGET_P8_VECTOR test.
22119         (fix_trunc<mode>si2_stfiwx): Likewise.
22120         (fix_trunc<mode>si2_internal): Likewise.
22121         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
22122         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22123         used.
22124         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22125         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22126         TARGET_P8_VECTOR test.
22127         (fixuns_trunc<mode>si2_stfiwx): Likewise.
22128         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
22129         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22130         used.
22131         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22132         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
22133         since a test for TARGET_P9_VECTOR was used.
22134         (splitter for loading small constants): Likewise.
22135
22136 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22137
22138         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
22139         vec_fp_stmt_cost.
22140
22141 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
22142
22143         PR target/81563
22144         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
22145         (fp_valid_at): Likewise.
22146
22147 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22148
22149         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
22150         (qdf24xx_addrcost_table): Likewise.
22151         (cortexa57_tunings): Update to use generic_branch_cost.
22152         (cortexa72_tunings): Likewise.
22153         (cortexa73_tunings): Likewise.
22154         (qdf24xx_tunings): Likewise.
22155
22156 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22157
22158         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
22159         (thunderx2t99_branch_cost): Likewise.
22160         (cortexa35_tunings): Update to use generic_branch_cost.
22161         (cortexa53_tunings): Likewise.
22162         (cortexa57_tunings): Likewise.
22163         (cortexa72_tunings): Likewise.
22164         (cortexa73_tunings): Likewise.
22165         (thunderx2t99_tunings): Likewise.
22166
22167 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22168
22169         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
22170         (sparc_option_override): Honour MASK_FSMULD.
22171         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
22172         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
22173         * config/sparc/sparc.opt (mfsmuld): New option.
22174         * doc/invoke.texi (mfsmuld): Document option.
22175
22176 2017-07-26  Marek Polacek  <polacek@redhat.com>
22177
22178         PR middle-end/70992
22179         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
22180
22181 2017-07-26  Richard Biener  <rguenther@suse.de>
22182
22183         * gimple-match-head.c (do_valueize): Return OP if valueize
22184         returns NULL_TREE.
22185         (get_def): New helper to get at the def stmt of a SSA name
22186         if valueize allows.
22187         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
22188         do_valueize to get at the def stmt.
22189         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
22190
22191 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
22192
22193         PR middle-end/46932
22194         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
22195
22196 2017-07-26  Martin Liska  <mliska@suse.cz>
22197
22198         PR sanitize/81186
22199         * function.c (expand_function_start): Make expansion of
22200         nonlocal_goto_save_area after parm_birth_insn.
22201
22202 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22203
22204         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
22205         from all CPU target flags enable members.
22206
22207 2017-07-26  Richard Biener  <rguenther@suse.de>
22208
22209         * genmatch.c (dt_simplify::gen): Make iterator vars const.
22210         (decision_tree::gen): Make 'type' const.
22211         (write_predicate): Likewise.
22212
22213 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22214
22215         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
22216         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
22217         (rs6000_option_override_internal): Likewise.
22218         (rs6000_expand_vector_set): Likewise.
22219         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
22220         (TARGET_UPPER_REGS_SF): Likewise.
22221         (TARGET_UPPER_REGS_DI): Likewise.
22222         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
22223         (TARGET_DIRECT_MOVE_64BIT): Likewise.
22224         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
22225         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22226         (Splitters for DI constants in Altivec registers): Likewise.
22227         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
22228         (vsx_set_v4sf_p9): Likewise.
22229         (vsx_set_v4sf_p9_zero): Likewise.
22230         (vsx_insert_extract_v4sf_p9): Likewise.
22231         (vsx_insert_extract_v4sf_p9_2): Likewise.
22232
22233 2017-07-25  Carl Love  <cel@us.ibm.com>
22234
22235         * doc/extend.texi: Update the built-in documentation file for the
22236         existing built-in functions
22237         vector signed char vec_cnttz (vector signed char);
22238         vector unsigned char vec_cnttz (vector unsigned char);
22239         vector signed short vec_cnttz (vector signed short);
22240         vector unsigned short vec_cnttz (vector unsigned short);
22241         vector signed int vec_cnttz (vector signed int);
22242         vector unsigned int vec_cnttz (vector unsigned int);
22243         vector signed long long vec_cnttz (vector signed long long);
22244         vector unsigned long long vec_cnttz (vector unsigned long long);
22245
22246 2017-07-25  Andrew Pinski  <apinski@cavium.com>
22247
22248         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
22249         accesses where the use is for the first operand of a BIT_INSERT.
22250
22251 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22252
22253         PR bootstrap/81521
22254         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22255         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22256
22257 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22258
22259         * config/i386/gstabs.h: Delete.
22260         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
22261
22262 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
22263
22264         * config/i386/i386.c (ix86_decompose_address): Do not check for
22265         register RTX when looking at index_reg or base_reg.
22266         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
22267
22268 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
22269
22270         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
22271         to update EH info here.
22272
22273 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22274
22275         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
22276
22277 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22278
22279         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
22280
22281 2017-07-25  Torsten Duwe  <duwe@suse.de>
22282
22283         * common.opt: Introduce -fpatchable-function-entry
22284         command line option, and its variables function_entry_patch_area_size
22285         and function_entry_patch_area_start.
22286         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
22287         including a two-value parser.
22288         * target.def (print_patchable_function_entry): New target hook.
22289         * targhooks.h (default_print_patchable_function_entry): New function.
22290         * targhooks.c (default_print_patchable_function_entry): Likewise.
22291         * toplev.c (process_options): Switch off IPA-RA if
22292         patchable function entries are being generated.
22293         * varasm.c (assemble_start_function): Look at the
22294         patchable-function-entry command line switch and current
22295         function attributes and maybe generate NOP instructions by
22296         calling the print_patchable_function_entry hook.
22297         * doc/extend.texi: Document patchable_function_entry attribute.
22298         * doc/invoke.texi: Document -fpatchable_function_entry
22299         command line option.
22300         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
22301         New target hook.
22302         * doc/tm.texi: Re-generate.
22303
22304 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
22305
22306         PR target/81532
22307         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
22308         TARGET_AVX512DQ rather than TARGET_AVX512BW.
22309
22310 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
22311
22312         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
22313
22314 2017-07-25  Richard Biener  <rguenther@suse.de>
22315
22316         PR tree-optimization/81455
22317         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
22318         not walk in cycles when looking for guards.
22319
22320 2017-07-25  Richard Biener  <rguenther@suse.de>
22321
22322         PR tree-optimization/81529
22323         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
22324         when optimizing backedge uses.
22325
22326 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
22327
22328         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
22329         character for AIX.
22330         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
22331         to dl_section_ref.  On AIX, append an expression to subtract
22332         the size of the section length to dl_section_ref.
22333
22334 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
22335
22336         * configure.ac: If any of the config.* scripts fail, exit 1.
22337         * configure: Regenerate.
22338
22339 2017-07-25  Richard Biener  <rguenther@suse.de>
22340
22341         PR middle-end/81546
22342         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
22343         of immediate uses, be more verbose on errors.
22344
22345 2017-07-25  Richard Biener  <rguenther@suse.de>
22346
22347         PR tree-optimization/81510
22348         * tree-vect-loop.c (vect_is_simple_reduction): When the
22349         reduction stmt is not inside the loop bail out.
22350
22351 2017-07-25  Richard Biener  <rguenther@suse.de>
22352
22353         PR tree-optimization/81303
22354         * tree-vect-loop-manip.c (vect_loop_versioning): Build
22355         profitability check against LOOP_VINFO_NITERSM1.
22356
22357 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22358
22359         * domwalk.c (cmp_bb_postorder): Simplify.
22360         (sort_bbs_postorder): New function.  Use it...
22361         (dom_walker::walk): ...here to optimize common cases.
22362
22363 2017-07-25  Martin Liska  <mliska@suse.cz>
22364
22365         PR ipa/81520
22366         * ipa-visibility.c (function_and_variable_visibility): Make the
22367         redirection just on target that supports aliasing.
22368         Fix GNU coding style.
22369
22370 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22371
22372         PR libgcc/61152
22373         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
22374         Format changes.
22375         * config/arm/rtems.h: Likewise.
22376         * config/bfin/rtems.h: Likewise.
22377         * config/i386/rtemself.h: Likewise.
22378         * config/lm32/rtems.h: Likewise.
22379         * config/m32c/rtems.h: Likewise.
22380         * config/m68k/rtemself.h: Likewise.
22381         * config/microblaze/rtems.h: Likewise.
22382         * config/mips/rtems.h: Likewise.
22383         * config/moxie/rtems.h: Likewise.
22384         * config/nios2/rtems.h: Likewise.
22385         * config/powerpcspe/rtems.h: Likewise.
22386         * config/rs6000/rtems.h: Likewise.
22387         * config/rtems.h: Likewise.
22388         * config/sh/rtems.h: Likewise.
22389         * config/sh/rtemself.h: Likewise.
22390         * config/sparc/rtemself.h: Likewise.
22391
22392 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22393
22394         PR 81487
22395         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
22396         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
22397         * tree-ssa-structalias.c (alias_get_name): Same.
22398
22399 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
22400
22401         PR target/81414
22402         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
22403         instructions if no du chain is found.
22404
22405 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22406
22407         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
22408
22409 2017-07-25  Richard Biener  <rguenther@suse.de>
22410
22411         PR middle-end/81505
22412         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
22413         sticky.
22414
22415 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22416
22417         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
22418         upper-regs options.
22419         (ISA_2_7_MASKS_SERVER): Likewise.
22420         (ISA_3_0_MASKS_IEEE): Likewise.
22421         (OTHER_P8_VECTOR_MASKS): Likewise.
22422         (OTHER_VSX_VECTOR_MASKS): Likewise.
22423         (POWERPC_MASKS): Likewise.
22424         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
22425         duplicate list of options.
22426         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
22427         explicit -mupper-regs options.
22428         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
22429         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
22430         alias for -mupper-regs-df.
22431         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
22432         (rs6000_init_hard_regno_mode_ok): Likewise.
22433         (rs6000_option_override_internal): Likewise.
22434         (rs6000_opt_masks): Likewise.
22435         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
22436         options in terms of whether -mvsx or -mpower8-vector was used.
22437         (TARGET_UPPER_REGS_DI): Likewise.
22438         (TARGET_UPPER_REGS_SF): Likewise.
22439         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
22440         -mupper-regs-* options.
22441
22442 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22443
22444         * passes.c (emergency_dump_function): Print some empty lines and a
22445         header before the RTL dump.
22446
22447 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22448
22449         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
22450
22451 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
22452
22453         PR target/79041
22454         * config/aarch64/aarch64.c (aarch64_classify_symbol):
22455         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
22456
22457 2017-07-24  Carl Love  <cel@us.ibm.com>
22458
22459         * config/rs6000/rs6000-c.c: Add support for built-in functions
22460         vector float vec_extract_fp32_from_shorth (vector unsigned short);
22461         vector float vec_extract_fp32_from_shortl (vector unsigned short);
22462         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
22463         vec_extract_fp_from_shortl): Add defines for the two builtins.
22464         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
22465         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
22466         new builtins.
22467         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
22468         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
22469         * doc/extend.texi: Update the built-in documentation file for the
22470         new built-in function.
22471
22472 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
22473
22474         PR bootstrap/81521
22475         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
22476         documentation.
22477         * doc/generic.texi: Likewise.
22478         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22479         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22480
22481 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
22482
22483         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
22484         (aarch64_mls_elt_merge<mode>): Likewise.
22485
22486 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
22487
22488         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
22489         having __cxa_atexit.
22490
22491 2017-07-23  Michael Collison  <michael.collison@arm.com>
22492
22493         * config/arm/arm.c (arm_option_override): Deprecate
22494         use of -mstructure-size-boundary.
22495         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
22496         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
22497
22498 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22499
22500         PR target/80695
22501         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
22502         Reduce cost estimate for direct moves.
22503
22504 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
22505
22506         PR target/80569
22507         * config/i386/i386.c (ix86_option_override_internal): Disable
22508         BMI, BMI2 and TBM instructions for -m16.
22509
22510 2017-07-21  Carl Love  <cel@us.ibm.com>
22511
22512         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22513         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22514         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22515         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22516         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22517         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22518         VMULOSW): New enum "unspec" values.
22519         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22520         altivec_vmulosw): New patterns.
22521         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22522         VMULOSW): Add definitions.
22523
22524 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
22525
22526         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
22527         (qdf24xx): Likewise.
22528         * config/aarch64/aarch64-options-extensions.def (rdma); New.
22529         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
22530         (AARCH64_FL_V8_1): Renumber.
22531         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
22532         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
22533         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
22534         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
22535         rdma to feature modifiers list.
22536
22537 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
22538
22539         PR middle-end/56727
22540         * ipa-visibility (function_and_variable_visibility): Convert
22541         recursive PLT call to direct call if appropriate.
22542
22543 2017-07-21  Andrew Pinski  <apinski@cavium.com>
22544
22545         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
22546         operand 1 to see if the types precision matches.
22547         * fold-const.c (operand_equal_p): Likewise.
22548
22549 2017-07-21  Richard Biener  <rguenther@suse.de>
22550
22551         PR tree-optimization/81303
22552         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
22553         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
22554         (vect_peeling_hash_get_lowest_cost): Adjust.
22555         (vect_enhance_data_refs_alignment): Likewise.  Use
22556         vect_get_peeling_costs_all_drs to compute the penalty for no
22557         peeling to match up costs.
22558
22559 2017-07-21  Richard Biener  <rguenther@suse.de>
22560
22561         PR tree-optimization/81500
22562         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
22563         we didn't identify a reduction path.
22564
22565 2017-07-21  Tom de Vries  <tom@codesourcery.com>
22566             Cesar Philippidis  <cesar@codesourcery.com>
22567
22568         PR gcov-profile/81442
22569         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
22570         probabilities.
22571
22572 2017-07-21  Tom de Vries  <tom@codesourcery.com>
22573
22574         PR lto/81430
22575         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
22576         function.
22577         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
22578         nvptx_override_options_after_change.
22579
22580 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
22581
22582         * dwarf2out.c (output_file_names): Avoid double testing for
22583         dwarf_version >= 5.
22584
22585 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
22586
22587         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
22588
22589 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
22590
22591         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
22592         hot/cold regions.
22593         (try_crossjump_to_edge): Do not punt on partitioned functions.
22594
22595 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
22596
22597         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
22598         Put all BBs reachable only via paths crossing cold region to cold
22599         region.
22600         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
22601
22602 2016-07-21  Richard Biener  <rguenther@suse.de>
22603
22604         PR tree-optimization/81303
22605         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
22606         into account prologue and epilogue iterations when raising
22607         min_profitable_iters to sth at least covering one vector iteration.
22608
22609 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
22610
22611         * config/arm/arm.c (arm_test_cpu_arch_dat):
22612         Check for overlap.
22613
22614 2017-07-20  Nathan Sidwell  <nathan@acm.org>
22615
22616         Remove TYPE_METHODS.
22617         * tree.h (TYPE_METHODS): Delete.
22618         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
22619         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
22620         (dbxout_type_methods): Scan TYPE_FIELDS.
22621         (dbxout_type): Don't check TYPE_METHODS here.
22622         * function.c (use_register_for_decl): Always ignore register for
22623         class types when not optimizing.
22624         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
22625         * tree.c (free_lang_data_in_type): Stitch out member functions and
22626         templates from TYPE_FIELDS.
22627         (build_distinct_type_copy, verify_type_variant,
22628         verify_type): Member fns are on TYPE_FIELDS.
22629         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
22630         * tree-pretty-print.c (dump_generic_node): Likewise.
22631
22632 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
22633
22634         PR target/80846
22635         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
22636         V2TImode and V4TImode.
22637         (ix86_expand_vector_extract): Likewise.
22638         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
22639         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
22640         (ssescalarmode): Handle V4TImode and V2TImode.
22641         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
22642         (*vec_extractv2ti, *vec_extractv4ti): New insns.
22643         (VEXTRACTI128_MODE): New mode iterator.
22644         (splitter for *vec_extractv?ti first element): New.
22645         (VEC_INIT_MODE): New mode iterator.
22646         (vec_init<mode>): Consolidate 3 expanders into one using
22647         VEC_INIT_MODE mode iterator.
22648
22649 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
22650
22651         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
22652         non_spilled_static_chain_regno_p.
22653
22654 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
22655
22656         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
22657
22658 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
22659
22660         * bb-reorder.c (connect_traces): Allow copying of blocks within
22661         single partition.
22662
22663 2017-07-20  Richard Biener  <rguenther@suse.de>
22664
22665         * gimple.h (gimple_phi_result): Add gphi * overload.
22666         (gimple_phi_result_ptr): Likewise.
22667         (gimple_phi_arg): Likewise.  Adjust index assert to only
22668         allow actual argument accesses rather than all slots available
22669         by capacity.
22670         (gimple_phi_arg_def): Add gphi * overload.
22671         * tree-phinodes.c (make_phi_node): Initialize only actual
22672         arguments.
22673         (resize_phi_node): Clear memory not covered by old node,
22674         do not initialize excess argument slots.
22675         (reserve_phi_args_for_new_edge): Initialize new argument slot
22676         completely.
22677
22678 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
22679
22680         PR tree-optimization/81388
22681         Revert r238585:
22682         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
22683
22684         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
22685         by removing computation of may_be_zero.
22686
22687 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22688             Tom de Vries  <tom@codesourcery.com>
22689
22690         PR middle-end/81030
22691         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
22692         when gimple level profile disagrees with what RTL expander did.
22693
22694 2017-07-20  Richard Biener  <rguenther@suse.de>
22695
22696         PR tree-optimization/61171
22697         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
22698         (vect_analyze_stmt): Add slp instance parameter.
22699         (vectorizable_reduction): Likewise.
22700         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
22701         (vect_is_simple_reduction): Deal with chains not detected
22702         as SLP reduction chain, specifically not properly associated
22703         chains containing a mix of plus/minus.
22704         (get_reduction_op): Remove.
22705         (get_initial_defs_for_reduction): Simplify, pass in whether
22706         this is a reduction chain, pass in the SLP node for the PHIs.
22707         (vect_create_epilog_for_reduction): Get the SLP instance as
22708         arg and adjust.
22709         (vectorizable_reduction): Get the SLP instance as arg.
22710         During analysis remember the SLP node with the PHIs in the
22711         instance.  Simplify getting at the vectorized reduction PHIs.
22712         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
22713         through SLP instance.
22714         (vect_slp_analyze_operations): Likewise.
22715         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
22716         (vect_transform_stmt): Likewise.
22717
22718 2017-07-20  Tom de Vries  <tom@codesourcery.com>
22719
22720         PR tree-optimization/81489
22721         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
22722         read of phi arg location to before loop that modifies phi.
22723
22724 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
22725
22726         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
22727         New pattern.
22728
22729 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22730
22731         PR middle-end/81331
22732         * except.c (execute): Fix ordering issue.
22733
22734 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
22735
22736         PR rtl-optimization/81423
22737         * combine.c (make_compound_operation_int): Don't try to optimize
22738         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
22739
22740 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
22741
22742         PR rtl-optimization/81423
22743         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
22744         with a constant that is -1 in the truncated to mode.
22745
22746 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22747
22748         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
22749         (determine_unlikely_bbs): ... here.
22750         * predict.h (propagate_unlikely_bbs_forward): Declare.
22751         * cfgexpand.c (pass_expand::execute): Use it.
22752         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
22753         unlikely edges.
22754         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
22755         propagate_unlikely_bbs_forward.
22756
22757 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22758
22759         PR middle-end/81331
22760         * except.c (maybe_add_nop_after_section_switch): New function.
22761         (execute): Use it.
22762
22763 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22764
22765         * gimple.h (gimple_phi_set_arg): Make assert more strict.
22766
22767 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22768
22769         * gimple.h (gimple_phi_arg): Make assert more strict.
22770
22771 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
22772
22773         * config.gcc (powerpc*-*-*): Add mmintrin.h.
22774         * config/rs6000/mmintrin.h: New file.
22775         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
22776
22777 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
22778
22779         PR tree-optimization/81346
22780         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
22781
22782 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22783
22784         * config/nvptx/nvptx.md (VECIM): Add V2DI.
22785
22786 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22787
22788         * config/nvptx/nvptx-modes.def: Add V2DImode.
22789         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
22790         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
22791         (nvptx_output_mov_insn): Handle lack of mov.b128.
22792         (nvptx_print_operand): Handle 'H' and 'L' codes.
22793         (nvptx_vector_mode_supported): Allow V2DImode.
22794         (nvptx_preferred_simd_mode): New function.
22795         (nvptx_data_alignment): New function.
22796         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
22797         nvptx_preferred_simd_mode.
22798         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
22799         64 to 128 bits.
22800         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
22801
22802 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22803
22804         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
22805         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
22806         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
22807         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
22808         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
22809         (mov<VECIM>_insn): New define_insn.
22810         (define_expand "mov<VECIM>): New define_expand.
22811
22812 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22813
22814         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
22815
22816 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
22817
22818         PR tree-optimization/81346
22819         * fold-const.h (fold_div_compare, range_check_type): Declare.
22820         * fold-const.c (range_check_type): New function.
22821         (build_range_check): Use range_check_type.
22822         (fold_div_compare): No longer static, rewritten into
22823         a match.pd helper function.
22824         (fold_comparison): Don't call fold_div_compare here.
22825         * match.pd (X / C1 op C2): New optimization using fold_div_compare
22826         as helper function.
22827
22828 2017-07-19  Nathan Sidwell  <nathan@acm.org>
22829
22830         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
22831         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
22832         * tree.c (find_decls_types_r, verify_type): Use
22833         TYPE_{MIN,MAX}_VALUE_RAW.
22834         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
22835         (hash_tree): Likewise.
22836         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
22837         Likewise.
22838         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
22839         Likewise.
22840
22841 2017-07-18  Tom de Vries  <tom@codesourcery.com>
22842
22843         PR middle-end/81464
22844         * omp-expand.c (expand_omp_for_static_chunk): Handle
22845         equal-argument loop exit phi.
22846
22847 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
22848
22849         PR target/81471
22850         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
22851         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
22852         operand 2 predicate.
22853         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
22854         operand 2 predicate.
22855         (ror,rol -> rorx splitters): Use const_int_operand as
22856         operand 2 predicate.
22857
22858 2017-06-18  Richard Biener  <rguenther@suse.de>
22859
22860         PR tree-optimization/81410
22861         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
22862         the gap in the ! slp_perm SLP case after each group.
22863
22864 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22865
22866         PR middle-end/81463
22867         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
22868         again.
22869
22870 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22871
22872         PR middle-end/81462
22873         * predict.c (set_even_probabilities): Cleanup; do not affect
22874         probabilities that are already known.
22875         (combine_predictions_for_bb): Call even when count is set.
22876
22877 2017-07-18  Nathan Sidwell  <nathan@acm.org>
22878
22879         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22880         TYPE_MAX_VALUE.
22881
22882 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
22883
22884         PR target/81408
22885         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
22886         optimization for loop niter analysis.
22887
22888 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
22889
22890         PR target/81473
22891         * config/avr/avr.c (avr_optimize_casesi): Don't use
22892         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
22893
22894 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22895
22896         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
22897         body_cost_vec from _vect_peel_extended_info.
22898         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
22899         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
22900         npeel.
22901
22902 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
22903
22904         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
22905
22906 2017-07-18  Richard Biener  <rguenther@suse.de>
22907
22908         PR tree-optimization/80620
22909         PR tree-optimization/81403
22910         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
22911         info when re-using a VN table entry.
22912
22913 2017-07-18  Richard Biener  <rguenther@suse.de>
22914
22915         PR tree-optimization/81418
22916         * tree-vect-loop.c (vectorizable_reduction): Properly compute
22917         vectype_in.  Verify that with lane-reducing reduction operations
22918         we have a single def-use cycle.
22919
22920 2017-07-17  Carl Love  <cel@us.ibm.com>
22921
22922         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
22923
22924         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22925         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22926         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22927         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22928         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22929         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22930         VMULOSW): New enum "unspec" values.
22931         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
22932         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
22933         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22934         altivec_vmulosw): New patterns.
22935         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22936         VMULOSW): Add definitions.
22937
22938 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
22939
22940         * config/alpha/alpha.c: Include predict.h.
22941
22942 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
22943
22944         * tree-vrp.c (compare_assert_loc): Fix comparison function
22945         to return predictable results.
22946
22947 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22948
22949         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
22950         option.
22951         (subdi3): Likewise.
22952         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
22953         * doc/invoke.texi (mexpand-adddi): Update text.
22954
22955 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22956
22957         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
22958         that also clobbers the CC register. The old expand code is moved
22959         to ...
22960         (*arc_clzsi2): ... here.
22961         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
22962         the CC register. The old expand code is moved to ...
22963         (arc_ctzsi2): ... here.
22964
22965 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22966
22967         * config/arc/arc.opt (mindexed-loads): Use initial value
22968         TARGET_INDEXED_LOADS_DEFAULT.
22969         (mauto-modify-reg): Use initial value
22970         TARGET_AUTO_MODIFY_REG_DEFAULT.
22971         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
22972         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
22973         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
22974         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
22975
22976 2017-07-17  Martin Liska  <mliska@suse.cz>
22977
22978         PR sanitizer/81302
22979         * opts.c (finish_options): Do not allow -fgnu-tm
22980         w/ -fsanitize={kernel-,}address.  Say sorry.
22981
22982 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22983
22984         PR target/81369
22985         * tree-loop-distribution.c (classify_partition): Only assert on
22986         numer of iterations.
22987         (merge_dep_scc_partitions): Delete prameter.  Update function call.
22988         (distribute_loop): Remove code handling loop with unknown niters.
22989         (pass_loop_distribution::execute): Skip loop with unknown niters.
22990
22991 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22992
22993         PR target/81369
22994         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
22995         function sort_partitions_by_post_order.
22996
22997 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22998
22999         PR tree-optimization/81374
23000         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
23001         the max index of basic blocks, rather than number of basic blocks.
23002
23003 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23004
23005         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
23006         proto.
23007         (arc_legitimate_pic_operand_p): Likewise.
23008         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
23009         function.
23010         (arc_needs_pcl_p): Likewise.
23011         (arc_legitimate_pc_offset_p): Likewise.
23012         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
23013         function is also used in constrains.md.
23014         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
23015         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
23016         PLUS.  Only return true/false in known cases, otherwise assert.
23017         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
23018         is already called in arc_legitimate_constant_p.
23019         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
23020         pic addresses.
23021         (LEGITIMATE_PIC_OPERAND_P): Use
23022         arc_raw_symbolic_reference_mentioned_p function.
23023         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
23024         function.
23025         (Cal): Likewise.
23026         (C32): Likewise.
23027
23028 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23029         Andrew Burgess  <andrew.burgess@embecosm.com>
23030
23031         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
23032         (arc_return_address_register): New function.
23033         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
23034         (arc_handle_fndecl_attribute): Add naked attribute.
23035         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
23036         (TARGET_WARN_FUNC_RETURN): Likewise.
23037         (arc_allocate_stack_slots_for_args): New function.
23038         (arc_warn_func_return): Likewise.
23039         (machine_function): Change type fn_type.
23040         (arc_compute_function_type): Consider new naked function type,
23041         change function return type.
23042         (arc_must_save_register): Adapt to handle new
23043         arc_compute_function_type's return type.
23044         (arc_expand_prologue): Likewise.
23045         (arc_expand_epilogue): Likewise.
23046         (arc_return_address_regs): Delete.
23047         (arc_return_address_register): New function.
23048         (arc_epilogue_uses): Use above function.
23049         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
23050         (arc_function_type): Change encoding, add naked type.
23051         (ARC_INTERRUPT_P): Change to handle the new encoding.
23052         (ARC_FAST_INTERRUPT_P): Likewise.
23053         (ARC_NORMAL_P): Define.
23054         (ARC_NAKED_P): Likewise.
23055         (arc_compute_function_type): Delete prototype.
23056         * config/arc/arc.md (in_ret_delay_slot): Use
23057         arc_return_address_register function.
23058         (simple_return): Likewise.
23059         (p_return_i): Likewise.
23060
23061 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23062
23063         PR tree-optimization/81428
23064         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
23065         can't be built for those types.
23066
23067 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23068
23069         Remove stuff dead since r239246.
23070
23071         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
23072         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
23073         (avr_inform_devices): Remove dead stuff.
23074
23075 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
23076
23077         * config/arm/arm_neon.h: Fix softp typo.
23078
23079 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23080
23081         PR tree-optimization/81365
23082         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
23083         aggregate moves onto bb predecessor edges, make sure there are no
23084         loads that could alias the lhs in between the start of bb and the
23085         loads from *phi.
23086
23087 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23088
23089         PR 80929
23090         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
23091         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
23092         [LSHIFTRT, outer_code = TRUNCATE]: Same.
23093
23094 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23095
23096         PR tree-optimization/81396
23097         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
23098         (init_symbolic_number): Initialize it to 1.
23099         (perform_symbolic_merge): Add n_ops from both operands into the new
23100         n_ops.
23101         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
23102         without base_addr as useless if they need more than one operation.
23103         (bswap_replace): Handle !bswap case for NULL base_addr.
23104
23105 2017-07-17  Tom de Vries  <tom@codesourcery.com>
23106
23107         PR target/81069
23108         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
23109         as possible.
23110
23111 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23112
23113         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
23114         conditional builtin define __FIX_LEON3FT_B2BST.
23115
23116 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
23117
23118         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
23119         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
23120         with -mfix-ut700.
23121
23122 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23123
23124         PR rtl-optimization/81424
23125         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
23126         to remove potential trapping from operands if -fnon-call-exceptions.
23127
23128 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23129
23130         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
23131         profile_proability for scalling.
23132         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
23133
23134 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23135
23136         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
23137
23138 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23139
23140         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
23141         fixpoint arithmetics.
23142
23143 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23144
23145         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
23146         fixpoint arithmetics.
23147
23148 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23149
23150         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
23151         fixpoint arithmetics.
23152
23153 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23154
23155         * profile-count.h (profile_probability::from_reg_br_prob_note,
23156         profile_probability::to_reg_br_prob_note): New functions.
23157         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
23158         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
23159         * predict.c (probability_reliable_p): Update.
23160         (edge_probability_reliable_p): Update.
23161         (br_prob_note_reliable_p): Update.
23162         (invert_br_probabilities): Update.
23163         (add_reg_br_prob_note): New function.
23164         (combine_predictions_for_insn): Update.
23165         * asan.c (asan_clear_shadow): Update.
23166         * cfgbuild.c (compute_outgoing_frequencies): Update.
23167         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
23168         (update_br_prob_note): Update.
23169         (rtl_verify_edges): Update.
23170         (purge_dead_edges): Update.
23171         (fixup_reorder_chain): Update.
23172         * emit-rtl.c (try_split): Update.
23173         * ifcvt.c (cond_exec_process_insns): Update.
23174         (cond_exec_process_if_block): Update.
23175         (dead_or_predicable): Update.
23176         * internal-fn.c (expand_addsub_overflow): Update.
23177         (expand_neg_overflow): Update.
23178         (expand_mul_overflow): Update.
23179         * loop-doloop.c (doloop_modify): Update.
23180         * loop-unroll.c (compare_and_jump_seq): Update.
23181         * optabs.c (emit_cmp_and_jump_insn_1): Update.
23182         * predict.h: Update.
23183         * reorg.c (mostly_true_jump): Update.
23184         * rtl.h: Update.
23185         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
23186         * config/alpha/alpha.c (emit_unlikely_jump): Update.
23187         * config/arc/arc.c: (emit_unlikely_jump): Update.
23188         * config/arm/arm.c: (emit_unlikely_jump): Update.
23189         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
23190         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
23191         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
23192         (ix86_print_operand): Update.
23193         (ix86_split_fp_branch): Update.
23194         (predict_jump): Update.
23195         * config/ia64/ia64.c (ia64_print_operand): Update.
23196         * config/mmix/mmix.c (mmix_print_operand): Update.
23197         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
23198         (rs6000_expand_split_stack_prologue): Update.
23199         * config/rs6000/rs6000.c: Update.
23200         * config/s390/s390.c (s390_expand_vec_strlen): Update.
23201         (s390_expand_vec_movstr): Update.
23202         (s390_expand_cs_tdsi): Update.
23203         (s390_expand_split_stack_prologue): Update.
23204         * config/sh/sh.c (sh_print_operand): Update.
23205         (expand_cbranchsi4): Update.
23206         (expand_cbranchdi4): Update.
23207         * config/sparc/sparc.c (output_v9branch): Update.
23208         * config/spu/spu.c (get_branch_target): Update.
23209         (ea_load_store_inline): Update.
23210         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
23211         * config/tilepro/tilepro.c: Update.
23212
23213 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23214
23215         * gimplify.c (mostly_copy_tree_r): Revert latest change.
23216         (gimplify_save_expr): Likewise.
23217
23218 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23219
23220         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
23221
23222 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23223
23224         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
23225         TV_IPA_FNSUMMARY.
23226         * timevar.def (TV_IPA_FNSUMMARY): Define.
23227
23228 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
23229
23230         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
23231         to back store errata sensitive sequence from being generated.
23232         (sqrtdf2_fix): Likewise.
23233
23234 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23235
23236         * tree-ssa-threadupdate.c (compute_path_counts,
23237         update_joiner_offpath_counts): Use profile_probability.
23238
23239 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23240
23241         Revert:
23242         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23243
23244         * config/arm/arm-c.c (arm_cpu_builtins): Define
23245         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23246
23247 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23248
23249         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23250         array entries to represent __ieee128 versions of the
23251         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
23252         scalar_extract_sig, and scalar_insert_exp built-in functions.
23253         (altivec_resolve_overloaded_builtin): Add special case handling
23254         for the __builtin_scalar_insert_exp function, as represented by
23255         the P9V_BUILTIN_VEC_VSIEDP constant.
23256         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
23257         exponent support for __ieee128 argument.
23258         (VSESQP): Add scalar extract signature support for __ieee128
23259         argument.
23260         (VSTDCNQP): Add scalar test negative support for __ieee128
23261         argument.
23262         (VSIEQP): Add scalar insert exponent support for __int128 argument
23263         with __ieee128 result.
23264         (VSIEQPF): Add scalar insert exponent support for __ieee128
23265         argument with __ieee128 result.
23266         (VSTDCQP): Add scalar test data class support for __ieee128
23267         argument.
23268         (VSTDCNQP): Add overload support for scalar test negative with
23269         __ieee128 argument.
23270         (VSTDCQP): Add overload support for scalar test data class
23271         __ieee128 argument.
23272         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
23273         UNSPEC_VSX_SXSIGDP.
23274         (UNSPEC_VSX_SIEXPQP): New constant.
23275         (xsxexpqp): New insn for VSX scalar extract exponent quad
23276         precision.
23277         (xsxsigqp): New insn for VSX scalar extract significand quad
23278         precision.
23279         (xsiexpqpf): New insn for VSX scalar insert exponent quad
23280         precision with floating point argument.
23281         (xststdcqp): New expand for VSX scalar test data class quad
23282         precision.
23283         (xststdcnegqp): New expand for VSX scalar test negative quad
23284         precision.
23285         (xststdcqp): New insn to match expansions for VSX scalar test data
23286         class quad precision and VSX scalar test negative quad precision.
23287         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
23288         special case operand checking to enforce that second operand of
23289         VSX scalar test data class with quad precision argument is a 7-bit
23290         unsigned literal.
23291         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23292         prototypes and descriptions of __ieee128 versions of
23293         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
23294         scalar_test_data_class, and scalar_test_neg built-in functions.
23295
23296 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23297
23298         PR tree-optimization/81162
23299         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
23300         replace a negate with an add.
23301
23302 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
23303
23304         * doc/invoke.texi (arm/-mcpu): Document +crypto.
23305
23306 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23307
23308         * config/arm/arm-c.c (arm_cpu_builtins): Define
23309         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23310
23311 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23312
23313         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
23314         (armv8-r): Set ARM Cortex-R52 as default CPU.
23315         * config/arm/arm-tables.opt: Regenerate.
23316         * config/arm/arm-tune.md: Regenerate.
23317         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
23318         Cortex-R52.
23319         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
23320         extension for -mcpu=cortex-r52.
23321
23322 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23323
23324         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
23325         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
23326         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
23327         (fp-armv8): Define it as FP_ARMv8 only.
23328         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
23329         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
23330         TARGET_FPU_ARMV8.
23331         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
23332         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
23333         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
23334         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
23335         than TARGET_FPU_ARMV8.
23336         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
23337         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
23338         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
23339         TARGET_FPU_ARMV8.
23340         * config/arm/neon.md (neon_vrint): Likewise.
23341         (neon_vcvt): Likewise.
23342         (neon_<fmaxmin_op><mode>): Likewise.
23343         (<fmaxmin><mode>3): Likewise.
23344         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
23345         * config/arm/predicates.md (arm_cond_move_operator): Check against
23346         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
23347
23348 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
23349
23350         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
23351         to top of function.
23352
23353 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23354
23355         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
23356         loop in comment with memset.
23357
23358 2017-07-14  Martin Liska  <mliska@suse.cz>
23359
23360         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
23361         * dwarf2out.c (is_java): Remove the function.
23362         (output_pubname): Remove usage of the function.
23363         (lower_bound_default): Remove usage of DW_LANG_Java.
23364         (gen_compile_unit_die): Likewise.
23365         * gcc.c: Remove compiler defaults for .java and .zip files.
23366         * gimple-expr.c (remove_suffix): Change as there's no longer
23367         extension than 4-letter one.
23368         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
23369         (gimplify_save_expr): Likewise.
23370         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
23371         as it's possible even for other languages than Java.
23372         * langhooks.h (struct lang_hooks): Remove Java from a comment.
23373         * lto-opts.c (lto_write_options): Remove reference to Java.
23374         * opts.c (strip_off_ending): Update file extension handling.
23375         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
23376         * tree-eh.c (lower_resx): Likewise.
23377         * tree.c (free_lang_data_in_type): Remove dead code.
23378         (find_decls_types_r): Likewise.
23379         (build_common_builtin_nodes): Remove Java from a comment.
23380         (verify_type): Remove dead code.
23381         * varasm.c (assemble_external): Remove Java from a comment.
23382
23383 2017-07-14  Martin Liska  <mliska@suse.cz>
23384
23385         * opts.c (finish_options): Add quotes.
23386         (common_handle_option): Likewise.
23387
23388 2017-07-14  Martin Liska  <mliska@suse.cz>
23389
23390         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
23391         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
23392         Remove N_SO_PASCAL.
23393         * dwarf2out.c (lower_bound_default): Do not handle
23394         DW_LANG_Pascal83.
23395         (gen_compile_unit_die): Likewise.
23396         * gcc.c: Remove default extension binding for GNU Pascal.
23397         * stmt.c: Remove Pascal language from a comment.
23398         * xcoffout.c: Likewise.
23399
23400 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
23401
23402         PR c/81405
23403         * diagnostic-show-locus.c (fixit_cmp): New function.
23404         (layout::layout): Sort m_fixit_hints.
23405         (column_range::column_range): Assert that the values are valid.
23406         (struct char_span): New struct.
23407         (correction::overwrite): New method.
23408         (struct source_line): New struct.
23409         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
23410         calls in terms of classes source_line and char_span, and
23411         correction::overwrite.
23412         (selftest::test_overlapped_fixit_printing_2): New function.
23413         (selftest::diagnostic_show_locus_c_tests): Call it.
23414
23415 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
23416
23417         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
23418         early if there is no lhs.
23419
23420 2017-07-13  Martin Liska  <mliska@suse.cz>
23421
23422         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
23423         (gen_reference_type_die): Likewise.
23424         * stor-layout.c: Remove Pascal-related comment.
23425
23426 2017-07-13  Martin Liska  <mliska@suse.cz>
23427
23428         * opts.c (finish_options): Add quotes to error messages.
23429         (parse_sanitizer_options): Likewise.
23430
23431 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23432
23433         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
23434
23435 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
23436
23437         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
23438
23439 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
23440
23441         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
23442         during expansion.
23443         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
23444
23445 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23446
23447         PR target/81193
23448         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
23449         provides the hardware capability bits, define the macro
23450         __BUILTIN_CPU_SUPPORTS__.
23451         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
23452         if GLIBC does not provide the hardware capability bits.  Add a
23453         gcc_unreachable call if the built-in cpu function is neither
23454         __builtin_cpu_is nor __builtin_cpu_supports.
23455         (rs6000_get_function_versions_dispatcher): Change the warning
23456         that an old GLIBC is used which does not export the capability
23457         bits to be an error.
23458         * doc/extend.texi (target_clones attribute): Document the
23459         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
23460         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
23461         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
23462         the macros defined by GCC if the newer GLIBC is available.
23463
23464 2017-07-12  Jeff Law  <law@redhat.com>
23465
23466         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
23467         remaining includes slightly.
23468         * config/riscv/riscv-builtins.c: Include profile-count.h.
23469
23470 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23471
23472         PR target/79883
23473         * config/avr/avr.c (avr_set_current_function): In diagnostic
23474         messages: Quote keywords and (parts of) identifiers.
23475         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
23476         "INTERUPT".
23477
23478 2017-07-12  Carl Love  <cel@us.ibm.com>
23479
23480         * config/rs6000/rs6000-c.c: Add support for built-in functions
23481         vector bool char vec_revb (vector bool char);
23482         vector bool short vec_revb (vector short char);
23483         vector bool int vec_revb (vector bool int);
23484         vector bool long long vec_revb (vector bool long long);
23485         * doc/extend.texi: Update the built-in documentation file for the
23486         new built-in functions.
23487
23488 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23489
23490         * config/s390/s390.md: Remove movcc splitter.
23491
23492 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23493
23494         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
23495         load/store on condition.
23496
23497 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23498
23499         PR target/81407
23500         * config/avr/avr.c (avr_encode_section_info)
23501         [progmem && !TREE_READONLY]: Error if progmem object needs
23502         constructing.
23503
23504 2017-07-11  Michael Collison  <michael.collison@arm.com>
23505
23506         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
23507         New pattern.
23508
23509 2017-07-11  Carl Love  <cel@us.ibm.com>
23510
23511         * config/rs6000/rs6000-c.c: Add support for builtins
23512         vector unsigned int vec_parity_lsbb (vector signed int);
23513         vector unsigned int vec_parity_lsbb (vector unsigned int);
23514         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
23515         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
23516         vector unsigned long long vec_parity_lsbb (vector signed long long);
23517         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
23518         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
23519         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
23520         * doc/extend.texi: Update the built-in documentation file for the
23521         new built-in functions.
23522
23523 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
23524
23525         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
23526         (layout::m_primary_loc): New field.
23527         (layout::layout): Initialize new field.  Move location filtering
23528         logic from here to...
23529         (layout::maybe_add_location_range): ...this new method.  Add
23530         support for filtering to just the lines already specified by other
23531         locations.
23532         (layout::will_show_line_p): New method.
23533         (gcc_rich_location::add_location_if_nearby): New method.
23534         (selftest::test_add_location_if_nearby): New test function.
23535         (selftest::diagnostic_show_locus_c_tests): Call it.
23536         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
23537         New method.
23538
23539 2017-07-11  Tom de Vries  <tom@codesourcery.com>
23540
23541         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
23542         (bb_first_real_insn): New function.
23543         (nvptx_single): Add extra initialization of broadcasted condition
23544         variables.
23545
23546 2017-07-11  Nathan Sidwell  <nathan@acm.org>
23547
23548         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
23549
23550 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
23551
23552         * doc/extend.texi (AVR Function Attributes): Remove weblink to
23553         Binutils doc as TEXI will mess them up.
23554         * doc/invoke.texi (AVR Options): Same here.
23555
23556 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
23557
23558         * config/sparc/sparc.opt (mfix-ut700): New option.
23559         (mfix-gr712rc): Likewise.
23560         (sparc_fix_b2bst): New variable.
23561         * doc/invoke.texi (SPARC options): Document them.
23562         (ARM options): Fix warnings.
23563         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
23564         instructions to prevent sequences that can trigger the store-store
23565         errata for certain LEON3FT processors.
23566         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
23567         (sparc_option_override): Set sparc_fix_b2bst appropriately.
23568         * config/sparc/sparc.md (fix_b2bst): New attribute.
23569         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
23570
23571 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
23572
23573         PR target/81375
23574         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
23575         (rcpps): Ditto.
23576         (*rsqrtsf2_sse): Ditto.
23577         (rsqrtsf2): Ditto.
23578         (div<mode>3): Macroize insn from divdf3 and divsf3
23579         using MODEF mode iterator.
23580
23581 2017-07-10  Martin Sebor  <msebor@redhat.com>
23582
23583         PR tree-optimization/80397
23584         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
23585         instead of testing for equality to INTEGER_TYPE.
23586
23587 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
23588
23589         * config.gcc: Remove uclibc from arc target spec.
23590
23591 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
23592
23593         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
23594
23595 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23596
23597         PR lto/80838
23598         * lto-wrapper.c (remove_option): New function.
23599         (merge_and_complain): Merge PIC/PIE options more realistically.
23600
23601 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
23602
23603         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
23604
23605         PR target/20296
23606         PR target/81268
23607         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
23608         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
23609         * config.in: Regenerate.
23610         * configure: Regenerate.
23611         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
23612         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
23613         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
23614         (TARGET_GASISR_PROLOGUES): ...target mask.
23615         * common/config/avr/avr-common.c
23616         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
23617         Set -mgas-isr-prologues.
23618         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
23619         INSERT_PASS_BEFORE for it.
23620         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
23621         * config/avr/avr.c (avr_option_override)
23622         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
23623         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
23624         (avr_attribute_table) <no_gccisr>: Add new function attribute.
23625         (avr_set_current_function) <is_no_gccisr>: Init machine field.
23626         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
23627         and rtl_opt_pass.
23628         (make_avr_pass_pre_proep): New function.
23629         (emit_push_sfr) <treg>: Add argument to function and use it
23630         instead of TMP_REG.
23631         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
23632         and set machine->gasisr.yes.
23633         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
23634         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
23635         __gcc_isr.n_pushed to .L__stack_usage.
23636         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
23637         (avr_asm_final_postscan_insn): ...this new static function.
23638         * config/avr/avr.h (machine_function)
23639         <is_no_gccisr, use_L__stack_usage>: New fields.
23640         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
23641         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
23642         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
23643         (gasisr, *gasisr): New expander and insn.
23644         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
23645         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
23646         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
23647
23648 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
23649
23650         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
23651         in quoted strings.
23652
23653 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
23654
23655         Move jump-tables out of .text again.
23656
23657         PR target/81075
23658         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
23659         (ASM_OUTPUT_ADDR_VEC): New function.
23660         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
23661         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
23662         INSN_ADDRESSes as asm comment.
23663         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
23664         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
23665         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
23666         * config/avr/avr.md (*tablejump): Adjust comment.
23667         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
23668         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
23669         New detail.
23670         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
23671         (avr_output_addr_vec): New proto.
23672         (avr_log_t) <insn_addresses>: New field.
23673
23674 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
23675
23676         PR target/81313
23677         * config/i386/i386.c (ix86_function_arg_advance): Set
23678         outgoing_args_on_stack to true if there are outgoing arguments
23679         on stack.
23680         (ix86_function_arg): Likewise.
23681         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
23682         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
23683         * config/i386/i386.h (machine_function): Add
23684         outgoing_args_on_stack.
23685
23686 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
23687
23688         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
23689         supporting pthreds.
23690         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
23691
23692 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
23693
23694         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
23695         (REAL_H): Remove $(MACHMODE_H).
23696         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
23697         double-int.h.
23698         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
23699         $(MACHMODE_H) and double-int.h.
23700         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
23701         $(MACHMODE_H).
23702         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
23703         double-int.h.
23704
23705 2017-07-07  Andrew Pinski  <apinski@cavium.com>
23706
23707         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
23708         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
23709
23710 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
23711
23712         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
23713         Add warning if GCC was not configured to link against a GLIBC that
23714         exports the hardware capability bits.
23715         (make_resolver_func): Make resolver function private and not a
23716         COMDAT function.  Create the name with clone_function_name instead
23717         of make_unique_name.
23718
23719         PR target/81348
23720         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
23721         correct operand in doing the split.
23722
23723 2017-07-07 Carl Love  <cel@us.ibm.com>
23724
23725         * config/rs6000/rs6000-c: Add support for built-in function
23726         vector unsigned short vec_pack_to_short_fp32 (vector float,
23727                                                       vector float).
23728         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
23729         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
23730         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
23731         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
23732         (convert_4f32_8i16): Add define_expand.
23733         * doc/extend.texi: Update the built-in documentation file for the
23734         new built-in function.
23735
23736 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23737
23738         * config/sparc/m8.md: New file.
23739         * config/sparc/sparc.md: Include m8.md.
23740
23741 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23742
23743         * config/sparc/sparc.opt: New option -mvis4b.
23744         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
23745         (sparc_option_override): Handle VIS4B.
23746         (enum sparc_builtins): Define
23747         SPARC_BUILTIN_DICTUNPACK{8,16,32},
23748         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
23749         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
23750         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
23751         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
23752         (check_constant_argument): New function.
23753         (sparc_vis_init_builtins): Define builtins
23754         __builtin_vis_dictunpack{8,16,32},
23755         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
23756         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
23757         __builtin_vis_fpcmpde{8,16,32}shl and
23758         __builtin_vis_fpcmpur{8,16,32}shl.
23759         (sparc_expand_builtin): Check that the constant operands to
23760         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
23761         constant and in range.
23762         * config/sparc/sparc-c.c (sparc_target_macros): Handle
23763         TARGET_VIS4B.
23764         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
23765         (SPARC_IMM5_P): Likewise.
23766         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
23767         (enabled): Handle vis4b.
23768         (UNSPEC_DICTUNPACK): New unspec.
23769         (UNSPEC_FPCMPSHL): Likewise.
23770         (UNSPEC_FPUCMPSHL): Likewise.
23771         (UNSPEC_FPCMPDESHL): Likewise.
23772         (UNSPEC_FPCMPURSHL): Likewise.
23773         (cpu_feature): New CPU feature `vis4b'.
23774         (dictunpack{8,16,32}): New insns.
23775         (FPCSMODE): New mode iterator.
23776         (fpcscond): New code iterator.
23777         (fpcsucond): Likewise.
23778         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
23779         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
23780         (fpcmpde{8,16,32}{si,di}shl): Likewise.
23781         (fpcmpur{8,16,32}{si,di}shl): Likewise.
23782         * config/sparc/constraints.md: Define constraints `q' for unsigned
23783         2-bit integer constants and `t' for unsigned 5-bit integer
23784         constants.
23785         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
23786         predicate.
23787         (imm5_operand_dictunpack16): Likewise.
23788         (imm5_operand_dictunpack32): Likewise.
23789         (imm2_operand): Likewise.
23790         * doc/invoke.texi (SPARC Options): Document -mvis4b.
23791         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
23792         ditunpack* and fpcmp*shl builtins.
23793
23794 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23795
23796         * config.gcc: Handle m8 in --with-{cpu,tune} options.
23797         * config.in: Add HAVE_AS_SPARC6 define.
23798         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
23799         M8.
23800         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
23801         TARGET_CPU_m8.
23802         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
23803         (CPP_CPU_SPEC): Handle m8.
23804         (ASM_CPU_SPEC): Likewise.
23805         * config/sparc/sparc-opts.h (enum processor_type): Add
23806         PROCESSOR_M8.
23807         * config/sparc/sparc.c (m8_costs): New struct.
23808         (sparc_option_override): Handle TARGET_CPU_m8.
23809         (sparc32_initialize_trampoline): Likewise.
23810         (sparc64_initialize_trampoline): Likewise.
23811         (sparc_issue_rate): Likewise.
23812         (sparc_register_move_cost): Likewise.
23813         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
23814         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
23815         (ASM_CPU64_DEFAULT_SPEC): Likewise.
23816         (CPP_CPU_SPEC): Handle M8.
23817         (ASM_CPU_SPEC): Likewise.
23818         (AS_M8_FLAG): Define.
23819         * config/sparc/sparc.md: Add m8 to the cpu attribute.
23820         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
23821         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
23822         M8 instructions.
23823         * configure: Regenerate.
23824         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
23825         -mtune=m8.
23826
23827 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23828
23829         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
23830         subtypes.
23831         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
23832         ("*movdi_insn_sp32"): Do not set v3pipe.
23833         ("*movsi_insn"): Likewise.
23834         ("*movdi_insn_sp64"): Likewise.
23835         ("*movsf_insn"): Likewise.
23836         ("*movdf_insn_sp32"): Likewise.
23837         ("*movdf_insn_sp64"): Likewise.
23838         ("*zero_extendsidi2_insn_sp64"): Likewise.
23839         ("*sign_extendsidi2_insn"): Likewise.
23840         ("*mov<VM32:mode>_insn"): Likewise.
23841         ("*mov<VM64:mode>_insn_sp64"): Likewise.
23842         ("*mov<VM64:mode>_insn_sp32"): Likewise.
23843         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
23844         ("<vlop:code><VL:mode>3"): Likewise.
23845         ("*not_<vlop:code><VL:mode>3"): Likewise.
23846         ("*nand<VL:mode>_vis"): Likewise.
23847         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
23848         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
23849         ("one_cmpl<VL:mode>2"): Likewise.
23850         ("faligndata<VM64:mode>_vis"): Likewise.
23851         ("alignaddrsi_vis"): Likewise.
23852         ("alignaddrdi_vis"): Likweise.
23853         ("alignaddrlsi_vis"): Likewise.
23854         ("alignaddrldi_vis"): Likewise.
23855         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
23856         ("bmaskdi_vis"): Likewise.
23857         ("bmasksi_vis"): Likewise.
23858         ("bshuffle<VM64:mode>_vis"): Likewise.
23859         ("cmask8<P:mode>_vis"): Likewise.
23860         ("cmask16<P:mode>_vis"): Likewise.
23861         ("cmask32<P:mode>_vis"): Likewise.
23862         ("pdistn<P:mode>_vis"): Likewise.
23863         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
23864
23865 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23866
23867         * config/sparc/sparc.md ("subtype"): New insn attribute.
23868         ("*wrgsr_sp64"): Set insn subtype.
23869         ("*rdgsr_sp64"): Likewise.
23870         ("alignaddrsi_vis"): Likewise.
23871         ("alignaddrdi_vis"): Likewise.
23872         ("alignaddrlsi_vis"): Likewise.
23873         ("alignaddrldi_vis"): Likewise.
23874         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
23875         ("fexpand_vis"): Likewise.
23876         ("fpmerge_vis"): Likewise.
23877         ("faligndata<VM64:mode>_vis"): Likewise.
23878         ("bshuffle<VM64:mode>_vis"): Likewise.
23879         ("cmask8<P:mode>_vis"): Likewise.
23880         ("cmask16<P:mode>_vis"): Likewise.
23881         ("cmask32<P:mode>_vis"): Likewise.
23882         ("fchksm16_vis"): Likewise.
23883         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
23884         ("fmean16_vis"): Likewise.
23885         ("fp<plusminus_insn>64_vis"): Likewise.
23886         ("<plusminus_insn>v8qi3"): Likewise.
23887         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
23888         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
23889         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
23890         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
23891         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
23892         ("*movqi_insn"): Likewise.
23893         ("*movhi_insn"): Likewise.
23894         ("*movsi_insn"): Likewise.
23895         ("movsi_pic_gotdata_op"): Likewise.
23896         ("*movdi_insn_sp32"): Likewise.
23897         ("*movdi_insn_sp64"): Likewise.
23898         ("movdi_pic_gotdata_op"): Likewise.
23899         ("*movsf_insn"): Likewise.
23900         ("*movdf_insn_sp32"): Likewise.
23901         ("*movdf_insn_sp64"): Likewise.
23902         ("*zero_extendhisi2_insn"): Likewise.
23903         ("*zero_extendqihi2_insn"): Likewise.
23904         ("*zero_extendqisi2_insn"): Likewise.
23905         ("*zero_extendqidi2_insn"): Likewise.
23906         ("*zero_extendhidi2_insn"): Likewise.
23907         ("*zero_extendsidi2_insn_sp64"): Likewise.
23908         ("ldfsr"): Likewise.
23909         ("prefetch_64"): Likewise.
23910         ("prefetch_32"): Likewise.
23911         ("tie_ld32"): Likewise.
23912         ("tie_ld64"): Likewise.
23913         ("*tldo_ldub_sp32"): Likewise.
23914         ("*tldo_ldub1_sp32"): Likewise.
23915         ("*tldo_ldub2_sp32"): Likewise.
23916         ("*tldo_ldub_sp64"): Likewise.
23917         ("*tldo_ldub1_sp64"): Likewise.
23918         ("*tldo_ldub2_sp64"): Likewise.
23919         ("*tldo_ldub3_sp64"): Likewise.
23920         ("*tldo_lduh_sp32"): Likewise.
23921         ("*tldo_lduh1_sp32"): Likewise.
23922         ("*tldo_lduh_sp64"): Likewise.
23923         ("*tldo_lduh1_sp64"): Likewise.
23924         ("*tldo_lduh2_sp64"): Likewise.
23925         ("*tldo_lduw_sp32"): Likewise.
23926         ("*tldo_lduw_sp64"): Likewise.
23927         ("*tldo_lduw1_sp64"): Likewise.
23928         ("*tldo_ldx_sp64"): Likewise.
23929         ("*mov<VM32:mode>_insn"): Likewise.
23930         ("*mov<VM64:mode>_insn_sp64"): Likewise.
23931         ("*mov<VM64:mode>_insn_sp32"): Likewise.
23932
23933 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23934
23935         * config/sparc/sparc.md ("type"): New insn type viscmp.
23936         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
23937         viscmp.
23938         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
23939         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
23940         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
23941         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
23942         viscmp.
23943         ("n7_vis_logical_11cycle"): Likewise.
23944         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
23945         * config/sparc/niagara2.md ("niag3_vis": Likewise.
23946         * config/sparc/niagara.md ("niag_vis"): Likewise.
23947         * config/sparc/ultra3.md ("us3_fga"): Likewise.
23948         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
23949
23950 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23951
23952         * config/sparc/sparc.md: New instruction type `bmask'.
23953         (bmaskdi_vis): Use the `bmask' type.
23954         (bmasksi_vis): Likewise.
23955         * config/sparc/ultra3.md (us3_array): Likewise.
23956         * config/sparc/niagara7.md (n7_array): Likewise.
23957         * config/sparc/niagara4.md (n4_array): Likewise.
23958         * config/sparc/niagara2.md (niag2_vis): Likewise.
23959         (niag3_vis): Likewise.
23960         * config/sparc/niagara.md (niag_vis): Likewise.
23961
23962 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23963
23964         * ipa-comdats.c: Remove optimize check from gate.
23965         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
23966         for functions not optimized.
23967         (ipa_fn_summary_read): Skip optimize check.
23968         (ipa_fn_summary_write): Likewise.
23969         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
23970         is optimized.
23971         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
23972         uninlinable.
23973         (can_inline_edge_p): Check flag_pcc_struct_return for match.
23974         (check_callers): Give up on caller which is not optimized.
23975         (inline_small_functions): Likewise.
23976         (ipa_inline): Do not give up when not optimizing.
23977         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
23978         away unoptimizes cdtors.
23979         (whole_program_function_and_variable_visibility): Do
23980         ipa_discover_readonly_nonaddressable_vars in LTO mode.
23981         * ipa.c (process_references): Do not check optimize.
23982         (symbol_table::remove_unreachable_nodes): Update optimize check.
23983         (set_writeonly_bit): Update optimize check.
23984         (pass_ipa_cdtor_merge::gate): Do not check optimize.
23985         (pass_ipa_single_use::gate): Remove.
23986
23987 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
23988
23989         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
23990         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
23991         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
23992         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
23993         permute_load, permute_store, adjust_extract, adjust_splat,
23994         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
23995         replace_swap_with_copy, dump_swap_insn_table,
23996         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
23997         recombine_lvx_pattern, recombine_stvx_pattern,
23998         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
23999         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
24000         to file rs6000-p8swap.c.
24001         * config/rs6000/rs6000-p8swap.c: New file.
24002         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
24003         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
24004         and rs6000*-*-* targets.
24005
24006 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24007
24008         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
24009
24010 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24011
24012         * lto-wrapper.c (merge_and_complain): Do not merge
24013         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
24014         fsigned_zeros, ftrapping_math, fwrapv.
24015         (append_compiler_options): Do not track these options.
24016         (append_linker_options): Likewie
24017
24018 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24019
24020         * cgraphunit.c (cgraph_node::finalize_function): When
24021         !flag_toplevel_reorde set no_reorder flag.
24022         (varpool_node::finalize_decl): Likewise.
24023         (symbol_table::compile): Drop no toplevel reorder path.
24024
24025 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24026
24027         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
24028         edges; zero probability is not better than uninitialized.
24029
24030 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24031
24032         * asan.h (asan_sanitize_allocas_p): Declare.
24033         * asan.c (asan_sanitize_allocas_p): New function.
24034         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
24035         (handle_builtin_alloca): Likewise.
24036         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
24037         if !asan_sanitize_allocas_p.
24038         * params.def (asan-instrument-allocas): Add new option.
24039         * params.h (ASAN_PROTECT_ALLOCAS): Define.
24040         * opts.c (common_handle_option): Disable allocas sanitization for
24041         KASan by default.
24042
24043 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24044
24045         * asan.c: Include gimple-fold.h.
24046         (get_last_alloca_addr): New function.
24047         (handle_builtin_stackrestore): Likewise.
24048         (handle_builtin_alloca): Likewise.
24049         (asan_emit_allocas_unpoison): Likewise.
24050         (get_mem_refs_of_builtin_call): Add new parameter, remove const
24051         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
24052         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
24053         (instrument_builtin_call): Pass gimple iterator to
24054         get_mem_refs_of_builtin_call.
24055         (last_alloca_addr): New global.
24056         * asan.h (asan_emit_allocas_unpoison): Declare.
24057         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
24058         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
24059         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
24060         if function calls alloca.
24061         * gimple-fold.c (replace_call_with_value): Remove static keyword.
24062         * gimple-fold.h (replace_call_with_value): Declare.
24063         * internal-fn.c: Include asan.h.
24064         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
24065         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
24066
24067 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24068
24069         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
24070         (C_SELFTEST_FLAGS): New.
24071         (CPP_SELFTEST_FLAGS): New.
24072         (SELFTEST_DEPS): New, from deps of s-selftest.
24073         (C_SELFTEST_DEPS): New, from deps of s-selftest.
24074         (CPP_SELFTEST_DEPS): New.
24075         (selftest): Add dependency on s-selftest-c++.
24076         (s-selftest): Rename to...
24077         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
24078         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
24079         than SELFTEST_FLAGS.
24080         (selftest-gdb): Rename to...
24081         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
24082         C_SELFTEST_FLAGS.
24083         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
24084         (selftest-valgrind): Rename to...
24085         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
24086         C_SELFTEST_FLAGS.
24087         (selftest-valgrind): Reintroduce as an alias for
24088         selftest-c-valgrind.
24089         (s-selftest-c++): New.
24090         (selftest-c++-gdb): New.
24091         (selftest-c++-valgrind): New.
24092
24093 2017-07-06  Olivier Hainque  <hainque@adacore.com>
24094
24095         * gcc.c (process_command): When deciding if undefined variables
24096         should be ignored when processing specs, accept "gcc -v" as well.
24097
24098 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24099
24100         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
24101         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
24102
24103 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24104
24105         * config/arm/arm-cpus.in (armv8-r): Add new entry.
24106         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
24107         * config/arm/arm-tables.opt: Regenerate.
24108         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
24109         enumerator.
24110         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
24111
24112 2017-07-06  Carl Love  <cel@us.ibm.com>
24113
24114         * ChangeLog: Clean up from mid air collision
24115
24116 2017-07-06  Carl Love  <cel@us.ibm.com>
24117
24118         * config/rs6000/rs6000-c.c: Add support for built-in functions
24119         vector signed int vec_subc (vector signed int, vector signed int);
24120         vector signed __int128 vec_subc (vector signed __int128,
24121                                          vector signed __int128);
24122         vector unsigned __int128 vec_subc (vector unsigned __int128,
24123                                            vector unsigned __int128);
24124         vector signed int vec_sube (vector signed int, vector signed int,
24125                                     vector signed int);
24126         vector unsigned int vec_sube (vector unsigned int,
24127                                       vector unsigned int,
24128                                       vector unsigned int);
24129         vector signed __int128 vec_sube (vector signed __int128,
24130                                          vector signed __int128,
24131                                          vector signed__int128);
24132         vector unsigned __int128 vec_sube (vector unsigned __int128,
24133                                            vector unsigned __int128,
24134                                            vector unsigned __int128);
24135         vector signed int vec_subec (vector signed int, vector signed int,
24136                                      vector signed int);
24137         vector unsigned int vec_subec (vector unsigned int,
24138                                        vector unsigned int,
24139                                        vector unsigned int);
24140         vector signed __int128 vec_subec (vector signed __int128,
24141                                           vector signed __int128,
24142                                           vector signed__int128);
24143         vector unsigned __int128 vec_subec (vector unsigned __int128,
24144                                             vector unsigned __int128,
24145                                             vector unsigned __int128);
24146         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
24147         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
24148         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
24149         BU_ALTIVEC_OVERLOAD_X definitions.
24150         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
24151         * doc/extend.texi: Update the built-in documentation file for the new
24152         built-in functions.
24153
24154 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24155
24156         PR c++/79300
24157         * diagnostic-show-locus.c (layout::layout): Use start and finish
24158         spelling location for the start and finish of each range.
24159         * genmatch.c (linemap_client_expand_location_to_spelling_point):
24160         Add unused aspect param.
24161         * input.c (expand_location_1): Add "aspect" param, and use it
24162         to access the correct part of the location.
24163         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
24164         expand_location_1.
24165         (expand_location_to_spelling_point): Likewise.
24166         (linemap_client_expand_location_to_spelling_point): Add "aspect"
24167         param, and pass it to expand_location_1.
24168
24169 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
24170
24171         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
24172         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
24173         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
24174         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
24175         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
24176         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
24177         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
24178         _mm_maskz_getmant_ss): New intrinsics.
24179         (__builtin_ia32_getexpss128_mask): Changed to ...
24180         __builtin_ia32_getexpss128_round ... this.
24181         (__builtin_ia32_getexpsd128_mask): Changed to ...
24182         __builtin_ia32_getexpsd128_round ... this.
24183         * config/i386/i386-builtin-types.def
24184         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
24185         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
24186         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
24187         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
24188         __builtin_ia32_getmantss_mask_round): New builtins.
24189         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
24190         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
24191         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
24192         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
24193         * config/i386/sse.md
24194         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
24195         avx512f_sgetexp<mode><mask_scalar_name>
24196         <round_saeonly_scalar_name> ... this.
24197         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
24198         %0, %1, %2<round_saeonly_op3>}): Changed to ...
24199         vgetexp<ssescalarmodesuffix>
24200         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24201         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
24202         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
24203         avx512f_vgetmant<mode><mask_scalar_name>
24204         <round_saeonly_scalar_name> ... this.
24205         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
24206         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
24207         vgetmant<ssescalarmodesuffix>
24208         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
24209         %0<mask_scalar_operand4>, %1, %2
24210         <round_saeonly_scalar_mask_op4>, %3} ... this.
24211         * config/i386/subst.md (mask_scalar_operand4,
24212         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
24213         round_saeonly_scalar_nimm_predicate): New subst attributes.
24214
24215 2017-07-06  Julia Koval  <julia.koval@intel.com>
24216
24217         * config/i386/i386.c (ix86_erase_embedded_rounding):
24218         Remove code for old rounding pattern.
24219
24220 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
24221
24222         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
24223
24224 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
24225
24226         * doc/sourcebuild.texi (Test Directives, Variants of
24227         dg-require-support): Add documentation for dg-require-stack-check.
24228
24229 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
24230
24231         * config/i386/subst.md (mask_scalar, round_scalar,
24232         round_saeonly_scalar): New meta-templates.
24233         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
24234         round_scalar_mask_operand3, round_scalar_mask_op3,
24235         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
24236         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
24237         round_saeonly_scalar_constraint,
24238         round_saeonly_scalar_prefix): New subst attribute.
24239         * config/i386/sse.md
24240         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
24241         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
24242         <round_scalar_name> ... this.
24243         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
24244         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
24245         <round_scalar_name> ... this.
24246         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
24247         <sse>_vm<code><mode>3<mask_scalar_name>
24248         <round_saeonly_scalar_name> ... this.
24249         (v<plusminus_mnemonic><ssescalarmodesuffix>
24250         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24251         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24252         v<plusminus_mnemonic><ssescalarmodesuffix>
24253         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24254         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24255         (v<multdiv_mnemonic><ssescalarmodesuffix>
24256         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24257         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24258         v<multdiv_mnemonic><ssescalarmodesuffix>
24259         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24260         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24261         (v<maxmin_float><ssescalarmodesuffix>
24262         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
24263         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
24264         v<maxmin_float><ssescalarmodesuffix>
24265         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24266         %0<mask_scalar_operand3>, %1, %<iptr>2
24267         <round_saeonly_scalar_mask_op3>} ... this.
24268
24269 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
24270
24271         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
24272         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
24273
24274 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
24275             Alan Hayward  <alan.hayward@arm.com>
24276             David Sherwood  <david.sherwood@arm.com>
24277
24278         * combine.c (simplify_if_then_else): Remove "enum" before
24279         "machine_mode".
24280         * compare-elim.c (can_eliminate_compare): Likewise.
24281         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
24282         Likewise.
24283         (aarch64_lookup_simd_builtin_type): Likewise.
24284         (aarch64_simd_builtin_type): Likewise.
24285         (aarch64_init_simd_builtin_types): Likewise.
24286         (aarch64_simd_expand_args): Likewise.
24287         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
24288         Likewise.
24289         (aarch64_reverse_mask): Likewise.
24290         (aarch64_simd_emit_reg_reg_move): Likewise.
24291         (aarch64_gen_adjusted_ldpstp): Likewise.
24292         (aarch64_ccmp_mode_to_code): Likewise.
24293         (aarch64_operands_ok_for_ldpstp): Likewise.
24294         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24295         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
24296         Likewise.
24297         (aarch64_min_divisions_for_recip_mul): Likewise.
24298         (aarch64_reassociation_width): Likewise.
24299         (aarch64_get_condition_code_1): Likewise.
24300         (aarch64_simd_emit_reg_reg_move): Likewise.
24301         (aarch64_simd_attr_length_rglist): Likewise.
24302         (aarch64_reverse_mask): Likewise.
24303         (aarch64_operands_ok_for_ldpstp): Likewise.
24304         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24305         (aarch64_gen_adjusted_ldpstp): Likewise.
24306         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
24307         Likewise.
24308         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
24309         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
24310         (arm_lookup_simd_builtin_type): Likewise.
24311         (arm_simd_builtin_type): Likewise.
24312         (arm_init_simd_builtin_types): Likewise.
24313         (arm_expand_builtin_args): Likewise.
24314         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
24315         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
24316         (ft32_setup_incoming_varargs): Likewise.
24317         (ft32_function_arg): Likewise.
24318         (ft32_function_arg_advance): Likewise.
24319         (ft32_pass_by_reference): Likewise.
24320         (ft32_arg_partial_bytes): Likewise.
24321         (ft32_valid_pointer_mode): Likewise.
24322         (ft32_addr_space_pointer_mode): Likewise.
24323         (ft32_addr_space_legitimate_address_p): Likewise.
24324         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
24325         Likewise.
24326         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
24327         (ix86_emit_outlined_ms2sysv_restore): Likewise.
24328         (iamcu_alignment): Likewise.
24329         (canonicalize_vector_int_perm): Likewise.
24330         (ix86_noce_conversion_profitable_p): Likewise.
24331         (ix86_mpx_bound_mode): Likewise.
24332         (ix86_operands_ok_for_move_multiple): Likewise.
24333         * config/microblaze/microblaze-protos.h
24334         (microblaze_expand_conditional_branch_reg): Likewise.
24335         * config/microblaze/microblaze.c
24336         (microblaze_expand_conditional_branch_reg): Likewise.
24337         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
24338         Likewise.
24339         (rs6000_reassociation_width): Likewise.
24340         (rs6000_invalid_binary_op): Likewise.
24341         (fusion_p9_p): Likewise.
24342         (emit_fusion_p9_load): Likewise.
24343         (emit_fusion_p9_store): Likewise.
24344         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
24345         Likewise.
24346         (riscv_hard_regno_mode_ok_p): Likewise.
24347         (riscv_address_insns): Likewise.
24348         (riscv_split_symbol): Likewise.
24349         (riscv_legitimize_move): Likewise.
24350         (riscv_function_value): Likewise.
24351         (riscv_hard_regno_nregs): Likewise.
24352         (riscv_expand_builtin): Likewise.
24353         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
24354         (riscv_build_integer): Likewise.
24355         (riscv_split_integer): Likewise.
24356         (riscv_legitimate_constant_p): Likewise.
24357         (riscv_cannot_force_const_mem): Likewise.
24358         (riscv_regno_mode_ok_for_base_p): Likewise.
24359         (riscv_valid_base_register_p): Likewise.
24360         (riscv_valid_offset_p): Likewise.
24361         (riscv_valid_lo_sum_p): Likewise.
24362         (riscv_classify_address): Likewise.
24363         (riscv_legitimate_address_p): Likewise.
24364         (riscv_address_insns): Likewise.
24365         (riscv_load_store_insns): Likewise.
24366         (riscv_force_binary): Likewise.
24367         (riscv_split_symbol): Likewise.
24368         (riscv_force_address): Likewise.
24369         (riscv_legitimize_address): Likewise.
24370         (riscv_move_integer): Likewise.
24371         (riscv_legitimize_const_move): Likewise.
24372         (riscv_legitimize_move): Likewise.
24373         (riscv_address_cost): Likewise.
24374         (riscv_subword): Likewise.
24375         (riscv_output_move): Likewise.
24376         (riscv_canonicalize_int_order_test): Likewise.
24377         (riscv_emit_int_order_test): Likewise.
24378         (riscv_function_arg_boundary): Likewise.
24379         (riscv_pass_mode_in_fpr_p): Likewise.
24380         (riscv_pass_fpr_single): Likewise.
24381         (riscv_pass_fpr_pair): Likewise.
24382         (riscv_get_arg_info): Likewise.
24383         (riscv_function_arg): Likewise.
24384         (riscv_function_arg_advance): Likewise.
24385         (riscv_arg_partial_bytes): Likewise.
24386         (riscv_function_value): Likewise.
24387         (riscv_pass_by_reference): Likewise.
24388         (riscv_setup_incoming_varargs): Likewise.
24389         (riscv_print_operand): Likewise.
24390         (riscv_elf_select_rtx_section): Likewise.
24391         (riscv_save_restore_reg): Likewise.
24392         (riscv_for_each_saved_reg): Likewise.
24393         (riscv_register_move_cost): Likewise.
24394         (riscv_hard_regno_mode_ok_p): Likewise.
24395         (riscv_hard_regno_nregs): Likewise.
24396         (riscv_class_max_nregs): Likewise.
24397         (riscv_memory_move_cost): Likewise.
24398         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
24399         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
24400         (rl78_addr_space_address_mode): Likewise.
24401         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24402         Likewise.
24403         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
24404         (rs6000_reassociation_width): Likewise.
24405         (rs6000_invalid_binary_op): Likewise.
24406         (fusion_p9_p): Likewise.
24407         (emit_fusion_p9_load): Likewise.
24408         (emit_fusion_p9_store): Likewise.
24409         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
24410         (ok_for_simple_move_operands): Likewise.
24411         (ok_for_simple_move_strict_operands): Likewise.
24412         (ok_for_simple_arith_logic_operands): Likewise.
24413         (visium_legitimize_reload_address): Likewise.
24414         (visium_select_cc_mode): Likewise.
24415         (output_cbranch): Likewise.
24416         (visium_split_double_move): Likewise.
24417         (visium_expand_copysign): Likewise.
24418         (visium_expand_int_cstore): Likewise.
24419         (visium_expand_fp_cstore): Likewise.
24420         * config/visium/visium.c (visium_pass_by_reference): Likewise.
24421         (visium_function_arg): Likewise.
24422         (visium_function_arg_advance): Likewise.
24423         (visium_libcall_value): Likewise.
24424         (visium_setup_incoming_varargs): Likewise.
24425         (visium_legitimate_constant_p): Likewise.
24426         (visium_legitimate_address_p): Likewise.
24427         (visium_legitimize_address): Likewise.
24428         (visium_secondary_reload): Likewise.
24429         (visium_register_move_cost): Likewise.
24430         (visium_memory_move_cost): Likewise.
24431         (prepare_move_operands): Likewise.
24432         (ok_for_simple_move_operands): Likewise.
24433         (ok_for_simple_move_strict_operands): Likewise.
24434         (ok_for_simple_arith_logic_operands): Likewise.
24435         (visium_function_value_1): Likewise.
24436         (rtx_ok_for_offset_p): Likewise.
24437         (visium_legitimize_reload_address): Likewise.
24438         (visium_split_double_move): Likewise.
24439         (visium_expand_copysign): Likewise.
24440         (visium_expand_int_cstore): Likewise.
24441         (visium_expand_fp_cstore): Likewise.
24442         (visium_split_cstore): Likewise.
24443         (visium_select_cc_mode): Likewise.
24444         (visium_split_cbranch): Likewise.
24445         (output_cbranch): Likewise.
24446         (visium_print_operand_address): Likewise.
24447         * expmed.c (flip_storage_order): Likewise.
24448         * expmed.h (emit_cstore): Likewise.
24449         (flip_storage_order): Likewise.
24450         * genrecog.c (validate_pattern): Likewise.
24451         * hsa-gen.c (gen_hsa_addr): Likewise.
24452         * internal-fn.c (expand_arith_overflow): Likewise.
24453         * ira-color.c (allocno_copy_cost_saving): Likewise.
24454         * lra-assigns.c (find_hard_regno_for_1): Likewise.
24455         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
24456         (process_invariant_for_inheritance): Likewise.
24457         * lra-eliminations.c (move_plus_up): Likewise.
24458         * omp-low.c (lower_oacc_reductions): Likewise.
24459         * simplify-rtx.c (simplify_subreg): Likewise.
24460         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
24461         (TARGET_CHKP_BOUND_MODE): Likewise..
24462         * targhooks.c (default_chkp_bound_mode): Likewise.
24463         (default_setup_incoming_vararg_bounds): Likewise.
24464         * targhooks.h (default_chkp_bound_mode): Likewise.
24465         (default_setup_incoming_vararg_bounds): Likewise.
24466         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
24467         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
24468         (have_whole_vector_shift): Likewise.
24469         * tree-vect-stmts.c (vectorizable_load): Likewise.
24470         * doc/tm.texi: Regenerate.
24471
24472 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24473
24474         Graceful degrade if Binutils PR21472 is not available.
24475
24476         PR target/81072
24477         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
24478         .rodata in flash test fails.
24479         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
24480         * confgure: Regenerate.
24481         * config.in: Regenerate.
24482         * config/avr/avr.c (avr_asm_named_section)
24483         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
24484         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
24485         (avr_asm_init_sections): Same.
24486
24487 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24488
24489         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
24490         (fma<VH:mode>4_intrinsic): Likewise.
24491         (*fmsub<VCVTF:mode>4): Likewise.
24492         (*fmsub<VH:mode>4_intrinsic): Likewise.
24493
24494 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24495
24496         PR target/81305
24497         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
24498         Don't depend on "optimize > 0".
24499         (out_movhi_r_mr, out_movqi_mr_r): Same.
24500         (out_movhi_mr_r, out_movqi_r_mr): Same.
24501         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
24502         io_address_operand on "optimize > 0".
24503
24504 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24505
24506         * tree-loop-distribution.c: Add general explanantion on the pass.
24507         (generate_loops_for_partition): Mark distributed loop.
24508         (pg_add_dependence_edges): New parameter.  Handle alias data
24509         dependence specially and record it in the parameter if asked.
24510         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
24511         (init_partition_graph_vertices, add_partition_graph_edge): New.
24512         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
24513         (free_partition_graph_vdata, build_partition_graph): New.
24514         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
24515         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
24516         (data_ref_segment_size, latch_dominated_by_data_ref): New.
24517         (compute_alias_check_pairs, version_loop_by_alias_check): New.
24518         (version_for_distribution_p, finalize_partitions): New.
24519         (distribute_loop): Handle alias data dependence specially.  Factor
24520         out loop fusion code as functions and call these functions.
24521
24522 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24523
24524         * tree-loop-distribution.c (classify_partition): New parameter and
24525         better handle reduction statement.
24526         (rdg_build_partitions): Revise comment.
24527         (distribute_loop): Compute statements in all partitions and pass it
24528         to classify_partition.
24529
24530 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24531
24532         * tree-loop-distribution.c (enum partition_type): New.
24533         (struct partition): New field type.
24534         (partition_merge_into): Add parameter.  Update partition type.
24535         (data_dep_in_cycle_p, update_type_for_merge): New functions.
24536         (build_rdg_partition_for_vertex): Compute partition type.
24537         (rdg_build_partitions): Dump partition type.
24538         (distribute_loop): Update calls to partition_merge_into.
24539
24540 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24541
24542         * tree-loop-distribution.c (struct ddr_hasher): New.
24543         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
24544         (ddrs_table): New.
24545         (classify_partition): Call get_data_dependence.
24546         (pg_add_dependence_edges): Ditto.
24547         (distribute_loop): Release data dependence hash table.
24548
24549 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24550
24551         * tree-loop-distribution.c (ref_base_address): Delete.
24552         (similar_memory_accesses): Rename ...
24553         (share_memory_accesses): ... to this.  Check if partitions access
24554         the same memory reference.
24555         (distribute_loop): Call share_memory_accesses.
24556
24557 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24558
24559         * tree-loop-distribution.c (struct partition): New field recording
24560         its data reference.
24561         (partition_alloc, partition_free): Init and release data refs.
24562         (partition_merge_into): Merge data refs.
24563         (build_rdg_partition_for_vertex): Collect data refs for partition.
24564         (pg_add_dependence_edges): Change parameters from vector to bitmap.
24565         Update uses.
24566         (distribute_loop): Remve data refs from vertice data of partition
24567         graph.
24568
24569 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24570
24571         * tree-loop-distribution.c (params.h): Include header file.
24572         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
24573         (datarefs_vec): New global var.
24574         (create_rdg_vertices): Use datarefs_vec directly.
24575         (free_rdg): Don't free data references.
24576         (build_rdg): Update use.  Don't free data references.
24577         (distribute_loop): Compute global variable for data references.
24578         Bail out if there are too many data references.
24579
24580 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24581
24582         * tree-loop-distribution.c (loop_nest): New global var.
24583         (build_rdg): Use loop directly, rather than loop nest.
24584         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
24585         variable directly.
24586         (distribute_loop): Compute global variable loop nest.  Update use.
24587
24588 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24589
24590         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
24591         (partition_merge_into): New parameter.  Dump reason for fusion.
24592         (distribute_loop): Update use of partition_merge_into.
24593
24594 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24595
24596         * tree-loop-distribution.c (bb_top_order_index): New.
24597         (bb_top_order_index_size, bb_top_order_cmp): New.
24598         (stmts_from_loop): Use topological order.
24599         (pass_loop_distribution::execute): Compute and release topological
24600         order for basic blocks.
24601
24602 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24603
24604         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
24605         if no loops.
24606
24607 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24608
24609         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
24610         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
24611         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
24612         * internal-fn.def (LOOP_DIST_ALIAS): New.
24613         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
24614         (fold_loop_internal_call): ... this.
24615         (vect_loop_dist_alias_call): New function.
24616         (set_uid_loop_bbs): Call fold_loop_internal_call.
24617         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
24618         internal calls.
24619
24620 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
24621
24622         PR target/81300
24623         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
24624         Require dead FLAGS_REG at the beginning of a peephole.
24625
24626 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
24627
24628         PR target/81294
24629         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
24630         arguments in the call to __builtin_ia32_sbb_u32.
24631         (_subborrow_u64): Swap _X and _Y arguments in the call to
24632         __builtin_ia32_sbb_u64.
24633
24634 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
24635
24636         PR debug/81278
24637         * tree-vrp.c (compare_assert_loc): Turn into a function template
24638         with stable template parameter.  Only test if a->e is NULL,
24639         !a->e == !b->e has been verified already.  Use e == NULL or
24640         e != NULL instead of e or ! e tests.  If stable is true, don't use
24641         iterative_hash_expr, on the other side allow a or b or both NULL
24642         and sort the NULLs last.
24643         (process_assert_insertions): Sort using compare_assert_loc<false>
24644         instead of compare_assert_loc, later sort using
24645         compare_assert_loc<true> before calling process_assert_insertions_for
24646         in a loop.  Use break instead of continue once seen NULL pointer.
24647
24648 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24649
24650         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
24651         Cortex-R7 and Cortex-R8 processors.
24652
24653 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24654
24655         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
24656         uninitialized while src is not.
24657
24658 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
24659
24660         * common/config/arm/arm-common.c: Adjust include path for
24661         arm-cpu-cdata.h
24662         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
24663         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
24664         (arm-cpu-data.h): Likewise.
24665         (arm-cpu-cdata.h): Likewise.
24666         * config/arm/arm-cpu.h: Delete.
24667         * config/arm/arm-cpu-cdata.h: Delete.
24668         * config/arm/arm-cpu-data.h: Delete.
24669
24670 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
24671
24672         * config/arm/arm-cpus.in (cortex-a55): New.
24673         (cortex-a75): Likewise.
24674         (cortex-a75.cortex-a55): Likewise.
24675         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
24676         cortex-a75.
24677         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
24678         * config/arm/arm-cpu-cdata.h: Regenerate.
24679         * config/arm/arm-cpu-data.h: Regenerate.
24680         * config/arm/arm-cpu.h: Regenerate.
24681         * config/arm/arm-tables.opt: Regenerate.
24682         * config/arm/arm-tune.md: Regenerate.
24683
24684 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24685
24686         * haifa-sched.c (sched_create_recovery_edges): Update profile.
24687
24688 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24689
24690         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
24691         probability.
24692
24693 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
24694
24695         PR tree-optimization/81292
24696         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
24697         full_string_p, also call adjust_related_strinfos if the adjustment
24698         is simple, otherwise invalidate related strinfos.
24699
24700 2017-07-04  Martin Liska  <mliska@suse.cz>
24701
24702         PR sanitizer/81040
24703         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
24704         newly created variable as DECL_IGNORED_P.
24705
24706 2017-07-04  Martin Liska  <mliska@suse.cz>
24707
24708         PR ipa/81293
24709         * ipa-inline.c (inline_small_functions):
24710         Use xstrdup_for_dump.
24711
24712 2017-07-04  Tom de Vries  <tom@codesourcery.com>
24713
24714         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
24715
24716 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
24717
24718         PR target/81033
24719         * config/darwin.c (darwin_function_switched_text_sections):
24720         Fix spaces.
24721
24722 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
24723
24724         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
24725
24726 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
24727
24728         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
24729
24730 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24731
24732         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
24733         min_profitable_iters, and th as inclusive lower bounds.
24734         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
24735         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
24736         for min_profitable_iters and min_profitable_estimate.
24737         (vect_transform_loop): Treat th as an inclusive lower bound.
24738         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
24739
24740 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
24741
24742         PR target/81033
24743         * config/darwin.c (darwin_function_switched_text_sections):
24744         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
24745         in two pieces, and suppress the use of buf.
24746
24747 2017-07-03  Nathan Sidwell  <nathan@acm.org>
24748
24749         * hash-table.h (hash_table_mod1): Fix indentation.
24750
24751 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24752
24753         PR middle-end/81290
24754         * predict.c (force_edge_cold): Be more careful about propagation
24755         backward.
24756         * profile-count.h (profile_probability::guessed,
24757         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
24758         New.
24759         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
24760
24761 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
24762
24763         * doc/invoke.texi (rcpc architecture extension): Document it.
24764
24765 2017-07-03  Richard Biener  <rguenther@suse.de>
24766
24767         PR tree-optimization/60510
24768         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
24769         the scalar reduction PHI and use it.
24770         (vectorizable_reduction): Properly guard the single_defuse_cycle
24771         path for non-SLP reduction chains where we cannot use it.
24772         Rework reduc_def/index and vector type deduction.  Rework
24773         vector operand gathering during reduction op code-gen.
24774         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
24775         chains dissolve the chain and leave it to non-SLP reduction
24776         handling.
24777
24778 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24779
24780         * tree-data-ref.h (dr_alignment): Declare.
24781         * tree-data-ref.c (dr_alignment): New function.
24782         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
24783         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
24784         set it.
24785         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
24786
24787 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24788
24789         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
24790         and base_misalignment fields.
24791         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
24792         * tree-data-ref.c: Include builtins.h.
24793         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
24794         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
24795         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
24796         * tree-vect-data-refs.c: Include tree-cfg.h.
24797         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
24798         fields instead of calculating an alignment here.
24799         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
24800         innermost_loop_behavior fields.
24801
24802 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24803
24804         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
24805         field.
24806         (DR_STEP_ALIGNMENT): New macro.
24807         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
24808         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
24809         (create_data_ref): Print it.
24810         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
24811         to tell whether the step preserves vector (mis)alignment.
24812         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
24813         Move the check for an integer step and generalise to all INTEGER_CST.
24814         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
24815         Print the outer step alignment.
24816
24817 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24818
24819         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
24820         with offset_alignment.
24821         (DR_ALIGNED_TO): Delete.
24822         (DR_OFFSET_ALIGNMENT): New macro.
24823         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
24824         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
24825         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
24826         (create_data_ref): Likewise.
24827         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
24828         (vect_analyze_data_refs): Likewise.
24829         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
24830         creating dummy innermost behavior.
24831
24832 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24833
24834         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
24835         with a "innermost_loop_behavior *" and refeence tree.
24836         * tree-data-ref.c (dr_analyze_innermost): Likewise.
24837         (create_data_ref): Update call accordingly.
24838         * tree-predcom.c (find_looparound_phi): Likewise.
24839
24840 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24841
24842         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
24843         fields with dr_wrt_vec_loop.
24844         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
24845         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
24846         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
24847         (vect_dr_behavior): New function.
24848         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
24849         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
24850         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
24851         track whether the step preserves the misalignment.
24852         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
24853         Use vect_dr_behavior.
24854         (vect_setup_realignment): Update call accordingly.
24855         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
24856         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
24857         call to vect_create_addr_base_for_vector_ref.
24858         (vect_create_cond_for_align_checks): Likewise.
24859         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
24860         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
24861         (vect_recog_mask_conversion_pattern): Likewise.
24862         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
24863         (new_stmt_vec_info): Remove redundant zeroing.
24864
24865 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
24866
24867         * common/config/arm/arm-common.c (arm_be8_option): New function.
24868         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
24869         (ISA_ARMv6): Add isa_bit_be8.
24870         * config/arm/arm.h (arm_be8_option): Add prototype.
24871         (BE8_SPEC_FUNCTION): New define.
24872         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
24873         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
24874         (mlittle-endian): Similarly.
24875         (mbe8, mbe32): New options.
24876         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
24877         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
24878
24879 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24880
24881         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
24882
24883 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24884
24885         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
24886         (cleanup_tree_cfg_bb): Use it.
24887         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
24888         New functions.
24889         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
24890
24891 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24892
24893         PR bootstrap/81285
24894         * loop-doloop.c (add_test): Update profile.
24895
24896 2017-07-03  Martin Liska  <mliska@suse.cz>
24897
24898         PR sanitize/81040
24899         * sanopt.c (rewrite_usage_of_param): New function.
24900         (sanitize_rewrite_addressable_params): Likewise.
24901         (pass_sanopt::execute): Call rewrite_usage_of_param.
24902
24903 2017-07-03  Richard Biener  <rguenther@suse.de>
24904
24905         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
24906         back to using VIEW_CONVERT_EXPR.
24907
24908 2017-07-03  Martin Liska  <mliska@suse.cz>
24909
24910         PR other/78366
24911         * doc/extend.texi: Document when a resolver function is
24912         generated for target_clones.
24913
24914 2017-07-03  Martin Liska  <mliska@suse.cz>
24915
24916         * asan.c (asan_emit_stack_protection): Unpoison just red zones
24917         and shadow memory of auto variables which are subject of
24918         use-after-scope sanitization.
24919         (asan_expand_mark_ifn): Add do set only when is_poison.
24920
24921 2016-07-03  Richard Biener  <rguenther@suse.de>
24922
24923         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
24924         reduction PHIs.
24925         (vect_force_simple_reduction): Record reduction def -> phi mapping.
24926         (vectorizable_reduction): Perform reduction PHI creation when
24927         visiting a reduction PHI and adjust and simplify code generation
24928         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
24929         (vect_transform_loop): Visit reduction PHIs.
24930         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
24931         defs into the SLP tree.
24932         (vect_build_slp_tree): Reduction defs terminate the recursion.
24933         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
24934         of reduction defs.
24935         (vect_get_vec_defs_for_stmt_copy): Export.
24936         (vect_get_vec_defs): Likewise.
24937         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
24938         purpose.
24939         (vect_get_vec_defs_for_stmt_copy): Declare.
24940         (vect_get_vec_defs): Likewise.
24941
24942 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24943
24944         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
24945         parameter with a "loop" parameter and use it instead of the
24946         loop containing DR_STMT.  Don't check simple_iv when doing
24947         BB analysis.  Describe the two analysis modes in the comment.
24948
24949 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24950
24951         PR tree-optimization/69468
24952         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
24953         (find_same_succ_bb): Handle ignore_edge_flags.
24954
24955 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24956
24957         PR tree-optimization/81192
24958         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
24959         hash.
24960         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
24961         differs.
24962         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
24963
24964 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24965
24966         PR tree-optimization/81192
24967         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
24968         BB_SAME_SUCC (bb) == NULL.
24969
24970 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24971
24972         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
24973         consistency.
24974
24975 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24976
24977         * dumpfile.c: Include profile-count.h
24978         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
24979         update profile.
24980         (insert_cond_bb): Update profile.
24981         * tree-cfg.h (insert_cond_bb): Update prototype.
24982         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
24983         * tree-dump.c: Do not include tree-cfg.
24984
24985 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24986
24987         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
24988
24989 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24990
24991         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
24992         bb.
24993
24994 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24995
24996         * tree-complex.c (expand_complex_div_wide): update profile.
24997
24998 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24999             Alan Hayward  <alan.hayward@arm.com>
25000             David Sherwood  <david.sherwood@arm.com>
25001
25002         * Makefile.in (MACHMODE_H): Remove insn-modes.h
25003         (CORETYPES_H): New define.
25004         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
25005         (insn-modes-inline.h, s-modes-inline-h): New rules.
25006         (generated_files): Add insn-modes-inline.h.
25007         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
25008         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
25009         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
25010         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
25011         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
25012         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
25013         (build/gencodes.o, build/genconditions.o): Likewise.
25014         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
25015         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
25016         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
25017         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
25018         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
25019         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
25020         * coretypes.h: Include everything up to real.h for generators.
25021         Include insn-modes.h first.  Include wide-int-print.h after
25022         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
25023         * machmode.h: Don't include insn-modes.h here.
25024         * function-tests.c: Remove includes of signop.h, machmode.h,
25025         double-int.h and wide-int.h.
25026         * rtl.h: Likewise.
25027         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
25028         and wide-int.h.
25029         * optc-save-gen.awk: Likewise.
25030         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
25031         * godump.c: Remove include of wide-int-print.h.
25032         * pretty-print.h: Likewise.
25033         * wide-int-print.cc: Likewise.
25034         * wide-int.cc: Likewise.
25035         * hash-map-tests.c: Remove include of signop.h.
25036         * hash-set-tests.c: Likewise.
25037         * rtl-tests.c: Likewise.
25038         * mkconfig.sh: Remove include of machmode.h.
25039         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
25040         into...
25041         (emit_insn_modes_inline_h): ...this new function.  Emit the code
25042         into an insn-modes-inline.h header file, adding appropriate
25043         include guards and end comments.
25044         (emit_insn_modes_c_header): Remove include of machmode.h.
25045         (emit_min_insn_modes_c_header): Include coretypes.h rather than
25046         machmode.h.
25047         (main): Handle -i flag and call emit_insn_modes_inline_h when
25048         it is passed.
25049
25050 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25051
25052         * tree-ssa-strlen.c (strinfo): Rename the length field to
25053         nonzero_chars.  Add a full_string_p field.
25054         (compare_nonzero_chars, zero_length_string_p): New functions.
25055         (get_addr_stridx): Add an offset_out parameter.
25056         Use compare_nonzero_chars.
25057         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
25058         (new_strinfo): Update after above changes to strinfo.
25059         (set_endptr_and_length): Set full_string_p.
25060         (get_string_length): Update after above changes to strinfo.
25061         (unshare_strinfo): Update call to new_strinfo.
25062         (maybe_invalidate): Likewise.
25063         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
25064         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
25065         as a uhwi instead of an shwi.  Update after above changes to
25066         strinfo and new_strinfo.
25067         (zero_length_string): Assert that chainsi contains full strings.
25068         Use zero_length_string_p.  Update call to new_strinfo.
25069         (adjust_related_strinfos): Update after above changes to strinfo.
25070         Copy full_string_p from origsi.
25071         (adjust_last_stmt): Use zero_length_string_p.
25072         (handle_builtin_strlen): Update after above changes to strinfo and
25073         new_strinfo.  Install the lhs as the string length if the previous
25074         entry didn't describe a full string.
25075         (handle_builtin_strchr): Update after above changes to strinfo
25076         and new_strinfo.
25077         (handle_builtin_strcpy): Likewise.
25078         (handle_builtin_strcat): Likewise.
25079         (handle_builtin_malloc): Likewise.
25080         (handle_pointer_plus): Likewise.
25081         (handle_builtin_memcpy): Likewise.  Track nonzero characters
25082         that aren't necessarily followed by a nul terminator.
25083         (handle_char_store): Likewise.
25084
25085 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25086
25087         PR tree-optimization/80769
25088         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
25089         for malloc and calloc.  Document the new invariant that all related
25090         strinfos have delayed lengths or none do.
25091         (verify_related_strinfos): Move earlier in file.
25092         (set_endptr_and_length): New function, split out from...
25093         (get_string_length): ...here.  Also set the lengths of related
25094         strinfos.
25095         (zero_length_string): Assert that chainsi has known (rather than
25096         delayed) lengths.
25097         (adjust_related_strinfos): Likewise.
25098
25099 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25100
25101         PR tree-optimization/81136
25102         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
25103         assert that two references with the same misalignment have the same
25104         compile-time misalignment if those compile-time misalignments
25105         are known.
25106
25107 2017-07-01  Andi Kleen  <ak@linux.intel.com>
25108
25109         * print-tree.c (print_node): Print all attributes.
25110
25111 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25112
25113         * cfg.c (scale_bbs_frequencies): New function.
25114         * cfg.h (scale_bbs_frequencies): Declare it.
25115         * cfgloopanal.c (single_likely_exit): Cleanup.
25116         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
25117         as parameter.
25118         (scale_loop_profile): Likewise.
25119         (loop_version): Likewise.
25120         (create_empty_loop_on_edge): Update.
25121         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
25122         scale_loop_frequencies, scale_loop_profile, loopify,
25123         loop_version): Update prototypes.
25124         * modulo-sched.c (sms_schedule): Update.
25125         * predict.c (unlikely_executed_edge_p): Also check probability.
25126         (probably_never_executed_edge_p): Fix typo.
25127         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25128         * tree-parloops.c (gen_parallel_loop): Update.
25129         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
25130         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25131         * tree-ssa-loop-split.c (split_loop): Update.
25132         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25133         * tree-vect-loop-manip.c (vect_do_peeling): Update.
25134         (vect_loop_versioning): Update.
25135         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25136
25137 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25138
25139         * trans-mem.c (split_bb_make_tm_edge): Update profile.
25140
25141 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25142
25143         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
25144         to keep profile consistent.
25145
25146 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25147
25148         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
25149         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
25150         * profile-count.h (max_safe_multiplier): Make unsigned.
25151         (profile_count::guessed_zero): New.
25152
25153 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25154
25155         * bb-reorder.c (fix_up_crossing_landing_pad,
25156         fix_crossing_conditional_branches): Use make_single_succ_edge
25157         to keep profile consistent.
25158
25159 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25160
25161         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
25162         to update profile.
25163
25164 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
25165
25166         PR sanitizer/81262
25167         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
25168         the right scopes, make sure cond_jump isn't preserved between multiple
25169         iterations.  Search for fallthru edge whenever there are 3+ edges and
25170         use find_fallthru_edge for it.
25171
25172 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25173
25174         Patch by Alexander Monakov <amonakov@ispras.ru>
25175         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
25176         probabilities consistently.
25177
25178 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25179
25180         * pa.c (pa_expand_compare_and_swap_loop): Update call of
25181         emit_cmp_and_jump_insns.
25182
25183 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25184
25185         PR ipa/81261
25186         * tree-inline.c (expand_call_inline): Combine profile statuses.
25187
25188 2017-06-30  Andrew Pinski  <apinski@cavium.com>
25189
25190         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
25191         fold_stmt returned true.
25192
25193 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25194
25195         * ggc.h (empty_string): Delete.
25196         * cfgexpand.c (expand_asm_stmt): Use plain "".
25197         * optabs.c (expand_asm_memory_barrier): Likewise.
25198         * stringpool.c (empty_string): Delete.
25199         (digit_vector, digit_string): Delete.
25200         (ggc_alloc_string): Use plain "", don't optimize single digit
25201         strings.  Use ggc_alloc_atomic.
25202
25203 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
25204
25205         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
25206         comparison set and one other set, use the cost of the non-comparison
25207         set.
25208
25209 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25210
25211         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
25212         some formatting.
25213
25214 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
25215
25216         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
25217         loops.  Remove now unneeded calls to gimple_switch_set_label() that
25218         just set removed labels to NULL_TREE.
25219
25220 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
25221
25222         * tree-ssanames.c (set_range_info_raw): Abstract from ...
25223         (set_range_info): ...here.  Only call set_range_info_raw if domain
25224         is useful.
25225         (set_nonzero_bits): Call set_range_info_raw.
25226         * tree-ssanames.h (set_range_info_raw): New.
25227
25228 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
25229
25230         PR target/81225
25231         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
25232         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
25233         of nonimmediate_operand and <store_mask_constraint> instead of m
25234         for the input operand.  For V8FI iterator, always split if input
25235         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
25236         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
25237         <store_mask_predicate> instead of register_operand and
25238         <store_mask_constraint> instead of v for the input operand.  Make
25239         sure both operands aren't MEMs for if not <mask_applied>.
25240
25241 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
25242
25243         * lto-wrapper.c (copy_file) Close both file descriptors before
25244         exiting normally.
25245
25246 2017-06-30  Martin Liska  <mliska@suse.cz>
25247
25248         PR ipa/81214
25249         * multiple_target.c (create_dispatcher_calls): Make ifunc
25250         also for function that don't have calls or are not referenced.
25251
25252 2017-06-30  Richard Biener  <rguenther@suse.de>
25253
25254         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
25255         analyze the first scalar stmt.  Move vector type computation
25256         for the BB case here from ...
25257         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
25258         live operation processing in the SLP case properly.
25259
25260 2017-06-30  Richard Biener  <rguenther@suse.de>
25261
25262         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
25263
25264 2017-06-30  Martin Liska  <mliska@suse.cz>
25265
25266         PR sanitizer/81021
25267         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
25268         before BUILT_IN_UNWIND_RESUME when ASAN is used.
25269
25270 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
25271
25272         * doc/invoke.texi (AArch64): Add missing options and remove redundant
25273         ones.
25274
25275 2017-06-30  Richard Biener  <rguenther@suse.de>
25276
25277         PR tree-optimization/81249
25278         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
25279         condition reduction result to original scalar type.
25280
25281 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25282
25283         * profile-count.h (enum profile_quality): Fix typos and whitespace
25284         issues.
25285
25286 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25287
25288         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
25289         type for branch probabilities.
25290
25291 2017-06-29  Julian Brown  <julian@codesourcery.com>
25292             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25293
25294         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
25295         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
25296         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
25297         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
25298
25299 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25300
25301         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
25302         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
25303         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
25304         CC usage from generic code to here.
25305         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
25306         CC usage into the target macros.
25307
25308 2017-06-29  Maya Rashish  <coypu@sdf.org>
25309
25310         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
25311         objects.
25312
25313 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25314
25315         * arm/arm-builtins.c: Include profile-count.h
25316         * except.c (sjlj_emit_function_enter): Use
25317         profile_probability::unlikely.
25318
25319 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25320
25321         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
25322         and tocrel_offset be pointer args rather than implicitly using
25323         static versions.
25324         (legitimate_constant_pool_address_p, rs6000_emit_move,
25325         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
25326         tocrel_offset and use in toc_relative_expr_p call.
25327         (print_operand, print_operand_address): Use static tocrel_base_oac
25328         and tocrel_offset_oac.
25329         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
25330         tocrel_offset_oac.
25331
25332 2017-06-29  Maya Rashish  <coypu@sdf.org>
25333
25334         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
25335
25336 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
25337
25338         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
25339         objects, take into account only the alignment of 'op0' and 'mode1' if
25340         'op0' is a MEM.
25341
25342 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
25343
25344         * ccmp.c (ccmp_tree_comparison_p): New function.
25345         (ccmp_candidate_p): Update to use above function.
25346         (get_compare_parts): New function.
25347         (expand_ccmp_next): Update to use new functions.
25348         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
25349         new functions.
25350         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
25351         take mode as argument.
25352         * ccmp.h (expand_ccmp_expr): Add mode as argument.
25353         * expr.c (expand_expr_real_1): Pass mode as argument.
25354
25355 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
25356
25357         * combine.c (combine_instructions): Print insns to dump_file, together
25358         with their costs.
25359
25360 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25361
25362         * asan.c (asan_emit_stack_protection): Update.
25363         (create_cond_insert_point): Update.
25364         * auto-profile.c (afdo_propagate_circuit): Update.
25365         * basic-block.h (struct edge_def): Turn probability to
25366         profile_probability.
25367         (EDGE_FREQUENCY): Update.
25368         * bb-reorder.c (find_traces_1_round): Update.
25369         (better_edge_p): Update.
25370         (sanitize_hot_paths): Update.
25371         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
25372         (make_single_succ_edge): Update.
25373         (check_bb_profile): Update.
25374         (dump_edge_info): Update.
25375         (update_bb_profile_for_threading): Update.
25376         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
25377         probabilitycount to 0.
25378         * cfgbuild.c (compute_outgoing_frequencies): Update.
25379         * cfgcleanup.c (try_forward_edges): Update.
25380         (outgoing_edges_match): Update.
25381         (try_crossjump_to_edge): Update.
25382         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
25383         (expand_gimple_tailcall): Update.
25384         (construct_init_block): Use make_single_succ_edge.
25385         (construct_exit_block): Use make_single_succ_edge.
25386         * cfghooks.c (verify_flow_info): Update.
25387         (redirect_edge_succ_nodup): Update.
25388         (split_edge): Update.
25389         (account_profile_record): Update.
25390         * cfgloopanal.c (single_likely_exit): Update.
25391         * cfgloopmanip.c (scale_loop_profile): Update.
25392         (set_zero_probability): Remove.
25393         (duplicate_loop_to_header_edge): Update.
25394         * cfgloopmanip.h (loop_version): Update prototype.
25395         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
25396         (force_nonfallthru_and_redirect): Update.
25397         (update_br_prob_note): Update.
25398         (rtl_verify_edges): Update.
25399         (purge_dead_edges): Update.
25400         (rtl_lv_add_condition_to_bb): Update.
25401         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
25402         * cgraphunit.c (init_lowered_empty_function): Update.
25403         (cgraph_node::expand_thunk): Update.
25404         * cilk-common.c: Include profile-count.h
25405         * dojump.c (inv): Remove.
25406         (jumpifnot): Update.
25407         (jumpifnot_1): Update.
25408         (do_jump_1): Update.
25409         (do_jump): Update.
25410         (do_jump_by_parts_greater_rtx): Update.
25411         (do_compare_rtx_and_jump): Update.
25412         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
25413         do_jump_1. do_compare_rtx_and_jump): Update prototype.
25414         * dwarf2cfi.c: Include profile-count.h
25415         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
25416         (sjlj_emit_dispatch_table): Likewise.
25417         * explow.c: Include profile-count.h
25418         * expmed.c (emit_store_flag_force): Update.
25419         (do_cmp_and_jump): Update.
25420         * expr.c (compare_by_pieces_d::generate): Update.
25421         (compare_by_pieces_d::finish_mode): Update.
25422         (emit_block_move_via_loop): Update.
25423         (store_expr_with_bounds): Update.
25424         (store_constructor): Update.
25425         (expand_expr_real_2): Update.
25426         (expand_expr_real_1): Update.
25427         * expr.h (try_casesi, try_tablejump): Update prototypes.
25428         * gimple-pretty-print.c (dump_probability): Update.
25429         (dump_profile): New.
25430         (dump_gimple_label): Update.
25431         (dump_gimple_bb_header): Update.
25432         * graph.c (draw_cfg_node_succ_edges): Update.
25433         * hsa-gen.c (convert_switch_statements): Update.
25434         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
25435         (find_if_case_1): Update.
25436         (find_if_case_2): Update.
25437         * internal-fn.c (expand_arith_overflow_result_store): Update.
25438         (expand_addsub_overflow): Update.
25439         (expand_neg_overflow): Update.
25440         (expand_mul_overflow): Update.
25441         (expand_vector_ubsan_overflow): Update.
25442         * ipa-cp.c (good_cloning_opportunity_p): Update.
25443         * ipa-split.c (split_function): Use make_single_succ_edge.
25444         * ipa-utils.c (ipa_merge_profiles): Update.
25445         * loop-doloop.c (add_test): Update.
25446         (doloop_modify): Update.
25447         * loop-unroll.c (compare_and_jump_seq): Update.
25448         (unroll_loop_runtime_iterations): Update.
25449         * lra-constraints.c (lra_inheritance): Update.
25450         * lto-streamer-in.c (input_cfg): Update.
25451         * lto-streamer-out.c (output_cfg): Update.
25452         * mcf.c (adjust_cfg_counts): Update.
25453         * modulo-sched.c (sms_schedule): Update.
25454         * omp-expand.c (expand_omp_for_init_counts): Update.
25455         (extract_omp_for_update_vars): Update.
25456         (expand_omp_ordered_sink): Update.
25457         (expand_omp_for_ordered_loops): Update.
25458         (expand_omp_for_generic): Update.
25459         (expand_omp_for_static_nochunk): Update.
25460         (expand_omp_for_static_chunk): Update.
25461         (expand_cilk_for): Update.
25462         (expand_omp_simd): Update.
25463         (expand_omp_taskloop_for_outer): Update.
25464         (expand_omp_taskloop_for_inner): Update.
25465         * omp-simd-clone.c (simd_clone_adjust): Update.
25466         * optabs.c (expand_doubleword_shift): Update.
25467         (expand_abs): Update.
25468         (emit_cmp_and_jump_insn_1): Update.
25469         (expand_compare_and_swap_loop): Update.
25470         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
25471         * predict.c (predictable_edge_p): Update.
25472         (edge_probability_reliable_p): Update.
25473         (set_even_probabilities): Update.
25474         (combine_predictions_for_insn): Update.
25475         (combine_predictions_for_bb): Update.
25476         (propagate_freq): Update.
25477         (estimate_bb_frequencies): Update.
25478         (force_edge_cold): Update.
25479         * profile-count.c (profile_count::dump): Add missing space into dump.
25480         (profile_count::debug): Add newline.
25481         (profile_count::differs_from_p): Explicitly convert to unsigned.
25482         (profile_count::stream_in): Update.
25483         (profile_probability::dump): New member function.
25484         (profile_probability::debug): New member function.
25485         (profile_probability::differs_from_p): New member function.
25486         (profile_probability::differs_lot_from_p): New member function.
25487         (profile_probability::stream_in): New member function.
25488         (profile_probability::stream_out): New member function.
25489         * profile-count.h (profile_count_quality): Rename to ...
25490         (profile_quality): ... this one.
25491         (profile_probability): New.
25492         (profile_count): Update.
25493         * profile.c (compute_branch_probabilities): Update.
25494         * recog.c (peep2_attempt): Update.
25495         * sched-ebb.c (schedule_ebbs): Update.
25496         * sched-rgn.c (find_single_block_region): Update.
25497         (compute_dom_prob_ps): Update.
25498         (schedule_region): Update.
25499         * sel-sched-ir.c (compute_succs_info): Update.
25500         * stmt.c (struct case_node): Update.
25501         (do_jump_if_equal): Update.
25502         (get_outgoing_edge_probs): Update.
25503         (conditional_probability): Update.
25504         (emit_case_dispatch_table): Update.
25505         (expand_case): Update.
25506         (expand_sjlj_dispatch_table): Update.
25507         (emit_case_nodes): Update.
25508         * targhooks.c: Update.
25509         * tracer.c (better_p): Update.
25510         (find_best_successor): Update.
25511         * trans-mem.c (expand_transaction): Update.
25512         * tree-call-cdce.c: Update.
25513         * tree-cfg.c (gimple_split_edge): Upate.
25514         (move_sese_region_to_fn): Upate.
25515         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
25516         * tree-eh.c (lower_resx): Upate.
25517         (cleanup_empty_eh_move_lp): Upate.
25518         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25519         * tree-inline.c (copy_edges_for_bb): Update.
25520         (copy_cfg_body): Update.
25521         * tree-parloops.c (gen_parallel_loop): Update.
25522         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
25523         (gimple_gen_time_profiler): Update.
25524         * tree-ssa-dce.c (remove_dead_stmt): Update.
25525         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
25526         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
25527         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
25528         (unloop_loops): Update.
25529         (try_peel_loop): Update.
25530         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25531         * tree-ssa-loop-split.c (connect_loops): Update.
25532         (split_loop): Update.
25533         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25534         (hoist_guard): Update.
25535         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
25536         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
25537         (value_replacement): Update.
25538         * tree-ssa-reassoc.c (branch_fixup): Update.
25539         * tree-ssa-tail-merge.c (replace_block_by): Update.
25540         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
25541         (create_edge_and_update_destination_phis): Update.
25542         (compute_path_counts): Update.
25543         (recompute_probabilities): Update.
25544         (update_joiner_offpath_counts): Update.
25545         (freqs_to_counts_path): Update.
25546         (duplicate_thread_path): Update.
25547         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
25548         (struct switch_conv_info): Update.
25549         (gen_inbound_check): Update.
25550         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
25551         (vect_do_peeling): Update.
25552         (vect_loop_versioning): Update.
25553         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25554         (optimize_mask_stores): Update.
25555         * ubsan.c (ubsan_expand_null_ifn): Update.
25556         * value-prof.c (gimple_divmod_fixed_value): Update.
25557         (gimple_divmod_fixed_value_transform): Update.
25558         (gimple_mod_pow2): Update.
25559         (gimple_mod_pow2_value_transform): Update.
25560         (gimple_mod_subtract): Update.
25561         (gimple_mod_subtract_transform): Update.
25562         (gimple_ic): Update.
25563         (gimple_stringop_fixed_value): Update.
25564         (gimple_stringops_transform): Update.
25565         * value-prof.h: Update.
25566
25567 2017-06-29  Carl Love  <cel@us.ibm.com>
25568
25569         * config/rs6000/rs6000-c.c: Add support for built-in functions
25570         vector signed int vec_signed (vector float);
25571         vector signed long long vec_signed (vector double);
25572         vector signed int vec_signed2 (vector double, vector double);
25573         vector signed int vec_signede (vector double);
25574         vector signed int vec_signedo (vector double);
25575         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
25576         instruction generator.
25577         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
25578         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
25579         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
25580         Add define_insn.
25581         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
25582         vunsignede_v2df): Add define_expands.
25583         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
25584         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
25585         VEC_UNSIGNEDO): Add definitions.
25586         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
25587         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
25588         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
25589         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
25590         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
25591         * config/rs6000/altivec.h (vec_signed, vec_signed2,
25592         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
25593         vec_unsignede, vec_unsignedo): Add builtin defines.
25594         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
25595         declaration.
25596         * doc/extend.texi: Update the built-in documentation file for the
25597         new built-in functions.
25598
25599 2017-06-29  Richard Biener  <rguenther@suse.de>
25600
25601         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
25602         reduction chains to LOOP_VINFO_REDUCTIONS.
25603         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
25604         SLP reductions after processing reduction chains.
25605
25606 2017-06-29  Nathan Sidwell  <nathan@acm.org>
25607
25608         * builtins.c (fold_builtin_FUNCTION): Use
25609         lang_hooks.decl_printable_name.
25610
25611 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
25612
25613         PR middle-end/81194
25614         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
25615         with only one label.
25616         * stmt.c (expand_case): Assert NCASES is greater than one.
25617
25618 2017-06-29  Richard Biener  <rguenther@suse.de>
25619
25620         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
25621         anything.
25622         (group_case_labels): Likewise.
25623         (find_taken_edge): Push sanity checking on val to workers...
25624         (find_taken_edge_cond_expr): ... here
25625         (find_taken_edge_switch_expr): ... and here, handle cases
25626         with just a default label.
25627         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
25628         (group_case_labels): Likewise.
25629         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
25630         group_case_labels does anything cleanup the CFG again.
25631
25632 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
25633
25634         PR tree-optimization/81196
25635         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
25636         exit condition comparing two IVs.
25637
25638 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
25639
25640         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
25641         profile to the dummy entry at the end of the list of architectures.
25642         * config/arm/arm-cpu-cdata.h: Regenerated.
25643
25644 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25645             Michael Collison <michael.collison@arm.com>
25646
25647         PR target/70119
25648         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
25649         New pattern.
25650         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
25651         (*aarch64_reg_<mode>3_minus_mask): New pattern.
25652         (*aarch64_<optab>_reg_di3_mask2): New pattern.
25653         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
25654         of shift when the shift amount is masked with constant equal to
25655         the size of the mode.
25656         * config/aarch64/predicates.md (subreg_lowpart_operator): New
25657         predicate.
25658
25659 2017-06-29  Martin Liska  <mliska@suse.cz>
25660
25661         * config/i386/i386.opt: Change range from [1,5] to [0,5].
25662
25663 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
25664
25665         PR bootstrap/80565
25666         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
25667         code.
25668         * ipa-inline.h
25669         (edge_growth_cache_entry::edge_growth_cache_entry): New
25670         function.
25671         (reset_edge_growth_cache): Update to use constructor.
25672
25673 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25674
25675         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
25676         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
25677         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
25678
25679 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
25680
25681         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
25682         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
25683
25684 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
25685
25686         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
25687         (*-linux-uclibc*): Add t-uclibc tmake_file.
25688         * config/t-musl: New.
25689         * config/t-uclibc: New.
25690
25691 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
25692
25693         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
25694         context.
25695         (gen_comm_data): Emit architectural setting of arch_prof.
25696         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
25697         profile.
25698         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
25699         (armv8-m.base, armv8-m.main): Likewise.
25700         * arm-protos.h (arm_build_target): Add profile field.
25701         (arch_option): Likewise.
25702         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
25703         the active target.
25704         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
25705         arm_active_target.profile.
25706
25707 2017-06-28  Richard Biener  <rguenther@suse.de>
25708
25709         PR middle-end/81227
25710         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
25711         TYPE_OVERFLOW_WRAPS.
25712         * match.pd (negate_expr_p): Likewise.
25713         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
25714         fold_build2, not fold_binary.
25715
25716 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
25717
25718         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
25719         Convert memory address to Pmode.
25720         (aarch64_print_operand): Assert MEM operands are always Pmode.
25721
25722 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
25723
25724         PR target/79665
25725         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
25726         Remove redundant if.
25727         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
25728         * config/arm/aarch-common-protos.h
25729         (aarch_forward_to_shift_is_not_shifted_re): Remove.
25730         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
25731
25732 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
25733
25734         PR ipa/81238
25735         * multiple_target.c (create_dispatcher_calls): Set the default
25736         clone to be static, not public.
25737
25738 2017-06-28  Richard Biener  <rguenther@suse.de>
25739
25740         * tree-vect-loop.c (vectorizable_reduction): Move special
25741         cond reduction IV var creation ...
25742         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
25743         parameter.  Use STMT_VINFO_VECTYPE.
25744         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
25745         constant_p.
25746
25747 2017-06-28  Martin Liska  <mliska@suse.cz>
25748
25749         PR ipa/81128
25750         * ipa-visibility.c (non_local_p): Handle visibility.
25751
25752 2017-06-28  Martin Liska  <mliska@suse.cz>
25753
25754         PR driver/79659
25755         * common.opt: Add IntegerRange to various options.
25756         * opt-functions.awk (integer_range_info): New function.
25757         * optc-gen.awk: Add integer_range_info to cl_options struct.
25758         * opts-common.c (decode_cmdline_option): Handle
25759         CL_ERR_INT_RANGE_ARG.
25760         (cmdline_handle_error): Likewise.
25761         * opts.c (print_filtered_help): Show valid interval in
25762         when --help is provided.
25763         * opts.h (struct cl_option): Add range_min and range_max fields.
25764         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
25765
25766 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
25767
25768         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
25769         (x * C EQ/NE y * C): New transformation.
25770
25771 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
25772
25773         * genmultilib (combination_space): Accept '+' in option names.
25774
25775 2017-06-28  Martin Liska  <mliska@suse.cz>
25776
25777         PR sanitizer/81224
25778         * asan.c (instrument_derefs): Bail out inner references
25779         that are hard register variables.
25780
25781 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
25782
25783         PR target/81175
25784         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
25785         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
25786
25787 2017-06-28  Richard Biener  <rguenther@suse.de>
25788
25789         * tree-vectorizer.h (vect_get_vec_defs): Remove.
25790         (vect_get_slp_defs): Adjust.
25791         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
25792         out from ...
25793         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
25794         simplify.
25795         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
25796         get_initial_defs_for_reduction instead of vect_get_vec_defs.
25797         (vectorizable_reduction): Adjust.
25798         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
25799         handling.
25800         (vect_get_slp_defs): Likewise.
25801         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
25802         (vectorizable_bswap): Adjust.
25803         (vectorizable_call): Likewise.
25804         (vectorizable_conversion): Likewise.
25805         (vectorizable_assignment): Likewise.
25806         (vectorizable_shift): Likewise.
25807         (vectorizable_operation): Likewise.
25808         (vectorizable_store): Likewise.
25809         (vectorizable_condition): Likewise.
25810         (vectorizable_comparison): Likewise.
25811
25812 2017-06-28  Michael Collison  <michael.collison@arm.com>
25813
25814         PR target/68535
25815         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
25816         set of base_reg
25817         (arm_gen_movmemqi): Removed unused variable 'i'.
25818         Convert 'for' loop into 'while' loop.
25819         (arm_expand_prologue): Remove last unnecessary set of insn.
25820         (thumb_pop): Remove unused variable 'pushed_words'.
25821         (thumb_exit): Remove last unnecessary set of regs_to_pop.
25822
25823 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25824
25825         * config/s390/predicates.md: Use s390_rel_address_ok_p.
25826         * config/s390/s390-protos.h: Add prototype of
25827         s390_rel_address_ok_p.
25828         * config/s390/s390.c (s390_got_symbol): New function.
25829         (s390_rel_address_ok_p): New function.
25830         (legitimize_pic_address): Use s390_rel_address_ok_p.
25831         (s390_load_got): Use s390_got_symbol.
25832         (s390_option_override): Issue error if
25833         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
25834         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
25835         New macro.
25836         * config/s390/s390.opt: New option mpic-data-is-text-relative.
25837
25838 2017-06-27  Andrew Pinski  <apinski@cavium.com>
25839
25840         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
25841         (X * copysign (1.0, X)): New pattern.
25842         (X * copysign (1.0, -X)): New pattern.
25843         (copysign (-1.0, CST)): New pattern.
25844
25845 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
25846
25847         * genmultilib (combination_space): Remove variable.
25848         Validate reuse rules against regular expression for any sequence
25849         of multilib options in any order.
25850
25851 2017-06-27  Michael Collison  <michael.collison@arm.com>
25852
25853         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
25854         call aarch64_split_simd_combine.
25855         * (aarch64_combine_internal<mode>): Delete pattern.
25856         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
25857         Allow register and subreg operands.
25858
25859 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25860
25861         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
25862         specific need, just fallback on defaults.
25863         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
25864
25865 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25866             Olivier Hainque  <hainque@adacore.com>
25867
25868         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
25869         map for 64bits.
25870         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
25871         targets. Pick a default if no particular attempt applied.
25872         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
25873         larger contexts.
25874
25875 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25876
25877         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
25878         (x86_64-wrs-vxworks7): Likewise.
25879
25880 2017-06-27  Marek Polacek  <polacek@redhat.com>
25881
25882         PR sanitizer/81223
25883         * ubsan.c (instrument_null): Check get_base_address's result for null.
25884
25885 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
25886
25887         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
25888
25889 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
25890
25891         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
25892         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
25893         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
25894         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
25895         New function types.
25896         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
25897         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
25898         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
25899         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
25900         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
25901         BUILT_IN_FEUPDATEENV): New builtins.
25902         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
25903         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
25904         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
25905         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
25906         macros.
25907         (builtin_structptr_types): Adjust size.
25908         * tree.c (builtin_structptr_types): Add four entries.
25909
25910 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25911             Olivier Hainque  <hainque@adacore.com>
25912
25913         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
25914         (TLS_SYM): New local macro, forcing reference to __tls__ on
25915         link command lines for VxWorks 7 RTPs, triggering initialization
25916         of tlsLib.
25917         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
25918         OS features TLS support, true for RTPs on VxWorks 7.
25919         * config/vxworks.c (vxworks_override_options): Setup emutls
25920         accordingly.
25921
25922 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
25923
25924         * predict.c (test_prediction_value_range): Use -1U instead of -1
25925         to avoid narrowing conversion warning.
25926         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
25927         to avoid narrowing conversion warning.
25928         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
25929         -1.
25930         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
25931
25932 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25933
25934         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
25935         64bit configurations.
25936         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
25937         (SIZE_TYPE): Likewise.
25938         * config/vxworks.c (vxworks_emutls_var_fields): Use
25939         long_unsigned_type_node instead of unsigned_type_node as the offset
25940         field type, which is "pointer" mode in emutls.c.
25941
25942 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
25943
25944         PR sanitizer/81209
25945         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
25946
25947         PR middle-end/81207
25948         * gimple-fold.c (replace_call_with_call_and_fold): Handle
25949         gimple_vuse copying separately from gimple_vdef copying.
25950
25951 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
25952
25953         * value-prof.c (free_hist): Remove call to memset and the enclosing if
25954         condition.
25955
25956 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
25957             Olivier Hainque  <hainque@adacore.com>
25958
25959         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
25960         for all vxworks7 targets.
25961         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
25962         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
25963         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
25964         variations for VX6/VX7 and 32/64bits later on in ...
25965         (VXWORKS_LIB_SPEC): Leverage new macros.
25966         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
25967         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
25968
25969 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
25970
25971         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
25972         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
25973
25974 2017-06-26  Carl Love  <cel@us.ibm.com>
25975
25976         * config/rs6000/rs6000-c.c: Add support for built-in functions
25977         vector bool char vec_reve (vector bool char);
25978         vector signed char vec_reve (vector signed char);
25979         vector unsigned char vec_reve (vector unsigned char);
25980         vector bool int vec_reve (vector bool int);
25981         vector signed int vec_reve (vector signed int);
25982         vector unsigned int vec_reve (vector unsigned int);
25983         vector bool long long vec_reve (vector bool long long);
25984         vector signed long long vec_reve (vector signed long long);
25985         vector unsigned long long vec_reve (vector unsigned long long);
25986         vector bool short vec_reve (vector bool short);
25987         vector signed short vec_reve (vector signed short);
25988         vector double vec_reve (vector double);
25989         vector float vec_reve (vector float);
25990         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
25991         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
25992         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
25993         (altivec_vreve): New pattern.
25994         * config/rs6000/altivec.h (vec_reve): New define.
25995         * doc/extend.texi (vec_rev): Update the built-in documentation file
25996         for the new built-in functions.
25997
25998 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25999
26000         PR tree-optimization/71815
26001         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
26002         function.
26003         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
26004         has_single_use.
26005         (slsr_process_phi): Likewise.
26006         (replace_uncond_cands_and_profitable_phis): Don't replace a
26007         multiply candidate with a stride of 1 (copy or cast).
26008         (phi_incr_cost): Call uses_consumed_by_stmt rather than
26009         has_single_use.
26010         (lowest_cost_path): Likewise.
26011         (total_savings): Likewise.
26012
26013 2017-06-26  Richard Biener  <rguenther@suse.de>
26014
26015         PR target/81175
26016         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
26017         Use def_builtin_pure for all gather builtins.
26018
26019 2017-06-26  Richard Biener  <rguenther@suse.de>
26020
26021         PR tree-optimization/81203
26022         * tree-tailcall.c (find_tail_calls): Do not move stmts into
26023         non-dominating BBs.
26024
26025 2017-06-26  Marek Polacek  <polacek@redhat.com>
26026
26027         PR c/80116
26028         * doc/invoke.texi: Document -Wmultistatement-macros.
26029
26030 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
26031
26032         * doc/sourcebuild.texi (ARM-specific attributes): Document new
26033         arm_neon_ok_no_float_abi effective target.
26034
26035 2017-06-26  Richard Biener  <rguenther@suse.de>
26036
26037         PR tree-optimization/80928
26038         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
26039         (copy_bbs): Set BB_DUPLICATED flag early.
26040         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
26041         marked blocks.
26042         (execute_on_shrinking_pred): Likewise.
26043         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
26044         BB_DUPLICATED blocks.
26045         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
26046         iterate over all PHIs considering removal of *gsi.
26047
26048 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
26049
26050         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
26051         qdf24xx.
26052
26053 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26054
26055         * config/rs6000/rs6000-string.c: (expand_block_clear,
26056         do_load_for_compare, select_block_compare_mode,
26057         compute_current_alignment, expand_block_compare,
26058         expand_strncmp_align_check, expand_strn_compare,
26059         expand_block_move, rs6000_output_load_multiple)
26060         Move functions related to string/block move/compare
26061         to a separate file.
26062         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
26063         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
26064         for this function which is now used in two files.
26065         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
26066         * config.gcc: Add rs6000-string.o to extra_objs for
26067         targets powerpc*-*-* and rs6000*-*-*.
26068
26069 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
26070
26071         PR target/80510
26072         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
26073         32-bit, since indexed is not valid for DImode.
26074         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
26075         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
26076         (define_peephole2 for Altivec d-form load): Add 32-bit support.
26077         (define_peephole2 for Altivec d-form store): Likewise.
26078
26079         PR ipa/81185
26080         * multiple_target.c (create_dispatcher_calls): Only create the
26081         dispatcher call if the function is the default clone of a
26082         versioned function.
26083
26084 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
26085
26086         PR middle-end/80902
26087         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
26088         a call, force the call to not be a tail call.
26089
26090 2017-06-23  Jeff Law  <law@redhat.com>
26091
26092         * doc/contrib.texi: Add entry for Steven Pemberton's work on
26093         enquire.
26094
26095 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
26096
26097         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
26098         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
26099         handling for early expansion of vector shifts (sl,sr,sra,rl).
26100         (builtin_function_type): Add vector shift right instructions
26101         to the unsigned argument list.
26102
26103 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26104
26105         rtl-optimizatoin/79286
26106         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
26107         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
26108         trap.  PIC register plus a const unspec without offset can never trap.
26109
26110 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
26111
26112         * tree.h (builtin_structptr_type): New type.
26113         (builtin_structptr_types): Declare new array.
26114         * tree.c (builtin_structptr_types): New array.
26115         (free_lang_data, build_common_tree_nodes): Use it.
26116
26117 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
26118
26119         PR c++/81187
26120         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
26121         -Wnoexcept.
26122
26123 2017-06-22  Matt Turner  <mattst88@gmail.com>
26124
26125         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
26126         Lake models to skylake case.  Assume skylake for unknown
26127         models with clflushopt.
26128
26129 2017-06-22  Jeff Law  <law@redhat.com>
26130
26131         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
26132         frame sizes that do not satisfy aarch64_uimm12_shift.
26133
26134 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
26135
26136         * profile-count.h (apply_probability,
26137         apply_scale, probability_in): Fix checks for zero.
26138
26139 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26140
26141         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
26142         * doc/cppdiropts.texi (-I @var{dir}): Document it.
26143
26144 2016-06-22  Richard Biener  <rguenther@suse.de>
26145
26146         * tree-vect-loop.c (vect_model_reduction_cost): Handle
26147         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
26148         REDUC_MAX_EXPR support.
26149         (vectorizable_reduction): Likewise.
26150         (vect_create_epilog_for_reduction): Likewise.
26151
26152 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
26153
26154         * match.pd (A / (1 << B) -> A >> B): New.
26155         * generic-match-head.c: Include optabs-tree.h.
26156         * gimple-match-head.c: Likewise.
26157         * optabs-tree.h (target_supports_op_p): New.
26158         * optabs-tree.c (target_supports_op_p): New.
26159
26160 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26161
26162         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
26163         $gcc_cv_ld --help output.
26164         (gcc_cv_ld_demangle): Likewise.
26165         (gcc_cv_ld_eh_frame_hdr): Likewise.
26166         (gcc_cv_ld_pie): Likewise.
26167         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
26168         (gcc_cv_ld_buildid): Likewise.
26169         (gcc_cv_ld_sysroot): Likewise.
26170         (ld_bndplt_support): Likewise.
26171         (ld_pushpopstate_support): Likewise.
26172         * configure: Regenerate.
26173         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
26174
26175 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26176
26177         PR target/81151
26178         * config/i386/sse.md (round<mode>2): Renumber match_dup and
26179         operands indexes to avoid gap between operands and match_dups.
26180
26181 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26182
26183         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
26184         Increment Arith_shift and Arith_shift_reg by 1.
26185         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
26186         New tuning flag.
26187         * config/aarch64/aarch64.c (thunderx_tunings): Enable
26188         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
26189         (aarch64_strip_extend): Add new argument and test for it.
26190         (aarch64_cheap_mult_shift_p): New function.
26191         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
26192         add a cost if it is true.
26193         Update calls to aarch64_strip_extend.
26194         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
26195
26196 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26197
26198         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
26199         tunings.
26200         (thunderxt88): Likewise.
26201         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
26202         (thunderx_prefetch_tune): New variable.
26203         (thunderx2t99_prefetch_tune): Update for the correct values.
26204         (thunderxt88_tunings): New variable.
26205         (thunderx_tunings): Use thunderx_prefetch_tune instead of
26206         generic_prefetch_tune.
26207         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
26208
26209 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26210
26211         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
26212         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
26213         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
26214         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
26215         (aarch64_atomic_cas<mode>, GPI): Likewise.
26216
26217 2017-06-21  Martin Liska  <mliska@suse.cz>
26218
26219         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
26220         statements on cold and hot labels.
26221         * predict.c (tree_estimate_probability_bb): Remove the
26222         prediction from this place.
26223
26224 2017-06-21  Martin Liska  <mliska@suse.cz>
26225
26226         PR tree-optimization/79489
26227         * gimplify.c (maybe_add_early_return_predict_stmt): New
26228         function.
26229         (gimplify_return_expr): Call the function.
26230         * predict.c (tree_estimate_probability_bb): Remove handling
26231         of early return.
26232         * predict.def: Update comment about early return predictor.
26233         * gimple-predict.h (is_gimple_predict): New function.
26234         * predict.def: Change default value of early return to 66.
26235         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
26236         statements.
26237         * passes.def: Put pass_strip_predict_hints to the beginning of
26238         IPA passes.
26239
26240 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
26241
26242         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
26243         FUNCTION_DECL declarations.
26244         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
26245         declarations.
26246         (dwaf2out_decl): Likewise.
26247         * godump.c (go_early_global_decl): Skip call to the real debug hook
26248         for FUNCTION_DECL declarations.
26249         * passes.c (rest_of_decl_compilation): Skip call to the
26250         early_global_decl debug hook for FUNCTION_DECL declarations, unless
26251         -fdump-go-spec is passed.
26252
26253 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26254
26255         * config/i386/i386.c (struct builtin_isa): New field pure_p.
26256         Reorder for compactness.
26257         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
26258         (def_builtin_pure, def_builtin_pure2): New functions.
26259         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
26260
26261 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26262
26263         * match.pd (nop_convert): New predicate.
26264         ((A +- CST1) +- CST2): Allow some NOP conversions.
26265
26266 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26267
26268         PR c++/81130
26269         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
26270         with ctors/dtors if GOVD_SHARED is set.
26271
26272 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26273
26274         * config/aarch64/aarch64.md (movti_aarch64):
26275         Emit mov rather than orr.
26276         (movtf_aarch64): Likewise.
26277         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
26278         Emit mov rather than orr.
26279
26280 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26281
26282         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
26283         Swap alternatives, make integer dup more expensive.
26284
26285 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26286
26287         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
26288         Return true for non-tls symbols.
26289
26290 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
26291
26292         * config/aarch64/aarch64-cores.def (cortex-a55): New.
26293         (cortex-a75): Likewise.
26294         (cortex-a75.cortex-a55): Likewise.
26295         * config/aarch64/aarch64-tune.md: Regenerate.
26296         * doc/invoke.texi (-mtune): Document new values for -mtune.
26297
26298 2017-06-21  Tom de Vries  <tom@codesourcery.com>
26299
26300         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
26301         stack_size feature.
26302         (Effective-Target Keywords, Other attributes): Suggest using
26303         dg-add-options stack_size feature to get stack limit in stack_size
26304         effective target documentation.
26305
26306 2017-06-21  Julian Brown  <julian@codesourcery.com>
26307             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26308
26309         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
26310         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
26311         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
26312         reservation.
26313         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
26314         attribute type list for neon_multiply.
26315         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
26316         attribute type list for neon_multiply.
26317         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
26318         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
26319         attribute type list for neon_multiply.
26320         * config/arm/types.md (crypto_pmull): Add.
26321         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
26322         attribute type list.
26323
26324 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
26325
26326         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
26327         arm1176jzf-s.
26328
26329 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26330
26331         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
26332         to make sure not to dereference a NULL cost_classes_ptr pointer.
26333
26334 2017-06-20  Carl Love  <cel@us.ibm.com>
26335
26336         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26337         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
26338         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
26339         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
26340         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
26341         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
26342         VMULOSW): New enum "unspec" values.
26343         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
26344         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
26345         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
26346         altivec_vmulosw): New patterns.
26347         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
26348         VMULOSW): Add definitions.
26349
26350 2017-06-20  Julia Koval  <julia.koval@intel.com>
26351
26352         * config/i386/i386.c: Fix rounding expand for new pattern.
26353         * config/i386/subst.md: Fix pattern (parallel -> unspec).
26354
26355 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26356
26357         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
26358         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
26359
26360 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26361
26362         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
26363         feature string.
26364
26365 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26366
26367         * config/aarch64/aarch64-cores.def: Rearrange to sort by
26368         architecture, then by implementer ID.
26369         * config/aarch64/aarch64-tune.md: Regenerate.
26370
26371 2017-06-20  Richard Biener  <rguenther@suse.de>
26372
26373         PR middle-end/81097
26374         * fold-const.c (split_tree): Fold to type before negating.
26375
26376 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
26377
26378         * diagnostic-show-locus.c
26379         (selftest::test_fixit_deletion_affecting_newline): New function.
26380         (selftest::diagnostic_show_locus_c_tests): Call it.
26381
26382 2017-06-20  Andreas Schwab  <schwab@suse.de>
26383
26384         PR target/80970
26385         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
26386         instead of "+d".
26387
26388 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
26389
26390         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
26391         __ARM_FEATURE_COPROC according to support.
26392
26393 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26394
26395         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
26396         Rewritten to avoid overflow for > 32-bit pointers.
26397
26398         PR sanitizer/81125
26399         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
26400         by removing enum keyword.
26401         (ubsan_type_descriptor): Likewise.  Formatting fix.
26402
26403         PR target/81121
26404         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
26405         splitter): Require TARGET_SSE2 in the condition.
26406
26407 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
26408
26409         PR target/79799
26410         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
26411         for doing vector set of SFmode on ISA 3.0.
26412         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
26413         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
26414         element.
26415         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
26416         SFmode value into a V4SF variable that was extracted from another
26417         V4SF variable without converting the element to double precision
26418         and back to single precision vector format.
26419         (vsx_insert_extract_v4sf_p9_2): Likewise.
26420
26421 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
26422
26423         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
26424         in UWHI to avoid undefined overflow.
26425
26426         PR sanitizer/81125
26427         * ubsan.h (enum ubsan_encode_value_phase): New.
26428         (ubsan_encode_value): Change second argument to
26429         enum ubsan_encode_value_phase with default value of
26430         UBSAN_ENCODE_VALUE_GENERIC.
26431         * ubsan.c (ubsan_encode_value): Change second argument to
26432         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
26433         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
26434         create_tmp_var_raw instead of create_tmp_var and use a
26435         TARGET_EXPR.
26436         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
26437         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
26438         ubsan_encode_value callers.
26439
26440         PR sanitizer/81111
26441         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
26442         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
26443         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
26444
26445 2017-06-19  Richard Biener  <rguenther@suse.de>
26446
26447         PR middle-end/81118
26448         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
26449         estimates if we changed anything.
26450
26451 2017-06-19  Richard Biener  <rguenther@suse.de>
26452
26453         PR tree-optimization/80887
26454         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
26455         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
26456         simplified lookups, then reset mprts_hook.
26457         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
26458         simplifying.
26459         (try_to_simplify): Likewise.
26460
26461 2017-06-19  Martin Liska  <mliska@suse.cz>
26462
26463         PR sanitizer/80879
26464         * gimplify.c (gimplify_switch_expr):
26465         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
26466
26467 2017-06-19  Martin Liska  <mliska@suse.cz>
26468
26469         * doc/install.texi: Document that PGO runs in 4 stages.
26470
26471 2017-06-19  Martin Liska  <mliska@suse.cz>
26472
26473         PR ipa/80732
26474         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
26475         to dispatcher function name.
26476         * multiple_target.c (replace_function_decl): New function.
26477         (create_dispatcher_calls): Redirect both edges and references.
26478
26479 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
26480
26481         * profile-count.c (profile_count::dump): Dump quality.
26482         (profile_count::differs_from_p): Update for unsigned val.
26483         * profile-count.h (profile_count_quality): New enum.
26484         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
26485
26486 2017-06-19  Richard Biener  <rguenther@suse.de>
26487
26488         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
26489         struct function as arg.
26490         (estimate_numbers_of_iterations): Export overload with loop arg.
26491         (free_numbers_of_iterations_estimates_loop): Use an overload of
26492         free_numbers_of_iterations_estimates instead.
26493         * tree-cfg.c (remove_bb): Adjust.
26494         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
26495         * tree-parloops.c (gen_parallel_loop): Likewise.
26496         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
26497         Likewise.
26498         (tree_unroll_loops_completely): Likewise.
26499         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
26500         Use an overload instead and export.
26501         (estimated_loop_iterations): Adjust.
26502         (max_loop_iterations): Likewise.
26503         (likely_max_loop_iterations): Likewise.
26504         (estimate_numbers_of_iterations): Take struct function as arg
26505         and adjust.
26506         (loop_exits_before_overflow): Adjust.
26507         (free_numbers_of_iterations_estimates_loop): Use an overload.
26508         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
26509         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
26510
26511 2017-06-19  Richard Biener  <rguenther@suse.de>
26512
26513         PR ipa/81112
26514         * ipa-prop.c (find_constructor_constant_at_offset): Handle
26515         RANGE_EXPR conservatively.
26516
26517 2017-06-16  Carl Love  <cel@us.ibm.com>
26518
26519         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26520         definitions for vec_float, vec_float2, vec_floato,
26521         vec_floate built-ins.
26522         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
26523         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
26524         floate.
26525         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
26526         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
26527         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
26528         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
26529         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
26530         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
26531         vec_floato): Add builtin defines.
26532         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
26533         Update the built-in documentation file for the new built-in
26534         functions.
26535
26536 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26537
26538         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
26539         (mthumb): Mark as the negative of -marm.
26540
26541 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26542
26543         * doc/invoke.texi (ARM Options, -mcpu): Document supported
26544         extension options.
26545         (ARM Options, -mtune): Document that this accepts the same
26546         extension options as -mcpu.
26547         (ARM Options, -mfpu): Document addition of -mfpu=auto.
26548
26549 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26550
26551         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
26552         permitted extensions.
26553
26554 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26555
26556         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
26557         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
26558         (armv8-m.main): Add option +nodsp.
26559         * config/arm/arm-cpu-cdata.h: Regenerated.
26560
26561 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26562
26563         * config/arm/t-fuchsia: New file.
26564         * config.gcc (arm*-*-fuchsia*): Use it.
26565
26566 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26567
26568         * config/arm/t-symbian: Rewrite for new option infrastructure.
26569
26570 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26571
26572         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
26573         (MULTILIB_REQUIRED): Likewise.
26574
26575 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26576
26577         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
26578         (MULTILIB_RESUE): Likewise.
26579         (MULTILIB_MATCHES): Likewise.
26580         (MULTLIB_REQUIRED): Likewise.
26581
26582 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26583
26584         * config/arm/t-rtems: Rewrite for new option framework.
26585
26586 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26587
26588         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
26589         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
26590         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
26591         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
26592         * config/arm/t-multilib: ... here.
26593         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
26594         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
26595         armv7-a and armv8*-a when A-profile libraries have not been built.
26596         * config/arm/t-rmprofile: Rewrite.
26597
26598 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26599
26600         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
26601         with a backslash.  Remove the backslash after substituting unescaped
26602         periods.
26603         * doc/fragments.texi (MULTILIB_REUSE): Document it.
26604
26605 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26606
26607         * config.gcc: (arm*-*-*): When building a-profile libraries, force
26608         the driver to pass through the default setting of -mfloat-abi.
26609         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
26610         rather than NULL.
26611         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
26612         (all_feat_combs): New rule.
26613         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
26614         default libraries.
26615         * config/arm/t-aprofile: Rewrite.
26616
26617 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26618
26619         * config/arm/arm.h (FPUTYPE_AUTO): Define.
26620         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
26621         fpu is not specified by the user/command-line.
26622         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
26623         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
26624         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
26625         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
26626         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
26627         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
26628
26629 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26630
26631         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
26632         * config/arm/t-arm-elf: Rewritten.
26633
26634 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26635
26636         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
26637         have some floating-point instructions.
26638         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
26639         (TARGET_MAYBE_HARD_FLOAT): New macro.
26640         * config/arm/arm-builtins.c (arm_init_builtins): Use
26641         TARGET_MAYBE_HARD_FLOAT.
26642         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
26643
26644 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26645
26646         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
26647         (configargs.h): Include it.
26648         (arm_print_hint_for_fpu_option): New function.
26649         (arm_parse_fpu_option): New function.
26650         (candidate_extension): New class.
26651         (arm_canon_for_multilib): New function.
26652         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
26653         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
26654         (ARCH_CANONICAL_SPECS): New macro.
26655         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
26656
26657 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26658
26659         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
26660         are set after handling multilib fragments.  Set target_cpu_default2
26661         from with_cpu.
26662
26663 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26664
26665         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
26666         cpu name.
26667         (arm*-*-*): Set target_cpu_default2 to a quoted string.
26668         * config/arm/parsecpu.awk (check_cpu): Validate any extension
26669         options.
26670         (check_arch): Likewise.
26671         * config/arm/arm.c (arm_configure_build_target): Handle
26672         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
26673         options in the default.
26674
26675 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26676
26677         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
26678         when an option is an alias of another.
26679         * config/arm/parsecpu.awk (optalias): New parser token.
26680         (gen_comm_data): Mark non-alias options as such.  Emit entries
26681         for extension aliases.
26682         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
26683         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
26684         (armv6kz, armv6zk, armv6t2): Likewise.
26685         (armv7): Make vfpv3-d16 an alias.
26686         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
26687         canonical order.
26688         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
26689         Sort in canonical order.
26690         (armv8-a): Sort in canonical order.
26691         (armv8.1-a, armv8.2-a):  Likewise.
26692         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
26693         canonical order.
26694         (cortex-a9): Sort in canonical order.
26695         * config/arm/arm.c (selftests.h): Include it.
26696         (arm_test_cpu_arch_data): New function.
26697         (arm_run_self_tests): New function.
26698         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
26699         (targetm): Move declaration to the end of the file.
26700         * arm-cpu-cdata.h: Regenerated.
26701
26702 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26703
26704         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
26705         call to target_mode_check describing the type of option passed.
26706         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
26707         (arm_target_thumb_only): Use arm_parse_arch_option_name or
26708         arm_parse_cpu_option_name to match parameters against list of
26709         available targets.
26710         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
26711         arm_arch_core_flags data structure.
26712         * config/arm/arm-cpu_cdata.h: Regenerated.
26713
26714 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26715
26716         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
26717         config/arm/arm.c.
26718         (arm_print_hint_for_cpu_option): Likewise.
26719         (arm_print_hint_for_arch_option): Likewise.
26720         (arm_parse_cpu_option_name): Likewise.
26721         (arm_parse_arch_option_name): Likewise.
26722         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
26723         of entries in the all_fpus list.
26724         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
26725         (arm_parse_cpu_option_name): Declare.
26726         (arm_parse_arch_option_name): Declare.
26727         (arm_parse_option_features): Declare.
26728         (arm_intialize_isa): Declare.
26729         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
26730         data tables to ...
26731         (gen_comm_data): ... here.  Make definitions non-static.
26732         * config/arm/arm-cpu-data.h: Regenerated.
26733         * config/arm/arm-cpu-cdata.h: Regenerated.
26734
26735 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26736
26737         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
26738         (cpu_arch_extension): New structure.
26739         (cpu_arch_option, arch_option, cpu_option): New structures.
26740         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
26741         architecture types.
26742         (gen_data): Generate new format data tables.
26743         * config/arm/arm.c (cpu_tune): New structure.
26744         (cpu_option, processors): Delete.
26745         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
26746         (arm_print_hint_for_cpu_option): ... this and ...
26747         (arm_print_hint_for_arch_option): ... this.
26748         (arm_parse_arch_cpu_name): Delete.  Replace with ...
26749         (arm_parse_cpu_option_name): ... this and ...
26750         (arm_parse_arch_option_name): ... this.
26751         (arm_unrecognized_feature): Change type of target parameter to
26752         cpu_arch_option.
26753         (arm_parse_arch_cpu_features): Delete.  Replace with ...
26754         (arm_parse_option_features): ... this.
26755         (arm_configure_build_target): Rework to use new configuration data
26756         tables.
26757         (arm_print_tune_info): Rework for new configuration data tables.
26758         * config/arm/arm-cpu-data.h: Regenerated.
26759         * config/arm/arm-cpu.h: Regenerated.
26760
26761 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26762
26763         * Makefile.in (OBJS): Move sbitmap.o from here ...
26764         (OBJS-libcommon): ... to here.
26765
26766 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26767
26768         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
26769         (ISA_ALL_CRYPTO): New macro.
26770         (ISA_ALL_SIMD): New macro
26771         (ISA_ALL_FP): New macro.
26772         * config/arm/arm.c (fpu_bitlist): Update initializer.
26773         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
26774         simd or fp.
26775         (arm9e): Add fpu.  Add option for nofp
26776         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
26777         (arm926ej-s, arm1026ej-s): Likewise.
26778         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
26779         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
26780         neon-fp16, neon-vfpv4, nofp and nosimd.
26781         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
26782         (cortex-a8): Add fpu.  Add option for nofp.
26783         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
26784         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
26785         (cortex-r4f): Add fpu.
26786         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
26787         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
26788         for nofp.
26789         (cortex-r8): Likewise.
26790         (cortex-m4): Add fpu.  Add option for nofp.
26791         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
26792         (cortex-a17.cortex-a7): Likewise.
26793         (cortex-a32): Add fpu.  Add options for crypto and nofp.
26794         (cortex-a35, cortex-a53): Likewise.
26795         (cortex-a57): Add fpu.  Add option for crypto.
26796         (cortex-a72, cortex-a73): Likewise.
26797         (exynos-m1): Likewise.
26798         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
26799         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
26800         (cortex-m33): Add fpu.  Add option for nofp.
26801         * config/arm/arm-cpu-cdata.h: Regenerated
26802         * config/arm/arm-cpu-data.h: Regenerated.
26803
26804 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26805
26806         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
26807         (armv5te, armv5tej): Likewise.
26808         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
26809         (armv7): Add options fp and vfpv3-d16.
26810         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
26811         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
26812         nofp and nosimd.
26813         (armv7ve): Likewise.
26814         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
26815         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
26816         (armv8-a): Add nocrypto option.
26817         (armv8.1-a, armv8.2-a): Likewise.
26818         (armv8-m.main): add options fp, fp.dp and nofp.
26819
26820 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26821
26822         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
26823         nofp.
26824         (armv8-a+crc): Delete.
26825         (armv8.1-a): Add options simd, crypto and nofp.
26826         (armv8.2-a): Add options fp16, simd, crypto and nofp.
26827         (armv8.2-a+fp16): Delete.
26828         (armv8-m.main): Add option dsp.
26829         (armv8-m.main+dsp): Delete.
26830         (cortex-a8): Add fpu.  Add nofp option.
26831         (cortex-a9): Add fpu.  Add nofp and nosimd options.
26832         * config/arm/parsecpu.awk (gen_data): Generate option tables and
26833         link to main cpu and architecture data structures.
26834         (gen_comm_data): Only put isa attributes from the main architecture
26835         in common tables.
26836         (option): New statement for architecture and CPU entries.
26837         * arm.c (struct cpu_option): New structure.
26838         (struct processors): Add entry for options.
26839         (arm_unrecognized_feature): New function.
26840         (arm_parse_arch_cpu_name): Ignore any characters after the first
26841         '+' character.
26842         (arm_parse_arch_cpu_feature): New function.
26843         (arm_configure_build_target): Separate out any CPU and architecture
26844         features and parse separately.  Don't error out if -mfpu=auto is
26845         used with only an architecture string.
26846         (arm_print_asm_arch_directives): New function.
26847         (arm_file_start): Call it.
26848         * config/arm/arm-cpu-cdata.h: Regenerated.
26849         * config/arm/arm-cpu-data.h: Likewise.
26850         * config/arm/arm-tables.opt: Likewise.
26851
26852 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26853
26854         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
26855         assembler when it is not -mfpu=auto.
26856
26857 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26858
26859         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
26860         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
26861         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
26862         (ASM_CPU_SPEC): Rewrite.
26863         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
26864         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
26865         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
26866         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
26867         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
26868         copied string is NUL-terminated.  Also strip any characters prefixed
26869         by '+'.
26870         (arm_rewrite_selected_arch): New function.
26871         (arm_rewrite_march): New function.
26872
26873 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26874
26875         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
26876         (x_arm_cpu_string, x_arm_tune_string): Likewise.
26877         (march, mcpu, mtune): Convert to string-based options.
26878         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
26879         (arm_parse_arch_cpu_name): New function.
26880         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
26881         identify selected architecture or CPU.
26882         (arm_option_save): New function.
26883         (TARGET_OPTION_SAVE): Redefine.
26884         (arm_option_restore): Restore string options.
26885         (arm_option_print): Print string options.
26886
26887 2017-06-16  Martin Sebor  <msebor@redhat.com>
26888
26889         PR tree-optimization/80933
26890         PR tree-optimization/80934
26891         * builtins.c (fold_builtin_3): Do not handle bcmp here.
26892         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
26893         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
26894         (gimple_fold_builtin): Call them.
26895
26896 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26897
26898         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
26899         as unlikely; update profile.
26900
26901 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26902
26903         * predict.c (force_edge_cold): Handle declaring edges impossible
26904         more aggresively.
26905
26906 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26907
26908         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
26909         profile.
26910         (try_unroll_loop_completely): Fix reporting.
26911
26912 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26913
26914         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
26915
26916 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
26917
26918         PR target/71778
26919         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
26920         if given a non-constant argument for an intrinsic which requires a
26921         constant.
26922
26923 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26924
26925         * profile.c (compare_freqs): New function.
26926         (branch_prob): Sort edge list.
26927         (find_spanning_tree): Assume that the list is priority sorted.
26928
26929 2017-06-16  Richard Biener  <rguenther@suse.de>
26930
26931         PR tree-optimization/81090
26932         * passes.def (pass_record_bounds): Remove.
26933         * tree-pass.h (make_pass_record_bounds): Likewise.
26934         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
26935         make_pass_record_bounds): Likewise.
26936         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
26937         not free niter estimates at the beginning but at the end.
26938         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
26939
26940 2017-06-16  Richard Biener  <rguenther@suse.de>
26941
26942         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
26943         initializer to workaround ICE in host GCC 4.8.
26944
26945 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26946
26947         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
26948         counts.
26949         (clone_inlined_nodes): Update.
26950
26951 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26952
26953         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
26954         prefetch settings, and enable prefetching by default at -O3.
26955
26956 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26957
26958         * config/aarch64/aarch64.c (aarch64_override_options_internal):
26959         Set flag_prefetch_loop_arrays according to tuning data.
26960
26961 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26962
26963         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
26964         New tune structure.
26965         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
26966         [Unrelated to main purpose of the patch] Place the pointer field last
26967         to enable type checking errors when tune structure are wrongly merged.
26968         * config/aarch64/aarch64.c (generic_prefetch_tune,)
26969         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
26970         (thunderx2t99_prefetch_tune): New tune constants.
26971         (tune_params *_tunings): Update all tunings (no functional change).
26972         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
26973         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
26974         from tunings structures.
26975
26976 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
26977
26978         PR sanitizer/81094
26979         * ubsan.c (instrument_null): Add T argument, use it instead
26980         of computing it based on IS_LHS.
26981         (instrument_object_size): Likewise.
26982         (pass_ubsan::execute): Adjust instrument_null and
26983         instrument_object_size callers to pass gimple_get_lhs or
26984         gimple_assign_rhs1 result to it.  Use instrument_null instead of
26985         calling get_base_address and instrument_mem_ref.  Handle
26986         aggregate call arguments for object-size sanitization.
26987
26988 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
26989
26990         PR tree-optimization/81089
26991         * tree-vrp.c (is_masked_range_test): Validate operands of
26992         subexpression.
26993
26994 2017-06-15  Martin Sebor  <msebor@redhat.com>
26995
26996         PR c++/80560
26997         * dumpfile.c (dump_register): Avoid calling memset to initialize
26998         a class with a default ctor.
26999         * gcc.c (struct compiler): Remove const qualification.
27000         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
27001         * hash-table.h: Ditto.
27002         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
27003           assignment.
27004         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
27005         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
27006         default ctor.
27007         * params.h (struct param_info): Make struct members non-const.
27008         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
27009         with default initialization.
27010         * vec.h (vec_copy_construct, vec_default_construct): New helper
27011         functions.
27012         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
27013         with vec_copy_construct.
27014         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
27015         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
27016         * doc/invoke.texi (-Wclass-memaccess): Document.
27017
27018 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27019
27020         * emit-rtl.h (is_leaf): Update comment about local
27021         register allocator.
27022
27023 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
27024
27025         PR target/78818
27026         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
27027         for a variable to have a section before checking if the section has a
27028         name.
27029         Set section to.persistent if persistent attribute is set.
27030         Warn if .persistent attribute is used on an automatic variable.
27031
27032 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
27033
27034         PR rtl-optimization/80474
27035         * reorg.c (update_block): Do not ignore instructions in a delay slot.
27036
27037 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
27038
27039         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
27040         of REGNO.
27041
27042 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
27043
27044         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
27045         (casesi): Emit bounds checking as RTL.
27046         (casesi_internal_mips16_<mode>): Remove bounds checking.
27047
27048 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
27049
27050         * config/xtensa/xtensa.c (xtensa_option_override): Append
27051         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
27052         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
27053          xtensa_doloop_hooks): Define unconditionally.
27054         (xtensa_reorg_loops): Only call reorg_loops in the presence of
27055         TARGET_LOOPS.
27056         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
27057         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
27058         for it in xtensa_option_override.
27059         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
27060          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
27061
27062 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
27063
27064         * doc/cppopts.texi: Document '-' special value to -MF.
27065
27066 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
27067
27068         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
27069         (cortex_a53_fconst): Likewise.
27070         (cortex_a53_fpmul): Likewise.
27071         (cortex_a53_f_load_64): Likewise.
27072         (cortex_a53_f_load_many): Likewise.
27073         (cortex_a53_advsimd_alu): Likewise.
27074         (cortex_a53_advsimd_alu_q): Likewise.
27075         (cortex_a53_advsimd_mul): Likewise.
27076         (cortex_a53_advsimd_mul_q): Likewise.
27077         (fpmac bypass): Add new bypass for fpmac-fpmac case.
27078         Add missing fmul, r2f_cvt and fconst cases.
27079
27080 2017-06-14  Richard Biener  <rguenther@suse.de>
27081
27082         PR middle-end/81088
27083         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
27084         literal constants.
27085         (fold_binary_loc): When associating do not treat pre-existing
27086         TREE_OVERFLOW on literal constants as a reason to allow
27087         TREE_OVERFLOW on associated literal constants.
27088
27089 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27090
27091         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
27092         (MASK_FEATURES): New macro.
27093         * config/sparc/sparc.c (sparc_option_override): Remove the special
27094         handling of -mfpu and generalize it to all MASK_FEATURES switches.
27095
27096 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27097
27098         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
27099         a division of 0 if non-call exceptions are enabled.
27100
27101 2017-06-14  Andrew Pinski  <apinski@cavium.com>
27102             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
27103
27104         PR target/71663
27105         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
27106         Improve vector initialization code gen for only variable case.
27107
27108 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27109
27110         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
27111
27112 2017-06-14  Richard Biener  <rguenther@suse.de>
27113
27114         PR tree-optimization/81083
27115         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
27116         as values.
27117
27118 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27119
27120         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
27121         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
27122         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
27123         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
27124         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
27125         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
27126
27127 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27128
27129         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
27130         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
27131
27132 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27133
27134         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
27135
27136 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27137
27138         * config/rs6000/t-rtems: Don't handle SPE.
27139
27140 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27141
27142         * config/rs6000/t-linux: Don't handle SPE.
27143
27144 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27145
27146         * config/rs6000/eabispe.h: Delete file.
27147
27148 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27149
27150         * config/rs6000/t-spe: Delete file.
27151
27152 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27153
27154         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
27155         (rs6000_legitimate_offset_address_p): Return false for anything in
27156         V2SImode or V2SFmode.
27157
27158 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27159
27160         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
27161         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
27162         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
27163         and V4HImode.
27164         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
27165         (rs6000_legitimate_offset_address_p): Ditto.
27166         (rs6000_emit_move): Ditto.
27167         (rs6000_init_builtins): Remove V4HI_type_node.
27168
27169 2017-06-13  Martin Liska  <mliska@suse.cz>
27170
27171         PR sanitize/78204
27172         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
27173         (gate_asan): Likewise.
27174         * asan.h (asan_no_sanitize_address_p): Remove the function.
27175         (sanitize_flags_p): New function.
27176         * builtins.def: Fix coding style.
27177         * common.opt: Use renamed enum value.
27178         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
27179         * doc/extend.texi: Document no_sanitize attribute.
27180         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
27181         to SANITIZE_UNDEFINED_NONDEFAULT.
27182         * gcc.c (sanitize_spec_function): Use the renamed enum value.
27183         * gimple-fold.c (optimize_atomic_compare_exchange_p):
27184         Use sanitize_flags_p.
27185         * gimplify.c (gimplify_function_tree): Likewise.
27186         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
27187         * opts.c (parse_no_sanitize_attribute): New function.
27188         (common_handle_option): Use renamed enum value.
27189         * opts.h (parse_no_sanitize_attribute): Declare.
27190         * tree.c (sanitize_flags_p): New function.
27191         * tree.h: Declared here.
27192         * tsan.c: Use sanitize_flags_p.
27193         * ubsan.c (ubsan_expand_null_ifn): Likewise.
27194         (instrument_mem_ref): Likewise.
27195         (instrument_bool_enum_load): Likewise.
27196         (do_ubsan_in_current_function): Remove the function.
27197         (pass_ubsan::execute): Use sanitize_flags_p.
27198         * ubsan.h: Remove do_ubsan_in_current_function
27199         * tree-cfg.c (print_no_sanitize_attr_value): New function.
27200         (dump_function_to_file): Use it here.
27201
27202 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27203
27204         PR tree-optimization/80803
27205         PR tree-optimization/81063
27206         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
27207         (propagate_subaccesses_across_link): Enqueue subtree whenever
27208         necessary instead of relying on the caller.
27209
27210 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27211
27212         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
27213         that have a first_link.
27214         (sort_and_splice_var_accesses): Do not check first_link before
27215         enquing.
27216         (subtree_mark_written_and_enqueue): Likewise.
27217         (propagate_all_subaccesses): Likewise and do not stop at first
27218         parent with a first_link.
27219
27220 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27221
27222         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
27223         instead of f.
27224
27225 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27226
27227         * match.pd: New pattern.
27228
27229 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27230
27231         * tree-vrp.c (is_masked_range_test): New function.
27232         (register_edge_assert_for): Determine ranges for
27233         some bit tests.
27234
27235 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27236
27237         PR tree-optimization/67328
27238         * fold-const.c (maskable_range_p): New function.
27239         (build_range_check): Generate bittests if possible.
27240
27241 2017-06-13  Martin Liska  <mliska@suse.cz>
27242
27243         * gimple-pretty-print.c (dump_probability): Add new argument.
27244         (dump_edge_probability): Dump both probability and count.
27245         (dump_gimple_label): Likewise.
27246         (dump_gimple_bb_header): Likewise.
27247
27248 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
27249
27250         PR target/81072
27251         * config/avr/avr-devices.c: Fix indentation.
27252         * config/avr/gen-avr-mmcu-specs.c: Dito.
27253
27254 2017-06-13  Richard Biener  <rguenther@suse.de>
27255
27256         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
27257         instead get vector type from stmt_info.
27258         (vectorizable_reduction): Adjust.  Remove dead code.
27259
27260 2017-06-13  Richard Biener  <rguenther@suse.de>
27261
27262         PR middle-end/81065
27263         * fold-const.c (extract_muldiv_1): Remove bogus distribution
27264         case of C * (x * C2 + C3).
27265         (fold_addr_of_array_ref_difference): Properly fold index difference.
27266
27267 2017-06-12  David S. Miller  <davem@davemloft.net>
27268
27269         PR target/80968
27270         * config/sparc/sparc.md (return expander): Emit frame blockage if
27271         function uses alloca.
27272
27273 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
27274
27275         * combine.c (make_field_assignment): Check len rather than the mode
27276         precision when calling force_to_mode.
27277
27278 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
27279
27280         Support multilibs and devices that see flash in RAM address range.
27281
27282         PR target/81072
27283         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
27284         (avr_mcu_t) <flash_pm_offset>: New field.
27285         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
27286         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
27287         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
27288         (AVR_TINY_PM_OFFSET): Remove macro.
27289         * config/avr/avr.opt (-mshort-calls): New option.
27290         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
27291         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
27292         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
27293         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
27294         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
27295         instead of avr_arch->have_jmp_call.
27296         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
27297         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
27298         avr_arch->flash_pm_offset to define.
27299         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
27300         new field flash_pm_offset.  Add entry for avrxmega3.
27301         (avr_texinfo): Add entry for avrxmega3.
27302         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
27303         attiny212, attiny214,
27304         attiny412, attiny414, attiny416, attiny417,
27305         attiny814, attiny816, attiny817,
27306         attiny1614, attiny1616, attiny1617,
27307         attiny3214, attiny3216, attiny3217.
27308         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
27309         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
27310         (avr_print_operand_address) [AVR_TINY]: Same.
27311         (avr_asm_init_sections) <readonly_data_section>: Only patch
27312         callback if avr_arch->flash_pm_offset = 0.
27313         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
27314         for rodata if avr_arch->flash_pm_offset != 0.
27315         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
27316         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
27317         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
27318         (m_options): Append opt_rcall.
27319         (m_dirnames): Append dir_rcall.
27320         * config/avr/t-multilib: Regenerate.
27321
27322         * configure.ac [target=avr]: Check whether avrxmega3 default
27323         linker description file works as needed.
27324         * configure: Regenerate.
27325         * doc/avr-mmcu.texi: Regenerate.
27326         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
27327         <__AVR_ARCH__>: Document avrxmega3 and 103.
27328         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
27329         <__AVR_SHORT_CALLS__>: Document it.
27330         <__AVR_PM_BASE_ADDRESS__>: Document it.
27331         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
27332         (AVR Variable Attributes) <progmem>: Document this is
27333         not needed for avrxmega3.
27334         (AVR Named Address Spaces) <__flash>: Dito.
27335
27336 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
27337
27338         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
27339
27340 2017-06-12  Doug Rupp  <rupp@adacore.com>
27341
27342         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
27343         Append vxworks-stdint.h to the tm_file list.
27344         * config/vxworks-stdint.h: New file.
27345
27346 2017-06-12  Martin Liska  <mliska@suse.cz>
27347
27348         PR tree-optimization/81041
27349         * tree-profile.c (gimple_gen_ic_func_profiler):
27350         Create an extra BB in profile-generate
27351         (gimple_gen_time_profiler): Likewise.
27352
27353 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
27354
27355         PR tree-optimization/81003
27356         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
27357         (update_range_test): Use it instead of force_gimple_operand_gsi.
27358
27359 2017-06-12  Richard Biener  <rguenther@suse.de>
27360
27361         PR tree-optimization/81053
27362         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
27363         with backedge value not defined in loop.  Simplify def stmt
27364         compute.
27365
27366 2017-06-11  Tom de Vries  <tom@codesourcery.com>
27367
27368         PR target/79939
27369         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
27370         Return true.
27371         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
27372         nvptx_cannot_force_const_mem.
27373
27374 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27375
27376         * opts.c (finish_options): Move test for flag_split_stack after
27377         it has been initialized.
27378
27379 2017-06-11  Jason Merrill  <jason@redhat.com>
27380
27381         * tree.h (id_equal): New.
27382         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
27383         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
27384         instead of strcmp of IDENTIFIER_POINTER.
27385
27386 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27387
27388         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
27389         (mark_all_inlined_calls_cdtor): Fix formating.
27390         (inline_transform): Rescale profile before inlining.
27391
27392 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27393
27394         * cgraph.h (cgraph_edge::clone): Update prototype.
27395         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
27396         (cgraph_node::create_clone): Update.
27397         (cgraph_node::create_version_clone): Update.
27398         * tree-inline.c (copy_bb): Update.
27399         (expand_call_inline): Update.
27400
27401 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27402
27403         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
27404         factored out from ...
27405         (rs6000_emit_prologue): ... here.
27406
27407 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27408
27409         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
27410         factored out from ...
27411         (rs6000_emit_prologue): ... here.
27412
27413 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27414
27415         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
27416         edge counts.
27417         (handle_missing_profiles): Fix computation of tp_first_run.
27418         (counts_to_freqs): Do not touch freqs when count is 0.
27419
27420 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27421
27422         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
27423         profile.
27424
27425 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27426
27427         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
27428         attributes): Document signal effective target.
27429
27430 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27431
27432         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
27433         Document effective target stack_size.
27434
27435 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
27436
27437         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
27438         to the edit_context if they can be auto-applied.
27439
27440 2017-06-9  Ian Lance Taylor  <iant@golang.org>
27441
27442         * opts.c (finish_options): If -fsplit-stack, disable implicit
27443         -forder-blocks-and-partition.
27444         * doc/invoke.texi (Optimize Options): Document that when using
27445         -fsplit-stack -forder-blocks-and-partition is not implicitly
27446         enabled.
27447
27448 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27449
27450         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
27451         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
27452         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
27453         * builtins.def (abort, trap, unreachable): Declare cold.
27454         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
27455         * tree-core.h (ECF_COLD): New.
27456         * tree.c (set_call_expr_flags): Handle ECF_COLD.
27457         (build_common_builtin_nodes): Mark unreachable and abort as cold.
27458
27459 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27460
27461         * predict.c (unlikely_executed_stmt_p): Cleanup.
27462
27463 2017-06-09  Richard Biener  <rguenther@suse.de>
27464
27465         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
27466         model if the ref is always written to.
27467
27468 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27469
27470         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
27471
27472 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27473
27474         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
27475         than udiv.
27476
27477 2017-06-09  Tom de Vries  <tom@codesourcery.com>
27478
27479         PR target/80855
27480         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
27481         "target cannot support label values" when encountering LABEL_REF.
27482
27483 2017-06-09  Martin Liska  <mliska@suse.cz>
27484
27485         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
27486         (gimple_gen_ic_func_profiler): Emit direct comparison
27487         of __gcov_indirect_call_callee with NULL.
27488         (gimple_gen_time_profiler): Change probability from
27489         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
27490
27491 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27492
27493         * profile.c (edge_gcov_counts): Turn to pointer.
27494         (compute_branch_probabilities, compute_branch_probabilities): Update.
27495         (branch_prob): Do not clear edge_gcov_count.
27496         * profile.h (edge_gcov_counts): Turn to pointer.
27497         (edge_gcov_count): Update.
27498
27499 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27500
27501         * gimple.h (gimple_check_failed): Mark cold.
27502
27503 2017-06-09  Richard Biener  <rguenther@suse.de>
27504
27505         PR tree-optimization/66623
27506         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
27507         refactor check_reduction into two parts, properly computing
27508         whether we have to check reduction validity for outer loop
27509         vectorization.
27510
27511 2017-06-09  Richard Biener  <rguenther@suse.de>
27512
27513         PR tree-optimization/79483
27514         * graphite-scop-detection.c (order): New global.
27515         (get_order): Compute bb to order mapping that satisfies code
27516         generation constraints.
27517         (cmp_pbbs): New helper.
27518         (build_scops): Start domwalk at entry block, sort generated
27519         pbbs.
27520
27521 2017-06-09  Richard Biener  <rguenther@suse.de>
27522
27523         PR middle-end/81007
27524         * ipa-polymorphic-call.c
27525         (ipa_polymorphic_call_context::restrict_to_inner_class):
27526         Skip FIELD_DECLs with error_mark_node type.
27527         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
27528         last again.
27529
27530 2017-06-09  Martin Liska  <mliska@suse.cz>
27531
27532         * predict.c (struct branch_predictor): New struct.
27533         (test_prediction_value_range): New test.
27534         (predict_c_tests): New function.
27535         * selftest-run-tests.c (selftest::run_tests): Run the function.
27536         * selftest.h: Declare new tests.
27537
27538 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
27539
27540         PR target/80966
27541         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
27542         gen_add3_insn did not fail.
27543         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
27544         r0, construct that number in a temporary reg and add that reg to r0.
27545         If asked to put the result in r0 as well, fail.
27546
27547 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
27548
27549         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27550         for early expansion of vec_eqv.
27551
27552 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
27553
27554         PR middle-end/81005
27555         * ubsan.c (instrument_null): Avoid pointless code temporary.
27556         (pass_ubsan::execute): Instrument aggregate arguments of calls.
27557
27558 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
27559
27560         PR target/81015
27561         Revert:
27562         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
27563
27564         PR target/59874
27565         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
27566         (*clzhi2): Ditto.
27567
27568 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27569
27570         * predict.c (unlikely_executed_edge_p): Move ahead.
27571         (probably_never_executed_edge_p): Use it.
27572
27573 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27574
27575         PR middle-end/79988
27576         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
27577         gimple_call_builtin_p call.
27578
27579 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27580
27581         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
27582         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
27583         rtl_check_failed_type2, rtl_check_failed_code1,
27584         rtl_check_failed_code2, rtl_check_failed_code_mode,
27585         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
27586         rtvec_check_failed_bounds, rtl_check_failed_flag,
27587         _fatal_insn_not_found, _fatal_insn): Likewise.
27588         * tree.h (tree_contains_struct_check_failed,
27589         tree_check_failed, tree_not_check_failed,
27590         tree_class_check_failed, tree_range_check_failed,
27591         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
27592         tree_vec_elt_check_failed, phi_node_elt_check_failed,
27593         tree_operand_check_failed, omp_clause_check_failed,
27594         omp_clause_operand_check_failed, omp_clause_range_check_failed):
27595         Likewise.
27596
27597 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27598
27599         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
27600         flag_branch_probabilities.
27601         * ipa-inline.c (edge_badness): Likewise.
27602         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
27603         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
27604         * predict.c (maybe_hot_frequency_p): Likewise.
27605         (probably_never_executed): Likewise.
27606         * sched-ebb.c (schedule_ebbs): Likewise.
27607         * sched-rgn.c (find_single_block_region): Likewise.
27608         * tracer.c (tail_duplicate): Likewise.
27609
27610 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27611
27612         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
27613         longer requires x_flag_profile_use.
27614
27615 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27616
27617         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
27618         instead of flag_reorder_blocks_and_partition.
27619         * dbxout.c (dbxout_function_end): Likewise.
27620         * dwarf2out.c (gen_subprogram_die): Likewise.
27621         * haifa-sched.c (sched_create_recovery_edges): Likewise.
27622         * hw-doloop.c (reorg_loops): Likewise.
27623         * varasm.c (assemble_start_function,
27624         assemble_end_function): Likewise.
27625         (decide_function_section): Do not check for
27626         flag_reorder_blocks_and_partition.
27627
27628 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27629
27630         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
27631         New function.
27632         (chkp_get_hard_register_fake_addr_expr): Ditto.
27633         (chkp_build_addr_expr): Add check for hard reg case.
27634         (chkp_parse_array_and_component_ref): Ditto.
27635         (chkp_find_bounds_1): Ditto.
27636         (chkp_process_stmt): Don't generate bounds store for
27637         hard reg case.
27638
27639 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27640
27641         * predict.c (maybe_hot_bb_p): Do not check profile status.
27642         (maybe_hot_edge_p): Likewise.
27643         (probably_never_executed): Check for zero counts even if profile
27644         is not read.
27645         (unlikely_executed_edge_p): New function.
27646         (unlikely_executed_stmt_p): New function.
27647         (unlikely_executed_bb_p): New function.
27648         (set_even_probabilities): Use unlikely predicates.
27649         (combine_predictions_for_bb): Likewise.
27650         (predict_paths_for_bb): Likewise.
27651         (predict_paths_leading_to_edge): Likewise.
27652         (determine_unlikely_bbs): New function.
27653         (estimate_bb_frequencies): Use it.
27654         (compute_function_frequency): Use zero counts even if profile is
27655         not read.
27656         * profile-count.h: Fix typo.
27657
27658 2017-08-08  Julia Koval  <julia.koval@intel.com>
27659
27660         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
27661         _mm512_mask_cvtsepi16_storeu_epi8,
27662         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
27663         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
27664         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
27665         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
27666         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
27667         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
27668         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
27669         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
27670         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
27671         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
27672         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
27673         __builtin_ia32_pmovuswb256mem_mask,
27674         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
27675         __builtin_ia32_pmovwb512mem_mask): New builtins.
27676
27677 2017-08-08  Julia Koval  <julia.koval@intel.com>
27678
27679         PR target/73350,80862
27680         * config/i386/subst.md (round): Fix round pattern.
27681         * config/i386/i386.c (ix86_erase_embedded_rounding):
27682         Fix erasing rounding for the fixed pattern.
27683
27684 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27685
27686         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
27687
27688 2017-06-08  Martin Liska  <mliska@suse.cz>
27689
27690         PR gcov-profile/80911
27691         * gcov.c (block_info::block_info): New constructor.
27692
27693 2017-06-07  Carl Love  <cel@us.ibm.com>
27694
27695         * config/rs6000/rs6000-c: The return type of the following
27696         built-in functions was implemented as int not long long.  Fix sign
27697         of return value for the unsigned version of vec_mulo and vec_mule.
27698         vector unsigned long long vec_bperm (vector unsigned long long,
27699                                              vector unsigned char)
27700         vector signed long long vec_mule (vector signed int,
27701                                           vector signed int)
27702         vector unsigned long long vec_mule (vector unsigned int,
27703                                             vector unsigned int)
27704         vector signed long long vec_mulo (vector signed int,
27705                                           vector signed int)
27706         vector unsigned long long vec_mulo (vector unsigned int,
27707                                             vector unsigned int)
27708         * doc/extend.texi: Fix the documentation for the built-in
27709         functions.
27710
27711 2017-06-07  Carl Love  <cel@us.ibm.com>
27712
27713         PR target/80982
27714         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
27715         for BE.
27716
27717 2017-06-07  Carl Love  <cel@us.ibm.com>
27718
27719         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
27720         support, Generate       doublehv for signed int/float for BE case only.
27721
27722 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
27723
27724         * doc/invoke.texi (mcx16): Rewrite.
27725
27726 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27727
27728         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
27729         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
27730         *mov<mode>_softfloat, and an anonymous splitter): Use
27731         nonimmediate_operand instead of rs6000_nonimmediate_operand.
27732
27733 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27734
27735         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
27736         SPEFSCR registers.
27737         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
27738         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
27739         (rs6000_debug_reg_global): Adjust.
27740         (rs6000_init_hard_regno_mode_ok): Adjust.
27741         (rs6000_dbx_register_number): Adjust.
27742         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
27743         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27744         Remove SPE_ACC and SPEFSCR.
27745         (REG_ALLOC_ORDER): Ditto.
27746         (FRAME_POINTER_REGNUM): Change to 111.
27747         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
27748         (REG_CLASS_NAMES): Ditto.
27749         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
27750         (REGISTER_NAMES): Ditto.
27751         (ADDITIONAL_REG_NAMES): Ditto.
27752         (rs6000_reg_names): Ditto.
27753         * config/rs6000/rs6000.md: Renumber some register number
27754         define_constants.
27755
27756 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27757
27758         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
27759         registers.
27760         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
27761         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
27762         to 117.
27763         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
27764         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27765         Delete the SPE high registers.
27766         (REG_ALLOC_ORDER): Ditto.
27767         (enum reg_class): Remove SPE_HIGH_REGS.
27768         (REG_CLASS_NAMES): Ditto.
27769         (REG_CLASS_CONTENTS): Delete the SPE high registers.
27770         (REGISTER_NAMES): Ditto.
27771         (rs6000_reg_names): Ditto.
27772         * doc/tm.texi.in: Remove SPE as example.
27773         * doc/tm.texi: Regenerate.
27774
27775 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27776
27777         * config/rs6000/8540.md (ppc8540_brinc): Delete.
27778         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
27779         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
27780         * config/rs6000/rs6000.md (type): Remove "brinc".
27781
27782 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27783
27784         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
27785         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
27786         * config/rs6000/linuxspe.h: Delete file.
27787         * config/rs6000/rs6000.md: Don't include spe.md.
27788         * config/rs6000/spe.h: Delete file.
27789         * config/rs6000/spe.md: Delete file.
27790         * config/rs6000/t-rs6000: Remove spe.md.
27791
27792 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27793
27794         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
27795         (reg_or_none500mem_operand): Delete.
27796         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
27797         instead of reg_or_none500mem_operand.
27798
27799 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27800
27801         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
27802         handling of SPE flags.
27803         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
27804
27805 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27806
27807         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
27808         SPE ABI handling.
27809         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
27810         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
27811         paired_divv2sf3): Similar.
27812         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
27813         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
27814         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
27815         RS6000_BUILTIN_S.
27816         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
27817         Rename the paired_* instruction patterns.
27818         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
27819         define __SPE__.
27820         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
27821         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
27822         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
27823         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
27824         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
27825         PAIRED_VECTOR_MODE.
27826         (struct machine_function): Delete field spe_insn_chain_scanned_p.
27827         (spe_func_has_64bit_regs_p): Delete.
27828         (spe_expand_predicate_builtin): Delete.
27829         (spe_expand_evsel_builtin): Delete.
27830         (TARGET_DWARF_REGISTER_SPAN): Do not define.
27831         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
27832         (invalid_e500_subreg): Delete.
27833         (rs6000_legitimize_address): Always force_reg op2 as well, for
27834         paired single memory accesses.
27835         (rs6000_member_type_forces_blk): Delete.
27836         (rs6000_spe_function_arg): Delete.
27837         (rs6000_expand_unop_builtin): Delete SPE handling.
27838         (rs6000_expand_binop_builtin): Ditto.
27839         (spe_expand_stv_builtin): Delete.
27840         (bdesc_2arg_spe): Delete.
27841         (spe_expand_builtin): Delete.
27842         (spe_expand_predicate_builtin): Delete.
27843         (spe_expand_evsel_builtin): Delete.
27844         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
27845         (spe_init_builtins): Delete.
27846         (spe_func_has_64bit_regs_p): Delete.
27847         (savres_routine_name): Delete "info" parameter.  Adjust callers.
27848         (rs6000_emit_stack_reset): Ditto.
27849         (rs6000_dwarf_register_span): Delete.
27850         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
27851         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
27852         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
27853         Delete.
27854         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
27855         Delete.
27856         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
27857         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
27858         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
27859         mulv2sf3, divv2sf3): Delete expanders.
27860
27861 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27862
27863         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
27864
27865 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27866
27867         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
27868         * config/rs6000/rs6000.c: Ditto.
27869
27870 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27871
27872         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
27873         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
27874         comparison_operator.
27875
27876 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27877
27878         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
27879         * config/rs6000/rs6000.opt: Ditto.
27880         * config/rs6000/t-rtems: Ditto.
27881
27882 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27883
27884         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
27885         TARGET_E500_SINGLE by 0, simplify.
27886         * config/rs6000/rs6000.c: Ditto.
27887         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
27888         (spe_build_register_parallel): Delete.
27889         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
27890         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
27891         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
27892         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
27893         (E500_CONVERT): Delete.
27894         * config/rs6000/spe.md: Remove many patterns and all define_constants.
27895
27896 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27897
27898         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
27899         * config/rs6000/dfp.md: Ditto.
27900         (negdd2, *negdd2_fpr): Merge.
27901         (absdd2, *absdd2_fpr): Merge.
27902         (negtd2, *negtd2_fpr): Merge.
27903         (abstd2, *abstd2_fpr): Merge.
27904         * config/rs6000/e500.h: Delete file.
27905         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
27906         TARGET_FPRS by 1 and simplify.
27907         * config/rs6000/rs6000-c.c: Ditto.
27908         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
27909         TARGET_DF_SPE by 0.
27910         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
27911         TARGET_DF_SPE.
27912         * config/rs6000/rs6000.md: Ditto.
27913         (floatdidf2, *floatdidf2_fpr): Merge.
27914         (move_from_CR_gt_bit): Delete.
27915         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
27916         (E500_CR_IOR_COMPARE): Delete.
27917         (All patterns that require !TARGET_FPRS): Delete.
27918         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
27919
27920 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27921
27922         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
27923
27924 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27925
27926         * graphds.c (add_edge): Intitialize edge's attached data.
27927         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
27928         pointer parameter.  Call pointed function on each edge during
27929         graph traversing.  Skip traversing the edge when the function
27930         returns true.
27931         (graphds_dfs, graphds_scc): Ditto.
27932         (for_each_edge): New parameter.  Pass the new parameter to callback
27933         function.
27934         * graphds.h (skip_edge_callback): New function pointer type.
27935         (graphds_dfs, graphds_scc): New function pointer parameter.
27936         (graphds_edge_callback, for_each_edge): New parameter.
27937
27938 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27939
27940         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
27941         out code checking if runtime alias check is possible to below ...
27942         Call the new function.
27943         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
27944         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
27945
27946 2017-06-07  Marek Polacek  <polacek@redhat.com>
27947
27948         PR sanitizer/80932
27949         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
27950         TYPE_OVERFLOW_WRAPS check.
27951
27952 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27953
27954         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
27955         if versioning is required.
27956         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
27957         peeling with the check for versioning.
27958
27959 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27960
27961         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
27962         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
27963         Set true to new parameter if new ssa variable is defined.
27964         (vect_gen_vector_loop_niters): Refactor.  Set range information
27965         for the new vector loop bound variable.
27966         (vect_do_peeling): Ditto.
27967
27968 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27969
27970         * tree-affine.c (ssa.h): Include header file.
27971         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
27972         has wrapping overflow behavior.
27973
27974 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27975
27976         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
27977
27978 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27979
27980         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
27981         (tree_to_aff_combination): ... here.
27982
27983 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27984
27985         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
27986         reg_pressure model function.
27987         (ivopts_global_cost_for_size): Delete.
27988         (determine_set_costs, iv_ca_recount_cost): Call new model function
27989         ivopts_estimate_reg_pressure.
27990
27991 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27992
27993         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
27994         expensive than udiv.  Remove floating point cases from mod.
27995
27996 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27997
27998         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
27999         Increase idiv cost.
28000
28001 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28002
28003         * config/aarch64/aarch64.md
28004         (copysignsf3): Fix mask generation.
28005
28006 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
28007
28008         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
28009         TDI_gimple.
28010         (class dump_manager): Add register_dumps method.
28011         * dumpfile.c: Include langhooks.h.
28012         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
28013         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
28014         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
28015         (dump_manager::dump_register): Start with 512 entries instead of 32.
28016         (dump_manager::register_dumps): New method.
28017         * toplev.c (general_init): Instead of invoking register_dumps
28018         langhook, invoke register_dumps method on the dump manager.
28019         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
28020         TDI_generic.
28021
28022 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
28023
28024         * doc/md.texi: Clarify the restrictions on a define_insn condition.
28025         Say that # requires an associated define_split to exist, and that
28026         the define_split must be suitable for use after register allocation.
28027
28028 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28029
28030         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
28031         (compute_outgoing_frequencies): Also initialize zero counts.
28032         (find_many_sub_basic_blocks): Do not produce uninitialized profile
28033         around loops; preserve more of profile when nothing changes.
28034
28035 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
28036
28037         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
28038         here.
28039         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
28040         * config/arm/arm-cpu-cdata.h: Regenerate.
28041         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
28042         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
28043         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
28044         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
28045         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
28046         support.
28047         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
28048         support.
28049         * config/arm/t-rmprofile: Likewise.
28050         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
28051
28052 2017-06-06  David S. Miller  <davem@davemloft.net>
28053
28054         PR target/80968
28055         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
28056         blockage if function uses alloca.
28057
28058 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28059
28060         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
28061         New "uid" fields to hold pretty-print IDs of group and ref.
28062         Memory references are now identified as <group_id>:<ref_id>
28063         instead of using [random] addresses.
28064         (dump_mem_details): Simplify, no functional change.
28065         (dump_mem_ref): Simplify and make output more concise.
28066         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
28067         (find_or_create_group): Initialize group uid.
28068         (record_ref): Initialize ref uid.  Improve debug output.
28069         (prune_group_by_reuse, should_issue_prefetch_p,)
28070         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
28071         (mark_nontemporal_store, determine_loop_nest_reuse):
28072         Improve debug output.
28073
28074 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28075
28076         * dbgcnt.def (prefetch): New debug counter.
28077         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
28078         (schedule_prefetches): Stop issueing prefetches if debug counter
28079         tripped.
28080
28081 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28082
28083         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
28084         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
28085
28086 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28087
28088         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
28089         Use aarch64_reg_or_zero predicate for operand 4.
28090         (aarch64_compare_and_swap<mode> define_insn_and_split):
28091         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
28092         (aarch64_store_exclusive<mode>): Likewise for operand 2.
28093
28094 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28095
28096         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
28097         (arm_compute_save_core_reg_mask): This.
28098         (thumb1_compute_save_reg_mask): Rename into ...
28099         (thumb1_compute_save_core_reg_mask): This.
28100         (arm_compute_save_reg0_reg12_mask): Adapt comment.
28101         (arm_compute_frame_layout): Likewise.
28102
28103 2017-06-06  Richard Biener  <rguenther@suse.de>
28104
28105         PR tree-optimization/80974
28106         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
28107         keep or clear leaders SSA info.
28108
28109 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28110
28111         * config/nvptx/nvptx.c (split_mode_p): New function.
28112         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
28113
28114 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28115
28116         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
28117
28118 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28119
28120         PR bootstrap/80978
28121         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
28122         profile.
28123
28124 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28125
28126         * shrink-wrap.c (handle_simple_exit): Update profile.
28127         (try_shrink_wrapping): Upate profile.
28128
28129 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28130
28131         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
28132         (tree_guess_outgoing_edge_probabilities): New.
28133         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
28134         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
28135
28136 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28137
28138         * ipa-split.c (split_function): Initialize return bb profile.
28139
28140 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28141
28142         * profile.c (compute_branch_probabilities): Also initialize
28143         EXIT_BLOCK profile.
28144
28145 2017-06-06  Richard Biener  <rguenther@suse.de>
28146
28147         PR tree-optimization/80928
28148         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
28149         (vect_analyze_loop_operations): Properly guard analysis for
28150         pure SLP case.
28151         (vect_transform_loop): Likewise.
28152         (vect_analyze_loop_2): Also reset SLP type on PHIs.
28153         (vect_model_induction_cost): Do not cost for pure SLP.
28154         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
28155         of induction in inner loop vectorization.
28156         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
28157         (vect_get_and_check_slp_defs): Handle vect_induction_def.
28158         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
28159         recursion.
28160         (vect_analyze_slp_cost_1): Cost induction.
28161         (vect_detect_hybrid_slp_stmts): Handle PHIs.
28162         (vect_get_slp_vect_defs): Likewise.
28163         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
28164         (vect_transform_stmt): Handle SLP reductions.
28165         * tree-vectorizer.h (vectorizable_induction): Adjust.
28166
28167 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28168
28169         * config/rs6000/rs6000.c (make_resolver_func): Update
28170         init_lowered_empty_function call.
28171
28172 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28173
28174         * doc/invoke.texi: Document the -fprofile-abs-path option.
28175         * common.opt (fprofile-abs-path): New option.
28176         * gcov-io.h (gcov_write_filename): Declare.
28177         * gcov-io.c (gcov_write_filename): New function.
28178         * coverage.c (coverage_begin_function): Use gcov_write_filename.
28179         * profile.c (output_location): Likewise.
28180
28181 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28182
28183         * shring-wrap.c: Revert accidental commit.
28184
28185 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
28186
28187         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
28188
28189 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28190
28191         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
28192         new edge.
28193         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
28194         profile in callgraph edge.
28195         * profile-count.h (apply_probability): If THIS is 0, then result is 0
28196         (apply_scale): Likewise.
28197         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
28198         Also scale profile when inlining function with zero profile.
28199         (initialize_cfun): Update exit block profile even when it is zero.
28200         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
28201         when profile is read.
28202
28203 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28204
28205         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
28206         (CLONE_*): New constants to define the processors we can generate
28207         code for with the target_clone attribute.
28208         (rs6000_clone_map): New array to identify which clone processors
28209         the current program is running on.
28210         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
28211         target_clone attribute.
28212         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
28213         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
28214         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
28215         (cpu_expand_builtin): Add support for target_clone attribute.
28216         (rs6000_valid_attribute_p): Allow "default" attribute.
28217         (get_decl_name): New debug function to simplify printing the
28218         current function name in debugging statements.
28219         (rs6000_clone_priority): New functions to support the target_clone
28220         attribute, and be able to generate code to switch between ISA 2.05
28221         through ISA 3.0 (power6 through power9).
28222         (rs6000_compare_version_priority): Likewise.
28223         (rs6000_get_function_versions_dispatcher): Likewise.
28224         (make_resolver_func): Likewise.
28225         (add_condition_to_bb): Likewise.
28226         (dispatch_function_versions): Likewise.
28227         (rs6000_generate_version_dispatcher_body): Likewise.
28228         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
28229         (fusion_gpr_load_p): Fix a spacing issue.
28230         * doc/extend.texi (Common Function Attributes): Document that the
28231         PowerPC supports the target_clone attribute.
28232
28233 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28234
28235         * config/arm/arm.h: explain F symbol found in description of ARM
28236         register allocation in its legend.
28237
28238 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28239
28240         * config/mips/frame-header-opt.c: Include profile-count.h.
28241         * config/riscv/riscv.c: Include profile-count.h
28242
28243 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28244
28245         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
28246         update profile.
28247         (sm_set_flag_if_changed): Add bbs field.
28248         (execute_sm_if_changed_flag_set): Pass BBS.
28249         (execute_sm): Update.
28250
28251 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28252
28253         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
28254         New pattern.
28255
28256 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28257
28258         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
28259         (peephole2): New peephole2 to emit the above.
28260         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
28261
28262 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28263
28264         * config/aarch64/aarch64.c (define_peephole2 above
28265         *sub_<shift>_<mode>): New peephole.
28266
28267 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28268
28269         * config/i386/i386.c (make_resolver_func): Update.
28270         * Makefile.in: Add profile-count.h and profile-count.o
28271         * auto-profile.c (afdo_indirect_call): Update to new API.
28272         (afdo_set_bb_count): Update.
28273         (afdo_propagate_edge): Update.
28274         (afdo_propagate_circuit): Update.
28275         (afdo_calculate_branch_prob): Update.
28276         (afdo_annotate_cfg): Update.
28277         * basic-block.h: Include profile-count.h
28278         (struct edge_def): Turn count to profile_count.
28279         (struct basic_block_def): Likewie.
28280         (REG_BR_PROB_BASE): Move to profile-count.h
28281         (RDIV): Move to profile-count.h
28282         * bb-reorder.c (max_entry_count): Turn to profile_count.
28283         (find_traces): Update.
28284         (rotate_loop):Update.
28285         (connect_traces):Update.
28286         (sanitize_hot_paths):Update.
28287         * bt-load.c (migrate_btr_defs): Update.
28288         * cfg.c (RDIV): Remove.
28289         (init_flow): Use alloc_block.
28290         (alloc_block): Uninitialize count.
28291         (unchecked_make_edge): Uninitialize count.
28292         (check_bb_profile): Update.
28293         (dump_edge_info): Update.
28294         (dump_bb_info): Update.
28295         (update_bb_profile_for_threading): Update.
28296         (scale_bbs_frequencies_int): Update.
28297         (scale_bbs_frequencies_gcov_type): Update.
28298         (scale_bbs_frequencies_profile_count): New.
28299         * cfg.h (update_bb_profile_for_threading): Update.
28300         (scale_bbs_frequencies_profile_count): Declare.
28301         * cfgbuild.c (compute_outgoing_frequencies): Update.
28302         (find_many_sub_basic_blocks): Update.
28303         * cfgcleanup.c (try_forward_edges): Update.
28304         (try_crossjump_to_edge): Update.
28305         * cfgexpand.c (expand_gimple_tailcall): Update.
28306         (construct_exit_block): Update.
28307         * cfghooks.c (verify_flow_info): Update.
28308         (dump_bb_for_graph): Update.
28309         (split_edge): Update.
28310         (make_forwarder_block): Update.
28311         (duplicate_block): Update.
28312         (account_profile_record): Update.
28313         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
28314         (get_estimated_loop_iterations): Update.
28315         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
28316         (single_likely_exit): Update.
28317         * cfgloopmanip.c (scale_loop_profile): Update.
28318         (loopify): Update.
28319         (set_zero_probability): Update.
28320         (lv_adjust_loop_entry_edge): Update.
28321         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
28322         (purge_dead_edges): Update.
28323         (rtl_account_profile_record): Update.
28324         * cgraph.c (cgraph_node::create): Uninitialize count.
28325         (symbol_table::create_edge): Uninitialize count.
28326         (cgraph_update_edges_for_call_stmt_node): Update.
28327         (cgraph_edge::dump_edge_flags): Update.
28328         (cgraph_node::dump): Update.
28329         (cgraph_edge::maybe_hot_p): Update.
28330         * cgraph.h: Include profile-count.h
28331         (create_clone), create_edge, create_indirect_edge): Update.
28332         (cgraph_node): Turn count to profile_count.
28333         (cgraph_edge0: Likewise.
28334         (make_speculative, clone): Update.
28335         (create_edge): Update.
28336         (init_lowered_empty_function): Update.
28337         * cgraphclones.c (cgraph_edge::clone): Update.
28338         (duplicate_thunk_for_node): Update.
28339         (cgraph_node::create_clone): Update.
28340         * cgraphunit.c (cgraph_node::analyze): Update.
28341         (cgraph_node::expand_thunk): Update.
28342         * final.c (dump_basic_block_info): Update.
28343         * gimple-streamer-in.c (input_bb): Update.
28344         * gimple-streamer-out.c (output_bb): Update.
28345         * graphite.c (print_global_statistics): Update.
28346         (print_graphite_scop_statistics): Update.
28347         * hsa-brig.c: Include basic-block.h.
28348         * hsa-dump.c: Include basic-block.h.
28349         * hsa-gen.c (T sum_slice): Update.
28350         (convert_switch_statements):Update.
28351         * hsa-regalloc.c: Include basic-block.h.
28352         * ipa-chkp.c (chkp_produce_thunks): Update.
28353         * ipa-cp.c (struct caller_statistics): Update.
28354         (init_caller_stats): Update.
28355         (gather_caller_stats): Update.
28356         (ipcp_cloning_candidate_p): Update.
28357         (good_cloning_opportunity_p): Update.
28358         (get_info_about_necessary_edges): Update.
28359         (dump_profile_updates): Update.
28360         (update_profiling_info): Update.
28361         (update_specialized_profile): Update.
28362         (perhaps_add_new_callers): Update.
28363         (decide_about_value): Update.
28364         (ipa_cp_c_finalize): Update.
28365         * ipa-devirt.c (struct odr_type_warn_count): Update.
28366         (struct decl_warn_count): Update.
28367         (struct final_warning_record): Update.
28368         (possible_polymorphic_call_targets): Update.
28369         (ipa_devirt): Update.
28370         * ipa-fnsummary.c (redirect_to_unreachable): Update.
28371         * ipa-icf.c (sem_function::merge): Update.
28372         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
28373         * ipa-inline.c (compute_uninlined_call_time): Update.
28374         (compute_inlined_call_time): Update.
28375         (want_inline_small_function_p): Update.
28376         (want_inline_self_recursive_call_p): Update.
28377         (edge_badness): Update.
28378         (lookup_recursive_calls): Update.
28379         (recursive_inlining): Update.
28380         (inline_small_functions): Update.
28381         (dump_overall_stats): Update.
28382         (dump_inline_stats): Update.
28383         * ipa-profile.c (ipa_profile_generate_summary): Update.
28384         (ipa_propagate_frequency): Update.
28385         (ipa_profile): Update.
28386         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28387         * ipa-utils.c (ipa_merge_profiles): Update.
28388         * loop-doloop.c (doloop_modify): Update.
28389         * loop-unroll.c (report_unroll): Update.
28390         (unroll_loop_runtime_iterations): Update.
28391         * lto-cgraph.c (lto_output_edge): Update.
28392         (lto_output_node): Update.
28393         (input_node): Update.
28394         (input_edge): Update.
28395         (merge_profile_summaries): Update.
28396         * lto-streamer-in.c (input_cfg): Update.
28397         * lto-streamer-out.c (output_cfg): Update.
28398         * mcf.c (create_fixup_graph): Update.
28399         (adjust_cfg_counts): Update.
28400         (sum_edge_counts): Update.
28401         * modulo-sched.c (sms_schedule): Update.
28402         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
28403         * predict.c (maybe_hot_count_p): Update.
28404         (probably_never_executed): Update.
28405         (dump_prediction): Update.
28406         (combine_predictions_for_bb): Update.
28407         (propagate_freq): Update.
28408         (handle_missing_profiles): Update.
28409         (counts_to_freqs): Update.
28410         (rebuild_frequencies): Update.
28411         (force_edge_cold): Update.
28412         * predict.h: Include profile-count.h
28413         (maybe_hot_count_p, counts_to_freqs): UPdate.
28414         * print-rtl-function.c: Do not include cfg.h
28415         * print-rtl.c: Include basic-block.h
28416         * profile-count.c: New file.
28417         * profile-count.h: New file.
28418         * profile.c (is_edge_inconsistent): Update.
28419         (correct_negative_edge_counts): Update.
28420         (is_inconsistent): Update.
28421         (set_bb_counts): Update.
28422         (read_profile_edge_counts): Update.
28423         (compute_frequency_overlap): Update.
28424         (compute_branch_probabilities): Update; Initialize and deinitialize
28425         gcov_count tables.
28426         (branch_prob): Update.
28427         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
28428         (edge_gcov_count): New.
28429         (bb_gcov_count): New.
28430         * shrink-wrap.c (try_shrink_wrapping): Update.
28431         * tracer.c (better_p): Update.
28432         * trans-mem.c (expand_transaction): Update.
28433         (ipa_tm_insert_irr_call): Update.
28434         (ipa_tm_insert_gettmclone_call): Update.
28435         * tree-call-cdce.c: Update.
28436         * tree-cfg.c (gimple_duplicate_sese_region): Update.
28437         (gimple_duplicate_sese_tail): Update.
28438         (gimple_account_profile_record): Update.
28439         (execute_fixup_cfg): Update.
28440         * tree-inline.c (copy_bb): Update.
28441         (copy_edges_for_bb): Update.
28442         (initialize_cfun): Update.
28443         (freqs_to_counts): Update.
28444         (copy_cfg_body): Update.
28445         (expand_call_inline): Update.
28446         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
28447         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
28448         (try_unroll_loop_completely): Update.
28449         (try_peel_loop): Update.
28450         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
28451         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
28452         * tree-ssa-loop-split.c (connect_loops): Update.
28453         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
28454         * tree-ssa-reassoc.c (branch_fixup): Update.
28455         * tree-ssa-tail-merge.c (replace_block_by): Update.
28456         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
28457         (compute_path_counts): Update.
28458         (update_profile): Update.
28459         (recompute_probabilities): Update.
28460         (update_joiner_offpath_counts): Update.
28461         (estimated_freqs_path): Update.
28462         (freqs_to_counts_path): Update.
28463         (clear_counts_path): Update.
28464         (ssa_fix_duplicate_block_edges): Update.
28465         (duplicate_thread_path): Update.
28466         * tree-switch-conversion.c (case_bit_test_cmp): Update.
28467         (struct switch_conv_info): Update.
28468         * tree-tailcall.c (decrease_profile): Update.
28469         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
28470         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
28471         * value-prof.c (check_counter): Update.
28472         (gimple_divmod_fixed_value): Update.
28473         (gimple_mod_pow2): Update.
28474         (gimple_mod_subtract): Update.
28475         (gimple_ic_transform): Update.
28476         (gimple_stringop_fixed_value): Update.
28477         * value-prof.h (gimple_ic): Update.
28478
28479 2017-06-02  Carl Love  <cel@us.ibm.com>
28480
28481         * config/rs6000/rs6000-c: Add support for built-in functions
28482         vector double vec_doublee (vector signed int);
28483         vector double vec_doublee (vector unsigned int);
28484         vector double vec_doublee (vector float);
28485         vector double vec_doubleh (vector signed int);
28486         vector double vec_doubleh (vector unsigned int);
28487         vector double vec_doubleh (vector float);
28488         vector double vec_doublel (vector signed int);
28489         vector double vec_doublel (vector unsigned int);
28490         vector double vec_doublel (vector float);
28491         vector double vec_doubleo (vector signed int);
28492         vector double vec_doubleo (vector unsigned int);
28493         vector double vec_doubleo (vector float);.
28494         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
28495         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
28496         UNS_DOUBLEL.
28497         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
28498         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
28499         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
28500         VS_sxwsp.
28501         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
28502         vec_doublel, vec_doubleh.
28503         * doc/extend.texi: Update the built-in documentation file for the
28504         new built-in functions.
28505
28506 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
28507
28508         PR jit/80954
28509         * ipa-inline-analysis.c (free_growth_caches): Set
28510         edge_removal_hook_holder to NULL after removing it.
28511
28512 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
28513
28514         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
28515         comparision with zero.
28516
28517 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28518         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28519         for early expansion of vec_min and vec_max builtins.
28520         (builtin_function_type): Add min/max unsigned variants to those
28521         identified as having unsigned arguments.
28522
28523 2017-06-02  Olivier Hainque  <hainque@adacore.com>
28524
28525         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
28526
28527 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28528
28529         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
28530         Use VALL_F16 iterator rather than VALL.
28531
28532 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28533
28534         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
28535         Emit CBNZ inside loop when doing a strong exchange and comparing
28536         against zero.  Generate the CC flags after the loop.
28537
28538 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
28539
28540         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
28541         (dl_section_ref): New.
28542         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
28543         On AIX, append an expression to subtract the size of the
28544         section length to dl_section_ref.
28545
28546 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28547
28548         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28549         for early expansion of vector absolute builtins.
28550
28551 2017-06-02  Richard Biener  <rguenther@suse.de>
28552
28553         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
28554         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
28555
28556 2017-06-02  Richard Biener  <rguenther@suse.de>
28557
28558         PR tree-optimization/80948
28559         * tree-tailcall.c (find_tail_calls): Track stmts to move in
28560         stmt order as well.
28561
28562 2017-06-02  Richard Biener  <rguenther@suse.de>
28563
28564         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
28565         PHIs are ok.
28566         * tree-vect-stmts.c (process_use): Do not mark backedge defs
28567         for inductions as relevant.
28568
28569 2017-06-02  Richard Biener  <rguenther@suse.de>
28570
28571         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
28572         (vectorizable_induction): ... this.  Remove dead code.
28573
28574 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
28575
28576         * builtins. (expand_builtin_alloca): Remove second parameter and
28577         infer its value from the first parameter instead.
28578         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
28579
28580 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
28581
28582         PR rtl-optimization/80903
28583         * loop-doloop.c (add_test): Unshare sequence.
28584
28585 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28586
28587         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
28588
28589 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28590
28591         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
28592         static.
28593         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
28594         xlogue_layout::get_instance, logue_layout::xlogue_layout,
28595         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
28596         (xlogue_layout::get_stub_rtx): Make static.
28597         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
28598         (xlogue_layout::compute_stub_managed_regs): Rename to...
28599         (xlogue_layout::count_stub_managed_regs): ...this.
28600         (xlogue_layout::is_stub_managed_reg): New function.
28601         (xlogue_layout::m_stub_names): Rename to...
28602         (xlogue_layout::s_stub_names): ...this, make static.
28603         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
28604         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
28605         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
28606         xlogue_layout::s_stub_names): Instantiate statics.
28607         (stub_managed_regs): Remove.
28608         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
28609         (disable_call_ms2sysv_xlogues): Rename to...
28610         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
28611         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
28612         warning logic.
28613         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
28614         change after reload_completed.
28615         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
28616         directly.
28617         (ix86_expand_prologue): Likewise.
28618         (ix86_expand_epilogue): Likewise.
28619         (ix86_expand_split_stack_prologue): Likewise.
28620         (ix86_compute_frame_layout): Remove frame parameter ...
28621         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
28622         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
28623         only if necessary.
28624         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
28625         (ix86_frame): Move from here ...
28626         * config/i386/i386.h (ix86_frame): ... to here.
28627         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
28628         complete ix86_frame data structure instead.  Remove some_ld_name.
28629
28630 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
28631
28632         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
28633         symbols that hold a DECL_VALUE_EXPR.
28634
28635 2017-06-01  Martin Jambor  <mjambor@suse.cz>
28636
28637         PR tree-optimization/80898
28638         * tree-sra.c (process_subtree_disqualification): Removed.
28639         (disqualify_candidate): Do not acll
28640         process_subtree_disqualification.
28641         (subtree_mark_written_and_enqueue): New function.
28642         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
28643         RHS has been disqualified and re-queue LHS if necessary.  Apart
28644         from that, ignore disqualified RHS.
28645
28646 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28647
28648         * config/s390/s390.c (s390_emit_epilogue): Disable early return
28649         address fetch for z10 or later.
28650
28651 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28652
28653         * config/arc/arc.md (tst_movb): Add guard when splitting.
28654
28655 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28656
28657         * config/arc/arc.c (arc_can_eliminate): Test against
28658         arc_frame_pointer_needed.
28659
28660 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28661
28662         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
28663         to prevent store reordering.
28664         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
28665         (type): Add block type.
28666         (stack_tie): Define special instruction to be used in
28667         expand_prologue.
28668
28669 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28670
28671         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
28672         constraint. It is not valid for the pattern.
28673         (noncommutative_binary_comparison): Likewise.
28674
28675 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28676
28677         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
28678         scaled addresses.
28679
28680 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28681
28682         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
28683         be used by the reg-alloc.
28684
28685 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28686
28687         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
28688         reg-alloc when having mul64 or mul32x16 instructions.
28689         (mulsidi3): Likewise.
28690         (umulsidi3): Likewise.
28691         (mulsi32x16): New pattern.
28692         (mulsi64): Likewise.
28693         (mulsidi64): Likewise.
28694         (umulsidi64): Likewise.
28695         (MUL32x16_REG): Define.
28696         (mul64_600): Use MUL32x16_REG.
28697         (mac64_600): Likewise.
28698         (umul64_600): Likewise.
28699         (umac64_600): Likewise.
28700
28701 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28702
28703         * config/arc/arc.md (mulsi3_700): Make it commutative.
28704
28705 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
28706
28707         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
28708         type for movstouw.
28709         (*sign_extendsidi2_insn): Likewise for movstosw.
28710
28711 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
28712
28713         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
28714         the type of the input discriminant value.  Convert the
28715         discriminant value of signedness vary.
28716
28717 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
28718
28719         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
28720         Add to -Wall section.
28721
28722 2017-06-01  Richard Biener  <rguenther@suse.de>
28723
28724         PR middle-end/66313
28725         * fold-const.c (fold_plusminus_mult_expr): If the factored
28726         factor may be zero use a wrapping type for the inner operation.
28727         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
28728         and handle moved defs.
28729         (process_assignment): Properly guard the unary op case.  Return a
28730         tri-state indicating that moving the stmt before the call may allow
28731         to continue.  Pass through to_move.
28732         (find_tail_calls): Handle moving unrelated defs before
28733         the call.
28734
28735 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
28736
28737         PR target/80618
28738         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
28739         splitter result in the canonical way.
28740
28741 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
28742
28743         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
28744         also for 32bit target.  Update insn attributes.
28745         (zero-extendsidi2 splitter): Allow all registers for operand 1.
28746
28747 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
28748
28749         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
28750         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
28751         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
28752         (_mm_maskz_min_ss): New intrinsics.
28753
28754 2017-05-31  Martin Liska  <mliska@suse.cz>
28755
28756         * tree-vect-loop.c (vect_create_epilog_for_reduction):
28757         Change comment style to one we normally use.
28758         (vectorizable_reduction): Likewise.
28759         (vectorizable_induction): Likewise.
28760         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
28761         (vectorizable_call): Likewise.
28762         (vectorizable_simd_clone_call): Likewise.
28763         (vectorizable_conversion): Likewise.
28764         (vectorizable_assignment): Likewise.
28765         (vectorizable_shift): Likewise.
28766         (vectorizable_operation): Likewise.
28767         (vectorizable_store): Likewise.
28768         (vectorizable_load): Likewise.
28769         * tree-vectorizer.h: Likewise.
28770
28771 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
28772
28773         * passes.c (emergency_dump_function): New.
28774         * tree-pass.h (emergency_dump_function): Declare.
28775         * plugin.c (plugins_internal_error_function): Remove.
28776         * plugin.h (plugins_internal_error_function): Remove declaration.
28777         * toplev.c (internal_error_function): New static function.  Use it...
28778         (general_init): ...here.
28779
28780 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
28781
28782         * config/arc/arc.c (arc_print_operand): Handle constant operands.
28783         (arc_rtx_costs): Add costs for new patterns.
28784         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
28785         * config/arc/predicates.md: Add _1_2_3_operand predicate.
28786
28787 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
28788
28789         * tree-ssa-strlen.c (get_next_strinfo): New function.
28790         (get_stridx_plus_constant): Use it.
28791         (zero_length_string): Likewise.
28792         (adjust_related_strinfos): Likewise.
28793         (adjust_last_stmt): Likewise.
28794
28795 2017-05-31  Richard Biener  <rguenther@suse.de>
28796
28797         PR target/80880
28798         * config/i386/i386.c (ix86_expand_builtin): Remove assert
28799         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
28800
28801 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
28802
28803         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
28804         loop_vinfo argument and use of dependence distance vectors.
28805         Check instead whether the two references differ only in their
28806         initial value and assume that they have the same alignment if the
28807         difference is a multiple of the vector alignment.
28808         (vect_analyze_data_refs_alignment): Update call accordingly.
28809
28810 2017-05-31  Martin Liska  <mliska@suse.cz>
28811
28812         PR target/79155
28813         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
28814
28815 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
28816
28817         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
28818         (create_intersect_range_checks): Move from ...
28819         * tree-data-ref.c (create_intersect_range_checks_index)
28820         (create_intersect_range_checks): ... to here.
28821         (create_runtime_alias_checks): New function factored from ...
28822         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
28823         here.  Call above function.
28824         * tree-data-ref.h (create_runtime_alias_checks): New function.
28825
28826 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
28827
28828         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
28829         segment length for dr_b and compute it in wide_int.
28830
28831 2017-05-31  Richard Biener  <rguenther@suse.de>
28832
28833         PR tree-optimization/80906
28834         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
28835         and pass through iv_map.
28836         (copy_bb_and_scalar_dependences): Adjust.
28837         (translate_pending_phi_nodes): Likewise.
28838         (copy_loop_close_phi_args): Handle code-generating IVs instead
28839         of ICEing.
28840
28841 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
28842
28843         * diagnostic-color.c (color_dict): Add "type-diff".
28844         (parse_gcc_colors): Update comment.
28845         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
28846         -fdiagnostics-show-template-tree and -fno-elide-type.
28847         (GCC_COLORS): Add type-diff to example.
28848         (type-diff=): New.
28849         (-fdiagnostics-show-template-tree): New.
28850         (-fno-elide-type): New.
28851         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
28852         the pp_format_decoder callback.  Call any m_format_postprocessor's
28853         "handle" method.
28854         (pretty_printer::pretty_printer): Initialize
28855         m_format_postprocessor.
28856         (pretty_printer::~pretty_printer): Delete any
28857         m_format_postprocessor.
28858         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
28859         (class format_postprocessor): New class.
28860         (struct pretty_printer::format_decoder): Document the new parameters.
28861         (struct pretty_printer::m_format_postprocessor): New field.
28862         * tree-diagnostic.c (default_tree_printer): Update for new
28863         bool and const char ** params.
28864         * tree-diagnostic.h (default_tree_printer): Likewise.
28865
28866 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
28867
28868         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
28869         (lwa_operand): Delete rs6000_gen_cell_microcode test.
28870         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
28871         rs6000_gen_cell_microcode code.
28872         (rs6000_final_prescan_insn): Delete.
28873         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
28874         "warn-cell-microcode" entries.
28875         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
28876         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
28877         throughout.  Change cc_reg_not_micro_cr0_operand to
28878         cc_reg_not_cr0_operand throughout.
28879         (*extendhi<mode>2_noload): Delete.
28880         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
28881         (mwarn-cell-microcode): Delete.
28882         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
28883         -mgen-cell-microcode and -mwarn-cell-microcode.
28884
28885 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
28886
28887         PR target/80833
28888         * config/i386/constraints.md (Yd): New constraint.
28889         (Ye): Ditto.
28890         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
28891         and (?Yd, r) alternatives.  Update insn attributes.
28892         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
28893         and (?*Yd, r) alternatives.  Update insn attributes.
28894         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
28895
28896 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
28897
28898         * gimplify.c (gimplify_modify_expr): Don't create a
28899         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
28900         function.
28901
28902 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
28903
28904         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
28905
28906 2017-05-30  Richard Biener  <rguenther@suse.de>
28907
28908         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
28909         and reduc_def fields.
28910         (STMT_VINFO_REDUC_TYPE): New define.
28911         (STMT_VINFO_REDUC_DEF): Likewise.
28912         (vect_force_simple_reduction): Adjust prototype.
28913         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
28914         (vect_is_simple_reduction): Remove check_reduction argument.
28915         (vect_force_simple_reduction): Adjust and set
28916         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
28917         (vectorizable_reduction): Do not re-do reduction analysis
28918         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
28919         * tree-parloops.c (gather_scalar_reductions): Adjust.
28920
28921 2017-05-30  Richard Biener  <rguenther@suse.de>
28922
28923         PR middle-end/80901
28924         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
28925         split_edge code.
28926
28927 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28928
28929         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
28930         Introduce unknown_misalignment parameter and remove vf.
28931         (vect_peeling_hash_get_lowest_cost):
28932         Pass unknown_misalignment parameter.
28933         (vect_enhance_data_refs_alignment):
28934         Fix unsupportable data ref treatment.
28935
28936 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28937
28938         * tree-vect-data-refs.c (vect_get_data_access_cost):
28939         Workaround for SLP handling.
28940         (vect_enhance_data_refs_alignment):
28941         Compute costs for doing no peeling at all, compare to the best
28942         peeling costs so far and avoid peeling if cheaper.
28943
28944 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28945
28946         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
28947         Return peeling info and set costs to zero for unlimited cost
28948         model.
28949         (vect_enhance_data_refs_alignment): Also inspect all datarefs
28950         with unknown misalignment. Compute and costs for unknown
28951         misalignment, compare them to the costs for known misalignment
28952         and choose the cheapest for peeling.
28953
28954 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28955
28956         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
28957         (vect_get_peeling_costs_all_drs): Create function.
28958         (vect_peeling_hash_get_lowest_cost):
28959         Use vect_get_peeling_costs_all_drs.
28960         (vect_peeling_supportable): Create function.
28961         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
28962
28963 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28964
28965         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
28966         DR_HAS_NEGATIVE_STEP.
28967         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
28968         (vect_enhance_data_refs_alignment): Use.
28969         (vect_duplicate_ssa_name_ptr_info): Use.
28970         * tree-vectorizer.h (dr_misalignment): Use.
28971         (known_alignment_for_access_p): Use.
28972
28973 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
28974
28975         PR target/78838
28976         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
28977         .lowtext.
28978         (has_section_name): New function.
28979
28980 2017-05-30  Martin Liska  <mliska@suse.cz>
28981
28982         PR other/80909
28983         * auto-profile.c (get_function_decl_from_block): Fix
28984         parenthesis.
28985
28986 2017-05-30  Richard Biener  <rguenther@suse.de>
28987
28988         PR middle-end/80876
28989         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
28990
28991 2017-05-30  Martin Liska  <mliska@suse.cz>
28992
28993         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
28994         * dumpfile.h (struct dump_file_info): Remove ctors.
28995
28996 2017-05-30  Martin Liska  <mliska@suse.cz>
28997
28998         * predict.def: Fix GNU coding style.
28999
29000 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29001
29002         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
29003         Mark 'to' argument with ATTRIBUTE_UNUSED.
29004
29005 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29006
29007         * config/xtensa/xtensa.c (xtensa_emit_call): Use
29008         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
29009         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
29010         format string.
29011
29012 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
29013
29014         * doc/install.texi (Options specification): Restore entry of
29015         --enable-sjlj-exceptions.
29016
29017 2017-05-27  Michael Eager  <eager@eagercon.com>
29018
29019         Revert:
29020         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
29021
29022         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
29023
29024         * config/microblaze/microblaze.h
29025         (FIXED_REGISTERS): Update in macro.
29026         (CALL_USED_REGISTERS): Update in macro.
29027
29028 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
29029
29030         * doc/install.texi: Add links to macOS binary distributions.
29031
29032 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
29033
29034         PR bootstrap/80887
29035         Revert:
29036         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29037
29038         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29039
29040 2017-05-26  Martin Liska  <mliska@suse.cz>
29041
29042         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
29043
29044 2017-05-26  Martin Liska  <mliska@suse.cz>
29045
29046         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
29047         always leading ';; '.
29048         (dump_bb_info): Likewise.
29049         (brief_dump_cfg): Likewise.
29050         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
29051         * dumpfile.c: Remove usage of TDF_VERBOSE.
29052         * dumpfile.h (enum dump_kind): Likewise.
29053         (dump_gimple_bb_header): Do not use TDF_COMMENT.
29054         * print-tree.c (debug_verbose): Remove.
29055         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
29056         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
29057         * tree-diagnostic.c (default_tree_printer): Replace
29058         TDF_DIAGNOSTIC with TDF_SLIM.
29059
29060 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29061
29062         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
29063         in parameter loop, rather than loop_vinfo.
29064         (create_intersect_range_checks): Ditto.
29065         (vect_create_cond_for_alias_checks): Update call to above functions.
29066
29067 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29068
29069         PR tree-optimization/80815
29070         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
29071         for merging runtime alias checks.  Handle negative DR_STEPs.
29072
29073 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29074
29075         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
29076         Move from ...
29077         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
29078         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
29079         out code pruning runtime alias checks.
29080         * tree-data-ref.c (prune_runtime_alias_test_list): New function
29081         factored out from above.
29082         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29083         Move from ...
29084         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29085         ... to here.
29086         (prune_runtime_alias_test_list): New decalaration.
29087
29088 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29089
29090         * tree-vect-data-refs.c (compare_tree): Rename and move ...
29091         * tree-data-ref.c (data_ref_compare_tree): ... to here.
29092         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
29093         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
29094         (operator==, comp_dr_with_seg_len_pair): Ditto.
29095         (vect_prune_runtime_alias_test_list): Ditto.
29096
29097 2017-05-26  Martin Liska  <mliska@suse.cz>
29098
29099         PR ipa/80663
29100         * params.def: Bound partial-inlining-entry-probability param.
29101
29102 2017-05-26  Marek Polacek  <polacek@redhat.com>
29103
29104         PR sanitizer/80875
29105         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
29106         can be negated.
29107
29108 2017-05-26  Richard Biener  <rguenther@suse.de>
29109
29110         PR tree-optimization/80842
29111         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
29112         value.
29113
29114 2017-05-26  Richard Biener  <rguenther@suse.de>
29115
29116         PR tree-optimization/80844
29117         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
29118
29119 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
29120
29121         * doc/md.texi (Machine Constraints): Update x86 family
29122         machine constraints section to match 'config/i386/constraints.md'.
29123
29124 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
29125
29126         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
29127
29128 2017-05-25  Nathan Sidwell  <nathan@acm.org>
29129
29130         * doc/invoke.texi (--enable-languages): Update documentation.
29131
29132 2017-05-25  Martin Liska  <mliska@suse.cz>
29133
29134         * dumpfile.c: Add TDF_FOLDING.
29135         * dumpfile.h (enum dump_kind): Likewise.
29136         * genmatch.c (dt_simplify::gen_1): Use it.
29137
29138 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29139
29140         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
29141
29142 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29143
29144         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29145         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
29146
29147 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29148
29149         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
29150         * match.pd (X == C): Rewrite it here.
29151         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
29152         with_certain_nonzero_bits2): New predicates.
29153         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
29154
29155 2017-05-24  Nathan Sidwell  <nathan@acm.org>
29156
29157         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
29158         avoid warning.
29159
29160         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
29161         warning.
29162
29163 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29164
29165         * config/powerpcspe: New port.  Files are copied from the rs6000
29166         port, with "rs6000" in filenames replaced by "powerpcspe".
29167
29168 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
29169
29170         PR rtl-optimization/80754
29171         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
29172
29173 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
29174
29175         * config/sparc/sparc.md (length): Return the correct value for -mflat
29176         sibcalls to match output_sibcall.
29177
29178 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29179
29180         PR bootstrap/80860
29181         PR bootstrap/80843
29182         * config/rs6000/rs6000.c (struct machine_function): Add new field
29183         n_components.
29184         (rs6000_get_separate_components): Init that field, use it.
29185         (rs6000_components_for_bb): Use the field.
29186
29187 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29188
29189         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
29190
29191 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
29192
29193         PR middle-end/80823
29194         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
29195
29196 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29197
29198         PR target/80725
29199         * config/s390/s390.c (s390_check_qrst_address): Check incoming
29200         address against address_operand predicate.
29201         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
29202
29203 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
29204
29205         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
29206         parameters passed indirectly.
29207
29208 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
29209
29210         * config/i386/i386.md (*movdi_internal): Remove SSE4
29211         alternative 18 (?r, *v).  Update insn attributes.
29212         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
29213         Update insn attributes.
29214         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
29215         Update insn attributes.
29216         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
29217         alternative 1 (r, v). Remove isa attribute.
29218         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
29219         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
29220         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
29221
29222 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29223
29224         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
29225         dg-line directive.
29226
29227 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29228
29229         * cgraphunit.c (symbol_table::process_new_functions): Update.
29230         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
29231         (inline_generate_summary): Rename to ...
29232         (ipa_fn_summary_generate): ... this one.
29233         (inline_read_summary): Rename to ...
29234         (ipa_fn_summary_read): ... this one.
29235         (inline_write_summary): Rename to ...
29236         (ipa_fn_summary_write): ... this one.
29237         (inline_free_summary): Rename to ...
29238         (ipa_free_fn_summary): ... this one.
29239         (pass_data_local_fn_summary, pass_local_fn_summary,
29240         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
29241         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
29242         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
29243         make_pass_ipa_fn_summary): New.
29244         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
29245         inline_write_summary, inline_free_summary): Remove.
29246         (ipa_free_fn_summary) : New.
29247         * ipa-inline.c (ipa_inline): Update.
29248         (pass_ipa_inline): Do not generate summaries.
29249         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
29250         Remove.
29251         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
29252         and add pass_ipa_fn_summary.
29253         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
29254         New.
29255         (make_pass_inline_parameters): Remove.
29256
29257 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
29258
29259         * omp-low.c (struct omp_context): Remove "default_kind" member.
29260         Adjust all users.
29261
29262         * omp-offload.c (execute_oacc_device_lower): Remove the
29263         parallelism dimensions function attributes for unparallelized
29264         OpenACC kernels constructs.
29265
29266 2017-05-23  Martin Liska  <mliska@suse.cz>
29267
29268         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
29269         functions.
29270         (cgraph_edge::make_speculative): Likewise.
29271         (cgraph_edge::resolve_speculation): Likewise.
29272         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
29273         (cgraph_node::dump): Likewise.
29274         * cgraph.h: Likewise.
29275         * cgraphunit.c (analyze_functions): Likewise.
29276         (symbol_table::compile): Likewise.
29277         * ipa-cp.c (print_all_lattices): Likewise.
29278         (determine_versionability): Likewise.
29279         (initialize_node_lattices): Likewise.
29280         (ipcp_verify_propagated_values): Likewise.
29281         (estimate_local_effects): Likewise.
29282         (update_profiling_info): Likewise.
29283         (create_specialized_node): Likewise.
29284         (perhaps_add_new_callers): Likewise.
29285         (decide_about_value): Likewise.
29286         (decide_whether_version_node): Likewise.
29287         (identify_dead_nodes): Likewise.
29288         (ipcp_store_bits_results): Likewise.
29289         * ipa-devirt.c (dump_targets): Likewise.
29290         (ipa_devirt): Likewise.
29291         * ipa-icf.c (sem_item::dump): Likewise.
29292         (sem_function::equals): Likewise.
29293         (sem_variable::equals): Likewise.
29294         (sem_item_optimizer::read_section): Likewise.
29295         (sem_item_optimizer::execute): Likewise.
29296         (congruence_class::dump): Likewise.
29297         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
29298         (dump_inline_summary): Likewise.
29299         (estimate_node_size_and_time): Likewise.
29300         (inline_analyze_function): Likewise.
29301         * ipa-inline-transform.c (inline_call): Likewise.
29302         * ipa-inline.c (report_inline_failed_reason): Likewise.
29303         (want_early_inline_function_p): Likewise.
29304         (edge_badness): Likewise.
29305         (update_edge_key): Likewise.
29306         (inline_small_functions): Likewise.
29307         * ipa-profile.c (ipa_profile): Likewise.
29308         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
29309         (ipa_make_edge_direct_to_target): Likewise.
29310         (remove_described_reference): Likewise.
29311         (ipa_impossible_devirt_target): Likewise.
29312         (propagate_controlled_uses): Likewise.
29313         (ipa_print_node_params): Likewise.
29314         (ipcp_transform_function): Likewise.
29315         * ipa-pure-const.c (pure_const_read_summary): Likewise.
29316         (propagate_pure_const): Likewise.
29317         * ipa-reference.c (generate_summary): Likewise.
29318         (read_write_all_from_decl): Likewise.
29319         (propagate): Likewise.
29320         (ipa_reference_read_optimization_summary): Likewise.
29321         * ipa-utils.c (ipa_merge_profiles): Likewise.
29322         * ipa.c (walk_polymorphic_call_targets): Likewise.
29323         (symbol_table::remove_unreachable_nodes): Likewise.
29324         (ipa_single_use): Likewise.
29325         * passes.c (execute_todo): Likewise.
29326         * predict.c (drop_profile): Likewise.
29327         * symtab.c (symtab_node::get_dump_name): New function.
29328         (symtab_node::dump_name): Likewise.
29329         (symtab_node::dump_asm_name): Likewise.
29330         (symtab_node::dump_references): Likewise.
29331         (symtab_node::dump_referring): Likewise.
29332         (symtab_node::dump_base): Likewise.
29333         (symtab_node::debug_symtab): Likewise.
29334         * tree-sra.c (convert_callers_for_node): Likewise.
29335         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
29336         * value-prof.c (init_node_map): Likewise.
29337
29338 2017-05-23  Martin Liska  <mliska@suse.cz>
29339
29340         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
29341         and symtab_node::debug_symtab to symbol_table::debug.
29342         * cgraphunit.c (analyze_functions): Use the renamed function.
29343         (symbol_table::compile): Likewise.
29344         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
29345         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
29346         * passes.c (execute_todo): Likewise.
29347         * symtab.c (symbol_table::dump): New function.
29348         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
29349
29350 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29351
29352         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
29353         that nonconst implies exec.
29354
29355 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29356
29357         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29358         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29359         (inline_edge_summary_vec): Turn into ...
29360         (ipa_call_summaries): ... this one.
29361         (redirect_to_unreachable, edge_set_predicate,
29362         evaluate_properties_for_edge, inline_summary_alloc,
29363         reset_ipa_call_summary, reset_inline_summary,
29364         inline_summary_t::duplicate): Update.
29365         (inline_edge_duplication_hook): Turn to ...
29366         (ipa_call_summary_t::duplicate): ... this one.
29367         (inline_edge_removal_hook): Turn to ...
29368         (ipa_call_summary_t::remove): ... this one.
29369         (dump_inline_edge_summary): Turn to ...
29370         (dump_ipa_call_summary): ... this one.
29371         (estimate_function_body_sizes): Update.
29372         (inline_update_callee_summaries): Update.
29373         (remap_edge_change_prob): Update.
29374         (remap_edge_summaries): Update.
29375         (inline_merge_summary): Update.
29376         (do_estimate_edge_time): Update.
29377         (inline_generate_summary): Update.
29378         (inline_read_section): Update.
29379         (inline_read_summary): Update.
29380         (inline_free_summary): Update.
29381         * ipa-inline.c (can_inline_edge_p): Update.
29382         (compute_inlined_call_time): Update.
29383         (want_inline_small_function_p): Update.
29384         (edge_badness): Update.
29385         (early_inliner): Update.
29386         * ipa-inline.h (inline_edge_summary): Turn to ...
29387         (ipa_call_summary): ... this one.
29388         (ipa_call_summary_t): New class.
29389         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29390         (ipa_call_summaries): New.
29391         (inline_edge_summary): Remove.
29392         (estimate_edge_growth): Update.
29393         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29394         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29395         * ipa-split.c (execute_split_functions): Update.
29396         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29397
29398 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29399
29400         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29401         attributes): Document rdrand effective target.
29402
29403 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29404
29405         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29406         attributes): Sort alphabetically.
29407
29408 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
29409
29410         * config/avr/genmultilib.awk: Use gsub instead of gensub.
29411
29412 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
29413
29414         PR target/80718
29415         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
29416         V2DF/V2DI splat into two separate patterns, one that handles
29417         registers, and the other that only handles memory.  Drop support
29418         for splatting from a GPR on ISA 2.07 and then splitting the
29419         splat into direct move and splat.
29420         (vsx_splat_<mode>_reg): Likewise.
29421         (vsx_splat_<mode>_mem): Likewise.
29422
29423 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
29424
29425         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
29426
29427 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
29428
29429         PR middle-end/80809
29430         * omp-low.c (finish_taskreg_remap): New function.
29431         (finish_taskreg_scan): If unit size of ctx->record_type
29432         is non-constant, unshare the size expression and replace
29433         decls in it with possible outer var refs.
29434
29435         PR middle-end/80809
29436         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
29437         GOVD_SHARED rather than GOVD_PRIVATE with it.
29438         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
29439         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
29440
29441         PR middle-end/80853
29442         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
29443         as last argument to build_outer_var_ref for pointer bases of array
29444         section reductions.
29445
29446 2017-05-19  Martin Sebor  <msebor@redhat.com>
29447
29448         * print-tree.c (print_node): Print DECL_READ_P flag.
29449
29450 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29451
29452         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
29453         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
29454         * cgraph.c: Likewise.
29455         * cgraphunit.c: Likewise.
29456         * gengtype.c: Likewise.
29457         * ipa-cp.c: Likewise.
29458         * ipa-devirt.c: Likewise.
29459         * ipa-icf.c: Likewise.
29460         * ipa-predicate.c: Likewise.
29461         * ipa-profile.c: Likewise.
29462         * ipa-prop.c: Likewise.
29463         * ipa-split.c: Likewise.
29464         * ipa.c: Likewise.
29465         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
29466         edge_predicate_pool, dump_inline_hints,
29467         inline_summary::account_size_time, redirect_to_unreachable,
29468         edge_set_predicate, set_hint_predicate,
29469         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
29470         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
29471         inline_summary_t::remove, remap_hint_predicate_after_duplication,
29472         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
29473         ipa_call_summary_t::remove, initialize_growth_caches,
29474         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
29475         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
29476         mark_modified, unmodified_parm_1, unmodified_parm,
29477         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
29478         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
29479         compute_bb_predicates, will_be_nonconstant_expr_predicate,
29480         will_be_nonconstant_predicate, record_modified_bb_info,
29481         get_minimal_bb, record_modified, param_change_prob,
29482         phi_result_unknown_predicate, predicate_for_phi_result,
29483         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
29484         estimate_function_body_sizes, compute_inline_parameters,
29485         compute_inline_parameters_for_curren, pass_data_inline_parameters,
29486         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
29487         inline_update_callee_summaries, remap_edge_change_prob,
29488         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
29489         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
29490         inline_analyze_function, inline_summary_t::insert,
29491         inline_generate_summary, read_ipa_call_summary, inline_read_section,
29492         inline_read_summary, write_ipa_call_summary, inline_write_summary,
29493         inline_free_summary): Move to ipa-fnsummary.h
29494         (predicate_t): Remove.
29495         * ipa-fnsummary.c: New file.
29496         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
29497         (enum inline_hints_vals, inline_hints, agg_position_info,
29498         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
29499         inline_summaries, ipa_call_summary, ipa_call_summary_t,
29500         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
29501         dump_inline_summary, dump_inline_hints, inline_generate_summary,
29502         inline_read_summary, inline_write_summary, inline_free_summary,
29503         inline_analyze_function, initialize_inline_failed,
29504         inline_merge_summary, inline_update_overall_summary,
29505         compute_inline_parameters): Move to ipa-fnsummary.h
29506         * ipa-fnsummary.h: New file.
29507         * ipa-inline-transform.h: Include ipa-inline.h.
29508         * ipa-inline.c: LIkewise.
29509
29510 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29511
29512         * ipa-inline.c (edge_badness): Use inlined_time instead of
29513         inline_summaries->get.
29514
29515 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29516
29517         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
29518
29519 2017-05-22  Nathan Sidwell  <nathan@acm.org>
29520
29521         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
29522         (fdump-lang): Document 'raw' option.
29523         * dumpfile.h (TDI_tu): Delete.
29524         * dumpfile.c (dump_files): Remove translation-unit.
29525         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
29526
29527 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
29528
29529         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
29530         command option from $(AWK) call.
29531         * config/avr/genmultilib.awk: Simplify and rewrite so that it
29532         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
29533         [FORMAT]: Remove handling of variable.
29534         * config/avr/t-multilib: Regenerate.
29535
29536 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29537
29538         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
29539         self_time.
29540         (dump_inline_summary): Do not print self_time.
29541         (estimate_function_body_sizes): Do not set self_time.
29542         (compute_inline_parameters): Likewise.
29543         (inline_read_section, inline_write_summary): Do not stream self_time.
29544         * ipa-inline.h (inline_summary): Drop self_time.
29545
29546 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29547
29548         * ipa-inline-analysis.c (account_size_time): Rename to ...
29549         (inline_summary::account_size_time): ... this one.
29550         (reset_ipa_call_summary): Turn to ...
29551         (ipa_call_summary::reset): ... this one.
29552         (reset_inline_summary): Turn to ...
29553         (inline_summary::reset): ... this one.
29554         (inline_summary_t::remove): Update.
29555         (inline_summary_t::duplicate): Update.
29556         (ipa_call_summary_t::remove): Update.
29557         (dump_inline_summary): Update.
29558         (estimate_function_body_sizes): Update.
29559         (compute_inline_parameters): Update.
29560         (estimate_node_size_and_time): Update.
29561         (inline_merge_summary): Update.
29562         (inline_update_overall_summary): Update.
29563         (inline_read_section): Update.
29564         (inline_write_summary): Update.
29565         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
29566         add account_size_time and reset member functions.
29567         (ipa_call_summary): Add reset function.
29568         * ipa-predicate.h (predicate::operator &): Constify.
29569
29570 2017-05-22  Richard Biener  <rguenther@suse.de>
29571
29572         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
29573
29574 2017-05-19  Jason Merrill  <jason@redhat.com>
29575
29576         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
29577
29578 2017-05-19  Marek Polacek  <polacek@redhat.com>
29579
29580         PR sanitizer/80800
29581         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
29582         TYPE_OVERFLOW_WRAPS checks.
29583
29584 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
29585
29586         * tree-core.h (enum omp_clause_default_kind): Add
29587         "OMP_CLAUSE_DEFAULT_PRESENT".
29588         * tree-pretty-print.c (dump_omp_clause): Handle it.
29589         * gimplify.c (enum gimplify_omp_var_data): Add
29590         "GOVD_MAP_FORCE_PRESENT".
29591         (gimplify_adjust_omp_clauses_1): Map it to
29592         "GOMP_MAP_FORCE_PRESENT".
29593         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
29594
29595         * gimplify.c (oacc_default_clause): Clarify.
29596
29597 2017-05-19  Nathan Sidwell  <nathan@acm.org>
29598
29599         LANG_HOOK_REGISTER_DUMPS
29600         * toplev.c (general_init): Call register dump lang hook.
29601         * doc/invoke.texi: Document -fdump-lang option family.
29602         * dumpfile.c (dump_files): Remove class dump here.
29603         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
29604         * dumpfile.h (tree_dump_index): Remove TDI_class.
29605         * langhooks-def.h (lhd_register_dumps): Declare.
29606         (LANG_HOOKS_REGISTER_DUMPS): Define.
29607         (LANG_HOOKS_INITIALIZER): Add it.
29608         * langhooks.c (lhd_register_dumps): Define.
29609         * langhooks.h (struct lang_hooks): Add register_dumps.
29610
29611 2017-05-19  Nathan Sidwell  <nathan@acm.org>
29612
29613         * context.h (context::set_passes): New.
29614         * context.c (context::context): Do not create pass manager.
29615         * toplev.c (general_init): Create pass manager here.
29616
29617 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
29618
29619         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
29620         use this splitter if two add or or instructions would also work for
29621         the constant we want to generate.
29622
29623 2017-05-19  Richard Biener  <rguenther@suse.de>
29624
29625         PR build/80821
29626         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
29627         predicate evaluation.
29628
29629 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
29630
29631         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
29632         add ctor.
29633         * ipa-inline.c (want_inline_small_function_p): Do not cast to
29634         unsigned.
29635
29636 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
29637
29638         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29639         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29640         (inline_edge_summary_vec): Turn into ...
29641         (ipa_call_summaries): ... this one.
29642         (redirect_to_unreachable, edge_set_predicate,
29643         evaluate_properties_for_edge, inline_summary_alloc,
29644         reset_ipa_call_summary, reset_inline_summary,
29645         inline_summary_t::duplicate): Update.
29646         (inline_edge_duplication_hook): Turn to ...
29647         (ipa_call_summary_t::duplicate): ... this one.
29648         (inline_edge_removal_hook): Turn to ...
29649         (ipa_call_summary_t::remove): ... this one.
29650         (dump_inline_edge_summary): Turn to ...
29651         (dump_ipa_call_summary): ... this one.
29652         (estimate_function_body_sizes): Update.
29653         (inline_update_callee_summaries): Update.
29654         (remap_edge_change_prob): Update.
29655         (remap_edge_summaries): Update.
29656         (inline_merge_summary): Update.
29657         (do_estimate_edge_time): Update.
29658         (inline_generate_summary): Update.
29659         (inline_read_section): Update.
29660         (inline_read_summary): Update.
29661         (inline_free_summary): Update.
29662         * ipa-inline.c (can_inline_edge_p): Update.
29663         (compute_inlined_call_time): Update.
29664         (want_inline_small_function_p): Update.
29665         (edge_badness): Update.
29666         (early_inliner): Update.
29667         * ipa-inline.h (inline_edge_summary): Turn to ...
29668         (ipa_call_summary): ... this one.
29669         (ipa_call_summary_t): New class.
29670         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29671         (ipa_call_summaries): New.
29672         (inline_edge_summary): Remove.
29673         (estimate_edge_growth): Update.
29674         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29675         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29676         * ipa-split.c (execute_split_functions): Update.
29677         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29678
29679 2017-05-19  Richard Biener  <rguenther@suse.de>
29680
29681         PR middle-end/80764
29682         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
29683
29684 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
29685
29686         * config/rs6000/rs6000.c (struct machine_function): Add field
29687         fpr_is_wrapped_separately.
29688         (rs6000_get_separate_components): Use 64 components.  Handle the
29689         new FPR components.
29690         (rs6000_components_for_bb): Handle the FPR components.
29691         (rs6000_emit_prologue_components): Handle the FPR components.
29692         (rs6000_emit_epilogue_components): Handle the FPR components.
29693         (rs6000_set_handled_components): Handle the FPR components.
29694         (rs6000_emit_prologue): Don't output prologue code for those FPRs
29695         that are already separately shrink-wrapped.
29696         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
29697         that are already separately shrink-wrapped.
29698
29699 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
29700
29701         PR target/80510
29702         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
29703         New predicate.
29704
29705         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
29706         (define_peephole2 for Altivec d-form load): Add peepholes to catch
29707         cases where the register allocator uses a move and an offsettable
29708         memory operation to/from a FPR register on ISA 2.06/2.07.
29709         (define_peephole2 for Altivec d-form store): Likewise.
29710
29711 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
29712
29713         PR target/80799
29714         * config/i386/mmx.md (*mov<mode>_internal): Enable
29715         alternatives 11, 12, 13 and 14 also for 32bit targets.
29716         Remove alternatives 15, 16, 17 and 18.
29717         * config/i386/sse.md (vec_concatv2di): Change
29718         alternative (!x, *y) to (x, ?!*Yn).
29719
29720 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
29721
29722         * dumpfile.h (enum dump_kind): Remove stray comma.
29723
29724 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
29725
29726         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
29727         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
29728         predicate::num_conditions
29729         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
29730         (CHANGED): turn into predicate::changed.
29731         (agg_position_info): Move to ipa-predicate.h
29732         (add_condition, predicate::add_clause, predicate::operator &=,
29733         predicate::or_with, predicate::evaluate, predicate::probability,
29734         dump_condition, dump_clause, predicate::dump,
29735         predicate::remap_after_duplication, predicate::remap_after_inlining,
29736         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
29737         (evaluate_conditions_for_known_args): Update.
29738         (set_cond_stmt_execution_predicate): Update.
29739         * ipa-inline.h: Include ipa-predicate.h
29740         (condition, inline_param_summary, conditions, agg_position_info,
29741         predicate): Move to ipa-predicate.h
29742         * ipa-predicate.c: New file.
29743         * ipa-predicate.h: New file.
29744
29745 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
29746
29747         * final.c (leaf_function_p): Check we are not in a sequence.
29748
29749 2017-05-18  Martin Liska  <mliska@suse.cz>
29750
29751         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
29752         * dumpfile.c (dump_register): Use new enum dump_kind.
29753         (get_dump_file_name): Likewise.
29754         (dump_enable_all): Likewise.
29755         (dump_switch_p_1): Likewise.
29756         (enable_rtl_dump_file): Remove usage of TDF_RTL.
29757         * dumpfile.h (enum dump_kind): New enum type.
29758         (struct dump_file_info): Create constructor and
29759         format fields and comments.
29760         * passes.c (pass_manager::register_one_dump_file):
29761         Use num dump_kind.
29762         * statistics.c (statistics_early_init): Likewise.
29763         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
29764         TDF_TREE with TDF_SLIM.
29765         (gather_memory_references_ref): Likewise.
29766
29767 2017-05-18  Martin Liska  <mliska@suse.cz>
29768
29769         * vec.h (struct vnull): Use it.
29770
29771 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
29772
29773         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
29774         (true_predicate, false_predicate, true_predicate_p,
29775         false_predicate_p): Remove.
29776         (single_cond_predicate, not_inlined_predicate): Turn to member function
29777         in ipa-inline.h
29778         (add_condition): Update.
29779         (add_clause): Turn to...
29780         (predicate::add_clause): ... this one; update; allow passing NULL
29781         as parameter.
29782         (and_predicates): Turn to ...
29783         (predicate::operator &=): ... this one.
29784         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
29785         (or_predicates): Turn to ...
29786         (predicate::or_with): ... this one.
29787         (evaluate_predicate): Turn to ...
29788         (predicate::evaluate): ... this one.
29789         (predicate_probability): Turn to ...
29790         (predicate::probability): ... this one.
29791         (dump_condition): Update.
29792         (dump_predicate): Turn to ...
29793         (predicate::dump): ... this one.
29794         (account_size_time): Update.
29795         (edge_set_predicate): Update.
29796         (set_hint_predicate): UPdate.
29797         (evaluate_conditions_for_known_args): Update.
29798         (evaluate_properties_for_edge): Update.
29799         (remap_predicate_after_duplication): Turn to...
29800         (predicate::remap_after_duplication): ... this one.
29801         (remap_hint_predicate_after_duplication): Update.
29802         (inline_summary_t::duplicate): UPdate.
29803         (dump_inline_edge_summary): Update.
29804         (dump_inline_summary): Update.
29805         (set_cond_stmt_execution_predicate): Update.
29806         (set_switch_stmt_execution_predicate): Update.
29807         (compute_bb_predicates): Update.
29808         (will_be_nonconstant_expr_predicate): Update.
29809         (will_be_nonconstant_predicate): Update.
29810         (phi_result_unknown_predicate): Update.
29811         (predicate_for_phi_result): Update.
29812         (array_index_predicate): Update.
29813         (estimate_function_body_sizes): Update.
29814         (estimate_node_size_and_time): Update.
29815         (estimate_ipcp_clone_size_and_time): Update.
29816         (remap_predicate): Rename to ...
29817         (predicate::remap_after_inlining): ... this one.
29818         (remap_hint_predicate): Update.
29819         (inline_merge_summary): Update.
29820         (inline_update_overall_summary): Update.
29821         (estimate_size_after_inlining): Update.
29822         (read_predicate): Rename to ...
29823         (predicate::stream_in): ... this one.
29824         (read_inline_edge_summary): Update.
29825         (write_predicate): Rename to ...
29826         (predicate::stream_out): ... this one.
29827         (write_inline_edge_summary): Update.
29828         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
29829         (clause_t): Turn to uint32_t
29830         (predicate): Turn to class; implement constructor and operators
29831         ==, !=, &
29832         (size_time_entry): Update.
29833         (inline_summary): Update.
29834         (inline_edge_summary): Update.
29835
29836 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
29837
29838         * fold-const.c (fold_binary_loc): Move transformation...
29839         * match.pd (C - X CMP X): ... here.
29840
29841 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
29842
29843         * config/sparc/sparc.c (sparc_option_override): Set function
29844         alignment for -mcpu=niagara7 to 64 to match the I$ line.
29845         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
29846         latency to 1.
29847         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
29848         latency to 2.
29849         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
29850
29851 2017-05-18  Marek Polacek  <polacek@redhat.com>
29852
29853         PR sanitizer/80797
29854         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
29855         (pass_ubsan::execute): Call gimple_assign_single_p instead of
29856         gimple_assign_load_p.
29857
29858 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
29859
29860         PR middle-end/80692
29861         * real.c (do_compare): Give decimal_do_compare preference over
29862         comparing just the signs.
29863
29864 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
29865
29866         * doc/md.texi (Canonicalization of Instructions): Describe the
29867         canonical form of instructions that inherently set a condition
29868         code register.
29869
29870 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
29871
29872         PR middle-end/80775
29873         * tree-cfg.c: Move deletion of unreachable case statements to after
29874         the merging of consecutive case labels.
29875
29876 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29877
29878         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
29879         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
29880         restoring of callee-saved registers.
29881
29882 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
29883
29884         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
29885         * config/visium/visium.c (single_set_and_flags): Likewise.
29886         * config/visium/visium.md (Substitutions): Likewise.
29887
29888 2017-05-17  Martin Liska  <mliska@suse.cz>
29889
29890         * cfg.c: Introduce dump_flags_t type and
29891         use it instead of int type.
29892         * cfg.h: Likewise.
29893         * cfghooks.c: Likewise.
29894         * cfghooks.h (struct cfg_hooks): Likewise.
29895         * cfgrtl.c: Likewise.
29896         * cfgrtl.h: Likewise.
29897         * cgraph.c (cgraph_node::get_body): Likewise.
29898         * coretypes.h: Likewise.
29899         * domwalk.c: Likewise.
29900         * domwalk.h: Likewise.
29901         * dumpfile.c (struct dump_option_value_info): Likewise.
29902         (dump_enable_all): Likewise.
29903         (dump_switch_p_1): Likewise.
29904         (opt_info_switch_p): Likewise.
29905         * dumpfile.h (enum tree_dump_index): Likewise.
29906         (struct dump_file_info): Likewise.
29907         * genemit.c: Likewise.
29908         * generic-match-head.c: Likewise.
29909         * gengtype.c (open_base_files): Likewise.
29910         * gimple-pretty-print.c: Likewise.
29911         * gimple-pretty-print.h: Likewise.
29912         * graph.c (print_graph_cfg): Likewise.
29913         * graphite-scop-detection.c (dot_all_sese): Likewise.
29914         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
29915         * loop-unroll.c (report_unroll): Likewise.
29916         * passes.c (pass_manager::register_one_dump_file): Likewise.
29917         * print-tree.c: Likewise.
29918         * statistics.c: Likewise.
29919         * tree-cfg.c: Likewise.
29920         * tree-cfg.h: Likewise.
29921         * tree-dfa.c: Likewise.
29922         * tree-dfa.h: Likewise.
29923         * tree-dump.c (dump_function): Likewise.
29924         * tree-dump.h (struct dump_info): Likewise.
29925         * tree-pretty-print.c: Likewise.
29926         * tree-pretty-print.h: Likewise.
29927         * tree-ssa-live.c: Likewise.
29928         * tree-ssa-live.h: Likewise.
29929         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
29930         * tree-vect-loop.c: Likewise.
29931         * tree-vect-slp.c: Likewise.
29932
29933 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
29934             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29935
29936         PR tree-optimization/80457
29937         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
29938         of all arguments to a statement as scalar_to_vec operations.
29939         (vectorizable_call): Adjust call to vect_model_simple_cost for
29940         new parameter.
29941         (vectorizable_conversion): Likewise.
29942         (vectorizable_assignment): Likewise.
29943         (vectorizable_shift): Likewise.
29944         (vectorizable_operation): Likewise.
29945         (vectorizable_comparison): Likewise.
29946         (vect_is_simple_cond): Record the def types for operands.
29947         (vectorizable_condition): Likewise, call vect_model_simple_cost.
29948         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
29949         for statement argument count.
29950
29951 2017-05-16  Carl Love  <cel@us.ibm.com>
29952
29953         * config/rs6000/rs6000-c: Add support for built-in functions
29954         vector unsigned long long vec_bperm (vector unsigned long long,
29955                                              vector unsigned char)
29956         vector signed long long vec_mule (vector signed int,
29957                                           vector signed int)
29958         vector unsigned long long vec_mule (vector unsigned int,
29959                                             vector unsigned int)
29960         vector signed long long vec_mulo (vector signed int,
29961                                           vector signed int)
29962         vector unsigned long long vec_mulo (vector unsigned int,
29963                                             vector unsigned int)
29964         vector signed char vec_sldw (vector signed char,
29965                                      vector signed char,
29966                                      const int)
29967         vector unsigned char vec_sldw (vector unsigned char,
29968                                        vector unsigned char,
29969                                        const int)
29970         vector signed short vec_sldw (vector signed short,
29971                                       vector signed short,
29972                                       const int)
29973         vector unsigned short vec_sldw (vector unsigned short,
29974                                         vector unsigned short,
29975                                         const int)
29976         vector signed int vec_sldw (vector signed int,
29977                                     vector signed int,
29978                                     const int)
29979         vector unsigned int vec_sldw (vector unsigned int,
29980                                       vector unsigned int,
29981                                       const int)
29982         vector signed long long vec_sldw (vector signed long long,
29983                                           vector signed long long,
29984                                           const int)
29985         vector unsigned long long vec_sldw (vector unsigned long long,
29986                                             vector unsigned long long,
29987                                             const int)
29988         * config/rs6000/rs6000-c: Add support for built-in functions
29989         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
29990         * config/rs6000/altivec.h: Add defintion for vec_sldw.
29991         * doc/extend.texi: Update the built-in documentation for the
29992         new built-in functions.
29993
29994 2017-05-16  Marek Polacek  <polacek@redhat.com>
29995
29996         PR sanitizer/80536
29997         PR sanitizer/80386
29998         * tree.c (save_expr): Don't fold the expression.
29999
30000 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
30001
30002         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
30003         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
30004         and (?*y,m).  Update insn attributes.
30005
30006 2017-05-16  Martin Liska  <mliska@suse.cz>
30007
30008         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
30009         flags argument of print_gimple_stmt, print_gimple_expr,
30010         print_generic_stmt and print_generic_expr.
30011         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
30012         * coretypes.h: Likewise.
30013         * except.c (dump_eh_tree): Likewise.
30014         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
30015         * gimple-pretty-print.h: Likewise.
30016         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
30017         (backprop::push_to_worklist): Likewise.
30018         (backprop::pop_from_worklist): Likewise.
30019         (backprop::process_use): Likewise.
30020         (backprop::intersect_uses): Likewise.
30021         (note_replacement): Likewise.
30022         * gimple-ssa-store-merging.c
30023         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
30024         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
30025         (pass_store_merging::execute): Likewise.
30026         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
30027         (ssa_base_cand_dump_callback): Likewise.
30028         (dump_incr_vec): Likewise.
30029         (replace_refs): Likewise.
30030         (replace_mult_candidate): Likewise.
30031         (create_add_on_incoming_edge): Likewise.
30032         (create_phi_basis): Likewise.
30033         (insert_initializers): Likewise.
30034         (all_phi_incrs_profitable): Likewise.
30035         (introduce_cast_before_cand): Likewise.
30036         (replace_one_candidate): Likewise.
30037         * gimplify.c (gimplify_expr): Likewise.
30038         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
30039         (set_rename): Likewise.
30040         (rename_uses): Likewise.
30041         (copy_loop_phi_nodes): Likewise.
30042         (add_close_phis_to_merge_points): Likewise.
30043         (copy_loop_close_phi_args): Likewise.
30044         (copy_cond_phi_args): Likewise.
30045         (graphite_copy_stmts_from_block): Likewise.
30046         (translate_pending_phi_nodes): Likewise.
30047         * graphite-poly.c (print_pdr): Likewise.
30048         (dump_gbb_cases): Likewise.
30049         (dump_gbb_conditions): Likewise.
30050         (print_scop_params): Likewise.
30051         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
30052         (build_cross_bb_scalars_use): Likewise.
30053         (gather_bbs::before_dom_children): Likewise.
30054         * hsa-dump.c (dump_hsa_immed): Likewise.
30055         * ipa-cp.c (print_ipcp_constant_value): Likewise.
30056         (get_replacement_map): Likewise.
30057         * ipa-inline-analysis.c (dump_condition): Likewise.
30058         (estimate_function_body_sizes): Likewise.
30059         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
30060         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
30061         * ipa-prop.c (ipa_dump_param): Likewise.
30062         (ipa_print_node_jump_functions_for_edge): Likewise.
30063         (ipa_modify_call_arguments): Likewise.
30064         (ipa_modify_expr): Likewise.
30065         (ipa_dump_param_adjustments): Likewise.
30066         (ipa_dump_agg_replacement_values): Likewise.
30067         (ipcp_modif_dom_walker::before_dom_children): Likewise.
30068         * ipa-pure-const.c (check_stmt): Likewise.
30069         (pass_nothrow::execute): Likewise.
30070         * ipa-split.c (execute_split_functions): Likewise.
30071         * omp-offload.c (dump_oacc_loop_part): Likewise.
30072         (dump_oacc_loop): Likewise.
30073         * trans-mem.c (tm_log_emit): Likewise.
30074         (tm_memopt_accumulate_memops): Likewise.
30075         (dump_tm_memopt_set): Likewise.
30076         (dump_tm_memopt_transform): Likewise.
30077         * tree-cfg.c (gimple_verify_flow_info): Likewise.
30078         (print_loop): Likewise.
30079         * tree-chkp-opt.c (chkp_print_addr): Likewise.
30080         (chkp_gather_checks_info): Likewise.
30081         (chkp_get_check_result): Likewise.
30082         (chkp_remove_check_if_pass): Likewise.
30083         (chkp_use_outer_bounds_if_possible): Likewise.
30084         (chkp_reduce_bounds_lifetime): Likewise.
30085         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
30086         (chkp_mark_completed_bounds): Likewise.
30087         (chkp_register_incomplete_bounds): Likewise.
30088         (chkp_mark_invalid_bounds): Likewise.
30089         (chkp_maybe_copy_and_register_bounds): Likewise.
30090         (chkp_build_returned_bound): Likewise.
30091         (chkp_get_bound_for_parm): Likewise.
30092         (chkp_build_bndldx): Likewise.
30093         (chkp_get_bounds_by_definition): Likewise.
30094         (chkp_generate_extern_var_bounds): Likewise.
30095         (chkp_get_bounds_for_decl_addr): Likewise.
30096         * tree-chrec.c (chrec_apply): Likewise.
30097         * tree-data-ref.c (dump_data_reference): Likewise.
30098         (dump_subscript): Likewise.
30099         (dump_data_dependence_relation): Likewise.
30100         (analyze_overlapping_iterations): Likewise.
30101         * tree-inline.c (expand_call_inline): Likewise.
30102         (tree_function_versioning): Likewise.
30103         * tree-into-ssa.c (dump_defs_stack): Likewise.
30104         (dump_currdefs): Likewise.
30105         (dump_names_replaced_by): Likewise.
30106         (dump_update_ssa): Likewise.
30107         (update_ssa): Likewise.
30108         * tree-object-size.c (pass_object_sizes::execute): Likewise.
30109         * tree-parloops.c (build_new_reduction): Likewise.
30110         (try_create_reduction_list): Likewise.
30111         (ref_conflicts_with_region): Likewise.
30112         (oacc_entry_exit_ok_1): Likewise.
30113         (oacc_entry_exit_single_gang): Likewise.
30114         * tree-pretty-print.h: Likewise.
30115         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
30116         (get_scalar_evolution): Likewise.
30117         (add_to_evolution): Likewise.
30118         (get_loop_exit_condition): Likewise.
30119         (analyze_evolution_in_loop): Likewise.
30120         (analyze_initial_condition): Likewise.
30121         (analyze_scalar_evolution): Likewise.
30122         (instantiate_scev): Likewise.
30123         (number_of_latch_executions): Likewise.
30124         (gather_chrec_stats): Likewise.
30125         (final_value_replacement_loop): Likewise.
30126         (scev_const_prop): Likewise.
30127         * tree-sra.c (dump_access): Likewise.
30128         (disqualify_candidate): Likewise.
30129         (create_access): Likewise.
30130         (reject): Likewise.
30131         (maybe_add_sra_candidate): Likewise.
30132         (create_access_replacement): Likewise.
30133         (analyze_access_subtree): Likewise.
30134         (analyze_all_variable_accesses): Likewise.
30135         (sra_modify_assign): Likewise.
30136         (initialize_constant_pool_replacements): Likewise.
30137         (find_param_candidates): Likewise.
30138         (decide_one_param_reduction): Likewise.
30139         (replace_removed_params_ssa_names): Likewise.
30140         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
30141         * tree-ssa-copy.c (dump_copy_of): Likewise.
30142         (copy_prop_visit_cond_stmt): Likewise.
30143         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
30144         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
30145         (record_equivalences_from_stmt): Likewise.
30146         * tree-ssa-dse.c (compute_trims): Likewise.
30147         (delete_dead_call): Likewise.
30148         (delete_dead_assignment): Likewise.
30149         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
30150         (forward_propagate_into_cond): Likewise.
30151         (pass_forwprop::execute): Likewise.
30152         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
30153         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
30154         Likewise.
30155         (move_computations_worker): Likewise.
30156         (execute_sm): Likewise.
30157         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
30158         (remove_exits_and_undefined_stmts): Likewise.
30159         (remove_redundant_iv_tests): Likewise.
30160         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
30161         (adjust_iv_update_pos): Likewise.
30162         * tree-ssa-math-opts.c (bswap_replace): Likewise.
30163         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
30164         (value_replacement): Likewise.
30165         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30166         * tree-ssa-pre.c (print_pre_expr): Likewise.
30167         (get_representative_for): Likewise.
30168         (create_expression_by_pieces): Likewise.
30169         (insert_into_preds_of_block): Likewise.
30170         (eliminate_insert): Likewise.
30171         (eliminate_dom_walker::before_dom_children): Likewise.
30172         (eliminate): Likewise.
30173         (remove_dead_inserted_code): Likewise.
30174         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
30175         * tree-ssa-reassoc.c (get_rank): Likewise.
30176         (eliminate_duplicate_pair): Likewise.
30177         (eliminate_plus_minus_pair): Likewise.
30178         (eliminate_not_pairs): Likewise.
30179         (undistribute_ops_list): Likewise.
30180         (eliminate_redundant_comparison): Likewise.
30181         (update_range_test): Likewise.
30182         (optimize_range_tests_var_bound): Likewise.
30183         (optimize_vec_cond_expr): Likewise.
30184         (rewrite_expr_tree): Likewise.
30185         (rewrite_expr_tree_parallel): Likewise.
30186         (linearize_expr): Likewise.
30187         (break_up_subtract): Likewise.
30188         (linearize_expr_tree): Likewise.
30189         (attempt_builtin_powi): Likewise.
30190         (attempt_builtin_copysign): Likewise.
30191         (transform_stmt_to_copy): Likewise.
30192         (transform_stmt_to_multiply): Likewise.
30193         (dump_ops_vector): Likewise.
30194         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
30195         (print_scc): Likewise.
30196         (set_ssa_val_to): Likewise.
30197         (visit_reference_op_store): Likewise.
30198         (visit_use): Likewise.
30199         (sccvn_dom_walker::before_dom_children): Likewise.
30200         (run_scc_vn): Likewise.
30201         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
30202         Likewise.
30203         (expr_hash_elt::print): Likewise.
30204         (const_and_copies::pop_to_marker): Likewise.
30205         (const_and_copies::record_const_or_copy_raw): Likewise.
30206         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
30207         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
30208         (dump_predicates): Likewise.
30209         (find_uninit_use): Likewise.
30210         (warn_uninitialized_phi): Likewise.
30211         (pass_late_warn_uninitialized::execute): Likewise.
30212         * tree-ssa.c (verify_vssa): Likewise.
30213         (verify_ssa): Likewise.
30214         (maybe_optimize_var): Likewise.
30215         * tree-vrp.c (dump_value_range): Likewise.
30216         (dump_all_value_ranges): Likewise.
30217         (dump_asserts_for): Likewise.
30218         (register_edge_assert_for_2): Likewise.
30219         (vrp_visit_cond_stmt): Likewise.
30220         (vrp_visit_switch_stmt): Likewise.
30221         (vrp_visit_stmt): Likewise.
30222         (vrp_visit_phi_node): Likewise.
30223         (simplify_cond_using_ranges_1): Likewise.
30224         (fold_predicate_in): Likewise.
30225         (evrp_dom_walker::before_dom_children): Likewise.
30226         (evrp_dom_walker::push_value_range): Likewise.
30227         (evrp_dom_walker::pop_value_range): Likewise.
30228         (execute_early_vrp): Likewise.
30229
30230 2017-05-16  Richard Biener  <rguenther@suse.de>
30231
30232         * dwarf2out.c (loc_list_from_tree_1): Do not create
30233         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
30234
30235 2017-05-16  Richard Biener  <rguenther@suse.de>
30236
30237         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
30238         just generated.
30239         (note_variable_value_in_expr): If we resolved the decl ref
30240         do not push to the stack.
30241
30242 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
30243
30244         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
30245         operations in fast-math mode.
30246         (vaddq_f16): Likewise.
30247         (vmul_f16): Likewise.
30248         (vmulq_f16): Likewise.
30249         (vsub_f16): Likewise.
30250         (vsubq_f16): Likewise.
30251         * config/arm/neon.md (add<mode>3): New.
30252         (sub<mode>3): New.
30253         (fma:<VH:mode>3): New.  Also remove outdated comment.
30254         (mul<mode>3): New.
30255
30256 2017-05-16  Martin Liska  <mliska@suse.cz>
30257
30258         PR ipa/79849.
30259         PR ipa/79850.
30260         * ipa-devirt.c (warn_types_mismatch): Fix typo.
30261         (odr_types_equivalent_p): Likewise.
30262
30263 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
30264
30265         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
30266
30267 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
30268
30269         PR target/80425
30270         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
30271         non-interunit SSE move alternatives with '?'.
30272         (zero-extendsidi peephole2): New peephole to skip intermediate
30273         general register in SSE zero-extend sequence.
30274
30275 2017-05-15  Jeff Law  <law@redhat.com>
30276
30277         * reorg.c (relax_delay_slots): Create a new variable to hold
30278         the temporary target rather than clobbering TARGET_LABEL.
30279
30280         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
30281         missing argument to extract_bit_field call.
30282         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
30283
30284 2017-05-15  Martin Liska  <mliska@suse.cz>
30285
30286         PR driver/31468
30287         * gcc.c (process_command): Do not allow empty argument of -o option.
30288
30289 2017-05-15  Renlin Li  <renlin.li@arm.com>
30290
30291         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
30292         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
30293         * config/aarch64/constraints.md (Usf): Add long call check.
30294         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
30295         (call_value): Likewise.
30296         (sibcall): Likewise.
30297         (sibcall_value): Likewise.
30298         (call_insn): New.
30299         (call_value_insn): New.
30300         (sibcall_insn): Update rtx pattern.
30301         (sibcall_value_insn): Likewise.
30302         (call_internal): Remove.
30303         (call_value_internal): Likewise.
30304         (sibcall_internal): Likewise.
30305         (sibcall_value_internal): Likewise.
30306         (call_reg): Likewise.
30307         (call_symbol): Likewise.
30308         (call_value_reg): Likewise.
30309         (call_value_symbol): Likewise.
30310
30311 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
30312
30313         PR target/80600
30314         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
30315
30316 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
30317
30318         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
30319         compatible with CCGOCmode and with CCZmode.
30320
30321 2017-05-14  Martin Sebor  <msebor@redhat.com>
30322
30323         PR middle-end/77671
30324         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
30325         (gimple_fold_builtin_snprintf): Same.
30326         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
30327         (gimple_fold_builtin_snprintf): Same.
30328         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
30329         of character types.
30330         (is_call_safe): New function.
30331         (try_substitute_return_value): Call it.
30332         (try_simplify_call): New function.
30333         (pass_sprintf_length::handle_gimple_call): Call it.
30334
30335 2017-05-14  Martin Sebor  <msebor@redhat.com>
30336
30337         PR middle-end/80669
30338         * builtins.c (expand_builtin_stpncpy): Simplify.
30339
30340 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
30341
30342         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
30343         * config/i386/i386.h
30344         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
30345         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
30346         (struct machine_function): Add new members call_ms2sysv,
30347         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
30348         (struct machine_frame_state): New fields sp_realigned and
30349         sp_realigned_offset.
30350         * config/i386/i386.c
30351         (enum xlogue_stub): New enum.
30352         (enum xlogue_stub_sets): New enum.
30353         (class xlogue_layout): New class.
30354         (struct ix86_frame): New fields stack_realign_allocate_offset,
30355         stack_realign_offset and outlined_save_offset.  Modify comments to
30356         detail stack layout when using out-of-line stubs.
30357         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
30358         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
30359         -mcall-ms2sysv-xlogues.
30360         (stub_managed_regs): New static variable.
30361         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
30362         registers managed by out-of-line stub.
30363         (disable_call_ms2sysv_xlogues): New function.
30364         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
30365         m->call_ms2sysv when appropriate and compute frame layout for
30366         out-of-line stubs.
30367         (sp_valid_at, fp_valid_at): New inline functions.
30368         (choose_basereg): New function.
30369         (choose_baseaddr): Add align parameter, use choose_basereg and modify
30370         all callers.
30371         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
30372         Use align parameter of choose_baseaddr to generated aligned SSE movs
30373         when possible.
30374         (pro_epilogue_adjust_stack): Modify to track
30375         machine_frame_state::sp_realigned.
30376         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
30377         (ix86_nsaved_sseregs): Likewise.
30378         (ix86_emit_save_regs): Likewise.
30379         (ix86_emit_save_regs_using_mov): Likewise.
30380         (ix86_emit_save_sse_regs_using_mov): Likewise.
30381         (get_scratch_register_on_entry): Likewise.
30382         (gen_frame_set): New function.
30383         (gen_frame_load): Likewise.
30384         (gen_frame_store): Likewise.
30385         (emit_outlined_ms2sysv_save): Likewise.
30386         (emit_outlined_ms2sysv_restore): Likewise.
30387         (ix86_expand_prologue): Modify stack re-alignment code and call
30388         emit_outlined_ms2sysv_save when appropriate.
30389         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
30390         parameter rtx_insn *insn, which allows the function to be used to only
30391         generate the notes.
30392         (ix86_expand_epilogue): Modify validity checks of frame and stack
30393         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
30394         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
30395         * config/i386/predicates.md
30396         (save_multiple): New predicate.
30397         (restore_multiple): Likewise.
30398         * config/i386/sse.md
30399         (save_multiple<mode>): New pattern.
30400         (save_multiple_realign<mode>): Likewise.
30401         (restore_multiple<mode>): Likewise.
30402         (restore_multiple_and_return<mode>): Likewise.
30403         (restore_multiple_leave_return<mode>): Likewise.
30404         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
30405
30406 2017-05-14  Julia Koval  <julia.koval@intel.com>
30407
30408         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
30409         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
30410         (__builtin_ia32_xsetbv): New builtins.
30411         * config/i386/i386.c (ix86_expand_special_args_builtin):
30412         Process new types.
30413         (ix86_expand_builtin): Special expand for new intrinsics.
30414         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
30415         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
30416         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
30417
30418 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30419
30420         * cfganal.c (inverted_post_order_compute): Change argument type
30421         to vec *.
30422         * cfganal.h (inverted_post_order_compute): Adjust prototype.
30423         * df-core.c (rest_of_handle_df_initialize): Adjust.
30424         (rest_of_handle_df_finish): Likewise.
30425         (df_analyze_1): Likewise.
30426         (df_analyze): Likewise.
30427         (loop_inverted_post_order_compute): Change argument to be a vec *.
30428         (df_analyze_loop): Adjust.
30429         (df_get_n_blocks): Likewise.
30430         (df_get_postorder): Likewise.
30431         * df.h (struct df_d): Change field to be a vec.
30432         * lcm.c (compute_laterin): Adjust.
30433         (compute_available): Likewise.
30434         * lra-lives.c (lra_create_live_ranges_1): Likewise.
30435         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
30436         * tree-ssa-pre.c (compute_antic): Likewise.
30437
30438 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30439
30440         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
30441         (depth_first_search::depth_first_search): Change structure init
30442         function to this constructor.
30443         (depth_first_search::add_bb): Rename function to this member.
30444         (depth_first_search::execute): Likewise.
30445         (flow_dfs_compute_reverse_finish): Adjust.
30446
30447 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30448
30449         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
30450         (longest_simple_path): Likewise.
30451         * shrink-wrap.c (spread_components): Likewise.
30452         (disqualify_problematic_components): Likewise.
30453         (emit_common_heads_for_components): Likewise.
30454         (emit_common_tails_for_components): Likewise.
30455         (insert_prologue_epilogue_for_components): Likewise.
30456
30457 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30458
30459         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
30460         auto_sbitmap.
30461
30462 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30463
30464         * df-core.c (df_set_blocks): Start using auto_bitmap.
30465         (df_compact_blocks): Likewise.
30466         * df-problems.c (df_rd_confluence_n): Likewise.
30467         * df-scan.c (df_insn_rescan_all): Likewise.
30468         (df_process_deferred_rescans): Likewise.
30469         (df_update_entry_block_defs): Likewise.
30470         (df_update_exit_block_uses): Likewise.
30471         (df_entry_block_bitmap_verify): Likewise.
30472         (df_exit_block_bitmap_verify): Likewise.
30473         (df_scan_verify): Likewise.
30474         * lra-constraints.c (lra_constraints): Likewise.
30475         (undo_optional_reloads): Likewise.
30476         (lra_undo_inheritance): Likewise.
30477         * lra-remat.c (calculate_gen_cands): Likewise.
30478         (do_remat): Likewise.
30479         * lra-spills.c (assign_spill_hard_regs): Likewise.
30480         (spill_pseudos): Likewise.
30481         * tree-ssa-pre.c (bitmap_set_and): Likewise.
30482         (bitmap_set_subtract_values): Likewise.
30483
30484 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30485
30486         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
30487         management with auto_bitmap.
30488         (fix_inter_tick): Likewise.
30489         (fix_recovery_deps): Likewise.
30490         * ira.c (add_store_equivs): Likewise.
30491         (find_moveable_pseudos): Likewise.
30492         (split_live_ranges_for_shrink_wrap): Likewise.
30493         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
30494         (rtx_reuse_manager::seen_def_p): Likewise.
30495         (rtx_reuse_manager::set_seen_def): Likewise.
30496         * print-rtl.h (class rtx_reuse_manager): Likewise.
30497
30498 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30499
30500         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
30501         lifetime.
30502         (migrate_btr_def): Likewise.
30503         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
30504         * df-core.c (loop_post_order_compute): Likewise.
30505         (loop_inverted_post_order_compute): Likewise.
30506         * hsa-common.h: Likewise.
30507         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
30508         * init-regs.c (initialize_uninitialized_regs): Likewise.
30509         * ipa-inline.c (resolve_noninline_speculation): Likewise.
30510         (inline_small_functions): Likewise.
30511         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
30512         * ira.c (combine_and_move_insns): Likewise.
30513         (build_insn_chain): Likewise.
30514         * loop-invariant.c (find_invariants): Likewise.
30515         * lower-subreg.c (propagate_pseudo_copies): Likewise.
30516         * predict.c (tree_predict_by_opcode): Likewise.
30517         (predict_paths_leading_to): Likewise.
30518         (predict_paths_leading_to_edge): Likewise.
30519         (estimate_loops_at_level): Likewise.
30520         (estimate_loops): Likewise.
30521         * shrink-wrap.c (try_shrink_wrapping): Likewise.
30522         (spread_components): Likewise.
30523         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
30524         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
30525         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
30526         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
30527         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
30528         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
30529         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
30530         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
30531         (mark_threaded_blocks): Likewise.
30532         (thread_through_all_blocks): Likewise.
30533         * tree-ssa.c (verify_ssa): Likewise.
30534         (execute_update_addresses_taken): Likewise.
30535         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
30536
30537 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30538
30539         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
30540         auto_vec.
30541         (post_order_compute): Likewise.
30542         (inverted_post_order_compute): Likewise.
30543         (pre_and_rev_post_order_compute_fn): Likewise.
30544
30545 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30546
30547         * genrecog.c (int_set::int_set): Explicitly construct our
30548         auto_vec base class.
30549         * vec.h (auto_vec::auto_vec): New constructor.
30550
30551 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30552
30553         * bitmap.h (class auto_bitmap): New constructor taking
30554         bitmap_obstack * argument.
30555
30556 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30557
30558         * bitmap.h (class auto_bitmap): Change type of m_bits to
30559         bitmap_head, and adjust ctor / dtor and member operators.
30560
30561 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
30562
30563         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
30564         when returned register mode doesn't match original mode.
30565
30566 2017-05-12  Jeff Law  <law@redhat.com>
30567             Jakub Jelinek  <jakub@redhat.com>
30568
30569         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
30570         we look for cc setter after the compare-elim changes.
30571         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
30572         within the vector to match what compare-elim now expects.
30573         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
30574         (xorsi3_flags, one_cmplsi2_flags): Likewise.
30575
30576         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
30577         after the compare-elim changes.
30578         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
30579         the vector to match what compare-elim now expects.
30580         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
30581         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
30582         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
30583         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
30584         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
30585
30586         * config/visium/visium.c (single_set_and_flags): Fix where
30587         we look for cc setter after the compare-elim changes.
30588         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
30589         with the vector to match what compare-elim now expects.
30590         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
30591         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
30592         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
30593         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
30594         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
30595         (neg<mode>2_insn_set_overflow): Likewise.
30596
30597 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
30598
30599         PR middle-end/79794
30600         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
30601         maybe_expand_insn call, set ops[0].target.  If still set after call,
30602         set alt_rtl.  Add extra arg to recursive calls.
30603         (extract_bit_field): Add alt_rtl argument.  Pass to
30604         extract_bit_field.
30605         * expmed.h (extract_bit_field): Fix prototype.
30606         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
30607         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
30608         to extract_bit_field_calls.
30609         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
30610         Pass alt_rtl to extract_bit_field calls.
30611         * calls.c (store_unaligned_arguments_into_psuedos)
30612         load_register_parameters): Pass extra NULL to extract_bit_field calls.
30613         * optabs.c (maybe_legitimize_operand): Clear op->target when call
30614         gen_reg_rtx.
30615         * optabs.h (struct expand_operand): Add target bitfield.
30616
30617 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
30618
30619         * compare-elim.c (try_eliminate_compare): Canonicalize
30620         operation with embedded compare to
30621         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
30622          (set (reg) (operation)].
30623
30624         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
30625
30626 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
30627
30628         PR target/80723
30629         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
30630         cost of adding a carry flag for ADC instruction.
30631         [case MINUS]: Ignore the cost of subtracting a carry flag
30632         for SBB instruction.
30633
30634 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
30635
30636         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
30637         and x86intrin.h
30638         * config/rs6000/bmiintrin.h: New file.
30639         * config/rs6000/bmi2intrin.h: New file.
30640         * config/rs6000/x86intrin.h: New file.
30641
30642 2017-05-12  Jeff Law  <law@redhat.com>
30643
30644         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
30645         markers.
30646
30647 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
30648
30649         PR middle-end/80707
30650         * tree-cfg.c: Remove cfg edges of unreachable case statements.
30651
30652 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30653
30654         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
30655         early expansion of vector divide builtins.
30656         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
30657         builtins identified as having unsigned arguments.
30658
30659 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30660
30661         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
30662         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
30663         expansion of vector logical operations (and, andc, or, xor,
30664         nor, orc, nand).
30665
30666 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30667
30668         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
30669         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
30670
30671 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30672
30673         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
30674         early GIMPLE expansion of vector multiplies.
30675
30676 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30677
30678         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
30679         TARGET_HAVE_MOVT conditional.
30680         (movt splitter): Likewise.
30681
30682 2017-05-12  Richard Biener  <rguenther@suse.de>
30683
30684         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
30685         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30686         Fold all stmts not inplace.
30687
30688 2017-05-12  Richard Biener  <rguenther@suse.de>
30689
30690         PR tree-optimization/80713
30691         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
30692         inserted_exprs bit for not removed stmts.
30693
30694 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
30695
30696         PR middle-end/69921
30697         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
30698         parallelized" attribute for parallelized OpenACC kernels.
30699         * omp-offload.c (execute_oacc_device_lower): Use it.
30700
30701         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
30702         Set "oacc kernels" attribute.
30703         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
30704         parameter.  Adjust all users.
30705         (oacc_fn_attrib_kernels_p): Remove function.
30706         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
30707         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
30708         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
30709         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
30710         assert "oacc kernels" attribute is set.
30711
30712 2017-05-11  Carl Love  <cel@us.ibm.com>
30713
30714         * config/rs6000/rs6000-c: Add support for built-in functions
30715         vector unsigned char vec_popcnt (vector signed char)
30716         vector unsigned char vec_popcnt (vector unsigned char)
30717         vector unsigned short vec_popcnt (vector signed short)
30718         vector unsigned short vec_popcnt (vector unsigned short)
30719         vector unsigned int vec_popcnt (vector signed int)
30720         vector unsigned int vec_popcnt (vector unsigned int)
30721         vector unsigned long long vec_popcnt (vector signed long long)
30722         vector unsigned long long vec_popcnt (vector unsigned long long)
30723         vector signed long long vec_slo (vector signed long long,
30724                                          vector signed char)
30725         vector signed long long vec_slo (vector signed long long,
30726                                          vector unsigned char)
30727         vector unsigned long long vec_slo (vector unsigned long long,
30728                                            vector signed char)
30729         vector unsigned long long vec_slo (vector unsigned long long,
30730                                            vector unsigned char)
30731         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
30732         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
30733         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
30734         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
30735         * doc/extend.texi: Update the built-in documentation file for the
30736         new built-in functions.
30737
30738 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
30739
30740         * attribs.h (sorted_attr_string): Move machine independent
30741         functions for target clone support from the i386 port to common
30742         code.  Rename ix86_function_versions to common_function_versions.
30743         Rename make_name to make_unique_name.
30744         (common_function_versions): Likewise.
30745         (make_unique_name): Likewise.
30746         (make_dispatcher_decl): Likewise.
30747         (is_function_default_version): Likewise.
30748         * attribs.c (attr_strcmp): Likewise.
30749         (sorted_attr_string): Likewise.
30750         (common_function_versions): Likewise.
30751         (make_unique_name): Likewise.
30752         (make_dispatcher_decl): Likewise.
30753         (is_function_default_version): Likewise.
30754         * config/i386/i386.c (attr_strcmp): Likewise.
30755         (sorted_attr_string): Likewise.
30756         (ix86_function_versions): Likewise.
30757         (make_name): Likewise.
30758         (make_dispatcher_decl): Likewise.
30759         (is_function_default_version): Likewise.
30760         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
30761
30762 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30763
30764         PR target/80695
30765         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
30766         Account for direct move costs for vec_construct of integer
30767         vectors.
30768
30769 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
30770
30771         PR target/80706
30772         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
30773         (UNSPEC_STX_ATOMIC): Ditto.
30774         (loaddi_via_sse): New insn.
30775         (storedi_via_sse): Ditto.
30776         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
30777         Update corresponding peephole2 patterns.
30778         (atomic_storedi_fpu): Ditto.
30779
30780 2017-05-11  Julia Koval  <julia.koval@intel.com>
30781
30782         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
30783         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
30784         New intrinsics.
30785         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
30786         (__builtin_ia32_rsqrt14ss_mask): New builtins.
30787         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
30788
30789 2017-05-11  Nathan Sidwell  <nathan@acm.org>
30790
30791         * graphite-poly.c: Include dumpfile.h.
30792
30793         * dumpfle.h (dump_function): Declare here ...
30794         * tree-dump.h (dump_function): ... not here.
30795         * dumpfile.c: #include tree-cfg.h.
30796         (dump_function): Move here from ...
30797         * tree-dump.c (dump_function): ... here.
30798         * gimplify.c: #include splay-tree.h, not tree-dump.h.
30799         * graphite-poly.c: Don't include tree-dump.h.
30800         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
30801         * print-tree.c: Likewise.
30802         * stor-layout.c: Likewise.
30803         * tree-nested.c: Likewise.
30804
30805         * dumpfile.c (dump_start): Use TDF_FLAGS.
30806         (dump_enable_all): Fix TDF_KIND check thinko.
30807
30808 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30809
30810         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30811         array entries to represent two legal parameterizations of the
30812         overloaded __builtin_cmpb function, as represented by the
30813         P6_OV_BUILTIN_CMPB constant.
30814         (altivec_resolve_overloaded_builtin): Add special case handling
30815         for the __builtin_cmpb function, as represented by the
30816         P6_OV_BUILTIN_CMPB constant.
30817         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
30818         (BU_P6_64BIT_2): New macro.
30819         (BU_P6_OVERLOAD_2): New macro
30820         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
30821         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
30822         (CMPB): Add overload support to represent both 32-bit and 64-bit
30823         compare-bytes function.
30824         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
30825         support for TARGET_CMPB.
30826         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
30827         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
30828         documentation of the __builtin_cmpb overloaded built-in function.
30829
30830 2017-05-11  Richard Biener  <rguenther@suse.de>
30831
30832         PR tree-optimization/80705
30833         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
30834         bases are not vectorizable.
30835
30836 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30837
30838         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
30839         when counting register pressure.
30840
30841 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30842
30843         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
30844         (iv_ca_more_deps): Renamed to ...
30845         (iv_ca_compare_deps): ... this.
30846         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
30847
30848 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30849
30850         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
30851         to ...
30852         (determine_group_iv_costs): ... here.
30853         (find_inv_vars_cb): Record inv var if it's not recorded before.
30854
30855 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30856
30857         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
30858         (get_shiftadd_cost): Ditto.
30859
30860 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30861
30862         * tree-ssa-address.c: Include header file.
30863         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
30864         address.
30865         (add_to_parts): Refactor.
30866         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
30867         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
30868         in new order.
30869
30870 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30871
30872         PR tree-optimization/53090
30873         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
30874         COMP_IV_EXPR_2.
30875         (extract_cond_operands): Detect condition with IV on both sides
30876         and return COMP_IV_EXPR_2.
30877         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
30878         (rewrite_use_compare): Simplify by removing call to function
30879         extract_cond_operands.
30880
30881 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30882
30883         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
30884         (extract_cond_operands): Detect condition comparing against non-
30885         invariant bound and return appropriate enum value.
30886         (find_interesting_uses_cond): Update use of extract_cond_operands.
30887         Handle its return value accordingly.
30888         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
30889
30890 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30891
30892         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
30893         nonlinear iv_use computation in loop invariant sensitive way.
30894
30895 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30896
30897         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
30898         (find_iv_candidates): Call relate_compare_use_with_all_cands.
30899
30900 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30901
30902         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
30903         (dump_cand): Support iv_cand.inv_exprs.
30904         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
30905         for candidates.
30906         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
30907         iv_cand.inv_exprs.
30908
30909 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30910
30911         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
30912         from ...
30913         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
30914         as local function.  Include necessary header files.
30915         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
30916
30917 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30918
30919         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
30920
30921 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30922
30923         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
30924         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
30925         RSHIFT_EXPR and BIT_NOT_EXPR.
30926
30927 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30928
30929         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
30930         (adjust_setup_cost): New parameter supporting round up adjustment.
30931         (struct address_cost_data): Delete.
30932         (force_expr_to_var_cost): Don't bound cost with spill_cost.
30933         (split_address_cost, ptr_difference_cost): Delete.
30934         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
30935         (struct ainc_cost_data): New struct.
30936         (get_address_cost_ainc): New function.
30937         (get_address_cost, get_computation_cost): Reimplement.
30938         (determine_group_iv_cost_address): Record inv_expr for all uses of
30939         a group.
30940         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
30941         (iv_ca_has_deps): Reimplemented to ...
30942         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
30943         than OLD_CP.
30944         (iv_ca_extend): Call iv_ca_more_deps.
30945
30946 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30947
30948         * tree-ssa-address.c (struct mem_address): Move to header file.
30949         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
30950         * tree-ssa-address.h (struct mem_address): Move from C file.
30951         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
30952
30953 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30954
30955         * tree-affine.h (aff_combination_type): New interface.
30956         (aff_combination_zero_p): Remove static.
30957         (aff_combination_const_p): New interface.
30958         (aff_combination_singleton_var_p): New interfaces.
30959
30960 2017-05-11  Richard Biener  <rguenther@suse.de>
30961
30962         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30963         Skip unreachable blocks and destinations.
30964         (eliminate): Move stmt removal and fixup ...
30965         (fini_eliminate): ... here.  Skip inserted exprs.
30966         (pass_pre::execute): Move fini_pre after fini_eliminate.
30967         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
30968         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
30969         PRE to get rid of dead code that has invalid SSA form and
30970         split critical edges again.
30971
30972 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30973
30974         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
30975
30976 2017-05-11  Richard Biener  <rguenther@suse.de>
30977
30978         * passes.c (execute_function_todo): Verify loops if they are
30979         said to be up-to-date.
30980         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
30981         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
30982
30983 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
30984
30985         PR target/80090
30986         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
30987         handle calling assemble_external ourself.
30988
30989         PR target/79027
30990         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
30991         modes with zero size.  Enhance comment.
30992
30993 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30994
30995         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
30996         built-ins for vec_xl and vec_xst with short and char pointer
30997         arguments.
30998
30999 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31000
31001         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
31002         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
31003         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
31004         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
31005         (_mm_maskz_min_round_ss): New intrinsics.
31006         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
31007         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
31008         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
31009         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
31010         (__builtin_ia32_minss_mask_round): New builtins.
31011         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31012         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31013         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
31014         Rename to ...
31015         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
31016         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
31017         Change to ...
31018         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
31019         ... this.
31020
31021 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31022
31023         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
31024         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
31025         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
31026         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
31027         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
31028         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
31029         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
31030         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31031         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31032         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
31033         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
31034         (__builtin_ia32_mulss_mask_round): New builtins.
31035         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31036         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31037         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
31038         Rename to ...
31039         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
31040         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31041         Change to ...
31042         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31043         ... this.
31044
31045 2017-05-10  Julia Koval  <julia.koval@intel.com>
31046
31047         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
31048         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
31049         (_mm256_setr_m128i): New intrinsics.
31050
31051 2017-05-10  Julia Koval  <julia.koval@intel.com>
31052
31053         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
31054         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
31055         (_mm_maskz_rcp14_ss): New intrinsics.
31056         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
31057         (__builtin_ia32_rcp14ss_mask): New builtins.
31058         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
31059
31060 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
31061
31062         PR tree-optimization/51513
31063         * tree-cfg.c (gimple_seq_unreachable_p): New function.
31064         (assert_unreachable_fallthru_edge_p): Use it.
31065         (group_case_labels_stmt): Likewise.
31066         * tree-cfg.h: Prototype it.
31067         * stmt.c: Include cfghooks.h and tree-cfg.h.
31068         (emit_case_dispatch_table) <gap_label>: New local variable.
31069         Use it to fill dispatch table gaps.
31070         Test for default_label before updating probabilities.
31071         (expand_case) <default_label>: Remove unneeded initialization.
31072         Test for unreachable default case statement and remove its edge.
31073         Set default_label accordingly.
31074         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
31075
31076 2017-05-10  Carl Love  <cel@us.ibm.com>
31077
31078         * config/rs6000/rs6000-c: Add support for built-in functions
31079         vector signed char      vec_neg (vector signed char)
31080         vector signed short int vec_neg (vector short int)
31081         vector signed int       vec_neg (vector signed int)
31082         vector signed long long vec_neg (vector signed long long)
31083         vector float            vec_neg (vector float)
31084         vector double           vec_neg (vector double)
31085         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
31086         overload.
31087         * config/rs6000/altivec.h: Add define for vec_neg
31088         * doc/extend.texi: Update the built-in documentation for the
31089         new built-in functions.
31090
31091 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31092
31093         PR tree-optimization/77644
31094         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
31095
31096 2017-05-10  Nathan Sidwell  <nathan@acm.org>
31097
31098         * dumpfile.h (TDI_lang_all): New.
31099         (TDF_KIND): New. Renumber others
31100         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
31101         than bits.
31102         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
31103         lang-all.
31104         (get_dump_file_name): Adjust suffix generation.
31105         (dump_enable_all): Use TDF_KIND.
31106         * doc/invoke.texi (-fdump-lang-all): Document.
31107
31108         * dumpfile.h: Tabify.
31109
31110 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
31111
31112         PR target/80671
31113         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
31114         Move member access before delete.
31115
31116 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
31117
31118         * tree-inline.c (expand_call_inline): Split block at stmt
31119         before the call.
31120
31121 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
31122
31123         PR target/68163
31124         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
31125         are now unused after splitting mov{sf,sd}_hardfloat.
31126         (f32_lr2): Likewise.
31127         (f32_lm): Likewise.
31128         (f32_lm2): Likewise.
31129         (f32_li): Likewise.
31130         (f32_li2): Likewise.
31131         (f32_lv): Likewise.
31132         (f32_sr): Likewise.
31133         (f32_sr2): Likewise.
31134         (f32_sm): Likewise.
31135         (f32_sm2): Likewise.
31136         (f32_si): Likewise.
31137         (f32_si2): Likewise.
31138         (f32_sv): Likewise.
31139         (f32_dm): Likewise.
31140         (f32_vsx): Likewise.
31141         (f32_av): Likewise.
31142         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
31143         For movsf, order stores so the VSX stores occur before the GPR
31144         store which encourages the register allocator to use a traditional
31145         FPR instead of a GPR.  For movsd, order the stores so that the GPR
31146         store comes before the VSX stores to allow the power6 to work.
31147         This is due to the power6 not having a 32-bit integer store
31148         instruction from a FPR.
31149         (movsf_hardfloat): Likewise.
31150         (movsd_hardfloat): Likewise.
31151
31152 2017-05-09  Martin Sebor  <msebor@redhat.com>
31153
31154         PR translation/80280
31155         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
31156         added in r247778.
31157
31158         PR translation/80280
31159         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
31160         data member added in r247778.
31161         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
31162
31163 2017-05-09  Nathan Sidwell  <nathan@acm.org>
31164
31165         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
31166
31167         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
31168         typedefs.
31169
31170 2017-05-09  Marek Polacek  <polacek@redhat.com>
31171
31172         * doc/invoke.texi: Fix typo.
31173
31174 2017-05-09  Richard Biener  <rguenther@suse.de>
31175
31176         * tree-vrp.c (vrp_val_is_max): Adjust comment.
31177         (vrp_val_is_min): Likewise.
31178         (set_value_range_to_value): Likewise.
31179         (set_value_range_to_nonnegative): Likewise.
31180         (gimple_assign_nonzero_p): Likewise.
31181         (gimple_stmt_nonzero_p): Likewise.
31182         (vrp_int_const_binop): Likewise.  Remove unreachable case.
31183         (adjust_range_with_scev): Adjust comments.
31184         (compare_range_with_value): Likewise.
31185         (extract_range_from_phi_node): Likewise.
31186         (test_for_singularity): Likewise.
31187
31188 2017-05-09  Richard Biener  <rguenther@suse.de>
31189
31190         * tree-vrp.c (get_single_symbol): Add assert that we don't
31191         get overflowed constants as invariant part.
31192         (compare_values_warnv): Add comment before the TREE_NO_WARNING
31193         checks.  Use wi::cmp instead of recursing for integer constants.
31194         (compare_values): Just ignore whether we assumed undefined
31195         overflow instead of failing the compare.
31196         (extract_range_for_var_from_comparison_expr): Add comment before the
31197         TREE_NO_WARNING sets.
31198         (test_for_singularity): Likewise.
31199         (extract_range_from_comparison): Do not disable optimization
31200         when we assumed undefined overflow.
31201         (extract_range_basic): Remove init of unused var.
31202
31203 2017-05-09  Richard Biener  <rguenther@suse.de>
31204
31205         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
31206         (extract_range_from_multiplicative_op_1): Adjust.
31207         (extract_range_from_binary_expr_1): Use int_const_binop.
31208
31209 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31210
31211         PR target/80101
31212         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
31213         rs6000_store_data_bypass_p in seven define_bypass directives and
31214         in several comments.
31215         * config/rs6000/rs6000-protos.h: Add prototype for
31216         rs6000_store_data_bypass_p function.
31217         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
31218         function implements slightly different (rs6000-specific) semantics
31219         than store_data_bypass_p, returning false rather than aborting
31220         with assertion error when arguments do not satisfy the
31221         requirements of store data bypass.
31222         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
31223         rs6000_store_data_bypass_p.
31224
31225 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
31226
31227         * config/xtensa/xtensa-protos.h
31228         (xtensa_initial_elimination_offset): New declaration.
31229         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
31230         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
31231         macro definition, add case for FRAME_POINTER_REGNUM when
31232         FRAME_GROWS_DOWNWARD.
31233         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
31234         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
31235         xtensa_initial_elimination_offset.
31236
31237 2017-05-08  Nathan Sidwell  <nathan@acm.org>
31238
31239         * doc/invoke.texi: Alphabetize -fdump options.
31240
31241 2017-05-08  Martin Sebor  <msebor@redhat.com>
31242
31243         PR translation/80280
31244         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
31245
31246 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31247
31248         * target.def (compute_frame_layout): New optional target hook.
31249         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
31250         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
31251         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
31252         target hook.
31253         * reload1.c (verify_initial_elim_offsets): Likewise.
31254         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
31255         (use_simple_return_p): Call arm_compute_frame_layout if needed.
31256         (arm_get_frame_offsets): Split up into this ...
31257         (arm_compute_frame_layout): ... and this function.
31258
31259 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
31260
31261         * config/aarch64/constraints.md (Usa): New constraint.
31262         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
31263
31264 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31265
31266         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
31267         with_multilib_list after it has been checked.
31268
31269 2017-05-08  Richard Biener  <rguenther@suse.de>
31270
31271         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
31272         (bitmap_set_subtract_values): Likewise.
31273
31274 2017-05-08  Richard Biener  <rguenther@suse.de>
31275
31276         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
31277         (gimple_assign_nonzero): ... this and remove strict_overflow_p
31278         argument.
31279         (gimple_stmt_nonzero_warnv_p): Rename to ...
31280         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
31281         argument.
31282         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
31283         (extract_range_basic): Adjust, do not disable propagation on
31284         strict overflow sensitive simplification.
31285         (vrp_visit_cond_stmt): Likewise.
31286
31287 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
31288
31289         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
31290         body size unconditionally.
31291
31292 2017-05-07  Jeff Law  <law@redhat.com>
31293
31294         Revert:
31295         2017-05-06  Jeff Law  <law@redhat.com>
31296         PR tree-optimization/78496
31297         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31298         code.
31299
31300         PR tree-optimization/78496
31301         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31302         (simplify_stmt_using_ranges): Call it.
31303         (vrp_dom_walker::before_dom_children): Extract equivalences
31304         from an ASSERT_EXPR with an equality comparison against a
31305         constant.
31306
31307 2017-05-06  Jeff Law  <law@redhat.com>
31308
31309         PR tree-optimization/78496
31310         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31311         code.
31312
31313         PR tree-optimization/78496
31314         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31315         (simplify_stmt_using_ranges): Call it.
31316         (vrp_dom_walker::before_dom_children): Extract equivalences
31317         from an ASSERT_EXPR with an equality comparison against a
31318         constant.
31319
31320 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31321
31322         * lra-constraints.c (lra_copy_reg_equiv): New function.
31323         (split_reg): Use it to copy equivalence information from the
31324         original register to the spill register.
31325
31326 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31327
31328         PR rtl-optimization/75964
31329         * simplify-rtx.c (simplify_const_relational_operation): Remove
31330         invalid handling of comparisons of integer ABS.
31331
31332 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
31333
31334         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
31335         initialize to zero.
31336         (init_regs): Remove declaration.
31337         (function_arg_advance_32): Initialize error_p as boolean variable.
31338
31339 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31340
31341         * store-motion.c (remove_reachable_equiv_notes): Reformat long
31342         lines.  Use for (;;).
31343
31344 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31345
31346         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
31347         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
31348         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
31349         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
31350         VF=2 that require versioning.
31351
31352 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31353
31354         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
31355         int.
31356
31357 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31358
31359         * diagnostic.h (diagnostic_override_option_index): Convert from
31360         macro to inline function.
31361
31362 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31363
31364         * diagnostic.c (last_module_changed_p): New function.
31365         (set_last_module): New function.
31366         (diagnostic_report_current_module): Convert macro usage to
31367         the above functions.
31368         * diagnostic.h (diagnostic_context::last_module): Strengthen
31369         from const line_map * to const line_map_ordinary *.
31370         (diagnostic_last_module_changed): Delete macro.
31371         (diagnostic_set_last_module): Delete macro.
31372
31373 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31374
31375         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
31376         with diagnostic_report_diagnostic.
31377         (diagnostic_n_impl_richloc): Likewise.
31378         * diagnostic.h (report_diagnostic): Delete macro.
31379         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
31380         with diagnostic_report_diagnostic.
31381         * substring-locations.c (format_warning_va): Likewise.
31382
31383 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31384
31385         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
31386         save/restor of format_spec.  Move option-printing code to...
31387         (print_option_information): ...this new function, and
31388         reimplement by simply printing to the pretty_printer,
31389         rather than appending to the format string.
31390
31391 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31392
31393         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
31394         handling logic into...
31395         (update_effective_level_from_pragmas): ...this new function.
31396
31397 2017-05-04  Andrew Waterman  <andrew@sifive.com>
31398
31399         * config/riscv/riscv.opt (mstrict-align): New option.
31400         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
31401         (SLOW_UNALIGNED_ACCESS): Define.
31402         (riscv_slow_unaligned_access): Declare.
31403         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
31404         field.
31405         (riscv_slow_unaligned_access): New variable.
31406         (rocket_tune_info): Set slow_unaligned_access to true.
31407         (optimize_size_tune_info): Set slow_unaligned_access to false.
31408         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
31409         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
31410         (riscv_option_override): Set riscv_slow_unaligned_access.
31411         * doc/invoke.texi: Add -mstrict-align to RISC-V.
31412
31413 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
31414
31415         * config/riscv/riscv.md: Unify indentation.
31416
31417 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
31418
31419         PR target/79038
31420         PR target/79202
31421         PR target/79203
31422         * config/rs6000/rs6000.md (u code attribute): Add FIX and
31423         UNSIGNED_FIX.
31424         (extendsi<mode>2): Add support for doing sign extension via
31425         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
31426         don't have ISA 3.0 instructions.
31427         (extendsi<mode>2 splitter): Likewise.
31428         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
31429         generate the normal insns since SImode can now go in vector
31430         registers.  Disallow the special UNSPECs needed for previous
31431         machines to hide SImode being used.  Add new insns
31432         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
31433         (fix_trunc<mode>si2_stfiwx): Likewise.
31434         (fix_trunc<mode>si2_internal): Likewise.
31435         (fixuns_trunc<mode>si2): Likewise.
31436         (fixuns_trunc<mode>si2_stfiwx): Likewise.
31437         (fctiw<u>z_<mode>_smallint): Likewise.
31438         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
31439         of floating point to 32-bit integer from doing a direct move to
31440         the GPR registers to do a store.
31441         (fctiwz_<mode>): Break long line.
31442
31443 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
31444
31445         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
31446         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
31447         (addr_list, addr_offset_valid_p): New.
31448         (split_address_groups): Check offset validity with above function.
31449         (gt-tree-ssa-loop-ivopts.h): Include header file.
31450
31451 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31452
31453         * config.gcc (arm*-*-*): Add missing 'fi'.
31454
31455 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
31456
31457         * doc/invoke.texi (-fopt-info): Explicitly say order of options
31458         included in -fopt-info does not matter.
31459         * doc/optinfo.texi (-fopt-info): Fix description of default
31460         behavour. Explicitly say order of options included in -fopt-info
31461         does not matter.
31462
31463 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31464
31465         * config.gcc: Allow combinations of aprofile and rmprofile values for
31466         --with-multilib-list.
31467         * config/arm/t-multilib: New file.
31468         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
31469         variables.  Remove setting of ISA and floating-point ABI in
31470         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
31471         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
31472         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
31473         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
31474         CPU options.
31475         * config/arm/t-rmprofile: Likewise except for the matches changes.
31476         * doc/install.texi (--with-multilib-list): Document the combination of
31477         aprofile and rmprofile values and warn about pitfalls in doing that.
31478
31479 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31480
31481         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
31482         (movdi_aarch64): Likewise.
31483
31484 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31485
31486         PR tree-optimization/80632
31487         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
31488         field.
31489         (build_arrays): Initialize it for virtual phis.
31490         (fix_phi_nodes): Use it for virtual phis.
31491
31492         PR tree-optimization/80558
31493         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
31494         [x, y] op z into [x op, y op z] for op & or | if conditions
31495         are met.
31496
31497 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
31498             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31499
31500         PR target/71607
31501         * config/arm/arm.md (use_literal_pool): Remove.
31502         (64-bit immediate split): No longer takes cost into consideration
31503         if arm_disable_literal_pool is enabled.
31504         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
31505         used when arm_disable_literal_pool is enabled.
31506         (arm_max_const_double_inline_cost): Remove use of
31507         arm_disable_literal_pool.
31508         (push_minipool_fix): Add assert.
31509         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
31510         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
31511         (no_literal_pool_sf_immediate): New.
31512
31513 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31514
31515         PR tree-optimization/80613
31516         * tree-ssa-dce.c (propagate_necessity): Remove cases for
31517         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
31518
31519 2017-05-05  Richard Biener  <rguenther@suse.de>
31520
31521         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
31522
31523 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
31524
31525         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
31526         of this flag from insn conditions due to removal from r247495.
31527
31528 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31529
31530         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
31531         New function.
31532         (arm_early_store_addr_dep_ptr): Likewise.
31533         * config/arm/aarch-common-protos.h
31534         (arm_early_load_addr_dep_ptr): Add prototype.
31535         (arm_early_store_addr_dep_ptr): Likewise.
31536         * config/arm/cortex-a53.md: Add new bypasses.
31537
31538 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31539
31540         * tree.c (next_type_uid): Change type to unsigned.
31541         (type_hash_canon): Decrement back next_type_uid if
31542         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
31543         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
31544         if possible.
31545
31546 2017-05-04  Martin Sebor  <msebor@redhat.com>
31547
31548         * builtins.c: Fix a trivial typo in a comment.
31549
31550         PR middle-end/79234
31551         * builtins.c (check_sizes): Adjust to handle reading past the end.
31552         Avoid printing excessive upper bound of ranges.  Use %E to print
31553         tree nodes instead of converting them to %wu.
31554         (expand_builtin_memchr): New function.
31555         (compute_dest_size): Rename...
31556         (compute_objsize): ...to this.
31557         (expand_builtin_memcpy): Adjust.
31558         (expand_builtin_mempcpy): Adjust.
31559         (expand_builtin_strcat): Adjust.
31560         (expand_builtin_strcpy): Adjust.
31561         (check_strncat_sizes): Adjust.
31562         (expand_builtin_strncat): Adjust.
31563         (expand_builtin_strncpy): Adjust and simplify.
31564         (expand_builtin_memset): Adjust.
31565         (expand_builtin_bzero): Adjust.
31566         (expand_builtin_memcmp): Adjust.
31567         (expand_builtin): Handle memcmp.
31568         (maybe_emit_chk_warning): Check strncat just once.
31569
31570 2017-05-04  Martin Sebor  <msebor@redhat.com>
31571
31572         PR preprocessor/79214
31573         PR middle-end/79222
31574         PR middle-end/79223
31575         * builtins.c (check_sizes): Add inlining context and issue
31576         warnings even when -Wno-system-headers is set.
31577         (check_strncat_sizes): Same.
31578         (expand_builtin_strncat): Same.
31579         (expand_builtin_memmove): New function.
31580         (expand_builtin_stpncpy): Same.
31581         (expand_builtin): Handle memmove and stpncpy.
31582
31583 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
31584
31585         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
31586         which is not used any more.
31587
31588 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31589
31590         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
31591
31592 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31593
31594         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
31595         (cortexa53_tunings): Likewise.
31596         (cortexa57_tunings): Likewise.
31597         (cortexa72_tunings): Likewise.
31598         (cortexa73_tunings): Likewise.
31599
31600 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31601
31602         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
31603         Set loop alignment to 8.
31604
31605 2017-05-04  Martin Sebor  <msebor@redhat.com>
31606
31607         PR translation/80280
31608         * builtins.c (expand_builtin_object_size): Add missing quoting to
31609         %D and like directives.
31610         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
31611         (hsa_type_for_tree_type): Same.
31612         (verify_function_arguments): Same.
31613         * symtab.c (symbol_table::change_decl_assembler_name): Same.
31614         * varasm.c (get_section): Same.
31615         (mark_weak): Same.
31616
31617 2017-05-04  Martin Sebor  <msebor@redhat.com>
31618
31619         PR translation/80280
31620         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
31621
31622 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31623
31624         * config/aarch64/aarch64.c (generic_addrcost_table):
31625         Change HI/TI mode setting.
31626
31627 2017-05-04  Martin Jambor  <mjambor@suse.cz>
31628
31629         PR tree-optimization/80622
31630         * tree-sra.c (comes_initialized_p): New function.
31631         (build_accesses_from_assign): Only set write lazily when
31632         comes_initialized_p is false.
31633         (analyze_access_subtree): Use comes_initialized_p.
31634         (propagate_subaccesses_across_link): Assert !comes_initialized_p
31635         instead of testing for PARM_DECL.
31636
31637 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31638
31639         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
31640         constraint on operand 0 to allow more general addressing modes.
31641         Adjust output template.
31642         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
31643         New function.
31644         * config/aarch64/aarch64-protos.h
31645         (aarch64_address_valid_for_prefetch_p): Declare prototype.
31646         * config/aarch64/constraints.md (Dp): New address constraint.
31647         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
31648         predicate.
31649
31650 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
31651
31652         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
31653         update use of estimate_ipcp_clone_size_and_time.
31654         (estimate_local_effects): Update use of
31655         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
31656         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
31657         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
31658         Return nonspecialized time.
31659
31660 2017-05-04  Richard Biener  <rguenther@suse.de>
31661
31662         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
31663         for the last VUSE which def dominates the PHI.  Directly call
31664         maybe_skip_until.
31665         (get_continuation_for_phi_1): Remove.
31666
31667 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
31668
31669         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
31670         to explain the use of truncating division.  Cap the number of
31671         iterations to the maximum given by nb_iterations_upper_bound,
31672         if defined.
31673
31674 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31675
31676         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
31677         * configure: Regenerate.
31678         * config.in: Regenerate.
31679         * config/i386/driver-mingw32.c: new file.
31680         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
31681         * config.host: Link driver-mingw32.o on MinGW host.
31682         * doc/install.texi: Document new --enable-mingw-wildcard configure
31683         option.
31684
31685 2017-05-04  Marek Polacek  <polacek@redhat.com>
31686
31687         PR tree-optimization/80612
31688         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
31689
31690 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31691             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
31692
31693         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
31694         (movt splitter): Likewise.
31695         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
31696         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
31697         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
31698         block for Thumb-1 with MOVT.
31699         (thumb2_legitimate_address_p): Move code block ...
31700         (can_avoid_literal_pool_for_label_p): ... into this new function.
31701         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
31702         literal pool.
31703         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
31704         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
31705         "M-profile targets with the MOVT instruction".
31706
31707 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31708
31709         * config/arm/arm-builtins.c (arm_init_builtins): Rename
31710         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
31711         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
31712
31713 2017-05-04  Martin Liska  <mliska@suse.cz>
31714
31715         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
31716         variable cond_code.
31717
31718 2017-05-04  Richard Biener  <rguenther@suse.de>
31719
31720         * tree.c (array_at_struct_end_p): Handle arrays at struct
31721         end with flexarrays more conservatively.  Refactor and treat
31722         arrays of arrays or aggregates more strict.  Fix
31723         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
31724         * tree.c (array_at_struct_end_p): Adjust prototype.
31725         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
31726         * gimple-fold.c (get_range_strlen): Likewise.
31727         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
31728
31729 2017-05-04  Richard Biener  <rguenther@suse.de>
31730
31731         PR tree-optimization/31130
31732         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
31733         false.
31734         (supports_overflow_infinity): Likewise.
31735         (is_negative_overflow_infinity): Likewise.
31736         (is_positive_overflow_infinity): Likewise.
31737         (is_overflow_infinity): Likewise.
31738         (stmt_overflow_infinity): Likewise.
31739         (overflow_infinity_range_p): Likewise.
31740         (usable_range_p): Remove as always returning true.
31741         (make_overflow_infinity): Remove.
31742         (negative_overflow_infinity): Likewise.
31743         (positive_overflow_infinity): Likewise.
31744         (avoid_overflow_infinity): Likewise.
31745         (set_value_range): Adjust accordingly.
31746         (set_value_range_to_nonnegative): Likewise, remove now unused
31747         overflow_infinity arg.
31748         (vrp_operand_equal_p): Adjust.
31749         (update_value_range): Likewise.
31750         (range_int_cst_singleton_p): Likewise.
31751         (operand_less_p): Likewise.
31752         (compare_values_warnv): Likewise.
31753         (extract_range_for_var_from_comparison_expr): Likewise.
31754         (vrp_int_const_binop): Likewise.
31755         (zero_nonzero_bits_from_vr): Likewise.
31756         (extract_range_from_multiplicative_op_1): Likewise.
31757         (extract_range_from_binary_expr_1): Likewise.
31758         (extract_range_from_unary_expr): Likewise.
31759         (extract_range_from_comparison): Likewise.
31760         (extract_range_basic): Likewise.
31761         (adjust_range_with_scev): Likewise.
31762         (compare_ranges): Likewise.
31763         (compare_range_with_value): Likewise.
31764         (dump_value_range): Likewise.
31765         (test_for_singularity): Likewise, remove strict_overflow_p parameter
31766         never used.
31767         (simplify_cond_using_ranges): Adjust.
31768
31769 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
31770
31771         * brig-builtins.def: Added a builtin for class_f64.
31772         * builtin-types.def: Added a builtin type needed by class_f64.
31773
31774 2017-05-03  Jason Merrill  <jason@redhat.com>
31775
31776         * timevar.def: Add TV_CONSTEXPR.
31777
31778 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
31779
31780         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
31781
31782 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31783
31784         * ipa-prop.c (ipa_update_after_lto_read): Removed.
31785         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
31786         * ipa-cp.c (ipcp_propagate_stage): Do not call
31787         ipa_update_after_lto_read.
31788         * ipa-inline.c (ipa_inline): Likewise.
31789
31790 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31791
31792         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
31793         tag.  Added a default constructor and a destructor.
31794         (ipa_edge_args_sum_t): New class;
31795         (ipa_edge_args_sum): Declare.
31796         (ipa_edge_args_vector): Remove declaration.
31797         (IPA_EDGE_REF): Use ipa_edge_args_sum.
31798         (ipa_free_edge_args_substructures): Remove declaration.
31799         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
31800         (ipa_edge_args_info_available_for_edge_p): Likewise.
31801         * ipa-prop.c (ipa_edge_args_vector): Removed.
31802         (edge_removal_hook_holder): Likewise.
31803         (edge_duplication_hook_holder): Likewise.
31804         (ipa_edge_args_sum): New variable.
31805         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
31806         ipa_edge_args_vector.
31807         (ipa_free_edge_args_substructures): Likewise.
31808         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
31809         ipa_edge_args_vector.
31810         (ipa_edge_removal_hook): Turned into method
31811         ipa_edge_args_sum_t::remove.
31812         (ipa_edge_duplication_hook): Turned into method
31813         ipa_edge_args_sum_t::duplicate.
31814         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
31815         registering edge hooks.
31816         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
31817         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
31818         ipa_edge_args_sum instead of ipa_edge_args_vector.
31819         * ipa-profile.c (ipa_profile): Likewise.
31820
31821 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31822
31823         * symbol-summary.h (function_summary): New method exists.
31824         (function_summary::symtab_removal): Deallocate through release.
31825         (call_summary): New class.
31826         (gt_ggc_mx): New overload.
31827         (gt_pch_nx): Likewise.
31828         (gt_pch_nx): Likewise.
31829
31830 2017-05-03  Jeff Law  <law@redhat.com>
31831
31832         PR tree-optimization/78496
31833         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
31834         from simplify_cond_using_ranges.  Split off code to walk
31835         backwards through casts into ...
31836         (simplify_cond_using_ranges_2): New function.
31837         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
31838         (execute_vrp): After identifying jump threads, call
31839         simplify_cond_using_ranges_2.
31840
31841 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
31842
31843         PR bootstrap/80609
31844         * ipa-inline.h (inline_summary): Add ctor.
31845         (create_ggc): Do not use ggc_cleared_alloc.
31846
31847 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
31848             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31849
31850         * gcc.c (handle_braces): Support escaping in switch matching
31851         text.
31852         * doc/invoke.texi (Spec Files): Document it.
31853         Remove superfluous @code markup in items.
31854
31855 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
31856
31857         * diagnostic-show-locus.c (struct column_range): New struct.
31858         (get_affected_columns): New function.
31859         (get_printed_columns): New function.
31860         (struct correction): New struct.
31861         (correction::ensure_capacity): New function.
31862         (correction::ensure_terminated): New function.
31863         (struct line_corrections): New struct.
31864         (line_corrections::~line_corrections): New dtor.
31865         (line_corrections::add_hint): New function.
31866         (layout::print_trailing_fixits): Reimplement in terms of the new
31867         classes.
31868         (selftest::test_overlapped_fixit_printing): New function.
31869         (selftest::diagnostic_show_locus_c_tests): Call it.
31870
31871 2017-05-03  Nathan Sidwell  <nathan@acm.org>
31872
31873         Canonicalize canonical type hashing
31874         * tree.h (type_hash_canon_hash): Declare.
31875         * tree.c (type_hash_list, attribute_hash_list): Move into
31876         type_hash_canon_hash.
31877         (build_type_attribute_qual_variant): Break out hash code calc into
31878         type_hash_canon_hash.
31879         (type_hash_canon_hash): New.  Generic type hash computation.
31880         (build_range_type_1, build_array_type_1, build_function_type,
31881         build_method_type_directly, build_offset_type, build_complex_type,
31882         make_vector_type): Call it.
31883
31884 2017-05-03  Richard Biener  <rguenther@suse.de>
31885
31886         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
31887         When all DRs have unknown misaligned do not always peel
31888         when there is a store but apply the same costing model as if
31889         there were only loads.
31890
31891 2017-05-03  Richard Biener  <rguenther@suse.de>
31892
31893         Revert
31894         PR tree-optimization/80492
31895         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
31896         compare_base_decls returning dont-know properly.
31897
31898 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31899
31900         * config/arm/iterators.md (CCSI): New mode iterator.
31901         (arch): New mode attribute.
31902         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
31903         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
31904         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
31905         code iterator for success result mode.
31906         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
31907         the corresponding new insn generators.
31908
31909 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
31910
31911         Revert r247509
31912         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31913         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31914
31915 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
31916
31917         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
31918         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
31919         (DDR_A): Wrap DDR argument in brackets.
31920         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
31921         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
31922         (DDR_REVERSED_P): Likewise.
31923
31924 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
31925
31926         PR tree-optimization/79472
31927         * tree-switch-conversion.c (struct switch_conv_info): Add
31928         contiguous_range and default_case_nonstandard fields.
31929         (collect_switch_conv_info): Compute contiguous_range and
31930         default_case_nonstandard fields, don't clear final_bb if
31931         contiguous_range and only the default case doesn't have the required
31932         structure.
31933         (check_all_empty_except_final): Set default_case_nonstandard instead
31934         of failing if contiguous_range and the default case doesn't have empty
31935         block.
31936         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
31937         and only the default case doesn't have the required constants.  Skip
31938         virtual phis.
31939         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
31940         if default_case_nonstandard.
31941         (build_constructors): Build constant 1 just once.  Assert that default
31942         values aren't inserted in between cases if contiguous_range.  Skip
31943         virtual phis.
31944         (build_arrays): Skip virtual phis.
31945         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
31946         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
31947         Handle virtual phis.
31948         (gen_inbound_check): Handle default_case_nonstandard case.
31949         (process_switch): Adjust check_final_bb caller.  Call
31950         gather_default_values with the first non-default case instead of
31951         default case if default_case_nonstandard.
31952
31953 2017-05-02  Nathan Sidwell  <nathan@acm.org>
31954
31955         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
31956         check.  Fix formatting.
31957
31958 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
31959
31960         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
31961         errors when comparing specialized and unspecialized times.
31962
31963 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
31964
31965         * diagnostic-show-locus.c
31966         (layout::should_print_annotation_line_p): Make private.
31967         (layout::print_annotation_line): Make private.
31968         (layout::annotation_line_showed_range_p): Make private.
31969         (layout::show_ruler): Make private.
31970         (layout::print_source_line): Make private.  Pass in line and
31971         line_width, rather than calling location_get_source_line.  Drop
31972         returned value.
31973         (layout::print_leading_fixits): New method.
31974         (layout::print_any_fixits): Rename to...
31975         (layout::print_trailing_fixits): ...this, and make private.
31976         Don't print newline fixits.
31977         (diagnostic_show_locus): Move logic for printing one row into...
31978         (layout::print_line): ...this new function.  Move the
31979         location_get_source_line call and error-handling from
31980         print_source_line to here.  Call print_leading_fixits, and rename
31981         print_any_fixits to print_trailing_fixits.
31982         (selftest::test_fixit_insert_containing_newline): Update now that
31983         newlines are partially supported.
31984         (selftest::test_fixit_insert_containing_newline_2): New test.
31985         (selftest::test_fixit_replace_containing_newline): Update comments.
31986         (selftest::diagnostic_show_locus_c_tests): Call the new test.
31987         * edit-context.c (class added_line): New class.
31988         (class edited_line): Describe newline handling in comment.
31989         (edited_line::actually_edited_p): New method.
31990         (edited_line::print_content): Delete redundant decl.
31991         (edited_line::m_predecessors): New field.
31992         (edited_file::print_content): Call edited_line::print_content.
31993         (edited_file::print_diff): Update to support newlines.
31994         (edited_file::print_diff_hunk): Likewise.
31995         (edited_file::print_run_of_changed_lines): New function.
31996         (edited_file::print_diff_line): Convert to...
31997         (print_diff_line): ...this.
31998         (edited_file::get_effective_line_count): New function.
31999         (edited_line::edited_line): Initialize new field m_predecessors.
32000         (edited_line::~edited_line): Clean up m_predecessors.
32001         (edited_line::apply_fixit): Handle newlines.
32002         (edited_line::get_effective_line_count): New function.
32003         (edited_line::print_content): New function.
32004         (edited_line::print_diff_lines): New function.
32005         (selftest::test_applying_fixits_insert_containing_newline): New
32006         test.
32007         (selftest::test_applying_fixits_replace_containing_newline): New
32008         test.
32009         (selftest::insert_line): New function.
32010         (selftest::test_applying_fixits_multiple_lines): Add example of
32011         inserting a line.
32012         (selftest::edit_context_c_tests): Call the new tests.
32013
32014 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32015
32016         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
32017         parameter cand.  Update dump information.
32018         (get_computation_cost): Update uses.
32019
32020 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32021
32022         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
32023         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
32024         (get_computation_at, rewrite_use_address): Update use of
32025         get_computation_aff.
32026
32027 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32028
32029         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
32030         (get_computation): Delete.
32031         (get_computation_cost): Implement like get_computation_cost_at.
32032         Use get_computation_at.
32033         (get_computation_cost_at): Delete.
32034         (rewrite_use_nonlinear_expr): Use get_computation_at.
32035         (rewrite_use_compare, remove_unused_ivs): Ditto.
32036
32037 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32038
32039         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
32040
32041 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32042
32043         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
32044         (ivopts_global_cost_for_size): Rename parameter and update uses.
32045         (iv_ca_recount_cost): Update uses.
32046         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
32047         candidates seperately in n_invs and n_cands.
32048         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
32049
32050 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32051
32052         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
32053         (find_inv_vars_cb): New.
32054         (find_depends): Renamed to ...
32055         (find_inv_vars): ... this.
32056         (add_candidate_1, force_var_cost): Call find_inv_vars.
32057         (split_address_cost, determine_group_iv_cost_cond): Ditto.
32058
32059 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32060
32061         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
32062         inv_vars.  Add inv_exprs.
32063         (struct iv_cand): Rename depends_on to inv_vars.
32064         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
32065         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
32066         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
32067         (dump_cand): Dump inv_vars.
32068         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
32069         (record_invariant, find_depends, add_candidate_1): Ditto.
32070         (set_group_iv_cost, force_var_cost): Ditto.
32071         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
32072         (get_computation_cost_at, get_computation_cost): Ditto.
32073         (determine_group_iv_cost_generic): Ditto.
32074         (determine_group_iv_cost_address): Ditto.
32075         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
32076         (determine_group_iv_costs): Ditto.
32077         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
32078         (iv_ca_set_remove_invariants): Renamed to ...
32079         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
32080         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
32081         (iv_ca_set_add_invariants):  Renamed to ...
32082         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
32083         (iv_ca_set_cp): Use iv_ca_set_add_invs.
32084         (iv_ca_has_deps): Support inv_vars and inv_exprs.
32085         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
32086         (create_new_ivs): Remove useless dump.
32087
32088 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32089
32090         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
32091         iv_cand code.
32092         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
32093         (iv_ca_set_no_cp, create_new_iv): Ditto.
32094
32095 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32096
32097         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32098
32099 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32100
32101         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
32102         function tree_check2.
32103
32104 2017-05-02  Martin Liska  <mliska@suse.cz>
32105
32106         * doc/gcov.texi: Add missing preposition.
32107         * gcov.c (function_info::function_info): Properly fill up
32108         all member variables.
32109
32110 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32111
32112         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
32113
32114 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32115
32116         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
32117
32118 2017-05-02  Martin Liska  <mliska@suse.cz>
32119
32120         PR lto/77954.
32121         * lto-streamer-in.c (lto_read_tree_1): Remove
32122         LTO_STREAMER_DEBUG.
32123         * lto-streamer.c (struct tree_hash_entry): Likewise.
32124         (struct tree_entry_hasher): Likewise.
32125         (tree_entry_hasher::hash): Likewise.
32126         (tree_entry_hasher::equal): Likewise.
32127         (lto_streamer_init): Likewise.
32128         (lto_orig_address_map): Likewise.
32129         (lto_orig_address_get): Likewise.
32130         (lto_orig_address_remove): Likewise.
32131         * lto-streamer.h: Likewise.
32132         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
32133         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
32134
32135 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
32136
32137         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
32138         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
32139         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
32140         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
32141         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
32142         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
32143         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
32144         (mm_maskz_sub_ss): New intrinsics.
32145         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32146         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
32147         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
32148         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
32149         (__builtin_ia32_subss_mask_round): New builtins.
32150         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32151         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
32152         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
32153         Renamed to ...
32154         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
32155         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
32156         Changed to ...
32157         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
32158         ... this.
32159
32160 2017-05-02  Martin Jambor  <mjambor@suse.cz>
32161
32162         PR tree-optimization/78687
32163         * tree-sra.c (access): New field parent.
32164         (process_subtree_disqualification): New function.
32165         (disqualify_candidate): Call it.
32166         (build_accesses_from_assign): Reset write flag if creating an
32167         assighnment link.
32168         (build_access_subtree): Fill in parent field and also prpagate
32169         down grp_write flag.
32170         (create_artificial_child_access): New parameter set_grp_write, set
32171         grp_write to its value.
32172         (propagate_subaccesses_across_link): Also propagate grp_write flag
32173         values.
32174         (propagate_all_subaccesses): Push the closest parent back to work
32175         queue if add_access_to_work_queue returned true.
32176
32177 2017-05-02  Richard Biener  <rguenther@suse.de>
32178
32179         * common.opt (fstrict-overflow): Alias negative to fwrapv.
32180         * doc/invoke.texi (fstrict-overflow): Remove all traces of
32181         -fstrict-overflow documentation.
32182         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
32183         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
32184         flag_strict_overflow.
32185         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
32186         * lto-opts.c (lto_write_options): Do not stream it.
32187         * lto-wrapper.c (merge_and_complain): Do not handle it.
32188         * opts.c (default_options_table): Do not set -fstrict-overflow.
32189         (finish_options): Likewise do not clear it when sanitizing.
32190         * simplify-rtx.c (simplify_const_relational_operation): Do not
32191         test flag_strict_overflow.
32192
32193 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32194
32195         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
32196         using enabled attribute.
32197         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
32198         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
32199         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
32200         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
32201         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
32202         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
32203         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
32204         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
32205         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
32206         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
32207
32208 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32209
32210         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
32211
32212 2017-05-02  Richard Biener  <rguenther@suse.de>
32213
32214         PR tree-optimization/80591
32215         Revert
32216         2017-04-10  Richard Biener  <rguenther@suse.de>
32217
32218         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32219         asm inputs.
32220
32221 2017-05-02  Richard Biener  <rguenther@suse.de>
32222
32223         PR tree-optimization/80549
32224         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
32225         (cleanup_tree_cfg_noloop): Create forwarders to known loop
32226         headers if they do not have a preheader.
32227
32228 2017-05-02  Martin Liska  <mliska@suse.cz>
32229
32230         PR other/80589
32231         * common.opt: Fix typo.
32232         * doc/invoke.texi: Likewise.
32233
32234 2017-05-01  Jan Beulich  <jbeulich@suse.com>
32235
32236         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
32237         swapping, add (x,x,m,x,n) alternative.
32238
32239 2017-05-01  Nathan Sidwell  <nathan@acm.org>
32240
32241         * calls.c (combine_pending_stack_adjustment_and_call): Remove
32242         unnecessary unadjusted_alignment check.
32243
32244 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32245
32246         PR c++/80038
32247         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
32248         operations here.
32249         * gimplify.c (gimplify_cilk_detach): New function.
32250         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
32251         * tree-core.h: Document EXPR_CILK_SPAWN.
32252         * tree.h (EXPR_CILK_SPAWN): Define.
32253
32254 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
32255
32256         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
32257         to use new fixit_hint representation, using the "replace" logic.
32258         (get_line_span_for_fixit_hint): Likewise.
32259         (layout::print_any_fixits): Likewise.
32260         (selftest::test_one_liner_many_fixits): Rename to...
32261         (selftest::test_one_liner_many_fixits_1): ...this, and update
32262         comment and expected output to reflect that the multiple fix-it
32263         hints are now consolidated into one insertion.
32264         (selftest::test_one_liner_many_fixits_2): New test.
32265         (selftest::test_diagnostic_show_locus_one_liner): Update for
32266         above.
32267         (selftest::test_fixit_consolidation): Update for fix-it API
32268         change.
32269         * diagnostic.c (print_parseable_fixits): Likewise.
32270         * edit-context.c (edited_line::m_line_events): Convert from
32271         auto_vec <line_event *> to auto_vec <line_event>.
32272         (class line_event): Convert from abstract base class to a concrete
32273         class, taking over the role of replace_event.
32274         (class insert_event): Delete.
32275         (class replace_event): Rename to class line_event.  Convert to
32276         half-open range.
32277         (edit_context::add_fixits): Reimplement.
32278         (edit_context::apply_insert): Delete.
32279         (edit_context::apply_replace): Rename to...
32280         (edit_context::apply_fixit): ...this.  Convert to half-open range.
32281         (edited_file::apply_insert): Delete.
32282         (edited_file::apply_replace): Rename to...
32283         (edited_file::apply_fixit): ...this.
32284         (edited_line::~edited_line): Drop deletion of events.
32285         (edited_line::apply_insert): Delete.
32286         (edited_line::apply_replace): Rename to...
32287         (edited_line::apply_fixit): ...this.  Convert to half-open range.
32288         Update for change to type of m_line_events.
32289         * edit-context.h (edit_context::apply_insert): Delete.
32290         (edit_context::apply_replace): Rename to...
32291         (edit_context::apply_fixit): ...this.
32292
32293 2017-05-01  Martin Sebor  <msebor@redhat.com>
32294
32295         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
32296         known.
32297
32298 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
32299
32300         PR target/68491
32301         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
32302         __get_cpuid_max returns 0.
32303         (__get_cpuid_count): Ditto.
32304
32305 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
32306
32307         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
32308         replacement expression is another instance of one of its arguments.
32309
32310 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
32311
32312         PR target/79430
32313         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
32314         check for stack push/pop autoinc.
32315         * config/i386/i386.c (ix86_agi_dependent): Return false
32316         if the only reason why modified_in_p returned true is that
32317         addr is SP based and set_insn is a push or pop.
32318
32319 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32320
32321         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
32322         overflow check.
32323
32324 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32325
32326         PR ipa/79224
32327         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
32328         (account_size_time): Use two predicates - exec_pred and
32329         nonconst_pred_ptr.
32330         (evaluate_conditions_for_known_args): Compute both clause and
32331         nonspec_clause.
32332         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
32333         (inline_summary_t::duplicate): Update.
32334         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
32335         separately.
32336         (compute_inline_parameters): Likewise.
32337         (estimate_edge_size_and_time): Update caluclation of time.
32338         (estimate_node_size_and_time): Compute both time and nonspecialized
32339         time.
32340         (estimate_ipcp_clone_size_and_time): Update.
32341         (inline_merge_summary): Update.
32342         (do_estimate_edge_time): Update.
32343         (do_estimate_edge_size): Update.
32344         (do_estimate_edge_hints): Update.
32345         (inline_read_section, inline_write_summary): Stream both new predicates.
32346         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
32347         as argument.
32348         (compute_inlined_call_time): Cleanup.
32349         (big_speedup_p): Update.
32350         (edge_badness): Update.
32351         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
32352         (size_time_entry): Replace predicate by exec_predicate and
32353         nonconst_predicate.
32354         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
32355         (estimate_edge_time): Return also nonspec_time.
32356         (reset_edge_growth_cache): Update.
32357
32358 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
32359
32360         PR rtl-optimization/80491
32361         * ifcvt.c (noce_process_if_block): When looking for x setter
32362         with missing else_bb, don't check only the insn right before
32363         cond_earliest, but look for the last insn that x is modified in
32364         within the same bb.
32365
32366         PR rtl-optimization/80491
32367         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
32368
32369 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
32370
32371         PR tree-optimization/80487
32372         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
32373
32374 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32375
32376         PR tree-optimization/79697
32377         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
32378         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
32379         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
32380         BUILT_IN_STRNDUP.
32381         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
32382         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
32383
32384 2017-04-28  Martin Sebor  <msebor@redhat.com>
32385
32386         PR tree-optimization/80523
32387         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
32388         (init_target_to_host_charmap, target_to_host, target_strtol10): New
32389         functions.
32390         (maybe_warn, format_directive, parse_directive): Use new functions.
32391         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
32392
32393 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
32394
32395         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
32396
32397 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32398
32399         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
32400         target_header_dir): Set correctly.
32401         * configure: Regenerated.
32402         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32403         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32404         instead of SYSTEM_HEADER_DIR.
32405
32406 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
32407
32408         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
32409         (estimate_local_effects): Likewise.
32410         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
32411         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
32412         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
32413         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
32414         do_estimate_edge_time, estimate_edge_time): Likewise.
32415         * ipa-inline-analysis.c (estimate_node_size_and_time,
32416         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
32417         (estimate_time_after_inlining): Remove.
32418
32419 2017-04-28  Martin Liska  <mliska@suse.cz>
32420
32421         * doc/gcov.texi: Enhance documentation of gcov.
32422
32423 2017-04-28  Martin Liska  <mliska@suse.cz>
32424
32425         * doc/gcov.texi: Sort options in alphabetic order.
32426         * doc/gcov-dump.texi: Likewise.
32427         * doc/gcov-tool.texi: Likewise.
32428         * gcov.c (print_usage): Likewise.
32429         * gcov-dump.c (print_usage): Likewise.
32430         * gcov-tool.c (print_merge_usage_message): Likewise.
32431         (print_rewrite_usage_message): Likewise.
32432         (print_overlap_usage_message): Likewise.
32433
32434 2017-04-28  Martin Liska  <mliska@suse.cz>
32435
32436         PR gcov-profile/53915
32437         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
32438
32439 2017-04-28  Martin Liska  <mliska@suse.cz>
32440
32441         PR gcov-profile/79891
32442         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
32443         is marked by compiler as living on a line.
32444         (get_cycles_count): Remove usage of the union.
32445         (output_intermediate_file): Likewise.
32446         (find_source): Fix GNU coding style.
32447         (accumulate_line_counts): Remove old non-all block mode.
32448         (output_lines): Remove usage of the union.
32449         * profile.c (output_location): Include all BBs, even if
32450         belonging to a same line (and file) as a previous BB.
32451
32452 2017-04-28  Martin Liska  <mliska@suse.cz>
32453
32454         * gcov.c (process_args): Handle new argument 'w'.
32455         (read_graph_file): Assign ID to BBs.
32456         (output_branch_count): Display BB # if verbose flag is set.
32457         (output_lines): Likewise for arcs.
32458         (print_usage): Add '--verbose' option help.
32459         * doc/gcov.texi: Document --verbose (-w) option.
32460
32461 2017-04-28  Martin Liska  <mliska@suse.cz>
32462
32463         * gcov.c (struct block_location_info): New struct.
32464         (process_file): Fill up the new structure.
32465         (read_graph_file): Replace usage of encoding by the newly added
32466         struct.
32467         (add_line_counts): Likewise.
32468         (accumulate_line_counts): Remove usage of the union.
32469         (function_info::function_info): New function.
32470         (function_info::~function_info): Likewise.
32471         (process_file): Call delete instead of release_function.
32472         (release_function): Release the function.
32473         (release_structures): Call delete instead of release_function.
32474         (solve_flow_graph): Replace usage of num_blocks.
32475         (find_exception_blocks): Likewise.
32476         (output_lines): Fix GNU coding style.
32477
32478 2017-04-28  Martin Liska  <mliska@suse.cz>
32479
32480         PR driver/56469
32481         * coverage.c (coverage_remove_note_file): New function.
32482         * coverage.h: Declare the function.
32483         * toplev.c (finalize): Clean if an error has been seen.
32484
32485 2017-04-28  Martin Liska  <mliska@suse.cz>
32486
32487         PR gcov-profile/80031
32488         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
32489         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
32490         * gcov.c (read_graph_file): Read just number of blocks.
32491         * profile.c (branch_prob): Do not stream 0 flags per a basic
32492         block.
32493
32494 2017-04-28  Martin Liska  <mliska@suse.cz>
32495
32496         * gcov-dump.c (tag_*): Add new argument to declarations.
32497         (dump_gcov_file): Likewise.
32498         (tag_blocks): Add and use new argument depth.
32499         (tag_arcs): Likewise.
32500         (tag_lines): Likewise.
32501         (tag_counters): Likewise.
32502         (tag_summary): Likewise.
32503         (dump_working_sets): Use depth to do a proper indentation.
32504
32505 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
32506
32507         PR bootstrap/80531
32508         * cgraph.h (symtab_node::debug_symtab): No longer inline.
32509         * symtab.c (symtab_node::debug_symtab): Move definition here.
32510
32511 2017-04-28  Richard Biener  <rguenther@suse.de>
32512
32513         * lto-streamer.h (LTO_major_version): Bump to 7.
32514
32515 2017-04-28  Richard Biener  <rguenther@suse.de>
32516
32517         * tree-vrp.c (assert_info): New struct.
32518         (add_assert_info): New helper.
32519         (register_edge_assert_for_2): Refactor to add asserts to a vector
32520         of assert_info.
32521         (register_edge_assert_for_1): Likewise.
32522         (register_edge_assert_for): Likewise.
32523         (finish_register_edge_assert_for): New helper actually registering
32524         asserts where live on edge.
32525         (find_conditional_asserts): Adjust.
32526         (find_switch_asserts): Likewise.
32527         (evrp_dom_walker::try_find_new_range): Generalize.
32528         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
32529
32530 2017-04-27  Marek Polacek  <polacek@redhat.com>
32531
32532         PR sanitizer/80349
32533         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
32534         arg10 and arg11 to itype.
32535
32536 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
32537
32538         * doc/extend.texi (Object Size Checking): Improve grammar.
32539
32540 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
32541
32542         PR target/80530
32543         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
32544         that the logic for permitting reciprocal estimates matches that
32545         in use_rsqrt_p.
32546
32547 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
32548
32549         PR c++/80534
32550         * tree.c (type_cache_hasher::equal): Only compare
32551         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
32552         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
32553         non-aggregate element types.
32554         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
32555         about the flag on ARRAY_TYPEs in the comment, formatting fix.
32556
32557 2017-04-27  Richard Biener  <rguenther@suse.de>
32558
32559         PR middle-end/80533
32560         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
32561         stripping ARRAY_REFs from MEM_EXPR make sure we're not
32562         keeping a reference to a trailing array.
32563
32564 2017-04-27  Richard Biener  <rguenther@suse.de>
32565
32566         PR middle-end/80539
32567         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
32568         being in loop-closed SSA form conservatively.
32569         (chrec_fold_multiply_poly_poly): Likewise.
32570
32571 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
32572
32573         PR middle-end/79665
32574         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
32575         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
32576
32577 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
32578
32579         PR target/77728
32580         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
32581         (aarch64_function_arg_alignment): Return unsigned int again, but still
32582         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
32583         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
32584         Don't emit -Wpsabi note.
32585         (aarch64_function_arg_boundary): Likewise.
32586         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
32587         caller.
32588
32589 2017-04-26  Nathan Sidwell  <nathan@acm.org>
32590
32591         * tree.h (crc32_unsigned_n): Declare.
32592         (crc32_unsigned, crc32_unsigned): Make inline.
32593         * tree.c (crc32_unsigned_bits): Replace with ...
32594         (crc32_unsigned_n): ... this.
32595         (crc32_unsigned, crc32_byte): Remove.
32596         (crc32_string): Remove unnecessary braces.
32597
32598 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
32599
32600         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
32601         * ipa-inline-analysis.c (MAX_TIME): Remove.
32602         (account_size_time): Use sreal for time.
32603         (dump_inline_summary): Update.
32604         (estimate_function_body_sizes): Update.
32605         (estimate_edge_size_and_time): Update.
32606         (estimate_calls_size_and_time): Update.
32607         (estimate_node_size_and_time): Update.
32608         (inline_merge_summary): Update.
32609         (inline_update_overall_summary): Update.
32610         (estimate_time_after_inlining): Update.
32611         (inline_read_section): Update.
32612         (inline_write_summary): Update.
32613         * ipa-inline.c (compute_uninlined_call_time): Update.
32614         (compute_inlined_call_time): Update.
32615         (recursive_inlining): Update.
32616         (inline_small_functions): Update.
32617         (dump_overall_stats): Update.
32618         * ipa-inline.h: Include sreal.h.
32619         (size_time_entry): Turn time to sreal.
32620         (inline_summary): Turn self_time nad time to sreal.
32621
32622 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
32623
32624         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
32625         data-streamer.h
32626         (sreal::stream_out, sreal::stream_in): New.
32627         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
32628
32629 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
32630
32631         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
32632         environment.
32633
32634 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
32635
32636         PR target/70799
32637         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
32638         Handle ASHIFTRT.
32639         (dimode_scalar_chain::compute_convert_gain): Ditto.
32640         (dimode_scalar_chain::make_vector_copies): Ditto.
32641         (dimode_scalar_chain::convert_reg): Ditto.
32642         (dimode_scalar_chain::convert_insn): Ditto.
32643         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
32644         (VI248_AVX512BW_1): New mode iterator.
32645         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
32646         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
32647         mode iterator.
32648
32649 2017-04-25  Martin Sebor  <msebor@redhat.com>
32650
32651         PR tree-optimization/80497
32652         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
32653         constants are representable in HOST_WIDE_INT.
32654         (parse_directive): Ditto.
32655
32656 2017-04-25  Martin Sebor  <msebor@redhat.com>
32657
32658         PR bootstrap/80486
32659         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
32660         (new_zero_array): Adjust signature.
32661         (dom_info::dom_init): Used unsigned rather that size_t.
32662         (dom_info::dom_info): Same.
32663
32664 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32665             Jakub Jelinek  <jakub@redhat.com>
32666
32667         PR target/77728
32668         * config/arm/arm.c: Include gimple.h.
32669         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
32670         returns negative, increment ncrn only if it returned positive.
32671         (arm_needs_doubleword_align): Return int instead of bool,
32672         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
32673         members, but if there is any such non-FIELD_DECL
32674         > PARM_BOUNDARY aligned decl, return -1 instead of false.
32675         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
32676         returns negative, increment nregs only if it returned positive.
32677         (arm_setup_incoming_varargs): Likewise.
32678         (arm_function_arg_boundary): Emit -Wpsabi note if
32679         arm_needs_doubleword_align returns negative, return
32680         DOUBLEWORD_ALIGNMENT only if it returned positive.
32681
32682 2017-04-25  Marek Polacek  <polacek@redhat.com>
32683
32684         PR sanitizer/80349
32685         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
32686         first argument to type.
32687
32688 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
32689
32690         PR target/80482
32691         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
32692         type checks to test for compatibility instead of equality.
32693
32694 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32695             Jakub Jelinek  <jakub@redhat.com>
32696
32697         PR target/77728
32698         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
32699         type.
32700         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
32701         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
32702         the alignment computation, but return their maximum in warn_alignment.
32703         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
32704         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
32705         is smaller.
32706         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
32707         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
32708         caller.
32709
32710 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32711
32712         * config/arc/simdext.md (dmpyh): Fix typo.
32713
32714 2017-04-25  Richard Biener  <rguenther@suse.de>
32715
32716         PR tree-optimization/80492
32717         * alias.c (compare_base_decls): Handle registers with asm
32718         specification conservatively.
32719         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
32720         compare_base_decls returning dont-know properly.
32721
32722 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32723
32724         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
32725         (legitimate_offset_address_p): New function.
32726         (arc_legitimate_address_p): Use above function.
32727
32728 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32729
32730         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
32731
32732 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32733
32734         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
32735         ACCH registers whenever they are available.
32736
32737 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32738
32739         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
32740         double regs fix when not used.
32741
32742 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32743
32744         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
32745         core registers.
32746         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
32747         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
32748
32749 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32750
32751         * config/arc/arc.c (arc_output_addsi): Check for h-register class
32752         when emitting short ADD instructions.
32753
32754 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32755
32756         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
32757         constraint.
32758         (cmpsi_cc_c_insn): Likewise.
32759         (cbranchsi4_scratch): Compute proper instruction length using
32760         compact_hreg_operand.
32761         * config/arc/predicates.md (compact_hreg_operand): New predicate.
32762
32763 2017-04-25  Richard Biener  <rguenther@suse.de>
32764
32765         PR middle-end/80509
32766         * passes.c (pass_manager::pass_manager): Initialize
32767         m_name_to_pass_map.
32768
32769 2017-04-25  Richard Biener  <rguenther@suse.de>
32770
32771         PR tree-optimization/79201
32772         * tree-ssa-sink.c (statement_sink_location): Handle calls.
32773
32774 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32775
32776         PR target/80464
32777         * config/s390/vector.md: Split MEM->GPR vector moves for
32778         non-s_operand addresses.
32779
32780 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32781
32782         PR target/79895
32783         * config/s390/predicates.md (reload_const_wide_int_operand): New
32784         predicate.
32785         * config/s390/s390.md ("movti"): Remove d/P alternative.
32786         ("movti_bigconst"): New pattern definition.
32787
32788 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32789
32790         PR target/80080
32791         * s390-protos.h (s390_expand_cs_hqi): Removed.
32792         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
32793         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
32794         modes as well as CCZ1mode and CCZmode.
32795         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
32796         signature of s390_emit_compare_and_swap.
32797         (s390_expand_cs_hqi): Likewise, make static.
32798         (s390_expand_cs_tdsi): Generate an explicit compare before trying
32799         compare-and-swap, in some cases.
32800         (s390_expand_cs): Wrapper function.
32801         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
32802         atomic_exchange.
32803         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
32804         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
32805         patterns for small and large integers.  Forbid symref memory operands.
32806         Move expander to s390.c.  Require cc register.
32807         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
32808         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
32809         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
32810         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
32811         symref memory operands.  Remove CC mode and call s390_match_ccmode
32812         instead.
32813         ("atomic_exchange<mode>"): Allow and implement all integer modes.
32814
32815 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32816
32817         * config/s390/s390.md (define_peephole2): New peephole to help
32818         combining the load-and-test pattern with volatile memory.
32819
32820 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32821
32822         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
32823         with CCZmode for TARGET_Z196.
32824
32825 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
32826
32827         PR rtl-optimization/80501
32828         * combine.c (make_compound_operation_int): Set subreg_code to SET
32829         even for AND with mask of the sign bit of mode.
32830
32831         PR rtl-optimization/80500
32832         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
32833         sum's initial value.
32834
32835 2017-04-25  Julian Brown  <julian@codesourcery.com>
32836             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32837
32838         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
32839
32840 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
32841
32842         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
32843
32844 2017-04-25  Julian Brown  <julian@codesourcery.com>
32845             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32846
32847         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
32848         (thunderx2t99_sha): New Reservation.
32849
32850 2017-04-25  Julian Brown  <julian@codesourcery.com>
32851             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32852
32853         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
32854         type for 1-element load.
32855
32856 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
32857
32858         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
32859
32860 2017-04-24  Martin Jambor  <mjambor@suse.cz>
32861
32862         PR tree-optimization/80293
32863         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
32864         char arrays not totally scalarizable if it is false.
32865         (analyze_all_variable_accesses): Pass correct value in the new
32866         parameter.  Add a statistics counter.
32867
32868 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
32869
32870         PR middle-end/79931
32871         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
32872
32873 2017-04-24  Richard Biener  <rguenther@suse.de>
32874
32875         PR tree-optimization/80494
32876         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
32877         out for complex types.
32878
32879 2017-04-24  Richard Biener  <rguenther@suse.de>
32880
32881         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
32882         * tree-ssa-sccvn.c (print_scc): Print SCC size.
32883         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
32884         (DFS): Adjust and never fail.
32885         (sccvn_dom_walker::fail): Remove.
32886         (sccvn_dom_walker::before_dom_children): Adjust.
32887         (run_scc_vn): Likewise and never fail.
32888         * tree-ssa-pre.c (pass_pre::execute): Adjust.
32889         (pass_fre::execute): Likewise.
32890
32891 2017-04-24  Richard Biener  <rguenther@suse.de>
32892
32893         PR tree-optimization/79725
32894         * tree-ssa-sink.c (statement_sink_location): Return whether
32895         failure reason was zero uses.  Move that check later.
32896         (sink_code_in_bb): Deal with zero uses by removing the stmt
32897         if possible.
32898
32899 2017-04-24  Richard Biener  <rguenther@suse.de>
32900
32901         PR c++/2972
32902         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
32903         pointer-based references.
32904
32905 2017-04-24  Richard Biener  <rguenther@suse.de>
32906
32907         PR bootstrap/79814
32908         * pass_manager.h (pass_manager::operator new): Remove.
32909         (pass_manager::operator delete): Likewise.
32910         * passes.c (pass_manager::operator new): Remove.
32911         (pass_manager::operator delete): Likewise.
32912         (pass_manager::pass_manager): Zero individual pass members.
32913
32914 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
32915
32916         PR target/70799
32917         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
32918         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
32919         Check "XEXP (src, 1)" operand here.
32920         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
32921         Check "XEXP (src, 1)" operand here.
32922         (dimode_scalar_chain::make_vector_copies): Detect count register
32923         of a shift instruction.  Zero extend count register from QImode
32924         to DImode to satisfy vector shift pattern count operand predicate.
32925         Substitute vector shift count operand with a DImode copy.
32926         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
32927         vector register.
32928
32929 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
32930
32931         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
32932         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
32933         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
32934         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
32935         (UNSPEC_NOREX_MEM): Remove definition.
32936
32937 2017-04-21  Richard Biener  <rguenther@suse.de>
32938
32939         PR tree-optimization/79547
32940         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32941         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
32942         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
32943         without any constraints.
32944
32945 2017-04-21  Richard Biener  <rguenther@suse.de>
32946
32947         PR tree-optimization/78847
32948         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
32949
32950 2017-04-21  Richard Biener  <rguenther@suse.de>
32951
32952         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
32953         (build_distinct_type_copy): Likewise.
32954         (build_variant_type_copy): Likewise.
32955         * tree.c (build_qualified_type): Pass down mem-stat info.
32956         (build_distinct_type_copy): Likewise.
32957         (build_variant_type_copy): Likewise.
32958
32959 2017-04-21  Richard Biener  <rguenther@suse.de>
32960
32961         PR tree-optimization/80237
32962         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
32963         defaulted to NULL.
32964         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
32965         for a simplified result.
32966
32967 2016-04-21  Richard Biener  <rguenther@suse.de>
32968
32969         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
32970         sth as strict as a simple_iv but a chrec without symbols and an
32971         operand defined in the loop we are peeling (and not some subloop).
32972         (propagate_constants_for_unrolling): Propagate all constants.
32973
32974 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
32975
32976         PR target/79804
32977         * config/i386/i386.c (print_reg): Remove assert for disalowed
32978         regno values, call output_operand_lossage instead.
32979
32980 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
32981
32982         PR target/78090
32983         * config/i386/constraints.md (Yc): New register constraint.
32984         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
32985         Use Yc constraint for alternative 2 of operand 0.  Remove
32986         preferred_for_speed attribute.
32987
32988 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
32989
32990         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
32991         lastprivate clauses in SIMT case.
32992
32993 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
32994
32995         * doc/invoke.texi (-Wextra-semi): Document new warning option.
32996
32997 2017-04-20  Richard Biener  <rguenther@suse.de>
32998
32999         PR tree-optimization/57796
33000         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
33001         as N scalar stores.
33002         (vect_model_load_cost): Cost gathers as N scalar loads.
33003
33004 2017-04-20  Richard Biener  <rguenther@suse.de>
33005
33006         * ggc-page.c (ggc_allocated_p): Rename to ...
33007         (safe_lookup_page_table_entry): ... this and return the lookup
33008         result.
33009         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
33010
33011 2017-04-20  Richard Biener  <rguenther@suse.de>
33012
33013         PR tree-optimization/80453
33014         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
33015         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
33016         from the conditions.
33017         (vn_phi_eq): Pass them down.
33018         (vn_phi_lookup): Record them.
33019         (vn_phi_insert): Likewise.
33020
33021 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
33022
33023         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
33024         uninitialized variable warning to avoid buffer overrun.
33025
33026 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33027
33028         PR other/71250
33029         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
33030         is suppressed for '{ 0 }' in C.
33031
33032 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33033
33034         * BASE-VER: Set to 8.0.0.
33035
33036 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33037
33038         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
33039         priority .init_array and .fini_array section with SECTION_NOTYPE
33040         flag.
33041
33042 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33043
33044         PR middle-end/80423
33045         * tree.h (build_array_type): Add typeless_storage default argument.
33046         * tree.c (type_cache_hasher::equal): Also compare
33047         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
33048         (build_array_type): Add typeless_storage argument, set
33049         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
33050         recursive call.
33051         (build_nonshared_array_type): Adjust build_array_type_1 caller.
33052         (build_array_type): Likewise.  Add typeless_storage argument.
33053
33054 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33055             Jakub Jelinek  <jakub@redhat.com>
33056
33057         PR tree-optimization/80426
33058         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
33059         operation on symbolic operands, also compute the overflow for the
33060         invariant part when the operation degenerates into a negation.
33061
33062 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
33063
33064         PR debug/80461
33065         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
33066         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
33067
33068         PR debug/80436
33069         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
33070
33071 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
33072
33073         PR target/80462
33074         * config/avr/avr.c (tree.h): Include it.
33075         (cgraph.h): Include it.
33076         (avr_encode_section_info): Don't warn for uninitialized progmem
33077         variable if it's just an alias.
33078
33079 2017-04-19  Richard Biener  <rguenther@suse.de>
33080
33081         PR ipa/65972
33082         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
33083         when needed by AutoPGO.
33084
33085 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
33086
33087         PR lto/50345
33088         * doc/lto.texi: Remove an extra 'that'.
33089
33090 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
33091
33092         PR rtl-optimization/80429
33093         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
33094         are only used in debug insns.
33095
33096 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33097             Vladimir Makarov  <vmakarov@redhat.com>
33098
33099         * config/sparc/predicates.md (input_operand): Add comment.  Return
33100         true for any memory operand when LRA is in progress.
33101         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
33102
33103 2017-04-18  Jeff Law  <law@redhat.com>
33104
33105         PR target/74563
33106         * mips.md ({return,simple_return}_internal): Do not overwrite
33107         operands[0].
33108
33109 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33110
33111         PR tree-optimization/80443
33112         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
33113         instead of adding 1, subtract -1 and similarly instead of subtracting
33114         1 add -1.
33115
33116 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
33117
33118         PR rtl-optimization/80357
33119         * haifa-sched.c (tmp_bitmap): New variable.
33120         (model_recompute): Handle duplicate use records.
33121         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
33122         (free_global_sched_pressure_data): Free it.
33123
33124 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33125
33126         Revert:
33127         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33128         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
33129         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
33130         instead of SYSTEM_HEADER_DIR.
33131
33132 2017-04-18  Jeff Law  <law@redhat.com>
33133
33134         PR middle-end/80422
33135         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
33136         predecessors after walking up the insn chain.
33137
33138 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33139
33140         PR debug/80263
33141         * dwarf2out.c (modified_type_die): Try harder not to emit internal
33142         sizetype type into debug info.
33143
33144 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
33145
33146         PR target/80099
33147         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
33148         unneeded test for TARGET_UPPER_REGS_SF.
33149         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
33150
33151 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33152
33153         PR sanitizer/80444
33154         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
33155         instead of gsi_after_labels.
33156
33157 2017-04-18  Jeff Law  <law@redhat.com>
33158
33159         * regcprop.c (maybe_mode_change): Avoid creating copies of the
33160         stack pointer.
33161
33162         Revert:
33163         2017-04-13  Jeff Law  <law@redhat.com>
33164         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33165         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33166
33167 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
33168
33169         PR target/79453
33170         * config/avr/avr.c (intl.h): Include it.
33171         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
33172
33173 2017-04-18  Martin Liska  <mliska@suse.cz>
33174
33175         PR gcov-profile/78783
33176         * gcov-tool.c (gcov_output_files): Validate that destination
33177         file is either removed by the tool or by a user.
33178
33179 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33180             Guy Benyei  <guybe@mellanox.com>
33181
33182         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
33183         block, and do not negate it, the stored id is already negative.
33184
33185 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33186
33187         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
33188
33189 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33190
33191         PR target/80098
33192         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
33193         masks of options that should be turned off if the VSX vector
33194         options are turned off.
33195         (OTHER_P8_VECTOR_MASKS): Likewise.
33196         (OTHER_VSX_VECTOR_MASKS): Likewise.
33197         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
33198         rs6000_disable_incompatible_switches to validate no type switches
33199         like -mvsx.
33200         (rs6000_incompatible_switch): New function to disallow turning on
33201         other vector options if -mno-vsx, -mno-power8-vector, or
33202         -mno-power9-vector are specified.
33203
33204 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33205
33206         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
33207
33208 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33209
33210         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
33211         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
33212         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
33213         (ARG_POINTER_CFA_OFFSET): Likewise.
33214
33215 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33216
33217         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
33218         conditions to take advantage of various optimizations.
33219
33220 2017-04-13  Jeff Law  <law@redhat.com>
33221
33222         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33223         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33224         (zero_extendsidi2_dext): Likewise.
33225
33226 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33227
33228         PR sanitizer/80403
33229         * fold-const.c (fold_ternary_loc): Revert
33230         use op0 instead of fold_convert_loc (loc, type, arg0) part of
33231         2017-04-12 change.
33232
33233 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
33234
33235         PR rtl-optimization/80343
33236         * lra-remat.c (update_scratch_ops): Assign original hard reg to
33237         new scratch pseudo.
33238
33239 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
33240
33241         PR sanitizer/80414
33242         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
33243         to ubsan_encode_value.
33244
33245 2017-04-13  Jeff Law  <law@redhat.com>
33246
33247         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
33248         appearing in DEBUG_INSNs.
33249
33250 2017-04-13  Martin Liska  <mliska@suse.cz>
33251
33252         PR gcov-profile/80413
33253         * gcov-io.c (gcov_write_string): Copy to buffer just when
33254         allocated size is greater than zero.
33255
33256 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33257
33258         PR debug/80321
33259         * dwarf2out.c (decls_for_scope): Ignore declarations of
33260         current_function_decl in BLOCK_NONLOCALIZED_VARS.
33261
33262 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
33263
33264         PR lto/69953
33265         * ipa-visibility.c (non_local_p): Fix typos.
33266         (localize_node): When localizing symbol in same comdat group,
33267         dissolve the group only when we know external symbols are going
33268         to be privatized.
33269         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
33270
33271 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33272
33273         PR tree-optimization/79390
33274         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
33275         order does not result in usable sequence, retry with reversed operand
33276         order.
33277
33278         PR sanitizer/80403
33279         PR sanitizer/80404
33280         PR sanitizer/80405
33281         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
33282         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
33283         op0 instead of fold_convert_loc (loc, type, arg0).
33284
33285 2017-04-12  Jeff Law  <law@redhat.com>
33286
33287         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
33288         has a delay slot in the generated code.
33289
33290         * config/cris/cris.md (cris_preferred_reload_class): Return
33291         GENNONACR_REGS rather than GENERAL_REGS.
33292
33293 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33294
33295         PR c/80163
33296         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
33297         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
33298         signedness of the result type.
33299
33300 2017-04-12  Richard Biener  <rguenther@suse.de>
33301             Jeff Law  <law@redhat.com>
33302
33303         PR tree-optimization/80359
33304         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
33305         trim stores to TARGET_MEM_REFs.
33306
33307 2017-04-12  Richard Biener  <rguenther@suse.de>
33308
33309         PR tree-optimization/79390
33310         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
33311         threading case even more.
33312
33313 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
33314
33315         PR target/80382
33316         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
33317         for quad_address_p for TImode, instead of just not indexed_address.
33318
33319 2017-04-12  Richard Biener  <rguenther@suse.de>
33320             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33321
33322         PR middle-end/79671
33323         * alias.c (component_uses_parent_alias_set_from): Handle
33324         TYPE_TYPELESS_STORAGE.
33325         (get_alias_set): Likewise.
33326         * tree-core.h (tree_type_common): Add typeless_storage flag.
33327         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
33328         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
33329         for types containing members with TYPE_TYPELESS_STORAGE.
33330         (place_field): Likewise.
33331         (layout_type): Likewise for ARRAY_TYPE.
33332         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
33333         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
33334         TYPE_TYPELESS_STORAGE.
33335         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
33336
33337 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33338
33339         PR sanitizer/80349
33340         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33341         first argument to type.
33342
33343 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33344
33345         PR target/80376
33346         PR target/80315
33347         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
33348         CONST0_RTX (mode) rather than const0_rtx where appropriate.
33349         (rs6000_expand_binop_builtin): Likewise.
33350         (rs6000_expand_ternop_builtin): Likewise; also add missing
33351         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
33352         vshasigma built-ins.
33353         * doc/extend.texi: Document that vec_xxpermdi's third argument
33354         must be a constant.
33355
33356 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
33357
33358         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
33359         Use shift_const cost parameter when calculating gain of STV shifts.
33360
33361 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
33362
33363         PR rtl-optimization/70478
33364         * lra-constraints.c (process_alt_operands): Check memory for
33365         disfavoring memory insn operand.
33366
33367 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33368
33369         PR middle-end/80100
33370         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
33371         left shift in unsigned HOST_WIDE_INT type.
33372
33373         PR rtl-optimization/80385
33374         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
33375         (not (neg X)) into (plus X -1) for complex or non-integral modes.
33376
33377         PR libgomp/80394
33378         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
33379         if they have any depend clauses.
33380
33381 2017-04-11  Martin Liska  <mliska@suse.cz>
33382
33383         PR ipa/80212
33384         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
33385         * ipa-split.c (split_function): Create a local comdat symbol
33386         if caller is in a comdat group.
33387
33388 2017-04-11  Martin Liska  <mliska@suse.cz>
33389
33390         PR ipa/80212
33391         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
33392         flags.
33393
33394 2017-04-11  Martin Sebor  <msebor@redhat.com>
33395
33396         PR middle-end/80364
33397         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
33398         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
33399         for INTEGER_TYPE.
33400         (directive::set_width, directive::set_precision, format_character):
33401         Adjust.
33402         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
33403         INTEGER_TYPE.
33404
33405 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
33406
33407         PR target/80389
33408         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
33409         conflict, set target->arch_name instead of target->cpu_name.
33410
33411 2017-04-11  Richard Biener  <rguenther@suse.de>
33412
33413         PR tree-optimization/80374
33414         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
33415         build_zero_cst, remove fold_convertible_p check again.
33416
33417 2017-04-11  Martin Liska  <mliska@suse.cz>
33418
33419         PR sanitizer/70878
33420         * ubsan.c (instrument_object_size): Do not instrument register
33421         variables.
33422
33423 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33424
33425         PR target/80381
33426         * config/i386/i386-builtin-types.def
33427         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
33428         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
33429         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
33430         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
33431         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
33432         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
33433         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
33434         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
33435         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
33436         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
33437         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
33438         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
33439         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
33440         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
33441         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
33442         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
33443         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
33444         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
33445         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
33446         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
33447         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
33448         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
33449         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
33450         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
33451         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
33452         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
33453         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
33454         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
33455         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
33456         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
33457         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
33458         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
33459         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
33460         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
33461         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
33462         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
33463         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
33464         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
33465         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
33466         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
33467         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
33468         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
33469         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
33470         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
33471         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
33472         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
33473         aliases.
33474         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
33475         flag to second_arg_count, handle 4 argument function type _COUNT
33476         aliases, handle second_arg_count on second argument rather than last.
33477
33478 2017-04-10  Jeff Law  <law@redhat.com>
33479
33480         PR tree-optimization/80374
33481         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
33482         record anything if we can not convert integer_zero_node to the
33483         desired type.
33484
33485 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33486
33487         PR target/80108
33488         * config/rs6000/rs6000.c (rs6000_option_override_internal):
33489         Enhance special handling given to the TARGET_P9_MINMAX option in
33490         relation to certain other options.
33491
33492 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
33493
33494         PR tree-optimization/80153
33495         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
33496         remove POINTER_PLUS_EXPR's base part directly, rather than through
33497         aff_tree.
33498
33499 2017-04-10  Richard Biener  <rguenther@suse.de>
33500             Bin Cheng  <bin.cheng@arm.com>
33501
33502         PR tree-optimization/80153
33503         * tree-affine.c (aff_combination_to_tree): Get base pointer from
33504         the first element of pointer type aff_tree.  Build result expr in
33505         aff_tree's type.
33506         (add_elt_to_tree): Convert to type unconditionally.  Remove other
33507         fold_convert calls.
33508         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
33509         (rewrite_use_nonlinear_expr): Check invariant using iv information.
33510
33511 2017-04-10  Richard Biener  <rguenther@suse.de>
33512
33513         * tree-ssa-structalias.c (find_func_aliases): Properly handle
33514         asm inputs.
33515
33516 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33517
33518         PR rtl-optimization/70478
33519         * lra-constraints.c (curr_small_class_check): New.
33520         (update_and_check_small_class_inputs): New.
33521         (process_alt_operands): Update curr_small_class_check.  Disfavor
33522         alternative insn memory operands.  Check available regs for small
33523         class operands.
33524
33525 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33526
33527         PR target/80057
33528         * config/mips/mips.opt (-mvirt): Update description.
33529         * doc/invoke.texi (-mvirt): Likewise.
33530
33531 2017-04-10  Richard Biener  <rguenther@suse.de>
33532
33533         PR middle-end/80362
33534         * fold-const.c (fold_binary_loc): Look at unstripped ops when
33535         looking for NEGATE_EXPR in -A / -B to A / B folding.
33536
33537 2017-04-10  Martin Liska  <mliska@suse.cz>
33538
33539         PR gcov-profile/80224
33540         * gcov.c (print_usage): Fix usage string.
33541         (get_gcov_intermediate_filename): Remove.
33542         (output_gcov_file): Use both for normal and intermediate format.
33543         (generate_results): Do not initialize special file for
33544         intermediate format.
33545
33546 2017-04-10  Richard Biener  <rguenther@suse.de>
33547
33548         PR tree-optimization/80304
33549         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
33550         for safelen.
33551
33552 2017-04-10  Nathan Sidwell  <nathan@acm.org>
33553
33554         PR target/79905
33555         * config/rs6000/rs6000.c (rs6000_vector_type): New.
33556         (rs6000_init_builtins): Use it.
33557
33558 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33559
33560         * config/arm/arm.md (<mrc>): Add mode to SET source.
33561         (<mrrc>): Likewise.
33562
33563 2017-04-10  Richard Biener  <rguenther@suse.de>
33564
33565         PR middle-end/80344
33566         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
33567
33568 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
33569
33570         PR target/80324
33571         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
33572         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
33573         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
33574         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
33575         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
33576         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
33577         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
33578         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
33579         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
33580         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
33581         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
33582         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
33583         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
33584         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
33585         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
33586         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
33587         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
33588         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
33589         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
33590         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
33591         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
33592         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
33593         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
33594
33595 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
33596
33597         PR rtl-optimization/70478
33598         * lra-constraints.c: Reverse the last patch.
33599
33600 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
33601
33602         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
33603         Add comment for WCHAR_T.
33604
33605 2017-04-08  Martin Liska  <mliska@suse.cz>
33606
33607         Revert:
33608         2017-04-07  Martin Liska  <mliska@suse.cz>
33609
33610         PR ipa/80212
33611         * ipa-split.c (split_function): Add function part to a same comdat
33612         group.
33613
33614 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
33615
33616         PR target/80358
33617         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
33618
33619 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
33620
33621         * rs6000/rs6000.c (vec_load_pendulum): Rename...
33622         (vec_pairing): ...to this.
33623         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
33624         (rs6000_sched_init): Adjust for name change.
33625         (struct rs6000_sched_context): Likewise.
33626         (rs6000_init_sched_context): Likewise.
33627         (rs6000_set_sched_context): Likewise.
33628
33629 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
33630
33631         PR target/80322
33632         PR target/80323
33633         PR target/80325
33634         PR target/80326
33635         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
33636         intrinsics.
33637         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
33638         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
33639         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
33640
33641 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
33642
33643         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
33644
33645 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33646
33647         PR rtl-optimization/70703
33648         * ira-color.c (update_conflict_hard_regno_costs): Use
33649         int64_t instead of HOST_WIDE_INT.
33650
33651 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33652
33653         PR rtl-optimization/70478
33654         * lra-constraints.c (process_alt_operands): Disfavor alternative
33655         insn memory operands.
33656
33657 2017-04-07  Jeff Law  <law@redhat.com>
33658
33659         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
33660         CALL and NOTE_INSN_CALL_ARG_LOCATION.
33661
33662 2017-04-07  Martin Liska  <mliska@suse.cz>
33663
33664         PR target/79889
33665         * config/aarch64/aarch64.c (aarch64_process_target_attr):
33666         Show error message instead of an ICE.
33667
33668 2017-04-07  Martin Liska  <mliska@suse.cz>
33669
33670         PR ipa/80212
33671         * ipa-split.c (split_function): Add function part to a same comdat
33672         group.
33673
33674 2017-04-07  Richard Biener  <rguenther@suse.de>
33675
33676         PR middle-end/80341
33677         * tree.c (get_unwidened): Also handle ! for_type case for
33678         INTEGER_CSTs.
33679         * convert.c (do_narrow): Split out from ...
33680         (convert_to_integer_1): ... here.  Do not pass final truncation
33681         type to get_unwidened for TRUNC_DIV_EXPR.
33682
33683 2017-04-07  Richard Biener  <rguenther@suse.de>
33684
33685         * tree-affine.c (wide_int_ext_for_comb): Take type rather
33686         than aff_tree.
33687         (aff_combination_const): Adjust.
33688         (aff_combination_scale): Likewise.
33689         (aff_combination_add_elt): Likewise.
33690         (aff_combination_add_cst): Likewise.
33691         (aff_combination_convert): Likewise.
33692         (add_elt_to_tree): Likewise.  Remove unused argument.
33693         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
33694
33695 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33696
33697         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
33698         definition.
33699         * config/arm/arm.c (arm_default_short_enums): Use
33700         ARM_DEFAULT_SHORT_ENUMS.
33701         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
33702
33703 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
33704
33705         PR debug/80234
33706         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
33707         members with redundant out-of-class redeclaration.
33708
33709 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
33710
33711         PR target/80286
33712         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
33713         * config/i386/i386.md (*zero_extendsidi2):
33714         Add (?*x,*x) and (?*v,*v) alternatives.
33715
33716 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
33717
33718         PR target/79733
33719         * config/i386/i386.c (ix86_expand_builtin)
33720         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
33721         mode from insn data. Convert operands to insn operand mode.
33722         Copy operands that don't satisfy insn predicate to a register.
33723
33724 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
33725
33726         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
33727         Update comments.
33728
33729 2017-04-06  Richard Biener  <rguenther@suse.de>
33730
33731         PR tree-optimization/80334
33732         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
33733         preserve alignment of accesses.
33734
33735 2017-04-06  Richard Biener  <rguenther@suse.de>
33736
33737         PR tree-optimization/80262
33738         * tree-sra.c (build_ref_for_offset): Preserve address-space
33739         information.
33740         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
33741         Drop useless address-space information on MEM_REF offsets.
33742
33743 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
33744
33745         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
33746
33747 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
33748
33749         PR rtl-optimization/70703
33750         * ira-color.c (update_conflict_hard_regno_costs): Use
33751         HOST_WIDE_INT instead of long.
33752
33753 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
33754
33755         PR target/80298
33756         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
33757         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
33758         is not defined.
33759         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
33760         for x86_64 target.  Handle -m3dnowa option.
33761
33762 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
33763
33764         PR rtl-optimization/70703
33765         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
33766         (update_conflict_hard_regno_costs): Use long instead of unsigned
33767         arithmetic for cost calculation.
33768
33769 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
33770             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33771
33772         PR sanitizer/80308
33773         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
33774         for big endian.
33775
33776 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
33777
33778         PR target/78002
33779         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
33780         ptr_mode with Pmode throughout.
33781         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
33782         into probe_stack_range and use DImode.
33783
33784 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33785
33786         PR target/79890
33787         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
33788         call_eh_return is true.
33789
33790 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33791
33792         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
33793         Initialize last_match_fntype_index.
33794
33795 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
33796
33797         PR target/80310
33798         * tree-nvr.c: Include internal-fn.h.
33799         (pass_return_slot::execute): Ignore internal calls without
33800         direct optab.
33801
33802 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33803             Richard Biener  <rguenther@suse.de>
33804
33805         PR c++/80297
33806         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
33807         captures used multiple times, except for the last use.
33808         * generic-match-head.c: Include gimplify.h.
33809
33810 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33811
33812         PR tree-optimization/79390
33813         * target.h (struct noce_if_info): Declare.
33814         * targhooks.h (default_noce_conversion_profitable_p): Declare.
33815         * target.def (noce_conversion_profitable_p): New target hook.
33816         * ifcvt.h (struct noce_if_info): New type, moved from ...
33817         * ifcvt.c (struct noce_if_info): ... here.
33818         (noce_conversion_profitable_p): Renamed to ...
33819         (default_noce_conversion_profitable_p): ... this.  No longer
33820         static nor inline.
33821         (noce_try_store_flag_constants, noce_try_addcc,
33822         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
33823         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
33824         instead of noce_conversion_profitable_p.
33825         * config/i386/i386.c: Include ifcvt.h.
33826         (ix86_option_override_internal): Don't override
33827         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
33828         (ix86_noce_conversion_profitable_p): New function.
33829         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
33830         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
33831         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
33832         * doc/tm.texi: Regenerated.
33833
33834 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33835
33836         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
33837         correction.
33838
33839 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33840
33841         PR target/80307
33842         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
33843         instructions for small multiply cores.
33844
33845 2017-04-04  Jeff Law  <law@redhat.com>
33846
33847         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
33848         added member.
33849         (mips_expand_vec_perm_const): Initialize elements in orig_perm
33850         that are not set by the loop over the elements.
33851
33852 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33853
33854         PR target/80286
33855         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
33856         int mode, convert_modes it to mode as unsigned, otherwise use
33857         lowpart_subreg to mode rather than SImode.
33858         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
33859         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
33860         Use DImode instead of SImode for the shift count operand.
33861         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
33862         Likewise.
33863
33864 2017-04-04  Richard Biener  <rguenther@suse.de>
33865
33866         PR middle-end/80281
33867         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
33868         arithmetic done for the negate or the plus.  Simplify.
33869         (A - (-B) -> A + B): Likewise.
33870         * fold-const.c (split_tree): Make sure to not negate pointers.
33871
33872 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
33873
33874         PR rtl-optimization/60818
33875         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
33876         a compare of comparisons with the thing compared if this results
33877         in a different machine mode.
33878
33879 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
33880
33881         * alias.c (base_alias_check): Fix typo in comment.
33882         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
33883         * cgraphunit.c (symbol_table::compile): Likewise.
33884         * collect2.c (maybe_run_lto_and_relink): Likewise.
33885         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
33886         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
33887         * config/avr/avr.c (avr_map_op_t): Likewise.
33888         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
33889         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
33890         * config/epiphany/epiphany.md (movcc): Likewise.
33891         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
33892         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
33893         Likewise.
33894         * config/mips/mips.c (mips_save_restore_reg): Likewise.
33895         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
33896         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
33897         * config/sh/sh.c (sh_rtx_costs): Likewise.
33898         * fold-const.c (fold_truth_andor): Likewise.
33899         * genautomata.c (collapse_flag): Likewise.
33900         * gengtype.h (struct type::u::s): Likewise.
33901         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
33902         * input.c (FORMAT_AMOUNT): Likewise.
33903         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
33904         (known_aggs_to_agg_replacement_list): Likewise.
33905         * ipa-inline-analysis.c: Likewise.
33906         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
33907         * ipa-polymorphic-call.c
33908         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
33909         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
33910         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
33911         Likewise.
33912         * modulo-sched.c (apply_reg_moves): Likewise.
33913         * omp-expand.c (build_omp_regions_1): Likewise.
33914         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
33915         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
33916         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
33917         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
33918         * value-prof.c: Likewise.
33919         * var-tracking.c (val_reset): Likewise.
33920
33921 2017-04-03  Richard Biener  <rguenther@suse.de>
33922
33923         PR tree-optimization/80275
33924         * fold-const.c (split_address_to_core_and_offset): Handle
33925         POINTER_PLUS_EXPR.
33926
33927 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
33928
33929         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
33930         descriptors is at least equal to that of functions.
33931
33932 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
33933
33934         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
33935
33936 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
33937
33938         PR target/80250
33939         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
33940         (mov<IMOD4:mode>): New expander.
33941         (*mov<IMOD4:mode>_internal): New insn and split pattern.
33942
33943 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
33944
33945         PR rtl-optimization/79405
33946         * fwprop.c (propagations_left): New variable.
33947         (forward_propagate_into): Decrement it.
33948         (fwprop_init): Initialize it.
33949         (fw_prop): If the variable has reached zero, stop propagating.
33950         (fwprop_addr): Ditto.
33951
33952 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
33953
33954         PR debug/79255
33955         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
33956         a FUNCTION_DECL, pass it as decl instead of origin to
33957         process_scope_var.
33958
33959 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
33960
33961         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
33962         string.
33963
33964 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
33965
33966         PR target/80107
33967         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
33968         TARGET_VSX_SMALL_INTEGER.
33969
33970 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33971
33972         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
33973         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
33974
33975 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33976
33977         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
33978         extraction from odd-numbered MSA register.
33979
33980 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
33981
33982         PR middle-end/80173
33983         * expmed.c (store_bit_field_1): Don't attempt to create
33984         a word subreg out of hard registers wider than word if they
33985         have HARD_REGNO_NREGS of 1 for their mode.
33986
33987         PR middle-end/80163
33988         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
33989         conversions to integer types wider than word and pointer.
33990
33991         PR debug/80025
33992         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
33993         (rtx_equal_for_cselib_p): Pass 0 to it.
33994         * cselib.c (cselib_hasher::equal): Likewise.
33995         (rtx_equal_for_cselib_1): Add depth argument.  If depth
33996         is 128, don't look up VALUE locs and punt.  Increment
33997         depth in recursive calls when walking VALUE locs.
33998
33999 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34000
34001         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
34002         (make_gcov_file_name): Use the canonical path name for generating
34003         the MD5 value.
34004         (read_line): Fix handling of files with ascii null bytes.
34005
34006 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
34007
34008         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
34009         to initialise a vector register instead
34010         of using a const_int.
34011
34012 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34013
34014         PR translation/80189
34015         * gimplify.c (omp_default_clause): Use %qs instead of %s in
34016         diagnostic messages.
34017
34018 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
34019
34020         PR target/80246
34021         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
34022         (dfp_diex_<mode>): Update mode of operand 1.
34023         * doc/extend.texi (dxex, dxexq): Document change to return type.
34024         (diex, diexq): Document change to argument type.
34025
34026 2017-03-30  Martin Jambor  <mjambor@suse.cz>
34027
34028         PR ipa/77333
34029         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
34030         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
34031         it reflects the signature changes performed at the callee side.
34032         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
34033         to cgraph_build_function_type_skip_args.
34034         (build_function_decl_skip_args): Adjust call to the above function.
34035
34036 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34037
34038         PR target/80206
34039         * config/i386/sse.md
34040         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
34041         register as dest whenever it is a MEM not rtx_equal_p to the
34042         corresponding dup operand, and when forcing into reg move the
34043         reg into the memory afterwards.
34044         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
34045         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
34046         for the force_reg mode.
34047         (avx512vl_vextractf128<mode>): Use register as dest either
34048         always when a MEM, or when it is a MEM not rtx_equal_p to the
34049         corresponding dup operand, or even not when it is a CONST_VECTOR
34050         depending on the mode and lo vs. hi.
34051         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
34052         parens.
34053         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
34054         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
34055         Likewise.  Require that operands[2] is even.
34056         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
34057         Remove extraneous parens.  Require that operands[2] is a multiple
34058         of 4.
34059         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
34060         operands[0] is a MEM if <mask_applied>, the predicates/constraints
34061         disallow memory then.
34062
34063 2017-03-30  Richard Biener  <rguenther@suse.de>
34064
34065         PR tree-optimization/77498
34066         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
34067         to non-constants over backedges.
34068
34069 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
34070
34071         PR rtl-optimization/80233
34072         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
34073         as last_combined_insn.  Do not test for BARRIER_P separately.
34074
34075 2017-03-29  Andreas Schwab  <schwab@suse.de>
34076
34077         PR ada/80146
34078         * calls.c (prepare_call_address): Convert funexp to Pmode before
34079         copying to temp reg.
34080
34081 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34082
34083         PR tree-optimization/80158
34084         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
34085         Handle possible future case of more than one alternate
34086         interpretation.
34087         (replace_rhs_if_not_dup): Likewise.
34088         (replace_one_candidate): Likewise.
34089
34090 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
34091
34092         PR rtl-optimization/80193
34093         * ira.c (ira): Do not check allocation for LRA.
34094
34095 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
34096
34097         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
34098         (nvptx_output_simt_exit): Declare.
34099         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
34100         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
34101         (init_softstack_frame): Move initialization of crtl->is_leaf to...
34102         (nvptx_declare_function_name): ...here.  Emit declaration of local
34103         memory space buffer for omp_simt_enter insn.
34104         (nvptx_output_unisimt_switch): New.
34105         (nvptx_output_softstack_switch): New.
34106         (nvptx_output_simt_enter): New.
34107         (nvptx_output_simt_exit): New.
34108         * config/nvptx/nvptx.h (struct machine_function): New fields
34109         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
34110         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
34111         (UNSPECV_SIMT_EXIT): Ditto.
34112         (omp_simt_enter_insn): New insn.
34113         (omp_simt_enter): New expansion.
34114         (omp_simt_exit): New insn.
34115         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
34116
34117         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
34118         (expand_GOMP_SIMT_ENTER_ALLOC): New.
34119         (expand_GOMP_SIMT_EXIT): New.
34120         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
34121         (GOMP_SIMT_ENTER_ALLOC): Ditto.
34122         (GOMP_SIMT_EXIT): Ditto.
34123         * target-insns.def (omp_simt_enter): New insn.
34124         (omp_simt_exit): Ditto.
34125         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
34126         simt_dlist.
34127         (lower_rec_simd_input_clauses): Implement SIMT privatization.
34128         (lower_rec_input_clauses): Likewise.
34129         (lower_lastprivate_clauses): Handle SIMT privatization.
34130
34131         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
34132         (ompdevlow_adjust_simt_enter): New.
34133         (find_simtpriv_var_op): New.
34134         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
34135         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
34136
34137         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
34138         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
34139         (copy_decl_for_dup_finish): Ditto.
34140
34141         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
34142
34143 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
34144
34145         PR target/53383
34146         * config/i386/i386.c (ix86_option_override_internal): Always
34147         allow -mpreferred-stack-boundary=3 for 64-bit targets.
34148
34149 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34150
34151         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
34152
34153 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34154
34155         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
34156         mark new edge's irreducible flag accordign to it.
34157         (vect_do_peeling): Check loop preheader edge's irreducible flag
34158         and pass it to function slpeel_add_loop_guard.
34159
34160 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
34161
34162         PR tree-optimization/80218
34163         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
34164         Update block frequencies and counts.
34165
34166 2017-03-28  Richard Biener  <rguenther@suse.de>
34167
34168         PR tree-optimization/78644
34169         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
34170         of a simplification result we may not use it at all.
34171
34172 2017-03-28  Richard Biener  <rguenther@suse.de>
34173
34174         PR ipa/80205
34175         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
34176         without arguments, generate default definition of a SSA name.
34177
34178 2017-03-28  Richard Biener  <rguenther@suse.de>
34179
34180         PR middle-end/80222
34181         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
34182         TYPE_REF_CAN_ALIAS_ALL references.
34183         * fold-const.c (fold_indirect_ref_1): Likewise.
34184
34185 2017-03-28  Martin Liska  <mliska@suse.cz>
34186
34187         PR ipa/80104
34188         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
34189         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
34190
34191 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34192             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
34193
34194         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
34195         (EXTRA_SPECS): Define.
34196         (SUBTARGET_EXTRA_SPECS): Likewise.
34197         (SUBTARGET_CPP_SPEC): Likewise.
34198         * config/arc/elf.h (EXTRA_SPECS): Renamed to
34199         SUBTARGET_EXTRA_SPECS.
34200         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
34201
34202 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34203
34204         * config/arc/simdext.md (vst64_insn): Update pattern.
34205         (vld32wh_insn): Likewise.
34206         (vld32wl_insn): Likewise.
34207         (vld64_insn): Likewise.
34208         (vld32_insn): Likewise.
34209
34210 2017-03-28  Marek Polacek  <polacek@redhat.com>
34211
34212         PR sanitizer/80067
34213         * fold-const.c (fold_comparison): Use protected_set_expr_location
34214         instead of SET_EXPR_LOCATION.
34215
34216 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
34217
34218         * tree.c (add_expr): Avoid name lookup warning.
34219
34220 2017-03-27  Jeff Law  <law@redhat.com>
34221
34222         PR tree-optimization/80216
34223         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
34224         function name.  Limit recursion depth.
34225         (record_temporary_equivalences): Corresponding changes.
34226
34227 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
34228
34229         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
34230         covered first.
34231
34232 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34233
34234         PR target/80102
34235         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
34236         notes.
34237         * cfgcleanup.c (reg_note_cfa_p): New array.
34238         (insns_have_identical_cfa_notes): New function.
34239         (old_insns_match_p): Don't cross-jump in between /f
34240         and non-/f instructions.  If both i1 and i2 are frame related,
34241         verify all CFA notes, their order and content.
34242
34243 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
34244
34245         PR target/78543
34246         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
34247         HImode and SImode with zero extend to DImode to one insn.
34248         (bswap<mode>2_extenddi): Likewise.
34249         (bswapsi2_extenddi): Likewise.
34250         (bswaphi2_extendsi): Likewise.
34251         (bswaphi2): Combine bswap HImode and SImode into one insn.
34252         Separate memory insns from swapping register.
34253         (bswapsi2): Likewise.
34254         (bswap<mode>2): Likewise.
34255         (bswaphi2_internal): Delete, no longer used.
34256         (bswapsi2_internal): Likewise.
34257         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
34258         store, and gpr<-gpr swap insns.
34259         (bswap<mode>2_store): Likewise.
34260         (bswaphi2_reg): Register only splitter, combine with the splitter.
34261         (bswaphi2 splitter): Likewise.
34262         (bswapsi2_reg): Likewise.
34263         (bswapsi2 splitter): Likewise.
34264         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
34265         the insns into load, store, and register/register insns.
34266         (bswapdi2_ldbrx): Likewise.
34267         (bswapdi2_load): Likewise.
34268         (bswapdi2_store): Likewise.
34269         (bswapdi2_reg): Likewise.
34270
34271 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
34272
34273         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
34274         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
34275
34276 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34277
34278         PR target/80103
34279         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
34280         add comments.
34281         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34282         special handling for target option conflicts between dform
34283         options (-mpower9-dform, -mpower9-dform-vector,
34284         -mpower9-dform-scalar) and -mno-direct-move.
34285
34286 2017-03-27  Richard Biener  <rguenther@suse.de>
34287
34288         PR tree-optimization/80181
34289         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
34290
34291 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34292
34293         * config/arc/predicates.md (move_double_src_operand): Replace the
34294         call to move_double_src_operand with a call to address_operand.
34295
34296 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34297
34298         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
34299         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
34300         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
34301
34302 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34303
34304         * config/arc/predicates.md (long_immediate_loadstore_operand):
34305         Consider scaled addresses cases.
34306
34307 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34308
34309         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
34310         restored when in interrupt.
34311         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
34312         doesn't have delay slot.
34313
34314 2017-03-27  Richard Biener  <rguenther@suse.de>
34315
34316         PR ipa/79776
34317         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
34318         inlined thunk clones.
34319
34320 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34321
34322         PR sanitizer/80168
34323         * asan.c (instrument_derefs): Copy over last operand from
34324         original COMPONENT_REF to the new COMPONENT_REF with
34325         DECL_BIT_FIELD_REPRESENTATIVE.
34326         * ubsan.c (instrument_object_size): Likewise.
34327
34328 2017-03-27  Richard Biener  <rguenther@suse.de>
34329
34330         PR tree-optimization/80170
34331         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
34332         sure DR/SCEV didnt fold in constants we do not see when looking
34333         at the reference base alignment.
34334
34335 2017-03-27  Richard Biener  <rguenther@suse.de>
34336
34337         PR middle-end/80171
34338         * gimple-fold.c (fold_ctor_reference): Properly guard against
34339         NULL return value from canonicalize_constructor_val.
34340
34341 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
34342
34343         PR target/80180
34344         * config/i386/i386.c (ix86_expand_builtin)
34345         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
34346         flags reg setting and flags reg using instructions.
34347         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
34348         clobbering instructions to zero extend op2.
34349
34350 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
34351
34352         * doc/install.texi (Configuration) <--with-aix-soname>:
34353         Update link to AIX ld.
34354
34355 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
34356
34357         PR rtl-optimization/80160
34358         PR rtl-optimization/80159
34359         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
34360         reg_alternate_class into account.
34361
34362 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
34363
34364         PR target/80148
34365         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
34366         to consider in curr_insn_transform.
34367
34368 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34369
34370         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
34371         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
34372         and emit_mode_inner.
34373
34374 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34375
34376         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
34377         argument to the overloaded builtin variants.  Use the new flag to
34378         deprecate certain builtin variants.
34379         * config/s390/s390-builtin-types.def: Add new builtin types.
34380         * config/s390/s390-builtins.h: Support new flags field for
34381         overloaded builtins.
34382         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
34383         (s390_macro_to_expand): Enable vector float data type.
34384         (s390_cpu_cpp_builtins_internal): Indicate support of the new
34385         builtins by incrementing the __VEC__ version number.
34386         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
34387         vec_xst.
34388         (s390_resolve_overloaded_builtin): Emit error messages depending
34389         on the builtin flags.
34390         * config/s390/s390.c (s390_expand_builtin): Support additional
34391         flags argument.  Change error message to match the messages
34392         emitted in s390-c.c.
34393         * config/s390/s390.md: New UNSPEC_* constants.
34394         (op_type): Add new instruction types.
34395         * config/s390/vecintrin.h: Add new builtins and test data class
34396         constants.
34397         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
34398         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
34399         (VEC_INEXACT, VEC_NOINEXACT): New constants.
34400         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
34401         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
34402         ("vec_mergel<mode>"): V_HW -> VEC_HW.
34403
34404         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
34405         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
34406         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
34407         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
34408
34409         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
34410         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
34411         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
34412         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
34413
34414         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
34415         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
34416         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
34417         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
34418         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
34419         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
34420         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
34421
34422         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
34423         ("vec_scatter_element<V_HW_4:mode>_DI")
34424         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
34425         ("vec_fpint<mode>", "vflls")
34426         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
34427         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
34428         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
34429         ("*vec_cmphe<mode>_cc"): ... these.
34430
34431         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
34432         mode constant instead of magic value.
34433
34434 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34435
34436         * config/s390/s390.c (s390_expand_vec_compare): Support other
34437         vector floating point modes than just V2DF.
34438         (s390_expand_vcond): Likewise.
34439         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
34440         (s390_cannot_change_mode_class): Prevent mode changes between TF
34441         and V1TF in vector registers.
34442         * config/s390/s390.md (DF, SF): New mode attributes.
34443         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
34444         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
34445         SFmode support for VRs.
34446         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
34447         vector fp modes.
34448         (VFT, VF_HW): New mode iterators.
34449         (vw, sdx): New mode attributes.
34450         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
34451         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
34452         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
34453         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
34454         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
34455         also the new vector floating point modes.  Renaming to ...
34456
34457         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
34458         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
34459         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
34460         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
34461         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
34462         ("vec_unordered<mode>"): ... these.
34463
34464         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
34465         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
34466         ("*vec_extendv2df"): New insn definitions.
34467
34468 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34469
34470         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
34471         ("mulditi3_2", "*muldi3_sign"): New patterns.
34472         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
34473         rename the pattern definition.
34474
34475 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34476
34477         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
34478         expander.
34479         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
34480
34481 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34482
34483         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
34484         instruction if possible.
34485         * config/s390/vector.md (vec_halfnumelts): New mode
34486         attribute.
34487         ("*vec_vllezlf<mode>"): New pattern.
34488
34489 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34490
34491         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
34492         ("popcountv4si2", "popcountv2di2"): Rename to ...
34493         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
34494         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
34495         condition.
34496         ("popcount<mode>2_vxe"): New pattern.
34497
34498 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34499
34500         * common/config/s390/s390-common.c (processor_flags_table): Add
34501         arch12.
34502         * config.gcc: Add arch12.
34503         * config/s390/driver-native.c (s390_host_detect_local_cpu):
34504         Default to arch12 for unknown CPU model numbers.
34505         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
34506         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
34507         PROCESSOR_max sanity check.
34508         * config/s390/s390-opts.h (enum processor_type): Add
34509         PROCESSOR_ARCH12.
34510         * config/s390/s390.c (processor_table): Add arch12.
34511         (s390_expand_builtin): Add check for B_VXE flag.
34512         (s390_issue_rate): Add PROCESSOR_ARCH12.
34513         (s390_get_sched_attrmask): Likewise.
34514         (s390_get_unit_mask): Likewise.
34515         (s390_sched_score): Enable z13 scheduling for arch12.
34516         (s390_sched_reorder): Likewise.
34517         (s390_sched_variable_issue): Likewise.
34518         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
34519         PF_VXE.
34520         (s390_tune_attr): Use z13 scheduling also for arch12.
34521         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
34522         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
34523         (TARGET_VXE_P): New macros.
34524         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
34525         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
34526         * config/s390/s390.opt: Add arch12 as processor_type.
34527
34528 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34529
34530         * config/s390/s390.md
34531         ("fixuns_truncdddi2", "fixuns_trunctddi2")
34532         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
34533         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
34534
34535         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
34536         Rename expanders to ...
34537
34538         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
34539         ("fixuns_truncdddi2_emu"): ... these.
34540
34541         ("fixuns_trunc<mode>si2_emu"): New expander.
34542
34543         ("*fixuns_truncdfdi2_z13"): Rename to ...
34544         ("*fixuns_truncdfdi2_vx"): ... this.
34545
34546 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34547
34548         * config/s390/2964.md: Remove the single element vector compare
34549         instructions which are no longer used.
34550         * config/s390/s390.c (s390_select_ccmode): Remove handling of
34551         vector CCmodes.
34552         (s390_canonicalize_comparison): Remove handling of DFmode
34553         compares.
34554         (s390_expand_vec_compare_scalar): Remove function.
34555         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
34556         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
34557         pattern.
34558         ("*cmp<mode>_ccs"): Add wfcdb instruction.
34559
34560 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34561
34562         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
34563         FP zero.
34564         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
34565         will anyway by matched by mov<mode>_64dfp.
34566
34567 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34568
34569         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
34570         vlef/vstef.  Add missing operand to vleif.
34571
34572 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34573
34574         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
34575         pair for all vector types with 64 bit elements.
34576         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
34577         * config/s390/vector.md (V_HW_64): ... here.
34578         (V_128_NOSINGLE): New mode iterator.
34579         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
34580         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
34581         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
34582         ("*vec_load_pairv2di"): Change to ...
34583         ("*vec_load_pair<mode>"): ... this one.
34584
34585 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34586
34587         * config/s390/constraints.md: Add comments.
34588         (jKK): Reject element sizes > 8 bytes.
34589         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
34590         s_operands.
34591         * config/s390/s390.md: Add the s_operand checks formerly in
34592         s390_split_ok_p to various splitters where they are still
34593         required.
34594         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
34595         for 128 bit vectors.  Plus two splitters.
34596
34597 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34598
34599         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
34600         the file.
34601
34602 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34603
34604         PR target/79893
34605         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
34606         error if the boundary argument is not constant.
34607
34608 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34609
34610         PR rtl-optimization/80112
34611         * loop-doloop.c (doloop_condition_get): Don't check condition
34612         if cmp isn't SET with IF_THEN_ELSE src.
34613
34614 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34615
34616         PR tree-optimization/80158
34617         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
34618         replacing a candidate statement, also replace it for the
34619         candidate's alternate interpretation.
34620         (replace_rhs_if_not_dup): Likewise.
34621         (replace_one_candidate): Likewise.
34622
34623 2017-03-24  Richard Biener  <rguenther@suse.de>
34624
34625         PR tree-optimization/80167
34626         * graphite-isl-ast-to-gimple.c
34627         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
34628         properly.
34629         (translate_isl_ast_to_gimple::get_rename): Likewise.
34630
34631 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34632
34633         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
34634         handling of certain combinations of target options, including the
34635         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
34636         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
34637
34638 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34639
34640         PR target/71436
34641         * config/arm/arm.md (*load_multiple): Add reload_completed to
34642         matching condition.
34643
34644 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34645             Richard Biener  <rguenth@suse.de>
34646
34647         PR tree-optimization/79908
34648         PR tree-optimization/80136
34649         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
34650         been cast away, gimplify_and_add suffices.
34651
34652 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
34653
34654         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
34655
34656 2017-03-23  Richard Biener  <rguenther@suse.de>
34657
34658         PR tree-optimization/80032
34659         * gimplify.c (gimple_push_cleanup): Forced unconditional
34660         cleanups still have to go to the conditional_cleanups
34661         sequence.
34662
34663 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
34664
34665         PR tree-optimization/80072
34666         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
34667         to unsigned int.
34668         (next_operand_entry_id): Change type to unsigned int.
34669         (sort_by_operand_rank): Make sure to return the right return value
34670         even if unsigned fields are bigger than INT_MAX.
34671         (struct oecount): Change cnt and id type to unsigned int.
34672         (oecount_hasher::equal): Formatting fix.
34673         (oecount_cmp): Make sure to return the right return value
34674         even if unsigned fields are bigger than INT_MAX.
34675         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
34676
34677         PR c++/80129
34678         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
34679         TREE_READONLY on result if writing it more than once.
34680
34681         PR sanitizer/80110
34682         * doc/invoke.texi (-fsanitize=thread): Document that with
34683         -fnon-call-exceptions atomics are not able to throw
34684         exceptions.
34685
34686         PR sanitizer/80110
34687         * tsan.c: Include tree-eh.h.
34688         (instrument_builtin_call): Call maybe_clean_eh_stmt or
34689         maybe_clean_or_replace_eh_stmt where needed.
34690         (instrument_memory_accesses): Add cfg_changed argument.
34691         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
34692         if it returned true.
34693         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
34694
34695         PR rtl-optimization/63191
34696         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
34697         wrapper function, moved the whole old content into ...
34698         (ix86_delegitimize_address_1): ... this.  New inline function.
34699         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
34700         true as last argument instead of ix86_delegitimize_address.
34701
34702 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
34703
34704         * config/aarch64/aarch64.c (generic_branch_cost): Copy
34705         cortexa57_branch_cost.
34706
34707 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
34708
34709         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
34710
34711 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34712
34713         PR target/80123
34714         * doc/md.texi (Constraints): Document wA constraint.
34715         * config/rs6000/constraints.md (wA): New.
34716         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
34717         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
34718         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
34719         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
34720
34721 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
34722
34723         PR c++/80029
34724         * gimplify.c (is_oacc_declared): New function.
34725         (oacc_default_clause): Use it to set default flags for acc declared
34726         variables inside parallel regions.
34727         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
34728         declared variables.
34729         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
34730         declare attribute to any decl as necessary.
34731
34732 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34733
34734         PR target/80082
34735         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
34736         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
34737         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
34738         (arm_arch_lpae): This.
34739         * config/arm/arm.c (arm_arch7ve): Rename into ...
34740         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
34741         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
34742         arm_arch_lpae.
34743
34744 2017-03-22  Martin Liska  <mliska@suse.cz>
34745
34746         PR target/79906
34747         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
34748         error message instead of an ICE.
34749
34750 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34751
34752         * doc/extend.texi (6.11 Additional Floating Types): Revise.
34753
34754 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34755
34756         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
34757         comments.
34758         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34759         comments.
34760
34761 2017-03-21  Martin Sebor  <msebor@redhat.com>
34762
34763         * doc/extend.texi: Use "cannot" instead of "can't."
34764         * doc/hostconfig.texi: Same.
34765         * doc/install.texi: Same.
34766         * doc/invoke.texi: Same.
34767         * doc/loop.texi: Same.
34768         * doc/md.texi: Same.
34769         * doc/objc.texi: Same.
34770         * doc/rtl.texi: Same.
34771         * doc/tm.texi: Same.
34772         * doc/tm.texi.in: Same.
34773         * doc/trouble.texi: Same.
34774
34775 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
34776
34777         PR debug/63238
34778         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
34779         (collect_checksum_attributes): Set it.
34780         (die_checksum_ordered): Use it.
34781
34782 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34783
34784         PR tree-optimization/79908
34785         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
34786         change: For a VA_ARG whose LHS has been cast away, use
34787         force_gimple_operand to construct the side effects.
34788
34789 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
34790
34791         PR translation/80001
34792         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
34793         more amenable to translation.
34794         (oacc_loop_auto_partitions): Likewise.
34795
34796 2017-03-21  Marek Polacek  <polacek@redhat.com>
34797             Martin Sebor  <msebor@redhat.com>
34798
34799         PR tree-optimization/80109
34800         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
34801         on INTEGRAL_TYPE_P.
34802
34803 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
34804             Segher Boessenkool  <segher@kernel.crashing.org>
34805
34806         PR target/80125
34807         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
34808         check reg_used_between_p between insn and one of succ or succ2
34809         depending on if succ is artificial insn not inserted into insn
34810         stream.
34811
34812 2017-03-21  Martin Liska  <mliska@suse.cz>
34813
34814         PR gcov-profile/80081
34815         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
34816         * doc/gcc.texi: Include gcov-dump stuff.
34817         * doc/gcov-dump.texi: New file.
34818
34819 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
34820
34821         PR rtl-optimization/79150
34822         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
34823         conditional jump, if the jump is the last insn of the loop.
34824
34825 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34826             Richard Biener  <rguenth@suse.de>
34827
34828         PR tree-optimization/79908
34829         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
34830         been cast away, use force_gimple_operand to construct the side
34831         effects.
34832
34833 2017-03-21  Martin Liska  <mliska@suse.cz>
34834
34835         PR libfortran/79956
34836         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
34837         to NULL.
34838
34839 2017-03-21  Brad Spengler <spender@grsecurity.net>
34840
34841         PR plugins/80094
34842         * plugin.c (htab_hash_plugin): New function.
34843         (add_new_plugin): Use it and adjust.
34844         (parse_plugin_arg_opt): Adjust.
34845         (init_one_plugin): Likewise.
34846
34847 2017-03-21  Richard Biener  <rguenther@suse.de>
34848
34849         PR tree-optimization/80032
34850         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
34851         if set force the cleanup to happen unconditionally.
34852         (gimplify_target_expr): Push inserted clobbers with force_uncond
34853         to avoid them being removed by control-dependent DCE.
34854
34855 2017-03-21  Richard Biener  <rguenther@suse.de>
34856
34857         PR tree-optimization/80122
34858         * tree-inline.c (copy_bb): Do not expans va-arg packs or
34859         va_arg_pack_len when the inlined call stmt requires pack
34860         expansion itself.
34861         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
34862
34863 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
34864
34865         PR sanitizer/78158
34866         * tsan.c (instrument_builtin_call): If the memory model argument
34867         is not a constant, assume it is valid.
34868
34869         PR c/67338
34870         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
34871         avoid UB.
34872
34873 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
34874
34875         PR rtl-optimization/79910
34876         * combine.c (can_combine_p): Do not allow combining an I0 or I1
34877         if its dest is used by an insn before I2 (other than the combined
34878         insns themselves, which are properly handled already).
34879
34880 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
34881
34882         Revert:
34883         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
34884
34885         * combine.c (record_used_regs): New static function.
34886         (try_combine): Handle situations where there is an additional
34887         instruction between I2 and I3 which needs to have a LOG_LINK
34888         updated.
34889
34890         Revert:
34891         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
34892
34893         * combine.c (try_combine): Delete redundant i1 test.  Call
34894         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
34895
34896 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34897
34898         PR target/80083
34899         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
34900         alternatives 13/14.
34901
34902 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34903
34904         PR tree-optimization/80054
34905         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
34906         the optimization if a PHI or any of its arguments is not dominated
34907         by the candidate's basis.  Use gphi* rather than gimple* as
34908         appropriate.
34909         (replace_profitable_candidates): Clean up a gimple* variable that
34910         should be a gphi* variable.
34911
34912 2017-03-20  Martin Sebor  <msebor@redhat.com>
34913
34914         PR c++/52477
34915         * doc/extend.texi (attribute constructor): Document present limitation.
34916
34917 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34918
34919         PR target/79963
34920         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
34921         __POWER9_VECTOR__ #ifdef control, change template definition to
34922         use Power9-specific built-in function.
34923         (vec_any_eq): Likewise.
34924         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
34925         to control outcomes from this test.
34926         (vector_ae_<mode>p): For VEC_F modes, likewise.
34927
34928 2017-03-20  Ian Lance Taylor  <iant@google.com>
34929
34930         * config/i386/i386.c (ix86_function_regparm): Save an extra
34931         register for -fsplit-stack with DECL_STATIC_CHAIN.
34932
34933 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
34934
34935         PR target/79912
34936         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
34937         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
34938
34939 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
34940
34941         * config/riscv/riscv.c (riscv_print_operand): Use "fence
34942         iorw,ow".
34943         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
34944         iorw,iorw".
34945
34946 2017-03-20  Marek Polacek  <polacek@redhat.com>
34947
34948         PR sanitizer/80063
34949         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
34950
34951 2017-03-20  Richard Biener  <rguenther@suse.de>
34952
34953         PR tree-optimization/80113
34954         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
34955         allocate extra SSA name for PHI def.
34956         (add_close_phis_to_outer_loops): Likewise.
34957         (add_close_phis_to_merge_points): Likewise.
34958         (copy_loop_close_phi_args): Likewise.
34959         (copy_cond_phi_nodes): Likewise.
34960
34961 2017-03-20  Martin Liska  <mliska@suse.cz>
34962
34963         PR middle-end/79753
34964         * tree-chkp.c (chkp_build_returned_bound): Do not build
34965         returned bounds for a LHS that's not a BOUNDED_P type.
34966
34967 2017-03-20  Martin Liska  <mliska@suse.cz>
34968
34969         PR target/79769
34970         PR target/79770
34971         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
34972         COMPLEX_CST and VECTOR_CST.
34973
34974 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34975
34976         PR target/78857
34977         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
34978         target operand.  A new splitter adds the clobber statement in case
34979         the target operand is dead anyway.
34980
34981 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
34982
34983         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
34984         to age-old versions of binutils and glibc.
34985
34986 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
34987
34988         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
34989
34990 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34991
34992         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
34993
34994 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34995
34996         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
34997         requirement for binutils 2.13.
34998
34999 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35000
35001         * combine.c (try_combine): Delete redundant i1 test.  Call
35002         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35003
35004 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
35005
35006         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
35007         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
35008         contents.
35009         <riscv64-*-elf>: Re-arrange section
35010         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
35011         <riscv32-*-linux>: Likewise.
35012         <riscv64-*-elf>: Likewise
35013         <riscv64-*-linux>: Likewise.
35014
35015 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
35016
35017         PR target/80052
35018         * aarch64.opt(verbose-cost-dump): Fix typo.
35019
35020 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
35021
35022         PR target/79951
35023         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
35024         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
35025
35026 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35027
35028         * reload.c (find_reloads): When reloading a nonoffsettable address,
35029         use RELOAD_OTHER for it and its address reloads.
35030
35031         PR rtl-optimization/79910
35032         * combine.c (record_used_regs): New static function.
35033         (try_combine): Handle situations where there is an additional
35034         instruction between I2 and I3 which needs to have a LOG_LINK
35035         updated.
35036
35037 2017-03-17  Jeff Law  <law@redhat.com>
35038
35039         PR tree-optimization/71437
35040         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
35041         conditional in the hash table first.
35042         (vrp_dom_walker::before_dom_children): Extract condition from
35043         ASSERT_EXPR.  Record condition, its inverion and any implied
35044         conditions as well.
35045
35046 2017-03-17  Marek Polacek  <polacek@redhat.com>
35047             Markus Trippelsdorf  <markus@trippelsdorf.de>
35048
35049         PR tree-optimization/80079
35050         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
35051         m_stores_head.
35052
35053 2017-03-17  Richard Biener  <rguenther@suse.de>
35054
35055         PR middle-end/80075
35056         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
35057         Properly verify the LHS before the RHS possibly claims to be
35058         handled.
35059         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
35060         do not throw.
35061
35062 2017-03-17  Martin Jambor  <mjambor@suse.cz>
35063
35064         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
35065         (List of -O2 options): Likewise.
35066         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
35067         (-fipa-vrp) New.
35068
35069 2017-03-17  Tom de Vries  <tom@codesourcery.com>
35070
35071         * gcov-dump.c (print_usage): Print bug_report_url.
35072
35073 2017-03-17  Richard Biener  <rguenther@suse.de>
35074
35075         PR middle-end/80050
35076         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
35077         (parser::peek): Likewise.
35078
35079 2017-03-17  Richard Biener  <rguenther@suse.de>
35080
35081         PR tree-optimization/80048
35082         * sese.c (free_sese_info): Properly release rename_map and
35083         copied_bb_map elements.
35084
35085 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
35086
35087         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
35088         Add linked-list forward and backlinks.  Insert on
35089         construction, remove on destruction.
35090         (class pass_store_merging): Add m_stores_head field.
35091         (pass_store_merging::terminate_and_process_all_chains):
35092         Iterate over m_stores_head list.
35093         (pass_store_merging::terminate_all_aliasing_chains):
35094         Likewise.
35095         (pass_store_merging::execute): Check for debug stmts first.
35096         Push new chains onto the m_stores_head stack.
35097
35098 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35099
35100         PR target/71294
35101         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
35102         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
35103         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
35104
35105 2017-03-16  Jeff Law  <law@redhat.com>
35106
35107         PR tree-optimization/71437
35108         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
35109         member function.  Implementation moved into after_dom_children
35110         member function and into the threader's thread_outgoing_edges
35111         function.
35112         (dom_opt_dom_walker::after_dom_children): Simplify by moving
35113         some code into new thread_outgoing_edges.
35114         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
35115         definition.  Simplify marker handling (do it here).   Assume we always
35116         have the available expression and the const/copies tables.
35117         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
35118         and tree-vrp.c
35119         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
35120         * tree-vrp.c (equiv_stack): No longer file scoped.
35121         (vrp_dom_walker): New class.
35122         (vrp_dom_walker::before_dom_children): New member function.
35123         (vrp_dom_walker::after_dom_children): Likewise.
35124         (identify_jump_threads):  Setup domwalker.  Use it rather than
35125         walking edges in a random order by hand.  Simplify setup/finalization.
35126         (finalize_jump_threads): Remove.
35127         (vrp_finalize): Do not call identify_jump_threads here.
35128         (execute_vrp): Do it here instead and call thread_through_all_blocks
35129         here too.
35130
35131         PR tree-optimization/71437
35132         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
35133         callers changed.
35134         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
35135         callers changed.
35136         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
35137         (dom_opt_dom_walker::thread_across_edge): Remove
35138         handle_dominating_asserts argument.  All callers changed.
35139         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
35140         changes.  Remove calls to lhs_of_dominating_assert.  Other
35141         uses of handle_dominating_asserts turn into unconditional code
35142         (simplify_control_stmt_condition_1): Likewise.
35143         (simplify_control_stmt_condition): Likewise.
35144         (thread_through_normal_block, thread_across_edge): Likewise.
35145         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
35146         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
35147         object if it is not an SSA_NAME.
35148         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
35149         before calling into the VRP specific simplifiers.
35150         (identify_jump_threads): Remove handle_dominating_asserts
35151         argument.
35152
35153 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
35154
35155         PR fortran/79886
35156         * tree-diagnostic.c (default_tree_printer): No longer static.
35157         * tree-diagnostic.h (default_tree_printer): New prototype.
35158
35159 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
35160
35161         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
35162         Change ins into fmov.
35163
35164 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35165
35166         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
35167         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
35168         Use h_con constraint for operand 1.
35169         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
35170         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
35171
35172 2017-03-15  Jeff Law  <law@redhat.com>
35173
35174         PR tree-optimization/71437
35175         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
35176         (record_temporary_equivalences): Use it.
35177
35178         PR tree-optimization/71437
35179         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
35180         tree-ssa-scopedtables.
35181         (lookup_avail_expr, build_and_record_new_cond): Likewise.
35182         (record_conditions, record_cond, vuse_eq): Likewise.
35183         (record_edge_info): Adjust to API tweak of record_conditions.
35184         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
35185         (record_temporary_equivalences, optimize_stmt): Likewise.
35186         (eliminate_redundant_computations): Likewise.
35187         (record_equivalences_from_stmt): Likewise.
35188         * tree-ssa-scopedtables.c: Include options.h and params.h.
35189         (vuse_eq): New function, moved from tree-ssa-dom.c
35190         (build_and_record_new_cond): Likewise.
35191         (record_conditions): Likewise.  Accept vector of conditions rather
35192         than edge_equivalence structure for first argument.
35193         for the first argument.
35194         (avail_exprs_stack::lookup_avail_expr): New member function, moved
35195         from tree-ssa-dom.c.
35196         (avail_exprs_stack::record_cond): Likewise.
35197         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
35198         from tree-ssa-dom.c.
35199         (avail_exprs_stack): Add new member functions lookup_avail_expr
35200         and record_cond.
35201         (record_conditions): Declare.
35202
35203 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
35204
35205         PR target/80017
35206         * lra-constraints.c (process_alt_operands): Increase reject for
35207         reloading an input/output operand.
35208
35209 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
35210
35211         PR target/79038
35212         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
35213         insns to convert from signed/unsigned char/short to IEEE 128-bit
35214         floating point.
35215         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
35216
35217 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
35218
35219         PR target/80019
35220         * config/i386/i386.c (ix86_vector_duplicate_value): Create
35221         subreg of inner mode for values already in registers.
35222
35223 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
35224
35225         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
35226         iteration reg is used after the loop.
35227
35228 2017-03-14  Martin Sebor  <msebor@redhat.com>
35229
35230         PR tree-optimization/79800
35231         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
35232         precision in negative-positive range.
35233         (format_floating): Call non-const overload with adjusted precision.
35234
35235 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35236
35237         PR target/79947
35238         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
35239         -mpowerpc-gfxopt.
35240
35241 2017-03-14  Martin Sebor  <msebor@redhat.com>
35242
35243         PR middle-end/80020
35244         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
35245         * builtins.def (aligned_alloc): Use it.
35246
35247         PR c/79936
35248         * Makefile.in (GTFILES): Add calls.c.
35249         * calls.c: Include "gt-calls.h".
35250
35251 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
35252
35253         PR rtl-optimization/79728
35254         * regs.h (struct target_regs): New field
35255         x_contains_allocatable_regs_of_mode.
35256         (contains_allocatable_regs_of_mode): New macro.
35257         * reginfo.c (init_reg_sets_1): Initialize it, and change
35258         contains_reg_of_mode so it includes global regs as well.
35259         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
35260         rather than contains_regs_of_mode.
35261
35262 2017-03-14  Martin Liska  <mliska@suse.cz>
35263
35264         * doc/invoke.texi: Document options that can't be combined with
35265         -fcheck-pointer-bounds.
35266
35267 2017-03-14  Martin Liska  <mliska@suse.cz>
35268
35269         PR middle-end/79831
35270         * doc/invoke.texi (-Wchkp): Document the option.
35271
35272 2017-03-14  Martin Liska  <mliska@suse.cz>
35273
35274         * Makefile.in: Install gcov-dump.
35275
35276 2017-03-14  Martin Liska  <mliska@suse.cz>
35277
35278         * multiple_target.c (expand_target_clones): Bail out for
35279         an invalid attribute.
35280
35281 2017-03-14  Richard Biener  <rguenther@suse.de>
35282
35283         * alias.c (struct alias_set_entry): Pack properly.
35284         * cfgloop.h (struct loop): Likewise.
35285         * cse.c (struct set): Likewise.
35286         * ipa-utils.c (struct searchc_env): Likewise.
35287         * loop-invariant.c (struct invariant): Likewise.
35288         * lra-remat.c (struct cand): Likewise.
35289         * recog.c (struct change_t): Likewise.
35290         * rtl.h (struct address_info): Likewise.
35291         * symbol-summary.h (function_summary): Likewise.
35292         * tree-loop-distribution.c (struct partition): Likewise.
35293         * tree-object-size.c (struct object_size_info): Likewise.
35294         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
35295         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
35296         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
35297         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
35298         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
35299         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
35300         (struct _stmt_vec_info): Likewise.
35301
35302 2017-03-14  Martin Liska  <mliska@suse.cz>
35303
35304         PR target/79892
35305         * multiple_target.c (create_dispatcher_calls): Check that
35306         a target can create a function dispatcher.
35307
35308 2017-03-14  Martin Liska  <mliska@suse.cz>
35309
35310         PR lto/66295
35311         * multiple_target.c (expand_target_clones): Drop local.local
35312         flag for default implementation.
35313
35314 2017-03-14  Richard Biener  <rguenther@suse.de>
35315
35316         PR tree-optimization/80030
35317         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
35318
35319 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
35320
35321         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
35322         gcc_fallthrough() instead of __attribute__((fallthrough));
35323
35324 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35325
35326         * doc/gcc.texi: Remove "up" link to (DIR).
35327         * doc/gccint.texi: Ditto.
35328
35329 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35330
35331         * doc/install.texi (Specific) <avr>: Remove reference to
35332         binutils 2.13.
35333
35334 2017-03-13  Jeff Law  <law@redhat.com>
35335
35336         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
35337         attribute rather than comments.
35338
35339         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
35340         match_scratch operand is highest.
35341
35342 2017-03-13  Martin Liska  <mliska@suse.cz>
35343
35344         PR middle-end/78339
35345         * ipa-pure-const.c (warn_function_noreturn): If the declarations
35346         is a CHKP clone, use original declaration.
35347
35348 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35349
35350         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
35351         (arc_conditional_register_usage): Use a different allocation order
35352         when optimizing for size.
35353         * common/config/arc/arc-common.c (arc_option_optimization_table):
35354         Section anchors default on when optimizing for size.
35355
35356 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35357
35358         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
35359
35360 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35361
35362         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
35363         * config/arc/arc.md (cpu_facility): Add cd variant.
35364         (*movqi_insn): Add code density variant.
35365         (*movhi_insn): Likewise.
35366         (*movqi_insn): Likewise.
35367         (*addsi3_mixed): Likewise.
35368         (subsi3_insn): Likewise.
35369
35370 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35371
35372         * config/arc/arc.md (movsi_cond_exec): Update constraint.
35373
35374 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35375
35376         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
35377         expressions with MINUS and UNARY ops.
35378
35379 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35380
35381         PR target/79911
35382         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
35383         Rename to...
35384         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
35385         between vec_select and vector argument.
35386         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
35387         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
35388         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
35389         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
35390         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
35391         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
35392
35393 2017-03-13  Richard Biener  <rguenther@suse.de>
35394
35395         PR other/79991
35396         * params.def (vect-max-peeling-for-alignment): Fix typo.
35397
35398 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35399
35400         * doc/install.texi (Specific) <mips-*-*>: Remove description of
35401         issue that only occurred with binutils below 2.18.
35402
35403 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35404
35405         * doc/install.texi (Specific) <cris-axis-elf>: No longer
35406         refer to binutils 2.11/2.12 minimum.
35407
35408 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35409
35410         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
35411         ftp.kernel.org and simplify binutils requirement.
35412
35413 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
35414
35415         * doc/invoke.texi (Warning Options): Fix spelling of link-time
35416         optimization.
35417         (Optimize Options): Ditto.  Also remove redundancy.
35418
35419 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35420
35421         PR translation/79848
35422         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
35423         "%qs".
35424         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
35425         to G_ to avoid double translation.
35426
35427 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35428
35429         PR translation/79923
35430         * auto-profile.c (get_combined_location): Convert leading
35431         character of diagnostics to lower case and remove trailing period.
35432         (read_profile): Likewise for various diagnostics.
35433         * config/arm/arm.c (arm_option_override): Remove trailing period
35434         from various diagnostics.
35435         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
35436         (msp430_expand_delay_cycles): Likewise.
35437
35438 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35439
35440         PR target/79925
35441         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
35442         full command-line argument, rather than just "str".
35443         (aarch64_validate_march): Likewise.
35444         (aarch64_validate_mtune): Likewise.
35445
35446 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
35447
35448         PR rtl-optimization/78911
35449         * lra-assigns.c (must_not_spill_p): New function.
35450         (spill_for): Use it.
35451
35452 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35453
35454         PR tree-optimization/79981
35455         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
35456         ATOMIC_COMPARE_EXCHANGE ifn result.
35457         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
35458         IFN_ATOMIC_COMPARE_EXCHANGE.
35459
35460 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35461
35462         PR driver/79875
35463         * opts.c (parse_sanitizer_options): Add missing question mark to
35464         "did you mean" message.
35465
35466 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35467
35468         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
35469         built-in.
35470         (VMULEUH_UNS): Likewise.
35471         (VMULOUB_UNS): Likewise.
35472         (VMULOUH_UNS): Likewise.
35473         * config/rs6000/rs6000.c (builtin_function_type): Remove
35474         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
35475
35476 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35477
35478         PR bootstrap/79952
35479         * read-rtl-function.c (function_reader::read_rtx_operand): Update
35480         x with result of extra_parsing_for_operand_code_0.
35481         (function_reader::extra_parsing_for_operand_code_0): Convert
35482         return type from void to rtx, returning x.  When reading
35483         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
35484         larger size containing struct block_symbol.
35485
35486 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
35487
35488         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
35489         -mfloat128-hardware without -m64.
35490
35491 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
35492
35493         PR target/79941
35494         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
35495         entries to the case statement that marks unsigned arguments to
35496         overloaded functions.
35497
35498 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35499
35500         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
35501         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
35502
35503 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
35504
35505         PR target/79907
35506         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
35507         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
35508
35509 2017-03-10  Martin Liska  <mliska@suse.cz>
35510
35511         PR target/65705
35512         PR target/69804
35513         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
35514         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
35515         FIELD != NULL.
35516
35517 2017-03-10  Olivier Hainque  <hainque@adacore.com>
35518
35519         * tree-switch-conversion (array_value_type): Start by resetting
35520         candidate type to it's main variant.
35521
35522 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35523
35524         PR rtl-optimization/79909
35525         * combine.c (try_combine): Use simplify_replace_rtx on individual
35526         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
35527         of the whole CALL_INSN_FUNCTION_USAGE.
35528
35529         PR tree-optimization/79972
35530         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
35531         get_range_info on SSA_NAMEs.  Formatting fixes.
35532
35533 2017-03-10  Richard Biener  <rguenther@suse.de>
35534             Jakub Jelinek  <jakub@redhat.com>
35535
35536         PR tree-optimization/77975
35537         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
35538         edge to be constant.
35539         (get_val_for): For constant x return it.  Formatting fix.
35540         (loop_niter_by_eval): Avoid pointless looping if the next iteration
35541         would use the same bases as the current one.
35542
35543 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35544
35545         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
35546         instead of vec_select for V1TImode.
35547         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
35548         longer needed.
35549         (VSX_LE_128): Add V1TI to this mode iterator.
35550         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
35551         (*vsx_le_perm_store_<mode>): Likewise.
35552         (pre-reload splitter for VSX stores): Likewise.
35553         (post-reload splitter for VSX stores): Likewise.
35554         (*vsx_xxpermdi2_le_<mode>): Likewise.
35555         (*vsx_lxvd2x2_le_<mode>): Likewise.
35556         (*vsx_stxvd2x2_le_<mode>): Likewise.
35557
35558 2017-03-09  Michael Eager  <eager@eagercon.com>
35559
35560         Correct failures with --enable-checking=yes,rtl.
35561
35562         * config/microblaze/microblaze.c (microblaze_expand_shift):
35563         Replace GET_CODE test with CONST_INT_P and INTVAL test with
35564         test for const0_rtx.
35565         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
35566         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
35567
35568 2017-03-09  Richard Biener  <rguenther@suse.de>
35569
35570         PR tree-optimization/79977
35571         * graphite-scop-detection.c (scop_detection::merge_sese):
35572         Handle the case of extra exits to blocks dominating the entry.
35573
35574 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
35575
35576         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
35577         Document rdynamic.
35578
35579 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
35580
35581         PR rtl-optimization/79949
35582         * lra-constraints.c (process_alt_operands): Check memory when
35583         trying to predict a cycle.  Print about the overall increase.
35584
35585 2017-03-09  Richard Biener  <rguenther@suse.de>
35586
35587         PR middle-end/79971
35588         * gimple-expr.c (useless_type_conversion_p): Preserve
35589         TYPE_SATURATING for fixed-point types.
35590
35591 2017-03-09  Richard Biener  <rguenther@suse.de>
35592
35593         PR ipa/79970
35594         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
35595         alignment of BLKmode params.
35596
35597 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35598
35599         PR target/79913
35600         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
35601         (VALL_NO_V2Q): Likewise.
35602         (VDQF_DF): Delete.
35603         * config/aarch64/aarch64-simd.md
35604         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
35605         iterator.
35606         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
35607         VALL_NO_V2Q mode iterator.
35608         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
35609
35610 2017-03-09  Martin Liska  <mliska@suse.cz>
35611
35612         PR tree-optimization/79631
35613         * tree-chkp-opt.c (chkp_is_constant_addr): Call
35614         tree_int_cst_sign_bit just for INTEGER constants.
35615
35616 2017-03-09  Martin Liska  <mliska@suse.cz>
35617
35618         PR target/65705
35619         PR target/69804
35620         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
35621         sanitizers.
35622
35623 2017-03-09  Marek Polacek  <polacek@redhat.com>
35624
35625         PR c++/79672
35626         * tree.c (inchash::add_expr): Handle TREE_VEC.
35627
35628 2017-03-09  Martin Liska  <mliska@suse.cz>
35629
35630         PR ipa/79764
35631         (chkp_narrow_size_and_offset): New function.
35632         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
35633         (void chkp_parse_bit_field_ref): New function.
35634         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
35635         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
35636
35637 2017-03-09  Martin Liska  <mliska@suse.cz>
35638
35639         PR ipa/79761
35640         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
35641         (chkp_find_bounds_1): Remove gcc_unreachable.
35642
35643 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
35644
35645         PR sanitizer/79944
35646         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
35647         BUILT_IN_SYNC*, determine the access type from the size suffix and
35648         always build a MEM_REF with that type.  Handle forgotten
35649         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
35650
35651         PR target/79932
35652         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
35653         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
35654         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
35655         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
35656         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
35657         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
35658         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
35659         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
35660         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
35661         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
35662         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
35663         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
35664         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
35665         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
35666         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
35667         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
35668         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
35669         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
35670         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
35671         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
35672         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
35673         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
35674         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
35675         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
35676         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
35677         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
35678         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
35679         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
35680         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
35681         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
35682         definitions outside of __OPTIMIZE__ guarded section.
35683
35684         PR target/79932
35685         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
35686         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
35687         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
35688         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
35689         guarded section.
35690
35691 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35692
35693         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
35694         ("vfenez<mode>"): Add missing constraints.
35695
35696 2017-03-08  Martin Sebor  <msebor@redhat.com>
35697
35698         PR target/79928
35699         * config/nds32/nds32.c (nds32_option_override):
35700         Fix misspelled diagnostic.
35701
35702 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35703
35704         PR c/79940
35705         * gimplify.c (gimplify_omp_for): Replace index var in outer
35706         taskloop statement with an artificial variable and add
35707         OMP_CLAUSE_PRIVATE clause for it.
35708
35709 2017-03-08  Richard Biener  <rguenther@suse.de>
35710
35711         PR tree-optimization/79955
35712         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
35713         for accesses that are completely outside of the variable.
35714
35715 2017-03-08  Andrew Haley  <aph@redhat.com>
35716
35717         PR tree-optimization/79943
35718         * tree-ssa-loop-split.c (compute_new_first_bound): When
35719         calculating the new upper bound, (END-BEG) should be added, not
35720         subtracted.
35721
35722 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35723
35724         * config/avr/avr.md (setmemhi): Make sure match_dup
35725         operand number comes before match_scratch.
35726
35727 2017-03-08  Richard Biener  <rguenther@suse.de>
35728
35729         PR tree-optimization/79920
35730         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
35731         with ncopies == 1 to ...
35732         (vect_transform_slp_perm_load): ... here.  Properly compute
35733         all element loads by iterating VF times over the group.  Do
35734         not handle ncopies (computed in a broken way) in
35735         vect_create_mask_and_perm.
35736
35737 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35738
35739         PR sanitizer/79904
35740         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
35741         is a uniform vector, use uniform_vector_p return value instead of
35742         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
35743
35744 2017-03-07  Marek Polacek  <polacek@redhat.com>
35745
35746         PR middle-end/79809
35747         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
35748         (alloca_call_type): Likewise.
35749
35750 2017-03-07  Martin Liska  <mliska@suse.cz>
35751
35752         * gcov.c (process_args): Put comment to correct location.
35753
35754 2017-03-07  Martin Liska  <mliska@suse.cz>
35755
35756         PR middle-end/68270
35757         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
35758         Use array_at_struct_end_p instead of DECL_CHAIN (field).
35759         (chkp_narrow_bounds_for_field): Likewise.
35760         (chkp_parse_array_and_component_ref): Pass one more argument to
35761         call.
35762
35763 2017-03-07  Richard Biener  <rguenther@suse.de>
35764
35765         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
35766         preheaders.
35767
35768 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
35769
35770         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
35771         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
35772
35773 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35774
35775         PR c/79855
35776         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
35777         to end of description.
35778         (PARAM_MAX_STORES_TO_MERGE): Likewise.
35779
35780 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
35781
35782         PR rtl-optimization/79901
35783         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
35784         ...
35785         (*avx512f_<code><mode>3<mask_name>): ... this.
35786         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
35787         iterator instead of VI8_AVX2_AVX512BW.
35788
35789         PR rtl-optimization/79901
35790         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
35791         min/max expander, expand it using expand_vec_cond_expr.
35792
35793         PR sanitizer/79897
35794         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
35795         temporary.
35796
35797 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
35798
35799         PR c++/79821
35800         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
35801         to void * for PCH reasons.
35802         * dwarf2out.c (output_loc_operands, output_die): Cast
35803         v.val_vec.array to unsigned char *.
35804
35805 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
35806
35807         PR target/77850
35808         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
35809         vector types.
35810
35811 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
35812
35813         PR rtl-optimization/79571
35814         * lra-constraints.c (process_alt_operands): Calculate static
35815         reject and subtract it from overall when only addresses will be
35816         reloaded.
35817
35818 2017-03-06  Julia Koval  <julia.koval@intel.com>
35819
35820         PR target/79793
35821         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
35822         incoming stack boundary to 128 for 64-bit targets.
35823
35824 2017-03-06  Richard Biener  <rguenther@suse.de>
35825
35826         PR tree-optimization/79894
35827         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
35828         to NULL after folding it.
35829
35830 2017-03-06  Richard Biener  <rguenther@suse.de>
35831
35832         PR tree-optimization/79824
35833         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
35834         check disabling peeling for gaps.
35835
35836 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
35837
35838         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
35839         attributes): Document gettimeofday.
35840
35841 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
35842
35843         * config/s390/s390.c (s390_option_override_internal): Set
35844         PARAM_MIN_VECT_LOOP_BOUND
35845
35846 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
35847
35848         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
35849         * config/s390/s390.md: Likewise.
35850
35851 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
35852
35853         PR target/79812
35854         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
35855         (<avx2_avx512>_perm<mode>): Rename to ...
35856         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
35857         of VI8F_256_512.
35858         (<avx512>_perm<mode>_mask): Rename to ...
35859         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
35860         of VI8F_256_512.
35861         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
35862         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
35863         instead of VI8F_256_512.
35864         (avx512f_perm<mode>): New define_expand.
35865         (avx512f_perm<mode>_mask): Likewise.
35866         (avx512f_perm<mode>_1<mask_name>): New define_insn.
35867         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
35868
35869 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35870
35871         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
35872         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
35873         if_then_else.
35874         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
35875
35876 2017-03-06  Martin Liska  <mliska@suse.cz>
35877
35878         PR sanitize/79783
35879         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
35880         when having a SSA NAME w/o VAR_DECL assigned to it.
35881
35882 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35883
35884         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
35885         msa_dpsub_<su>_d): Fix MODE for vec_select.
35886
35887 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35888
35889         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
35890         argument.
35891         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
35892
35893 2017-03-06  Richard Biener  <rguenther@suse.de>
35894
35895         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
35896         * plugin.c (register_plugin_info): Likewise.
35897         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
35898
35899 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
35900
35901         * config/i386/sse.md (sse_storehps, sse_storelps,
35902         avx_<castmode><avxsizesuffix>_<castmode>,
35903         avx512f_<castmode><avxsizesuffix>_<castmode>,
35904         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
35905         in condition that at least one operand is not a MEM.
35906
35907 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
35908
35909         PR middle-end/79805
35910         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
35911         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
35912         ECF_NOTHROW.
35913         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
35914         gimple_call_nothrow_p flag based on whether original builtin can throw.
35915         If it can, emit following stmts on the fallthrough edge.
35916         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
35917         don't create new bb if inserting just debug stmts on the edge, try to
35918         insert them on the fallthru bb or just reset debug stmts.
35919
35920 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
35921
35922         PR target/43763
35923         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
35924         restore recog_data (including the operand rtxes inside it) around
35925         the call to get_insn_template.
35926
35927 2017-03-03  Martin Sebor  <msebor@redhat.com>
35928
35929         PR tree-optimization/79699
35930         * context.c (context::~context): Free MPFR caches to avoid
35931         a memory leak on program exit.
35932
35933 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35934
35935         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
35936         Use wide_int::ulow () instead of .elt (0).
35937
35938 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
35939
35940         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
35941         (*pushxf): Limit oF constraint to 32bit targets and add oC
35942         constraint for 64bit targets.
35943         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
35944         (*pushdf): Change rmF constraint to rmC.
35945
35946 2017-03-03  Martin Liska  <mliska@suse.cz>
35947
35948         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
35949         Remove unused variable.
35950
35951 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
35952
35953         PR target/79807
35954         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
35955         is a memory operand, increase num_memory.
35956         (ix86_expand_args_builtin): Likewise.
35957
35958 2017-03-03  Jan Hubicka  <jh@suse.cz>
35959
35960         PR lto/79760
35961         * ipa-devirt.c (maybe_record_node): Properly handle
35962         __cxa_pure_virtual visibility.
35963
35964 2017-03-03  Martin Liska  <mliska@suse.cz>
35965
35966         PR tree-optimization/79803
35967         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
35968         assert.
35969         (pass_loop_prefetch::execute): Disabled optimization if an
35970         assumption about L1 cache size is not met.
35971
35972 2017-03-03  Martin Liska  <mliska@suse.cz>
35973
35974         PR rtl-optimization/79574
35975         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
35976         (hash_scan_set): Likewise.
35977         (dump_hash_table): Likewise.
35978         (hoist_code): Likewise.
35979
35980 2017-03-03  Richard Biener  <rguenther@suse.de>
35981
35982         * fixed-value.c (fixed_from_string): Restore use of elt (1)
35983         in place of uhigh ().
35984         (fixed_convert_from_real): Likewise.
35985
35986 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
35987
35988         PR target/79514
35989         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
35990
35991 2017-03-03  Richard Biener  <rguenther@suse.de>
35992
35993         PR middle-end/79818
35994         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
35995         TYPE_OVERFLOW_UNDEFINED check.
35996
35997 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35998
35999         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
36000         numbers.
36001         (vector_ae_<mode>_p): Likewise.
36002         (vector_nez_<mode>_p): Likewise.
36003         (vector_ne_v2di_p): Likewise.
36004         (vector_ae_v2di_p): Likewise.
36005         (vector_ne_<mode>_p): Likewise.
36006         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
36007         numbers.
36008         (vsx_tsqrt<mode>2_fe): Likewise.
36009
36010 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
36011
36012         PR target/79514
36013         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
36014
36015 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36016
36017         PR rtl-optimization/79780
36018         * cprop.c (one_cprop_pass): When second and further conditional trap
36019         in a single basic block is turned into an unconditional trap, turn it
36020         into a deleted note to avoid RTL verification failures.
36021
36022 2017-03-02  Richard Biener  <rguenther@suse.de>
36023
36024         * fold-const.c (const_binop): Use ulow () instead of elt (0).
36025
36026 2017-03-02  Richard Biener  <rguenther@suse.de>
36027
36028         PR tree-optimization/79345
36029         PR c++/42000
36030         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
36031         param and abort the walk, returning -1 if it is hit.
36032         (walk_aliased_vdefs): Take a limit param and pass it on.
36033         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
36034         defaulting to 0 and return a signed int.
36035         * tree-ssa-uninit.c (struct check_defs_data): New struct.
36036         (check_defs): New helper.
36037         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
36038         about uninitialized memory.
36039         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
36040         bogus uninitialized warning.
36041         (fixed_convert_from_real): Likewise.
36042
36043 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
36044
36045         PR tree-optimization/66768
36046         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
36047         iv_use if base object can't be determined.
36048
36049 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36050
36051         PR tree-optimization/79345
36052         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
36053         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
36054         (get_pattern_stats): Initialize it.
36055         * genemit.c (gen_expand): Verify match_scratch numbers come after
36056         match_operand/match_dup numbers.
36057         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
36058         match_scratch numbers.
36059         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
36060         Likewise.
36061         * config/s390/s390.md (trunctdsd2): Likewise.
36062
36063 2017-03-02  Richard Biener  <rguenther@suse.de>
36064
36065         * wide-int.h (wide_int_storage::operator=): Implement in terms
36066         of wi::copy.
36067
36068 2017-03-02  Richard Biener  <rguenther@suse.de>
36069
36070         PR tree-optimization/79777
36071         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
36072         the to insert expression to sth existing.
36073
36074 2017-03-01  Martin Sebor  <msebor@redhat.com>
36075
36076         PR middle-end/79692
36077         * gimple-ssa-sprintf.c
36078         (directive::known_width_and_precision): New function.
36079         (format_integer): Use it.
36080         (get_mpfr_format_length): Consider the full range of precision
36081         when computing %g output with the # flag.  Set the likely byte
36082         count to 3 rather than 1 when precision is indeterminate.
36083         (format_floating): Correct the lower bound of precision.
36084
36085 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36086
36087         * doc/invoke.texi: Document default code model for 64-bit Linux.
36088
36089 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36090
36091         PR target/79752
36092         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
36093         udiv rather than div since input pattern is unsigned.
36094
36095 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
36096
36097         * config/i386/i386.c (print_reg): Warn for values of
36098         unsupported size in integer register.
36099
36100 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
36101
36102         PR target/79439
36103         * config/rs6000/predicates.md (current_file_function_operand): Do
36104         not allow self calls to be local if the function is replaceable.
36105
36106 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
36107
36108         PR target/79395
36109         * config/rs6000/altivec.h (vec_ctz and others): Change the
36110         preprocessor macro that controls conditional compilation from
36111         _ARCH_PWR9 to __POWER9_VECTOR__.
36112         (vec_all_ne): Change parameterization of __altivec_scalar_pred
36113         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
36114         control (instead of _ARCH_PWR9 control) so that template
36115         definition uses power9-specific function.
36116         (vec_any_eq): Likewise.
36117         (vec_all_ne): Change macro definition to use a power9-specific
36118         expansion under #ifdef __POWER9_VECTOR__ control (instead of
36119         _ARCH_PWR9 control).
36120         (vec_any_eq) Likewise.
36121         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
36122         expansion for CMPNEF to remove support for xvcmpnesp instruction.
36123         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
36124         support for xvcmpnedp instruction.
36125         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
36126         macro expansion so that Power9 implementation of vec_all_ne does
36127         not use the AltiVec predicate framework.
36128         (VCMPNEH_P): Likewise.
36129         (VCMPNEW_P): Likewise.
36130         (VCMPNED_P): Likewise.
36131         (VCMPNEFP_P): Likewise.
36132         (VCMPNEDP_P): Likewise.
36133         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
36134         implementation of vec_any_eq to not use AltiVec predicate
36135         framework.
36136         (VCMPAEH_P): Likewise.
36137         (VCMPAEW_P): Likewise.
36138         (VCMPAED_P): Likewise.
36139         (VCMPAEFP_P): Likewise.
36140         (VCMPAEDP_P): Likewise.
36141         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
36142         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
36143         not use the AltiVec predicate framework.
36144         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
36145         of vec_any_eq to not use AltiVec predicate framework.
36146         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
36147         support for predefined __POWER9_VECTOR__ macro to indicate that
36148         Power9 instruction selection is enabled.
36149         (altivec_overloaded_builtins): Remove extraneous
36150         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
36151         function argument types RS6000_BTI_bool_V16QI and
36152         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
36153         entry for overloaded function argument types RS6000_BTI_bool_V4SI
36154         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
36155         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
36156         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
36157         Power9 for implementations of vec_cmpne.  Change the signature for
36158         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
36159         (representing vec_all_ne) to remove the previously described first
36160         argument of type RS6000_BTI_INTSI, as this was an artifact of
36161         reliance on the AltiVec predicate framework, which is no longer
36162         used in the implementation of these functions.  Add
36163         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
36164         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
36165         since, unlike the AltiVec predicate framework implementation, we
36166         do not share function descriptors between vec_alle and vec_anyeq.
36167         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
36168         set of modes that receive special treatment even when
36169         TARGET_P9_VECTOR is true.  The special treatment emits code that
36170         does not depend on Power9 instructions.
36171         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
36172         define_expand to not rely on AltiVec predicate framework.
36173         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36174         function.
36175         (vector_ne_v2di_p): Change this define_expand to not rely on
36176         AltiVec predicate framework.
36177         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
36178         function.
36179         (vector_ne_<mode>_p): Change this define_expand to not rely on
36180         AltiVec predicate framework.
36181         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36182         function.
36183         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
36184         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
36185         define_insn pattern.
36186         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
36187         define_insn pattern because the xvcmpne<VSs>. instruction is not
36188         supported.
36189         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
36190         instruction is not supported.
36191
36192 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36193
36194         * config/nvptx/nvptx.c: Include intl.h.
36195
36196 2017-03-01  Martin Jambor  <mjambor@suse.cz>
36197
36198         PR lto/78140
36199         * ipa-prop.h (ipa_bits): Removed field known.
36200         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
36201         to pointers.  Adjusted their comments to warn about their sharing.
36202         (ipcp_transformation_summary): Change bits to a vector of pointers.
36203         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
36204         (ipa_get_ipa_bits_for_value): Declare.
36205         * tree-vrp.h (value_range): Mark as GTY((for_user)).
36206         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
36207         (ipa_bits_hash_table): Likewise.
36208         (ipa_vr_ggc_hash_traits): Likewise.
36209         (ipa_vr_hash_table): Likewise.
36210         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
36211         being pointers and vr_known being removed.
36212         (ipa_set_jf_unknown): Likewise.
36213         (ipa_get_ipa_bits_for_value): New function.
36214         (ipa_set_jfunc_bits): Likewise.
36215         (ipa_get_value_range): New overloaded functions.
36216         (ipa_set_jfunc_vr): Likewise.
36217         (ipa_compute_jump_functions_for_edge): Use the above functions to
36218         construct bits and vr parts of jump functions.
36219         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
36220         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36221         exist.
36222         (ipcp_grow_transformations_if_necessary): Also allocate
36223         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36224         exist.
36225         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
36226         them.  Fix too long lines.
36227         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
36228         vr_known being removed.
36229         (ipa_read_jump_function): Use new setter functions to construct bits
36230         and vr parts of jump functions or set them to NULL.
36231         (write_ipcp_transformation_info): Adjust for bits being pointers.
36232         (read_ipcp_transformation_info): Likewise.
36233         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
36234         space.
36235         Include gt-ipa-prop.h.
36236         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
36237         being pointers.
36238         (ipcp_store_bits_results): Likewise.
36239         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
36240         Do not write to existing jump functions but use a temporary instead.
36241
36242 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36243
36244         PR c++/79681
36245         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
36246         attempt to use its first operand as BIT_FIELD_REF base.
36247
36248 2017-03-01  Richard Biener  <rguenther@suse.de>
36249
36250         PR middle-end/79721
36251         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
36252         interpolating formula in wrapping arithmetic.
36253         (chrec_apply): Convert chrec_evaluate return value to wanted type.
36254
36255 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36256
36257         PR tree-optimization/79734
36258         * tree-vect-generic.c (expand_vector_condition): Optimize
36259         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
36260         Handle VEC_COND_EXPR where comparison has different inner width from
36261         type's inner width.
36262
36263 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
36264
36265         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
36266         markup, and similar issues.  Remove @opindex entries for things
36267         that aren't options.  Add missing -mmpy-option entries.
36268
36269 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36270
36271         PR tree-optimization/79737
36272         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
36273         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
36274         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
36275         instead of byte_size.  Formatting fix.
36276         (shift_bytes_in_array_right): Formatting fix.
36277
36278 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
36279
36280         PR target/79749
36281         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
36282         condition on optimize for the leaf function test.
36283
36284 2017-02-28  Martin Liska  <mliska@suse.cz>
36285
36286         PR lto/79625
36287         * read-rtl-function.c (function_reader::handle_unknown_directive):
36288         Bail out when one uses -flto.
36289
36290 2017-02-28  Martin Liska  <mliska@suse.cz>
36291
36292         * common.opt: Replace space with tabular for options of <number>
36293         type.
36294         * config/i386/i386.opt: Show <number> value for
36295         -mlarge-data-threshold.
36296         * opts.c (print_filtered_help): Do not display number in hexadecimal
36297         format.
36298
36299 2017-02-28  Martin Liska  <mliska@suse.cz>
36300
36301         * common.opt: Fix --help=option -Q for options which are of
36302         an enum type.
36303
36304 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
36305
36306         * config/i386/i386.c (print_reg): Error out for values
36307         of 8-bit size in invalid integer register.
36308
36309 2017-02-28  Martin Sebor  <msebor@redhat.com>
36310
36311         PR tree-optimization/79691
36312         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
36313
36314 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36315
36316         PR target/79729
36317         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
36318         gcc_unreachable with output_operand_lossage.
36319
36320 2017-02-28  Richard Biener  <rguenther@suse.de>
36321
36322         PR tree-optimization/79740
36323         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
36324         inserts.
36325         (visit_nary_op): Insert the nary into the hashtable if we
36326         pattern-matched sth.
36327         * tree-ssa-pre.c (eliminate_insert): Robustify.
36328
36329 2017-02-28  Richard Biener  <rguenther@suse.de>
36330
36331         PR middle-end/79731
36332         * fold-const.c (decode_field_reference): Reject out-of-bound
36333         accesses.
36334
36335 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36336
36337         * config/i386/i386.c: Include intl.h.
36338         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
36339         instead of just cond ? "..." : "...".
36340         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
36341         * coverage.c (read_counts_file): Likewise.
36342         * omp-offload.c: Include intl.h.
36343         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
36344         of just cond ? "..." : "...".
36345         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
36346         of just cond ? "..." : "...".
36347
36348 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
36349
36350         PR target/79742
36351         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
36352         entry, if present.
36353         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
36354         'tune for' CPU name.
36355         * config/arm/arm-cpu-data.h: Regenerated.
36356
36357 2017-02-28  Richard Biener  <rguenther@suse.de>
36358
36359         PR tree-optimization/79732
36360         * tree-inline.c (expand_call_inline): Do not shadow var.
36361
36362 2017-02-28  Richard Biener  <rguenther@suse.de>
36363
36364         PR tree-optimization/79723
36365         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
36366         address-space properly.
36367
36368 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
36369
36370         * doc/optinfo.texi (Optimization groups): Fix option used for
36371         OPTGROUP_ALL.
36372         * doc/invoke.texi (-fopt-info): Document "omp".
36373         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
36374         (OPTGROUP_ALL): Add OPTGROUP_OMP.
36375         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
36376         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
36377         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
36378
36379         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
36380         all users.
36381         * dumpfile.c (optgroup_options): Instead of "openmp", associate
36382         OPTGROUP_OMP with "omp".
36383
36384 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
36385
36386         PR target/79544
36387         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
36388         for arithmetic shift of unsigned V2DI.
36389
36390 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
36391
36392         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
36393         arc/linux.h headers.
36394         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
36395         (LINK_SPEC): Likewise.
36396         (ARC_TLS_EXTRA_START_SPEC): Likewise.
36397         (EXTRA_SPECS): Likewise.
36398         (STARTFILE_SPEC): Likewise.
36399         (ENDFILE_SPEC): Likewise.
36400         (LIB_SPEC): Likewise.
36401         (TARGET_SDATA_DEFAULT): Likewise.
36402         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
36403         (MULTILIB_DEFAULTS): Likewise.
36404         (DWARF2_UNWIND_INFO): Likewise.
36405         * config/arc/big.h: New file.
36406         * config/arc/elf.h: Likewise.
36407         * config/arc/linux.h: Likewise.
36408         * config/arc/t-uClibc: Remove.
36409
36410 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
36411
36412         PR tree-optimization/77536
36413         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
36414         (tree_transform_and_unroll_loop): Use above function to compute the
36415         estimated niter of unrolled loop and use it when scaling profile.
36416         Also use count info rather than frequency if it's non-zero.
36417         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
36418         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
36419         (vect_transform_loop): Call above function.
36420
36421 2017-02-27  Richard Biener  <rguenther@suse.de>
36422
36423         PR tree-optimization/45397
36424         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
36425         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
36426         (visit_nary_op): Add pattern matching for CSEing sign-changed
36427         or truncated operations with wider ones.
36428
36429 2017-02-27  Richard Biener  <rguenther@suse.de>
36430
36431         PR tree-optimization/79690
36432         * tree-vect-stmts.c (vectorizable_store): Use vector type
36433         built from the DR with address-space.
36434
36435 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
36436
36437         * doc/invoke.texi (Optimize Options): Refine the description
36438         of asan-use-after-return.
36439
36440 2017-02-25  Alan Modra  <amodra@gmail.com>
36441
36442         PR rtl-optimization/79584
36443         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
36444         base, not ad->base_term, the reg within base.  Remove assertion
36445         that ad->base == ad->base_term.  Replace gen_int_mode using
36446         bogus mode with const0_rtx.
36447
36448 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
36449
36450         PR middle-end/79396
36451         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
36452         FMA_EXPR like tcc_binary or tcc_unary.
36453
36454         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
36455
36456         PR debug/77589
36457         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
36458         bitfield.
36459         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
36460         (output_loc_operands): Handle DW_OP_call_ref and
36461         DW_OP_GNU_variable_value.
36462         (struct variable_value_struct): New type.
36463         (struct variable_value_hasher): Likewise.
36464         (variable_value_hash): New variable.
36465         (string_types): Remove.
36466         (copy_loc_descr): New function.
36467         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
36468         (prepend_loc_descr_to_each): New function.
36469         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
36470         instead of add_loc_descr_to_each if the first argument is single
36471         location list and the second has multiple.
36472         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
36473         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
36474         when looking for variable value which doesn't have other location info.
36475         (loc_list_from_tree): Formatting fix.
36476         (gen_array_type_die): Simplify DW_AT_string_length handling.
36477         (adjust_string_types): Remove.
36478         (gen_subprogram_die): Don't call adjust_string_types nor test/set
36479         string_types.  Call resolve_variable_values.
36480         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
36481         (resolve_addr_in_expr): Likewise.  Add A argument.
36482         (copy_deref_exprloc): Remove deref argument.  Adjust for the
36483         original expression being DW_OP_GNU_variable_value with optionally
36484         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
36485         optionally after it.
36486         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
36487         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
36488         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
36489         (variable_value_hasher::hash, variable_value_hasher::equal): New
36490         methods.
36491         (resolve_variable_value_in_expr, resolve_variable_value,
36492         resolve_variable_values, note_variable_value_in_expr,
36493         note_variable_value): New functions.
36494         (dwarf2out_early_finish): Call note_variable_value on all toplevel
36495         DIEs.
36496
36497 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
36498
36499         PR c/79677
36500         * opts.h (handle_generated_option): Add GENERATED_P argument.
36501         * opts-common.c (handle_option): Adjust function comment.
36502         (handle_generated_option): Add GENERATED_P argument, pass it to
36503         handle_option.
36504         (control_warning_option): Pass false to handle_generated_option
36505         GENERATED_P.
36506         * opts.c (maybe_default_option): Pass true to handle_generated_option
36507         GENERATED_P.
36508         * optc-gen.awk: Likewise.
36509
36510 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36511
36512         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
36513         a REG, look at the REG it is a SUBREG of.
36514         (splitter for cmpeqsi_t): Ditto.
36515
36516 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36517
36518         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
36519         the special USEs with the pattern of the insn, not the insn itself.
36520
36521 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
36522
36523         PR target/79473
36524         * doc/invoke.texi: Document -mload-store-pairs.
36525
36526 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36527             Sandra Loosemore  <sandra@codesourcery.com>
36528
36529         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
36530         argument isn't a CONST_INT.
36531         (nios2_alternate_compare_const): Assert op is a CONST_INT.
36532         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
36533         (nios2_validate_compare): Bypass alternate compare logic if *op2
36534         is not a CONST_INT.
36535         (ldstwm_operation_p): Return false if first_base is not a REG or
36536         if first_offset is not a CONST_INT.
36537
36538 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36539
36540         * config/cris/cris.md: Use correct operand in a define_peephole2.
36541
36542 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36543
36544         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
36545
36546 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36547
36548         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
36549         this_insn if it is an INSN or JUMP_INSN.
36550         (force_offsettable): Look at base, not at addr.
36551         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
36552         on things that aren't necessarily CONST_INTs.
36553
36554 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
36555
36556         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
36557         -mfpmath=sse is the default also for x86-32 targets with SSE2
36558         instruction set when @option{-ffast-math} is enabled
36559
36560 2017-02-24  Jeff Law  <law@redhat.com>
36561
36562         PR rtl-optimizatoin/79286
36563         * ira.c (update_equiv_regs): Drop may_trap_p exception to
36564         dominance test.
36565
36566 2017-02-24  Richard Biener  <rguenther@suse.de>
36567
36568         PR tree-optimization/79389
36569         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
36570         debug insns.
36571
36572 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
36573
36574         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
36575         function comment to reflect reality.
36576         (loop_exits_before_overflow): Fix typo in function description.
36577
36578 2017-02-24  Richard Biener  <rguenther@suse.de>
36579
36580         PR tree-optimization/79389
36581         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
36582         properly that a threading opportunity exists.  Detect conditional
36583         copy/constant propagation opportunities.
36584
36585 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
36586
36587         * config/visium/visium.md (type): Add trap.
36588         (b): New mode attribute.
36589         (*btst): Rename into...
36590         (*btst<mode>): ...this and adjust.
36591         (*cbranchsi4_btst_insn): Rename into...
36592         (*cbranch<mode>4_btst_insn): ...this and adjust.
36593         (trap): New define_insn.
36594
36595 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
36596
36597         PR tree-optimization/79389
36598         * ifcvt.c (struct noce_if_info): Add rev_cond field.
36599         (noce_reversed_cond_code): New function.
36600         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
36601         reversed_comparison_code.  Formatting fix.
36602         (noce_try_store_flag): Test rev_cond != NULL in addition to
36603         reversed_comparison_code.
36604         (noce_try_store_flag_constants): Likewise.
36605         (noce_try_store_flag_mask): Likewise.
36606         (noce_try_addcc): Use rev_cond if non-NULL instead of
36607         reversed_comparison_code.
36608         (noce_try_cmove_arith): Likewise.  Formatting fixes.
36609         (noce_try_minmax, noce_try_abs): Clear rev_cond.
36610         (noce_find_if_block): Initialize rev_cond.
36611         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
36612         instead of false as last argument never attempt to reverse it
36613         afterwards.
36614
36615 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
36616
36617         PR tree-optimization/79663
36618         * tree-predcom.c (combine_chains): Process refs in reverse order
36619         only for ZERO length chains, and add explaining comment.
36620
36621 2017-02-23  Jeff Law  <law@redhat.com>
36622
36623         PR tree-optimization/79578
36624         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
36625         in call to operand_equal_p.
36626
36627 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
36628
36629         PR target/71017
36630         * config/i386/cpuid.h: Fix another undefined behavior.
36631
36632 2017-02-23  Richard Biener  <rguenther@suse.de>
36633
36634         PR tree-optimization/79683
36635         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
36636         vector types for data-refs.
36637
36638 2017-02-23  Martin Liska  <mliska@suse.cz>
36639
36640         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
36641
36642 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
36643
36644         PR middle-end/79665
36645         * internal-fn.c (get_range_pos_neg): Moved to ...
36646         * tree.c (get_range_pos_neg): ... here.  No longer static.
36647         * tree.h (get_range_pos_neg): New prototype.
36648         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
36649         are known to be in between 0 and signed maximum inclusive, try to
36650         expand both unsigned and signed divmod and use the cheaper one from
36651         those.
36652
36653 2017-02-22  Jeff Law  <law@redhat.com>
36654
36655         PR tree-optimization/79578
36656         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
36657         to compare base operands.
36658
36659 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
36660
36661         PR target/79211
36662         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
36663         gpc_reg_operand instead of fpr_reg_operand.
36664
36665 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
36666
36667         * config/mips/mips.c (mips_return_in_memory): Force FP
36668         vector types to be returned in memory for o32 ABI.
36669
36670 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
36671
36672         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
36673         instead of DW_TAG_member for static data member declarations and don't
36674         set no_linkage_name for static inline data members.
36675         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
36676         to DW_TAG_member.
36677
36678 2017-02-22  Martin Liska  <mliska@suse.cz>
36679
36680         * doc/invoke.texi: Replace inequality signs with square brackets
36681         for -Wnormalized.
36682
36683 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
36684
36685         PR target/78660
36686         * lra-constraints.c (simplify_operand_subreg): Handle
36687         WORD_REGISTER_OPERATIONS targets.
36688
36689 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
36690
36691         PR target/70465
36692         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
36693         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
36694         elimination by swapping fld*.
36695
36696 2017-02-22  Richard Biener  <rguenther@suse.de>
36697
36698         PR tree-optimization/79673
36699         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
36700         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
36701         irrelevant address-space qualifiers and avoiding a
36702         ADDR_SPACE_CONVERT_EXPR from fold_convert.
36703
36704 2017-02-22  Richard Biener  <rguenther@suse.de>
36705
36706         PR tree-optimization/79666
36707         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
36708         to not symbolically negate if that may introduce undefined
36709         overflow.
36710
36711 2017-02-22  Martin Liska  <mliska@suse.cz>
36712
36713         PR lto/79587
36714         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
36715         * data-streamer-out.c (streamer_write_gcov_count_stream):
36716         Likewise.
36717         * value-prof.c (stream_out_histogram_value): Make assert more
36718         precise based on type of counter.
36719
36720 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
36721
36722         PR target/79593
36723         * config/i386/i386.md (standard_x87sse_constant_load splitter):
36724         Use nonimmediate_operand instead of memory_operand for operand 1.
36725         (float-extend standard_x87sse_constant_load splitter): Ditto.
36726
36727 2017-02-21  Jeff Law  <law@redhat.com>
36728
36729         PR tree-optimization/79621
36730         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
36731         blocks with edges to themselves.
36732
36733 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36734
36735         PR target/79633
36736         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
36737         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
36738         Use gimple_call_builtin_p.
36739
36740         PR target/79570
36741         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
36742         on temporarily removed DEBUG_INSNs.
36743
36744         PR tree-optimization/79649
36745         * tree-loop-distribution.c (classify_partition): Give up on
36746         non-generic address space loads/stores.
36747
36748 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
36749
36750         * doc/loop.texi (Loop manipulation): Remove nonexistent
36751         tree_ssa_loop_version from the documentation.
36752         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
36753
36754 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36755
36756         PR target/79494
36757         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
36758         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
36759         * config/rs6000/rs6000.c: Include except.h.
36760         (rs6000_expand_split_stack_prologue): Call
36761         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
36762
36763 2017-02-21  Martin Jambor  <mjambor@suse.cz>
36764
36765         PR lto/79579
36766         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
36767         have been analyzed.
36768
36769 2017-02-21  Martin Jambor  <mjambor@suse.cz>
36770
36771         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
36772         for backward compatibility only.
36773         * doc/invoke.texi (Option Summary): Remove all references to
36774         -fipa-cp-alignment.
36775
36776 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
36777
36778         PR target/78660
36779         Revert:
36780         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36781
36782         * lra-constraints.c (curr_insn_transform): Handle
36783         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
36784
36785 2017-02-21  Martin Liska  <mliska@suse.cz>
36786
36787         * config/i386/i386.opt: Replace -masm-dialect with -masm.
36788
36789 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
36790
36791         PR translation/79638
36792         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
36793
36794 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
36795
36796         PR ada/67205
36797         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
36798         (arm_function_ok_for_sibcall): Return false for an indirect call by
36799         descriptor if all the argument registers are used.
36800         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
36801         alignment of the function.
36802
36803 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36804
36805         PR tree-optimization/61441
36806         * simplify-rtx.c (simplify_const_unary_operation): For
36807         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
36808         the sNaN unmodified.
36809
36810 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36811
36812         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
36813         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
36814         instead of SYSTEM_HEADER_DIR.
36815
36816 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
36817             Martin LiÅ¡ka  <mliska@suse.cz>
36818
36819         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
36820         Fix typos and grammar, use active voice, and clarify.
36821
36822 2017-02-20  Marek Polacek  <polacek@redhat.com>
36823
36824         PR middle-end/79537
36825         * gimplify.c (gimplify_expr): Handle unused *&&L;.
36826
36827         PR sanitizer/79558
36828         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
36829
36830 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
36831
36832         PR target/79568
36833         * config/i386/i386.c (ix86_expand_builtin): Handle
36834         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
36835         ix86_builtins_isa[fcode].isa as a requirement of those
36836         flags and any other flag in the bitmask.
36837         (ix86_init_mmx_sse_builtins): Use 0 instead of
36838         ~OPTION_MASK_ISA_64BIT as mask.
36839         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
36840         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
36841         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
36842         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
36843
36844 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36845
36846         PR target/78012
36847         * lra-constraints.c (split_reg): Check requested split mode
36848         is supported by the register.
36849
36850 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36851
36852         * lra-constraints.c (simplify_operand_subreg): Remove early
36853         return false.
36854
36855 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36856
36857         PR target/78660
36858         * lra-constraints.c (curr_insn_transform): Tighten condition
36859         for converting SUBREG reloads from OP_OUT to OP_INOUT.
36860
36861 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36862
36863         PR target/78660
36864         * lra-constraints.c (curr_insn_transform): Handle
36865         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
36866
36867 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
36868
36869         Revert:
36870         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
36871
36872         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
36873
36874 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
36875
36876         PR c++/69523
36877         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
36878         description.
36879
36880 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36881
36882         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
36883         for FMA_EXPR.
36884
36885 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
36886
36887         * final.c (last_columnnum, override_columnnum): New variables.
36888         (final_start_function): Set last_columnnum, pass it to begin_prologue
36889         hook and pass 0 to dwarf2out_begin_prologue.
36890         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
36891         to source_line debug hook.
36892         (notice_source_line): Compute last_columnnum and for debug_column_info
36893         return true on column changes.
36894         * debug.h (struct gcc_debug_hooks): Add column argument to
36895         source_line and begin_prologue hooks.
36896         (debug_nothing_int_charstar_int_bool): Remove prototype.
36897         (debug_nothing_int_int_charstar,
36898         debug_nothing_int_int_charstar_int_bool): New prototypes.
36899         (dwarf2out_begin_prologue): Add column argument.
36900         * debug.c (do_nothing_debug_hooks): Adjust source_line and
36901         begin_prologue hooks.
36902         (debug_nothing_int_charstar_int_bool): Remove.
36903         (debug_nothing_int_int_charstar,
36904         debug_nothing_int_int_charstar_int_bool): New functions.
36905         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
36906         through to dwarf2out_source_line.
36907         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
36908         (dwarf2out_source_line): Add column argument, emit it if requested.
36909         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
36910         arguments.
36911         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
36912         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
36913         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
36914         through to dwarf2out_begin_prologue.
36915         (vmsdbgout_source_line): Add column argument, pass it through to
36916         dwarf2out_source_line.
36917         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
36918         dbxout_source_line caller.
36919         (dbxout_source_line): Add column argument.
36920
36921         * common.opt (gno-column-info, gcolumn-info): New options.
36922         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
36923         (check_die): Also test for multiple DW_AT_decl_column attributes.
36924         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
36925         DW_AT_decl_column if requested.
36926         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
36927         if requested.
36928         (gen_variable_die): Likewise.
36929         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
36930         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
36931
36932         PR target/79569
36933         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
36934         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
36935         (ix86_handle_option): Handle OPT_m3dnowa.
36936         * doc/invoke.texi (-m3dnowa): Document.
36937         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
36938         -m3dnowa instead of -m3dnow -march=athlon.
36939
36940         PR target/79559
36941         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
36942         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
36943
36944 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36945
36946         PR target/79261
36947         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
36948         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
36949         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
36950         generator for vsx_xxpermdi_<mode>_be.
36951         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
36952         force big-endian semantics.
36953         (vsx_xxpermdi_<mode>_be): New define_expand with same
36954         implementation as previous version of vsx_xxpermdi_<mode>.
36955
36956 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
36957
36958         PR tree-optimization/79327
36959         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
36960         variable, its initialization and use.
36961
36962 2017-02-17  Julia Koval  <julia.koval@intel.com>
36963
36964         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
36965         (OPTION_MASK_ISA_PKU_UNSET): New.
36966         (ix86_handle_option): Handle -mrdpid.
36967         * config/i386/cpuid.h (bit_RDPID): New.
36968         * config/i386/driver-i386.c (host_detect_local_cpu):
36969         Detect RDPID feature.
36970         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
36971         * config/i386/i386-c.c (ix86_target_macros_internal):
36972         Handle RDPID flag.
36973         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
36974         (ix86_valid_target_attribute_inner_p): Add "rdpid".
36975         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
36976         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
36977         * config/i386/i386.md (define_insn "rdpid"): New.
36978         * config/i386/i386.opt Add -mrdpid.
36979         * config/i386/immintrin.h (_rdpid_u32): New.
36980
36981 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
36982
36983         PR rtl-optimization/79541
36984         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
36985         instead of transforming it into USE.
36986
36987 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
36988
36989         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
36990         If HONOR_SNANS (SFmode) force the input to a register.
36991         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
36992         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
36993         an frsp or similar insn.
36994
36995 2017-02-17  Martin Liska  <mliska@suse.cz>
36996
36997         PR rtl-optimization/79577
36998         * params.def (selsched-max-sched-times): Increase minimum to 1.
36999
37000 2017-02-17  Martin Liska  <mliska@suse.cz>
37001
37002         PR rtl-optimization/79574
37003         * gcse.c (want_to_gcse_p): Prevent integer overflow.
37004
37005 2017-02-17  Martin Liska  <mliska@suse.cz>
37006
37007         PR tree-optimization/79529
37008         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
37009         ssa_defined_default_def_p to handle cases which are implicitly
37010         defined.
37011         * tree-ssa.c (ssa_defined_default_def_p): New function.
37012         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
37013         which are implicitly defined.
37014         * tree-ssa.h (ssa_defined_default_def_p): Declare.
37015
37016 2017-02-17  Richard Biener  <rguenther@suse.de>
37017
37018         PR middle-end/79576
37019         * params.def (max-ssa-name-query-depth): Limit to 10.
37020
37021 2017-02-17  Richard Biener  <rguenther@suse.de>
37022
37023         PR tree-optimization/79552
37024         * tree-ssa-structalias.c (visit_loadstore): Properly verify
37025         default defs.
37026
37027 2017-02-17  Richard Biener  <rguenther@suse.de>
37028
37029         PR bootstrap/79567
37030         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
37031
37032 2017-02-17  Marek Polacek  <polacek@redhat.com>
37033
37034         PR middle-end/79536
37035         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
37036         (fold_negate_expr): New wrapper.
37037
37038 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
37039
37040         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
37041         Correct terminology and de-emphasize pre-standard behavior.
37042
37043 2017-02-16  Alan Modra  <amodra@gmail.com>
37044
37045         PR rtl-optimization/79286
37046         * ira.c (def_dominates_uses): New function.
37047         (update_equiv_regs): Don't create an equivalence for insns that
37048         may trap where the register def does not dominate the use.
37049
37050 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
37051
37052         PR rtl-optimization/78127
37053         * lra.c (lra): Call lra_eliminate before finish the loop after
37054         lra_constraint.
37055
37056 2017-02-16  Richard Biener  <rguenther@suse.de>
37057
37058         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
37059         isl/isl_val.h.
37060         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
37061         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
37062         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
37063         (isl_val_int_from_wi): New function.
37064         (extract_affine_gmp): Rename to ...
37065         (extract_affine_wi): ... this, take a widest_int.
37066         (extract_affine_int): Just wrap extract_affine_wi.
37067         (add_param_constraints): Use isl_val_int_from_wi.
37068         (add_loop_constraints): Likewise, and extract_affine_wi.
37069
37070 2017-02-15  Jeff Law  <law@redhat.com>
37071
37072         PR middle-end/79521
37073         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
37074         ira_init_register_move_cost_if_necessary.
37075
37076 2017-02-15  Martin Sebor  <msebor@redhat.com>
37077
37078         PR middle-end/32003
37079         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
37080         removed in a prior commit.
37081
37082 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
37083
37084         PR tree-optimization/79347
37085         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
37086         counters during peeling.
37087
37088 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
37089
37090         * Makefile.in (site.exp): Remove "set ISLVER".
37091
37092 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
37093
37094         PR target/79487
37095         * real.c (real_from_integer): Call real_convert even for decimal.
37096
37097 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37098
37099         PR target/79421
37100         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
37101
37102 2017-02-14  Andrew Pinski  <apinski@cavium.com>
37103
37104         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
37105         cores and change the partno/implementer to be correct.
37106         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
37107         the 'B" as the implementer.
37108         * config/aarch64/aarch64-tune.md: Regenerate.
37109
37110 2017-02-14  Carl Love  <cel@us.ibm.com>
37111
37112         * config/rs6000/rs6000.c: Add case statement entry to make the
37113         xvcvuxdsp built-in argument unsigned.
37114         * config/rs6000/vsx.md: Fix the source and return operand types so they
37115         match the instruction definitions from the ISA document.  Fix typo
37116         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
37117         statement.
37118
37119 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
37120
37121         PR target/79282
37122         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
37123         member early_clobber_alts.
37124         * lra-lives.c (reg_early_clobber_p): New.
37125         (process_bb_lives): Use it.
37126         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
37127         (debug_operand_data): Initialize early_clobber_alts.
37128         (setup_operand_alternative): Set up early_clobber_alts.
37129         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
37130         alternatives to new_insn_reg.
37131         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
37132         it.
37133         (lra_update_insn_regno_info): Pass the new arg.
37134
37135 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37136
37137         PR middle-end/79505
37138         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
37139         (new_oacc_loop_raw): Don't clear already cleared fields.
37140
37141         PR target/79481
37142         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
37143         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
37144         _mm512_prefetch_i64gather_ps): New inline functions and macros.
37145
37146 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
37147
37148         PR target/79495
37149         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
37150
37151 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
37152
37153         PR target/79498
37154         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
37155         the extra instruction to the right place to store 128-bit constant
37156         when needed.
37157
37158 2017-02-14  Martin Sebor  <msebor@redhat.com>
37159
37160         PR middle-end/79448
37161         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
37162           warning for strings of unknown length.
37163
37164 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
37165
37166         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
37167
37168 2017-02-14  Jeff Law  <law@redhat.com>
37169
37170         PR target/79404
37171         * ira-costs.c (scan_one_insn): Initialize register move costs
37172         for pseudos seen in USE/CLOBBER insns.
37173
37174         PR tree-optimization/79095
37175         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
37176         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
37177         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
37178         if the operands are known to be not equal, then the resulting range
37179         is ~[0,0].
37180         (intersect_ranges): If the new range is ~[0,0] and the old range is
37181         wide, then prefer ~[0,0].
37182         * tree-vrp.c (overflow_comparison_p_1): New function.
37183         (overflow_comparison_p): New function.
37184         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
37185         if NAME is used in an overflow test.
37186         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
37187         overflow check that can be expressed as an equality test, then adjust
37188         ops to be that equality test.
37189
37190 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37191
37192         * config/s390/s390-builtin-types.def: Remove flags argument.
37193         * config/s390/s390.c (s390_init_builtins): Likewise.
37194
37195 2017-02-14  Martin Liska  <mliska@suse.cz>
37196
37197         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
37198         vector.  Fix trailing white spaces.
37199
37200 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
37201
37202         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
37203         HFmode.
37204
37205 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37206
37207         PR rtl-optimization/68664
37208         * config/arm/arm.c (arm_sched_can_speculate_insn):
37209         New function.  Declare prototype.
37210         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37211
37212 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37213
37214         PR rtl-optimization/68664
37215         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
37216         New function.
37217         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37218
37219 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
37220
37221         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
37222         max skip bytes for function, loop and jump.
37223
37224 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37225
37226         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
37227         ABS_EXPR for gimple dump.
37228
37229 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37230
37231         PR target/79462
37232         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
37233
37234         PR tree-optimization/79408
37235         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
37236         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
37237         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
37238         also if rhs1 is INTEGER_CST.
37239
37240 2017-02-14  Richard Biener  <rguenther@suse.de>
37241
37242         PR middle-end/79432
37243         * tree-into-ssa.c (insert_phi_nodes): When the function can
37244         have abnormal edges rewrite SSA names with broken use-def
37245         dominance out of SSA and register them for PHI insertion.
37246
37247 2017-02-13  Martin Sebor  <msebor@redhat.com>
37248
37249         PR middle-end/79496
37250         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
37251         clearing info.nowrite flag when snprintf size argument is a range.
37252
37253 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37254
37255         * cprop.c (cprop_jump): Add missing space in string literal.
37256         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
37257         (get_constraint_for_component_ref): Likewise.
37258         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
37259         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
37260         * lra-constraints.c (process_alt_operands): Likewise.
37261         * ipa-inline.c (inline_small_functions): Likewise.
37262         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
37263         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
37264         * trans-mem.c (diagnose_tm_1_op): Likewise.
37265         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
37266         (grid_parallel_clauses_gridifiable): Likewise.
37267
37268         * config/nvptx/mkoffload.c (process): Add space in between
37269         , and %d.
37270
37271         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
37272         "MOD4_SSE_REGS" and "ALL_REGS".
37273
37274         * spellcheck.c (test_data): Add , in between "foo" and "food".
37275
37276 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37277
37278         PR target/79449
37279         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
37280         boundary crossing check and subsequent code generation agree.
37281
37282 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37283
37284         * config/aarch64/aarch64.c (has_memory_op): Delete.
37285         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
37286         has_memory_op.
37287
37288 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37289
37290         PR rtl-optimization/79388
37291         PR rtl-optimization/79450
37292         * combine.c (distribute_notes): When removing TEM_INSN for which
37293         corresponding dest has last value recorded, invalidate that last
37294         value.
37295
37296 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37297
37298         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
37299         of explicit '@'.  Add missing assembly comment marker on branch costs
37300         printout.
37301
37302 2017-02-13  Nathan Sidwell  <nathan@acm.org>
37303
37304         * gengtype-lex.l (<in_struct>): Add '/'.
37305
37306 2017-02-13  Martin Liska  <mliska@suse.cz>
37307
37308         PR c/79471
37309         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
37310
37311 2017-02-13  Richard Biener  <rguenther@suse.de>
37312
37313         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
37314         Remove.
37315         * configure: Re-generate.
37316         * config.in: Likewise.
37317         * graphite-dependences.c: Simplify as if
37318         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
37319         * graphite-isl-ast-to-gimple.c: Likewise.
37320         * graphite-optimize-isl.c: Likewise.
37321         * graphite-poly.c: Likewise.
37322         * graphite-sese-to-poly.c: Likewise.
37323         * graphite.h: Likewise.
37324         * toplev.c: Include isl/version.h and use isl_version () for
37325         printing the ISL version.
37326         * doc/install.texi: Update ISL requirement.
37327
37328 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37329
37330         * doc/standards.texi (Standards): Update reference to
37331         Objective-C 2.0.
37332
37333 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37334
37335         * doc/extend.texi (Named Address Spaces): sourceware.org now
37336         defaults to https.
37337         * doc/install.texi (Binaries): Ditto.
37338         (Specific): Ditto.
37339
37340 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37341
37342         * doc/cpp.texi: Replace "stringify"/"stringification" with C
37343         standard terminology "stringize"/"stringizing" throughout.
37344         * doc/cppinternals.texi: Likewise.
37345
37346 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37347
37348         * doc/extend.texi: Fix some spelling mistakes and typos.
37349         * doc/invoke.texi: Likewise.
37350
37351 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37352
37353         PR ipa/79224
37354         * params.def (inline-min-speedup) Change from 10 to 8.
37355
37356 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37357
37358         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
37359         4.5.
37360
37361 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37362
37363         PR ipa/79224
37364         * ipa-inline-analysis.c (get_minimal_bb): New function.
37365         (record_modified): Use it.
37366         (remap_edge_change_prob): Handle also ancestor functions.
37367
37368 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
37369
37370         * doc/contrib.texi (Contributors): Remove broken link into
37371         the Mauve CVS repository.
37372
37373 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37374
37375         PR middle-end/79454
37376         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
37377         result computation whenever lhs doesn't have vector mode, not
37378         just when it has BLKmode.
37379
37380 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37381
37382         * doc/makefile.texi (profiledbootstrap): Refer to the
37383         installation instructions only in textual form.
37384
37385 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37386
37387         PR target/79295
37388         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
37389
37390 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37391
37392         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
37393         (Specific): Update mingw-w64 reference.
37394         (Binaries): Ditto.
37395         (Specific): Remove broken link to Renesas RX processor.
37396
37397 2017-02-10  Richard Biener  <rguenther@suse.de>
37398
37399         * toplev.c (process_options): Do not mention obsolete graphite
37400         options when printing sorry message about missing graphite support.
37401         Mention -floop-nest-optimize.
37402
37403 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
37404
37405         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
37406         (vtst_p16): Likewise.
37407         (vtstq_p8): Likewise.
37408         (vtstq_p16): Likewise.
37409         (vtst_p64): New.
37410         (vtstq_p64): Likewise.
37411         * config/arm/arm_neon.h (vgetq_lane_p64): New.
37412         (vset_lane_p64): New.
37413         (vsetq_lane_p64): New.
37414
37415 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
37416
37417         PR tree-optimization/79411
37418         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
37419         stmt operands are SSA_NAMEs used in abnormal phis.
37420         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
37421         phis.
37422
37423 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37424
37425         PR ipa/70795
37426         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
37427         flag if needed.
37428
37429 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37430
37431         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
37432
37433 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
37434
37435         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
37436         to avoid warning.
37437
37438         PR c/79413
37439         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
37440         not arbitrary TREE_CONSTANT.
37441
37442         PR c/79431
37443         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
37444         "omp declare target link" attribute unless is_global_var.
37445         * omp-offload.c (find_link_var_op): Likewise.
37446
37447 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
37448             Chung-Lin Tang  <cltang@codesourcery.com>
37449
37450         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
37451         OMP_CLAUSE_TILE.
37452         (gimplify_adjust_omp_clauses): Don't delete TILE.
37453         (gimplify_omp_for): Deal with TILE.
37454         * internal-fn.c (expand_GOACC_TILE): New function.
37455         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
37456         (GOACC_TILE): New.
37457         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
37458         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
37459         element fields.
37460         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
37461         avoid DIV for outermost collapse var.
37462         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
37463         Remove out of date comments, fix whitespace.
37464         * omp-general.c (omp_extract_for_data): Deal with tiling.
37465         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
37466         adjust OLF_DIM_BASE value.
37467         (struct omp_for_data): Add tiling field.
37468         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
37469         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
37470         for auto loops.  Remove default auto determining, moved to
37471         oacc_loop_fixed_partitions.
37472         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
37473         stmts, add e_mask field.
37474         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
37475         (oacc_thread_numbers): Use oacc_dim_call.
37476         (oacc_xform_tile): New.
37477         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
37478         (finish_oacc_loop): Adjust for ifns vector.
37479         (oacc_loop_discover_walk): Append loop abstraction sites to list,
37480         add case for GOACC_TILE fns.
37481         (oacc_loop_xform_loop): Delete.
37482         (oacc_loop_process): Iterate over call list directly, and add
37483         handling for GOACC_TILE fns.
37484         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
37485         dump partitioning.
37486         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
37487         vector partitioning to outer loops.  Assign 2 partitions to loops
37488         when available. Add TILE handling.
37489         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
37490         (execite_oacc_device_lower): Process GOACC_TILE fns,
37491         ignore unknown specs.
37492         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
37493         * tree.c (omp_clause_num_ops): Adjust TILE ops.
37494         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
37495
37496 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
37497
37498         * configure.ac (ACX_BUGURL): Update.
37499         * configure: Regenerate.
37500
37501 2017-02-09  Richard Biener  <rguenther@suse.de>
37502
37503         PR tree-optimization/69823
37504         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
37505         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
37506
37507 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37508
37509         * config/arc/arc-c.def: Add __NPS400__ definition.
37510         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
37511         (TARGET_NPS400): Define.
37512
37513 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37514
37515         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
37516         file.
37517         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
37518         pointer, arch_info.
37519         (arc_cpu_types): Fill the arch_info field with a pointer into the
37520         arc_arch_types table.
37521         (arc_selected_cpu): Declare.
37522         * config/arc/arc.c (arc_selected_cpu): Make global.
37523         (arc_selected_arch): Delete.
37524         (arc_base_cpu): Delete.
37525         (arc_override_options): Remove references to deleted variables,
37526         update access to arch information.
37527         (ARC_OPT): Update access to arch information.
37528         (ARC_OPTX): Likewise.
37529         * config/arc/arc.h (arc_base_cpu): Remove declaration.
37530         (TARGET_ARC600): Update access to arch information.
37531         (TARGET_ARC601): Likewise.
37532         (TARGET_ARC700): Likewise.
37533         (TARGET_EM): Likewise.
37534         (TARGET_HS): Likewise.
37535         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
37536         information.
37537
37538 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
37539
37540         PR target/78604
37541         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
37542         condition/operands for integer GE/LE/GEU/LEU operations.
37543
37544 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
37545
37546         PR translation/79397
37547         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
37548         of AltiVec.
37549
37550 2017-02-08  Martin Jambor  <mjambor@suse.cz>
37551
37552         PR ipa/79375
37553         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
37554         whether allocation happened.
37555         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
37556         nothing was allocated.
37557
37558 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
37559
37560         PR tree-optimization/79408
37561         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
37562         constant, but SSA_NAME with a known integer range, use the minimum
37563         of that range instead of op1 to determine if modulo can be replaced
37564         with its first operand.
37565
37566 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37567
37568         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
37569
37570 2017-02-08  Richard Biener  <rguenther@suse.de>
37571
37572         PR tree-optimization/71824
37573         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
37574         Check all loops contained in the merged region.
37575
37576 2017-02-07  Andrew Pinski  <apinski@cavium.com>
37577
37578         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
37579
37580 2017-02-07  Andrew Pinski  <apinski@cavium.com>
37581
37582         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
37583         (thunderxt88): Likewise.
37584         (thunderxt81): Disable LSE and change v8.1 to v8.
37585         (thunderxt83): Likewise.
37586
37587 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
37588             Richard Biener  <rguenther@suse.de>
37589
37590         PR middle-end/79399
37591         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
37592         type from int to size_t.
37593         * ira-costs.c (struct_costs_size): Change type from int to size_t.
37594
37595 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
37596
37597         PR rtl-optimization/79386
37598         * cprop.c (bypass_conditional_jumps): Initialize
37599         bypass_last_basic_block already before splitting bbs after
37600         unconditional traps...
37601         (bypass_conditional_jumps): ... rather than here.
37602
37603         PR target/79299
37604         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
37605         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
37606         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
37607         fix -masm=intel patterns.
37608
37609 2017-02-07  Richard Biener  <rguenther@suse.de>
37610
37611         PR tree-optimization/79256
37612         PR middle-end/79278
37613         * builtins.c (get_object_alignment_2): Use min_align_of_type
37614         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
37615         and ADJUST_FIELD_ALIGN.
37616
37617         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
37618         type parameter.
37619         * doc/tm.texi: Regenerate.
37620         * stor-layout.c (layout_decl): Adjust.
37621         (update_alignment_for_field): Likewise.
37622         (place_field): Likewise.
37623         (min_align_of_type): Likewise.
37624         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
37625         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
37626         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
37627         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
37628         * config/frv/frv.c (frv_adjust_field_align): Likewise.
37629         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
37630         * config/i386/i386.c (x86_field_alignment): Likewise.
37631         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
37632         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
37633         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
37634         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
37635         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
37636         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
37637          Likewise.
37638
37639         Revert
37640         2017-01-30  Richard Biener  <rguenther@suse.de>
37641
37642         PR tree-optimization/79256
37643         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
37644         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
37645         alignment on TYPE.
37646
37647 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
37648
37649         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
37650         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
37651         builtins to SImode and emit a zero-extend, if necessary.
37652
37653 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37654
37655         * docs/invoke.texi (RISC-V Options): Alphabetize.
37656
37657 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37658
37659         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
37660         options.
37661
37662 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37663
37664         * config/riscv/riscv.c: New file.
37665         * common/config/riscv/riscv-common.c: Likewise.
37666         * config.gcc: Likewise.
37667         * config/riscv/constraints.md: Likewise.
37668         * config/riscv/elf.h: Likewise.
37669         * config/riscv/generic.md: Likewise.
37670         * config/riscv/linux.h: Likewise.
37671         * config/riscv/multilib-generator: Likewise.
37672         * config/riscv/peephole.md: Likewise.
37673         * config/riscv/pic.md: Likewise.
37674         * config/riscv/predicates.md: Likewise.
37675         * config/riscv/riscv-builtins.c: Likewise.
37676         * config/riscv/riscv-c.c: Likewise.
37677         * config/riscv/riscv-ftypes.def: Likewise.
37678         * config/riscv/riscv-modes.def: Likewise.
37679         * config/riscv/riscv-opts.h: Likewise.
37680         * config/riscv/riscv-protos.h: Likewise.
37681         * config/riscv/riscv.h: Likewise.
37682         * config/riscv/riscv.md: Likewise.
37683         * config/riscv/riscv.opt: Likewise.
37684         * config/riscv/sync.md: Likewise.
37685         * config/riscv/t-elf-multilib: Likewise.
37686         * config/riscv/t-linux: Likewise.
37687         * config/riscv/t-linux-multilib: Likewise.
37688         * config/riscv/t-riscv: Likewise.
37689         * configure.ac: Likewise.
37690         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
37691         Waterman as RISC-V maintainers.
37692         * doc/install.texi: Add RISC-V entries.
37693         * doc/invoke.texi: Add RISC-V options section.
37694         * doc/md.texi: Add RISC-V constraints section.
37695         * configure: Regenerated.
37696
37697 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37698
37699         PR target/66144
37700         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
37701         false values to be constant vectors with all 0 or all 1 bits set.
37702         (vcondu<mode><mode>): Likewise.
37703         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
37704         predicate.
37705         (fpmask_comparison_operator): Update comment.
37706         (vecint_comparison_operator): New predicate.
37707         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
37708         vector conditionals when the true and false values are constant
37709         vectors with all 0 bits or all 1 bits set.
37710
37711 2017-02-06  Martin Sebor  <msebor@redhat.com>
37712
37713         PR  tree-optimization/79376
37714         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
37715
37716 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
37717
37718         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
37719         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
37720         to simplify split condition.
37721
37722 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
37723
37724         * omp-expand.c (oxpand_omp_atomic_fetch_op,
37725         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
37726         false.
37727
37728 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
37729
37730         PR rtl-optimization/68664
37731         * target.def (can_speculate_insn): New hook.
37732         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
37733         * doc/tm.texi: Regenerate.
37734         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
37735         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
37736         (rs6000_sched_can_speculate_insn): New function.
37737
37738 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
37739
37740         PR tree-optimization/79284
37741         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
37742         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
37743         vectorizable_mask_load_store, vectorizable_operation,
37744         vect_is_simple_cond, get_same_sized_vectype): Use it instead
37745         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
37746         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
37747         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
37748         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
37749         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
37750         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
37751         is_gimple_assign (stmt).  Replace another such test with
37752         is_gimple_assign (stmt).
37753
37754 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
37755
37756         PR target/78883
37757         * config/avr/avr.c (rtl-iter.h): Include it.
37758         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
37759         (avr_legitimate_combined_insn): ...and implementation.
37760
37761 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37762
37763         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
37764         * config/s390/s390.c (s390_const_operand_ok)
37765         (s390_canonicalize_comparison, s390_extract_part)
37766         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
37767         (s390_contiguous_bitmask_p, s390_rtx_costs)
37768         (legitimize_pic_address): Likewise.
37769         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
37770         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
37771         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
37772         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
37773         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
37774
37775 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
37776
37777         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
37778         REGNO($0) == REGNO($1).
37779
37780 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37781
37782         * config/s390/linux.h(SIZE_TYPE): Add comment.
37783
37784 2017-02-06  Julian Brown  <julian@codesourcery.com>
37785             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
37786             Virendra Pathak  <virendra.pathak@broadcom.com>
37787
37788         * config/aarch64/aarch64-cores.def: Change the scheduler
37789         to Thunderx2t99.
37790         * config/aarch64/aarch64.md: Include thunderx2t99.md.
37791         * config/aarch64/thunderx2t99.md: New file.
37792
37793 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37794
37795         * doc/standards.texi (Go Language): Update link to language
37796         standard.
37797
37798 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
37799
37800         * tree-eh.c (lower_resx): Sanitize profile.
37801         (cleanup_empty_eh_move_lp): Likewise.
37802
37803 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
37804
37805         PR tree-ssa/79347
37806         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
37807         ELSE_PROB.
37808         * cfgloopmanip.h (loop_version): Update prototype.
37809         * modulo-sched.c (sms_schedule): Update call of loop_version.
37810         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
37811         * tree-parloops.c (gen_parallel_loop): Likewise.
37812         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
37813         * tree-ssa-loop-split.c (split_loop): Likewise.
37814         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
37815         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
37816
37817 2017-02-05  Martin Liska  <mliska@suse.cz>
37818
37819         PR bootstrap/78985
37820         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
37821         variable to NULL.
37822         (print_operand_address): Initialize a struct to zero.
37823
37824 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37825
37826         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
37827         garbage collector only in textual form.
37828
37829 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37830
37831         * doc/extend.texi (x86 specific memory model extensions for
37832         transactional memory): Simplify a phrase.
37833
37834 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
37835
37836         PR target/79353
37837         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
37838         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
37839         (atomic_storedi_1): Likewise.
37840
37841 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
37842
37843         PR tree-optimization/79338
37844         * tree-parloops.c (gather_scalar_reductions): Don't call
37845         vect_analyze_loop_form for loop->inner before destroying loop's
37846         loop_vinfo.
37847
37848 2017-02-03  Martin Sebor  <msebor@redhat.com>
37849
37850         PR tree-optimization/79327
37851         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
37852         when precision has resulted in leading zeros.
37853         (format_integer): Adjust the likely counter to assume an unknown
37854         argument that may be zero is non-zero.
37855
37856 2017-02-03  Jason Merrill  <jason@redhat.com>
37857
37858         PR c++/78689
37859         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
37860         avoid copying non-taken branch.
37861
37862 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
37863
37864         PR tree-optimization/79340
37865         * tree-vect-loop.c (vectorizable_reduction): Release
37866         vec_defs elements after safe_splicing them into other vectors.
37867         Formatting fixes.
37868
37869         PR tree-optimization/79327
37870         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
37871         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
37872         dirtype.
37873         (format_integer): Use wide_int_to_tree instead of build_int_cst
37874         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
37875         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
37876         of shortest and longest sequence.
37877
37878 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
37879
37880         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
37881         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
37882
37883 2017-02-03  Walter Lee  <walt@tilera.com>
37884
37885         PR target/78862
37886         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
37887         after initial stackframe link reg save.
37888         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
37889
37890 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
37891
37892         PR target/79354
37893         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
37894         wu for stxssp alternative.
37895
37896 2017-02-03  Martin Sebor  <msebor@redhat.com>
37897
37898         PR tree-optimization/79352
37899         * gimple-fold.c (get_range_strlen): Add argument.
37900         (get_range_strlen): Change return type to bool.
37901         (get_maxval_strlen): Pass in a dummy argument.
37902         * gimple-fold.h (get_range_strlen): Change return type to bool.
37903         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
37904         * tree.h (array_at_struct_end_p): Add argument.
37905         * tree.c (array_at_struct_end_p): Handle it.
37906
37907 2017-02-03  Martin Liska  <mliska@suse.cz>
37908
37909         PR lto/66295
37910         * multiple_target.c (create_dispatcher_calls): Redirect edge
37911         from a caller of a dispatcher.
37912         (expand_target_clones): Make the clones local.
37913         (ipa_target_clone): Do both target clones and resolvers.
37914         (ipa_dispatcher_calls): Remove the pass.
37915         (pass_dispatcher_calls::gate): Likewise.
37916         (make_pass_dispatcher_calls): Likewise.
37917         * passes.def (pass_target_clone): Put as very first IPA early
37918         pass.
37919
37920 2017-02-03  Martin Liska  <mliska@suse.cz>
37921
37922         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
37923         in case of a function with ifunc attribute.
37924
37925 2017-02-03  Martin Liska  <mliska@suse.cz>
37926
37927         * cgraph.c (cgraph_node::dump): Dump function version info.
37928         * symtab.c (symtab_node::dump_base): Add missing new line.
37929
37930 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
37931
37932         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
37933         (ifcombine_ifandif): Use it.
37934
37935 2017-02-03  Martin Liska  <mliska@suse.cz>
37936
37937         * doc/invoke.texi: Document default value for
37938         use-after-scope-direct-emission-threshold.
37939
37940 2017-02-03  Martin Liska  <mliska@suse.cz>
37941
37942         PR tree-optimization/79339
37943         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
37944         (format_floating): Likewise.
37945
37946 2017-02-03  Martin Liska  <mliska@suse.cz>
37947
37948         PR ipa/79337
37949         * ipa-prop.c (ipa_node_params_t::insert): Remove current
37950         implementation.
37951         (ipa_node_params_t::remove): Likewise.
37952         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
37953         initialization from removed ipa_node_params_t::insert.
37954         (ipa_node_params::~ipa_node_params): Move from removed
37955         ipa_node_params_t::release.
37956         * symbol-summary.h (symbol_summary::m_released): New member.
37957         Do not release a summary twice.  Do not allow to call finalizer
37958         for types of a summary that live in GGC memory.
37959
37960 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
37961
37962         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
37963         cmp_branch fusion.
37964
37965 2017-02-02  Martin Sebor  <msebor@redhat.com>
37966
37967         PR middle-end/79275
37968         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
37969         (format_string): Tighten up the range of output for non-constant
37970         strings and correct the expected range for wide non-constant strings.
37971
37972 2017-02-02  Martin Sebor  <msebor@redhat.com>
37973
37974         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
37975
37976         PR middle-end/32003
37977         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
37978         index.
37979         (-fdump-tree-@var): Add to index and document how to come up
37980         with pass-specific option and dump file names.
37981         (-fdump-passes): Clarify where to look for output.
37982
37983 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
37984
37985         PR middle-end/77445
37986         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
37987         statistics of the analyzed path; allow threading for speed when
37988         any of BBs along the path are optimized for speed.
37989
37990 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
37991
37992         PR middle-end/78468
37993         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
37994         settings of the virtual registers.
37995
37996         Revert again
37997         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37998
37999         * explow.c (get_dynamic_stack_size): Take known alignment of stack
38000         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
38001         needed.
38002
38003 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38004
38005         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
38006         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
38007
38008 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38009
38010         * config/s390/s390.md: Add missing comments with the expanded
38011         mnemonics.
38012         * config/s390/vector.md: Likewise.
38013         * config/s390/vx-builtins.md: Likewise.
38014
38015 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
38016
38017         PR target/79197
38018         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
38019         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
38020         conditions on a single line.
38021
38022 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38023
38024         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38025         __S390_VX__ to __VX__.
38026
38027 2017-02-01  Andrew Pinski  <apinski@cavium.com>
38028
38029         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
38030         stmt_info to record_stmt_cost.
38031         (vect_get_known_peeling_cost): Pass stmt_info if known to
38032         record_stmt_cost.
38033         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
38034         cpu_vector_cost field into
38035         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
38036         field into vec_int_stmt_cost and vec_fp_stmt_cost.
38037         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
38038         splitting of scalar_stmt_cost and vec_stmt_cost.
38039         (thunderx_vector_cost): Likewise.
38040         (cortexa57_vector_cost): LIkewise.
38041         (exynosm1_vector_cost): Likewise.
38042         (xgene1_vector_cost): Likewise.
38043         (thunderx2t99_vector_cost): Improve after the splitting of the two
38044         fields.
38045         (aarch64_builtin_vectorization_cost): Update for the splitting of
38046         scalar_stmt_cost and vec_stmt_cost.
38047
38048 2017-02-01  Torvald Riegel  <triegel@redhat.com>
38049             Richard Henderson  <rth@redhat.com>
38050
38051         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
38052         conditional on existance of a fast atomic load.
38053         * optabs-query.c (can_atomic_load_p): New function.
38054         * optabs-query.h (can_atomic_load_p): Declare it.
38055         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
38056         no fast atomic load is available for the particular size of access.
38057         (expand_atomic_compare_and_swap): Likewise.
38058         (expand_atomic_load): Likewise.
38059         (expand_atomic_store): Likewise.
38060         (expand_atomic_fetch_op): Likewise.
38061         * testsuite/lib/target-supports.exp
38062         (check_effective_target_sync_int_128): Remove x86 because it provides
38063         no fast atomic load.
38064         (check_effective_target_sync_int_128_runtime): Likewise.
38065
38066 2017-02-01  Richard Biener  <rguenther@suse.de>
38067
38068         * graphite.c: Include tree-vectorizer.h for find_loop_location.
38069         (graphite_transform_loops): Provide opt-info for optimized nests.
38070         * tree-parloop.c (parallelize_loops): Provide opt-info for
38071         parallelized loops.
38072
38073 2017-02-01  Richard Biener  <rguenther@suse.de>
38074
38075         PR middle-end/79315
38076         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
38077         was not set before.
38078
38079 2017-02-01  Richard Biener  <rguenther@suse.de>
38080
38081         PR tree-optimization/71824
38082         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
38083         Verify the loops are valid in the merged SESE region.
38084         (scop_detection::can_represent_loop_1): Check analyzing the
38085         evolution of the number of iterations in the region succeeds.
38086
38087 2017-01-31  Ian Lance Taylor  <iant@golang.org>
38088
38089         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
38090         REG_ARGS_SIZE note to 32-bit push insns and call insn.
38091
38092 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
38093
38094         PR preprocessor/79210
38095         * input.c (get_substring_ranges_for_loc): Replace line_width
38096         assertion with error-handling.
38097
38098 2017-01-31  Richard Biener  <rguenther@suse.de>
38099
38100         PR tree-optimization/77318
38101         * graphite-sese-to-poly.c (extract_affine): Fix assert.
38102         (create_pw_aff_from_tree): Take loop parameter.
38103         (add_condition_to_pbb): Pass loop of the condition to
38104         create_pw_aff_from_tree.
38105
38106 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38107
38108         * config/s390/s390.c (s390_asan_shadow_offset): New function.
38109         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
38110
38111 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
38112
38113         PR target/78597
38114         PR target/79038
38115         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
38116         no longer used.
38117         (convert_int_to_float128): Likewise.
38118         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
38119         (convert_int_to_float128): Likewise.
38120         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
38121         (UNSPEC_IEEE128_CONVERT): Likewise.
38122         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
38123         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
38124         Use local variables for IBM extended format.
38125         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
38126         (fix_trunc<mode>si2_fprs): Likewise.
38127         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
38128         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
38129         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
38130         to know that we can now have integers of all sizes in vector
38131         registers.
38132         (fix<uns>_<mode>di2_hw): Likewise.
38133         (float<uns>_<mode>si2_hw): Likewise.
38134         (fix_<mode>si2_hw): Likewise.
38135         (fixuns_<mode>si2_hw): Likewise.
38136         (float<uns>_<mode>di2_hw): Likewise.
38137         (float_<mode>di2_hw): Likewise.
38138         (float_<mode>si2_hw): Likewise.
38139         (floatuns_<mode>di2_hw): Likewise.
38140         (floatuns_<mode>si2_hw): Likewise.
38141         (xscvqp<su>wz_<mode>): Delete, no longer used.
38142         (xscvqp<su>dz_<mode>): Likewise.
38143         (xscv<su>dqp_<mode>): Likewise.
38144         (ieee128_mfvsrd_64bit): Likewise.
38145         (ieee128_mfvsrd_32bit): Likewise.
38146         (ieee128_mfvsrwz): Likewise.
38147         (ieee128_mtvsrw): Likewise.
38148         (ieee128_mtvsrd_64bit): Likewise.
38149         (ieee128_mtvsrd_32bit): Likewise.
38150
38151 2017-01-31  Martin Liska  <mliska@suse.cz>
38152
38153         PR ipa/79285
38154         * ipa-prop.c (ipa_free_all_node_params): Call release method
38155         instead of ~sumbol_summary to not to trigger double times
38156         dtor of hash_map.
38157
38158 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
38159
38160         PR tree-optimization/71691
38161         * bitmap.h (class auto_bitmap): New.
38162         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
38163         is_maybe_undefined instead of ssa_undefined_value_p.
38164
38165 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38166
38167         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38168         __S390_ARCH_LEVEL__ to __ARCH__.
38169
38170 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38171
38172         PR tree-optimization/79267
38173         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
38174         if should_remove_lhs_p is true.
38175
38176 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
38177
38178         PR debug/63238
38179         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
38180         (add_alignment_attribute): New.
38181         (base_type_die): Add alignment attribute.
38182         (subrange_type_die): Likewise.
38183         (modified_type_die): Likewise.
38184         (gen_array_type_die): Likewise.
38185         (gen_descr_array_type_die: Likewise.
38186         (gen_enumeration_type_die): Likewise.
38187         (gen_subprogram_die): Likewise.
38188         (gen_variable_die): Likewise.
38189         (gen_field_die): Likewise.
38190         (gen_ptr_to_mbr_type_die): Likewise.
38191         (gen_struct_or_union_type_die): Likewise.
38192         (gen_subroutine_type_die): Likewise.
38193         (gen_typedef_die): Likewise.
38194         (base_type_cmp): Compare alignment attribute.
38195
38196 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38197
38198         PR target/79170
38199         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
38200         (setb_unsigned) New pattern for setb with CCUNS.
38201         * config/rs6000/rs6000.c (expand_block_compare): Use a different
38202         subfc./subfe sequence to avoid overflow problems.  Generate a
38203         shorter sequence with cmpld/setb for power9.
38204         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
38205         for generating subfc. instruction.
38206         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
38207         now uses this instruction.
38208
38209 2017-01-30  Ian Lance Taylor  <iant@google.com>
38210
38211         PR debug/79289
38212         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
38213         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
38214
38215 2017-01-30  Martin Sebor  <msebor@redhat.com>
38216
38217         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
38218         Move constant to the right of a relational operator.
38219         (get_mpfr_format_length, format_character, format_string): Ditto.
38220         (should_warn_p, maybe_warn): Same.
38221
38222         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
38223
38224 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
38225
38226         PR lto/79061
38227         * asan.c (get_translation_unit_decl): Remove function.
38228         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
38229
38230 2017-01-30  Martin Liska  <mliska@suse.cz>
38231
38232         PR gcov-profile/79259
38233         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
38234         -fprofile-generate.
38235
38236 2017-01-30  Martin Liska  <mliska@suse.cz>
38237
38238         PR bootstrap/78985
38239         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
38240         Initialize variables with NULL value.
38241
38242 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
38243
38244         PR target/79260
38245         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
38246         tm_p_file.
38247         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
38248
38249 2017-01-30  Richard Biener  <rguenther@suse.de>
38250
38251         PR tree-optimization/79276
38252         * tree-vrp.c (process_assert_insertions): Properly adjust common
38253         when removing a duplicate.
38254
38255 2017-01-30  Richard Biener  <rguenther@suse.de>
38256
38257         PR tree-optimization/79256
38258         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38259         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38260         alignment on TYPE.
38261         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
38262
38263 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38264
38265         PR target/79240
38266         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
38267         ("*r<noxa>sbg_<mode>_sll_bitmask")
38268         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
38269         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
38270         Use contiguous_bitmask_nowrap_operand.
38271
38272 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38273
38274         PR target/79268
38275         * config/rs6000/altivec.h (vec_xl): Revise #define.
38276         (vec_xst): Likewise.
38277
38278 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
38279
38280         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
38281
38282 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
38283
38284         PR rtl-optimization/79194
38285         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
38286         traps before call to bypass_conditional_jumps.
38287
38288 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38289
38290         PR tree-optimization/71374
38291         * lra-constraints.c (check_conflict_input_operands): New.
38292         (match_reload): Use it.
38293
38294 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38295
38296         PR target/79131
38297         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
38298         account to calculate conflict_set.
38299
38300 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
38301
38302         PR rtl-optimization/78559
38303         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
38304         other_insn in combine.
38305
38306 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
38307
38308         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
38309         uint16_type_node for BT_UINT16.
38310
38311 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
38312
38313         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
38314         "RTL Tests" to menu.
38315         (GIMPLE Tests): New node.
38316         (RTL Tests): New node.
38317
38318 2017-01-27  Richard Biener  <rguenther@suse.de>
38319
38320         PR tree-optimization/79245
38321         * tree-loop-distribution.c (distribute_loop): Apply cost
38322         modeling also to detected patterns.
38323
38324 2017-01-27  Richard Biener  <rguenther@suse.de>
38325
38326         PR tree-optimization/71433
38327         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
38328         (compare_assert_loc): New function.
38329         (process_assert_insertions): Sort and optimize assert locations
38330         to remove duplicates and push down identical assertions on
38331         edges to their destination block.
38332
38333 2017-01-27  Richard Biener  <rguenther@suse.de>
38334
38335         PR tree-optimization/79244
38336         * tree-vrp.c (remove_range_assertions): Forcefully propagate
38337         out SSA names even if abnormal.
38338
38339 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
38340
38341         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
38342         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
38343         instead of MPFR_RNDN.
38344
38345 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
38346
38347         PR target/79239
38348         * arm.c (arm_option_override): Don't call build_target_option_node
38349         until after doing all option overrides.
38350         (arm_valid_target_attribute_tree): Likewise.
38351
38352 2017-01-27  Martin Liska  <mliska@suse.cz>
38353
38354         * doc/invoke.texi (-fprofile-arcs): Document profiling support
38355         for {cd}tors and C++ {cd}tors.
38356
38357 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38358
38359         * config/s390/s390.md ("*setmem_long_and")
38360         ("*setmem_long_and_31z"): Use zero_extend instead of and.
38361
38362 2017-01-26  Martin Sebor  <msebor@redhat.com>
38363
38364         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
38365         of precision.
38366
38367 2017-01-26  Martin Sebor  <msebor@redhat.com>
38368
38369         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
38370         HAVE_DFmode before using XFmode or DFmode.
38371         (parse_directive): Avoid using the z length modifier to avoid
38372         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
38373
38374         PR middle-end/78703
38375         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
38376         to accept adjustment as an array.
38377         (get_int_range): New function.
38378         (struct directive): Make width and prec arrays.
38379         (directive::set_width, directive::set_precision): Call get_int_range.
38380         (format_integer, format_floating): Handle width and precision ranges.
38381         (format_string, parse_directive): Same.
38382
38383 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38384
38385         PR debug/79129
38386         * dwarf2out.c (generate_skeleton_bottom_up): For children with
38387         comdat_type_p set, just clone them, but keep the children in the
38388         original DIE.
38389
38390         PR debug/78835
38391         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
38392         which have direct callers with -fvar-tracking-assignments enabled
38393         in the current TU.
38394         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
38395         inside of type units.
38396
38397 2017-01-26  Martin Sebor  <msebor@redhat.com>
38398
38399         PR middle-end/78703
38400         * gimple-ssa-sprintf.c (struct result_range): Add likely and
38401         unlikely counters.
38402         (struct format_result): Replace number_chars, number_chars_min,
38403         and number_chars_max with a single member of struct result_range.
38404         Remove bounded.
38405         (format_result::operator+=): Adjust.
38406         (struct fmtresult): Remove bounded.  Handle likely and unlikely
38407         counters.
38408         (fmtresult::adjust_for_width_or_precision): New function.
38409         (fmtresult:type_max_digits): New function.
38410         (bytes_remaining): Handle likely and unlikely counters.
38411         (min_bytes_remaining): Remove.
38412         (format_percent): Simplify.
38413         (format_integer, format_floating): Set likely and unlikely counters.
38414         (get_string_length, format_character, format_string): Same.
38415         (format_plain, should_warn_p): New function.
38416         (maybe_warn): Call should_warn_p.  Update diagnostic messages
38417         and handle those for all directives, including plain strings.
38418         (format_directive): Handle likely and unlikely counters.
38419         Remove unnecessary quoting from diagnostics.  Add an informational
38420         note.
38421         (add_bytes): Remove.
38422         (pass_sprintf_length::compute_format_length): Simplify.
38423         (try_substitute_return_value): Handle likely and unlikely counters.
38424
38425 2017-01-26  Carl Love  <cel@us.ibm.com>
38426
38427         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
38428         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
38429
38430 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
38431
38432         PR target/79131
38433         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
38434         endianess for subregs into account.
38435         * lra-constraints.c (lra_constraints): Do risky transformations
38436         always on the first iteration.
38437         * lra-lives.c (check_pseudos_live_through_calls): Add arg
38438         last_call_used_reg_set.
38439         (process_bb_lives): Define and use last_call_used_reg_set.
38440         * lra.c (lra): Always continue after lra_constraints on the first
38441         iteration.
38442
38443 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
38444
38445         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
38446         constant.
38447         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
38448
38449 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38450
38451         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
38452         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
38453         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
38454         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
38455         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
38456         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
38457         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
38458         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
38459         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
38460
38461 2017-01-26  Marek Polacek  <polacek@redhat.com>
38462
38463         PR c/79199
38464         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
38465         for the third operand.
38466
38467 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38468
38469         PR middle-end/79236
38470         * omp-low.c (struct omp_context): Add simt_stmt field.
38471         (scan_omp_for): Return omp_context *.
38472         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
38473         context to the _simt_ SIMD stmt.
38474         (lower_omp_for): For combined SIMD with sibling _simt_
38475         SIMD, make sure to use the same decls in _looptemp_
38476         clauses as in the sibling.
38477
38478 2017-01-26  David Sherwood  <david.sherwood@arm.com>
38479
38480         PR middle-end/79212
38481         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
38482         all contexts.
38483
38484 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38485
38486         PR target/70465
38487         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
38488         emit fld b; fld a; if possible.
38489
38490         * brig-builtins.def: Update copyright years.
38491         * config/arm/arm_acle_builtins.def: Update copyright years.
38492
38493 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
38494
38495         PR target/79179
38496         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
38497         constraint instead of o for the stxsd instruction.
38498
38499 2017-01-25  Carl Love  <cel@us.ibm.com>
38500
38501         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
38502         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
38503
38504 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
38505
38506         * doc/invoke.texi (C++ Dialect Options): Fix typo.
38507
38508 2017-01-25  Richard Biener  <rguenther@suse.de>
38509
38510         PR tree-optimization/69264
38511         * target.def (vector_alignment_reachable): Improve documentation.
38512         * doc/tm.texi: Regenerate.
38513         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
38514         and add a comment.
38515         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
38516         earlier changes with respect to TYPE_USER_ALIGN.
38517         (vector_alignment_reachable_p): Likewise.  Improve dumping.
38518
38519 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38520
38521         PR target/79145
38522         * config/arm/arm.md (xordi3): Force constant operand into a register
38523         for TARGET_IWMMXT.
38524
38525 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38526
38527         * doc/invoke.texi (-fstore-merging): Correct default optimization
38528         levels at which it is enabled.
38529         (-O): Move -fstore-merging from list to...
38530         (-O2): ... Here.
38531
38532 2017-01-25  Richard Biener  <rguenther@suse.de>
38533
38534         PR debug/78363
38535         * omp-expand.c: Include debug.h.
38536         (expand_omp_taskreg): Make sure to generate early debug before
38537         outlining anything from a function.
38538         (expand_omp_target): Likewise.
38539         (grid_expand_target_grid_body): Likewise.
38540
38541 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
38542
38543         PR lto/79061
38544         * asan.c (get_translation_unit_decl): New function.
38545         (asan_add_global): Extract modules file name from globals
38546         TRANSLATION_UNIT_DECL name.
38547
38548 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
38549
38550         PR target/77439
38551         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
38552         for long calls with APCS frame and VFP.
38553
38554 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
38555
38556         * cfg.c (original_copy_tables_initialized_p): New function.
38557         * cfg.h (original_copy_tables_initialized_p): New decl.
38558         * cfgrtl.c (relink_block_chain): Guard the call to
38559         free_original_copy_tables with a call to
38560         original_copy_tables_initialized_p.
38561         * cgraph.h (symtab_node::native_rtl_p): New decl.
38562         * cgraphunit.c (symtab_node::native_rtl_p): New function.
38563         (symtab_node::needed_p): Don't assert for early assembly output
38564         for __RTL functions.
38565         (cgraph_node::finalize_function): Set "force_output" for __RTL
38566         functions.
38567         (cgraph_node::analyze): Bail out early for __RTL functions.
38568         (analyze_functions): Update assertion to support __RTL functions.
38569         (cgraph_node::expand): Bail out early for __RTL functions.
38570         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
38571         __RTL functions.
38572         * function.h (struct function): Update comment for field
38573         "pass_startwith".
38574         * gimple-expr.c: Include "tree-pass.h".
38575         (gimple_has_body_p): Return false for __RTL functions.
38576         * Makefile.in (OBJS): Add run-rtl-passes.o.
38577         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
38578         accessor.
38579         (gcc::pass_manager::get_clean_slate): New accessor.
38580         * passes.c: Include "insn-addr.h".
38581         (should_skip_pass_p): Add logging.  Update logic for running
38582         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
38583         property-provider override so it is only done for gimple passes.
38584         Don't skip dfinit.
38585         (skip_pass): New function.
38586         (execute_one_pass): Call skip_pass when skipping passes.
38587         * read-md.c (md_reader::read_char): Support filtering
38588         the input to a subset of line numbers.
38589         (md_reader::md_reader): Initialize fields
38590         m_first_line and m_last_line.
38591         (md_reader::read_file_fragment): New function.
38592         * read-md.h (md_reader::read_file_fragment): New decl.
38593         (md_reader::m_first_line): New field.
38594         (md_reader::m_last_line): New field.
38595         * read-rtl-function.c (function_reader::create_function): Only
38596         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
38597         curr_properties.  Set DECL_INITIAL to a dummy block.
38598         (read_rtl_function_body_from_file_range): New function.
38599         * read-rtl-function.h (read_rtl_function_body_from_file_range):
38600         New decl.
38601         * run-rtl-passes.c: New file.
38602         * run-rtl-passes.h: New file.
38603
38604 2017-01-24  Jeff Law  <law@redhat.com>
38605
38606         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
38607         buffer size.
38608
38609 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
38610
38611         PR tree-optimization/79159
38612         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
38613         (record_nonwrapping_iv): Improve boundary using above function if no
38614         value range information.
38615
38616 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
38617             Martin Jambor  <mjambor@suse.cz>
38618
38619         * brig-builtins.def: New file.
38620         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
38621         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
38622         (DEF_HSAIL_SAT_BUILTIN): Likewise.
38623         (DEF_HSAIL_INTR_BUILTIN): Likewise.
38624         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
38625         * builtin-types.def (BT_INT8): New.
38626         (BT_INT16): Likewise.
38627         (BT_UINT8): Likewise.
38628         (BT_UINT16): Likewise.
38629         (BT_FN_ULONG): Likewise.
38630         (BT_FN_UINT_INT): Likewise.
38631         (BT_FN_UINT_ULONG): Likewise.
38632         (BT_FN_UINT_LONG): Likewise.
38633         (BT_FN_UINT_PTR): Likewise.
38634         (BT_FN_ULONG_PTR): Likewise.
38635         (BT_FN_INT8_FLOAT): Likewise.
38636         (BT_FN_INT16_FLOAT): Likewise.
38637         (BT_FN_UINT32_FLOAT): Likewise.
38638         (BT_FN_UINT16_FLOAT): Likewise.
38639         (BT_FN_UINT8_FLOAT): Likewise.
38640         (BT_FN_UINT64_FLOAT): Likewise.
38641         (BT_FN_UINT16_UINT32): Likewise.
38642         (BT_FN_UINT32_UINT16): Likewise.
38643         (BT_FN_UINT16_UINT16_UINT16): Likewise.
38644         (BT_FN_INT_PTR_INT): Likewise.
38645         (BT_FN_UINT_PTR_UINT): Likewise.
38646         (BT_FN_LONG_PTR_LONG): Likewise.
38647         (BT_FN_ULONG_PTR_ULONG): Likewise.
38648         (BT_FN_VOID_UINT64_UINT64): Likewise.
38649         (BT_FN_UINT8_UINT8_UINT8): Likewise.
38650         (BT_FN_INT8_INT8_INT8): Likewise.
38651         (BT_FN_INT16_INT16_INT16): Likewise.
38652         (BT_FN_INT_INT_INT): Likewise.
38653         (BT_FN_UINT_FLOAT_UINT): Likewise.
38654         (BT_FN_FLOAT_UINT_UINT): Likewise.
38655         (BT_FN_ULONG_UINT_UINT): Likewise.
38656         (BT_FN_ULONG_UINT_PTR): Likewise.
38657         (BT_FN_ULONG_ULONG_ULONG): Likewise.
38658         (BT_FN_UINT_UINT_UINT): Likewise.
38659         (BT_FN_VOID_UINT_PTR): Likewise.
38660         (BT_FN_UINT_UINT_PTR: Likewise.
38661         (BT_FN_UINT32_UINT64_PTR): Likewise.
38662         (BT_FN_INT_INT_UINT_UINT): Likewise.
38663         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
38664         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
38665         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
38666         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
38667         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
38668         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
38669         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
38670         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
38671         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
38672         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
38673         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
38674         * doc/frontends.texi: List BRIG FE.
38675         * doc/install.texi (Testing): Add BRIG tesring requirements.
38676         * doc/invoke.texi (Overall Options): Mention BRIG.
38677         * doc/standards.texi (Standards): Doucment BRIG HSA version.
38678
38679 2017-01-24  Richard Biener  <rguenther@suse.de>
38680
38681         PR translation/79208
38682         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
38683
38684 2017-01-24  Martin Jambor  <mjambor@suse.cz>
38685
38686         PR bootstrap/79198
38687         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
38688         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
38689         and known_contexts.
38690
38691 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
38692
38693         PR middle-end/79123
38694         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
38695         casts from signed to unsigned really don't have a range.
38696
38697 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
38698
38699         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
38700         GMP_RNDx for compatiblity.
38701
38702 2017-01-24  Martin Liska  <mliska@suse.cz>
38703
38704         PR bootstrap/79132
38705         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
38706         that would prevent us to call alloca with -1 as argument.
38707
38708 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
38709
38710         * dwarf2out.c (output_compilation_unit_header, output_file_names):
38711         Avoid -Wformat-security warning.
38712
38713 2017-01-23  Andrew Pinski  <apinski@cavium.com>
38714
38715         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
38716         cost table.
38717
38718 2017-01-23  Martin Sebor  <msebor@redhat.com>
38719
38720         PR middle-end/78703
38721         * gimple-ssa-sprintf.c (warn_level): New global.
38722         (format_integer): Use it here and throughout the rest of the file.
38723         Use the same switch to compute sign as base.
38724         (maybe_warn): New function.
38725         (format_directive): Factor out warnings into maybe_warn.
38726         Add debugging output.  Use warn_level.
38727         (add_bytes): Use warn_level.
38728         (pass_sprintf_length::compute_format_length): Add debugging output.
38729         (try_substitute_return_value): Same.
38730         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
38731
38732         PR middle-end/78703
38733         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
38734         (struct fmtresult, format_integer, format_floating): Adjust.
38735         (fmtresult::fmtresult): Set max correctly in two argument ctor.
38736         (get_string_length, format_string,format_directive): Same.
38737         (pass_sprintf_length::compute_format_length): Same.
38738         (try_substitute_return_value): Simplify slightly.
38739
38740         PR middle-end/78703
38741         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
38742         (fmtresult::operator+=): Outlined.
38743         (struct fmtresult): Add ctors.
38744         (struct conversion_spec): Rename...
38745         (struct directive): ...to this.  Add and remove data members.
38746         (directive::set_width, directive::set_precision): New functions.
38747         (format_percent): Use fmtresult ctor.
38748         (get_width_and_precision): Remove.
38749         (format_integer): Make naming changes.  Avoid computing width and
38750         precision.
38751         (format_floating): Same.  Adjust indentation.
38752         (format_character, format_none): New functions.
38753         (format_string): Moved character handling to format_character.
38754         (format_directive): Remove arguments, change return type.
38755         (parse_directive): New function.
38756         (pass_sprintf_length::compute_format_length): Move directive
38757         parsing to parse_directive.
38758
38759 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
38760
38761         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
38762         (assign_assembler_name_if_needed): ... this.
38763         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
38764         (assign_assembler_name_if_needed): ... this.
38765         (free_lang_data_in_cgraph): Adjust callers.
38766         * cgraphunit.c (cgraph_node::analyze): Likewise.
38767         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
38768         Likewise.
38769
38770 2017-01-23  Richard Biener  <rguenther@suse.de>
38771
38772         PR tree-optimization/79088
38773         PR tree-optimization/79188
38774         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
38775         resetting loop bounds after last path deletion.  Reset loop
38776         bounds of the target loop, make code match the comments.
38777         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
38778         Make sure loops need no fixups.
38779
38780 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
38781
38782         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
38783         exponent support with double type for first argument.
38784         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
38785         type returned by __builtin_vec_extract_sig,
38786         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
38787         functions from "vector int" to "vector unsigned int" or from
38788         "vector long long int" to "vector unsigned long long int".
38789         Changed type returned by __builtin_vec_extract_exp,
38790         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
38791         functions from "vector int" to "vector unsigned int" or from
38792         "vector long long int" to "vector unsigned long long int".
38793         Changed return type of __builtin_vec_test_data_class,
38794         __builtin_vec_test_data_class_sp, and
38795         __builtin_vec_test_data_class_dp from "vector int" to
38796         "vector bool int" or from "vector long long int" to "vector bool
38797         long long int" and changed second argument type from "unsigned
38798         int" to "int".  Added new overloaded function forms "vector float
38799         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
38800         "vector float __builtin_vec_insert_exp_sp (vector float, vector
38801         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
38802         double, vector unsigned long long int)" and "vector double
38803         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
38804         long int)".  Changed return type of
38805         __builtin_scalar_test_data_class and
38806         __builtin_scalar_test_data_class_sp and
38807         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
38808         int" and changed second argument from "unsigned int" to "int".
38809         Changed type returned by __builtin_scalar_test_neg,
38810         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
38811         from "int" to "bool int".  Added new overloaded function form
38812         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
38813         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
38814         exponent double-precision with floating point first argument.
38815         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
38816         documentation of scalar_test_data_class, scalar_test_neg,
38817         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
38818         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
38819         vec_test_data_class built-in functions to reflect refinements in
38820         their type signatures.
38821
38822 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
38823
38824         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
38825         size of buf.
38826         (aarch64_elf_asm_destructor): Likewise.
38827
38828 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
38829
38830         PR rtl-optimization/78634
38831         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
38832         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
38833         * ifcvt.c (noce_try_cmove): Add missing cost check.
38834
38835         PR rtl-optimization/71724
38836         * combine.c (if_then_else_cond): Look for situations where it is
38837         beneficial to undo the work of one of the recursive calls.
38838
38839 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
38840
38841         PR tree-optimization/70754
38842         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
38843         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
38844         combined stmt before it if not NULL.
38845         (combine_chains): Process refs reversely and compute dominance point
38846         for root ref.
38847
38848 2017-01-23  Martin Liska  <mliska@suse.cz>
38849
38850         PR tree-optimization/79196
38851         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
38852         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
38853         instead of memcmp.
38854         (strlen_optimize_stmt): Call the renamed function.
38855
38856 2017-01-23  Michael Matz  <matz@suse.de>
38857
38858         PR tree-optimization/78384
38859         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
38860
38861 2017-01-23  Richard Biener  <rguenther@suse.de>
38862
38863         PR tree-optimization/79186
38864         * tree-vrp.c (register_new_assert_for): Make sure we've seen
38865         both incoming edges before moving an assert.
38866
38867 2017-01-23  Martin Jambor  <mjambor@suse.cz>
38868
38869         * ipa-prop.c (load_from_param_1): Removed.
38870         (load_from_unmodified_param): Bits from load_from_param_1 put back
38871         here.
38872         (load_from_param): Removed.
38873         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
38874         with stmt.  Reverted back to use of load_from_unmodified_param.
38875
38876 2017-01-23  Martin Jambor  <mjambor@suse.cz>
38877
38878         PR ipa/79108
38879         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
38880         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
38881         field a pointer to garbage collected vector, mark lattices and
38882         ipcp_orig_node with GTY((skip)).
38883         (ipa_get_param_count): Adjust to descriptors being a pointer.
38884         (ipa_get_param): Likewise.
38885         (ipa_get_type): Likewise.
38886         (ipa_get_param_move_cost): Likewise.
38887         (ipa_set_param_used): Likewise.
38888         (ipa_get_controlled_uses): Likewise.
38889         (ipa_set_controlled_uses): Likewise.
38890         (ipa_is_param_used): Likewise.
38891         (ipa_node_params_t): Move into garbage collector.  New methods insert
38892         and remove.
38893         (ipa_node_params_sum): Annotate wth GTY(()).
38894         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
38895         garbage collected.
38896         (ipa_load_from_parm_agg): Adjust declaration.
38897         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
38898         * ipa-profile.c (ipa_profile): Likewise.
38899         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
38900         (ipa_populate_param_decls): Make descriptors parameter garbage
38901         collected.
38902         (ipa_dump_param): Adjust to descriptors being a pointer.
38903         (ipa_alloc_node_params): Likewise.
38904         (ipa_initialize_node_params): Likewise.
38905         (load_from_param_1): Make descriptors parameter garbage collected.
38906         (load_from_unmodified_param): Likewise.
38907         (load_from_param): Likewise.
38908         (ipa_load_from_parm_agg): Likewise.
38909         (ipa_node_params::~ipa_node_params): Removed.
38910         (ipa_free_all_node_params): Remove call to delete operator.
38911         (ipa_node_params_t::insert): New.
38912         (ipa_node_params_t::remove): Likewise.
38913         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
38914         copy known_csts and known_contexts vectors.
38915         (ipa_read_node_info): Adjust to descriptors being a pointer.
38916         (ipcp_modif_dom_walker): Make m_descriptors field garbage
38917         collected.
38918         (ipcp_transform_function): Make descriptors variable garbage
38919         collected.
38920
38921 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
38922
38923         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
38924         * config/i386/avx512dqintrin.h: Ditto.
38925         * config/i386/avx512fintrin.h: Ditto.
38926         * config/i386/i386.c: Handle new builtins.
38927         * config/i386/i386-builtin.def: Add new builtins.
38928         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
38929         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
38930
38931 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
38932             Martin Liska  <mliska@suse.cz>
38933
38934         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
38935         * asan.c (asan_expand_poison_ifn): Support stores and use
38936         appropriate ASAN report function.
38937         * internal-fn.c (expand_ASAN_POISON_USE): New function.
38938         * internal-fn.def (ASAN_POISON_USE): Declare.
38939         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
38940         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
38941         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
38942         ASAN_POISON calls w/o LHS.
38943         * tree-ssa.c (execute_update_addresses_taken): Create clobber
38944         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
38945         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
38946         * gimplify.c (asan_poison_variables): Add attribute
38947         use_after_scope_memory to variables that really needs to live
38948         in memory.
38949         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
38950         having the attribute.
38951
38952 2017-01-23  Martin Liska  <mliska@suse.cz>
38953
38954         * asan.c (create_asan_shadow_var): New function.
38955         (asan_expand_poison_ifn): Likewise.
38956         * asan.h (asan_expand_poison_ifn): New declaration.
38957         * internal-fn.c (expand_ASAN_POISON): Likewise.
38958         * internal-fn.def (ASAN_POISON): New builtin.
38959         * sanopt.c (pass_sanopt::execute): Expand
38960         asan_expand_poison_ifn.
38961         * tree-inline.c (copy_decl_for_dup_finish): Make function
38962         external.
38963         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
38964         * tree-ssa.c (is_asan_mark_p): New function.
38965         (execute_update_addresses_taken): Rewrite local variables
38966         (identified just by use-after-scope as addressable) into SSA.
38967
38968 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
38969
38970         * doc/install.texi (Specific): opensource.apple.com uses https
38971         now. Remove trailing slash.
38972
38973 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
38974
38975         * README.Portability: Remove note on an Irix compatibility issue.
38976
38977 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
38978
38979         * gcov.c (INCLUDE_ALGORITHM): Define.
38980         (INCLUDE_VECTOR): Define.
38981         No longer include <vector> and <algorithm> directly.
38982
38983 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
38984
38985         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
38986         to https.
38987         * doc/invoke.texi (Code Gen Options): Ditto.
38988
38989 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
38990
38991         PR lto/78407
38992         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
38993
38994 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
38995
38996         rtl-optimization/79125
38997         * cprop.c (local_cprop_pass): Handle cases where we make an
38998         unconditional trap.
38999
39000 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
39001
39002         PR target/61729
39003         PR target/77850
39004         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
39005         read from, for big endian.
39006
39007 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
39008
39009         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
39010         register pauth builtins for LP64 only.
39011
39012 2017-01-20  Marek Polacek  <polacek@redhat.com>
39013
39014         PR c/79152
39015         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
39016         non-case labels.
39017
39018 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39019
39020         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
39021         of safelen status.
39022         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
39023         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
39024         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
39025
39026 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39027
39028         PR target/71270
39029         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
39030         in big-endian mode when they are not a single duplicated value.
39031
39032 2017-01-20  Richard Biener  <rguenther@suse.de>
39033
39034         * BASE-VER: Bump to 7.0.1.
39035
39036 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39037
39038         * omp-low.c (omplow_simd_context): New struct.  Use it...
39039         (lower_rec_simd_input_clauses): ...here and...
39040         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
39041         references to idx, lane, max_vf, is_simt.
39042
39043 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
39044
39045         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
39046         mcpu=nps400.
39047
39048 2017-01-20  Martin Jambor  <mjambor@suse.cz>
39049
39050         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
39051         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
39052         gt-hsa-common.h.
39053         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
39054         (GTFILES): Rename hsa.c to hsa-common.c.
39055         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
39056         * hsa-dump.c: Likewise.
39057         * hsa-gen.c: Likewise.
39058         * hsa-regalloc.c: Likewise.
39059         * ipa-hsa.c: Likewise.
39060         * omp-expand.c: Likewise.
39061         * omp-low.c: Likewise.
39062         * toplev.c: Likewise.
39063
39064 2017-01-20  Marek Polacek  <polacek@redhat.com>
39065
39066         PR c/64279
39067         * doc/invoke.texi: Document -Wduplicated-branches.
39068         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
39069         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
39070         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
39071         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
39072         return 0 only when not OEP_LEXICOGRAPHIC.
39073         (fold_build_cleanup_point_expr): Use the expression
39074         location when building CLEANUP_POINT_EXPR.
39075         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
39076         * tree.c (add_expr): Handle error_mark_node.
39077
39078 2017-01-20  Martin Liska  <mliska@suse.cz>
39079
39080         PR lto/69188
39081         * tree-profile.c (init_ic_make_global_vars): Do not call
39082         finalize_decl.
39083         (gimple_init_gcov_profiler): Likewise.
39084
39085 2017-01-20  Martin Liska  <mliska@suse.cz>
39086
39087         PR ipa/71190
39088         * cgraph.h (maybe_create_reference): Remove argument and
39089         update comment.
39090         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
39091         argument.
39092         * ipa-cp.c (create_specialized_node): Likewise.
39093         * symtab.c (symtab_node::maybe_create_reference): Handle
39094         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
39095
39096 2017-01-20  Martin Liska  <mliska@suse.cz>
39097
39098         * read-rtl-function.c (function_reader::create_function): Use
39099         build_decl instread of build_decl_stat.
39100
39101 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
39102
39103         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
39104         * config/i386/avx512dqintrin.h: Ditto.
39105         * config/i386/avx512fintrin.h: Ditto.
39106         * config/i386/i386-builtin-types.def: Add new types.
39107         * config/i386/i386.c: Handle new types.
39108         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
39109         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
39110         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
39111         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
39112         (__builtin_ia32_kshiftridi): New.
39113         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
39114
39115 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
39116
39117         PR target/78875
39118         PR target/79140
39119         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
39120         define to rs6000_init_stack_protect_guard.
39121         (rs6000_init_stack_protect_guard): New function.
39122
39123 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39124             Yunqiang Su  <yunqiang.su@imgtec.com>
39125
39126         * config.gcc (supported_defaults): Add madd4.
39127         (with_madd4): Add validation.
39128         (all_defaults): Add madd4.
39129         * config/mips/mips.opt (mmadd4): New option.
39130         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39131         mmadd4.
39132         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39133         __mips_no_madd4.
39134         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
39135         (ISA_HAS_FUSED_MADD4): Likewise.
39136         * doc/invoke.texi (-mmadd4): Document the new option.
39137         * doc/install.texi (--with-madd4): Document the new option.
39138
39139 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39140
39141         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
39142         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
39143         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
39144         (aarch64_init_pauth_hint_builtins): New.
39145         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
39146         (aarch64_expand_builtin): Expand new builtins.
39147
39148 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39149
39150         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
39151         * combine-stack-adj.c (no_unhandled_cfa): Handle
39152         REG_CFA_TOGGLE_RA_MANGLE.
39153         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
39154         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
39155         info for return address signing.
39156         (aarch64_expand_epilogue): Likewise.
39157
39158 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39159
39160         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
39161         * config/aarch64/aarch64-protos.h
39162         (aarch64_return_address_signing_enabled): New declaration.
39163         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
39164         New function.
39165         (aarch64_expand_prologue): Sign return address before it's pushed onto
39166         stack.
39167         (aarch64_expand_epilogue): Authenticate return address fetched from
39168         stack.
39169         (aarch64_override_options): Sanity check for ILP32 and ISA level.
39170         (aarch64_attributes): New function attributes for "sign-return-address".
39171         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
39172         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
39173         ("*do_return"): Generate combined instructions according to key index.
39174         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
39175         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
39176         iterators.
39177         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
39178         * config/aarch64/aarch64.opt (msign-return-address=): New.
39179         * doc/extend.texi (AArch64 Function Attributes): Documents
39180         "sign-return-address=".
39181         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
39182
39183 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39184
39185         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
39186         overall option summary.
39187
39188 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39189
39190         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
39191         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
39192         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
39193         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
39194
39195 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
39196
39197         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
39198         -mpower9-minmax by default for -mcpu=power9.
39199         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
39200         128-bit floating point.
39201
39202 2017-01-20  Alan Modra  <amodra@gmail.com>
39203
39204         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
39205         optimizing for size.
39206
39207 2017-01-20  Alan Modra  <amodra@gmail.com>
39208
39209         PR target/79144
39210         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
39211         for strcmp and strncmp from corresponding builtin decl.
39212
39213 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39214
39215         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
39216         instead of i386/rtems-64.h.
39217         * config/i386/rtems-64.h: Remove.
39218
39219 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39220
39221         PR target/78478
39222         Revert:
39223         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
39224
39225         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
39226
39227 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
39228
39229         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
39230         Change int to HOST_WIDE_INT.
39231         * config/aarch64/aarch64-protos.h
39232         (aarch64_simd_gen_const_vector_dup): Likewise.
39233         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
39234
39235 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
39236
39237         * langhooks-def.h (lhd_type_for_size): New decl.
39238         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
39239         * langhooks.c (lhd_type_for_size): New function, taken from
39240         lto_type_for_size.
39241
39242 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
39243
39244         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
39245         define_bypass for CR latency.
39246         (power9-cracked-alu): Update bypass latency and remove power9-branch.
39247         (power9-alu2): Add define_bypass for CR latency.
39248         (power9-cmp): New.
39249         (power9-mul): Update insn latency.
39250         (power9-mul-compare): Update insn latency, bypass latency and remove
39251         power9-branch.
39252
39253 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39254
39255         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
39256         Delete.
39257         * config/aarch64/aarch64.md
39258         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
39259         aarch64_nopcrelative_literal_loads.
39260         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
39261
39262 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
39263
39264         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
39265         TARGET_LOONGSON_3A.
39266         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
39267
39268 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
39269
39270         PR target/78176
39271         * config.gcc (supported_defaults): Add lxc1-sxc1.
39272         (with_lxc1_sxc1): Add validation.
39273         (all_defaults): Add lxc1-sxc1.
39274         * config/mips/mips.opt (mlxc1-sxc1): New option.
39275         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39276         mlxc1-sxc1.
39277         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39278         __mips_no_lxc1_sxc1.
39279         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
39280         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
39281         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
39282
39283 2017-01-19  Richard Biener  <rguenther@suse.de>
39284
39285         PR tree-optimization/72488
39286         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
39287         sure to restore SSA info.
39288         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
39289
39290 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
39291
39292         PR rtl-optimization/79121
39293         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
39294         of the inner type when shifting an extended value.
39295
39296 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39297
39298         PR lto/78407
39299         * symtab.c (symtab_node::equal_address_to): Fix comparing of
39300         interposable aliases.
39301
39302 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
39303
39304         PR target/78516
39305         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
39306         Use the evmergelohi instruction.
39307         (mov_si<mode>_e500_subreg4_2_le): Likewise.
39308         (mov_sitf_e500_subreg8_2_be): Likewise.
39309         (mov_sitf_e500_subreg12_2_le): Likewise.
39310         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
39311         (mov_si<mode>_e500_subreg4_2_be): Likewise.
39312         (mov_sitf_e500_subreg8_2_le): Likewise.
39313         (mov_sitf_e500_subreg12_2_be): Likewise.
39314
39315 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39316
39317         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
39318         attribute from vecsimple to vecperm.
39319         (altivec_vbpermq2): Likewise.
39320
39321 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39322
39323         PR target/79040
39324         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
39325
39326 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
39327         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
39328         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
39329         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
39330         case where N arg is SIZE_MAX.
39331         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
39332         (cmpstrsi): Add pattern.
39333
39334 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
39335
39336         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
39337         __builtin_vec_revb builtins.
39338         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
39339         built-in functions to support generation of the ISA 3.0 XXBR<x>
39340         vector byte reverse instructions.
39341         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
39342         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
39343         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
39344         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
39345         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
39346         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
39347         (P9V_BUILTIN_VEC_REVB): Likewise.
39348         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
39349         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
39350         (p9_xxbrq_v16qi): Likewise.
39351         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
39352         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
39353         (p9_xxbrh_v8hi): Likewise.
39354         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
39355         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
39356         vec_revb built-in functions.
39357
39358 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
39359
39360         PR rtl-optimization/78952
39361         * config/i386/i386.md (any_extract): New code iterator.
39362         (*insvqi_2): Use any_extract for source operand.
39363         (*insvqi_3): Use any_shiftrt for source operand.
39364
39365 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
39366
39367         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
39368         New function.
39369         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
39370
39371 2017-01-18  Matthias Klose  <doko@ubuntu.com>
39372
39373         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
39374
39375 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39376
39377         * config/rs6000/altivec.h (vec_bperm): Change #define.
39378         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
39379         (altivec_vbpermq2): New define_insn.
39380         (altivec_vbpermd): Likewise.
39381         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
39382         function interface.
39383         (VBPERMD): Likewise.
39384         (VBPERM): New polymorphic function interface.
39385         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
39386         Add entries for P9V_BUILTIN_VEC_VBPERM.
39387         * doc/extend.texi: Add interfaces for vec_bperm.
39388
39389 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39390
39391         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
39392         first letter of error messages.
39393         (s390_resolve_overloaded_builtin): Likewise.
39394         * config/s390/s390.c (s390_expand_builtin): Likewise.
39395         (s390_invalid_arg_for_unprototyped_fn): Likewise.
39396         (s390_valid_target_attribute_inner_p): Likewise.
39397         * config/s390/s390.md ("tabort"): Likewise.
39398
39399 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
39400
39401         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
39402         (ISA_AVOID_DIV_HILO): New macro.
39403         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
39404         (ISA_HAS_DDIV): Likewise.
39405
39406 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39407
39408         * doc/invoke.texi (fabi-version): Correct number of occurrences.
39409
39410 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39411
39412         * doc/invoke.texi (fabi-version): Spelling fix.
39413
39414 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39415
39416         PR c++/70182
39417         * doc/invoke.texi (fabi-version): Mention mangling fix for
39418         operator names.
39419
39420 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39421
39422         PR c++/77489
39423         * doc/invoke.texi (fabi-version): Document discriminator mangling.
39424
39425 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39426
39427         PR target/78875
39428         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
39429         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
39430         the new options.
39431         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
39432         flexible settings.
39433         (stack_protect_test): Ditto.
39434         * config/rs6000/rs6000.opt (mstack-protector-guard=,
39435         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
39436         options.
39437         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
39438         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
39439         -mstack-protector-guard-offset=.
39440         (RS/6000 and PowerPC Options): Ditto.
39441
39442 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39443
39444         * config/i386/i386.h (MASK_CLASS_P): New define.
39445         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
39446         there are no registers from different register sets also when
39447         mask registers are used.  Update function comment.
39448         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
39449         to (*k/*r) and (*k/*km) alternatives.
39450
39451 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
39452
39453         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
39454         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
39455         (EH_RETURN_HANDLER_RTX): New define.
39456         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
39457         Force frame pointer in EH return functions.
39458         (aarch64_expand_epilogue): Add barrier for eh_return.
39459         (aarch64_final_eh_return_addr): Remove.
39460         (aarch64_eh_return_handler_rtx): New function.
39461         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
39462         Remove.
39463         (aarch64_eh_return_handler_rtx): New prototype.
39464
39465 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39466
39467         * config/rs6000/altivec.h (vec_rlmi): New #define.
39468         (vec_vrlnm): Likewise.
39469         (vec_rlnm): Likewise.
39470         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
39471         (UNSPEC_VRLNM): Likewise.
39472         (VIlong): New mode iterator.
39473         (altivec_vrl<VI_char>mi): New define_insn.
39474         (altivec_vrl<VI_char>nm): Likewise.
39475         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
39476         function entry.
39477         (VRLDNM): Likewise.
39478         (RLNM): New polymorphic function entry.
39479         (VRLWMI): New monomorphic function entry.
39480         (VRLDMI): Likewise.
39481         (RLMI): New polymorphic function entry.
39482         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
39483         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
39484         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
39485         vec_vrlnm.
39486
39487 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39488
39489         PR debug/78839
39490         * dwarf2out.c (field_byte_offset): Restore the
39491         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
39492         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
39493         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
39494         of build2 + fold.
39495
39496 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39497
39498         PR ada/67205
39499         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
39500
39501 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39502
39503         PR debug/71669
39504         * dwarf2out.c (add_data_member_location_attribute): For constant
39505         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
39506         instead of DW_AT_data_member_location, DW_AT_bit_offset and
39507         DW_AT_byte_size attributes.
39508
39509 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39510
39511         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
39512         after forcing to constant memory when the code model is medium.
39513
39514 2017-01-17  Julia Koval  <julia.koval@intel.com>
39515
39516         PR target/76731
39517         * config/i386/avx512fintrin.h
39518         (_mm512_i32gather_ps): Change __addr type to void const*.
39519         (_mm512_mask_i32gather_ps): Ditto.
39520         (_mm512_i32gather_pd): Ditto.
39521         (_mm512_mask_i32gather_pd): Ditto.
39522         (_mm512_i64gather_ps): Ditto.
39523         (_mm512_mask_i64gather_ps): Ditto.
39524         (_mm512_i64gather_pd): Ditto.
39525         (_mm512_mask_i64gather_pd): Ditto.
39526         (_mm512_i32gather_epi32): Ditto.
39527         (_mm512_mask_i32gather_epi32): Ditto.
39528         (_mm512_i32gather_epi64): Ditto.
39529         (_mm512_mask_i32gather_epi64): Ditto.
39530         (_mm512_i64gather_epi32): Ditto.
39531         (_mm512_mask_i64gather_epi32): Ditto.
39532         (_mm512_i64gather_epi64): Ditto.
39533         (_mm512_mask_i64gather_epi64): Ditto.
39534         (_mm512_i32scatter_ps): Change __addr type to void*.
39535         (_mm512_mask_i32scatter_ps): Ditto.
39536         (_mm512_i32scatter_pd): Ditto.
39537         (_mm512_mask_i32scatter_pd): Ditto.
39538         (_mm512_i64scatter_ps): Ditto.
39539         (_mm512_mask_i64scatter_ps): Ditto.
39540         (_mm512_i64scatter_pd): Ditto.
39541         (_mm512_mask_i64scatter_pd): Ditto.
39542         (_mm512_i32scatter_epi32): Ditto.
39543         (_mm512_mask_i32scatter_epi32): Ditto.
39544         (_mm512_i32scatter_epi64): Ditto.
39545         (_mm512_mask_i32scatter_epi64): Ditto.
39546         (_mm512_i64scatter_epi32): Ditto.
39547         (_mm512_mask_i64scatter_epi32): Ditto.
39548         (_mm512_i64scatter_epi64): Ditto.
39549         (_mm512_mask_i64scatter_epi64): Ditto.
39550         * config/i386/avx512pfintrin.h
39551         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
39552         (_mm512_mask_prefetch_i32gather_ps): Ditto.
39553         (_mm512_mask_prefetch_i64gather_pd): Ditto.
39554         (_mm512_mask_prefetch_i64gather_ps): Ditto.
39555         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
39556         (_mm512_prefetch_i32scatter_ps): Ditto.
39557         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
39558         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
39559         (_mm512_prefetch_i64scatter_pd): Ditto.
39560         (_mm512_prefetch_i64scatter_ps): Ditto.
39561         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
39562         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
39563         * config/i386/avx512vlintrin.h
39564         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
39565         (_mm_mmask_i32gather_ps): Ditto.
39566         (_mm256_mmask_i32gather_pd): Ditto.
39567         (_mm_mmask_i32gather_pd): Ditto.
39568         (_mm256_mmask_i64gather_ps): Ditto.
39569         (_mm_mmask_i64gather_ps): Ditto.
39570         (_mm256_mmask_i64gather_pd): Ditto.
39571         (_mm_mmask_i64gather_pd): Ditto.
39572         (_mm256_mmask_i32gather_epi32): Ditto.
39573         (_mm_mmask_i32gather_epi32): Ditto.
39574         (_mm256_mmask_i32gather_epi64): Ditto.
39575         (_mm_mmask_i32gather_epi64): Ditto.
39576         (_mm256_mmask_i64gather_epi32): Ditto.
39577         (_mm_mmask_i64gather_epi32): Ditto.
39578         (_mm256_mmask_i64gather_epi64): Ditto.
39579         (_mm_mmask_i64gather_epi64): Ditto.
39580         (_mm256_i32scatter_ps): Change __addr type to void*.
39581         (_mm256_mask_i32scatter_ps): Ditto.
39582         (_mm_i32scatter_ps): Ditto.
39583         (_mm_mask_i32scatter_ps): Ditto.
39584         (_mm256_i32scatter_pd): Ditto.
39585         (_mm256_mask_i32scatter_pd): Ditto.
39586         (_mm_i32scatter_pd): Ditto.
39587         (_mm_mask_i32scatter_pd): Ditto.
39588         (_mm256_i64scatter_ps): Ditto.
39589         (_mm256_mask_i64scatter_ps): Ditto.
39590         (_mm_i64scatter_ps): Ditto.
39591         (_mm_mask_i64scatter_ps): Ditto.
39592         (_mm256_i64scatter_pd): Ditto.
39593         (_mm256_mask_i64scatter_pd): Ditto.
39594         (_mm_i64scatter_pd): Ditto.
39595         (_mm_mask_i64scatter_pd): Ditto.
39596         (_mm256_i32scatter_epi32): Ditto.
39597         (_mm256_mask_i32scatter_epi32): Ditto.
39598         (_mm_i32scatter_epi32): Ditto.
39599         (_mm_mask_i32scatter_epi32): Ditto.
39600         (_mm256_i32scatter_epi64): Ditto.
39601         (_mm256_mask_i32scatter_epi64): Ditto.
39602         (_mm_i32scatter_epi64): Ditto.
39603         (_mm_mask_i32scatter_epi64): Ditto.
39604         (_mm256_i64scatter_epi32): Ditto.
39605         (_mm256_mask_i64scatter_epi32): Ditto.
39606         (_mm_i64scatter_epi32): Ditto.
39607         (_mm_mask_i64scatter_epi32): Ditto.
39608         (_mm256_i64scatter_epi64): Ditto.
39609         (_mm256_mask_i64scatter_epi64): Ditto.
39610         (_mm_i64scatter_epi64): Ditto.
39611         (_mm_mask_i64scatter_epi64): Ditto.
39612         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
39613         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
39614         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
39615         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
39616         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
39617         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
39618         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
39619         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
39620         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
39621         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
39622         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
39623         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
39624         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
39625         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
39626         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
39627         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
39628         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
39629         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
39630         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
39631         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
39632         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
39633         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
39634         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
39635         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
39636         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
39637         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
39638         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
39639         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
39640         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
39641         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
39642         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
39643         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
39644         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
39645         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
39646         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
39647         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
39648         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
39649         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
39650         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
39651         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
39652         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
39653         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
39654         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
39655         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
39656         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
39657         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
39658         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
39659         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
39660         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
39661         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
39662         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
39663         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
39664         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
39665         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
39666         definitions accordingly.
39667
39668 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
39669             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
39670
39671         PR target/79079
39672         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
39673         gen_lowpart.
39674
39675 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
39676
39677         PR target/79058
39678         * ira-conflicts.c (ira_build_conflicts): Update total conflict
39679         hard regs for inner regno.
39680
39681 2017-01-17  Martin Liska  <mliska@suse.cz>
39682
39683         PR ipa/71207
39684         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
39685         assumption and add comment.
39686
39687 2017-01-17  Nathan Sidwell  <nathan@acm.org>
39688
39689         * ipa-visibility.c (localize_node): New function, broken out of ...
39690         (function_and_variable_visibility): ... here. Call it.
39691
39692 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39693
39694         PR middle-end/77445
39695         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
39696         correctly set frequency of oudgoing edge.
39697         (duplicate_thread_path): Fix profile updating.
39698
39699 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39700
39701         PR other/79046
39702         * configure.ac: Add GCC_BASE_VER.
39703         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
39704         version from BASE-VER file.
39705         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
39706         (gcc.o): Depend on $(BASEVER).
39707         * common.opt (dumpfullversion): New option.
39708         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
39709         * doc/invoke.texi: Document -dumpfullversion.
39710         * doc/install.texi: Document --with-gcc-major-version-only.
39711         * configure: Regenerated.
39712
39713 2017-01-17  Richard Biener  <rguenther@suse.de>
39714
39715         PR tree-optimization/71433
39716         * tree-vrp.c (register_new_assert_for): Merge same asserts
39717         on all incoming edges.
39718         (process_assert_insertions_for): Handle insertions at the
39719         beginning of BBs.
39720
39721 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
39722
39723         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
39724         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
39725
39726 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
39727
39728         PR target/78633
39729         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
39730         RTL sharing.
39731
39732 2017-01-17  Alan Modra  <amodra@gmail.com>
39733
39734         PR target/79066
39735         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
39736         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
39737         symbolic stack limit when pic.
39738
39739 2017-01-16  Martin Sebor  <msebor@redhat.com>
39740
39741         PR tree-optimization/78608
39742         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
39743
39744 2017-01-16  Jeff Law  <law@redhat.com>
39745
39746         Revert:
39747         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
39748         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
39749         for several include directories that may be relative to sysroot.
39750         * config/i386/x-mingw32 (gplus_includedir): Define.
39751         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
39752         (native_system_includedir): Likewise.
39753         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
39754         override if TARGET_SYSTEM_ROOT is defined.
39755         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
39756
39757         PR tree-optimization/79090
39758         PR tree-optimization/33562
39759         PR tree-optimization/61912
39760         PR tree-optimization/77485
39761         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
39762         and computed trims into the dump file.
39763
39764 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39765
39766         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
39767
39768 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
39769
39770         PR c/79089
39771         * gimplify.c (gimplify_init_constructor): If want_value and
39772         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
39773         fix.
39774
39775         PR target/79080
39776         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
39777         sequence.  Formatting fixes.
39778         (doloop_optimize): Formatting fixes.
39779
39780         PR driver/49726
39781         * gcc.c (debug_level_greater_than_spec_func): New function.
39782         (static_spec_functions): Add debug-level-gt spec function.
39783         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
39784         !g0.
39785         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
39786         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
39787         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
39788         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
39789         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
39790         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
39791
39792 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
39793
39794         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
39795         QImode fixups to general and mask registers only.
39796
39797 2017-01-16  Carl Love  <cel@us.ibm.com>
39798
39799         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
39800         for built-in functions
39801         vector signed char vec_nabs (vector signed char)
39802         vector signed short vec_nabs (vector signed short)
39803         vector signed int vec_nabs (vector signed int)
39804         vector signed long long vec_nabs (vector signed long long)
39805         vector float vec_nabs (vector float)
39806         vector double vec_nabs (vector double)
39807         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
39808         and NABS overload.
39809         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
39810         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
39811         * doc/extend.texi: Update the documentation file for the new built-in
39812         functions.
39813
39814 2017-01-16  Martin Sebor  <msebor@redhat.com>
39815
39816         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
39817         message.
39818
39819 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39820
39821         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
39822         UNSPEC_VSX__XXSPLTD to require special splat handling.
39823
39824 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
39825
39826         PR bootstrap/78616
39827         * system.h: Poison strndup.
39828
39829 2017-01-16  Alan Modra  <amodra@gmail.com>
39830
39831         PR target/79098
39832         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
39833         use a switch.
39834
39835 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
39836
39837         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
39838
39839 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
39840
39841         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
39842         call recog here.  Assert that INSN_CODE (insn) is non-negative.
39843
39844 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
39845
39846         PR target/72749
39847         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
39848         fallthrough.
39849         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
39850         in the currently scheduled RTL fragment.
39851
39852 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
39853
39854         PR rtl-optimization/78751
39855         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
39856         give up.
39857
39858 2017-01-14  Jeff Law  <law@redhat.com>
39859
39860         PR tree-optimization/79090
39861         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
39862         variable length stores.
39863         (compute_trims): Delete dead assignment to *trim_tail.
39864         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
39865         zero length.
39866
39867 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
39868
39869         PR rtl-optimization/78626
39870         PR rtl-optimization/78727
39871         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
39872         of a block, and split such blocks after everything else is finished.
39873
39874 2017-01-14  Alan Modra  <amodra@gmail.com>
39875
39876         PR target/72749
39877         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
39878         target legitimate_combined_insn.
39879         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
39880         (rs6000_legitimate_combined_insn): New function.
39881         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
39882         all uses.
39883         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
39884         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
39885         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
39886
39887 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
39888
39889         * doc/frontends.texi (G++ and GCC): Remove references to Java.
39890
39891 2017-01-13  Jeff Law  <law@redhat.com>
39892
39893         PR tree-optimization/33562
39894         PR tree-optimization/61912
39895         PR tree-optimization/77485
39896         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
39897         a statement.
39898         (delete_dead_assignment): Likewise.
39899         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
39900         statement to delete_dead_call and delete_dead_assignment.
39901
39902 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
39903
39904         PR c/78304
39905         * substring-locations.c (format_warning_va): Strengthen case 1 so
39906         that both endpoints of the substring must be within the format
39907         range for just the substring to be printed.
39908
39909 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
39910
39911         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
39912         * config/i386/i386.c (ix86_target_string): Add missing options
39913         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
39914         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
39915         flags_other and ix86_target_other to flags2_other.  Display unknown
39916         isa2 options.
39917         (ix86_valid_target_attribute_inner_p): Add missing options and
39918         reorder options by implied ISAs, as in ix86_target_string.
39919
39920 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39921
39922         * hash-table.h (hash_table::too_empty_p): New function.
39923         (hash_table::expand): Use it.
39924         (hash_table::traverse): Likewise.
39925         (hash_table::empty_slot): Use sizeof (value_type) instead of
39926         sizeof (PTR) to convert bytes to elements.  Shrink the table
39927         if the current size is excessive for the current number of
39928         elements.
39929
39930 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39931
39932         * ira-costs.c (record_reg_classes): Break from the inner loop
39933         early once alt_fail is known to be true.  Update outer loop
39934         handling accordingly.
39935
39936 2017-01-13  Jeff Law  <law@redhat.com>
39937
39938         * tree-ssa-dse.c (decrement_count): New function.
39939         (increment_start_addr, maybe_trim_memstar_call): Likewise.
39940         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
39941         when we know the partially dead statement is a mem* function.
39942
39943         PR tree-optimization/61912
39944         PR tree-optimization/77485
39945         * tree-ssa-dse.c: Include expr.h.
39946         (maybe_trim_constructor_store): New function.
39947         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
39948
39949         PR tree-optimization/33562
39950         PR tree-optimization/61912
39951         PR tree-optimization/77485
39952         * doc/invoke.texi: Document new dse-max-object-size param.
39953         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
39954         * tree-ssa-dse.c: Include params.h.
39955         (dse_store_status): New enum.
39956         (initialize_ao_ref_for_dse): New, partially extracted from
39957         dse_optimize_stmt.
39958         (valid_ao_ref_for_dse, normalize_ref): New.
39959         (setup_live_bytes_from_ref, compute_trims): Likewise.
39960         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
39961         (maybe_trim_partially_dead_store): Likewise.
39962         (maybe_trim_complex_store): Likewise.
39963         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
39964         Track what bytes live from the original store.  Return tri-state
39965         for dead, partially dead or live.
39966         (dse_dom_walker): Add constructor, destructor and new private members.
39967         (delete_dead_call, delete_dead_assignment): New extracted from
39968         dse_optimize_stmt.
39969         (dse_optimize_stmt): Make a member of dse_dom_walker.
39970         Use initialize_ao_ref_for_dse.
39971
39972         PR tree-optimization/33562
39973         PR tree-optimization/61912
39974         PR tree-optimization/77485
39975         * sbitmap.h (bitmap_count_bits): Prototype.
39976         (bitmap_clear_range, bitmap_set_range): Likewise.
39977         * sbitmap.c (bitmap_clear_range): New function.
39978         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
39979
39980 2017-01-13  Martin Liska  <mliska@suse.cz>
39981
39982         PR ipa/79043
39983         * function.c (set_cfun): Add new argument force.
39984         * function.h (set_cfun): Likewise.
39985         * ipa-inline-transform.c (inline_call): Use the function when
39986         strict alising from is dropped for function we inline to.
39987
39988 2017-01-13  Richard Biener  <rguenther@suse.de>
39989
39990         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
39991         for dumping GIMPLE INTEGER_CSTs.
39992
39993 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39994
39995         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
39996         to 201112L since C++17.
39997
39998 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
39999
40000         PR sanitizer/78887
40001         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
40002         if -fsanitize=kernel-address is present.
40003
40004 2017-01-13  Richard Biener  <rguenther@suse.de>
40005
40006         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
40007         as _Literal ( type ) number in case usual suffixes do not
40008         preserve all information.
40009
40010 2017-01-13  Richard Biener  <rguenther@suse.de>
40011
40012         PR tree-optimization/77283
40013         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
40014         and ssa-iterators.h.
40015         (is_feasible_trace): Implement a cost model based on joiner
40016         PHI node uses.
40017
40018 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
40019
40020         PR target/79004
40021         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
40022         char or short to __float128/_Float128 directly.
40023
40024 2017-01-12  Martin Sebor  <msebor@redhat.com>
40025
40026         to -Wformat-overflow.
40027         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
40028         (min_bytes_remaining): Same.
40029         (get_string_length): Same.
40030         (format_string): Same.
40031         (format_directive): Same.
40032         (add_bytes): Same.
40033         (pass_sprintf_length::handle_gimple_call): Same.
40034
40035 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
40036
40037         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
40038         info.nowrite calls with no lhs that can't throw.  Return bool
40039         whether gsi_remove has been called or not.
40040         (pass_sprintf_length::handle_gimple_call): Return bool whether
40041         try_substitute_return_value called gsi_remove.  Formatting fix.
40042         (pass_sprintf_length::execute): Don't use gsi_remove if
40043         handle_gimple_call returned true.
40044
40045         PR bootstrap/79069
40046         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
40047         be removed due to side-effects, don't remove following barrier nor
40048         turn the successor edge into fallthru edge.
40049
40050 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40051
40052         PR target/79044
40053         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
40054         element-reversing loads and stores as not swappable.
40055
40056 2017-01-12  Nathan Sidwell  <nathan@acm.org>
40057             Nicolai Stange  <nicstange@gmail.com>
40058
40059         * combine.c (try_combine): Don't ignore result of overlap checking
40060         loop.  Combine overlap & asm check into single loop.
40061
40062 2017-01-12  Richard Biener  <rguenther@suse.de>
40063
40064         * tree-pretty-print.c (dump_generic_node): Provide -gimple
40065         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
40066
40067 2017-01-12  Richard Biener  <rguenther@suse.de>
40068
40069         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
40070         and TS_TARGET_OPTION directly derive from TS_BASE.
40071         * tree-core.h (tree_optimization_option): Derive from tree_base.
40072         (tree_target_option): Likewise.
40073
40074 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
40075
40076         * config/i386/i386.c (memory_address_length): Increase len
40077         only when rip_relative_addr_p returns false.
40078
40079 2017-01-11  Julia Koval  <julia.koval@intel.com>
40080
40081         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
40082         (OPTION_MASK_ISA_SGX_SET): New.
40083         (ix86_handle_option): Handle OPT_msgx.
40084         * config.gcc: Added sgxintrin.h.
40085         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
40086         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
40087         * config/i386/i386.c (ix86_target_string): Add -msgx.
40088         (PTA_SGX): New.
40089         (ix86_option_override_internal): Handle new options.
40090         (ix86_valid_target_attribute_inner_p): Add sgx.
40091         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
40092         * config/i386/i386.opt: Add msgx.
40093         * config/i386/sgxintrin.h: New file.
40094         * config/i386/x86intrin.h: Add sgxintrin.h.
40095
40096 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40097
40098         PR c++/71537
40099         * fold-const.c (maybe_nonzero_address): Return 1 for function
40100         local objects.
40101         (tree_single_nonzero_warnv_p): Don't handle function local objects
40102         here.
40103
40104         PR c++/72813
40105         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
40106         of c-header.
40107
40108 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
40109
40110         PR driver/78877
40111         * opts.c: Include "spellcheck.h"
40112         (struct string_fragment): New struct.
40113         (struct edit_distance_traits<const string_fragment &>): New
40114         struct.
40115         (get_closest_sanitizer_option): New function.
40116         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
40117
40118 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40119
40120         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
40121         by 12.
40122         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
40123         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
40124         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
40125         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
40126         for initial die_offset if dwarf_split_debug_info.
40127         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
40128         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
40129         fields.
40130         (output_skeleton_debug_sections): Formatting fix.  Use
40131         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
40132         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
40133
40134 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
40135
40136         * config/arm/cortex-a53.md: Add bypasses for
40137         cortex_a53_r2f_cvt.
40138         (cortex_a53_r2f): Only use for transfers.
40139         (cortex_a53_f2r): Likewise.
40140         (cortex_a53_r2f_cvt): Add reservation for conversions.
40141         (cortex_a53_f2r_cvt): Likewise.
40142
40143 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
40144
40145         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
40146         to all inlined functions, change static to extern.
40147
40148 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
40149
40150         PR target/78253
40151         * config/arm/arm.c (legitimize_pic_address): Handle reference to
40152         weak symbol.
40153         (arm_assemble_integer): Likewise.
40154
40155 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
40156
40157         * config.gcc: Use new awk script to check CPU, FPU and architecture
40158         parameters for --with-... options.
40159         * config/arm/parsecpu.awk: New file
40160         * config/arm/arm-cpus.in: New file.
40161         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
40162         files.
40163         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
40164         files.
40165         * config/arm/t-arm: Update dependency rules.
40166         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
40167         of processing .def files.
40168         * config/arm/genopt.sh: Deleted.
40169         * config/arm/gentune.sh: Deleted.
40170         * config/arm/arm-cores.def: Deleted.
40171         * config/arm/arm-arches.def: Deleted.
40172         * config/arm/arm-fpus.def: Deleted.
40173         * config/arm/arm-tune.md: Regenerated.
40174         * config/arm/arm-tables.opt: Regenerated.
40175         * config/arm/arm-cpu.h: New generated file.
40176         * config/arm/arm-cpu-data.h: New generated file.
40177         * config/arm/arm-cpu-cdata.h: New generated file.
40178
40179 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
40180
40181         PR lto/79042
40182         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
40183         bit.
40184         (input_varpool_node): Unpack dynamically_initialized bit.
40185
40186 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
40187
40188         PR rtl-optimization/79032
40189         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
40190         the alignment of the adjusted memory reference against that of MODE,
40191         instead of the alignment of the original memory reference.
40192
40193 2017-01-11  Martin Jambor  <mjambor@suse.cz>
40194
40195         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
40196         test.
40197         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
40198         decorated functions.
40199
40200 2017-01-11  Richard Biener  <rguenther@suse.de>
40201
40202         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
40203         set range/nonnull info for PHI results.  Do not set it on
40204         stmts marked for removal.
40205
40206 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
40207
40208         * expr.c (store_field): In the bitfield case, fetch the return value
40209         from the registers before applying a single big-endian adjustment.
40210         Always do a final load for a BLKmode value not larger than a word.
40211
40212 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
40213
40214         PR c++/77949
40215         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40216         that we correctly handle column numbers greater than
40217         LINE_MAP_MAX_COLUMN_NUMBER.
40218
40219 2017-01-10  Martin Sebor  <msebor@redhat.com>
40220
40221         PR middle-end/78245
40222         * gimple-ssa-sprintf.c (get_destination_size): Call
40223         {init,fini}object_sizes.
40224         * tree-object-size.c (addr_object_size): Adjust.
40225         (pass_through_call): Adjust.
40226         (pass_object_sizes::execute): Adjust.
40227         * tree-object-size.h (fini_object_sizes): Declare.
40228
40229 2017-01-10  Martin Sebor  <msebor@redhat.com>
40230
40231         PR tree-optimization/78775
40232         * builtins.c (get_size_range): Move...
40233         * calls.c: ...to here.
40234         (alloc_max_size): Accept zero argument.
40235         (operand_signed_p): Remove.
40236         (maybe_warn_alloc_args_overflow): Call get_size_range.
40237         * calls.h (get_size_range): Declare.
40238
40239 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
40240
40241         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
40242         from TI's devices.csv file as of September 2016.
40243         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
40244
40245 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40246
40247         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
40248         * doc/invoke.texi: Likewise.
40249         * doc/md.texi: Likewise.
40250         * doc/objc.texi: Likewise.
40251
40252 2017-01-10  Joshua Conner  <joshconner@google.com>
40253
40254         * config/arm/fuchsia-elf.h: New file.
40255         * config/fuchsia.h: New file.
40256         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
40257         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
40258         targets.
40259         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
40260
40261 2016-01-10  Richard Biener  <rguenther@suse.de>
40262
40263         PR tree-optimization/79034
40264         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
40265         Propagate out degenerate PHIs in the joiner.
40266
40267 2017-01-10  Martin Liska  <mliska@suse.cz>
40268
40269         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
40270         (sort_congruence_classes_by_decl_uid): Likewise.
40271         (sort_congruence_class_groups_by_decl_uid): Likewise.
40272         (sem_item_optimizer::merge_classes): Sort class, groups in these
40273         classes and members in the groups by DECL_UID of declarations.
40274         This would make merge operations stable.
40275
40276 2017-01-10  Martin Liska  <mliska@suse.cz>
40277
40278         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
40279         usage of m_classes_vec.
40280         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
40281         (sem_item_optimizer::get_group_by_hash): Likewise.
40282         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
40283         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
40284         (sem_item_optimizer::verify_classes): Likewise.
40285         (sem_item_optimizer::process_cong_reduction): Likewise.
40286         (sem_item_optimizer::dump_cong_classes): Likewise.
40287         (sem_item_optimizer::merge_classes): Likewise.
40288         * ipa-icf.h (congruence_class_hash): Rename from
40289         congruence_class_group_hash.  Remove declaration of m_classes_vec.
40290
40291 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
40292
40293         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
40294         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
40295         * config.gcc: Add avx512vpopcntdqintrin.h.
40296         * config/i386/avx512vpopcntdqintrin.h: New.
40297         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
40298         * config/i386/i386-builtin-types.def: Add new types.
40299         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
40300         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
40301         __builtin_ia32_vpopcountq_v8di_mask): New.
40302         * config/i386/i386-c.c (ix86_target_macros_internal): Define
40303         __AVX512VPOPCNTDQ__.
40304         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
40305         (PTA_AVX512VPOPCNTDQ): Define.
40306         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
40307         TARGET_AVX512VPOPCNTDQ_P): Define.
40308         * config/i386/i386.opt: Add mavx512vpopcntdq.
40309         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
40310         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
40311
40312 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40313
40314         PR middle-end/77484
40315         * predict.def (PRED_CALL): Set to 67.
40316
40317 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
40318
40319         * expr.c (store_field): In the bitfield case, if the value comes from
40320         a function call and is of an aggregate type returned in registers, do
40321         not modify the field mode; extract the value in all cases if the mode
40322         is BLKmode and the size is not larger than a word.
40323
40324 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
40325
40326         PR target/71017
40327         * config/i386/cpuid.h: Fix undefined behavior.
40328
40329 2017-01-04  Jeff Law  <law@redhat.com>
40330
40331         PR tree-optimization/79007
40332         PR tree-optimization/67955
40333         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
40334         conservative for pt.null when flag_non_call_exceptions is on.
40335
40336 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40337
40338         PR translation/79019
40339         PR translation/79020
40340         * params.def (PARAM_INLINE_MIN_SPEEDUP,
40341         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
40342         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
40343         in descriptions.
40344         * config/avr/avr.opt (maccumulate-args): Likewise.
40345         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
40346         * common.opt (freport-bug): Likewise.
40347         * cif-code.def (CIF_FINAL_ERROR): Likewise.
40348         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
40349         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
40350         translatable string.
40351         * config/i386/i386.c (function_value_32): Likewise.
40352         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
40353         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
40354         Likewise.
40355         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
40356         * common/config/msp430/msp430-common.c (msp430_handle_option):
40357         Likewise.
40358         * symtab.c (symtab_node::verify_base): Likewise.
40359         * opts.c (set_debug_level): Likewise.
40360         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
40361         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
40362         missing whitespace to translatable strings.
40363         * config/avr/avr.md (bswapsi2): Fix typo in comment.
40364         * config/sh/superh.h: Likewise.
40365         * config/i386/xopintrin.h: Likewise.
40366         * config/i386/znver1.md: Likewise.
40367         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
40368         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
40369         * double-int.h (struct double_int): Likewise.
40370         * double-int.c (div_and_round_double): Likewise.
40371         * wide-int.cc: Likewise.
40372         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
40373         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
40374         * cfgcleanup.c (crossjumps_occured): Renamed to ...
40375         (crossjumps_occurred): ... this.
40376         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
40377         Adjust all uses.
40378
40379         PR tree-optimization/78899
40380         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
40381         returning bool return struct loop *, NULL for failure and the new
40382         loop on success.
40383         (versionable_outer_loop_p): Don't version outer loop if it has
40384         dont_vectorized bit set.
40385         (tree_if_conversion): When versioning outer loop, ensure
40386         tree_if_conversion is performed also on the inner loop of the
40387         non-vectorizable outer loop copy.
40388         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
40389         LOOP_VECTORIZED in inner loop of the scalar outer loop and
40390         prevent vectorization of it.
40391         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
40392         the outer loop vectorization of the non-scalar version is attempted
40393         before vectorization of the inner loop in scalar version.  If
40394         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
40395         vectorization of its inner loop.
40396         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
40397         has 2 inner loops, rename also on edges from bb whose single pred
40398         is outer_loop->header.  Fix typo in function comment.
40399
40400 2017-01-09  Martin Sebor  <msebor@redhat.com>
40401
40402         PR bootstrap/79033
40403         * asan.c (asan_emit_stack_protection): Increase local buffer size
40404         to avoid snprintf truncation warning.
40405
40406 2017-01-09  Andrew Pinski  <apinski@cavium.com>
40407
40408         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
40409         to reference thunderx2t99 for the tuning structure
40410         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
40411         Rename to ...
40412         (thunderx2t99_extra_costs): This.
40413         * config/aarch64/aarch64-tune.md: Regenerate.
40414         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
40415         (vulcan_addrcost_table): This.
40416         (vulcan_regmove_cost): Rename to ...
40417         (thunderx2t99_regmove_cost): This.
40418         (vulcan_vector_cost): Rename to ...
40419         (thunderx2t99_vector_cost): this.
40420         (vulcan_branch_cost): Rename to ...
40421         (thunderx2t99_branch_cost): This.
40422         (vulcan_tunings): Rename to ...
40423         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
40424         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
40425
40426 2017-01-09  Martin Jambor  <mjambor@suse.cz>
40427
40428         PR ipa/78365
40429         PR ipa/78599
40430         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
40431         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
40432         (propagate_vr_accross_jump_function): Use the above function for all
40433         value range computations for pass-through jump functions and type
40434         converasion from explicit value range values.
40435         (ipcp_propagate_stage): Do not attempt to deduce types of formal
40436         parameters from TYPE_ARG_TYPES.
40437         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
40438         (ipa_write_node_info): Stream type of the actual argument.
40439         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
40440
40441 2017-01-09  Martin Liska  <mliska@suse.cz>
40442
40443         PR pch/78970
40444         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
40445         (lookup_compiler): Do not show error message with have_E.
40446
40447 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40448
40449         PR tree-optimization/78938
40450         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
40451         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
40452         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
40453         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
40454         fixes.
40455
40456 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40457
40458         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
40459         is const0_rtx.
40460
40461 2017-01-09  Richard Biener  <rguenther@suse.de>
40462
40463         PR tree-optimization/78997
40464         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
40465         name condition properly.
40466
40467 2017-01-09  Richard Biener  <rguenther@suse.de>
40468
40469         PR debug/79000
40470         * dwarf2out.c (is_cxx): New overload with context.
40471         (is_naming_typedef_decl): Use it.
40472
40473 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40474
40475         * invoke.texi (Option Summary): Correct spacing in option lists
40476         and add line breaks to fix over-long lines.
40477
40478 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40479
40480         PR middle-end/17660
40481
40482         * extend.texi (Common Variable Attributes): Add xref to GCC
40483         Internals manual to explain mode attribute keywords.
40484
40485 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40486
40487         PR other/16519
40488         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
40489         and Preprocessor Options.
40490         (Options for Linking): Document -pthread here....
40491         (RS/6000 and PowerPC Options): ...not here.
40492         (Solaris 2 Options): ...or here.
40493         * doc/cppopts.texi: Document -pthread.
40494
40495 2017-01-08  Martin Sebor  <msebor@redhat.com>
40496
40497         PR middle-end/77708
40498         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
40499         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
40500         New member functions.
40501         (format_directive): Used them.
40502         (add_bytes): Same.
40503         (pass_sprintf_length::handle_gimple_call): Same.
40504         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
40505         to avoid truncation for any argument.
40506         (extract_affine_mul): Same.
40507         * tree.c (get_file_function_name): Same.
40508
40509 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40510
40511         PR middle-end/77484
40512         * predict.def (PRED_INDIR_CALL): Set to 86.
40513
40514 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40515
40516         PR preprocessor/54124
40517         * doc/cppopts.texi: Reformat -d subtable to list the full name
40518         of the options.  Add cross-reference to the docs for the general
40519         compiler -d options.
40520         * doc/invoke.texi (Developer Options): Add cross-reference to the
40521         preprocessor-specific -d option documentation.
40522
40523 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40524
40525         PR preprocessor/13498
40526         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
40527         redudant material, and reflect new command-line options.
40528         (System Headers): Likewise.
40529
40530 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40531
40532         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
40533         -isystem, and -idirafter.  Copy-edit.
40534         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
40535         default for -ftrack-macro-expansion.  Delete obsolete and
40536         badly-formatted implementation details about -fdebug-cpp output.
40537         * doc/cppwarnopts.texi: Copy-edit.
40538
40539 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
40540
40541         PR c++/72803
40542         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40543         that the transition from a max line width >= 1<<10 to narrower
40544         lines works correctly.
40545
40546 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
40547
40548         * doc/options.texi (PerFunction): New.
40549         * opt-functions.awk (switch_flags): Map both Optimization and
40550         PerFunction to CL_OPTIMIZATION.
40551         * opth-gen.awk: Test for PerFunction flag along with
40552         Optimization.
40553         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
40554         it only when the latter is present.  Skip those that don't in
40555         the hash function generator.
40556         * common.opt (fvar-tracking): Mark as PerFunction instead of
40557         Optimization.
40558         (fvar-tracking-assignments): Likewise.
40559         (fvar-tracking-assignments-toggle): Likewise.
40560         (fvar-tracking-uninit): Likewise.
40561
40562 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
40563
40564         PR translation/79018
40565         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
40566         the and store.
40567
40568 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
40569
40570         PR target/57583
40571         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
40572         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
40573         TARGET_LONG_JUMP_TABLE_OFFSETS.
40574         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
40575         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
40576         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
40577         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
40578         * config/m68k/m68k.md (tablejump expander): Likewise.
40579         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
40580         TARGET_LONG_JUMP_TABLE_OFFSETS.
40581         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
40582         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
40583
40584 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
40585             David Holsgrove <david.holsgrove@xilinx.com>
40586
40587         * common/config/microblaze/microblaze-common.c
40588         (TARGET_EXCEPT_UNWIND_INFO): Remove.
40589         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
40590         New prototype.
40591         * config/microblaze/microblaze.c (microblaze_must_save_register)
40592         (microblaze_expand_epilogue, microblaze_return_addr): Handle
40593         calls_eh_return.
40594         (microblaze_eh_return): New function.
40595         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
40596         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
40597         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
40598         * config/microblaze/microblaze.md (eh_return): New pattern.
40599
40600 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
40601
40602         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
40603         GCC_DIAGNOSTIC_STRINGIFY): Define.
40604
40605         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
40606
40607 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40608
40609         * config/arm/arm.md (<mcrr>): New.
40610         (<mrrc>): New.
40611         * config/arm/arm.c (arm_arch5te): New.
40612         (arm_option_override): Set arm_arch5te.
40613         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
40614         and mrrc2.
40615         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
40616         (arm_mcrr_qualifiers): ... this. New.
40617         (MRRC_QUALIFIERS): Define to...
40618         (arm_mrrc_qualifiers): ... this. New.
40619         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
40620         __arm_mrrc2): New.
40621         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
40622         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
40623         (MRRCI, mrrc, MRRC): New.
40624         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
40625         VUNSPEC_MRRC2): New.
40626
40627 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40628
40629         * config/arm/arm.md (<mcr>): New.
40630         (<mrc>): New.
40631         * config/arm/arm.c (arm_coproc_builtin_available): Add
40632         support for mcr, mrc, mcr2 and mrc2.
40633         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
40634         (arm_mcr_qualifiers): ... this. New.
40635         (MRC_QUALIFIERS): Define to ...
40636         (arm_mrc_qualifiers): ... this. New.
40637         (MCR_QUALIFIERS): Define to ...
40638         (arm_mcr_qualifiers): ... this. New.
40639         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
40640         __arm_mrc2): New.
40641         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
40642         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
40643         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
40644         VUNSPEC_MRC2): New.
40645
40646 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40647
40648         * config/arm/arm.md (*ldc): New.
40649         (*stc): New.
40650         (<ldc>): New.
40651         (<stc>): New.
40652         * config/arm/arm.c (arm_coproc_builtin_available): Add
40653         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
40654         (arm_coproc_ldc_stc_legitimate_address): New.
40655         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
40656         'qualifier_const_pointer'.
40657         (LDC_QUALIFIERS): Define to...
40658         (arm_ldc_qualifiers): ... this. New.
40659         (STC_QUALIFIERS): Define to...
40660         (arm_stc_qualifiers): ... this. New.
40661         * config/arm/arm-protos.h
40662         (arm_coproc_ldc_stc_legitimate_address): New.
40663         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
40664         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
40665         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
40666         stc2, stcl, stc2l): New.
40667         * config/arm/constraints.md (Uz): New.
40668         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
40669         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
40670         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
40671         VUNSPEC_STC2L): New.
40672
40673 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40674
40675         * config/arm/arm.md (<cdp>): New.
40676         * config/arm/arm.c (neon_const_bounds): Rename this ...
40677         (arm_const_bounds): ... this.
40678         (arm_coproc_builtin_available): New.
40679         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
40680         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
40681         (CDP_QUALIFIERS): Define to...
40682         (arm_cdp_qualifiers): ... this. New.
40683         (void_UP): Define.
40684         (arm_expand_builtin_args): Add case for 6 arguments.
40685         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
40686         (arm_const_bounds): ... this.
40687         (arm_coproc_builtin_available): New.
40688         * config/arm/arm_acle.h (__arm_cdp): New.
40689         (__arm_cdp2): New.
40690         * config/arm/arm_acle_builtins.def (cdp): New.
40691         (cdp2): New.
40692         * config/arm/iterators.md (CDPI,CDP,cdp): New.
40693         * config/arm/neon.md: Rename all 'neon_const_bounds' to
40694         'arm_const_bounds'.
40695         * config/arm/types.md (coproc): New.
40696         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
40697         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
40698         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
40699         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
40700
40701 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40702
40703         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
40704         (UBINOP_QUALIFIERS): New.
40705         (si_UP): Define.
40706         (acle_builtin_data): New. Change comment.
40707         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
40708         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
40709         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
40710         arm_acle_builtins.def.
40711         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
40712         (arm_init_acle_builtins): New.
40713         (CRC32_BUILTIN): Remove.
40714         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
40715         crc32cb, crc32ch and crc32cw.
40716         (arm_init_crc32_builtins): Remove.
40717         (arm_init_builtins): Use arm_init_acle_builtins rather
40718         than arm_init_crc32_builtins.
40719         (arm_expand_acle_builtin): New.
40720         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
40721         * config/arm/arm_acle_builtins.def: New.
40722
40723 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40724
40725         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
40726         (arm_builtin_datum): ... this.
40727         (arm_init_neon_builtin): Rename to ...
40728         (arm_init_builtin): ... this. Add a new parameters PREFIX
40729         and USE_SIG_IN_NAME.
40730         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
40731         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
40732         'arm_builtin_datum'.
40733         (arm_init_vfp_builtins): Likewise.
40734         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
40735         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
40736         (arm_expand_neon_args): Rename to ...
40737         (arm_expand_builtin_args): ... this. Rename builtin_arg
40738         enum values and differentiate between ARG_BUILTIN_MEMORY
40739         and ARG_BUILTIN_NEON_MEMORY.
40740         (arm_expand_neon_builtin_1): Rename to ...
40741         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
40742         values, arm_expand_builtin_args and add bool parameter NEON.
40743         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
40744         (arm_expand_vfp_builtin): Likewise.
40745         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
40746
40747 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40748
40749         PR middle-end/77484
40750         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
40751         * predict.c (tree_estimate_probability_bb): Reverse direction of
40752         polymorphic call predictor.
40753
40754 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
40755
40756         * passes.c (execute_one_pass): Split out pass-skipping logic into...
40757         (determine_pass_name_match): ...this new function and...
40758         (should_skip_pass_p): ...this new function.
40759
40760 2017-01-06  Nathan Sidwell  <nathan@acm.org>
40761
40762         * ipa-visibility.c (function_and_variable_visibility): Reformat
40763         comments and long lines.  Remove extrneous if.
40764         * symtab.c (symtab_node::make_decl_local): Fix code format.
40765         (symtab_node::set_section_for_node): Fix comment typo.
40766
40767 2017-01-06  Martin Liska  <mliska@suse.cz>
40768
40769         PR bootstrap/79003
40770         * lra-constraints.c: Rename invariant to lra_invariant.
40771         * predict.c (set_even_probabilities): Initialize e to NULL.
40772
40773 2017-01-05  Martin Sebor  <msebor@redhat.com>
40774
40775         PR tree-optimization/78910
40776         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
40777         (format_integer): Correct off-by-one error in the handling
40778         of precision with negative numbers in signed conversions..
40779
40780 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40781
40782         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
40783
40784 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
40785
40786         PR tree-optimization/71016
40787         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
40788         factor_out_conditional_conversion.  Formatting fix.
40789         (factor_out_conditional_conversion): Add cond_stmt argument.
40790         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
40791         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
40792         Formatting fix.
40793
40794 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
40795
40796         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
40797         read-rtl-function.o, and selftest-rtl.o.
40798         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
40799         (selftest::aarch64_test_loading_full_dump): New function.
40800         (selftest::aarch64_run_selftests): New function.
40801         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
40802         selftest::aarch64_run_selftests.
40803         * config/i386/i386.c
40804         (selftest::ix86_test_loading_dump_fragment_1): New function.
40805         (selftest::ix86_test_loading_call_insn): New function.
40806         (selftest::ix86_test_loading_full_dump): New function.
40807         (selftest::ix86_test_loading_unspec): New function.
40808         (selftest::ix86_run_selftests): Call the new functions.
40809         * emit-rtl.c (maybe_set_max_label_num): New function.
40810         * emit-rtl.h (maybe_set_max_label_num): New decl.
40811         * function.c (instantiate_decls): Guard call to
40812         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
40813         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
40814         "static".
40815         * gensupport.c (gen_reader::gen_reader): Pass "false"
40816         for new "compact" param of rtx_reader.
40817         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
40818         rather than an empty string for NULL strings.
40819         * read-md.c: Potentially include config.h rather than bconfig.h.
40820         Wrap include of errors.h with #ifdef GENERATOR_FILE.
40821         (have_error): New global, copied from errors.c.
40822         (md_reader::read_name): Rename to...
40823         (md_reader::read_name_1): ...this, adding "out_loc" param,
40824         and converting "missing name or number" to returning false, rather
40825         than failing.
40826         (md_reader::read_name): Reimplement in terms of read_name_1.
40827         (md_reader::read_name_or_nil): New function.
40828         (md_reader::read_string): Handle "(nil)" by returning NULL.
40829         (md_reader::md_reader): Add new param "compact".
40830         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
40831         (md_reader::read_file): New method.
40832         * read-md.h (md_reader::md_reader): Add new param "compact".
40833         (md_reader::read_file): New method.
40834         (md_reader::is_compact): New accessor.
40835         (md_reader::read_name): Convert return type from void to file_location.
40836         (md_reader::read_name_or_nil): New decl.
40837         (md_reader::read_name_1): New decl.
40838         (md_reader::m_compact): New field.
40839         (noop_reader::noop_reader): Pass "false" for new "compact" param
40840         of rtx_reader.
40841         (rtx_reader::rtx_reader): Add new "compact" param.
40842         (rtx_reader::read_rtx_operand): Make virtual and convert return
40843         type from void to rtx.
40844         (rtx_reader::read_until): New decl.
40845         (rtx_reader::handle_any_trailing_information): New virtual function.
40846         (rtx_reader::postprocess): New virtual function.
40847         (rtx_reader::finalize_string): New virtual function.
40848         (rtx_reader::m_in_call_function_usage): New field.
40849         (rtx_reader::m_reuse_rtx_by_id): New field.
40850         * read-rtl-function.c: New file.
40851         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
40852         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
40853         (selftest::verify_three_block_rtl_cfg): New decl.
40854         * read-rtl-function.h: New file.
40855         * read-rtl.c: Potentially include config.h rather than bconfig.h.
40856         For host, include function.h, memmodel.h, and emit-rtl.h.
40857         (one_time_initialization): New function.
40858         (struct compact_insn_name): New struct.
40859         (compact_insn_names): New array.
40860         (find_code): Handle insn codes in compact dumps.
40861         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
40862         (bind_subst_iter_and_attr): Likewise.
40863         (add_condition_to_string): Likewise.
40864         (add_condition_to_rtx): Likewise.
40865         (apply_attribute_uses): Likewise.
40866         (add_current_iterators): Likewise.
40867         (apply_iterators): Likewise.
40868         (initialize_iterators): Guard usage of apply_subst_iterator with
40869         #ifdef GENERATOR_FILE.
40870         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
40871         (md_reader::read_mapping): Likewise.
40872         (add_define_attr_for_define_subst): Likewise.
40873         (add_define_subst_attr): Likewise.
40874         (read_subst_mapping): Likewise.
40875         (check_code_iterator): Likewise.
40876         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
40877         logic to...
40878         (one_time_initialization): New function.
40879         (rtx_reader::read_until): New method.
40880         (read_flags): New function.
40881         (parse_reg_note_name): New function.
40882         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
40883         Handle reuse_rtx ids.
40884         Wrap iterator lookup within #ifdef GENERATOR_FILE.
40885         Add parsing support for RTL dumps, mirroring the special-cases in
40886         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
40887         values, and calling handle_any_trailing_information.
40888         (rtx_reader::read_rtx_operand): Convert return type from void
40889         to rtx, returning return_rtx.  Handle case 'e'.  Call
40890         finalize_string on XSTR and XTMPL fields.
40891         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
40892          "(nil)" values were omitted.  Call the postprocess vfunc on the
40893         return_rtx.
40894         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
40895         class ctor.  Initialize m_in_call_function_usage.  Call
40896         one_time_initialization.
40897         * rtl-tests.c (selftest::test_uncond_jump): Call
40898         set_new_first_and_last_insn.
40899         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
40900         * selftest-rtl.c: New file.
40901         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
40902         (selftest::get_insn_by_uid): New decl.
40903         * selftest-run-tests.c (selftest::run_tests): Call
40904         read_rtl_function_c_tests.
40905         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
40906         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
40907         dumps.
40908
40909 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
40910
40911         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
40912         operands in a special way.  Assert that pos+len <= mode precision.
40913
40914 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
40915
40916         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
40917         3 argument Alias with unlimited for the negative form.
40918         (fno-vect-cost-model): Removed.
40919
40920 2017-01-05  Martin Liska  <mliska@suse.cz>
40921
40922         * hsa-gen.c (gen_hsa_divmod): New function.
40923         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
40924
40925 2017-01-05  Martin Liska  <mliska@suse.cz>
40926
40927         PR pch/78970
40928         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
40929         header.
40930
40931 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
40932
40933         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
40934         small constant length operands.
40935
40936 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
40937
40938         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
40939         between loop iterations.
40940
40941 2017-01-05  Martin Liska  <mliska@suse.cz>
40942
40943         PR sanitizer/78815
40944         * gimplify.c (gimplify_decl_expr): Compare to
40945         asan_poisoned_variables instread of checking flags.
40946         (gimplify_target_expr): Likewise.
40947         (gimplify_expr): Likewise.
40948         (gimplify_function_tree): Conditionally initialize
40949         asan_poisoned_variables.
40950
40951 2017-01-04  Jeff Law  <law@redhat.com>
40952
40953         PR tree-optimizatin/78812
40954         * rtl.h (contains_mem_rtx_p): Prototype.
40955         * ifcvt.c (containts_mem_rtx_p): Move from here to...
40956         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
40957         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
40958         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
40959         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
40960
40961 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40962
40963         * input.c (assert_char_at_range): Default-initialize actual_range.
40964
40965 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40966
40967         * df-scan.c (df_ref_create_structure): Make regno unsigned,
40968         to match the caller.
40969
40970 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40971
40972         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
40973         insns after final jump in test to emit dummy move.
40974
40975 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40976
40977         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
40978         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
40979
40980 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40981
40982         * multiple_target.c (create_dispatcher_calls): Init e_next.
40983         * tree-ssa-loop-split.c (split_loop): Init border.
40984         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
40985         scalar_type.
40986
40987 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
40988
40989         PR target/71977
40990         PR target/70568
40991         PR target/78823
40992         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
40993         (altivec_register_operand): Do not return true if the operand
40994         contains a SUBREG mixing SImode and SFmode.
40995         (vsx_register_operand): Likewise.
40996         (vsx_reg_sfsubreg_ok): New predicate.
40997         (vfloat_operand): Do not return true if the operand contains a
40998         SUBREG mixing SImode and SFmode.
40999         (vint_operand): Likewise.
41000         (vlogical_operand): Likewise.
41001         (gpc_reg_operand): Likewise.
41002         (int_reg_operand): Likewise.
41003         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
41004         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
41005         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
41006         SImode and SFmode.
41007         (rs6000_emit_move_si_sf_subreg): New helper function.
41008         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
41009         fixup SUBREGs involving SImode and SFmode.
41010         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
41011         numbers for the new peephole2 optimization.
41012         (peephole2 for SFmode unions): New peephole2 to optimize cases in
41013         the GLIBC math library that do AND/IOR/XOR operations on single
41014         precision floating point.
41015         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
41016         target macros to say whether we need to avoid SUBREGs mixing
41017         SImode and SFmode.
41018         (TARGET_ALLOW_SF_SUBREG): Likewise.
41019         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
41020         (UNSPEC_SI_FROM_SF): Likewise.
41021         (iorxor): Change spacing.
41022         (and_ior_xor): New iterator for AND, IOR, and XOR.
41023         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
41024         (movdi_from_sf_zero_ext): Likewise.
41025         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
41026         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
41027         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
41028         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
41029         (fms<mode>4): Likewise.
41030         (fnma<mode>4): Likewise.
41031         (fnms<mode>4): Likewise.
41032         (nfma<mode>4): Likewise.
41033         (nfms<mode>4): Likewise.
41034
41035 2017-01-04  Marek Polacek  <polacek@redhat.com>
41036
41037         PR c++/64767
41038         * doc/invoke.texi: Document -Wpointer-compare.
41039
41040 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41041
41042         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
41043         RejectNegative.
41044
41045         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
41046         descriptions for -gdwarf-5 and emit them as uleb128 instead of
41047         2-byte data.
41048
41049 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
41050
41051         PR target/78056
41052         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
41053         documentation of the powerpc_popcntb_ok attribute.
41054         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
41055         code to issue warning messages if a requested CPU configuration is
41056         not supported by the binary (assembler and loader) toolchain.
41057         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
41058         made to define a built-in function that has been disabled.
41059         (paired_init_builtins): Add assertion to prevent ICE if attempt is
41060         made to define a built-in function that has been disabled.
41061         (altivec_init_builtins): Add comment explaining why definition
41062         of the DST built-in functions is not preceded by an assertion
41063         check.  Add assertions to prevent ICE if attempts are made to
41064         define an altivec predicate or an abs* built-in function that has
41065         been disabled.
41066         (htm_init_builtins): Add comment explaining why definition of the
41067         htm built-in functions is not preceded by an assertion check.
41068
41069 2017-01-04  Jeff Law  <law@redhat.com>
41070
41071         PR tree-optimizatin/67955
41072         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
41073         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
41074         the points-to solution does not include pt_null.  Use DECL_PT_UID
41075         unconditionally.
41076
41077 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
41078
41079         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
41080         Use gen_int_mode instead of gen_lopwart for const_int operands.
41081
41082 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41083
41084         PR tree-optimization/71563
41085         * match.pd: Simplify X << Y into X if Y is known to be 0 or
41086         out of range value - has low bits known to be zero.
41087
41088 2017-01-04  Alan Modra  <amodra@gmail.com>
41089
41090         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
41091         * configure: Regenerate.
41092         * config.in: Regenerate.
41093
41094 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41095
41096         PR bootstrap/77569
41097         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
41098         a substring of the message, but strcmp with the whole message.  Ifdef
41099         ENABLE_NLS, translate the message first using dgettext.
41100
41101 2017-01-03  Jeff Law  <law@redhat.com>
41102
41103         PR tree-optimizatin/78856
41104         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
41105         (mark_threaded_blocks): Remove code to truncate thread paths that
41106         cross multiple loop headers.  Instead invalidate the cached loop
41107         iteration information and handle case of a thread path walking
41108         into an irreducible region.
41109
41110 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
41111
41112         PR target/78900
41113         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
41114         assertions.  Add support for doing the signbit if the IEEE 128-bit
41115         floating point value is in a GPR.
41116         * config/rs6000/rs6000.md (Fsignbit): Delete.
41117         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
41118         Update the length attribute if the value is in a GPR.
41119         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
41120         the sign or zero extension instruction, since the value is always 0/1.
41121         (signbit<mode>2_dm2): Delete using <Fsignbit>.
41122
41123         PR target/78953
41124         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
41125         extracting SImode to a GPR register so that we can generate a
41126         store, limit the vector to be in a traditional Altivec register
41127         for the vextuwrx instruction.
41128
41129 2017-01-03  Ian Lance Taylor  <iant@google.com>
41130
41131         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
41132
41133 2017-01-03  Martin Sebor  <msebor@redhat.com>
41134
41135         PR tree-optimization/78696
41136         * gimple-ssa-sprintf.c (format_floating): Correct handling of
41137         precision.  Use MPFR for %f for greater fidelity.  Correct handling
41138         of %g.
41139         (pass_sprintf_length::compute_format_length): Set width and precision
41140         specified by asrerisk to void_node for vararg functions.
41141         (try_substitute_return_value): Adjust dump output.
41142
41143 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
41144
41145         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
41146
41147 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
41148
41149         * doc/invoke.texi (SPARC options): Document -mlra as the default.
41150         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
41151         -mlra/-mno-lra was passed to the compiler.
41152
41153 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
41154
41155         PR rtl-optimization/65618
41156         * emit-rtl.c (try_split): Move initialization of "before" and
41157         "after" to just before the call to emit_insn_after_setloc.
41158
41159 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
41160
41161         * doc/md.texi (Standard Names): Remove reference to Java frontend.
41162
41163 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
41164
41165         * dwarf2out.c (gen_enumeration_type_die): When
41166         -gno-strict-dwarf, add a DW_AT_encoding attribute.
41167
41168 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
41169
41170         PR tree-optimization/78965
41171         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
41172         Change first argument from const call_info & to call_info &.  For %n
41173         set info.nowrite to false.
41174
41175         PR middle-end/78901
41176         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
41177         possibly throwing calls.
41178
41179         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
41180         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
41181         and fns handling, rather than in a separate case SSA_NAME.
41182
41183 2017-01-02  Jeff Law  <law@redhat.com>
41184
41185         * config/darwin-driver.c (darwin_driver_init): Const-correctness
41186         fixes for first_period and second_period variables.
41187
41188 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
41189
41190         PR target/78967
41191         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
41192         (*insvqi_1): New insn pattern.
41193         (*insvqi_1_mem_rex64): Ditto.
41194         (*insvqi_2): Ditto.
41195         (*insvqi_3): Rename from *insvqi.
41196
41197         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
41198
41199 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
41200
41201         * doc/cfg.texi (Edges): Remove reference to Java.
41202         (Maintaining the CFG): Ditto.
41203
41204 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41205
41206         PR middle-end/77674
41207         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
41208         transparent aliases.
41209
41210 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41211
41212         PR middle-end/77484
41213         * predict.def (PRED_CALL): Update hitrate.
41214         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
41215         * predict.c (tree_estimate_probability_bb): Split CALL predictor
41216         into direct/indirect/polymorphic variants.
41217
41218 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
41219
41220         Update copyright years.
41221
41222         * gcc.c (process_command): Update copyright notice dates.
41223         * gcov-dump.c (print_version): Ditto.
41224         * gcov.c (print_version): Ditto.
41225         * gcov-tool.c (print_version): Ditto.
41226         * gengtype.c (create_file): Ditto.
41227         * doc/cpp.texi: Bump @copying's copyright year.
41228         * doc/cppinternals.texi: Ditto.
41229         * doc/gcc.texi: Ditto.
41230         * doc/gccint.texi: Ditto.
41231         * doc/gcov.texi: Ditto.
41232         * doc/install.texi: Ditto.
41233         * doc/invoke.texi: Ditto.
41234 \f
41235 Copyright (C) 2017 Free Software Foundation, Inc.
41236
41237 Copying and distribution of this file, with or without modification,
41238 are permitted in any medium without royalty provided the copyright
41239 notice and this notice are preserved.