poly_int: argument sizes
[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         * target.def (return_pops_args): Treat both the input and output
6         sizes as poly_int64s rather than HOST_WIDE_INTS.
7         * targhooks.h (default_return_pops_args): Update accordingly.
8         * targhooks.c (default_return_pops_args): Likewise.
9         * doc/tm.texi: Regenerate.
10         * emit-rtl.h (incoming_args): Change pops_args, size and
11         outgoing_args_size from int to poly_int64_pod.
12         * function.h (expr_status): Change x_pending_stack_adjust and
13         x_stack_pointer_delta from int to poly_int64.
14         (args_size::constant): Change from HOST_WIDE_INT to poly_int64.
15         (ARGS_SIZE_RTX): Update accordingly.
16         * calls.c (highest_outgoing_arg_in_use): Change from int to
17         unsigned int.
18         (stack_usage_watermark, stored_args_watermark): New variables.
19         (stack_region_maybe_used_p, mark_stack_region_used): New functions.
20         (emit_call_1): Change the stack_size and rounded_stack_size
21         parameters from HOST_WIDE_INT to poly_int64.  Track n_popped
22         as a poly_int64.
23         (save_fixed_argument_area): Check stack_usage_watermark.
24         (initialize_argument_information): Change old_pending_adj from
25         a HOST_WIDE_INT * to a poly_int64_pod *.
26         (compute_argument_block_size): Return the size as a poly_int64
27         rather than an int.
28         (finalize_must_preallocate): Track polynomial argument sizes.
29         (compute_argument_addresses): Likewise.
30         (internal_arg_pointer_based_exp): Track polynomial offsets.
31         (mem_overlaps_already_clobbered_arg_p): Rename to...
32         (mem_might_overlap_already_clobbered_arg_p): ...this and take the
33         size as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
34         Check stored_args_used_watermark.
35         (load_register_parameters): Update accordingly.
36         (check_sibcall_argument_overlap_1): Likewise.
37         (combine_pending_stack_adjustment_and_call): Take the unadjusted
38         args size as a poly_int64 rather than an int.  Return a bool
39         indicating whether the optimization was possible and return
40         the new adjustment by reference.
41         (check_sibcall_argument_overlap): Track polynomail argument sizes.
42         Update stored_args_watermark.
43         (can_implement_as_sibling_call_p): Handle polynomial argument sizes.
44         (expand_call): Likewise.  Maintain stack_usage_watermark and
45         stored_args_watermark.  Update calls to
46         combine_pending_stack_adjustment_and_call.
47         (emit_library_call_value_1): Handle polynomial argument sizes.
48         Call stack_region_maybe_used_p and mark_stack_region_used.
49         Maintain stack_usage_watermark.
50         (store_one_arg): Likewise.  Update call to
51         mem_overlaps_already_clobbered_arg_p.
52         * config/arm/arm.c (arm_output_function_prologue): Add a cast to
53         HOST_WIDE_INT.
54         * config/avr/avr.c (avr_outgoing_args_size): Likewise.
55         * config/microblaze/microblaze.c (microblaze_function_prologue):
56         Likewise.
57         * config/cr16/cr16.c (cr16_return_pops_args): Update for new
58         TARGET_RETURN_POPS_ARGS interface.
59         (cr16_compute_frame, cr16_initial_elimination_offset): Add casts
60         to HOST_WIDE_INT.
61         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
62         * config/i386/i386.c (ix86_return_pops_args): Update for new
63         TARGET_RETURN_POPS_ARGS interface.
64         (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT.
65         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
66         * config/m68k/m68k.c (m68k_return_pops_args): Update for new
67         TARGET_RETURN_POPS_ARGS interface.
68         * config/vax/vax.c (vax_return_pops_args): Likewise.
69         * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64.
70         (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size.
71         * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise.
72         * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
73         * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
74         * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise.
75         * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
76         * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
77         * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise.
78         * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust
79         and x_stack_pointer_delta from int to poly_int64.
80         * dojump.c (do_pending_stack_adjust): Update accordingly.
81         * explow.c (allocate_dynamic_stack_space): Handle polynomial
82         stack_pointer_deltas.
83         * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64.
84         (pad_to_arg_alignment): Track polynomial offsets.
85         (assign_parm_find_stack_rtl): Likewise.
86         (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes.
87         * toplev.c (output_stack_usage): Update reference to
88         current_function_pushed_stack_size.
89
90 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
91             Alan Hayward  <alan.hayward@arm.com>
92             David Sherwood  <david.sherwood@arm.com>
93
94         * function.c (in_arg_offset, var_offset, dynamic_offset)
95         (out_arg_offset, cfa_offset): Change from int to poly_int64.
96         (instantiate_new_reg): Return the new offset as a poly_int64_pod
97         rather than a HOST_WIDE_INT.
98         (instantiate_virtual_regs_in_rtx): Track polynomial offsets.
99         (instantiate_virtual_regs_in_insn): Likewise.
100
101 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
102             Alan Hayward  <alan.hayward@arm.com>
103             David Sherwood  <david.sherwood@arm.com>
104
105         * rtl.h (get_args_size, add_args_size_note): New functions.
106         (find_args_size_adjust): Return a poly_int64 rather than a
107         HOST_WIDE_INT.
108         (fixup_args_size_notes): Likewise.  Make the same change to the
109         end_args_size parameter.
110         * rtlanal.c (get_args_size, add_args_size_note): New functions.
111         * builtins.c (expand_builtin_trap): Use add_args_size_note.
112         * calls.c (emit_call_1): Likewise.
113         * explow.c (adjust_stack_1): Likewise.
114         * cfgcleanup.c (old_insns_match_p): Update use of
115         find_args_size_adjust.
116         * combine.c (distribute_notes): Track polynomial arg sizes.
117         * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size,
118         end_true_args_size, beg_delay_args_size and end_delay_args_size
119         from HOST_WIDE_INT to poly_int64.
120         (add_cfi_args_size): Take the args_size as a poly_int64 rather
121         than a HOST_WIDE_INT.
122         (notice_args_size, notice_eh_throw, maybe_record_trace_start)
123         (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track
124         polynomial arg sizes.
125         * emit-rtl.c (try_split): Use get_args_size.
126         * recog.c (peep2_attempt): Likewise.
127         * reload1.c (reload_as_needed): Likewise.
128         * expr.c (find_args_size_adjust): Return the adjustment as a
129         poly_int64 rather than a HOST_WIDE_INT.
130         (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT
131         to a poly_int64 and change the return type in the same way.
132         (emit_single_push_insn): Track polynomial arg sizes.
133
134 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
135             Alan Hayward  <alan.hayward@arm.com>
136             David Sherwood  <david.sherwood@arm.com>
137
138         * expr.h (push_block, emit_push_insn): Change the "extra" parameter
139         from HOST_WIDE_INT to poly_int64.
140         * expr.c (push_block, emit_push_insn): Likewise.
141
142 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
143             Alan Hayward  <alan.hayward@arm.com>
144             David Sherwood  <david.sherwood@arm.com>
145
146         * function.h (frame_space): Change start and length from HOST_WIDE_INT
147         to poly_int64.
148         (get_frame_size): Return the size as a poly_int64 rather than a
149         HOST_WIDE_INT.
150         (frame_offset_overflow): Take the offset as a poly_int64 rather
151         than a HOST_WIDE_INT.
152         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
153         (assign_stack_temp): Likewise for the size.
154         * function.c (get_frame_size): Return a poly_int64 rather than
155         a HOST_WIDE_INT.
156         (frame_offset_overflow): Take the offset as a poly_int64 rather
157         than a HOST_WIDE_INT.
158         (try_fit_stack_local): Take the start, length and size as poly_int64s
159         rather than HOST_WIDE_INTs.  Return the offset as a poly_int64_pod
160         rather than a HOST_WIDE_INT.
161         (add_frame_space): Take the start and end as poly_int64s rather than
162         HOST_WIDE_INTs.
163         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
164         (assign_stack_temp): Likewise for the size.
165         (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT
166         to poly_int64.
167         (find_temp_slot_from_address): Handle polynomial offsets.
168         (combine_temp_slots): Likewise.
169         * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT
170         to poly_int64.
171         * cfgexpand.c (alloc_stack_frame_space): Return the offset as a
172         poly_int64 rather than a HOST_WIDE_INT.
173         (expand_one_stack_var_at): Take the offset as a poly_int64 rather
174         than a HOST_WIDE_INT.
175         (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle
176         polynomial frame offsets.
177         * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size
178         as a poly_int64 rather than an int.
179         * config/m32r/m32r.c (m32r_compute_frame_size): Likewise.
180         * config/v850/v850-protos.h (compute_frame_size): Likewise.
181         * config/v850/v850.c (compute_frame_size): Likewise.
182         * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise.
183         * config/xtensa/xtensa.c (compute_frame_size): Likewise.
184         * config/pa/pa-protos.h (pa_compute_frame_size): Likewise.
185         * config/pa/pa.c (pa_compute_frame_size): Likewise.
186         * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64
187         rather than a HOST_WIDE_INT.
188         * explow.c (get_dynamic_stack_base): Likewise.
189         * final.c (final_start_function): Use the constant lower bound
190         of the frame size for -Wframe-larger-than.
191         * ira.c (do_reload): Adjust for new get_frame_size return type.
192         * lra.c (lra): Likewise.
193         * reload1.c (reload): Likewise.
194         * config/avr/avr.c (avr_asm_function_end_prologue): Likewise.
195         * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise.
196         * rtlanal.c (get_initial_register_offset): Return the offset as
197         a poly_int64 rather than a HOST_WIDE_INT.
198
199 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
200             Alan Hayward  <alan.hayward@arm.com>
201             David Sherwood  <david.sherwood@arm.com>
202
203         * reload1.c (elim_table): Change initial_offset, offset and
204         previous_offset from HOST_WIDE_INT to poly_int64_pod.
205         (offsets_at): Change the target array's element type from
206         HOST_WIDE_INT to poly_int64_pod.
207         (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn)
208         (elimination_costs_in_insn, update_eliminable_offsets)
209         (verify_initial_elim_offsets, set_offsets_for_label)
210         (init_eliminable_invariants): Update after above changes.
211
212 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
213             Alan Hayward  <alan.hayward@arm.com>
214             David Sherwood  <david.sherwood@arm.com>
215
216         * reload.h (reload::inc): Change from an int to a poly_int64_pod.
217         * reload.c (combine_reloads, debug_reload_to_stream): Likewise.
218         (decomposition): Change start and end from HOST_WIDE_INT
219         to poly_int64_pod.
220         (decompose, immune_p): Update accordingly.
221         (find_inc_amount): Return a poly_int64 rather than an int.
222         * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64
223         rather than an int.
224
225 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
226             Alan Hayward  <alan.hayward@arm.com>
227             David Sherwood  <david.sherwood@arm.com>
228
229         * tree.h (get_inner_reference): Return the bitsize and bitpos
230         as poly_int64_pods rather than HOST_WIDE_INT.
231         * fold-const.h (ptr_difference_const): Return the pointer difference
232         as a poly_int64_pod rather than a HOST_WIDE_INT.
233         * expr.c (get_inner_reference): Return the bitsize and bitpos
234         as poly_int64_pods rather than HOST_WIDE_INT.
235         (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial
236         offsets and sizes.
237         * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64
238         rather than a HOST_WIDE_INT.  Update call to get_inner_reference.
239         (optimize_bit_field_compare): Update call to get_inner_reference.
240         (decode_field_reference): Likewise.
241         (fold_unary_loc): Track polynomial offsets and sizes.
242         (split_address_to_core_and_offset): Return the bitpos as a
243         poly_int64_pod rather than a HOST_WIDE_INT.
244         (ptr_difference_const): Likewise for the pointer difference.
245         * asan.c (instrument_derefs): Track polynomial offsets and sizes.
246         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
247         * dbxout.c (dbxout_expand_expr): Likewise.
248         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref)
249         (loc_list_from_tree_1, fortran_common): Likewise.
250         * gimple-laddress.c (pass_laddress::execute): Likewise.
251         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise.
252         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
253         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
254         * tree-affine.c (tree_to_aff_combination): Likewise.
255         (get_inner_reference_aff): Likewise.
256         * tree-data-ref.c (split_constant_offset_1): Likewise.
257         (dr_analyze_innermost): Likewise.
258         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
259         * tree-sra.c (ipa_sra_check_caller): Likewise.
260         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
261         * ubsan.c (maybe_instrument_pointer_overflow): Likewise.
262         (instrument_bool_enum_load, instrument_object_size): Likewise.
263         * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call
264         to get_inner_reference.
265         * hsa-gen.c (gen_hsa_addr): Likewise.
266         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
267         * tsan.c (instrument_expr): Likewise.
268         * match.pd: Update call to ptr_difference_const.
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         * fold-const.c (fold_comparison): Track sizes and offsets as
275         poly_int64s rather than HOST_WIDE_INTs when folding address
276         comparisons.
277
278 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
279             Alan Hayward  <alan.hayward@arm.com>
280             David Sherwood  <david.sherwood@arm.com>
281
282         * expr.h (get_bit_range): Return the bitstart and bitend as
283         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Return the bitpos
284         as a poly_int64 rather than a HOST_WIDE_INT.
285         * expr.c (get_bit_range): Likewise.
286         (expand_assignment): Update call accordingly.
287         * fold-const.c (optimize_bit_field_compare): Likewise.
288
289 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
290             Alan Hayward  <alan.hayward@arm.com>
291             David Sherwood  <david.sherwood@arm.com>
292
293         * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum.
294         (aarch64_legitimate_address_p): Use it instead of an rtx code,
295         as an optional final parameter.
296         * config/aarch64/aarch64.c (aarch64_classify_address): Likewise.
297         (aarch64_legitimate_address_p): Likewise.
298         (aarch64_print_address_internal): Take an aarch64_addr_query_type
299         instead of an rtx code.
300         (aarch64_address_valid_for_prefetch_p): Update calls accordingly.
301         (aarch64_legitimate_address_hook_p): Likewise.
302         (aarch64_print_ldpstp_address): Likewise.
303         (aarch64_print_operand_address): Likewise.
304         (aarch64_address_cost): Likewise.
305         * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise.
306         * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise.
307         (aarch64_mem_pair_lanes_operand): Likewise.
308
309 2017-12-20  Richard Biener  <rguenther@suse.de>
310
311         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call
312         update_stmt_if_modified.
313
314 2017-12-20  Wilco Dijkstra  <wdijkstr@arm.com>
315
316         PR tree-optimization/83491
317         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME
318         before walking uses.  Improve coding style and comments.
319
320 2017-12-20  Tom de Vries  <tom@codesourcery.com>
321
322         * gimple-fold.c (fold_internal_goacc_dim): Simplify.
323
324 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
325
326         PR ipa/83506
327         * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for
328         todo_flags_finish.
329         (pass_ipa_free_fn_summary): Add small_p private data member,
330         initialize to false in the ctor.
331         (pass_ipa_free_fn_summary::clone,
332         pass_ipa_free_fn_summary::set_pass_param,
333         pass_ipa_free_fn_summary::gate): New methods.
334         (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions
335         | TODO_dump_symtab if small_p.
336         * passes.def: Add true parm for the existing pass_ipa_free_fn_summary
337         entry and add another instance of the pass with false parm after
338         ipa-pure-const.
339         * ipa-pure-const.c (pass_ipa_pure_const): Don't call
340         ipa_free_fn_summary here.
341
342 2017-12-20  Paolo Carlini  <paolo.carlini@oracle.com>
343
344         * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check.
345
346 2017-12-20  Martin Sebor  <msebor@redhat.com>
347
348         PR testsuite/83131
349         * builtins.c (expand_builtin_strlen): Use get_callee_fndecl.
350         (expand_builtin_strcmp): Call maybe_warn_nonstring_arg.
351         (expand_builtin_strncmp): Same.
352
353 2017-12-20  Alexandre Oliva <aoliva@redhat.com>
354
355         PR bootstrap/83396
356         * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
357         allowed debug stmts before labels.
358         (expand_gimple_basic_block): Likewise.
359         * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
360         * gimple-iterator.h (gsi_after_labels): Likewise.
361         * tree-cfgcleanup (remove_forwarder_block): Likewise, but
362         rename reused variable, and simplify using gsi_move_before.
363         * tree-ssa-tail-merge.c (find_duplicate): Likewise.
364         * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
365         (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
366         (gimple_verify_flow_info, gimple_block_label): Likewise.
367         (make_blocks): Move debug markers after adjacent labels.
368         * cfgrtl.c (skip_insns_after_block): Revert SFN changes that
369         allowed debug insns outside blocks.
370         * df-scan.c (df_insn_delete): Likewise.
371         * lra-constraints.c (update_ebb_live_info): Likewise.
372         * var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
373         (vt_initialize, delete_vta_debug_insns): Likewise.
374         (reemit_marker_as_note): Drop BB parm.  Adjust callers.
375
376 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
377             Alan Hayward  <alan.hayward@arm.com>
378             David Sherwood  <david.sherwood@arm.com>
379
380         * poly-int-types.h (round_down_to_byte_boundary): New macro.
381         (round_up_to_byte_boundary): Likewise.
382         * expr.h (get_bit_range): Add temporary shim.
383         * gimple-ssa-store-merging.c (store_operand_info): Change the
384         bitsize, bitpos, bitregion_start and bitregion_end fields from
385         unsigned HOST_WIDE_INT to poly_uint64.
386         (merged_store_group): Likewise load_align_base.
387         (compatible_load_p, compatible_load_p): Update accordingly.
388         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
389         (split_group, imm_store_chain_info::output_merged_store): Likewise.
390         (mem_valid_for_store_merging): Return the bitsize, bitpos,
391         bitregion_start and bitregion_end as poly_uint64s rather than
392         unsigned HOST_WIDE_INTs.  Track polynomial offsets internally.
393         (handled_load): Take the bitsize, bitpos,
394         bitregion_start and bitregion_end as poly_uint64s rather than
395         unsigned HOST_WIDE_INTs.
396         (pass_store_merging::process_store): Update call to
397         mem_valid_for_store_merging.
398
399 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
400             Alan Hayward  <alan.hayward@arm.com>
401             David Sherwood  <david.sherwood@arm.com>
402
403         * builtins.c (get_object_alignment_2): Track polynomial offsets
404         and sizes.  Update the alignment handling.
405
406 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
407             Alan Hayward  <alan.hayward@arm.com>
408             David Sherwood  <david.sherwood@arm.com>
409
410         * tree.h (get_inner_reference): Add a version that returns the
411         offset and size as poly_int64_pods rather than HOST_WIDE_INTs.
412         * cfgexpand.c (expand_debug_expr): Track polynomial offsets.  Simply
413         the case in which bitpos is not associated with the first byte.
414
415 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
416             Alan Hayward  <alan.hayward@arm.com>
417             David Sherwood  <david.sherwood@arm.com>
418
419         * tree-affine.h (get_inner_reference_aff): Return the size as a
420         poly_widest_int.
421         * tree-affine.c (get_inner_reference_aff): Likewise.
422         * tree-data-ref.c (dr_may_alias_p): Update accordingly.
423         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise.
424
425 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
426             Alan Hayward  <alan.hayward@arm.com>
427             David Sherwood  <david.sherwood@arm.com>
428
429         * fold-const.c (pointer_may_wrap_p): Take the offset as a
430         HOST_WIDE_INT rather than a poly_int64.
431
432 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
433             Alan Hayward  <alan.hayward@arm.com>
434             David Sherwood  <david.sherwood@arm.com>
435
436         * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from
437         HOST_WIDE_INT to poly_int64_pod.
438         (perform_symbolic_merge): Update accordingly.
439         (bswap_replace): Likewise.
440
441 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
442             Alan Hayward  <alan.hayward@arm.com>
443             David Sherwood  <david.sherwood@arm.com>
444
445         * tree-affine.h (aff_tree::offset): Change from widest_int
446         to poly_widest_int.
447         (wide_int_ext_for_comb): Delete.
448         (aff_combination_const, aff_comb_cannot_overlap_p): Take the
449         constants as poly_widest_int rather than widest_int.
450         (aff_combination_constant_multiple_p): Return the multiplier
451         as a poly_widest_int.
452         (aff_combination_zero_p, aff_combination_singleton_var_p): Handle
453         polynomial offsets.
454         * tree-affine.c (wide_int_ext_for_comb): Make original widest_int
455         version static and add an overload for poly_widest_int.
456         (aff_combination_const, aff_combination_add_cst)
457         (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take
458         the constants as poly_widest_int rather than widest_int.
459         (tree_to_aff_combination): Generalize INTEGER_CST case to
460         poly_int_tree_p.
461         (aff_combination_to_tree): Track offsets as poly_widest_ints.
462         (aff_combination_add_product, aff_combination_mult): Handle
463         polynomial offsets.
464         (aff_combination_constant_multiple_p): Return the multiplier
465         as a poly_widest_int.
466         * tree-predcom.c (determine_offset): Return the offset as a
467         poly_widest_int.
468         (split_data_refs_to_components, suitable_component_p): Update
469         accordingly.
470         (valid_initializer_p): Update call to
471         aff_combination_constant_multiple_p.
472         * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets.
473         * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step
474         as a poly_int64 rather than a HOST_WIDE_INT.
475         (get_address_cost): Handle polynomial offsets.
476         (iv_elimination_compare_lt): Likewise.
477         (rewrite_use_nonlinear_expr): Likewise.
478
479 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
480             Alan Hayward  <alan.hayward@arm.com>
481             David Sherwood  <david.sherwood@arm.com>
482
483         * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset
484         as a poly_int64_pod rather than a HOST_WIDE_INT.
485         (get_addr_base_and_unit_offset): Likewise.
486         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
487         (get_addr_base_and_unit_offset): Likewise.
488         * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT
489         to poly_int64 in example.
490         * fold-const.c (fold_binary_loc): Update call to
491         get_addr_base_and_unit_offset.
492         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
493         (maybe_canonicalize_mem_ref_addr): Likewise.
494         (gimple_fold_stmt_to_constant_1): Likewise.
495         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
496         Likewise.
497         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
498         * match.pd: Likewise.
499         * omp-low.c (lower_omp_target): Likewise.
500         * tree-sra.c (build_ref_for_offset): Likewise.
501         (build_debug_ref_for_model): Likewise.
502         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
503         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
504         * tree-ssa-ccp.c (optimize_memcpy): Likewise.
505         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
506         (constant_pointer_difference): Likewise.
507         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
508         * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise.
509         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
510         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
511         (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise.
512         (set_ssa_val_to): Likewise.
513         * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr)
514         (maybe_diag_stxncpy_trunc): Likewise.
515         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
516         * tree.c (build_simple_mem_ref_loc): Likewise.
517         (array_at_struct_end_p): Likewise.
518
519 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
520             Alan Hayward  <alan.hayward@arm.com>
521             David Sherwood  <david.sherwood@arm.com>
522
523         * tree-dfa.h (get_ref_base_and_extent): Return the base, size and
524         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
525         (get_ref_base_and_extent_hwi): Declare.
526         * tree-dfa.c (get_ref_base_and_extent): Return the base, size and
527         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
528         (get_ref_base_and_extent_hwi): New function.
529         * cfgexpand.c (expand_debug_expr): Update call to
530         get_ref_base_and_extent.
531         * dwarf2out.c (add_var_loc_to_decl): Likewise.
532         * gimple-fold.c (get_base_constructor): Return the offset as a
533         poly_int64_pod rather than a HOST_WIDE_INT.
534         (fold_const_aggregate_ref_1): Track polynomial sizes and offsets.
535         * ipa-polymorphic-call.c
536         (ipa_polymorphic_call_context::set_by_invariant)
537         (extr_type_from_vtbl_ptr_store): Track polynomial offsets.
538         (ipa_polymorphic_call_context::ipa_polymorphic_call_context)
539         (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi
540         rather than get_ref_base_and_extent.
541         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
542         * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func)
543         (get_ancestor_addr_info, determine_locally_known_aggregate_parts):
544         Likewise.
545         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update
546         call to get_ref_base_and_extent.
547         * tree-sra.c (create_access, get_access_for_expr): Likewise.
548         * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p)
549         (stmt_kills_ref_p): Likewise.
550         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
551         * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p):
552         Likewise.
553         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
554         Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent
555         when calling native_encode_expr.
556         * tree-ssa-structalias.c (get_constraint_for_component_ref): Update
557         call to get_ref_base_and_extent.
558         (do_structure_copy): Use get_ref_base_and_extent_hwi rather than
559         get_ref_base_and_extent.
560         * var-tracking.c (track_expr_p): Likewise.
561
562 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
563             Alan Hayward  <alan.hayward@arm.com>
564             David Sherwood  <david.sherwood@arm.com>
565
566         * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from
567         HOST_WIDE_INT to poly_int64_pod.
568         * ipa-param-manipulation.c (ipa_modify_call_arguments): Track
569         polynomail parameter offsets.
570
571 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
572             Alan Hayward  <alan.hayward@arm.com>
573             David Sherwood  <david.sherwood@arm.com>
574
575         * gengtype.c (main): Handle poly_int64_pod.
576         * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type.
577         (dw_cfi_oprnd::dw_cfi_cfa_loc): New field.
578         (dw_cfa_location::offset, dw_cfa_location::base_offset): Change
579         from HOST_WIDE_INT to poly_int64_pod.
580         * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise.
581         (copy_cfa): New function.
582         (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists.
583         (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc.
584         (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa)
585         (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr)
586         (initial_return_save): Treat offsets as poly_ints.
587         (def_cfa_0): Likewise.  Cache the CFA in dw_cfi_cfa_loc if either
588         offset is nonconstant.
589         (reg_save): Take the offset as a poly_int64.  Fall back to
590         DW_CFA_expression for nonconstant offsets.
591         (queue_reg_save): Take the offset as a poly_int64.
592         * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression.
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         * rtl.h (operand_subword, operand_subword_force): Take the offset
599         as a poly_uint64 an unsigned int.
600         * emit-rtl.c (operand_subword, operand_subword_force): Likewise.
601
602 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
603             Alan Hayward  <alan.hayward@arm.com>
604             David Sherwood  <david.sherwood@arm.com>
605
606         * doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
607         'p' format code.  Use INT_LIST rather than SUBREG as the example of
608         a code with an XINT and an XEXP.  Remove the implication that
609         accessing an rtx field using XINT is expected to work.
610         * rtl.def (SUBREG): Change format from "ei" to "ep".
611         * rtl.h (rtunion::rt_subreg): New field.
612         (XCSUBREG): New macro.
613         (SUBREG_BYTE): Use it.
614         (subreg_shape): Change offset from an unsigned int to a poly_uint16.
615         Update constructor accordingly.
616         (subreg_shape::operator ==): Update accordingly.
617         (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
618         than an unsigned int.
619         (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
620         a poly_uint64 rather than an unsigned int.
621         (subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
622         than an unsigned int.
623         (subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
624         (subreg_size_highpart_offset): Return a poly_uint64 rather than
625         an unsigned int.  Take the sizes as poly_uint64s.
626         (subreg_offset_from_lsb): Return a poly_uint64 rather than
627         an unsigned int.  Take the shift as a poly_uint64 rather than
628         an unsigned int.
629         (subreg_regno_offset, subreg_offset_representable_p): Take the offset
630         as a poly_uint64 rather than an unsigned int.
631         (simplify_subreg_regno): Likewise.
632         (byte_lowpart_offset): Return the memory offset as a poly_int64
633         rather than an int.
634         (subreg_memory_offset): Likewise.  Take the subreg offset as a
635         poly_uint64 rather than an unsigned int.
636         (simplify_subreg, simplify_gen_subreg, subreg_get_info)
637         (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
638         poly_uint64 rather than an unsigned int.
639         * rtl.c (rtx_format): Describe 'p' in comment.
640         (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
641         * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
642         offset as a poly_uint64 rather than an unsigned int.
643         (byte_lowpart_offset): Return the memory offset as a poly_int64
644         rather than an int.
645         (subreg_memory_offset): Likewise.  Take the subreg offset as a
646         poly_uint64 rather than an unsigned int.
647         (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
648         mode sizes as poly_uint64s rather than unsigned ints.  Return a
649         poly_uint64 rather than an unsigned int.
650         (subreg_lowpart_p): Treat subreg offsets as poly_ints.
651         (copy_insn_1): Handle 'p'.
652         * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
653         (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
654         an unsigned int.  Return the shift in the same way.
655         (subreg_lsb): Return the shift as a poly_uint64 rather than an
656         unsigned int.
657         (subreg_size_offset_from_lsb): Take the sizes and shift as
658         poly_uint64s rather than unsigned ints.  Return the offset as
659         a poly_uint64.
660         (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
661         (simplify_subreg_regno): Take the offset as a poly_uint64 rather than
662         an unsigned int.
663         * rtlhash.c (add_rtx): Handle 'p'.
664         * genemit.c (gen_exp): Likewise.
665         * gengenrtl.c (type_from_format, gendef): Likewise.
666         * gensupport.c (subst_pattern_match, get_alternatives_number)
667         (collect_insn_data, alter_predicate_for_insn, alter_constraints)
668         (subst_dup): Likewise.
669         * gengtype.c (adjust_field_rtx_def): Likewise.
670         * genrecog.c (find_operand, find_matching_operand, validate_pattern)
671         (match_pattern_2): Likewise.
672         (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
673         (rtx_test::subreg_field): New function.
674         (operator ==, safe_to_hoist_p, transition_parameter_type)
675         (print_nonbool_test, print_test): Handle SUBREG_FIELD.
676         * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
677         * genpeep.c (match_rtx): Likewise.
678         * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
679         (rtx_writer::print_rtx_operand): Handle 'p'.
680         (print_value): Handle SUBREG.
681         * read-rtl.c (apply_int_iterator): Likewise.
682         (rtx_reader::read_rtx_operand): Handle 'p'.
683         * alias.c (rtx_equal_for_memref_p): Likewise.
684         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
685         * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
686         as poly_ints.
687         * calls.c (expand_call): Likewise.
688         * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
689         (make_extraction, gen_lowpart_for_combine): Likewise.
690         * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
691         Likewise.
692         * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
693         rather than an unsigned int.  Treat subreg offsets as poly_ints.
694         (exp_equiv_p): Handle 'p'.
695         (hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
696         (equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
697         * dse.c (find_shift_sequence): Likewise.
698         * dwarf2out.c (rtl_for_decl_location): Likewise.
699         * expmed.c (extract_low_bits): Likewise.
700         * expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
701         (expand_expr_real_2): Likewise.
702         * final.c (alter_subreg): Likewise.
703         (leaf_renumber_regs_insn): Handle 'p'.
704         * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
705         Treat subreg offsets as poly_ints.
706         * fwprop.c (forward_propagate_and_simplify): Likewise.
707         * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
708         * ira.c (get_subreg_tracking_sizes): Likewise.
709         * ira-conflicts.c (go_through_subreg): Likewise.
710         * ira-lives.c (process_single_reg_class_operands): Likewise.
711         * jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
712         * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
713         as a poly_uint64 rather than an unsigned int.
714         (simplify_gen_subreg_concatn, resolve_simple_move): Treat
715         subreg offsets as poly_ints.
716         * lra-constraints.c (operands_match_p): Handle 'p'.
717         (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
718         * lra-spills.c (assign_mem_slot): Likewise.
719         * postreload.c (move2add_valid_value_p): Likewise.
720         * recog.c (general_operand, indirect_operand): Likewise.
721         * regcprop.c (copy_value, maybe_mode_change): Likewise.
722         (copyprop_hardreg_forward_1): Likewise.
723         * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
724         (record_subregs_of_mode): Likewise.
725         * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
726         * reload.c (operands_match_p): Handle 'p'.
727         (find_reloads_subreg_address): Treat subreg offsets as poly_ints.
728         * reload1.c (alter_reg, choose_reload_regs): Likewise.
729         (compute_reload_subreg_offset): Likewise, and return an poly_int64.
730         * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
731         (test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
732         (simplify_const_poly_int_tests<N>::run): Likewise.
733         (simplify_subreg, simplify_gen_subreg): Take the subreg offset as
734         a poly_uint64 rather than an unsigned int.
735         * valtrack.c (debug_lowpart_subreg): Likewise.
736         * var-tracking.c (var_lowpart): Likewise.
737         (loc_cmp): Handle 'p'.
738
739 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
740             Alan Hayward  <alan.hayward@arm.com>
741             David Sherwood  <david.sherwood@arm.com>
742
743         * ira.c (get_subreg_tracking_sizes): New function.
744         (init_live_subregs): Take an integer size rather than a register.
745         (build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
746         to init_live_subregs.
747
748 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
749             Alan Hayward  <alan.hayward@arm.com>
750             David Sherwood  <david.sherwood@arm.com>
751
752         * expr.c (store_constructor_field): Change bitsize from a
753         unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a
754         HOST_WIDE_INT to a poly_int64.
755         (store_constructor): Change size from a HOST_WIDE_INT to
756         a poly_int64.
757         (store_field): Likewise bitsize and bitpos.
758
759 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
760             Alan Hayward  <alan.hayward@arm.com>
761             David Sherwood  <david.sherwood@arm.com>
762
763         * expmed.h (store_bit_field): Change bitregion_start and
764         bitregion_end from unsigned HOST_WIDE_INT to poly_uint64.
765         * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p)
766         (store_bit_field_1, store_integral_bit_field, store_bit_field)
767         (store_fixed_bit_field, store_split_bit_field): Likewise.
768         * expr.c (store_constructor_field, store_field): Likewise.
769         (optimize_bitfield_assignment_op): Likewise.  Make the same change
770         to bitsize and bitpos.
771         * machmode.h (bit_field_mode_iterator): Change m_bitregion_start
772         and m_bitregion_end from HOST_WIDE_INT to poly_int64.  Make the
773         same change in the constructor arguments.
774         (get_best_mode): Change bitregion_start and bitregion_end from
775         unsigned HOST_WIDE_INT to poly_uint64.
776         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
777         Change bitregion_start and bitregion_end from HOST_WIDE_INT to
778         poly_int64.
779         (bit_field_mode_iterator::next_mode): Update for new types
780         of m_bitregion_start and m_bitregion_end.
781         (get_best_mode): Change bitregion_start and bitregion_end from
782         unsigned HOST_WIDE_INT to poly_uint64.
783
784 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
785             Alan Hayward  <alan.hayward@arm.com>
786             David Sherwood  <david.sherwood@arm.com>
787
788         * rtl.h (simplify_gen_subreg): Add a temporary overload that
789         accepts poly_uint64 offsets.
790         * expmed.h (extract_bit_field): Take bitsize and bitnum as
791         poly_uint64s rather than unsigned HOST_WIDE_INTs.
792         * expmed.c (lowpart_bit_field_p): Likewise.
793         (extract_bit_field_as_subreg): New function, split out from...
794         (extract_bit_field_1): ...here.  Take bitsize and bitnum as
795         poly_uint64s rather than unsigned HOST_WIDE_INTs.  For vector
796         extractions, check that BITSIZE matches the size of the extracted
797         value and that BITNUM is an exact multiple of that size.
798         If all else fails, try forcing the value into memory if
799         BITNUM is variable, and adjusting the address so that the
800         offset is constant.  Split the part that can only handle constant
801         bitsize and bitnum out into...
802         (extract_integral_bit_field): ...this new function.
803         (extract_bit_field): Take bitsize and bitnum as poly_uint64s
804         rather than unsigned HOST_WIDE_INTs.
805
806 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
807             Alan Hayward  <alan.hayward@arm.com>
808             David Sherwood  <david.sherwood@arm.com>
809
810         * expmed.h (store_bit_field): Take bitsize and bitnum as
811         poly_uint64s rather than unsigned HOST_WIDE_INTs.
812         * expmed.c (simple_mem_bitfield_p): Likewise.  Add a parameter
813         that returns the byte size.
814         (store_bit_field_1): Take bitsize and bitnum as
815         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Update call
816         to simple_mem_bitfield_p.  Split the part that can only handle
817         constant bitsize and bitnum out into...
818         (store_integral_bit_field): ...this new function.
819         (store_bit_field): Take bitsize and bitnum as poly_uint64s rather
820         than unsigned HOST_WIDE_INTs.
821         (extract_bit_field_1): Update call to simple_mem_bitfield_p.
822
823 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
824             Alan Hayward  <alan.hayward@arm.com>
825             David Sherwood  <david.sherwood@arm.com>
826
827         * lra-int.h (lra_reg): Change offset from int to poly_int64.
828         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
829         to poly_int64.
830         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
831         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
832         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
833         offset as a poly_int64 rather than an int.
834         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
835         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
836         * lra-constraints.c (equiv_address_substitution): Track offsets
837         as poly_int64s.
838         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
839         (curr_insn_transform): Handle the new form of sp_offset.
840         * lra-eliminations.c (lra_elim_table): Change previous_offset
841         and offset from HOST_WIDE_INT to poly_int64.
842         (print_elim_table, update_reg_eliminate): Update accordingly.
843         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
844         (get_elimination): Update accordingly.
845         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
846         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
847         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
848         poly_int64 offsets generally.
849         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
850         (mark_not_eliminable, init_elimination): Update accordingly.
851         (remove_reg_equal_offset_note): Return a bool and pass the new
852         offset back by pointer as a poly_int64.
853         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
854         rather than a HOST_WIDE_INT.
855         (do_remat): Track offsets poly_int64s.
856         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
857
858 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
859             Alan Hayward  <alan.hayward@arm.com>
860             David Sherwood  <david.sherwood@arm.com>
861
862         * rtl.h (mem_attrs): Add a default constructor.  Change size and
863         offset from HOST_WIDE_INT to poly_int64.
864         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
865         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
866         (widen_memory_access): Take the sizes and offsets as poly_int64s
867         rather than HOST_WIDE_INTs.
868         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
869         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
870         and ints.
871         (adjust_offset_for_component_ref): Change the offset from a
872         HOST_WIDE_INT to a poly_int64.
873         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
874         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
875         * dce.c (find_call_stack_args): Likewise.
876         * dse.c (record_store): Likewise.
877         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
878         * print-rtl.c (rtx_writer::print_rtx): Likewise.
879         * read-rtl-function.c (test_loading_mem): Likewise.
880         * rtlanal.c (may_trap_p_1): Likewise.
881         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
882         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
883         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
884         (mem_attrs::mem_attrs): New function.
885         (set_mem_attributes_minus_bitpos): Change bitpos from a
886         HOST_WIDE_INT to poly_int64.
887         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
888         (clear_mem_offset, clear_mem_size, change_address)
889         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
890         initialize mem_attrs.
891         (set_mem_offset, set_mem_size, adjust_address_1)
892         (adjust_automodify_address_1, offset_address, widen_memory_access):
893         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
894
895 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
896             Alan Hayward  <alan.hayward@arm.com>
897             David Sherwood  <david.sherwood@arm.com>
898
899         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
900         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
901         rather than 0 to represent an unknown size.  Assert that the size
902         is known when the mode isn't BLKmode.
903         (may_trap_p_1): Use -1 for unknown sizes.
904         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
905
906 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
907             Alan Hayward  <alan.hayward@arm.com>
908             David Sherwood  <david.sherwood@arm.com>
909
910         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
911         to poly_int64.  Update commentary for positions_needed.large.
912         (read_info_type): Change offset and width from HOST_WIDE_INT
913         to poly_int64.
914         (set_usage_bits): Likewise.
915         (canon_address): Return the offset as a poly_int64 rather than
916         a HOST_WIDE_INT.  Use strip_offset_and_add.
917         (set_all_positions_unneeded, any_positions_needed_p): Use
918         positions_needed.large to track stores with non-constant widths.
919         (all_positions_needed_p): Likewise.  Take the offset and width
920         as poly_int64s rather than ints.  Assert that rhs is nonnull.
921         (record_store): Cope with non-constant offsets and widths.
922         Nullify the rhs of an earlier store if we can't tell which bytes
923         of it are needed.
924         (find_shift_sequence): Take the access_size and shift as poly_int64s
925         rather than ints.
926         (get_stored_val): Take the read_offset and read_width as poly_int64s
927         rather than HOST_WIDE_INTs.
928         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
929         non-constant offsets and widths.
930
931 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
932             Alan Hayward  <alan.hayward@arm.com>
933             David Sherwood  <david.sherwood@arm.com>
934
935         * inchash.h (inchash::hash::add_poly_int): New function.
936         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
937         Use poly_int64 rather than HOST_WIDE_INT.
938         (ao_ref::max_size_known_p): New function.
939         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
940         rather than HOST_WIDE_INT.
941         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
942         to temporaries until its interface is adjusted to match.
943         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
944         (aliasing_component_refs_p, decl_refs_may_alias_p)
945         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
946         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
947         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
948         ao_ref fields.
949         * alias.c (ao_ref_from_mem): Likewise.
950         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
951         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
952         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
953         (maybe_trim_complex_store, maybe_trim_constructor_store)
954         (live_bytes_read, dse_classify_store): Likewise.
955         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
956         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
957         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
958         (vn_reference_lookup_3): Likewise.
959         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
960
961 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
962             Alan Hayward  <alan.hayward@arm.com>
963             David Sherwood  <david.sherwood@arm.com>
964
965         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
966         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
967         instead of ranges_overlap_p.
968
969 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
970             Alan Hayward  <alan.hayward@arm.com>
971             David Sherwood  <david.sherwood@arm.com>
972
973         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
974         sizes as poly_int64s rather than HOST_WIDE_INTs.
975
976 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
977             Alan Hayward  <alan.hayward@arm.com>
978             David Sherwood  <david.sherwood@arm.com>
979
980         * gimple-fold.h (fold_ctor_reference): Take the offset and size
981         as poly_uint64 rather than unsigned HOST_WIDE_INT.
982         * gimple-fold.c (fold_ctor_reference): Likewise.
983
984 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
985             Alan Hayward  <alan.hayward@arm.com>
986             David Sherwood  <david.sherwood@arm.com>
987
988         * target.def (dwarf_poly_indeterminate_value): New hook.
989         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
990         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
991         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
992         * doc/tm.texi: Regenerate.
993         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
994         offset as a poly_int64.
995         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
996         offset as a poly_int64.
997         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
998         Take the offset as a poly_int64.
999         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
1000         (frame_pointer_fb_offset): Change to a poly_int64.
1001         (int_loc_descriptor): Take the offset as a poly_int64.  Use
1002         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
1003         (based_loc_descr): Take the offset as a poly_int64.
1004         Use strip_offset_and_add to handle (plus X (const)).
1005         Use new_reg_loc_descr instead of an open-coded version of the
1006         previous implementation.
1007         (mem_loc_descriptor): Handle CONST_POLY_INT.
1008         (compute_frame_pointer_to_fb_displacement): Take the offset as a
1009         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
1010
1011 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1012             Alan Hayward  <alan.hayward@arm.com>
1013             David Sherwood  <david.sherwood@arm.com>
1014
1015         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
1016         (gen_rtx_REG_offset): Take the offset as a poly_int64.
1017         * inchash.h (inchash::hash::add_poly_hwi): New function.
1018         * gengtype.c (main): Register poly_int64.
1019         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
1020         offset as a poly_int.
1021         (reg_attr_hasher::equal): Use must_eq to compare offsets.
1022         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
1023         offset as a poly_int64.
1024         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
1025         * print-rtl.c (print_poly_int): New function.
1026         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
1027         a poly_int.
1028         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
1029         functions.
1030         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
1031         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
1032         (vt_get_decl_and_offset): Return the offset as a poly_int64.
1033         Enforce track_offset_p for parts of a PARALLEL.
1034         (vt_add_function_parameter): Use const_offset for the final
1035         offset to track.  Use get_tracked_reg_offset for the parts
1036         of a PARALLEL.
1037
1038 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1039             Alan Hayward  <alan.hayward@arm.com>
1040             David Sherwood  <david.sherwood@arm.com>
1041
1042         * target.def (truly_noop_truncation): Take poly_uint64s instead of
1043         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
1044         * doc/tm.texi: Regenerate.
1045         * hooks.h (hook_bool_uint_uint_true): Delete.
1046         (hook_bool_puint64_puint64_true): Declare.
1047         * hooks.c (hook_bool_uint_uint_true): Delete.
1048         (hook_bool_puint64_puint64_true): New function.
1049         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
1050         instead of unsigned ints.
1051         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
1052         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
1053
1054 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1055             Alan Hayward  <alan.hayward@arm.com>
1056             David Sherwood  <david.sherwood@arm.com>
1057
1058         * optabs.h (expand_operand): Add an int_value field.
1059         (create_expand_operand): Add an int_value parameter and use it
1060         to initialize the new expand_operand field.
1061         (create_integer_operand): Replace with a declaration of a function
1062         that accepts poly_int64s.  Move the implementation to...
1063         * optabs.c (create_integer_operand): ...here.
1064         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
1065         the mode preserves the value of int_value, instead of calling
1066         const_int_operand on the rtx.  Use gen_int_mode to generate
1067         the new rtx.
1068
1069 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1070             Alan Hayward  <alan.hayward@arm.com>
1071             David Sherwood  <david.sherwood@arm.com>
1072
1073         * dumpfile.h (dump_dec): Declare.
1074         * dumpfile.c (dump_dec): New function.
1075         * pretty-print.h (pp_wide_integer): Turn into a function and
1076         declare a poly_int version.
1077         * pretty-print.c (pp_wide_integer): New function for poly_ints.
1078
1079 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1080             Alan Hayward  <alan.hayward@arm.com>
1081             David Sherwood  <david.sherwood@arm.com>
1082
1083         * doc/generic.texi (POLY_INT_CST): Document.
1084         * tree.def (POLY_INT_CST): New tree code.
1085         * treestruct.def (TS_POLY_INT_CST): New tree layout.
1086         * tree-core.h (tree_poly_int_cst): New struct.
1087         (tree_node): Add a poly_int_cst field.
1088         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
1089         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
1090         instead of a wide_int_ref.
1091         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
1092         of a HOST_WIDE_INT.
1093         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1094         instead of an unsigned HOST_WIDE_INT.
1095         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
1096         (ptrdiff_tree_p): Declare.
1097         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
1098         extern inline implementations if the target doesn't use POLY_INT_CST.
1099         (poly_int_tree_p): New function.
1100         (wi::unextended_tree): New class.
1101         (wi::int_traits <unextended_tree>): New override.
1102         (wi::extended_tree): Add a default constructor.
1103         (wi::extended_tree::get_tree): New function.
1104         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
1105         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
1106         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
1107         (wi::tree_to_poly_wide_ref): New typedefs.
1108         (wi::ints_for): Provide overloads for extended_tree and
1109         unextended_tree.
1110         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
1111         (wi::to_wide): New functions.
1112         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
1113         * tree.c (poly_int_cst_hasher): New struct.
1114         (poly_int_cst_hash_table): New variable.
1115         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
1116         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
1117         POLY_INT_CST.
1118         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
1119         (init_ttree): Initialize poly_int_cst_hash_table.
1120         (build_int_cst, build_int_cst_type, build_invariant_address): Take
1121         a poly_int64 instead of a HOST_WIDE_INT.
1122         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1123         instead of an unsigned HOST_WIDE_INT.
1124         (wide_int_to_tree): Rename to...
1125         (wide_int_to_tree_1): ...this.
1126         (build_new_poly_int_cst, build_poly_int_cst): New functions.
1127         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
1128         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
1129         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
1130         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
1131         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
1132         TS_POLY_INT_CST.
1133         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
1134         (streamer_read_tree_body): Likewise.
1135         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
1136         (streamer_write_tree_body): Likewise.
1137         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
1138         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
1139         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
1140         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
1141         * gimple-expr.h (is_gimple_constant): Likewise.
1142         * gimplify.c (maybe_with_size_expr): Likewise.
1143         * print-tree.c (print_node): Likewise.
1144         * tree-data-ref.c (data_ref_compare_tree): Likewise.
1145         * tree-pretty-print.c (dump_generic_node): Likewise.
1146         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1147         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
1148         * tree-vrp.c (compare_values_warnv): Likewise.
1149         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
1150         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
1151         (force_expr_to_var_cost): Likewise.
1152         * tree-ssa-loop.c (for_each_index): Likewise.
1153         * fold-const.h (build_invariant_address, size_int_kind): Take a
1154         poly_int64 instead of a HOST_WIDE_INT.
1155         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
1156         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
1157         POLY_INT_CST.
1158         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
1159         (int_const_binop_2): New function, split out from...
1160         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
1161         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
1162         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
1163         * gimple-ssa-strength-reduction.c (slsr_process_add)
1164         (slsr_process_mul): Check for INTEGER_CSTs before using them
1165         as candidates.
1166         * stor-layout.c (bits_from_bytes): New function.
1167         (bit_from_pos): Use it.
1168         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
1169         by BITS_PER_UNIT to get the TYPE_SIZE.
1170         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
1171         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
1172
1173 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1174             Alan Hayward  <alan.hayward@arm.com>
1175             David Sherwood  <david.sherwood@arm.com>
1176
1177         * doc/rtl.texi (const_poly_int): Document.  Also document the
1178         rtl sharing behavior.
1179         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
1180         * rtl.h (const_poly_int_def): New struct.
1181         (rtx_def::u): Add a cpi field.
1182         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
1183         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
1184         (wi::rtx_to_poly_wide_ref): New typedef
1185         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
1186         (poly_int_rtx_p): New functions.
1187         (trunc_int_for_mode): Declare a poly_int64 version.
1188         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1189         (immed_wide_int_const): Take a poly_wide_int_ref rather than
1190         a wide_int_ref.
1191         (strip_offset): Declare.
1192         (strip_offset_and_add): New function.
1193         * rtl.def (CONST_POLY_INT): New rtx code.
1194         * rtl.c (rtx_size): Handle CONST_POLY_INT.
1195         (shared_const_p): Use poly_int_rtx_p.
1196         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
1197         HOST_WIDE_INT.
1198         (gen_int_shift_amount): Likewise.
1199         * emit-rtl.c (const_poly_int_hasher): New class.
1200         (const_poly_int_htab): New variable.
1201         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
1202         (const_poly_int_hasher::hash): New function.
1203         (const_poly_int_hasher::equal): Likewise.
1204         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
1205         (immed_wide_int_const): Rename to...
1206         (immed_wide_int_const_1): ...this and make static.
1207         (immed_wide_int_const): New function, taking a poly_wide_int_ref
1208         instead of a wide_int_ref.
1209         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
1210         (gen_lowpart_common): Handle CONST_POLY_INT.
1211         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
1212         * cselib.c (cselib_hash_rtx): Likewise.
1213         * dwarf2out.c (const_ok_for_output_1): Likewise.
1214         * expr.c (convert_modes): Likewise.
1215         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
1216         * rtlhash.c (add_rtx): Likewise.
1217         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
1218         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1219         Handle existing CONST_POLY_INT rtxes.
1220         * expmed.h (expand_shift): Take a poly_int64 instead of a
1221         HOST_WIDE_INT.
1222         * expmed.c (expand_shift): Likewise.
1223         * rtlanal.c (strip_offset): New function.
1224         (commutative_operand_precedence): Give CONST_POLY_INT the same
1225         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
1226         and CONST_INT.
1227         * rtl-tests.c (const_poly_int_tests): New struct.
1228         (rtl_tests_c_tests): Use it.
1229         * simplify-rtx.c (simplify_const_unary_operation): Handle
1230         CONST_POLY_INT.
1231         (simplify_const_binary_operation): Likewise.
1232         (simplify_binary_operation_1): Fold additions of symbolic constants
1233         and CONST_POLY_INTs.
1234         (simplify_subreg): Handle extensions and truncations of
1235         CONST_POLY_INTs.
1236         (simplify_const_poly_int_tests): New struct.
1237         (simplify_rtx_c_tests): Use it.
1238         * wide-int.h (storage_ref): Add default constructor.
1239         (wide_int_ref_storage): Likewise.
1240         (trailing_wide_ints): Use GTY((user)).
1241         (trailing_wide_ints::operator[]): Add a const version.
1242         (trailing_wide_ints::get_precision): New function.
1243         (trailing_wide_ints::extra_size): Likewise.
1244
1245 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1246             Alan Hayward  <alan.hayward@arm.com>
1247             David Sherwood  <david.sherwood@arm.com>
1248
1249         * emit-rtl.h (gen_int_shift_amount): Declare.
1250         * emit-rtl.c (gen_int_shift_amount): New function.
1251         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
1252         instead of GEN_INT.
1253         * calls.c (shift_return_value): Likewise.
1254         * cse.c (fold_rtx): Likewise.
1255         * dse.c (find_shift_sequence): Likewise.
1256         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
1257         (expand_shift, expand_smod_pow2): Likewise.
1258         * lower-subreg.c (shift_cost): Likewise.
1259         * optabs.c (expand_superword_shift, expand_doubleword_mult)
1260         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
1261         (expand_vec_perm_var): Likewise.
1262         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1263         (simplify_binary_operation_1): Likewise.
1264         * combine.c (try_combine, find_split_point, force_int_to_mode)
1265         (simplify_shift_const_1, simplify_shift_const): Likewise.
1266         (change_zero_ext): Likewise.  Use simplify_gen_binary.
1267
1268 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1269
1270         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
1271
1272 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1273
1274         * doc/invoke.texi (ARM Options): Document accepted extension options
1275         for -march=armv8.3-a.
1276
1277 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
1278
1279         PR target/83105
1280         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
1281         or --with-float=softfp, set the default CPU to arm10e.
1282
1283 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
1284
1285         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
1286         * config/visium/predicates.md (const_shift_operand): Likewise.
1287         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
1288         (visium_legitimize_reload_address): Likewise.
1289
1290 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1291
1292         PR target/82975
1293         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
1294
1295 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
1296
1297         PR c++/83490
1298         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
1299
1300 2017-12-20  Julia Koval  <julia.koval@intel.com>
1301
1302         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
1303         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
1304         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
1305         * config.gcc: Include vpclmulqdqintrin.h.
1306         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
1307         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
1308         -mvpclmulqdq.
1309         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
1310         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
1311         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
1312         * config/i386/i386.c (isa2_opts): Add -mcx16.
1313         (isa_opts): Add -mpclmulqdq, remove -mcx16.
1314         (ix86_option_override_internal): Move mcx16 to flags2.
1315         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
1316         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
1317         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
1318         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
1319         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
1320         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
1321         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
1322         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
1323         * doc/invoke.texi: Add -mvpclmulqdq.
1324
1325 2017-12-20  Tom de Vries  <tom@codesourcery.com>
1326
1327         PR middle-end/83423
1328         * config/i386/i386.c (ix86_static_chain): Move DECL_STATIC_CHAIN test ...
1329         * calls.c (rtx_for_static_chain): ... here.  New function.
1330         * calls.h (rtx_for_static_chain): Declare.
1331         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
1332         instead of targetm.calls.static_chain.
1333         * df-scan.c (df_get_entry_block_def_set): Same.
1334
1335 2017-12-19  Tom de Vries  <tom@codesourcery.com>
1336
1337         PR tree-optimization/83493
1338         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
1339         and lb.
1340
1341 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1342
1343         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
1344         inform with hardcoded english plural handling.
1345
1346 2017-12-18  Jeff Law  <law@redhat.com>
1347
1348         PR tree-optimization/83477
1349         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
1350         a non-virtual PHI, always push a new range.
1351
1352 2017-12-19  Martin Sebor  <msebor@redhat.com>
1353
1354         PR middle-end/77608
1355         * builtins.c (compute_objsize): Handle non-constant offsets.
1356
1357 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1358
1359         PR tree-optimization/83444
1360         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
1361         character load case, if get_stridx on MEM_REF's operand doesn't
1362         look usable, retry with get_addr_stridx.
1363
1364 2017-12-19  Alexandre Oliva <aoliva@redhat.com>
1365
1366         PR debug/83422
1367         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
1368         (variable_tracking_main_1): Keep markers even when VTA fails.
1369
1370         PR bootstrap/83396
1371         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
1372         even if there are markers before it.
1373         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
1374
1375 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1376
1377         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
1378         typical order conditions.
1379         * sel-sched.c (extract_new_fences_from): Likewise.
1380         * config/visium/constraints.md (J, K, L): Likewise.
1381         * config/visium/predicates.md (const_shift_operand): Likewise.
1382         * config/visium/visium.c (visium_legitimize_address,
1383         visium_legitimize_reload_address): Likewise.
1384         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
1385         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
1386         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
1387         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
1388         SET_DUMP_DETAIL): Likewise.
1389         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
1390         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
1391         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
1392         avr_set_core_architecture, avr_set_current_function,
1393         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
1394         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
1395         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
1396         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
1397         avr_map_decompose, avr_fold_builtin): Likewise.
1398         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
1399         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
1400         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
1401         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
1402         * config/m32c/m32c.c (m32c_conditional_register_usage,
1403         m32c_address_cost): Likewise.
1404         * config/m32c/predicates.md (shiftcount_operand,
1405         longshiftcount_operand): Likewise.
1406         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1407         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
1408         can_use_cdx_ldstw): Likewise.
1409         * config/nios2/nios2.h (CDX_REG_P): Likewise.
1410         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
1411         Likewise.
1412         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
1413         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
1414         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
1415         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
1416         * config/vax/vax.c (adjacent_operands_p): Likewise.
1417         * config/ft32/constraints.md (L, b, KA): Likewise.
1418         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
1419         Likewise.
1420         * cfgexpand.c (expand_stack_alignment): Likewise.
1421         * gcse.c (insert_expr_in_table): Likewise.
1422         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
1423         * cgraphunit.c (cgraph_node::expand): Likewise.
1424         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
1425         * emit-rtl.c (add_insn): Likewise.
1426         * input.c (dump_location_info): Likewise.
1427         * passes.c (NEXT_PASS): Likewise.
1428         * read-rtl-function.c (parse_note_insn_name,
1429         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
1430         Likewise.
1431         * sched-rgn.c (sched_rgn_init): Likewise.
1432         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
1433         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
1434         if_then_else_cond, simplify_shift_const_1, simplify_comparison): Likewise.
1435         * explow.c (eliminate_constant_term): Likewise.
1436         * final.c (leaf_renumber_regs_insn): Likewise.
1437         * cfgrtl.c (print_rtl_with_bb): Likewise.
1438         * genhooks.c (emit_init_macros): Likewise.
1439         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
1440         * tree-data-ref.c (conflict_fn): Likewise.
1441         * selftest.c (assert_streq): Likewise.
1442         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
1443         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
1444         fold_binary_loc, multiple_of_p): Likewise.
1445         * reload.c (push_reload, find_equiv_reg): Likewise.
1446         * et-forest.c (et_nca, et_below): Likewise.
1447         * dbxout.c (dbxout_symbol_location): Likewise.
1448         * reorg.c (relax_delay_slots): Likewise.
1449         * dojump.c (do_compare_rtx_and_jump): Likewise.
1450         * gengtype-parse.c (type): Likewise.
1451         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
1452         simplify_const_relational_operation): Likewise.
1453         * reload1.c (do_output_reload): Likewise.
1454         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
1455         * gengtype.c (type_for_name): Likewise.
1456         * gimple-ssa-sprintf.c (format_directive): Likewise.
1457
1458 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1459
1460         PR target/82975
1461         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
1462         accessing it.  Adjust comment.
1463
1464 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1465
1466         PR middle-end/81914
1467         * predict.c (zero_one_minusone): New function.
1468         (apply_return_prediction): Avoid return prediction for functions
1469         returning only -1, 0 and 1 values, unless they only return -1 and 0
1470         or 0 and 1.
1471
1472 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
1473
1474         * config/arc/arc.c (legitimate_scaled_address_p): Clean
1475         fall-through warning.
1476         (arc_compute_frame_size): Remove unused variables.
1477         (arc_print_operand): Fix fprintif format.
1478         (arc_can_follow_jump): Clean fall-through warning.
1479
1480 2017-12-19  Marek Polacek  <polacek@redhat.com>
1481
1482         PR c++/83489
1483         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
1484         on an error node.                                                    
1485
1486 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
1487
1488         * config/arc/arc.c (overriderregs): New variable.
1489         (arc_override_options): Track fixed/call saved/call options.
1490         (arc_conditional_register_usage): Check against overrideregs
1491         variable whenever we change register properties.
1492
1493 2017-12-19  Nathan Sidwell  <nathan@acm.org>
1494
1495         * opts.c (finish_options): Don't prefix dump_base_name if it
1496         already contains directories.
1497
1498 2017-12-19  Martin Liska  <mliska@suse.cz>
1499
1500         PR rtl-optimization/82675
1501         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
1502         more element in sbitmap.
1503
1504 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
1505
1506         * gimplify.c (gimplify_expr): Use error_operand_p.
1507
1508 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1509
1510         PR target/83387
1511         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
1512         multilib.
1513
1514 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
1515
1516         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
1517         the jump is to a label.
1518
1519 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1520
1521         PR tree-optimization/83444
1522         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
1523         character loads.
1524
1525         PR ipa/82801
1526         PR ipa/83346
1527         * ipa-inline.c (flatten_remove_node_hook): New function.
1528         (ipa_inline): Keep only nodes with flatten attribute at the end of
1529         the array in the order from ipa_reverse_postorder, only walk that
1530         portion of array for flattening, if there is more than one such
1531         node, temporarily register a removal hook and ignore removed nodes.
1532
1533         PR tree-optimization/80631
1534         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
1535         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
1536         IFN_REDUC_MAX or IFN_REDUC_MIN.
1537
1538 2017-12-18  Jeff Law  <law@redhat.com>
1539
1540         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
1541         record symbolic equivalences from backedges in the CFG.
1542
1543         Revert
1544         2017-11-19  Jeff Law  <law@redhat.com>
1545
1546         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
1547         of degenerates resulting from ignoring an edge.
1548
1549 2017-12-18  Martin Sebor  <msebor@redhat.com>
1550
1551         PR middle-end/83373
1552         PR tree-optimization/78450
1553         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
1554         (handle_builtin_strlen): Call it.
1555
1556 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
1557
1558         PR rtl-optimization/83424
1559         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
1560
1561 2017-12-18  Marek Polacek  <polacek@redhat.com>
1562
1563         PR middle-end/83463
1564         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
1565         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
1566         values.
1567
1568 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
1569
1570         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
1571         (umaddsidi4, umaddsidi_split): Likewise.
1572
1573 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
1574
1575         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
1576         constants.
1577
1578 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1579
1580         PR target/83420
1581         * config/s390/s390.c (s390_option_override): Avoid strncpy.
1582
1583 2017-12-18  Richard Biener  <rguenther@suse.de>
1584
1585         PR tree-optimization/81877
1586         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
1587         (outermost_indep_loop): Adjust.
1588         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
1589         (can_sm_ref_p): Adjust.
1590
1591 2017-12-18  Richard Biener  <rguenther@suse.de>
1592
1593         PR middle-end/77291
1594         * tree.c (array_at_struct_end_p): Return true if the underlying
1595         object has space for at least one element in excess of what
1596         the array domain specifies.
1597
1598 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1599
1600         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
1601         example to avoid overfull hbox.
1602         * doc/invoke.texi (Option Summary): Add missing @gol.
1603         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid 
1604         overfull hbox.
1605         
1606 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1607             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1608
1609         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
1610         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
1611         (AArch64 Options): Document -mverbose-cost-dump.
1612         (ARM Options): Likewise, plus -mflip-thumb.
1613
1614 2017-12-17  Martin Sebor  <msebor@redhat.com>
1615
1616         PR bootstrap/83446
1617         * gimple-ssa-warn-restrict.c
1618         (builtin_memref::offset_out_of_bounds): Correct the handling of
1619         anti-ranges.
1620
1621 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1622
1623         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
1624
1625 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
1626
1627         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
1628
1629 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
1630
1631         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
1632         latencies.
1633
1634 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
1635
1636         * doc/invoke.texi: Fix some typos.
1637
1638 2017-12-16  Martin Sebor  <msebor@redhat.com>
1639
1640         PR tree-optimization/78918
1641         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
1642         * builtins.c (check_sizes): Rename...
1643         (check_access): ...to this.  Rename function arguments for clarity.
1644         (check_memop_sizes): Adjust names.
1645         (expand_builtin_memchr, expand_builtin_memcpy): Same.
1646         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
1647         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
1648         (check_strncat_sizes, expand_builtin_strncat): Same.
1649         (expand_builtin_strncpy, expand_builtin_memset): Same.
1650         (expand_builtin_bzero, expand_builtin_memcmp): Same.
1651         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
1652         (maybe_emit_sprintf_chk_warning): Same.
1653         (expand_builtin_strcpy): Adjust.
1654         (expand_builtin_stpcpy): Same.
1655         (expand_builtin_with_bounds): Detect out-of-bounds accesses
1656         in pointer-checking forms of memcpy, memmove, and mempcpy.
1657         (gcall_to_tree_minimal, max_object_size): Define new functions.
1658         * builtins.h (max_object_size): Declare.
1659         * calls.c (alloc_max_size): Call max_object_size instead of
1660         hardcoding ssizetype limit.
1661         (get_size_range): Handle new argument.
1662         * calls.h (get_size_range): Add a new argument.
1663         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
1664         * doc/invoke.texi (-Wrestrict): Adjust, add example.
1665         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
1666         operations.
1667         (gimple_fold_builtin_memory_chk): Same.
1668         (gimple_fold_builtin_stxcpy_chk): New function.
1669         * gimple-ssa-warn-restrict.c: New source.
1670         * gimple-ssa-warn-restrict.h: New header.
1671         * gimple.c (gimple_build_call_from_tree): Propagate location.
1672         * passes.def (pass_warn_restrict): Add new pass.
1673         * tree-pass.h (make_pass_warn_restrict): Declare.
1674         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
1675         operations.
1676         (handle_builtin_strcat): Same.
1677         (strlen_optimize_stmt): Rename...
1678         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
1679         stpncpy, strncpy, and their checking forms.
1680
1681 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
1682
1683         PR rtl-optimization/82849
1684         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
1685         and get_max_loop_iterations_int.
1686
1687 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1688             Alan Hayward  <alan.hayward@arm.com>
1689             David Sherwood  <david.sherwood@arm.com>
1690
1691         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
1692         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
1693         size as a poly_uint64.
1694         (mode_for_vector, mode_for_int_vector): Take the number of vector
1695         elements as a poly_uint64.
1696         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
1697         size as a poly_uint64.
1698         (mode_for_vector, mode_for_int_vector): Take the number of vector
1699         elements as a poly_uint64.
1700
1701 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1702             Alan Hayward  <alan.hayward@arm.com>
1703             David Sherwood  <david.sherwood@arm.com>
1704
1705         * machmode.h (MACRO_MODE): New macro.
1706         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
1707         * targhooks.c (default_libcall_value, default_secondary_reload)
1708         (default_memory_move_cost, default_register_move_cost)
1709         (default_class_max_nregs): Likewise.
1710
1711 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1712             Alan Hayward  <alan.hayward@arm.com>
1713             David Sherwood  <david.sherwood@arm.com>
1714
1715         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
1716         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
1717         target C file.
1718         * genautomata.c (main): Likewise.
1719         * genconditions.c (write_header): Likewise.
1720         * genemit.c (main): Likewise.
1721         * genextract.c (print_header): Likewise.
1722         * genopinit.c (main): Likewise.
1723         * genoutput.c (output_prologue): Likewise.
1724         * genpeep.c (main): Likewise.
1725         * genpreds.c (write_insn_preds_c): Likewise.
1726         * genrecog.c (writer_header): Likewise.
1727         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
1728         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
1729         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
1730         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
1731         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
1732         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
1733         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
1734         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
1735         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
1736         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
1737         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
1738         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
1739         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
1740         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
1741         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
1742         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
1743         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
1744         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
1745         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
1746         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
1747         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
1748         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
1749         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
1750         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
1751         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
1752         * config/darwin.c (IN_TARGET_CODE): Likewise.
1753         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
1754         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
1755         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
1756         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
1757         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
1758         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
1759         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
1760         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
1761         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
1762         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
1763         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
1764         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
1765         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
1766         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
1767         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
1768         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
1769         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
1770         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
1771         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
1772         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
1773         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
1774         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
1775         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
1776         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
1777         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
1778         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
1779         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
1780         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
1781         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
1782         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
1783         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
1784         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
1785         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
1786         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
1787         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
1788         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
1789         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
1790         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
1791         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
1792         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
1793         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
1794         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
1795         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
1796         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
1797         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
1798         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
1799         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
1800         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
1801         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
1802         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
1803         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
1804         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
1805         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
1806         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
1807         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
1808         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
1809         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
1810         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
1811         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
1812         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
1813         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1814         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
1815         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
1816         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
1817         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
1818         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
1819         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
1820         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
1821         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
1822         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
1823         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
1824         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1825         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
1826         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
1827         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
1828         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
1829         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
1830         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
1831         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
1832         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
1833         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
1834         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
1835         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
1836         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
1837         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
1838         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
1839         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
1840         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
1841         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
1842         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
1843         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
1844         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
1845         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
1846         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
1847         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
1848         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
1849         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
1850         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
1851         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
1852         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
1853         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
1854         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
1855         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
1856         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
1857         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
1858         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
1859
1860 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1861             Alan Hayward  <alan.hayward@arm.com>
1862             David Sherwood  <david.sherwood@arm.com>
1863
1864         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
1865         checks for MEM_REF.
1866
1867 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1868             Alan Hayward  <alan.hayward@arm.com>
1869             David Sherwood  <david.sherwood@arm.com>
1870
1871         * doc/generic.texi (VEC_SERIES_EXPR): Document.
1872         * doc/md.texi (vec_series@var{m}): Document.
1873         * tree.def (VEC_SERIES_EXPR): New tree code.
1874         * tree.h (build_vec_series): Declare.
1875         * tree.c (build_vec_series): New function.
1876         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
1877         * tree-pretty-print.c (dump_generic_node): Likewise.
1878         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
1879         * tree-inline.c (estimate_operator_cost): Likewise.
1880         * expr.c (expand_expr_real_2): Likewise.
1881         * optabs-tree.c (optab_for_tree_code): Likewise.
1882         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
1883         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
1884         * expmed.c (make_tree): Handle VEC_SERIES.
1885         * optabs.def (vec_series_optab): New optab.
1886         * optabs.h (expand_vec_series_expr): Declare.
1887         * optabs.c (expand_vec_series_expr): New function.
1888         * tree-vect-generic.c (expand_vector_operations_1): Check that
1889         the operands also have vector type.
1890
1891 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1892             Alan Hayward  <alan.hawyard@arm.com>
1893             David Sherwood  <david.sherwood@arm.com>
1894
1895         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
1896         (VEC_COND_EXPR): Add missing @tindex.
1897         * doc/md.texi (vec_duplicate@var{m}): Document.
1898         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
1899         * tree.c (build_vector_from_val): Add stubbed-out handling of
1900         variable-length vectors, using VEC_DUPLICATE_EXPR.
1901         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
1902         * cfgexpand.c (expand_debug_expr): Likewise.
1903         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
1904         * tree-inline.c (estimate_operator_cost): Likewise.
1905         * tree-pretty-print.c (dump_generic_node): Likewise.
1906         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
1907         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
1908         (test_vec_duplicate_folding): New function.
1909         (fold_const_c_tests): Call it.
1910         * optabs.def (vec_duplicate_optab): New optab.
1911         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
1912         * optabs.h (expand_vector_broadcast): Declare.
1913         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
1914         vec_duplicate_optab.
1915         * expr.c (store_constructor): Try using vec_duplicate_optab for
1916         uniform vectors.
1917         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
1918
1919 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
1920
1921         PR target/83358
1922         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
1923         div/mod latencies a bit.
1924
1925 2017-12-15  Jeff Law  <law@redhat.com>
1926
1927         PR tree-optimization/36550
1928         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
1929         (mark_threaded_blocks): Rewrite code to avoid block copying when
1930         optimizing for size.  Don't pessimize blocks which will be
1931         copied, but all the statements will be dead.
1932
1933 2017-12-15  Alexandre Oliva <aoliva@redhat.com>
1934
1935         PR tree-optimization/81165
1936         * tree-ssa-threadupdate.c (uses_in_bb): New.
1937         (estimate_threading_killed_stmts): New.
1938         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
1939         * tree-ssa-threadedge.c 
1940         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
1941         when its hit.
1942
1943 2017-12-15  Jeff Law  <law@redhat.com>
1944
1945         PR tree-optimization/83410
1946         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
1947         threads when parallelizing loops.
1948
1949 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
1950
1951         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
1952         handler fields.
1953         * config/alpha/alpha.c (vms_attribute_table): Swap
1954         affects_type_identity and handler fields, adjust comments.
1955         * config/mips/mips.c (mips_attribute_table): Likewise.
1956         * config/visium/visium.c (visium_attribute_table): Likewise.
1957         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
1958         * config/microblaze/microblaze.c (microblaze_attribute_table):
1959         Likewise.
1960         * config/spu/spu.c (spu_attribute_table): Likewise.
1961         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1962         * config/arc/arc.c (arc_attribute_table): Likewise.
1963         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
1964         * config/v850/v850.c (v850_handle_interrupt_attribute,
1965         v850_handle_data_area_attribute): Formatting fixes.
1966         (v850_attribute_table): Swap affects_type_identity and handler
1967         fields, adjust comments.
1968         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1969         * config/arm/arm.c (arm_attribute_table): Likewise.
1970         * config/avr/avr.c (avr_attribute_table): Likewise.
1971         * config/s390/s390.c (s390_attribute_table): Likewise.
1972         * config/sh/sh.c (sh_attribute_table): Likewise.
1973         * config/i386/i386.c (ix86_handle_cconv_attribute,
1974         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
1975         (ix86_attribute_table): Swap affects_type_identity and handler
1976         fields, adjust comments.
1977         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
1978         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1979         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
1980         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
1981         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
1982         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
1983         * config/rx/rx.c (rx_attribute_table): Likewise.
1984         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
1985         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1986         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
1987         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
1988         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
1989         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
1990         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1991         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1992         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
1993         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
1994         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
1995         exclude.
1996         * attribs.c (empty_attribute_table): Swap affects_type_identity and
1997         handler fields.
1998         (register_scoped_attributes, decl_attributes): Formatting fixes.
1999
2000         PR tree-optimization/83269
2001         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
2002         subtraction in arg0's type if type is signed and arg0 is unsigned.
2003         Formatting fix.
2004
2005         PR sanitizer/81281
2006         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
2007         convert? on @0 instead of convert.  Check type of @1, not @0.
2008         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
2009         convert? on @0 instead of convert.  Check type of @1, not @0.
2010         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
2011         only optimize if either both @1 and @2 types are narrower
2012         precision, or both are wider or equal precision, and in the former
2013         case only if both have undefined overflow.
2014
2015 2017-12-15  Richard Biener  <rguenther@suse.de>
2016
2017         PR lto/83388
2018         * internal-fn.def (IFN_NOP): Add.
2019         * internal-fn.c (expand_NOP): Do nothing.
2020         * lto-streamer-in.c (input_function): Instead of removing
2021         sanitizer calls replace them with IFN_NOP calls.
2022
2023 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
2024             Alan Hayward  <alan.hayward@arm.com>
2025             David Sherwood  <david.sherwood@arm.com>
2026
2027         * dse.c (store_info, read_info_type): Replace begin and end with
2028         offset and width.
2029         (print_range): New function.
2030         (set_all_positions_unneeded, any_positions_needed_p)
2031         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
2032         accordingly.
2033         (record_store): Likewise.  Optimize the case in which all positions
2034         are unneeded.
2035         (get_stored_val): Replace read_begin and read_end with read_offset
2036         and read_width.
2037         (replace_read): Update call accordingly.
2038
2039 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
2040
2041         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
2042         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
2043         (loop_cand::loop_cand): Initialize above members.
2044         (loop_cand::supported_operations): Delete.
2045         (loop_cand::can_interchange_p): Inline above function.
2046         (loop_cand::classify_simple_reduction): Record number of constant
2047         initialized simple reductions.
2048         (should_interchange_loops): New parameters.  Check stmt cost of loops
2049         to be interchange.
2050         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
2051         Update call to should_interchange_loops.
2052         (should_interchange_loop_nest): Update call to
2053         should_interchange_loops.
2054
2055 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
2056
2057         PR target/66488
2058         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
2059         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
2060         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
2061
2062 2017-12-15  Julia Koval  <julia.koval@intel.com>
2063
2064         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
2065         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
2066         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
2067         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
2068         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
2069
2070 2017-12-15  Julia Koval  <julia.koval@intel.com>
2071
2072         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
2073         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
2074         * config/i386/sse.md (vaesenc_<mode>): New pattern.
2075         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
2076         _mm_aesenc_epi128): New intrinsics.
2077
2078 2017-12-15  Julia Koval  <julia.koval@intel.com>
2079
2080         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
2081         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
2082         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
2083         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
2084         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
2085
2086 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2087
2088         * gimple-ssa-strength-reduction.c (analyze_increments):
2089         Distinguish replacement costs for constant strides from those for
2090         unknown strides.
2091
2092 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2093
2094         * var-tracking.c (variable_tracking_main_1): Formatting fix.
2095
2096 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2097
2098         * doc/invoke.texi: Document -Wcast-function-type.
2099         * recog.h (stored_funcptr): Change signature.
2100         * tree-dump.c (dump_node): Avoid warning.
2101         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
2102
2103 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
2104
2105         PR middle_end/79538
2106         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
2107         array.
2108
2109 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
2110
2111         PR tree-optimization/83312
2112         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
2113         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
2114         "val" param, and to cope with arbitrary basic blocks.
2115         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
2116         handle NULL_TREE for "val", dropping "bb" param.
2117         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
2118         drop "bb" param.  Handle NULL_TREE for "val".
2119         (find_case_label_for_value): Make "switch_stmt" param const.
2120         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
2121         of dom_walker.
2122         (vrp_prop::check_all_array_refs): Reimplement as...
2123         (check_array_bounds_dom_walker::before_dom_children): ...this new
2124         vfunc.  Replace linear search through BB block list, excluding
2125         those with non-executable in-edges via dominator walk.
2126
2127 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2128
2129         * config/arm/arm.opt (mverbose-cost-dump): New option.
2130         * config/arm/arm.c (arm_rtx_costs): Use it.
2131
2132 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
2133
2134         PR bootstrap/83396
2135         * reload1.c (emit_input_reload_insns): Skip debug markers.
2136
2137 2017-12-14  Alexandre Oliva <aoliva@redhat.com>
2138
2139         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
2140         for its nop_endbr.
2141
2142         PR bootstrap/83396
2143         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
2144         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
2145         * config/sh/sh.c: Skip debug insns besides notes.
2146         * config/sh/sh.md: Likewise.
2147         * config/sh/sh_treg_combine.cc: Likewise.
2148         * config/sh/sync.md: Likewise.
2149
2150 2017-12-14  Tom de Vries  <tom@codesourcery.com>
2151
2152         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2153         Add item for weak_undefined.
2154
2155 2017-12-14  Richard Biener  <rguenther@suse.de>
2156
2157         PR tree-optimization/67842
2158         * sese.h (bb_in_region): Remove #if 0'ed code.
2159
2160 2017-12-14  Richard Biener  <rguenther@suse.de>
2161
2162         PR tree-optimization/83326
2163         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
2164         may_be_zero parameter and handle it by not marking the first
2165         peeled copy as not exiting the loop.
2166         (try_peel_loop): Likewise.
2167         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
2168         to handle the case of constant or zero iterations and perform
2169         loop header copying on-the-fly.
2170
2171 2017-12-14  Richard Biener  <rguenther@suse.de>
2172
2173         PR tree-optimization/83418
2174         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
2175         Instead of asserting we don't get unfolded comparisons deal with
2176         them.
2177
2178 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2179
2180         PR bootstrap/83396
2181         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
2182         basic blocks.  Assert debug bind insns don't appear outside of bbs,
2183         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
2184         bb.  Simplify.
2185
2186         PR tree-optimization/83198
2187         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
2188         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
2189         value if arg is a REAL_CST with incompatible type.
2190
2191 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
2192             Bin Cheng  <bin.cheng@arm.com>
2193
2194         PR target/81228
2195         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
2196         to CCFPEmode.
2197         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
2198         LTGT.
2199
2200 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2201
2202         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
2203         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
2204
2205 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
2206             Alan Hayward  <alan.hayward@arm.com>
2207             David Sherwood  <david.sherwood@arm.com>
2208
2209         * poly-int.h: New file.
2210         * poly-int-types.h: Likewise.
2211         * coretypes.h: Include them.
2212         (POLY_INT_CONVERSION): Define.
2213         * target.def (estimated_poly_value): New hook.
2214         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
2215         * doc/tm.texi: Regenerate.
2216         * doc/poly-int.texi: New file.
2217         * doc/gccint.texi: Include it.
2218         * doc/rtl.texi: Describe restrictions on subreg modes.
2219         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
2220         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
2221         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
2222         * targhooks.h (default_estimated_poly_value): Declare.
2223         * targhooks.c (default_estimated_poly_value): New function.
2224         * target.h (estimated_poly_value): Likewise.
2225         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
2226         (wi::unary_traits): Delete.
2227         (wi::binary_traits::signed_shift_result_type): Define for
2228         offset_int << HOST_WIDE_INT, etc.
2229         (generic_wide_int::operator <<=): Define for all types and use
2230         wi::lshift instead of <<.
2231         (wi::hwi_with_prec): Add a default constructor.
2232         (wi::ints_for): New class.
2233         (operator <<): Define for all wide-int types.
2234         (operator /): New function.
2235         (operator %): Likewise.
2236         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
2237         (ASSERT_MAYBE_NE_AT): New macros.
2238
2239 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
2240             Dominik Vogt  <vogt@linux.vnet.ibm.com>
2241
2242         PR middle-end/78468
2243         * emit-rtl.c (init_emit): Remove ??? comment.
2244         * explow.c (get_dynamic_stack_size): Take known alignment of stack
2245         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
2246         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
2247         alignment of 3 virtual registers to BITS_PER_WORD.
2248
2249         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
2250
2251 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
2252
2253         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
2254         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
2255
2256 2017-12-13  Alexandre Oliva <aoliva@redhat.com>
2257
2258         PR bootstrap/83396
2259         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
2260
2261 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
2262
2263         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
2264         with the exception of debug begin stmt markers appear before
2265         labels.
2266
2267         PR bootstrap/83396
2268         * final.c (rest_of_handle_final): Call variable_tracking_main only
2269         if !flag_var_tracking.
2270
2271 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
2272             Jakub Jelinek  <jakub@redhat.com>
2273
2274         PR bootstrap/83396
2275         PR debug/83391
2276         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
2277         labels debug stmts that can only appear after labels.
2278
2279 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
2280
2281         PR rtl-optimization/82398
2282         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
2283         EXPR_USEFULNESS in priority comparison.
2284
2285 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
2286
2287         PR rtl-optimization/83393
2288         * combine.c (move_deaths): If reg_stat points to a too new insn in
2289         last_death, do not use it: find the proper insn instead.
2290
2291 2017-12-12  Jeff Law  <law@redhat.com>
2292
2293         PR tree-optimization/83298
2294         PR tree-optimization/83362
2295         PR tree-optimization/83383
2296         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
2297         push_value_range a public interface.  Add new argument to
2298         record_ranges_from_stmt.
2299         * gimple-ssa-evrp-analyze.c
2300         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
2301         Update comments.  Handle recording temporary equivalences.
2302         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
2303         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
2304         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
2305         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
2306         gimple-ssa-evrp-analyze.h.
2307         (record_temporary_equivalences_from_phis): Add new argument.  When
2308         the PHI arg is an SSA_NAME, set the result's range to the range
2309         of the PHI arg.
2310         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
2311         from statements too.
2312         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
2313         Pass it down to children as needed.
2314         (thread_outgoing_edges): Likewise.
2315         (thread_across_edge): Likewise.   Push/pop range state as needed.
2316         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
2317
2318 2017-12-12  Julia Koval  <julia.koval@intel.com>
2319
2320         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
2321         (PTA_CANNONLAKE): Remove PTA_CLWB.
2322
2323 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2324
2325         PR target/83332
2326         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
2327         (vcondv2div2df): Likewise.
2328         (vconduv2dfv2di): Likewise.
2329
2330 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2331
2332         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
2333         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
2334         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
2335         ATTR_MATHFN_FPROUNDING_ERRNO.
2336
2337 2017-12-12  Richard Biener  <rguenther@suse.de>
2338
2339         PR tree-optimization/83385
2340         * graphite-scop-detection.c (get_order, order): Remove.
2341         (bb_to_rpo): New global.
2342         (cmp_pbbs): Adjust.
2343         (build_scops): Sort pbbs in RPO order.
2344
2345 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
2346
2347         * combine.c (simplify_set): Do not transform subregs to zero_extends
2348         if the destination mode is a vector mode.
2349
2350 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2351
2352         PR tree-optimization/83359
2353         * tree-cfg.h (fold_loop_internal_call): Declare.
2354         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
2355         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
2356         (find_loop_dist_alias): New function.
2357         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
2358         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
2359         calls.
2360
2361         PR tree-optimization/80631
2362         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
2363         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
2364         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
2365         hardcoding zero as the value if COND_EXPR is never true.  For
2366         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
2367         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
2368         hardcoding MAX_EXPR as the reduction operation.
2369         (is_nonwrapping_integer_induction): Allow negative step.
2370         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
2371         vect_create_epilog_for_reduction, if no value is suitable, don't
2372         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
2373
2374 2017-12-12  Richard Biener  <rguenther@suse.de>
2375
2376         PR tree-optimization/81889
2377         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
2378         range info from the non-wrapping IV instead of just the range
2379         of the type.
2380
2381 2017-12-12  Julia Koval  <julia.koval@intel.com>
2382
2383         * config.gcc: Add vaesintrin.h.
2384         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
2385         New type.
2386         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
2387         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
2388         New builtins.
2389         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
2390         * config/i386/immintrin.h: Include vaesintrin.h.
2391         * config/i386/sse.md (vaesdec_<mode>): New pattern.
2392         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
2393         _mm_aesdec_epi128): New intrinsics.
2394
2395 2017-12-12  Julia Koval  <julia.koval@intel.com>
2396
2397         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
2398         OPTION_MASK_ISA_VAES_UNSET): New.
2399         (ix86_handle_option): Handle -mvaes.
2400         * config/i386/cpuid.h: Define bit_VAES.
2401         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
2402         * config/i386/i386-c.c (__VAES__): New.
2403         * config/i386/i386.c (ix86_target_string): Add -mvaes.
2404         (ix86_valid_target_attribute_inner_p): Ditto.
2405         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
2406         * config/i386/i386.opt: Add -mvaes.
2407         * doc/invoke.texi: Ditto.
2408
2409 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
2410
2411         * debug.h (gcc_debug_hooks): Add inline_entry.
2412         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2413         * debug.c (do_nothing_debug_hooks): Likewise.
2414         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2415         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2416         (dwarf2_lineno_debug_hooks): Likewise.
2417
2418         * common.opt (gstatement-frontiers): New, setting
2419         debug_nonbind_markers_p.
2420         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
2421         * toplev.c (process_options): Autodetect value for debug statement
2422         frontiers option.
2423         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
2424         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
2425
2426         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
2427         markers.  Integrate source bind into debug stmt expand loop.
2428         (pass_expand::execute): Check debug marker limit.  Avoid deep
2429         TER and expand debug locations for debug bind insns only.
2430         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
2431         followed by them.
2432         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
2433         * final.c (reemit_insn_block_notes): Take current block from
2434         nonbind markers.  Declare note where it's first set.
2435         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
2436         begin stmt markers if enabled.
2437         (notice_source_line): Handle nonbind markers.  Fail if their
2438         location is unknown or that of builtins.
2439         (rest_of_handle_final): Convert begin stmt markers to notes if
2440         var-tracking didn't run.
2441         (rest_of_clean_state): Skip begin stmt markers.
2442         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
2443         markers.
2444         * function.c (allocate_struct_function): Set begin_stmt_markers.
2445         * function.h (struct function): Add debug_marker_count counter
2446         and debug_nonbind_markers flag.
2447         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
2448         * gimple-low.c (lower_function_body): Adjust
2449         debug_nonbind_markers.
2450         (lower_stmt): Drop or skip gimple debug stmts.
2451         (lower_try_catch): Skip debug stmts.
2452         * gimple.c (gimple_build_debug_begin_stmt): New.
2453         (gimple_copy): Increment debug_marker_count if copying one.
2454         * gimple.h (gimple_build_debug_begin_stmt): Declare.
2455         * gimplify.c (rexpr_location): New.
2456         (rexpr_has_location): New.
2457         (warn_switch_unreachable_r): Handle gimple debug stmts.
2458         (shortcut_cond_r): Call expr_location.
2459         (find_goto): New.
2460         (find_goto_label): New.
2461         (shortcut_cond_expr): Call expr_has_location, expr_location, and
2462         find_goto_label.
2463         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
2464         expr_location.
2465         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
2466         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
2467         (LANG_HOOKS_INITIALIZER): ... this.
2468         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
2469         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
2470         debug insns.
2471         (update_ebb_live_info): Skip debug insn markers.
2472         * lra.c (debug_insn_static_data): Rename to...
2473         (debug_bind_static_data): ... this.
2474         (debug_marker_static_data): New.
2475         (lra_set_insn_recog_data): Select one of the above depending
2476         on debug insn kind.
2477         (lra_update_isn_regno_info): Don't assume debug insns have
2478         freqs.
2479         (push_insns): Skip debug insns.
2480         * lto-streamer-in.c (input_function): Drop debug stmts
2481         depending on active options.  Adjust debug_nonbind_markers.
2482         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
2483         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
2484         begin stmt marker notes.
2485         (print_insn): Likewise.
2486         * recog.c (extract_insn): Recognize rtl for debug markers.
2487         * rtl.def (DEBUG_MARKER): New.
2488         * tree-inline.c: Include params.h.
2489         (remap_gimple_stmt): Handle nonbind markers.
2490         (maybe_move_debug_stmts_to_successors): Likewise.
2491         (copy_debug_stmt): Likewise.
2492         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
2493         markers regardless of no side effects.
2494         (tsi_link_before): Don't update container's side effects when adding
2495         a begin stmt marker.
2496         (tsi_link_after): Likewise.
2497         (expr_first): Skip begin stmt markers.
2498         (expr_last): Likewise.
2499         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
2500         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
2501         Disregard nonbind markers.
2502         * tree.c (make_node_stat): Don't set side effects for begin stmt
2503         markers.
2504         (build1_stat): Likewise.
2505         * tree.def (DEBUG_BEGIN_STMT): New.
2506         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
2507         * var-tracking.c (delete_debug_insns): Renamed to...
2508         (delete_vta_debug_insns): ... this.
2509         (reemit_marker_as_note): New.
2510         (vt_initialize): Reemit markers.
2511         (delete_vta_debug_insns): Likewise.
2512         (vt_debug_insns_local): Reemit or delete markers.
2513         (variable_tracking_main_1): Likewise.
2514         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
2515         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
2516         (gimple_debug_nonbind_marker_p): New.
2517         (gimple_build_debug_bind): Adjust.
2518         (gimple_build_debug_begin_stmt): New.
2519         * doc/invoke.texi (max-debug-marker-count): New param.
2520         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
2521         (debug_parameter_ref, debug_marker): New.
2522         (NOTE_INSN_BEGIN_STMT): New.
2523         (DEBUG_INSN): Describe begin stmt markers.
2524
2525         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
2526         without debug insns, we wouldn't, but clean up debug insns
2527         after a control flow insn nevertheless.
2528
2529         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
2530         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
2531         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
2532         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
2533         (rtl_tidy_fallthru_edge): Likewise.
2534         (rtl_verify_fallthru): Likewise.
2535         (rtl_verify_bb_layout): Likewise.
2536         (skip_insns_after_block): Likewise.
2537         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
2538         * dwarf2out.c: Include print-rtl.h.
2539         (dwarf2out_next_real_insn): New.
2540         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
2541         Dump debug binds in asm comments.
2542         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
2543         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
2544         callers to use gsi_start_nondebug_bb instead.
2545         (gsi_after_labels): Skip gimple debug stmts.
2546         (gsi_start_nondebug): New.
2547         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
2548         (proper_loop_form_for_interchange): Adjust.
2549         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
2550         * gimple.h (gimple_seq_last_nondebug_stmt): New.
2551         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
2552         (collect_fallthrough_labels): Likewise.
2553         (should_warn_for_implicit_fallthrough): Likewise.
2554         (warn_implicit_fallthrough_r): Likewise.
2555         (expand_FALLTHROUGH_r): Likewise.
2556         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
2557         (graphite_copy_stmts_from_block): Skip nonbind markers.
2558         * haifa-sched.c (sched_extend_bb): Skip debug insns.
2559         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
2560         * jump.c (clean_barriers): Skip debug insns.
2561         * omp-expand.c (expand_parallel_call): Skip debug insns.
2562         (expand_task_call): Likewise.
2563         (remove_exit_barrier): Likewise.
2564         (expand_omp_taskreg): Likewise.
2565         (expand_omp_for_init_counts): Likewise.
2566         (expand_omp_for_generic): Likewise.
2567         (expand_omp_for_static_nochunk): Likewise.
2568         (expand_omp_for_static_chunk): Likewise.
2569         (expand_omp_simd): Likewise.
2570         (expand_omp_taskloop_for_outer): Likewise.
2571         (expand_omp_taskloop_for_inner): Likewise.
2572         (expand_oacc_for): Likewise.
2573         (expand_omp_sections): Likewise.
2574         (expand_omp_single): Likewise.
2575         (expand_omp_synch): Likewise.
2576         (expand_omp_atomic_load): Likewise.
2577         (expand_omp_atomic_store): Likewise.
2578         (expand_omp_atomic_fetch_op): Likewise.
2579         (expand_omp_atomic_pipeline): Likewise.
2580         (expand_omp_atomic_mutex): Likewise.
2581         (expand_omp_target): Likewise.
2582         (grid_expand_omp_for_loop): Likewise.
2583         (grid_expand_target_grid_body): Likewise.
2584         (build_omp_regions_1): Likewise.
2585         * omp-low.c (check_combined_parallel): Skip debug stmts.
2586         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
2587         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
2588         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
2589         test.
2590         * tree-cfg.c (make_blobs_1): Skip debug stmts.
2591         (make_edges): Likewise.
2592         (cleanup_dead_labels): Likewise.
2593         (gimple_can_merge_blocks_p): Likewise.
2594         (stmt_starts_bb_p): Likewise.
2595         (gimple_block_label): Likewise.
2596         (gimple_redirect_edge_and_branch): Likewise.
2597         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
2598         of debug stmts.
2599         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
2600         TDF_SLIM.
2601         * tree-pretty-print (print_declaration): Omit initializer in slim
2602         dumps.
2603         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
2604         markers.
2605         (eliminate_unnecessary_stmts): Stabilize block removal order.
2606         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
2607         * var-tracking.c (get_first_insn): New.
2608         (vt_emit_notes): Call it.
2609         (vt_initialize): Walk any insns before the first BB.
2610         (delete_debug_insns): Likewise.
2611
2612         * gimple.h (enum gimple_debug_subcode): Add
2613         GIMPLE_DEBUG_BEGIN_STMT.
2614         (gimple_debug_begin_stmt_p): New.
2615         (gimple_debug_nonbind_marker_p): New.
2616         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
2617         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
2618         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
2619         * insn-notes.def (BEGIN_STMT): New.
2620         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
2621         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
2622         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
2623         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
2624         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
2625         (INSN_DEBUG_MARKER_KIND): New.
2626         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
2627         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
2628         (INSN_VAR_LOCATION_PTR): New.
2629         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
2630         only.
2631         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
2632         deps only if debug bind insns are enabled.
2633         (pass_expand::execute): Avoid deep TER and expand
2634         debug locations for debug bind insns only.
2635         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
2636         debug stmts special handling down to debug bind stmts.
2637         * combine.c (try_combine): Narrow debug insns special handling
2638         down to debug bind insns.
2639         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
2640         Narrow debug insns preexisting special handling down to debug
2641         bind insns.
2642         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
2643         handling down to debug bind insns.
2644         * function.c (instantiate_virtual_regs): Skip debug markers,
2645         adjust handling of debug binds.
2646         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
2647         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
2648         * haifa-sched.c (schedule_insn): Narrow special handling of debug
2649         insns to debug bind insns.
2650         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
2651         special handling of debug stmts to debug bind stmts.
2652         * ipa-split.c (split_function): Likewise.
2653         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
2654         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
2655         debug insns.
2656         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
2657         * regrename.c (build_def_use): Likewise.
2658         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
2659         (pass_cprop_hardreg): Narrow special casing of debug insns to
2660         debug bind insns.
2661         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
2662         * reload1.c (reload): Likewise.
2663         * sese.c (sese_insert_phis_for_liveouts): Narrow special
2664         casing of debug stmts to debug bind stmts.
2665         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
2666         * ssa-iterators.h (num_imm_uses): Likewise.
2667         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
2668         debug stmts to debug bind stmts.
2669         * tree-inline.c (tree_function_versioning): Narrow special casing
2670         of debug stmts to debug bind stmts.
2671         * tree-loop-distribution.c (generate_loops_for_partition):
2672         Narrow special casing of debug stmts to debug bind stmts.
2673         * tree-sra.c (analyze_access_subtree): Narrow special casing
2674         of debug stmts to debug bind stmts.
2675         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
2676         stmts to debug bind stmts.
2677         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
2678         casing of debug stmts to debug bind stmts.
2679         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
2680         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
2681         casing of debug stmts to debug bind stmts.
2682         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
2683         Likewise.
2684         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
2685         debug stmts to debug bind stmts.
2686         (gimple_replace_ssa_lhs): Likewise.
2687         (insert_debug_temp_for_var_def): Likewise.
2688         (insert_debug_temps_for_defs): Likewise.
2689         (reset_debug_uses): Likewise.
2690         * tree-ssanames.c (release_ssa_name_fn): Likewise.
2691         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
2692         (adjust_debug_stmts): Likewise.
2693         (adjust_phi_and_debug_stmts): Likewise.
2694         (vect_do_peeling): Likewise.
2695         * tree-vect-loop.c (vect_transform_loop): Likewise.
2696         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
2697         * var-tracking.c (adjust_mems): Narrow special casing of debug
2698         insns to debug bind insns.
2699         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
2700         (compute_bb_dataflow, vt_find_locations): Likewise.
2701         (vt_expand_loc, emit_notes_for_changes): Likewise.
2702         (vt_init_cfa_base): Likewise.
2703         (vt_emit_notes): Likewise.
2704         (vt_initialize): Likewise.
2705         (vt_finalize): Likewise.
2706
2707         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
2708         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
2709         (next_nonnote_nondebug_insn_bb): New.
2710         (prev_nonnote_nondebug_insn_bb): New.
2711         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
2712         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
2713         (prev_nonnote_nondebug_insn_bb): Declare.
2714         (next_nonnote_nondebug_insn_bb): Declare.
2715         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
2716         * cfgrtl.c (get_last_bb_insn): Likewise.
2717         * lra.c (push_insns): Likewise.
2718
2719 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
2720
2721         PR c/82050
2722         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
2723         to...
2724         * selftest.c (selftest::test_runner::test_runner): New ctor.
2725         (selftest::test_runner::~test_runner): New dtor.
2726         * selftest.h (class selftest::test_runner): New class.
2727
2728 2017-12-11  Carl Love  <cel@us.ibm.com>
2729
2730         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
2731         vec_extract_fp32_from_shortl]): Add #defines.
2732         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
2733         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
2734         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
2735         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
2736         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
2737         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
2738         * doc/extend.texi: Add documentation for the added builtins.
2739
2740 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
2741
2742         PR rtl-optimization/80693
2743         PR rtl-optimization/81019
2744         PR rtl-optimization/81020
2745         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
2746         are not mentioned in i3.  Place the REG_UNUSED note on i2,
2747         possibly modified to REG_DEAD, if it did not originate in i3.
2748
2749 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
2750
2751         * recog.c (store_data_bypass_p_1): New function.
2752         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
2753         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
2754
2755 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
2756
2757         PR rtl-optimization/83361
2758         * ifcvt.c (if_convert): Call fixup_partitions.
2759
2760 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
2761
2762         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
2763         early folding of splat_u{8,16,32}.
2764
2765 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
2766
2767         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
2768         output_operand_lossage first argument with capital letter.
2769         (aarch64_override_options): Don't start error and sorry first argument
2770         with capital letter.
2771
2772 2017-12-11  Andi Kleen  <ak@linux.intel.com>
2773
2774         PR gcov-profile/83355
2775         * auto-profile.c (string_table::get_index_by_decl): Don't
2776         recurse when abstract origin points to itself.
2777
2778 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
2779
2780         PR tree-optimization/83320
2781         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
2782         (prune_datarefs_not_in_loop): Ditto.
2783
2784 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
2785
2786         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
2787
2788 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
2789
2790         PR tree-optimization/83337
2791         * gimple-loop-interchange.cc (compute_access_stride): Handle
2792         bitfield DRs properly.
2793
2794 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
2795
2796         PR tree-optimization/83338
2797         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
2798         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
2799         vector of unsigned integers to vector of signed integers.
2800
2801 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
2802
2803         PR rtl-optimization/83317
2804         * lra-constraints.c (process_address_1): Add insn code check.
2805
2806 2017-12-08  Michael Matz  <matz@suse.de>
2807
2808         Fix PR tree-optimization/83323
2809         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
2810         head-controlled loops and loop BBs.
2811         * common.opt (funroll-and-jam): Remove, instead ...
2812         (floop-unroll-and-jam): ... reuse this option.
2813         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
2814         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
2815         (-floop-unroll-and-jam): ... this option.
2816
2817 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
2818
2819         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
2820         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
2821         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
2822
2823 2017-12-08  Richard Biener  <rguenther@suse.de>
2824
2825         PR middle-end/81782
2826         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
2827         handle accesses outside of zero-sized vars.
2828
2829 2017-12-08  Martin Jambor  <mjambor@suse.cz>
2830
2831         PR tree-optimization/83141
2832         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
2833         test for MEM_REFs implicitely changing types with padding.  Remove
2834         inline keyword.
2835         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
2836
2837 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
2838
2839         * config/arc/arc.c (arc_attribute_table): Add exclusions to
2840         the comment.
2841         * config/avr/avr.c (avr_attribute_table): Likewise.
2842         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2843         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2844         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2845         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
2846         of struct attribute_spec.
2847         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2848
2849 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
2850
2851         PR target/82960
2852         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
2853
2854 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
2855
2856         PR middle-end/83609
2857         * profile-count.c (profile_count::from_gcov_type): Move from
2858         profile-count.h; handle overflow.
2859         * profile-count.h (profile_count::from_gcov_type): Move offline.
2860
2861 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
2862
2863         PR rtl-optimization/83304
2864         * combine.c (move_deaths): If we do not know where a register died,
2865         search for it.
2866
2867 2017-12-08  Richard Biener  <rguenther@suse.de>
2868
2869         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
2870         Provide -fopt-info-loop feedback when we interchange in a nest.
2871
2872 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2873
2874         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
2875         for armv6 ARM CPU IDs.
2876
2877 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2878
2879         * common/config/arm/arm-common.c: Include <algorithm>.
2880         (INCLUDE_VECTOR): Define.
2881         (compare_opt_names): New function.
2882         (arm_rewrite_selected_arch): Only strip out extensions that can be
2883         expressed through -mfpu.  Sort the remaining extensions
2884         alphabetically.
2885
2886 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2887
2888         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
2889         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
2890         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
2891         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
2892
2893 2017-06-08  Tristan Gingold  <gindold@adacore.com>
2894
2895         PR ada/81470
2896         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
2897         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
2898
2899 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2900
2901         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
2902         of struct attribute_spec.
2903
2904 2017-12-08  Julia Koval  <julia.koval@intel.com>
2905
2906         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
2907         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
2908         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
2909         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
2910         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
2911         _mm_maskz_dpwssds_epi32): Ditto.
2912
2913 2017-12-08  Richard Biener  <rguenther@suse.de>
2914
2915         PR tree-optimization/81303
2916         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
2917         conditions try to create a comparison vector type matching
2918         the data vector type.
2919         (vectorizable_condition): Adjust.
2920         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
2921         Leave invariant conditions alone in case we can vectorize those.
2922
2923 2017-12-08  Julia Koval  <julia.koval@intel.com>
2924
2925         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
2926         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
2927         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
2928         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
2929         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
2930
2931 2017-12-08  Julia Koval  <julia.koval@intel.com>
2932
2933         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
2934         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
2935         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
2936         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
2937         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
2938         _mm_maskz_dpbusds_epi32): New intrinsics.
2939
2940 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
2941
2942         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
2943         operand.
2944         (ld<bh>io_signed): Likewise.
2945         (st<bhw>io): Likewise.
2946         * config/nios2/predicates.md (ldstio_memory_operand): Allow
2947         SMALL_INT12 constant integer operand.
2948
2949 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
2950
2951         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
2952         Rename to...
2953         (nios2_large_constant_allowed): ...this.  Adjust uses.
2954         (nios2_plus_symbolic_constant_p): Rename to...
2955         (nios2_plus_large_constant_p): ...this.  Adjust uses.
2956         (nios2_legitimate_address_p): Correct CONST_INT handling.
2957         (nios2_symbolic_memory_operand_p): Rename to...
2958         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
2959         (nios2_large_constant_p): Check for large constant integers too.
2960         (nios2_split_large_constant): Handle constant integers.
2961         (nios2_split_symbolic_memory_operand): Rename to...
2962         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
2963         (nios2_legitimize_constant_address): Handle constant integers.
2964         (r0rel_constant_p): Handle small constant integers.
2965         (nios2_print_operand_address): Handle r0-relative integer addresses.
2966         * config/nios2/nios2-protos.h: Adjust for renamed functions.
2967         * config/nios2/nios2.md: Adjust for renamed functions.
2968
2969 2017-12-07  Andrew Waterman  <andrew@sifive.com>
2970
2971         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
2972         (TARGET_HAVE_SRODATA_SECTION): New define.
2973         (riscv_select_section): New function.
2974
2975 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
2976             Alexander Monakov  <amonakov@ispras.ru>
2977             Jakub Jelinek  <jakub@redhat.com>
2978
2979         PR target/81906
2980         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
2981
2982 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2983
2984         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
2985         a bool success value.  Don't call output_operand_lossage here.
2986         (aarch64_print_ldpstp_address): Return a bool success value.
2987         (aarch64_print_operand_address): Call output_addr_const if
2988         aarch64_print_address_internal fails.
2989         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
2990         'y'; call output_operand_lossage instead.  Call output_operand_lossage
2991         if aarch64_print_ldpstp_address fails.
2992
2993 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2994
2995         * tree-vector-builder.h
2996         (tree_vector_builder::binary_encoded_nelts): Declare.
2997         * tree-vector-builder.c
2998         (tree_vector_builder::binary_encoded_nelts): New function.
2999         * fold-const.c (negate_expr_p): Likewise.
3000         (operand_equal_p, fold_checksum_tree): Likewise.
3001         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
3002         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
3003         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
3004         (uniform_vector_p): Likewise.
3005         * varasm.c (const_hash_1, compare_constant): Likewise.
3006         * tree-ssa-ccp.c: Include tree-vector-builder.h.
3007         (valid_lattice_transition): Operate directly on the VECTOR_CST
3008         encoding.
3009         * ipa-icf.c: Include tree-vector-builder.h.
3010         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
3011         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
3012
3013 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3014
3015         * tree.c (build_vector): Delete.
3016         * tree.h (build_vector): Make static and move into the self-testing
3017         block.
3018
3019 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3020
3021         * vector-builder.h (vector_builder::derived): New const overload.
3022         (vector_builder::elt): New function.
3023         * tree-vector-builder.h (tree_vector_builder::type): New function.
3024         (tree_vector_builder::apply_step): Declare.
3025         * tree-vector-builder.c (tree_vector_builder::apply_step): New
3026         function.
3027         * gimple-fold.h (tree_vector_builder): Declare.
3028         (gimple_build_vector): Take a tree_vector_builder instead of a
3029         type and vector of elements.
3030         * gimple-fold.c (gimple_build_vector): Likewise.
3031         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
3032         accordingly.
3033         (get_initial_defs_for_reduction): Likewise.
3034         (vectorizable_induction): Likewise.
3035
3036 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3037
3038         * tree-vector-builder.h
3039         (tree_vector_builder::new_binary_operation): Declare.
3040         * tree-vector-builder.c
3041         (tree_vector_builder::new_binary_operation): New function.
3042         * fold-const.c (fold_relational_const): Use it.
3043         (const_binop): Likewise.  Check that both input vectors have
3044         the same number of elements, thus excluding things like WIDEN_SUM.
3045         Check whether it is possible to operate directly on the encodings
3046         of stepped inputs.
3047
3048 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3049
3050         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
3051         new_unary_operation, operating only on the encoded elements.
3052         (const_unop): Likewise.
3053         (exact_inverse): Likewise.
3054         (distributes_over_addition_p): New function.
3055         (const_binop): Use tree_vector_builder and new_unary_operation
3056         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
3057         on the encoded elements unless the encoding is strided and the
3058         operation does not distribute over addition.
3059         (fold_convert_const):  Use tree_vector_builder and
3060         new_unary_operation.  Operate only on the encoded elements
3061         for truncating integer conversions, or for non-stepped encodings.
3062
3063 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3064
3065         * config/sparc/sparc.c: Include tree-vector-builder.h.
3066         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
3067         * expmed.c: Include tree-vector-builder.h.
3068         (make_tree): Use tree_vector_builder instead of build_vector.
3069         * fold-const.c: Include tree-vector-builder.h.
3070         (const_binop): Use tree_vector_builder instead of build_vector.
3071         (const_unop): Likewise.
3072         (native_interpret_vector): Likewise.
3073         (fold_vec_perm): Likewise.
3074         (fold_ternary_loc): Likewise.
3075         * gimple-fold.c: Include tree-vector-builder.h.
3076         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
3077         of build_vector.
3078         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
3079         (simplify_vector_constructor): Use tree_vector_builder instead
3080         of build_vector.
3081         * tree-vect-generic.c: Include tree-vector-builder.h.
3082         (add_rshift): Use tree_vector_builder instead of build_vector.
3083         (expand_vector_divmod): Likewise.
3084         (optimize_vector_constructor): Likewise.
3085         * tree-vect-loop.c: Include tree-vector-builder.h.
3086         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
3087         of build_vector.  Explicitly use a stepped encoding for
3088         { 1, 2, 3, ... }.
3089         * tree-vect-slp.c: Include tree-vector-builder.h.
3090         (vect_get_constant_vectors): Use tree_vector_builder instead
3091         of build_vector.
3092         (vect_transform_slp_perm_load): Likewise.
3093         (vect_schedule_slp_instance): Likewise.
3094         * tree-vect-stmts.c: Include tree-vector-builder.h.
3095         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
3096         (vect_gen_perm_mask_any): Likewise.
3097         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
3098         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
3099         of build_vector.
3100         (build_vector_from_val): Likewise.  Explicitly use a duplicate
3101         encoding.
3102
3103 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
3104
3105         * doc/generic.texi (VECTOR_CST): Describe new representation of
3106         vector constants.
3107         * vector-builder.h: New file.
3108         * tree-vector-builder.h: Likewise.
3109         * tree-vector-builder.c: Likewise.
3110         * Makefile.in (OBJS): Add tree-vector-builder.o.
3111         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
3112         * tree-core.h (tree_base): Add a vector_cst field to the u union.
3113         (tree_vector): Change the number of elements to
3114         vector_cst_encoded_nelts.
3115         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
3116         (VECTOR_CST_ELTS): Delete.
3117         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
3118         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
3119         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
3120         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
3121         (VECTOR_CST_ENCODED_ELT): Likewise.
3122         (vector_cst_encoded_nelts): New function.
3123         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3124         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3125         (vector_cst_int_elt, vector_cst_elt): Declare.
3126         * tree.c: Include tree-vector-builder.h.
3127         (tree_code_size): Abort if passed VECTOR_CST.
3128         (tree_size): Update for new VECTOR_CST layout.
3129         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3130         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3131         (build_vector): Use tree_vector_builder.
3132         (vector_cst_int_elt, vector_cst_elt): New functions.
3133         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
3134         encoded elements and then create the vector in the canonical form.
3135         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
3136         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
3137         (tree_c_tests): Call test_vector_cst_patterns.
3138         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
3139         VECTOR_CST fields.
3140         (hash_tree): Likewise.
3141         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
3142         (streamer_write_tree_header): Likewise.
3143         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
3144         (streamer_alloc_tree): Likewise.  Update call to make_vector.
3145         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
3146
3147 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3148
3149         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
3150         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
3151         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
3152
3153 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
3154             Richard Biener  <rguenther@suse.de>
3155
3156         PR tree-optimization/81303
3157         * Makefile.in (gimple-loop-interchange.o): New object file.
3158         * common.opt (floop-interchange): Reuse the option from graphite.
3159         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
3160         -floop-interchange and mention it for -O3.
3161         * opts.c (default_options_table): Enable -floop-interchange at -O3.
3162         * gimple-loop-interchange.cc: New file.
3163         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
3164         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
3165         * passes.def (pass_linterchange): New pass.
3166         * timevar.def (TV_LINTERCHANGE): New time var.
3167         * tree-pass.h (make_pass_linterchange): New declaration.
3168         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
3169         interchange.  Record IV before/after increment in new parameters.
3170         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
3171         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
3172         path check into...
3173         (check_reduction_path): ...New function here.
3174         * tree-vectorizer.h (check_reduction_path): New declaration.
3175
3176 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
3177
3178         PR target/83252
3179         PR rtl-optimization/80818
3180         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
3181         always early clobbered.
3182         * lra-lives.c (process_bb_lives): Check input hard regs for early
3183         clobbered non-operand hard reg.
3184
3185 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
3186
3187         PR middle-end/83164
3188         * tree-cfg.c (verify_gimple_assign_binary): Don't require
3189         types_compatible_p, just that TYPE_MODE is the same.
3190
3191 2017-12-07  Martin Sebor  <msebor@redhat.com>
3192
3193         PR c/81544
3194         * attribs.c (empty_attribute_table): Initialize new member of
3195         struct attribute_spec.
3196         (decl_attributes): Add argument.  Handle mutually exclusive
3197         combinations of attributes.
3198         (selftests::test_attribute_exclusions): New function.
3199         (selftests::attribute_c_tests): Ditto.
3200         * attribs.h (decl_attributes): Add default argument.
3201         * selftest.h (attribute_c_tests): Declare.
3202         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
3203         * tree-core.h (attribute_spec::exclusions, exclude): New type and
3204         member.
3205         * doc/extend.texi (Common Function Attributes): Update const and pure.
3206         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
3207         of struct attribute_spec.
3208         * config/arc/arc.c (arc_attribute_table): Same.
3209         * config/arm/arm.c (arm_attribute_table): Same.
3210         * config/avr/avr.c ( avr_attribute_table): Same.
3211         * config/bfin/bfin.c (bfin_attribute_table): Same.
3212         * config/cr16/cr16.c (cr16_attribute_table): Same.
3213         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
3214         * config/h8300/h8300.c (h8300_attribute_table): Same.
3215         * config/i386/i386.c (ix86_attribute_table): Same.
3216         * config/ia64/ia64.c (ia64_attribute_table): Same.
3217         * config/m32c/m32c.c (m32c_attribute_table): Same.
3218         * config/m32r/m32r.c (m32r_attribute_table): Same.
3219         * config/m68k/m68k.c (m68k_attribute_table): Same.
3220         * config/mcore/mcore.c (mcore_attribute_table): Same.
3221         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
3222         * config/mips/mips.c (mips_attribute_table): Same.
3223         * config/msp430/msp430.c (msp430_attribute_table): Same.
3224         * config/nds32/nds32.c (nds32_attribute_table): Same.
3225         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
3226         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
3227         * config/rl78/rl78.c (rl78__attribute_table): Same.
3228         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
3229         * onfig/rx/rx.c (rx_attribute_table): Same.
3230         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
3231         * config/sh/sh.c (sh_attribute_table): Same.
3232         * config/sparc/sparc.c (sparc_attribute_table): Same.
3233         * config/spu/spu.c (spu_attribute_table): Same.
3234         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
3235         * config/v850/v850.c (v850_attribute_table): Same.
3236         * config/visium/visium.c (visium_attribute_table): Same.
3237
3238 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
3239
3240         PR target/82641
3241         * config/arm/arm.c (INCLUDE_STRING): Define.
3242         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
3243         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
3244         and .fpu.
3245
3246 2017-12-07  Michael Matz  <matz@suse.de>
3247
3248         Add unroll and jam pass
3249
3250         * gimple-loop-jam.c: New file.
3251         * Makefile.in (OBJS): Add gimple-loop-jam.o.
3252         * common.opt (funroll-and-jam): New option.
3253         * opts.c (default_options_table): Add unroll-and-jam at -O3.
3254         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
3255         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
3256         * passes.def: Add pass_loop_jam.
3257         * timevar.def (TV_LOOP_JAM): Add.
3258         * tree-pass.h (make_pass_loop_jam): Declare.
3259         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
3260         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
3261         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
3262         to flow_loop_tree_node_add.
3263         (duplicate_subloops, copy_loops_to): Append to sibling list.
3264         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
3265         * doc/invoke.texi (-funroll-and-jam): Document new option.
3266         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
3267
3268 2017-12-07  Richard Biener  <rguenther@suse.de>
3269
3270         PR tree-optimization/83296
3271         PR tree-optimization/67769
3272         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
3273         flow sensitive info in an unrelated BB.
3274         (value_replacement): Use reset_flow_sensitive_info.
3275         (minmax_replacement): Reset flow sensitive info on the def
3276         we move.  Do not reset flow sensitive info in the whole BB
3277         we move the stmt to.
3278         (abs_replacement): Likewise.
3279
3280 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3281
3282         PR target/43871
3283         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3284         rs6000_cpu to the given -mcpu=, or to the default processor.
3285
3286 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3287
3288         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
3289         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
3290         instead of rs6000_cpu_attr.
3291         (rs6000_adjust_cost): Ditto.
3292         (is_microcoded_insn): Ditto.
3293         (rs6000_adjust_priority): Ditto.
3294         (rs6000_issue_rate): Ditto.
3295         (rs6000_use_sched_lookahead): Ditto.
3296         (rs6000_use_sched_lookahead_guard): Ditto.
3297         (rs6000_sched_reorder): Ditto.
3298         (force_new_group): Ditto.
3299         * config/rs6000/rs6000.md (cpu attribute): Ditto.
3300         (group_ending_nop): Ditto.
3301
3302 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3303
3304         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
3305         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
3306         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
3307         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
3308         appropriate.
3309         (rs6000_reassociation_width): Ditto.
3310         (rs6000_emit_epilogue): Ditto.
3311         (rs6000_adjust_cost): Ditto.
3312         (is_microcoded_insn): Ditto.
3313         (is_cracked_insn): Ditto.
3314         (rs6000_adjust_priority): Ditto.
3315         (rs6000_sched_reorder): Ditto.
3316         (rs6000_sched_reorder2): Ditto.
3317         (insn_must_be_first_in_group): Ditto.
3318         (insn_must_be_last_in_group): Ditto.
3319         (rs6000_register_move_cost): Ditto.
3320         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
3321         rs6000_cpu.
3322
3323 2017-12-07  Julia Koval  <julia.koval@intel.com>
3324
3325         * config.gcc: Add vaesintrin.h.
3326         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
3327         New type.
3328         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3329         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
3330         New builtins.
3331         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3332         * config/i386/immintrin.h: Include vaesintrin.h.
3333         * config/i386/sse.md (vaesdec_<mode>): New pattern.
3334         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
3335         _mm_aesdec_epi128): New intrinsics.
3336
3337 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
3338
3339         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
3340         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
3341         c-family/c-spellcheck.cc.
3342         (best_macro_match::best_macro_match): Likewise.
3343         * spellcheck-tree.h
3344         (struct edit_distance_traits<cpp_hashnode *>): Move to
3345         c-family/c-spellcheck.h.
3346         (class best_macro_match): Likewise.
3347
3348 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3349
3350         PR tree-optimization/83293
3351         * gimple-ssa-strength-reduction.c (insert_initializers): Use
3352         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
3353         might insert into empty bb.
3354
3355         PR sanitizer/81281
3356         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
3357         simplify for plus with :c added, and pointer_plus without that.
3358         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
3359         with undefined overflow and the conversion is not widening,
3360         perform negation in utype and only convert to type afterwards.
3361         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
3362         simplify for plus with :c added, and pointer_plus without that.
3363         If type is integral with undefined overflow and the conversion is
3364         not widening, perform minus in utype and only convert to type
3365         afterwards.  Move the last pointer_diff_expr simplify into the
3366         two outermost ifs.
3367
3368 2017-12-06  Martin Sebor  <msebor@redhat.com>
3369
3370         PR tree-optimization/82646
3371         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
3372         strncpy, not maxlen.
3373
3374 2017-12-06  Martin Sebor  <msebor@redhat.com>
3375
3376         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
3377         nonstring.
3378
3379         PR tree-optimization/83075
3380         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
3381         strncat/strncpy don't change length of source string.
3382
3383 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
3384
3385         Revert
3386         2017-11-29  Martin Aberg  <maberg@gaisler.com>
3387
3388         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
3389         to prevent b2bst errata sequence.
3390         (sqrtdf2_fix): Likewise.
3391
3392 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3393
3394         PR tree-optimization/81945
3395         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
3396         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
3397         to dest_cfun has orig_loop_num set, either remap it to the new
3398         loop number if the loop got moved too, or clear it.
3399
3400 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
3401
3402         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
3403         to reservation.
3404         (thunderx2t99_nothing): New insn reservation.
3405         (thunderx2t99_mrs): New insn reservation.
3406         (thunderx2t99_multiple): New insn reservation.
3407         (thunderx2t99_alu_basi): Add bfx to reservation.
3408         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
3409
3410 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3411
3412         PR target/82248
3413         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
3414
3415 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
3416
3417         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
3418         tree-ssa-pre.c::remove_dead_inserted_code.
3419         * tree-ssa-dce.h: New file.
3420         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
3421         (remove_dead_inserted_code): Move and rename to function
3422         tree-ssa-dce.c::simple_dce_from_worklist.
3423         (pass_pre::execute): Update use.
3424
3425 2017-12-05  Richard Biener  <rguenther@suse.de>
3426
3427         PR tree-optimization/83277
3428         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
3429         to code-gen liveout vars.
3430
3431 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
3432
3433         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
3434         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
3435         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
3436         split condition.
3437
3438 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
3439
3440         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
3441         function.
3442         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
3443         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
3444         ASAN is enabled.
3445
3446 2017-12-05  Richard Biener  <rguenther@suse.de>
3447
3448         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
3449         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
3450         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
3451         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
3452
3453 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3454
3455         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
3456
3457 2017-12-05  Martin Liska  <mliska@suse.cz>
3458             Jakub Jelinek  <jakub@redhat.com>
3459
3460         * doc/invoke.texi: Document the options.
3461         * flag-types.h (enum sanitize_code): Add
3462         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
3463         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
3464         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
3465         * opts.c: Define new sanitizer options.
3466         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
3467         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
3468
3469 2017-12-05  Julia Koval  <julia.koval@intel.com>
3470
3471         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
3472         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
3473         (ix86_handle_option): Handle -mavx512vnni.
3474         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
3475         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
3476         * config/i386/i386-c (__AVX512VNNI__): New.
3477         * config/i386/i386.c (ix86_target_string): Handle new option.
3478         (ix86_valid_target_attribute_inner_p): Handle new option.
3479         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
3480         * config/i386/i386.opt (mavx512vnni): New option.
3481
3482 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3483
3484         PR target/81616
3485         * athlon.md: Disable for generic.
3486         * haswell.md: Enable for generic.
3487         * i386.c (ix86_sched_init_global): Add core hooks for generic.
3488         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
3489         to 4.
3490         (ix86_adjust_cost): Move generic to haswell path.
3491
3492 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
3493
3494         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
3495         instead of MEM_P in a couple more places.  Fix formatting issues.
3496
3497 2017-12-04  Jim Wilson  <jimw@sifive.com>
3498
3499         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
3500         instead of GP_REG_LAST-1.
3501         (riscv_adjust_libcall_cfi_prologue): Likewise.
3502         (riscv_adjust_libcall_cri_epilogue): Likewise.
3503         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
3504         comment.
3505
3506 2017-12-04  Luis Machado  <luis.machado@linaro.org>
3507
3508         * ipa-pure-const.c (check_decl): Add missing newline.
3509         (state_from_flags): Likewise.
3510
3511 2017-12-04  Jeff Law  <law@redhat.com>
3512
3513         PR tree-optimizatin/78496
3514         * gimple-ssa-evrp-analyze.h
3515         (evrp_range_analyzer::get_vr_values): Simplify.
3516         * gimple-ssa-evrp-analyze.c: Corresponding changes.
3517         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
3518         and gimple-ssa-evrp-analyze.h.
3519         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
3520         (simplify_stmt_for_jump_threading): Copy a blob of code from
3521         tree-vrp.c to use ranges to simplify statements.
3522         (dom_opt_dom_walker::before_dom_children): Call
3523         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
3524         (dom_opt_dom_walker::after_dom_children): Similarly for
3525         evrp_range_analyzer::leave.
3526         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
3527         conditionals.
3528
3529         * gimple-ssa-evrp-analyze.c
3530         (evrp_range_analyzer::extract_range_from_stmt):  Always use
3531         vr_values::update_value_range so preexisting range info is
3532         medged with new range info, even if the new range is VR_VARYING.
3533
3534 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3535
3536         * combine.c: Adjust comment.
3537         (use_crosses_set_p): Delete.
3538         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
3539         (try_combine): Ditto.
3540
3541 2017-12-04  Richard Biener  <rguenther@suse.de>
3542
3543         PR tree-optimization/83255
3544         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
3545         Re-add zero-iteration check.
3546
3547 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3548
3549         PR rtl-optimization/83245
3550         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
3551         hard registers as earlyclobber, also if not in an asm.
3552
3553 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3554
3555         PR bootstrap/83265
3556         Revert
3557         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3558
3559         PR target/43871
3560         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3561         rs6000_cpu based on cpu_index, not tune_index.
3562
3563 2017-12-04  Richard Biener  <rguenther@suse.de>
3564
3565         PR tree-optimization/83238
3566         * graphite-scop-detection.c (scop_detection::merge_sese): Make
3567         code match comment, rejecting invalid SESE regions.
3568
3569 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
3570
3571         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
3572         require base operand is a REG_POINTER prior to reload on targets
3573         with non-equivalent space registers.
3574
3575 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3576
3577         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
3578         (update_specialized_profile): Fix updating of counts.
3579         (perhaps_add_new_callers): Likewise.
3580
3581 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3582
3583         PR target/81616
3584         * x86-tune.def: Remove obsolette FIXMEs.
3585         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
3586         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
3587         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
3588         Enable for generic.
3589         (X86_TUNE_PAD_RETURNS): Disable for generic.
3590
3591 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
3592
3593         PR tree-optimization/83170
3594         PR tree-optimization/83241
3595         * gimple-ssa-store-merging.c
3596         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
3597         gimple_vuse (ins_stmt) in case it has changed.
3598         (imm_store_chain_info::output_merged_store): Likewise.
3599
3600         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
3601         POINTER_DIFF_EXPR.
3602
3603         PR c++/81212
3604         * tree-cfg.c (pass_warn_function_return::execute): Handle
3605         __builtin_ubsan_handle_missing_return like __builtin_unreachable
3606         with BUILTINS_LOCATION.
3607
3608         PR target/78643
3609         PR target/80583
3610         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
3611         is BLKmode for vector field with vector raw mode, use TYPE_MODE
3612         instead of DECL_MODE.
3613
3614         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
3615         last argument to rtx pointer.
3616         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
3617         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
3618         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
3619         depending on the chosen ISAs.
3620         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
3621         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
3622         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
3623         callers.
3624         * config/i386/sse.md (mov<mode>_internal): Likewise.
3625         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
3626
3627 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3628
3629         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
3630
3631 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3632
3633         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
3634         parameters from prototype.
3635         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
3636         parameters.  Don't print a comment.
3637         (emit_fusion_gpr_load): Adjust.
3638         (emit_fusion_load_store): Adjust.
3639         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
3640         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
3641         comment on the second line.
3642
3643 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3644
3645         PR target/43871
3646         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3647         rs6000_cpu based on cpu_index, not tune_index.
3648
3649 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3650
3651         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
3652         which_alternative instead of which_alternative + 1.
3653         (output_asm_insn): Print an extra tab if the template is short.
3654
3655 2017-12-01  Jim Wilson  <jimw@sifive.com>
3656
3657         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
3658         comment.
3659         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
3660         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
3661         reference.
3662         * doc/tm.texi: Regenerate.
3663
3664 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3665
3666         PR target/81959
3667         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
3668         whether we can allocate pseudos before trying to fix an address.
3669         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
3670         memory address is indexed or indirect.
3671         (floatuns_<mode>si2_hw2): Likewise.
3672
3673 2017-12-01  Jason Merrill  <jason@redhat.com>
3674
3675         * Makefile.in (TAGS): Add c-family/*.cc.
3676
3677 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
3678
3679         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
3680         (call_value_insn): Likewise.
3681         (sibcall_insn): Likewise.
3682         (sibcall_value_insn): Likewise.
3683         (movsi_aarch64): Likewise.
3684         (movdi_aarch64): Likewise.
3685         (add_losym_): Likewise.
3686         (ldr_got_small_): Likewise.
3687         (ldr_got_small_sidi): Likewise.
3688         (ldr_got_small_28k_): Likewise.
3689         (ldr_got_small_28k_sidi): Likewise.
3690         * config/aarch64/aarch64.c (aarch64_print_address_internal):
3691         Move output_addr_const to symbolic case. Add error check.
3692
3693 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3694
3695         * config/s390/predicates.md (plus16_Q_operand): New predicate.
3696         * config/s390/s390.md: Disable MVC merging peephole if it would
3697         disable operand forwarding.
3698         (new peephole2): Split MVCs if it would turn them into up to 2
3699         forwardable MVCs.
3700
3701 2017-12-01  Richard Biener  <rguenther@suse.de>
3702
3703         PR tree-optimization/83232
3704         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
3705         detection of same access. Instead of breaking the group here
3706         do not consider the duplicate.  Add comment explaining real fix.
3707
3708 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
3709
3710         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
3711
3712 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
3713
3714         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
3715
3716 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
3717
3718         * function.h (struct function): Remove cilk_frame_decl,
3719         is_cilk_function and calls_cilk_spawn fields.
3720         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
3721         field.
3722         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
3723         cilk_elemental field.
3724         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
3725         * target.def: Adjust comment.
3726         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3727         Don't test cilk_elemental.
3728
3729         PR tree-optimization/83233
3730         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
3731         bswap_stat name for the struct.
3732
3733         PR c/79153
3734         * tree.h (SWITCH_BREAK_LABEL_P): Define.
3735         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
3736         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
3737         SWITCH_BREAK_LABEL_P set on the label.
3738         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
3739         added for default case if it was missing and not all cases covered.
3740         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
3741         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
3742         set on the label.
3743         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
3744         to avoid -Wimplicit-fallthrough warning.
3745         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
3746         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
3747
3748         PR tree-optimization/83221
3749         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
3750         down by 16.
3751         (init_reassoc): Formatting fix.
3752
3753         PR sanitizer/81275
3754         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
3755         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
3756         is diagnosed.
3757
3758         PR sanitizer/83219
3759         * tree-cfg.c: Include asan.h.
3760         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
3761
3762 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3763
3764         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
3765
3766 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3767
3768         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
3769         vpcmpeqd instruction.
3770
3771 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3772
3773         * config/i386/i386.c (standard_sse_constant_opcode): Fix
3774         registers type for 128bit mode.
3775
3776 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
3777
3778         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
3779         of ;;.
3780         * gengtype-state.c (read_state_pair): Likewise.
3781         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
3782         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
3783         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
3784         * ifcvt.c (noce_try_store_flag_constants): Likewise.
3785         * tree-ssa-ccp.c (ccp_finalize): Likewise.
3786         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
3787         * builtins.c (fold_builtin_3): Likewise.
3788         * graphite-scop-detection.c
3789         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
3790         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
3791         Likewise.
3792
3793 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
3794
3795         PR sanitizer/81697
3796         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
3797         parameter. Return true if ignore_decl_rtl_set_p is true and other
3798         conditions are satisfied.
3799         * asan.h (asan_protect_global): Add new parameter.
3800         * varasm.c (categorize_decl_for_section): Pass true as second parameter
3801         to asan_protect_global calls.
3802
3803 2017-11-30  Jim Wilson  <jimw@sifive.com>
3804
3805         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
3806         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
3807         -mstrict-align, add info on default value.  Delete redundant lines for
3808         -mabi.  Add missing -mexplicit-relocs docs.
3809
3810 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3811
3812         * config/arc/arc.md (trap): New pattern.
3813
3814 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3815
3816         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
3817         instruction to end into a delay slot.
3818         * config/arc/arc.md (cond_delay_insn): Check if the instruction
3819         can be placed into a delay slot against reg_note.
3820
3821 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3822
3823         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
3824         labels number of usages.
3825
3826 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3827
3828         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
3829         function.
3830         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
3831
3832 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
3833
3834         PR target/83210
3835         * internal-fn.c (expand_mul_overflow): Optimize unsigned
3836         multiplication by power of 2 constant into two shifts + comparison.
3837
3838 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
3839
3840         PR target/81616
3841         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
3842
3843 2017-11-30  Richard Biener  <rguenther@suse.de>
3844
3845         PR tree-optimization/83202
3846         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
3847         allow_peel argument and guard peeling.
3848         (canonicalize_loop_induction_variables): Likewise.
3849         (canonicalize_induction_variables): Pass false.
3850         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
3851         peeling from cunrolli.
3852
3853 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3854
3855         * combine.c (try_combine): Print a message to dump file whenever
3856         I0, I1, or I2 cannot be combined into I3.
3857
3858 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3859
3860         PR rtl-optimization/83156
3861         PR rtl-optimization/82621
3862         * combine.c (try_combine): Don't split an I2 if one of the dests is
3863         set again before I3.  Allow unused dests.
3864
3865 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3866
3867         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
3868
3869 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
3870
3871         PR rtl-optimization/80818
3872         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
3873         recursively.  Use insn code for clobber.
3874         (lra_set_insn_recog_data): Pass the new arg to
3875         collect_non_operand_hard_regs.
3876         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
3877         code for clobber.
3878         (lra_update_insn_regno_info): Pass insn to
3879         add_regs_to_insn_regno_info.
3880
3881 2017-11-29  Jim Wilson  <jimw@sifive.com>
3882             Andrew Waterman  <andrew@sifive.com>
3883
3884         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
3885         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
3886         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
3887         use SINGLE_SHIFT_COST.
3888         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
3889         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
3890
3891 2017-11-29  Julia Koval  <julia.koval@intel.com>
3892
3893         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
3894         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
3895         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
3896         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
3897         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
3898         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
3899         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
3900         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
3901         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
3902         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
3903         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
3904         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
3905         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
3906         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
3907         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
3908         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
3909         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
3910         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
3911         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
3912         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
3913         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
3914         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
3915         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
3916         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
3917         __builtin_ia32_vpshldv_v2di_mask,
3918         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
3919         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
3920         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
3921
3922 2017-11-29  Julia Koval  <julia.koval@intel.com>
3923
3924         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
3925         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
3926         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
3927         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
3928         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
3929         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
3930         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
3931         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
3932         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
3933         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
3934         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
3935         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
3936         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
3937         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
3938         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
3939         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
3940         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
3941         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
3942         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
3943         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
3944         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
3945
3946 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3947
3948         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
3949         movsi_pic_gotdata_op instruction as a load for the UT699 errata
3950         workaround.
3951
3952 2017-11-29  Martin Aberg  <maberg@gaisler.com>
3953
3954         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
3955         to prevent b2bst errata sequence.
3956         (sqrtdf2_fix): Likewise.
3957
3958 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3959
3960         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
3961         (div_sqrt_insn_p): New function.
3962         (sparc_do_work_around_errata): Insert NOP instructions to
3963         prevent sequences that could trigger the TN-0013 errata for
3964         certain LEON3 processors.
3965         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
3966         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
3967         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
3968         (in_branch_delay): Prevent div and sqrt in delay slot if
3969         fix_lost_divsqrt.
3970         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
3971
3972 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3973
3974         * config/sparc/sparc.c (atomic_insn_p): New function.
3975         (sparc_do_work_around_errata): Insert NOP instructions to
3976         prevent sequences that could trigger the TN-0010 errata for
3977         UT700.
3978         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
3979         instruction referable in atomic_insns_p.
3980
3981 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3982
3983         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
3984         (atomic_compare_and_swap_leon3_1): Likewise.
3985         (ldstub): Likewise.
3986
3987 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3988
3989         * config/sparc/sparc.c (fpop_insn_p): New function.
3990         (sparc_do_work_around_errata): Insert NOP instructions to
3991         prevent sequences that could trigger the TN-0012 errata for
3992         GR712RC.
3993         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
3994         * config/sparc/sparc.md (fix_gr712rc): New attribute.
3995         (in_branch_annul_delay): Prevent floating-point instructions
3996         in delay slot of annulled integer branch.
3997
3998 2017-11-29  Richard Biener  <rguenther@suse.de>
3999
4000         PR tree-optimization/83202
4001         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
4002         (bst_fail): Use it.
4003         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
4004         nodes vectorized to the same stmts multiple times.
4005         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
4006         (vect_analyze_slp_instance): Adjust.
4007         (scalar_stmts_to_slp_tree_map_t): New typedef.
4008         (vect_schedule_slp_instance): Add a map recording the SLP node
4009         representing the vectorized stmts for a set of scalar stmts.
4010         Avoid code-generating redundancies.
4011         (vect_schedule_slp): Allocate map and pass it down.
4012
4013 2017-11-29  Nathan Sidwell  <nathan@acm.org>
4014
4015         PR c++/83187
4016         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
4017         type if it is new.
4018
4019 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
4020
4021         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
4022         cases for printing LDP/STP memory addresses.
4023         (aarch64_print_address_internal): Renamed from
4024         aarch64_print_operand_address, added parameter, add Pmode check.
4025         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
4026         (aarch64_print_operand_address): Indirect to
4027         aarch64_print_address_internal.
4028         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
4029         'y' operand output specifier.
4030
4031 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
4032
4033         PR middle-end/83185
4034         * tree.c (build_simple_mem_ref_loc): Handle
4035         get_addr_base_and_unit_offset returning a MEM_REF.
4036
4037         PR middle-end/80929
4038         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
4039
4040         PR target/80819
4041         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
4042         alternative.
4043
4044 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
4045
4046         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
4047         m_x_offset.
4048         (layout::move_to_column): Likewise.
4049
4050 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4051
4052         PR sanitizer/81275
4053         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
4054         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
4055
4056 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4057             Martin Jambor  <mjambor@suse.cz>
4058
4059         PR ipa/82808
4060         * tree.h (expr_type_first_operand_type_p): Declare
4061         * tree.c (expr_type_first_operand_type_p): New function.
4062         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
4063         (ipa_value_from_jfunc): Adjust declaration.
4064         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
4065         Use it as result type for arithmetics, unless it is NULL in which case
4066         be more conservative.
4067         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
4068         ipa_get_jf_pass_through_result.
4069         (propagate_vals_across_pass_through): Likewise.
4070         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
4071         is to propagate_vals_across_pass_through.
4072         (propagate_constants_across_call): Pass PARM_TYPE to
4073         propagate_scalar_across_jump_function.
4074         (find_more_scalar_values_for_callers_subset): Pass parameter type to
4075         ipa_value_from_jfunc.
4076         (cgraph_edge_brings_all_scalars_for_node): Likewise.
4077         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
4078         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
4079         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
4080         target_type, pass it to ipa_value_from_jfunc.
4081         (update_indirect_edges_after_inlining): Pass parameter type to
4082         try_make_edge_direct_simple_call.
4083
4084 2017-11-28  Jeff Law  <law@redhat.com>
4085
4086         * gimple-ssa-evrp-analyze.c
4087         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
4088         refine ranges if scev_initialized_p returns true.
4089         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
4090
4091 2017-11-28  Julia Koval  <julia.koval@intel.com>
4092
4093         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
4094         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
4095         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
4096         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
4097         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
4098         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
4099         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
4100         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
4101         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
4102         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
4103         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
4104         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
4105         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
4106         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
4107         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
4108         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
4109         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
4110         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
4111         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
4112         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
4113         __builtin_ia32_vpshrd_v2di_mask): New builtins.
4114         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
4115
4116 2017-11-28  Julia Koval  <julia.koval@intel.com>
4117
4118         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
4119         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
4120         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
4121         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
4122         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
4123         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
4124         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
4125         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
4126         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
4127         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
4128         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
4129         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
4130         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
4131         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
4132         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
4133         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
4134         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
4135         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
4136         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
4137         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
4138         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
4139         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
4140         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
4141         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
4142         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
4143         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
4144         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
4145         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
4146         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
4147         __builtin_ia32_vpshld_v2di_mask): New builtins.
4148         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4149         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
4150
4151 2017-11-28  Richard Biener  <rguenther@suse.de>
4152
4153         PR tree-optimization/80776
4154         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
4155         Declare.
4156         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
4157         New function.
4158         (evrp_range_analyzer::record_ranges_from_incoming_edges):
4159         If the incoming edge is an effective fallthru because the other
4160         edge only reaches a __builtin_unreachable () then record ranges
4161         derived from the controlling condition in SSA info.
4162         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
4163         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4164
4165 2017-11-28  Olivier Hainque  <hainque@adacore.com>
4166
4167         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
4168         on mingw build hosts.
4169
4170 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4171
4172         PR debug/81307
4173         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
4174
4175 2017-11-28  Richard Biener  <rguenther@suse.de>
4176
4177         PR middle-end/83141
4178         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
4179         copies generated from memcpy use a character array as reference
4180         type.
4181
4182 2017-11-28  Julia Koval  <julia.koval@intel.com>
4183             Sebastian Peryt  <sebastian.peryt@intel.com>
4184
4185         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
4186         c-family/c-cilkplus.o, c-family/array-notation-common.o,
4187         cilk-common.o, cilk.h, cilk-common.c): Remove.
4188         * builtin-types.def
4189         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
4190         * builtins.c (is_builtin_name): Remove cilkplus condition.
4191         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
4192         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
4193         cilk-builtins.def, cilkplus.def): Remove.
4194         * cif-code.def (CILK_SPAWN): Remove.
4195         * cilk-builtins.def: Delete.
4196         * cilk-common.c: Ditto.
4197         * cilk.h: Ditto.
4198         * cilkplus.def: Ditto.
4199         * config/darwin.h (fcilkplus): Delete.
4200         * cppbuiltin.c: Ditto.
4201         * doc/extend.texi: Remove cilkplus doc.
4202         * doc/generic.texi: Ditto.
4203         * doc/invoke.texi: Ditto.
4204         * doc/passes.texi: Ditto.
4205         * gcc.c (fcilkplus): Remove.
4206         * gengtype.c (cilk.h): Remove.
4207         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
4208         support.
4209         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
4210         Remove.
4211         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
4212         gimplify_call_expr,
4213         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
4214         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
4215         cilkplus conditions.
4216         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
4217         inline_read_section): Ditto.
4218         * ipa-inline-analysis.c (cilk.h): Remove.
4219         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
4220         * lto-wrapper.c (merge_and_complain, append_compiler_options,
4221         append_linker_options): Remove condition for fcilkplus.
4222         * lto/lto-lang.c (cilk.h): Remove.
4223         (lto_init): Remove condition for fcilkplus.
4224         * omp-expand.c (expand_cilk_for_call): Delete.
4225         (expand_omp_taskreg, expand_omp_for_static_chunk,
4226         expand_omp_for): Remove cilkplus
4227         conditions.
4228         (expand_cilk_for): Delete.
4229         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
4230         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
4231         execute_lower_omp, diagnose_sb_0): Ditto.
4232         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
4233         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4234         * tree-nested.c: Ditto.
4235         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
4236         (dump_generic_node): Ditto.
4237         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4238         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
4239         Delete.
4240         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
4241
4242 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4243
4244         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
4245         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
4246         for vector mode and !TARGET_SIMD.
4247
4248 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4249
4250         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
4251         Adjust comment.
4252         * tree.h (SWITCH_LABELS): Remove.
4253         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
4254         assert SWITCH_BODY is non-NULL.
4255         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
4256         handling.
4257         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
4258
4259         PR tree-optimization/80788
4260         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
4261         has TREE_OVERFLOW set, call drop_tree_overflow.
4262
4263 2017-11-28  Richard Biener  <rguenther@suse.de>
4264
4265         PR tree-optimization/83158
4266         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
4267
4268 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
4269
4270         PR 81288/target
4271         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
4272         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
4273
4274 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
4275
4276         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
4277         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
4278
4279 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
4280
4281         PR middle_end/82333
4282         * varasm.c (compare_constant): Take the mode of the constants into
4283         account when comparing floating point constants.
4284
4285 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
4286
4287         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
4288         from explicit instantiation of debug_helper.
4289         * vec.h (DEFINE_DEBUG_VEC): Ditto.
4290
4291 2017-11-27  Richard Biener  <rguenther@suse.de>
4292
4293         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
4294         refactor a bit.
4295
4296 2017-11-27  Richard Biener  <rguenther@suse.de>
4297
4298         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
4299         (type_hash_canon): Also clear int_cst_hash_table entry for
4300         TYPE_MIN/MAX_VALUE.
4301         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
4302
4303 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
4304
4305         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4306         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4307         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4308
4309 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4310
4311         * hash-map.h (gt_cleare_cache): Avoid UB.
4312
4313 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
4314
4315         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
4316         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
4317         (decide_unroll_runtime_iterations): Likewise.
4318         (decide_unroll_stupid): Likewise.
4319
4320 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4321
4322         PR target/83109
4323         * config/i386/i386.md: Add a loop with incssp.
4324
4325 2017-11-27  Martin Jambor  <mjambor@suse.cz>
4326
4327         PR tree-optimization/81248
4328         * tree-sra.c (splice_param_accesses): Remove size check.
4329         (decide_one_param_reduction): Fix size check.
4330         * gimple-pretty-print.c (dump_profile): Silence warning.
4331         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
4332
4333 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
4334
4335         PR debug/81307
4336         * dbxout.c (lastlineno): New variable.
4337         (dbx_debug_hooks): Use dbxout_switch_text_section as
4338         switch_text_section debug hook.
4339         (dbxout_function_end): Switch to current_function_section
4340         rather than function_section.  If crtl->has_bb_partition,
4341         output just one N_FUN, depending on in_cold_section_p.
4342         (dbxout_source_line): Remember last lineno in lastlineno.
4343         (dbxout_switch_text_section): New function.
4344         (dbxout_function_decl): Adjust dbxout_block caller.
4345         (dbx_block_with_cold_children): New function.
4346         (dbxout_block): Return true if any LBRAC/RBRAC have been
4347         emitted.  Use dbx_block_with_cold_children at depth == 0
4348         in second partition.  Add PARENT_BLOCKNUM argument, pass
4349         it optionally adjusted to children.  Output LBRAC/RBRAC
4350         around recursive call only if the block is in the current
4351         partition, if not and anything was output, emit empty
4352         range LBRAC/RBRAC.
4353         * final.c (final_scan_insn): Compute cold_function_name
4354         before calling switch_text_section debug hook.  Call
4355         that hook even if dwarf2out_do_frame if not emitting
4356         dwarf debug info.
4357
4358         PR target/83100
4359         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
4360         TREE_READONLY decls.
4361
4362 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4363
4364         PR rtl-optimization/82488
4365         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
4366
4367 2017-11-26  Julia Koval  <julia.koval@intel.com>
4368
4369         * config/i386/i386.c (processor_target_table): Add skylake_cost for
4370         skylake-avx512.
4371         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
4372         skylake_cost): New.
4373
4374 2017-11-26  Julia Koval  <julia.koval@intel.com>
4375
4376         * config/i386/driver-i386.c (host_detect_local_cpu):
4377         Detect skylake-avx512.
4378
4379 2017-11-26  Julia Koval  <julia.koval@intel.com>
4380
4381         * config.gcc: Add -march=cannonlake.
4382         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
4383         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
4384         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
4385         (PTA_CANNONLAKE): New.
4386         (processor_target_table): Add cannonlake.
4387         (ix86_option_override_internal): Ditto.
4388         (fold_builtin_cpu): Ditto.
4389         (get_builtin_code_for_version): Handle cannonlake.
4390         (M_INTEL_COREI7_CANNONLAKE): New.
4391         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
4392         * doc/invoke.texi: Add -march=cannonlake.
4393
4394 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
4395
4396         * plugin.c (add_new_plugin): Use platform-specific library extensions.
4397         (try_init_one_plugin): Alternative implementation for MinGW.
4398         * Makefile.in (plugin_implib): New.
4399         (gengtype-lex.c): Fix broken AIX workaround.
4400         * configure: Regenerate.
4401         * doc/plugins.texi: Document support for MinGW.
4402
4403 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
4404
4405         PR rtl-optimization/81553
4406         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
4407         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
4408         is a shift where C1 has different mode than the whole shift, use C1's
4409         mode for MULT rather than the shift's mode.
4410
4411         PR target/82848
4412         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
4413         builtins not enabled in the currently selected ISA.
4414
4415 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
4416
4417         PR tree-optimization/71026
4418         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
4419         (insert_reciprocals): Change to insert reciprocals before a division
4420         by a square and to insert the square of a reciprocal.
4421         (execute_cse_reciprocals_1): Change to consider division by a square.
4422         (register_division_in): Add importance parameter.
4423
4424 2017-11-24  Richard Biener  <rguenther@suse.de>
4425
4426         PR tree-optimization/82402
4427         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
4428         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
4429
4430 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
4431
4432         * match.pd (0-ptr): New transformation.
4433
4434 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
4435
4436         PR bootstrap/83015
4437         * ipa-inline.c (inline_small_functions): Set current badnes correctly
4438         when skipping checking.
4439
4440 2017-11-24  Richard Biener  <rguenther@suse.de>
4441
4442         PR tree-optimization/83128
4443         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
4444         (vn_reference_lookup_3): Likewise.
4445
4446 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
4447
4448         PR sanitizer/83014
4449         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
4450         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
4451         tree_to_uhwi twice.
4452
4453         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
4454         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
4455         check for the latter with gimple_call_builtin_p.  Do not handle
4456         BUILT_IN_STPNCPY_CHK which is not a pass through call.
4457
4458 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
4459
4460         * config/arm/arm_neon.h: Fix pragma GCC push_options before
4461         vdot_u32.
4462
4463 2017-11-23  Julia Koval  <julia.koval@intel.com>
4464
4465         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
4466         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
4467         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
4468         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
4469         _mm512_maskz_expandloadu_epi16): New intrinsics.
4470         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
4471         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
4472         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
4473         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
4474         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
4475         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
4476         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
4477         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
4478         _mm256_maskz_expandloadu_epi8): New intrinsics.
4479         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
4480         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
4481         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
4482         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
4483         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
4484         * config/i386/sse.md (VI248_VLBW): New iterator.
4485         (expand<mode>_mask, expand<mode>_maskz): New patterns.
4486
4487 2017-11-23  Julia Koval  <julia.koval@intel.com>
4488
4489         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
4490         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
4491         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
4492         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
4493         _mm512_mask_compressstoreu_epi16): New.
4494         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
4495         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
4496         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
4497         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
4498         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
4499         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
4500         _mm256_mask_compressstoreu_epi8): New.
4501         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
4502         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
4503         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
4504         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
4505         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
4506         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
4507         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
4508         __builtin_ia32_compresshi128_mask,
4509         __builtin_ia32_compressstoreuqi512_mask,
4510         __builtin_ia32_compressstoreuhi512_mask,
4511         __builtin_ia32_compressstoreuqi256_mask,
4512         __builtin_ia32_compressstoreuqi128_mask,
4513         __builtin_ia32_compressstoreuhi256_mask,
4514         __builtin_ia32_compressstoreuhi128_mask): New builtins.
4515         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
4516         array for flags2.
4517         (ix86_expand_special_args_builtin): Handle new types.
4518         (s4fma_expand): Handle new builtin array.
4519         * config/i386/immintrin.h: Include new headers.
4520         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
4521         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
4522
4523 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
4524
4525         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
4526         fixes.  Declare temp and g variables at the top in order to avoid
4527         {} in most of the cases.
4528
4529 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
4530
4531         * match.pd (ptr-0): New transformation.
4532
4533 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
4534
4535         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
4536         (struct addr_mode_cost_table): New.
4537         (struct tune_params): Add field addr_mode_costs.
4538         * config/arm/arm.c (generic_addr_mode_costs): New.
4539         (arm_slowmul_tune): Initialise addr_mode_costs field.
4540         (arm_fastmul_tune): Likewise.
4541         (arm_strongarm_tune): Likewise.
4542         (arm_xscale_tune): Likewise.
4543         (arm_9e_tune): Likewise.
4544         (arm_marvell_pj4_tune): Likewise.
4545         (arm_v6t2_tune): Likewise.
4546         (arm_cortex_tune): Likewise.
4547         (arm_cortex_a8_tune): Likewise.
4548         (arm_cortex_a7_tune): Likewise.
4549         (arm_cortex_a15_tune): Likewise.
4550         (arm_cortex_a35_tune): Likewise.
4551         (arm_cortex_a53_tune): Likewise.
4552         (arm_cortex_a57_tune): Likewise.
4553         (arm_exynosm1_tune): Likewise.
4554         (arm_xgene1_tune): Likewise.
4555         (arm_cortex_a5_tune): Likewise.
4556         (arm_cortex_a9_tune): Likewise.
4557         (arm_cortex_a12_tune): Likewise.
4558         (arm_cortex_a73_tune): Likewise.
4559         (arm_v7m_tune): Likewise.
4560         (arm_cortex_m7_tune): Likewise.
4561         (arm_v6m_tune): Likewise.
4562         (arm_fa726te_tune): Likewise.
4563         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
4564
4565 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
4566
4567         * config/arm/arm.c (arm_mem_costs): New function.
4568         (arm_rtx_costs_internal): Use arm_mem_costs.
4569
4570 2017-11-23  Mark Wielaard  <mark@klomp.org>
4571
4572         * dwarf2out.c (init_sections_and_labels): Use generation to create
4573         unique ranges_section_label and ranges_base_label. Return generation.
4574         (output_rnglists): Add generation argument. Use generation to create
4575         unique ranges labels.
4576         (dwarf2out_finish): Get generation from init_sections_and_labels
4577         and pass generation to output_rnglists.
4578
4579 2017-11-23  Mike Stump  <mikestump@comcast.net>
4580             Eric Botcazou  <ebotcazou@adacore.com>
4581
4582         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
4583         * cfgloop.h (struct loop): Add unroll field.
4584         * function.h (struct function): Add has_unroll bitfield.
4585         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
4586         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
4587         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
4588         (pass_rtl_unroll_loops::gate): Likewise.
4589         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
4590         for which loop->unroll==1.
4591         (decide_unroll_constant_iterations): Use note for consistency and
4592         take loop->unroll into account.  Return early if loop->unroll is set.
4593         Fix thinko in existing test.
4594         (decide_unroll_runtime_iterations): Use note for consistency and
4595         take loop->unroll into account.
4596         (decide_unroll_stupid): Likewise.
4597         * lto-streamer-in.c (input_cfg): Read loop->unroll.
4598         * lto-streamer-out.c (output_cfg): Write loop->unroll.
4599         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
4600         New case.
4601         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
4602         (print_loop): Print loop->unroll if set.
4603         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
4604         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
4605         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
4606         New case.
4607         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
4608         loop->unroll is set and smaller than the trip count.  Otherwise bypass
4609         entirely the heuristics if loop->unroll is set.  Remove dead note.
4610         Fix off-by-one bug in other note.
4611         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
4612         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
4613         is greater than 1.
4614         (tree_unroll_loops_completely): Make static.
4615         (pass_complete_unroll::execute): Use correct type for variable.
4616         (pass_complete_unrolli::execute): Fix formatting.
4617         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
4618
4619 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4620
4621         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
4622         enable when TARGET_PREFER_AVX128 is set.
4623
4624 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4625
4626         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
4627         frequency.
4628         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
4629         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
4630
4631 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4632
4633         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
4634         frequencies. Fix estimation of aggregate parameters.
4635
4636 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4637
4638         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
4639         when inlining.
4640
4641 2017-11-23  Tom de Vries  <tom@codesourcery.com>
4642
4643         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
4644
4645 2017-11-23  Tom de Vries  <tom@codesourcery.com>
4646
4647         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
4648         macro.
4649
4650 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
4651
4652         PR target/83111
4653         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
4654         sibcall_value_pcrel_fdpic): Use local variable instead of
4655         operands[3].
4656         (calli_tbr_rel): Add missing operand 2.
4657         (call_valuei_tbr_rel): Add missing operand 3.
4658
4659 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
4660
4661         PR middle-end/82253
4662         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
4663         bitpos/bitsize covering the whole destination, use store_expr only if
4664         the complex mode is the same.  Otherwise, use expand_normal and if
4665         it returns CONCAT, subreg each part separately instead of trying to
4666         subreg the whole result.
4667
4668 2017-11-23  Richard Biener  <rguenther@suse.de>
4669
4670         PR tree-optimization/23094
4671         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
4672         come here from walking over backedges in the first iteration.
4673         (vn_reference_lookup_3): Skip clobbers that store the same value.
4674
4675 2017-11-23  Richard Biener  <rguenther@suse.de>
4676
4677         PR tree-optimization/81403
4678         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
4679         a block we need a leader relative to.
4680         (phi_translate_1): For nary processing require a leader from
4681         get_representative_for given we run expression simplification
4682         using match-and-simplify.  Remove previous fix.
4683
4684 2017-11-22  Jeff Law  <law@redhat.com>
4685
4686         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
4687         Use new method allocate_value_range rather than accessing the
4688         vrp_value_range_pool data member directly.
4689         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
4690         to use extract_range_from_stmt method to avoid need for
4691         extract_range_from_assignment method.
4692         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
4693         method rather than setting values_propgated data member directly.
4694         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
4695         and values propagated data members and extract_range_from_assignment
4696         method.  Reorder private data members to conform to standards.
4697         Add new methods set_lattice_propagation_complete and
4698         allocate_value_range.
4699
4700 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
4701
4702         PR rtl-optimization/83030
4703         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
4704         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
4705         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
4706         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
4707         CROSSING_JUMP_P flag is already set before setting it.
4708         * cfgrtl.c (fixup_partition_crossing): Likewise.
4709         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
4710         insn as useless.
4711
4712 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
4713
4714         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
4715         Handle the case where both arguments are using gen_const_vec_series.
4716
4717 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
4718
4719         PR c++/62170
4720         * pretty-print.c (pp_format): Move quoting implementation to
4721         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
4722         to pass address of "quote" local.
4723         (pp_begin_quote): New function.
4724         (pp_end_quote): New function.
4725         * pretty-print.h (printer_fn): Convert penultimate param from bool
4726         to bool *.
4727         (pp_begin_quote): New decl.
4728         (pp_end_quote): New decl.
4729         * tree-diagnostic.c (default_tree_printer): Convert penultimate
4730         param from bool to bool *.
4731         * tree-diagnostic.h (default_tree_printer): Likewise.
4732
4733 2017-11-22  Jeff Law  <law@redhat.com>
4734
4735         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
4736         Initialize vr_values.
4737         (evrp_range_analyzer::try_find_new_range): Call methods attached to
4738         vr_values via vr_values class instance rather than delegators.
4739         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
4740         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4741         (evrp_range_analyzer::push_value_range): Likewise.
4742         (evrp_range_analyzer::pop_value_range): Likewise.
4743         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
4744         most delegators.  Those remaining are exposed as public interfaces.
4745         Make vr_values a pointer and private.
4746         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
4747         vr_values.
4748         (evrp_range_analyzer::get_vr_value): New method.
4749         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
4750         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
4751         (class evrp_dom_walker): Attach evrp_folder class, initialize
4752         it in the ctor.  Remove temporary delegators.
4753         (evrp_dom_walker::before_dom_children): Call methods in attached
4754         evrp_range_analyzer class via class instance pointer.  Use
4755         free value_range_constant_singleton to remove need for
4756         op_with_constant_singleton_value delegator method.  Do not
4757         create a vrp_prop class instance for every call!  Narrow
4758         scope of a couple variables.
4759         (evrp_dom_walker::cleanup): Call methods in attached
4760         evrp_range_analyzer class via class instance pointer.
4761         * vr-values.h (class vr_values): Privatize many methods and
4762         data members.
4763
4764 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4765
4766         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
4767         * cfgexpand.c (expand_debug_expr): Remove handling for them.
4768         * expr.c (expand_expr_real_2): Likewise.
4769         * fold-const.c (const_unop): Likewise.
4770         * optabs-tree.c (optab_for_tree_code): Likewise.
4771         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
4772         * tree-inline.c (estimate_operator_cost): Likewise.
4773         * tree-pretty-print.c (dump_generic_node): Likewise.
4774         (op_code_prio): Likewise.
4775         (op_symbol_code): Likewise.
4776         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
4777         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
4778         * internal-fn.c (direct_internal_fn_optab): New function.
4779         (direct_internal_fn_array, direct_internal_fn_supported_p
4780         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
4781         * fold-const-call.c (fold_const_reduction): New function.
4782         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
4783         CFN_REDUC_MIN.
4784         * tree-vect-loop.c: Include internal-fn.h.
4785         (reduction_code_for_scalar_code): Rename to...
4786         (reduction_fn_for_scalar_code): ...this and return an internal
4787         function.
4788         (vect_model_reduction_cost): Take an internal_fn rather than
4789         a tree_code.
4790         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
4791         than assignments.
4792         (vectorizable_reduction): Use internal functions rather than tree
4793         codes for the reduction operation.  Update calls to the functions
4794         above.
4795         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
4796         Use calls to internal functions rather than REDUC tree codes.
4797         * config/aarch64/aarch64-simd.md: Update comment accordingly.
4798
4799 2017-11-22  Olivier Hainque  <hainque@adacore.com>
4800
4801         * config/vxworks.c (vxworks_override_options): Pick default
4802         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
4803         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
4804         DWARF_GNAT_ENCODINGS_DEFAULT.
4805         * config/vxworksae.h: Likewise.
4806
4807 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
4808
4809         PR tree-optimization/83104
4810         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
4811         not result.
4812
4813 2017-11-22  Marek Polacek  <polacek@redhat.com>
4814             H.J. Lu  <hongjiu.lu@intel.com>
4815             Jason Merrill  <jason@redhat.com>
4816
4817         PR c++/60336
4818         PR middle-end/67239
4819         PR target/68355
4820         * calls.c (initialize_argument_information): Call
4821         warn_parameter_passing_abi target hook.
4822         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
4823         argument onto stack.
4824         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
4825         * common.opt: Update -fabi-version description.
4826         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
4827         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
4828         int_size_in_bytes.
4829         (ix86_is_empty_record): New function.
4830         (ix86_warn_parameter_passing_abi): New function.
4831         (TARGET_EMPTY_RECORD_P): Redefine.
4832         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
4833         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
4834         * doc/tm.texi: Regenerated.
4835         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
4836         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
4837         * dwarf2out.c (get_ultimate_context): Move to tree.c.
4838         * explow.c (hard_function_value): Call arg_int_size_in_bytes
4839         instead of int_size_in_bytes.
4840         * expr.c (copy_blkmode_to_reg): Likewise.
4841         * function.c (aggregate_value_p): Return 0 for empty types.
4842         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
4843         target hook.
4844         (locate_and_pad_parm): Call arg size_in_bytes instead
4845         size_in_bytes.
4846         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
4847         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
4848         * target.def (empty_record_p, warn_parameter_passing_abi): New target
4849         hooks.
4850         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
4851         (std_gimplify_va_arg_expr): Skip empty records.  Call
4852         arg_size_in_bytes instead size_in_bytes.
4853         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
4854         * tree-core.h (tree_type_common): Add empty_flag.
4855         (tree_decl_common): Update comments.
4856         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
4857         DECL_PADDING_P.
4858         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
4859         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
4860         DECL_PADDING_P.
4861         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
4862         * tree.c (default_is_empty_type): New function.
4863         (default_is_empty_record): New function.
4864         (arg_int_size_in_bytes): New function.
4865         (arg_size_in_bytes): New function.
4866         (get_ultimate_context): New function.
4867         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
4868         TRANSLATION_UNIT_WARN_EMPTY_P.
4869         (default_is_empty_record, arg_int_size_in_bytes,
4870         arg_size_in_bytes, get_ultimate_context): Declare.
4871
4872 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4873
4874         * config/arm/arm.c (cmse_clear_registers): New function.
4875         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
4876         code by call to cmse_clear_registers.
4877         (cmse_nonsecure_entry_clear_before_return): Likewise.
4878
4879 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
4880
4881         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
4882         (vdot_s32, vdotq_s32): New.
4883         (vdot_lane_u32, vdotq_lane_u32): New.
4884         (vdot_lane_s32, vdotq_lane_s32): New.
4885
4886
4887 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4888
4889         PR middle-end/82547
4890         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
4891         for unsigned values with fewer HWIs than the precision.
4892         (test_overflow): New function.
4893         (wide_int_cc_tests): Call it.
4894
4895 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4896
4897         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
4898         has the same mode class as Pmode.
4899
4900 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4901
4902         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
4903         padding_bits_to_clear_ptr.
4904         (cmse_nonsecure_entry_clear_before_return): Likewise.
4905
4906 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4907
4908         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
4909         auto_sbitap instead of integer bitfield to control register needing
4910         clearing.
4911
4912 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
4913
4914         PR tree-optimization/83044
4915         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
4916         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
4917         that need the upper bound.  Subtract offset from
4918         get_addr_base_and_unit_offset only if positive and subtract it
4919         before division by eltsize rather than after it.
4920
4921         PR debug/83084
4922         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
4923         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
4924         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
4925         asm.
4926
4927         PR middle-end/82875
4928         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
4929         expand_binop with *mul_widen_optab, make sure at least one of the
4930         operands doesn't have VOIDmode.
4931
4932         PR debug/83034
4933         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
4934
4935         PR rtl-optimization/82044
4936         PR tree-optimization/82042
4937         * dse.c (record_store): Check for overflow.
4938         (check_mem_read_rtx): Properly check for overflow if width == -1, call
4939         add_wild_read instead of clear_rhs_from_active_local_stores on
4940         overflow and log it into dump_file.
4941
4942 2017-11-22  Richard Biener  <rguenther@suse.de>
4943
4944         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
4945         fake edges to exit when looking for a place to insert.
4946         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
4947         and remove.
4948         (insert_into_preds_of_block): Commit edge insertion immediately,
4949         assert that doesn't require new BBs.
4950         (fini_pre): Release expressions.
4951         (pass_pre::execute): Shuffle things around a bit, if the fn
4952         is too large do not compute AVAIL either as this is really the
4953         quadratic bit.
4954
4955 2017-11-22  Richard Biener  <rguenther@suse.de>
4956
4957         PR tree-optimization/83089
4958         * tree-if-conv.c (pass_if_conversion::execute): If anything
4959         changed reset SCEV and free the number of iteration estimates.
4960
4961 2017-11-21  Martin Sebor  <msebor@redhat.com>
4962
4963         PR tree-optimization/82945
4964         * calls.h (warn_nonstring_bound): Remove unused function.
4965
4966 2017-11-21  Martin Sebor  <msebor@redhat.com>
4967
4968         PR tree-optimization/82945
4969         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
4970         * calls.h (maybe_warn_nonstring_arg): Declare new function.
4971         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
4972         functions.
4973         (initialize_argument_information): Call maybe_warn_nonstring_arg.
4974         * calls.h (get_attr_nonstring_decl): Declare new function.
4975         * doc/extend.texi (attribute nonstring): Update.
4976         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
4977         get_attr_nonstring_decl and handle it.
4978         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
4979         detection of nul-termination.
4980         (strlen_to_stridx): Change to a pointer.
4981         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
4982         (pass_strlen::execute): Same.
4983
4984 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4985
4986         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
4987         for the new option -mprefer-vector-width=[none|128|256|512].
4988         * config/i386/i386.c (ix86_target_string): remove old style options
4989         -mprefer-avx256 and make -mprefer-avx128 as alias.
4990         (ix86_option_override_internal):  Apply defaults for the
4991         -mprefer-vector-width=[128|256] option.
4992         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
4993         Implement macros to work with -mprefer-vector-width=.
4994         * config/i386/i386.opt: Implemented option
4995         -mprefer-vector-width=[none|128|256|512].
4996         * doc/invoke.texi: Documentation for
4997         -mprefer-vector-width=[none|128|256|512].
4998
4999 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
5000
5001         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
5002
5003 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
5004
5005         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
5006
5007 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
5008
5009         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
5010         POINTER_PLUS_EXPR.
5011         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
5012         * expr.c (expand_expr_real_2): Likewise.
5013         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
5014         fold_binary_loc): Likewise.
5015         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
5016         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
5017         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
5018         MINUS_EXPR transformations.
5019         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
5020         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
5021         * tree-inline.c (estimate_operator_cost): Likewise.
5022         * tree-pretty-print.c (dump_generic_node, op_code_prio,
5023         op_symbol_code): Likewise.
5024         * tree-vect-stmts.c (vectorizable_operation): Likewise.
5025         * vr-values.c (extract_range_from_binary_expr): Likewise.
5026         * varasm.c (initializer_constant_valid_p_1): Likewise.
5027         * tree.def: New tree code POINTER_DIFF_EXPR.
5028
5029 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
5030
5031         * config/i386/i386.md (*bswap<mode>2_movbe): Add
5032         integer suffix to movbe mnemonic.
5033         (*bswaphi2_movbe): Ditto.
5034         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
5035
5036 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5037
5038         PR c++/83045
5039         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
5040         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
5041         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
5042
5043 2017-11-21  Martin Liska  <mliska@suse.cz>
5044
5045         * tree-inline.c (expand_call_inline): Remove not needed
5046         xstrdup_for_dump.
5047
5048 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
5049             Jakub Jelinek  <jakub@redhat.com>
5050
5051         PR target/82880
5052         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
5053         Remove static keyword from f variable.
5054
5055 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5056
5057         PR tree-optimization/83086
5058         * gimple-ssa-store-merging.c
5059         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
5060         rather than n.base_addr.
5061
5062 2017-11-21  Martin Liska  <mliska@suse.cz>
5063
5064         PR rtl-optimization/82044
5065         PR tree-optimization/82042
5066         * dse.c (check_mem_read_rtx): Check for overflow.
5067
5068 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5069
5070         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
5071         typo in comment.
5072
5073 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5074
5075         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
5076         and its corresponding call arg location note.
5077
5078 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5079             Andrew Burgess  <andrew.burgess@embecosm.com>
5080
5081         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
5082         declaration.
5083         (arc_return_slot_offset): Likewise.
5084         (arc_eh_return_address_location): New declaration.
5085         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5086         (MUST_SAVE_REGISTER): Add exception handler case.
5087         (MUST_SAVE_RETURN_ADDR): Likewise.
5088         (arc_frame_pointer_required): Likewise.
5089         (arc_frame_pointer_needed): New function.
5090         (arc_compute_frame_size): Changed.
5091         (arc_expand_prologue): Likewise.
5092         (arc_expand_epilogue): Likewise.
5093         (arc_initial_elimination_offset): Likewise.
5094         (arc_return_slot_offset): Delete.
5095         (arc_eh_return_address_location): New function.
5096         (arc_builtin_setjmp_frame_value): Likewise.
5097         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
5098         (EH_RETURN_STACKADJ_RTX): Define.
5099         (EH_RETURN_HANDLER_RTX): Likewise.
5100         * config/arc/arc.md (eh_return): Delete.
5101
5102 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5103
5104         * print-tree.h (debug_vec_tree): Remove prototype.
5105         * gdbinit.in (pvt): Remove macro.
5106
5107 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5108
5109         PR tree-optimization/83047
5110         * gimple-ssa-store-merging.c
5111         (imm_store_chain_info::output_merged_store): If the loads with the
5112         same vuse are in different basic blocks, for load_gsi pick a load
5113         location that is dominated by the other loads.
5114
5115         PR c++/83059
5116         * config/i386/i386.c (ix86_memmodel_check): Start
5117         -Winvalid-memory-model diagnostics with lowercase letter.
5118
5119         PR debug/82718
5120         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
5121         set in_cold_section_p to the partition containing loc_list->first.
5122         When seeing loc_list->last_before_switch node, update secname and
5123         perform range_across_switch second partition handling only after that.
5124
5125         PR debug/82933
5126         * run-rtl-passes.c: Include debug.h.
5127         (run_rtl_passes): Call debug_hooks->assembly_start.
5128         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
5129         multiple times.
5130
5131         PR target/82981
5132         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
5133         OPTAB_DIRECT in calls to expand_simple_binop.
5134
5135 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5136
5137         PR c/81404
5138         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
5139
5140 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5141
5142         PR c++/72786
5143         * spellcheck.h (best_match::blithely_get_best_candidate): New
5144         accessor.
5145
5146 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5147
5148         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
5149         with lower case letter.
5150
5151 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
5152
5153         * config/i386/i386.md (bswaphi2): New expander.
5154         (*bswaphi2_movbe): New insn pattern.
5155         (bswaphi -> rorhi pepehole2): New peephole pattern.
5156
5157 2017-11-20  Jeff Law  <law@redhat.com>
5158
5159         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
5160         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
5161         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
5162         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
5163         gimple-ssa-evrp-analyze.h.
5164
5165         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
5166         set BB_VISITED here.
5167         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
5168
5169 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5170
5171         * tree-predcom.c: Add general comment on Store-Store chains.
5172         (split_data_refs_to_components): Postpone clearing eliminate_store_p
5173         flag in component.
5174         (get_chain_last_ref_at): Rename into...
5175         (get_chain_last_write_at): ...this.
5176         (get_chain_last_write_before_load): New function.
5177         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
5178         CT_STORE_STORE when write reference is added.
5179         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
5180         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
5181         (initialize_root_vars_store_elim_1): Ditto.
5182         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
5183         definition is created.
5184         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
5185         chain by replacing it with dominant stored value.
5186
5187 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5188
5189         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
5190
5191 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
5192
5193         * vr-values.c (extract_range_from_binary_expr): Use a full range
5194         for VR_VARYING.
5195
5196 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5197
5198         * config/arm/arm.md (R4_REGNUM): Define constant.
5199         (nonsecure_call_internal): Remove r4 clobber.
5200         (nonsecure_call_value_internal): Likewise.
5201         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
5202         clobber and resequence match_operands.
5203         (nonsecure_call_value_reg_thumb1_v5): Likewise.
5204         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
5205         (nonsecure_call_value_reg_thumb2): Likewise.
5206
5207 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5208
5209         PR tree-optimization/78821
5210         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
5211         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
5212         to the address of the base rather than the base itself.
5213         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
5214         (find_bswap_or_nop_finalize): New function.
5215         (find_bswap_or_nop): Use it.
5216         (bswap_replace): Return a tree rather than bool, change first
5217         argument from gimple * to gimple_stmt_iterator, allow inserting
5218         into an empty sequence, allow ins_stmt to be NULL - then emit
5219         all stmts into gsi.  Fix up MEM_REF address gimplification.
5220         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
5221         (struct store_immediate_info): Add N and INS_STMT non-static
5222         data members.
5223         (store_immediate_info::store_immediate_info): Initialize them
5224         from newly added ctor args.
5225         (merged_store_group::apply_stores): Formatting fixes.  Sort by
5226         bitpos at the end.
5227         (stmts_may_clobber_ref_p): For stores call also
5228         refs_anti_dependent_p.
5229         (gather_bswap_load_refs): New function.
5230         (imm_store_chain_info::try_coalesce_bswap): New method.
5231         (imm_store_chain_info::coalesce_immediate_stores): Use it.
5232         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
5233         (imm_store_chain_info::output_merged_store): Fail if number of
5234         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
5235         and NOP_EXPR rhs_code.
5236         (pass_store_merging::process_store): Compute n and ins_stmt, if
5237         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
5238         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
5239         ctor.
5240         (pass_store_merging::execute): Calculate dominators.
5241
5242         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
5243         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
5244         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
5245         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5246         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
5247         class pass_optimize_bswap, bswap_replace,
5248         pass_optimize_bswap::execute): Moved to ...
5249         * gimple-ssa-store-merging.c: ... this file.
5250         Include optabs-tree.h.
5251         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
5252         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5253         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
5254         anonymous namespace, remove static keywords.
5255         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
5256         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
5257
5258 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
5259
5260         PR bootstrap/83062
5261         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
5262
5263 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
5264
5265         * vec.h (debug_helper): New function.
5266         (DEFINE_DEBUG_VEC): New macro.
5267         * hash-set.h (debug_helper): New function.
5268         (DEFINE_DEBUG_HASH_SET): New macro.
5269         * cfg.c (debug_slim (edge)): New function.
5270         Call DEFINE_DEBUG_VEC for edges.
5271         Call DEFINE_DEBUG_HASH_SET for edges.
5272         * cfghooks.c (debug_slim (basic_block)): New function.
5273         Call DEFINE_DEBUG_VEC for basic blocks.
5274         Call DEFINE_DEBUG_HASH_SET for basic blocks.
5275         * print-tree.c (debug_slim): New function to handle trees.
5276         Call DEFINE_DEBUG_VEC for trees.
5277         Call DEFINE_DEBUG_HASH_SET for trees.
5278         (debug (vec<tree, va_gc>) &): Remove.
5279         (debug (<vec<tree, va_gc>) *): Remove.
5280         * print-rtl.c (debug_slim): New function to handle const_rtx.
5281         Call DEFINE_DEBUG_VEC for rtx_def.
5282         Call DEFINE_DEBUG_VEC for rtx_insn.
5283         Call DEFINE_DEBUG_HASH_SET for rtx_def.
5284         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
5285         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
5286         (debug (vec<rtx_insn *> *ptr): Remove.
5287         (debug_insn_vector): Remove.
5288         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
5289
5290 2017-11-20  Tom de Vries  <tom@codesourcery.com>
5291
5292         PR rtl-optimization/82020
5293         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
5294         IF_THEN_ELSE condition.
5295
5296 2017-11-19  Jeff Law  <law@redhat.com>
5297
5298         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
5299         of degenerates resulting from ignoring an edge.
5300
5301 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5302
5303         PR ipa/81360
5304         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
5305
5306 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5307
5308         PR ipa/83001
5309         * profile-count.c (profile_count::to_sreal_scale): Fix return value
5310         for uninitialied counts.
5311
5312 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5313
5314         PR ipa/60243
5315         * tree-inline.c (estimate_num_insns): Set to 1 at least.
5316
5317 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5318
5319         PR target/82713
5320         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
5321
5322 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5323
5324         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
5325         "do while (0)".
5326
5327 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5328
5329         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
5330         "do {} while (0)".
5331
5332 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5333
5334         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
5335         macro body.
5336
5337 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5338
5339         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
5340         "do {} while (0)".
5341         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
5342
5343 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5344
5345         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
5346         "do {} while (0)".
5347         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
5348         semicolon after MCORE_EXPORT_NAME call.
5349
5350 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5351
5352         PR target/82961
5353         * vmsdbgout.c (vmsdbgout_early_finish): New function.
5354         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
5355
5356 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
5357
5358         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
5359         (cgraph_edge::clone): Cleanup updating of profile.
5360         * ipa-cp.c (update_profiling_info): Likewise.
5361         * ipa-inline-transform.c (inline_transform): Likewise.
5362         * ipa-inline.c (inline_small_functions): Add missing space to dump.
5363         * ipa-split.c (execute_split_functions): Do not split when function
5364         is cold.
5365         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
5366         * profile-count.c (profile_count::dump): Add global0.
5367         (profile_count::to_cgraph_frequency): Do not ICE when entry is
5368         undefined.
5369         (profile_count::to_sreal_scale): Likewise.
5370         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
5371         (profile_count::combine_with_ipa_count): New function.
5372         * profile-count.h (profile_guessed_global0adjusted): New.
5373         (profile_count::adjusted_zero): New.
5374         (profile_count::global0adjusted): New.
5375         (profile_count::combine_with_ipa_count): New.
5376         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
5377         correct profile of return block of split functions.
5378         (copy_cfg_body): Remove unused profile_count.
5379         (copy_body): Likewise.
5380         (expand_call_inline): Update.
5381         (tree_function_versioning): Update.
5382
5383 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
5384
5385         * hash-set.h (hash_set::empty): New.
5386         * tree-ssa-threadbackward.h: Delete.
5387         * tree-ssa-threadbackward.c (class thread_jumps): New.
5388         Move max_threaded_paths into class.
5389         (fsm_find_thread_path): Remove arguments that are now in class.
5390         (profitable_jump_thread_path): Rename to...
5391         (thread_jumps::profitable_jump_thread_path): ...this.
5392         (convert_and_register_jump_thread_path): Rename to...
5393         (thread_jumps::convert_and_register_current_path): ...this.
5394         (check_subpath_and_update_thread_path): Rename to...
5395         (thread_jumps::check_subpath_and_update_thread_path): ...this.
5396         (register_jump_thread_path_if_profitable): Rename to...
5397         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
5398         (handle_phi): Rename to...
5399         (thread_jumps::handle_phi): ...this.
5400         (handle_assignment): Rename to...
5401         (thread_jumps::handle_assignment): ...this.
5402         (fsm_find_control_statement_thread_paths): Rename to...
5403         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
5404         (find_jump_threads_backwards): Rename to...
5405         (thread_jumps::find_jump_threads_backwards): ...this.
5406         Initialize path local data.
5407         (pass_thread_jumps::execute): Call find_jump_threads_backwards
5408         from within thread_jumps class.
5409         (pass_early_thread_jumps::execute): Same.
5410
5411 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5412
5413         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
5414
5415 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
5416
5417         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
5418         to canonical location.
5419
5420 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
5421
5422         PR target/81356
5423         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
5424         Remove.
5425         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
5426
5427 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
5428
5429         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
5430         rcrt1.o%s/grcrt1.o%s for -static-pie.
5431
5432 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5433
5434         * i386.c (ix86_multiplication_cost, ix86_division_cost,
5435         ix86_shift_rotate_cost): Break out from ...
5436         (ix86_rtx_costs): ... here.
5437         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
5438         vector operations.
5439
5440 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5441
5442         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
5443         when entry block was promoted unlikely.
5444         (estimate_bb_frequencies): Increase frequency scale.
5445         * profile-count.h (profile_count): Export precision info.
5446
5447 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5448
5449         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
5450         disturbin profile of entry block.
5451
5452 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5453
5454         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
5455         roundoff errors.
5456
5457 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5458
5459         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
5460         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
5461
5462 2017-11-17  Jeff Law  <law@redhat.com>
5463
5464         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
5465         from evrp_dom_walker class.  Various methods moved into new class.
5466         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
5467         (evrp_range_analyzer::enter): New method.
5468         (evrp_range_analyzer::leave): New method.
5469         (evrp_dom_walker): Remove delegators no longer needed by this class.
5470         Replace vr_values data member with evrp_range_analyzer
5471
5472         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
5473         method extracted from evrp_dom_walker::before_dom_children.
5474         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
5475         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
5476
5477         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
5478         Add private copy constructor and move assignment operators.
5479         Privatize methods and class data where trivially possible.
5480         (evrp_dom_walker::cleanup): New function, extracted from
5481         execute_early_vrp.  Simplify access to class data.
5482
5483         * vr-values.h (get_output_for_vrp): Prototype.
5484         * vr-values.c (get_output_for_vrp): New function extracted from
5485         vrp_visit_assignment_or_call and extract_range_from_stmt.
5486         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
5487
5488 2017-11-17  Luis Machado  <luis.machado@linaro.org>
5489
5490         * config/aarch64/aarch64.c
5491         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
5492         (qdf24xx_tunings) <autoprefetcher_model>: Set to
5493         tune_params::AUTOPREFETCHER_WEAK.
5494
5495 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
5496
5497         PR target/82641
5498         * config/arm/arm.c (arm_valid_target_attribute_rec):
5499         Parse "arch=" and "+<ext>".
5500         (arm_valid_target_attribute_tree): Re-init global options.
5501         (arm_option_override): Make non-static.
5502         (arm_options_perform_arch_sanity_checks): Make errors fatal.
5503         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
5504         (__ARM_FEATURE_CRC32): Support undef.
5505         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
5506         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
5507
5508 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
5509
5510         * gdbinit.in (break-on-diagnostic): New command.
5511
5512 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5513
5514         * config/i386/i386.c (ix86_expand_epilogue): Change simple
5515         return to indirect jump for EH return if control-flow
5516         protection is enabled. Change explicit 'false' argument in
5517         pro_epilogue_adjust_stack with a value of
5518         flag_cf_protection.
5519         * config/i386/i386.md (simple_return_indirect_internal):
5520         Remove SImode restriction to support 64-bit.
5521
5522 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
5523
5524         * combine.c (added_notes_insn): New.
5525         (try_combine): Handle added_notes_insn like added_links_insn.
5526         Rewrite return value code.
5527         (distribute_notes): Set added_notes_insn to the earliest insn we added
5528         a note to.
5529
5530 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
5531
5532         PR rtl-optimization/82621
5533         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
5534         dest of one of those SETs is unused.
5535
5536 2017-11-17  Richard Biener  <rguenther@suse.de>
5537
5538         PR fortran/83017
5539         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
5540         * tree-pretty-print.c (dump_generic_node): Handle
5541         annot_expr_parallel_kind.
5542         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
5543         * gimplify.c (gimple_boolify): Likewise.
5544
5545 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5546
5547         * config.gcc (extra_headers): Add cet.h for x86 targets.
5548         * config/i386/cet.h: New file.
5549         * doc/install.texi: Add --enable-cet/--disable-cet.
5550
5551 2017-11-17  Richard Biener  <rguenther@suse.de>
5552
5553         PR tree-optimization/83017
5554         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
5555         (gen_parallel_loop): Properly count iterations.
5556         (parallelize_loops): Handle loop->can_be_parallel independent
5557         of flag_loop_parallelize_all.  Make static profitability test match
5558         the runtime one.
5559         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
5560         * invoke.texi (parloops-min-per-thread): Document.
5561
5562 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
5563
5564         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
5565         upstreaming review comments.
5566
5567 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
5568
5569         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
5570         with fast unaligned access.
5571         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
5572
5573 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5574
5575         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
5576         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
5577
5578 2017-11-17  Richard Biener  <rguenther@suse.de>
5579
5580         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
5581         folding of references.
5582
5583 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
5584
5585         PR middle-end/78809
5586         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
5587         of replacing call to strncmp with corresponding call to strcmp when
5588         meeting conditions.
5589
5590 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5591
5592         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
5593         option prefer-avx256 for skylake-avx512 configuration.
5594         * config/i386/i386.c (ix86_option_override_internal): Ditto.
5595         (get_builtin_code_for_version): Ditto.
5596
5597 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
5598             Monk Chiang  <sh.chiang04@gmail.com>
5599
5600         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
5601         (FIXED_REGISTERS): Reserve more register numbers.
5602         (CALL_USED_REGISTERS): Likewise.
5603         (REG_ALLOC_ORDER): Likewise.
5604         (REG_CLASS_CONTENTS): Likewise.
5605         (REGISTER_NAMES): Likewise.
5606
5607 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
5608             Kito Cheng  <kito.cheng@gmail.com>
5609
5610         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
5611         V2SI.
5612         * config/nds32/iterators.md: Add vector mode iterators and attributes.
5613
5614 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
5615
5616         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
5617         parameter list for vec_splats.
5618
5619 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
5620
5621         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
5622         date of C17.
5623         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
5624
5625 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
5626
5627         PR bootstrap/82856
5628         * doc/install.texi: Document incompatibility of Perl >=5.6.26
5629         with the required version of automake 1.11.6.
5630
5631 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
5632
5633         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
5634         for it.
5635         (DU_C2_3_power9): Correct reservation combinations.
5636         (FP_DIV_power9, VEC_DIV_power9): New.
5637         (power9-alu): Split out rotate/shift...
5638         (power9-rot): ...to here, correct dispatch resource.
5639         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
5640         resource.
5641         (power9-fp): Correct latency.
5642         (power9-sdiv): Add div/sqrt resource.
5643         (power9-ddiv): Correct latency, add div/sqrt resource.
5644         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
5645         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
5646         resource.
5647         (power9-qpdiv, power9-qpmul): Adjust resource usage.
5648
5649 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5650
5651         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
5652         switch statement mapping KF built-ins to TF built-ins if we don't
5653         have the proper ISA 3.0 assembler support.
5654
5655 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5656
5657         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
5658         (lower_emutls_function_body): Do not compute it.
5659
5660 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5661
5662         * ipa-split.c (split_bb_info): Turn time to sreal.
5663         (split_point): Likewise.
5664         (dump_split_point): Likewise.
5665         (fine_split_points): Likewise.
5666         (execute_split_functions): Only zero split_bbs; turn time to sreals.
5667
5668 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5669
5670         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
5671         in sreal.
5672
5673 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5674
5675         * predict.c (combine_predictions_for_bb): Preserve zero predicted
5676         edges.
5677         (expensive_function_p): Remove useless assert.
5678         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
5679
5680 2017-11-16  Martin Sebor  <msebor@redhat.com>
5681
5682         PR tree-optimization/82588
5683         PR tree-optimization/82583
5684         * tree-vrp.c (check_array_ref): Handle flexible array members,
5685         string literals, and inner indices.
5686         (search_for_addr_array): Add detail to diagnostics.
5687
5688 2017-11-16  Nathan Sidwell  <nathan@acm.org>
5689
5690         PR c++/82836
5691         PR c++/82737
5692         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
5693         (SET_DECL_ASSEMBLER_NAME): Forward to
5694         overwrite_decl_assembler_name.
5695         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
5696         (overwrite_decl_assembler_name): Declare.
5697         * tree.c (overwrite_decl_assembler_name): New.
5698         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
5699         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
5700         (LANG_HOOKS_INITIALIZER): Add it.
5701         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
5702         * langhooks.c (lhd_set_decl_assembler_name): Use
5703         SET_DECL_ASSEMBLER_NAME.
5704         (lhd_overwrite_decl_assembler_name): Default implementation.
5705
5706 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
5707             Jackson Woodruff  <jackson.woodruff@arm.com>
5708
5709         PR tree-optimization/71026
5710         * match.pd: Canonicalize constant multiplies in division.
5711
5712 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
5713
5714         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
5715         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
5716         Remove OPT_fomit_frame_pointer entry.
5717         * common/config/arc/arc-common.c: Likewise.
5718         * common/config/arm/arm-common.c: Likewise.
5719         * common/config/avr/avr-common.c: Likewise.
5720         * common/config/c6x/c6x-common.c: Likewise.
5721         * common/config/cr16/cr16-common.c: Likewise.
5722         * common/config/cris/cris-common.c: Likewise.
5723         * common/config/epiphany/epiphany-common.c: Likewise.
5724         * common/config/fr30/fr30-common.c: Likewise.
5725         * common/config/frv/frv-common.c: Likewise.
5726         * common/config/ia64/ia64-common.c: Likewise.
5727         * common/config/iq2000/iq2000-common.c: Likewise.
5728         * common/config/lm32/lm32-common.c: Likewise.
5729         * common/config/m32r/m32r-common.c: Likewise.
5730         * common/config/mcore/mcore-common.c: Likewise.
5731         * common/config/microblaze/microblaze-common.c: Likewise.
5732         * common/config/mips/mips-common.c: Likewise.
5733         * common/config/mmix/mmix-common.c: Likewise.
5734         * common/config/mn10300/mn10300-common.c: Likewise.
5735         * common/config/nios2/nios2-common.c: Likewise.
5736         * common/config/pa/pa-common.c: Likewise.
5737         * common/config/pdp11/pdp11-common.c: Likewise.
5738         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
5739         * common/config/riscv/riscv-common.c: Likewise.
5740         * common/config/rs6000/rs6000-common.c: Likewise.
5741         * common/config/rx/rx-common.c: Likewise.
5742         * common/config/s390/s390-common.c: Likewise.
5743         * common/config/sh/sh-common.c: Likewise.
5744         * common/config/sparc/sparc-common.c: Likewise.
5745         * common/config/tilegx/tilegx-common.c: Likewise.
5746         * common/config/tilepro/tilepro-common.c: Likewise.
5747         * common/config/v850/v850-common.c: Likewise.
5748         * common/config/visium/visium-common.c: Likewise.
5749         * common/config/xstormy16/xstormy16-common.c: Likewise.
5750         * common/config/xtensa/xtensa-common.c: Likewise.
5751         * invoke.texi (-fomit-frame-pointer): Update documentation.
5752
5753 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5754
5755         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
5756
5757 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5758
5759         * cfg.c (scale_bbs_frequencies_int,
5760         cale_bbs_frequencies_gcov_type): Remove.
5761         * cfg.h (scale_bbs_frequencies_int,
5762         cale_bbs_frequencies_gcov_type): Remove.
5763
5764 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5765
5766         * tree-ssa-loop-manip.c
5767         (scale_dominated_blocks_in_loop): Update to profile counts.
5768         (tree_transform_and_unroll_loop): Likewise.
5769
5770 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5771
5772         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
5773         scale_bbs_frequencies_int.
5774
5775 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5776
5777         * final.c (compute_alignments): Use counts rather than frequencies.
5778
5779 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5780
5781         * cfgloopanal.c: Include sreal.h
5782         (average_num_loop_insns): Use counts and sreal for accounting.
5783
5784 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5785
5786         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
5787         manipulation.
5788
5789 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5790             Kito Cheng  <kito.cheng@gmail.com>
5791
5792         * config/nds32/constraints.md: Provide more constraints.
5793         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
5794         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
5795         support constraints usage.
5796
5797 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5798
5799         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
5800
5801 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5802             Kito Cheng  <kito.cheng@gmail.com>
5803
5804         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
5805         * config/nds32/nds32.opt: Refine the layout.
5806         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
5807         TARGET_EXT_STRING): Support new options.
5808         * config/nds32/nds32.h: Likewise.
5809         * config/nds32/nds32.md: Likewise.
5810         * config/nds32/nds32-predicates.c: Likewise.
5811         * config/nds32/constraints.md: Likewise.
5812         * common/config/nds32/nds32-common.c: Likewise.
5813
5814 2017-11-16  Julia Koval  <julia.koval@intel.com>
5815
5816         PR target/82983
5817         * config/i386/gfniintrin.h: Add sse check.
5818         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
5819
5820 2017-11-16  Julia Koval  <julia.koval@intel.com>
5821
5822         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
5823         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
5824         (ix86_handle_option): Handle -mavx512vbmi2.
5825         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
5826         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
5827         * config/i386/i386-c.c (__AVX512VBMI2__): New.
5828         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
5829         (ix86_valid_target_attribute_inner_p): Ditto.
5830         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
5831         * config/i386/i386.opt (mavx512vbmi2): New option.
5832         * doc/invoke.texi: Add new option.
5833
5834 2017-11-16  Julia Koval  <julia.koval@intel.com>
5835
5836         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
5837         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
5838         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
5839         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
5840         _mm512_gf2p8mul_epi8): New intrinsics.
5841         * config/i386/i386-builtin-types.def
5842         (V64QI_FTYPE_V64QI_V64QI): New type.
5843         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
5844         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
5845         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
5846         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
5847         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
5848         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
5849
5850 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
5851
5852         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
5853         explicitly as a stream of bytes.
5854
5855 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5856
5857         * config/rs6000/altivec.h (vec_xst_be): New #define.
5858         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
5859         and externalize from *altivec_vperm_<mode>_internal.
5860         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
5861         instantiation.
5862         (XL_BE_V8HI): Likewise.
5863         (XL_BE_V4SI): Likewise.
5864         (XL_BE_V4SI): Likewise.
5865         (XL_BE_V2DI): Likewise.
5866         (XL_BE_V4SF): Likewise.
5867         (XL_BE_V2DF): Likewise.
5868         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
5869         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
5870         all array entries with these keys: VSX_BUILTIN_VEC_XL,
5871         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
5872         VSX_BUILTIN_VEC_XST_BE.
5873         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
5874         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
5875         built-ins.
5876         (altivec_init_builtins): Replace conditional calls to def_builtin
5877         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
5878         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
5879         with unconditional calls.  Remove calls to def_builtin for
5880         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
5881         __builtin_vec_xst_be.
5882         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
5883         to define_expand, and add alternate RTL generation for P8.
5884         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
5885         vsx_ld_elemrev_v8hi.
5886         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
5887         add alternate RTL generation for P8.
5888         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
5889         vsx_ld_elemrev_v16qi.
5890         (vsx_st_elemrev_v8hi): Convert define_insn
5891         to define_expand, and add alternate RTL generation for P8.
5892         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
5893         vsx_st_elemrev_v8hi.
5894         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
5895         add alternate RTL generation for P8.
5896         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
5897         vsx_st_elemrev_v16qi.
5898
5899 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
5900
5901         PR target/82990
5902         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
5903         TARGET_AVX512ER check.
5904         (ix86_option_override_internal): Set MASK_VZEROUPPER if
5905         neither -mzeroupper nor -mno-zeroupper is used and
5906         TARGET_EMIT_VZEROUPPER is set.
5907         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
5908         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
5909
5910 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
5911
5912         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
5913         folding of vector compares.
5914         (fold_build_vec_cmp): New helper function.
5915         (fold_compare_helper): New helper function.
5916         (builtin_function_type): Add compare builtins to the list of functions
5917         having unsigned arguments.  Cosmetic updates to comment indentation.
5918         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
5919         the not+eq combination.
5920
5921 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
5922
5923         PR tree-optimization/82726
5924         PR tree-optimization/70754
5925         * tree-predcom.c (order_drefs_by_pos): New function.
5926         (combine_chains): Move code setting has_max_use_after to...
5927         (try_combine_chains): ...here.  New parameter.  Sort combined chains
5928         according to position information.
5929         (tree_predictive_commoning_loop): Update call to above function.
5930         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
5931
5932 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
5933
5934         PR tree-optimization/82726
5935         Revert
5936         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
5937
5938         PR tree-optimization/70754
5939         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
5940         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
5941         combined stmt before it if not NULL.
5942         (combine_chains): Process refs reversely and compute dominance point
5943         for root ref.
5944
5945         Revert
5946         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
5947
5948         PR tree-optimization/79663
5949         * tree-predcom.c (combine_chains): Process refs in reverse order
5950         only for ZERO length chains, and add explaining comment.
5951
5952 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
5953
5954         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
5955         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
5956         * doc/invoke.texi (ARM Options): Add armv8.3-a.
5957
5958 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
5959
5960         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
5961
5962 2017-11-15  Martin Liska  <mliska@suse.cz>
5963
5964         * tree-cfg.c (pass_warn_function_return::execute):
5965         Compare warn_return_type for greater than zero.
5966
5967 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
5968
5969         PR target/82941
5970         PR target/82942
5971         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
5972         to return true on Xeon and not on Xeon Phi.
5973         (ix86_check_avx256_register): Changed to ...
5974         (ix86_check_avx_upper_register): ... this. Add extra check for
5975         VALID_AVX512F_REG_OR_XI_MODE.
5976         (ix86_avx_u128_mode_needed): Changed
5977         ix86_check_avx256_register to ix86_check_avx_upper_register.
5978         (ix86_check_avx256_stores): Changed to ...
5979         (ix86_check_avx_upper_stores): ... this. Changed
5980         ix86_check_avx256_register to ix86_check_avx_upper_register.
5981         (ix86_avx_u128_mode_after): Changed
5982         avx_reg256_found to avx_upper_reg_found. Changed
5983         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
5984         (ix86_avx_u128_mode_entry): Changed
5985         ix86_check_avx256_register to ix86_check_avx_upper_register.
5986         (ix86_avx_u128_mode_exit): Ditto.
5987         * config/i386/i386.h: (host_detect_local_cpu): New define.
5988
5989 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
5990
5991         * config/arm/xgene1.md (xgene1): Split into automatons
5992         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
5993         (xgene1_f_load): Adjust reservations and/or types.
5994         (xgene1_f_store): Likewise.
5995         (xgene1_load_pair): Likewise.
5996         (xgene1_store_pair): Likewise.
5997         (xgene1_fp_load1): Likewise.
5998         (xgene1_load1): Likewise.
5999         (xgene1_store1): Likewise.
6000         (xgene1_move): Likewise.
6001         (xgene1_alu): Likewise.
6002         (xgene1_simd): Likewise.
6003         (xgene1_bfm): Likewise.
6004         (xgene1_neon_load1): Likewise.
6005         (xgene1_neon_store1): Likewise.
6006         (xgene1_neon_logic): Likewise.
6007         (xgene1_neon_st1): Likewise.
6008         (xgene1_neon_ld1r): Likewise.
6009         (xgene1_alu_cond): Added.
6010         (xgene1_shift_reg): Likwise.
6011         (xgene1_bfx): Likewise.
6012         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
6013
6014 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
6015
6016         PR target/82981
6017         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
6018         ssa-iterators.h.
6019         (can_widen_mult_without_libcall): New function.
6020         (expand_mul_overflow): If only checking unsigned mul overflow,
6021         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
6022         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
6023         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
6024         (expand_DIVMOD): Formatting fix.
6025         * expmed.h (expand_mult): Add NO_LIBCALL argument.
6026         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
6027         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
6028
6029         PR tree-optimization/82977
6030         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
6031         constructed temporary to strlen_to_stridx.put.
6032
6033 2017-11-15  Martin Liska  <mliska@suse.cz>
6034
6035         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
6036         * configure: Regenerate.
6037
6038 2017-11-15  Martin Liska  <mliska@suse.cz>
6039
6040         PR target/82927
6041         * config/sh/sh-mem.cc: Use proper probability for
6042         REG_BR_PROB_NOTE.
6043
6044 2017-11-14  Jeff Law  <law@redhat.com>
6045
6046         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
6047         the red zone for stack_clash_protection_final_dynamic_probe targets
6048         when the total dynamic stack size is zero bytes.
6049
6050         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
6051         blocks is post order.
6052
6053 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
6054
6055         * dumpfile.h (TDF_COMPARE_DEBUG): New.
6056         * final.c (rest_of_clean_state): Set it for the
6057         -fcompare-debug dump.
6058         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
6059         class when TDF_COMPARE_DEBUG is set.
6060
6061         * dwarf2out.c (gen_producer_string): Discard
6062         OPT_fcompare_debug.
6063
6064 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6065
6066         PR c/81156
6067         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
6068         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
6069         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
6070         (__TGMATH_REAL_2_3): Remove macros.
6071         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
6072         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
6073         __builtin_tgmath.
6074         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
6075         __TGMATH_REAL_2.
6076         (remquo): Define using __TGMATH_REAL_3.
6077
6078 2017-11-14  Jeff Law  <law@redhat.com>
6079
6080         * vr-values.c: New file with contents extracted from tree-vrp.c.
6081         * Makefile.in (OBJS): Add vr-values.o
6082         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
6083         (set_value_range, set_and_canonicalize_value_range): Likewise.
6084         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
6085         (value_range_constant_singleton, symbolic_range_p): Likewise.
6086         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
6087         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
6088         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
6089         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
6090         (find_case_label_range, find_case_label_index): Likewise.
6091         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
6092         (range_int_cst_singleton_p, value_inside_range): Likewise.
6093         (get_single_symbol): Likewise.
6094         (switch_update): Move structure definition here.
6095         (to_remove_edges, to_update_switch_stmts): Provide externs.
6096         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
6097         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
6098         (vrp_val_is_min, set_value_range): Likewise.
6099         (set_and_canonicalize_value_range, copy_value_range): Likewise.
6100         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
6101         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
6102         (range_is_nonnull, range_int_cst_p): Likewwise.
6103         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
6104         (get_single_symbol, operand_less_p): Likewise
6105         (compare_values_warnv, compare_values): Likewise.
6106         (value_inside_range, value_range_constant_singleton): Likewise.
6107         (zero_nonzero_bitgs_from_vr): Likewise.
6108         (extract_range_from_binary_expr_1): Likewise.
6109         (overflow_comparison_p): Likewise.
6110         (to_remove_edges, to_update_switch_stmts): Likewise.
6111         (find_case_label-index, find_case_label_range): Likewise.
6112         (switch_update, set_value_range_to_nonnegative): Remove.
6113         (set_value_range_to_truthvalue): Likewise.
6114         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
6115         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
6116         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
6117         (find_case_label_ranges, test_for_singularity): Likewise.
6118         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
6119         (x_vr_values): Move to its remaining use site.
6120
6121 2017-11-10  Jeff Law  <law@redhat.com>
6122
6123         * vr-values.h (VR_INITIALIZER): Move #define here.
6124         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
6125         * Makefile.in (OBJS): Add tree-evrp.o
6126         * tree-vrp.h (assert_info): Move structure definition here.
6127         (set_value_range_to_varying): Prototype.
6128         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6129         (infer_value_range, register_edge_assert_for): Likewise.
6130         (stmt_interesting_for_vrp): Likewise.
6131         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
6132         (set_value_range_to_varying): No longer static.
6133         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6134         (infer_value_range, register_edge_assert_for): Likewise.
6135
6136 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6137
6138         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
6139         generate the XXBRD instruction.
6140
6141         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
6142         (rs6000_builtin_type_compatible): Treat _Float128 and long double
6143         as being compatible if -mabi=ieeelongdouble.
6144         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
6145         to setup float128 built-ins with hardware support.
6146         (BU_FLOAT128_HW_2): Likewise.
6147         (BU_FLOAT128_HW_3): Likewise.
6148         (BU_FLOAT128_HW_VSX_1): Likewise.
6149         (BU_FLOAT128_HW_VSX_2): Likewise.
6150         (scalar_extract_expq): Change float128 built-in functions to
6151         accommodate having both KFmode and TFmode functions.  Use the
6152         KFmode variant as the default.
6153         (scalar_extract_sigq): Likewise.
6154         (scalar_test_neg_qp): Likewise.
6155         (scalar_insert_exp_q): Likewise.
6156         (scalar_insert_exp_qp): Likewise.
6157         (scalar_test_data_class_qp): Likewise.
6158         (sqrtf128_round_to_odd): Delete processing the round to odd
6159         built-in functions as special built-in functions, and define them
6160         as float128 built-ins.  Use the KFmode variant as the default.
6161         (truncf128_round_to_odd): Likewise.
6162         (addf128_round_to_odd): Likewise.
6163         (subf128_round_to_odd): Likewise.
6164         (mulf128_round_to_odd): Likewise.
6165         (divf128_round_to_odd): Likewise.
6166         (fmaf128_round_to_odd): Likewise.
6167         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
6168         support for KFmode and TFmode xststdcqp calls.
6169         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
6170         point, switch the built-in handlers for the get/set float128
6171         exponent, get float128 mantissa, float128 test built-ins, and the
6172         float128 round to odd built-in functions.  Eliminate creating the
6173         float128 round to odd built-in functions as special built-ins.
6174         (rs6000_init_builtins): Eliminate special creation of the float128
6175         round to odd built-in functions.
6176         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
6177         function insns to support both TFmode and KFmode variants.
6178         (xsxsigqp_<mode>): Likewise.
6179         (xsiexpqpf_<mode>): Likewise.
6180         (xsiexpqp_<mode>): Likewise.
6181         (xststdcqp_<mode>): Likewise.
6182         (xststdcnegqp_<mode>): Likewise.
6183         (xststdcqp_<mode>): Likewise.
6184
6185 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6186
6187         * tree-ssa-threadupdate.c (compute_path_counts): Remove
6188         unused path_in_freq_ptr parameter.
6189         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
6190
6191 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6192
6193         * ipa-inline.c (edge_badness): Dump sreal frequency.
6194         (compute_inlined_call_time): Match natural implementaiton ...
6195         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
6196         forgotten division by CGRAPH_FREQ_BASE.
6197
6198 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6199
6200         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
6201         Solaris 11.  Update comment.
6202         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
6203         renaming.
6204         * config/sol2.h (STARTFILE_SPEC): Likewise.
6205         * configure: Regenerate.
6206
6207 2017-11-14  Carl Love  <cel@us.ibm.com>
6208
6209         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
6210         le_ and be_ prefixes to swap* variables.  Remove
6211         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
6212         statements.
6213
6214 2017-11-14  Jason Merrill  <jason@redhat.com>
6215
6216         Support GTY((cache)) on hash_map.
6217         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
6218         (ggc_cache_remove): Override it instead of ggc_mx.
6219         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
6220         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
6221         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
6222         (simple_cache_map_traits): Override maybe_mx.
6223         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
6224         (hash_map): Friend gt_cleare_cache.
6225         (gt_cleare_cache): New.
6226         * tree.h (tree_cache_traits): New hash_map traits class.
6227         (tree_cache_map): New typedef.
6228
6229 2017-11-14  Richard Biener  <rguenther@suse.de>
6230
6231         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
6232         paramter and handling.
6233         (cleanup_control_flow_bb): Likewise.
6234         (cleanup_control_flow_pre): New helper performing a DFS walk
6235         to call cleanup_control_flow_bb in PRE order.
6236         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
6237         via cleanup_control_flow_pre.
6238
6239 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
6240
6241         * config/aarch64/aarch64-simd.md
6242         (aarch64_simd_bsl<mode>_internal): Remove DImode.
6243         (*aarch64_simd_bsl<mode>_alt): Likewise.
6244         (aarch64_simd_bsldi_internal): New.
6245         (aarch64_simd_bsldi_alt): Likewise.
6246
6247 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6248
6249         * tracer.c (better_p): Do not compare frequencies.
6250         * reg-stack.c (better_edge): Likewise.
6251         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
6252         and back.
6253
6254 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6255
6256         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
6257         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
6258         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
6259         * lto-streamer-in.c (input_function): Use update_max_bb_count.
6260         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
6261         * predict.c (maybe_hot_frequency_p): Inline to ...
6262         (maybe_hot_count_p): ... here; rewrite to counts.
6263         (counts_to_freqs): Rename to ...
6264         (update_max_bb_count): ... this one.
6265         (expensive_function_p): Use counts.
6266         (estimate_bb_frequencies): Update.
6267         (rebuild_frequencies): Update.
6268         * predict.h (counts_to_freqs): Rename to ...
6269         (update_max_bb_count): ... this one.
6270         * profile.c (compute_branch_probabilities): Add debug info
6271         * tree-inline.c (expand_call_inline): Update debug info.
6272         (optimize_inline_calls): Use update_max_bb_count..
6273         (tree_function_versioning): Use update_max_bb_count..
6274         * value-prof.c (gimple_value_profile_transformations):
6275         Do not use update_max_bb_count.
6276
6277 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6278
6279         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
6280         always use frequencies.
6281
6282 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6283
6284         * bb-reorder.c: Remove frequencies from comments.
6285         (better_edge_p): Use profile counts.
6286         (find_traces): Dump profile counts.
6287         (rotate_loop): Use profile counts.
6288         (find_traces_1_round): Likewise.
6289         (connect_better_edge_p): Use counts instead of probabilities for
6290         reverse walk.
6291         (copy_bb_p): Drop early check for non-0 frequency.
6292         (sanitize_hot_paths): Update comments.
6293
6294 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6295
6296         * ipa-split.c (struct split_point): Add count.
6297         (consider_split): Do not compute incoming frequency; compute incoming
6298         count and store it to split_point.
6299         (split_function): Set count of the call to split part correctly.
6300
6301 2017-11-13  Carl Love  <cel@us.ibm.com>
6302
6303         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
6304
6305 2017-11-13  Tom Tromey  <tom@tromey.com>
6306
6307         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
6308
6309 2017-11-13  Carl Love  <cel@us.ibm.com>
6310
6311         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
6312         Add support for builtins:
6313         unsigned int vec_first_{,miss}_match_{,or_eos}index,
6314         vector {un,}signed {char,int,short},
6315         vector {un,}signed {char,int,short}) arguments.
6316         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
6317         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
6318         Add BU_P9V_AV_2 expansions for the builtins.
6319         * config/rs6000/altivec.h (vec_first_match_index,
6320         vec_first_mismatch_index, vec_first_match_or_eos_index,
6321         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
6322         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
6323         new extern declaration.
6324         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
6325         * config/rs6000/vsx.md (first_match_index_<mode>,
6326         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
6327         first_mismatch_or_eos_index_<mode>): Add define expand.
6328         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
6329         * doc/extend.texi: Update the built-in documenation file for the new
6330         built-in functions.
6331
6332 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6333
6334         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
6335         into the min/max operations for _Float<N> and _Float<N>X types.
6336
6337 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6338
6339         PR lto/81351
6340         * dwarf2out.c (do_eh_frame): New static variable.
6341         (dwarf2out_begin_prologue): Set it.
6342         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
6343
6344 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6345
6346         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
6347
6348         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
6349
6350 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6351
6352         PR lto/81351
6353         * debug.h (dwarf2out_do_eh_frame): Declare.
6354         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
6355         (dwarf2out_do_frame): Use it.
6356         (dwarf2out_do_cfi_asm): Likewise.
6357         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
6358         (dwarf2out_assembly_start): Likewise.
6359         (dwarf2out_begin_prologue): Fix comment.
6360         * toplev.c (compile_file): Always call dwarf2out_frame_finish
6361         if the target needs either debug or unwind DWARF2 info.
6362         * lto-opts.c (lto_write_options): Do not save -fexceptions,
6363         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
6364         -ftrapping-math, -ftrapv and -fwrapv.
6365
6366 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6367
6368         * cgraph.c (cgraph_edge::sreal_frequency): New function.
6369         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
6370         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
6371         (estimate_edge_size_and_time): Likewise.
6372         (ipa_merge_fn_summary_after_inlining): Likewise.
6373         * ipa-inline.c (cgraph_freq_base_rec): Remove.
6374         (compute_uninlined_call_time): Use sreal_frequency.
6375         (compute_inlined_call_time): Likewise.
6376         (ipa_inline): Do not initialize cgraph_freq_base_rec.
6377         * profile-count.c: Include sreal.h.
6378         (profile_count::to_sreal_scale): New.
6379         * profile-count.h: Forward declare sreal.
6380         (profile_count::to_sreal_scale): Declare.
6381
6382 2017-11-13  Nathan Sidwell  <nathan@acm.org>
6383
6384         * diagnostic.c (maybe_line_and_column): New.
6385         (diagnostic_get_location_text): Use it.
6386         (diagnostic_report_current_module): Likewise.
6387         (test_diagnostic_get_location_text): Add tests.
6388
6389 2017-11-13  Luis Machado  <luis.machado@linaro.org>
6390
6391         * doc/md.texi (Specifying processor pipeline description): Fix
6392         incorrect latency for the div instruction example.
6393
6394 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
6395
6396         PR tree-optimization/78821
6397         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
6398         that bit_not_p is the same.
6399         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
6400         (split_group): Count precisely bit_not_p bits in each statement.
6401         (invert_op): New function.
6402         (imm_store_chain_info::output_merged_store): Use invert_op to
6403         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
6404         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
6405
6406 2017-11-13  Martin Liska  <mliska@suse.cz>
6407
6408         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
6409         (struct source_info): Likewise.
6410         (add_branch_counts): Likewise.
6411         (add_line_counts): Likewise.
6412         (function_summary): Likewise.
6413         (output_intermediate_line): Likewise.
6414         (generate_results): Likewise.
6415
6416 2017-11-13  Martin Liska  <mliska@suse.cz>
6417
6418         * gcov.c (struct block_info): Remove typedef for block_t.
6419         (struct line_info): Likewise.
6420         (line_info::has_block): Likewise.
6421         (EXIT_BLOCK): Likewise.
6422         (unblock): Likewise.
6423         (circuit): Likewise.
6424         (get_cycles_count): Likewise.
6425         (process_file): Likewise.
6426         (read_graph_file): Likewise.
6427         (solve_flow_graph): Likewise.
6428         (find_exception_blocks): Likewise.
6429         (add_line_counts): Likewise.
6430         (accumulate_line_info): Likewise.
6431         (output_line_details): Likewise.
6432
6433 2017-11-13  Martin Liska  <mliska@suse.cz>
6434
6435         * gcov.c (struct arc_info): Remove typedef for arc_t.
6436         (struct line_info): Likewise.
6437         (add_branch_counts): Likewise.
6438         (output_branch_count): Likewise.
6439         (function_info::~function_info): Likewise.
6440         (circuit): Likewise.
6441         (output_intermediate_line): Likewise.
6442         (read_graph_file): Likewise.
6443         (solve_flow_graph): Likewise.
6444         (find_exception_blocks): Likewise.
6445         (add_line_counts): Likewise.
6446         (accumulate_line_info): Likewise.
6447         (output_line_details): Likewise.
6448         (output_function_details): Likewise.
6449
6450 2017-11-13  Martin Liska  <mliska@suse.cz>
6451
6452         * gcov.c (struct function_info): Remove typedef for function_t.
6453         (struct source_info): Likewise.
6454         (source_info::get_functions_at_location): Likewise.
6455         (solve_flow_graph): Likewise.
6456         (find_exception_blocks): Likewise.
6457         (add_line_counts): Likewise.
6458         (output_intermediate_file): Likewise.
6459         (process_file): Likewise.
6460         (generate_results): Likewise.
6461         (release_structures): Likewise.
6462         (read_graph_file): Likewise.
6463         (read_count_file): Likewise.
6464         (accumulate_line_counts): Likewise.
6465         (output_lines): Likewise.
6466
6467 2017-11-13  Martin Liska  <mliska@suse.cz>
6468
6469         * gcov.c (function_info::function_info): Remove num_counts
6470         and add vector<gcov_type>.
6471         (function_info::~function_info): Use the vector.
6472         (process_file): Likewise.
6473         (read_graph_file): Likewise.
6474         (read_count_file): Likewise.
6475         (solve_flow_graph): Likewise.
6476
6477 2017-11-13  Martin Liska  <mliska@suse.cz>
6478
6479         * gcov.c (function_info::is_artificial): New function.
6480         (process_file): Erase all artificial early.
6481         (generate_results): Skip as all artificial are already
6482         removed.
6483
6484 2017-11-13  Martin Liska  <mliska@suse.cz>
6485
6486         * gcov.c (read_graph_file): Store to global vector of functions.
6487         (read_count_file): Iterate the vector.
6488         (process_file): Likewise.
6489         (generate_results): Likewise.
6490         (release_structures): Likewise.
6491
6492 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
6493
6494         PR tree-optimization/82954
6495         * gimple-ssa-store-merging.c
6496         (imm_store_chain_info::coalesce_immediate_stores): If
6497         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
6498
6499 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
6500
6501         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
6502         Upddate call to ENDIAN_LANE_N.
6503         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
6504         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
6505         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
6506         and use aarch64_endian_lane_rtx.
6507         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
6508
6509 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6510
6511         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
6512
6513 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6514
6515         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
6516
6517 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6518
6519         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
6520         body.
6521         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
6522         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
6523         * defaults.h (ASM_OUTPUT_LABELREF): Same.
6524
6525 2017-11-11  Martin Sebor  <msebor@redhat.com>
6526
6527         PR c/81117
6528         * doc/extend.texi (attribute nonstring): Remove spurious argument.
6529
6530         PR bootstrap/82948
6531         * prefic.c (translate_name): Replace strncpy with memcpy to
6532         avoid -Wstringop-truncation.
6533
6534 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6535
6536         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
6537
6538 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6539
6540         * predict.c (maybe_hot_frequency_p): Do not use cfun.
6541
6542 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6543
6544         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
6545         merging.
6546
6547 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6548
6549         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
6550         enable generating XXBRH if the value is in a vector register.
6551         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
6552         value is in a vector register.
6553         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
6554         register to register bswap64's instead of doing the GPR sequence
6555         used on previous machines.
6556         (bswapdi2_xxbrd): New insn.
6557         (bswapdi2_reg): Disallow on ISA 3.0.
6558         (register to register bswap64 splitter): Do not split the insn on
6559         ISA 3.0 systems that use XXBRD.
6560
6561 2017-11-10  Martin Sebor  <msebor@redhat.com>
6562
6563         PR c/81117
6564         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
6565         with memcpy.
6566         (find_subframework_file): Same.
6567
6568 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6569
6570         * auto-profile.c (afdo_indirect_call): Drop frequency.
6571         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
6572         (cgraph_node::create_edge): Drop frequency argument.
6573         (cgraph_node::create_indirect_edge): Drop frequency argument.
6574         (cgraph_edge::make_speculative): Drop frequency arguments.
6575         (cgraph_edge::resolve_speculation): Do not update frequencies
6576         (cgraph_edge::dump_edge_flags): Do not dump frequency.
6577         (cgraph_node::dump): Check consistency in IPA mode.
6578         (cgraph_edge::maybe_hot_p): Use IPA counter.
6579         (cgraph_edge::verify_count_and_frequency): Rename to ...
6580         (cgraph_edge::verify_count): ... this one; drop frequency checking.
6581         (cgraph_node::verify_node): Update.
6582         * cgraph.h (struct cgraph_edge): Drop frequency.
6583         (cgraph_edge::frequency): New function.
6584         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
6585         frequencies.
6586         (cgraph_edge::rebuild_edges): Likewise.
6587         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
6588         (duplicate_thunk_for_node): Do not pass frequency.
6589         (cgraph_node::create_clone): Scale only counts.
6590         (cgraph_node::create_virtual_clone): Do not pass frequency.
6591         (cgraph_node::create_edge_including_clones): Do not pass frequency.
6592         (cgraph_node::create_version_clone): Do not pass frequency.
6593         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
6594         (cgraph_node::expand_thunk): Do not pass frequency.
6595         (cgraph_node::create_wrapper): Do not pass frequency.
6596         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
6597         frequency.
6598         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
6599         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
6600         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
6601         (gather_caller_stats): Use frequency function.
6602         (ipcp_cloning_candidate_p): Use frequency function.
6603         (ipcp_propagate_stage): Use frequency function.
6604         (get_info_about_necessary_edges): Use frequency function.
6605         (update_profiling_info): Update only IPA profile.
6606         (update_specialized_profile): Use frequency functoin.
6607         (perhaps_add_new_callers): Update only IPA profile.
6608         * ipa-devirt.c (ipa_devirt): Use IPA profile.
6609         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
6610         (dump_ipa_call_summary): Use frequency function.
6611         (estimate_edge_size_and_time): Use frequency function.
6612         (ipa_merge_fn_summary_after_inlining): Use frequency function.
6613         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
6614         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
6615         (update_noncloned_counts): ... ths one; scale counts only.
6616         (clone_inlined_nodes): Do not scale frequency.
6617         (inline_call): Do not pass frequency.
6618         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
6619         (compute_inlined_call_time): Use IPA profile.
6620         (want_inline_small_function_p): Use IPA profile.
6621         (want_inline_self_recursive_call_p): Use IPA profile.
6622         (edge_badness): Use IPA profile.
6623         (lookup_recursive_calls): Use IPA profile.
6624         (recursive_inlining): Do not pass frequency.
6625         (resolve_noninline_speculation): Do not update frequency.
6626         (inline_small_functions): Collect max of IPA profile.
6627         (dump_overall_stats): Dump IPA porfile.
6628         (dump_inline_stats): Dump IPA porfile.
6629         (ipa_inline): Collect IPA stats.
6630         * ipa-inline.h (clone_inlined_nodes): Update prototype.
6631         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
6632         (ipa_propagate_frequency): Use frequency function.
6633         (ipa_profile): Cleanup.
6634         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
6635         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
6636         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
6637         (input_node): Do not stream frequency.
6638         (input_edge): Do not stream frequency.
6639         (merge_profile_summaries): Scale only IPA profiles.
6640         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
6641         * predict.c (drop_profile): Do not recompute frequency.
6642         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
6643         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
6644         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
6645         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
6646         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
6647         * tree-inline.c (copy_bb): Do not scale frequency.
6648         (expand_call_inline): Do not scale frequency.
6649         (tree_function_versioning): Do not scale frequency.
6650         * ubsan.c (ubsan_create_edge): Do not pass frequency.
6651
6652 2017-11-10  Julia Koval  <julia.koval@intel.com>
6653
6654         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
6655         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
6656         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
6657         (_mm256_maskz_gf2p8affine_epi64_epi8)
6658         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
6659         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
6660         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
6661         (__builtin_ia32_vgf2p8affineqb_v32qi)
6662         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
6663         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
6664
6665 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
6666
6667         PR target/82641
6668         * config/arm/arm.c
6669         (arm_option_override): Refactor.
6670         (arm_option_reconfigure_globals): New.
6671         (arm_options_perform_arch_sanity_checks): New.
6672         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
6673         New prototype.
6674         (arm_options_perform_arch_sanity_checks): Likewise
6675
6676 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
6677
6678         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
6679         (power9-qpmul): New.
6680         * rs6000/rs6000.md ("type" attr): Add qmul.
6681         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
6682         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
6683         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
6684
6685 2017-11-10  Martin Sebor  <msebor@redhat.com>
6686
6687         PR c/81117
6688         * builtins.c (compute_objsize): Handle arrays that
6689         compute_builtin_object_size likes to fail for.  Make extern.
6690         * builtins.h (compute_objsize): Declare.
6691         (check_strncpy_sizes): New function.
6692         (expand_builtin_strncpy): Call check_strncpy_sizes.
6693         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
6694         -Wstringop-truncation.
6695         (gimple_fold_builtin_strncat): Same.
6696         * gimple.c (gimple_build_call_from_tree): Set call location.
6697         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
6698         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
6699         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
6700         (handle_builtin_strlen): Use strlen_to_stridx.
6701         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
6702         stpncpy.
6703         Use strlen_to_stridx.
6704         (pass_strlen::execute): Release strlen_to_stridx.
6705         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
6706         (-Wstringop-truncation): Document new option.
6707
6708 2017-11-10  Martin Liska  <mliska@suse.cz>
6709
6710         PR gcov-profile/82702
6711         * gcov.c (main): Handle intermediate files in a different
6712         way.
6713         (get_gcov_intermediate_filename): New function.
6714         (output_gcov_file): Remove support of intermediate files.
6715         (generate_results): Allocate intermediate file.
6716         (release_structures): Clean-up properly fn_end.
6717         (output_intermediate_file): Start iterating with line 1.
6718
6719 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
6720
6721         PR tree-optimization/82929
6722         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
6723         ops_swapped_p non-static data member.
6724         (store_immediate_info::store_immediate_info): Clear it.
6725         (imm_store_chain_info::coalesce_immediate_stores): If swapping
6726         ops set ops_swapped_p.
6727         (count_multiple_uses): Handle ops_swapped_p.
6728
6729 2017-11-10  Martin Liska  <mliska@suse.cz>
6730
6731         * coverage.c (coverage_init): Stream information about
6732         support of has_unexecuted_blocks.
6733         * doc/gcov.texi: Document that.
6734         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
6735         * gcov.c (read_graph_file): Likewise.
6736         (output_line_beginning): Fix a small issue with
6737         color output.
6738
6739 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
6740
6741         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
6742         reference of trivial component.
6743
6744 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
6745
6746         PR bootstrap/82916
6747         * gimple-ssa-store-merging.c
6748         (pass_store_merging::terminate_all_aliasing_chains): For
6749         gimple_store_p stmts also call refs_output_dependent_p.
6750
6751         PR rtl-optimization/82913
6752         * compare-elim.c (try_merge_compare): Punt if def_insn is not
6753         single set.
6754
6755 2017-11-09  Jeff Law  <law@redhat.com>
6756
6757         * vr-values.h: New file with vr_values class.
6758         * tree-vrp.c: Include vr-values.h
6759         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
6760         data objects into the vr_values class.
6761         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
6762         (get_value_range): Make it a member function within vr_values class.
6763         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
6764         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
6765         (op_with_constant_singleton_value_range): Likewise.
6766         (extract_range_for_var_from_comparison_expr): Likewise.
6767         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
6768         (extract_range_from_binary_expr): Likewise.
6769         (extract_range_from_unary_expr): Likewise.
6770         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
6771         (check_for_binary_op_overflow, extract_range_basic): Likewise.
6772         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
6773         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
6774         (compare_name_with_value, compare_names): Likewise.
6775         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
6776         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
6777         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
6778         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
6779         (extract_range_from_phi_node): Likewise.
6780         (simplify_truth_ops_using_ranges): Likewise.
6781         (simplify_div_or_mod_using_ranges): Likewise.
6782         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
6783         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
6784         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
6785         (simplify_float_conversion_using_ranges): Likewise.
6786         (simplify_internal_call_using_ranges): Likewise.
6787         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
6788         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
6789         poitner via x_vr_values for calls into gimple folder.
6790         (vrp_initialize_lattice): Make this the vr_values ctor.
6791         (vrp_free_lattice): Make this the vr_values dtor.
6792         (set_vr_value): New function.
6793         (class vrp_prop): Add vr_values data member.  Add various member
6794         functions as well as member functions that delegate to vr_values.
6795         (check_array_ref): Make a member function within vrp_prop class.
6796         (search_for_addr_array, vrp_initialize): Likewise.
6797         (vrp_finalize): Likewise.  Revamp to avoid direct access to
6798         vr_value, values_propagated, etc.
6799         (check_array_bounds): Extract vrp_prop class instance pointer from
6800         walk info structure.  Use it to call member functions.
6801         (check_all_array_refs): Make a member function within vrp_prop class.
6802         Smuggle class instance pointer via walk info structure.
6803         (x_vr_values): New local static.
6804         (vrp_valueize): Use x_vr_values to get class instance.
6805         (vr_valueize_1): Likewise.
6806         (class vrp_folder): Add vr_values data member.  Add various member
6807         functions as well as member functions that delegate to vr_values.
6808         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
6809         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
6810         class instance from vr_values.  Use it to call member functions.
6811         (vrp_dom_walker): Add vr_values data member.
6812         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
6813         instance via x_vr_values.
6814         (identify_jump_threads): Accept vr_values as argument.  Store
6815         it into the walker structure.
6816         (evrp_dom_walker): Add vr_values class data member.  Add various
6817         delegators.
6818         (evrp_dom_walker::try_find_new_range): Use vr_values data
6819         member to access the memory allocator.
6820         (evrp_dom_walker::before_dom_children): Store vr_values class
6821         instance into the vrp_folder class.
6822         (evrp_dom_walker::push_value_range): Rework to avoid direct
6823         access to num_vr_values and vr_value.
6824         (evrp_dom_walker::pop_value_range): Likewise.
6825         (execute_early_vrp): Remove call to vrp_initialize_lattice.
6826         Use vr_values to get to dump_all_value_ranges member function.
6827         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
6828         and simplify_cond_using_ranges_2 via vrp_prop class instance.
6829         Pass vr_values class instance down to identify_jump_threads.
6830         Remove call to vrp_free_lattice.
6831         (debug_all_value_ranges): Remove.
6832
6833         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
6834         (vrp_folder): Likewise.
6835
6836         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
6837         Get it from the existing bitmap instead.
6838         (vrp_intersect_ranges_1): Likewise.
6839
6840 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6841
6842         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
6843         bit_not_p field.
6844         (store_immediate_info::store_immediate_info): Add bitnotp argument,
6845         set bit_not_p to it.
6846         (imm_store_chain_info::coalesce_immediate_stores): Break group
6847         if bit_not_p is different.
6848         (count_multiple_uses, split_group,
6849         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
6850         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
6851         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
6852         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
6853         to store_immediate_info ctor.
6854
6855 2017-11-09  Jim Wilson  <jimw@sifive.com>
6856
6857         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
6858         (scan_prog_file): Likewise.
6859
6860 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
6861
6862         * bb-reorder.c (max_entry_frequency): Remove.
6863         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
6864         connect_traces, push_to_next_round_p): Remove prototypes.
6865         (find_traces_1_round): Use counts only.
6866         (push_to_next_round_p): Likewise.
6867         (find_traces): Likewise.
6868         (rotate_loop): Likewise.
6869         (find_traces_1_round): Likewise.
6870         (connect_traces): Likewise.
6871         (edge_order): Likewise.
6872
6873 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6874
6875         * config/arm/arm.c (output_return_instruction): Add comments to
6876         indicate requirement for cmse_nonsecure_entry return to account
6877         for the size of clearing instruction output here.
6878         (thumb_exit): Likewise.
6879         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
6880         return in hardfloat mode.
6881
6882 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
6883
6884         * config/rs6000/rs6000.c (machine_function): Add a bool,
6885         "toc_is_wrapped_separately".
6886         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
6887         if it wasn't explicitly set or unset, we are optimizing for speed, and
6888         doing separate shrink-wrapping.
6889         (rs6000_get_separate_components): Enable the TOC component if
6890         saving the TOC register in the prologue.
6891         (rs6000_components_for_bb): Handle the TOC component.
6892         (rs6000_emit_prologue_components): Store the TOC register where needed.
6893         (rs6000_set_handled_components): Mark TOC as handled, if handled.
6894         (rs6000_emit_prologue): Don't save the TOC if that is already done.
6895
6896 2017-11-09  Martin Jambor  <mjambor@suse.cz>
6897
6898         * ipa-param-manipulation.c: New file.
6899         * ipa-param-manipulation.h: Likewise.
6900         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
6901         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
6902         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
6903         (ipa_parm_adjustment): Likewise.
6904         (ipa_parm_adjustment_vec): Likewise.
6905         (ipa_get_vector_of_formal_parms): Moved declaration to
6906         ipa-param-manipulation.h.
6907         (ipa_get_vector_of_formal_parm_types): Likewise.
6908         (ipa_modify_formal_parameters): Likewise.
6909         (ipa_modify_call_arguments): Likewise.
6910         (ipa_combine_adjustments): Likewise.
6911         (ipa_dump_param_adjustments): Likewise.
6912         (ipa_modify_expr): Likewise.
6913         (ipa_get_adjustment_candidate): Likewise.
6914         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
6915         ipa-param-manipulation.c.
6916         (ipa_get_vector_of_formal_parm_types): Likewise.
6917         (ipa_modify_formal_parameters): Likewise.
6918         (ipa_modify_call_arguments): Likewise.
6919         (ipa_modify_expr): Likewise.
6920         (get_ssa_base_param): Likewise.
6921         (ipa_get_adjustment_candidate): Likewise.
6922         (index_in_adjustments_multiple_times_p): Likewise.
6923         (ipa_combine_adjustments): Likewise.
6924         (ipa_dump_param_adjustments): Likewise.
6925         * tree-sra.c: Also include ipa-param-manipulation.h
6926         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
6927         ipa-param.h.
6928
6929 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6930             Alan Hayward  <alan.hayward@arm.com>
6931             David Sherwood  <david.sherwood@arm.com>
6932
6933         * doc/sourcebuild.texi (vect_masked_store): Document.
6934
6935 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6936             Alan Hayward  <alan.hayward@arm.com>
6937             David Sherwood  <david.sherwood@arm.com>
6938
6939         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
6940
6941 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6942             Alan Hayward  <alan.hayward@arm.com>
6943             David Sherwood  <david.sherwood@arm.com>
6944
6945         * doc/sourcebuild.texi (vect_variable_length): Document.
6946
6947 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6948             Alan Hayward  <alan.hayward@arm.com>
6949             David Sherwood  <david.sherwood@arm.com>
6950
6951         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
6952
6953 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6954             Alan Hayward  <alan.hayward@arm.com>
6955             David Sherwood  <david.sherwood@arm.com>
6956
6957         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
6958
6959 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6960             Alan Hayward  <alan.hayward@arm.com>
6961             David Sherwood  <david.sherwood@arm.com>
6962
6963         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
6964         previously undocumented selectors.
6965         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
6966
6967 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6968
6969         * doc/rtl.texi (const_vector): Say that elements can be
6970         const_wide_ints too.
6971         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
6972         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
6973         (gen_vec_duplicate): Use it instead of CONSTANT_P.
6974         * optabs.c (expand_vector_broadcast): Likewise.
6975
6976 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6977             Alan Hayward  <alan.hayward@arm.com>
6978             David Sherwood  <david.sherwood@arm.com>
6979
6980         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
6981         scaled index even if the unscaled address was invalid.
6982         Don't increase the complexity of using a scale in that case.
6983
6984 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6985             Alan Hayward  <alan.hayward@arm.com>
6986             David Sherwood  <david.sherwood@arm.com>
6987
6988         * doc/rtl.texi: Rewrite the subreg rules so that they partition
6989         the inner register into REGMODE_NATURAL_SIZE bytes rather than
6990         UNITS_PER_WORD bytes.
6991         * emit-rtl.c (validate_subreg): Divide subregs into blocks
6992         based on REGMODE_NATURAL_SIZE of the inner mode.
6993         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
6994         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
6995         * expmed.c (lowpart_bit_field_p): Divide the value up into
6996         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
6997         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
6998         whether something is likely to occupy more than one register.
6999
7000 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7001
7002         PR ipa/82879
7003         * ipa-inline-transform.c (update_noncloned_frequencies): Use
7004         profile_count::adjust_for_ipa_scaling.
7005         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
7006         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
7007         function.
7008         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
7009
7010 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7011
7012         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
7013         (split_group): Add total_orig and total_new arguments, estimate the
7014         number of statements related to the store group without store merging
7015         and with store merging.
7016         (imm_store_chain_info::output_merged_store): Adjust split_group
7017         callers, punt if estimated number of statements with store merging
7018         is not smaller than estimated number of statements without it.
7019         Formatting fix.
7020         (handled_load): Remove has_single_use checks.
7021         (pass_store_merging::process_store): Likewise.
7022
7023 2017-11-09  Richard Biener  <rguenther@suse.de>
7024
7025         PR tree-optimization/82902
7026         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
7027
7028 2017-11-09  Martin Liska  <mliska@suse.cz>
7029
7030         PR target/82863
7031         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
7032         uninitialized.
7033
7034 2017-11-09  Martin Liska  <mliska@suse.cz>
7035
7036         PR tree-optimization/82669
7037         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
7038
7039 2017-11-09  Martin Liska  <mliska@suse.cz>
7040
7041         PR gcov-profile/48463
7042         * coverage.c (coverage_begin_function): Output also end locus
7043         of a function and information whether the function is
7044         artificial.
7045         * gcov-dump.c (tag_function): Parse and print the information.
7046         * gcov.c (INCLUDE_MAP): Add include.
7047         (INCLUDE_SET): Likewise.
7048         (struct line_info): Move earlier in the source file because
7049         of vector<line_info> in function_info structure.
7050         (line_info::line_info): Likewise.
7051         (line_info::has_block): Likewise.
7052         (struct source_info): Add new member index.
7053         (source_info::get_functions_at_location): New function.
7054         (function_info::group_line_p): New function.
7055         (output_intermediate_line): New function.
7056         (output_intermediate_file): Use the mentioned function.
7057         (struct function_start): New.
7058         (struct function_start_pair_hash): Likewise.
7059         (process_file): Add code that identifies group functions.
7060         Assign lines either to global or function scope.
7061         (generate_results): Skip artificial functions.
7062         (find_source): Assign index for each source file.
7063         (read_graph_file): Read new flag artificial and end_line.
7064         (add_line_counts): Assign it either to global of function scope.
7065         (accumulate_line_counts): Isolate core of the function to
7066         accumulate_line_info and call it for both function and global
7067         scope lines.
7068         (accumulate_line_info): New function.
7069         (output_line_beginning): Fix GNU coding style.
7070         (print_source_line): New function.
7071         (output_line_details): Likewise.
7072         (output_function_details): Likewise.
7073         (output_lines): Iterate both source (global) scope and function
7074         scope.
7075         (struct function_line_start_cmp): New class.
7076         * doc/gcov.texi: Reflect changes in documentation.
7077
7078 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7079
7080         PR debug/82837
7081         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
7082         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
7083         and similarly for not instead of neg.
7084
7085 2017-11-08  Andi Kleen  <ak@linux.intel.com>
7086
7087         * config/i386/i386.opt: Add -mforce-indirect-call.
7088         * config/i386/predicates.md: Check for flag_force_indirect_call.
7089         * doc/invoke.texi: Document -mforce-indirect-call
7090
7091 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
7092
7093         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
7094         New extern.
7095         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
7096         config/riscv/riscv.c (predict.h): New include.
7097         (riscv_slow_unaligned_access_p): No longer static.
7098         (riscv_block_move_straight): Add require.
7099         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
7100
7101 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7102
7103         PR target/82855
7104         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
7105         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
7106         nonimmediate_operand predicate for operand 1 instead of
7107         register_operand.
7108
7109 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7110
7111         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
7112         New pattern.
7113         * config/aarch64/constraints.md (Uml): New constraint.
7114         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
7115         predicate.
7116
7117 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7118
7119         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
7120         of two vec_duplicates into a vec_concat.
7121
7122 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7123
7124         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7125         Simplify vec_merge of vec_duplicate and vec_concat.
7126         * config/aarch64/constraints.md (Utq): New constraint.
7127         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
7128         define_insn.
7129
7130 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7131
7132         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7133         Simplify vec_merge of vec_duplicate and const_vector.
7134         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
7135         New predicate.
7136         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
7137         mode iterator.  Update predicate on operand 1 to
7138         handle non-const_vec constants.  Delete constraints.
7139         (*aarch64_combinez_be<mode>): Likewise for operand 2.
7140
7141 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7142
7143         PR tree-optimization/78821
7144         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
7145         data member.
7146         (store_operand_info::store_operand_info): Initialize it to false.
7147         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
7148         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
7149         store in the group, and if chain_info is non-NULL, to ignore altogether
7150         that chain.
7151         (compatible_load_p): Fail if bit_not_p does not match.
7152         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
7153         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
7154         (pass_store_merging::process_store): Adjust
7155         terminate_all_aliasing_chains calls to pass NULL in all current spots,
7156         call terminate_all_aliasing_chains newly when adding a store into
7157         a chain with non-NULL chain_info.
7158
7159 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7160
7161         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
7162
7163 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7164
7165         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
7166         Remove.
7167         (aarch64_layout_frame): Initialise emit_frame_chain.
7168         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
7169         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
7170
7171 2017-11-08  Martin Liska  <mliska@suse.cz>
7172
7173         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
7174         of gimple_call_internal_p.
7175
7176 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7177
7178         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
7179
7180 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7181
7182         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
7183         "do {} while (0)".
7184
7185 2017-11-08  Martin Liska  <mliska@suse.cz>
7186
7187         PR sanitizer/82792
7188         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
7189
7190 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7191
7192         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
7193
7194 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
7195
7196         PR target/82855
7197         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
7198         (*cmp<mode>_ccz_1): New insn with $k alternative.
7199
7200         PR target/82855
7201         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
7202         RTX_COMM_COMPARE as commutative as well.
7203         (ix86_binary_operator_ok): Formatting fix.
7204         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
7205         *<code><mode>3<mask_name><round_saeonly_name>,
7206         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
7207         *<s>mul<mode>3_highpart<mask_name>,
7208         *vec_widen_umult_even_v16si<mask_name>,
7209         *vec_widen_umult_even_v8si<mask_name>,
7210         *vec_widen_umult_even_v4si<mask_name>,
7211         *vec_widen_smult_even_v16si<mask_name>,
7212         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
7213         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
7214         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
7215         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
7216         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
7217         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
7218         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
7219         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
7220         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
7221         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
7222         ix86_binary_operator_ok.  Formatting fixes.
7223         (*<plusminus_insn><mode>3<mask_name><round_name>,
7224         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
7225         fixes.
7226
7227 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
7228
7229         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
7230         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
7231         eq and ne if TARGET_ISEL.
7232         (cmp): New code_iterator.
7233         (UNS, UNSU_, UNSIK): New code_attrs.
7234         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
7235         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
7236         to...
7237         ("eq<mode>3"): ... this.
7238         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
7239         to...
7240         ("ne<mode>3"): ... this.
7241
7242 2017-11-07  Julia Koval  <julia.koval@intel.com>
7243
7244         PR target/82812
7245         * common/config/i386/i386-common.c
7246         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
7247         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
7248         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
7249         * config/i386/i386.opt: Ditto.
7250         * config/i386/i386.c (ix86_target_string): Ditto.
7251         (ix86_option_override_internal): Ditto.
7252         (ix86_init_mpx_builtins): Move MPX to args2.
7253         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
7254         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
7255         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
7256         __builtin_ia32_vgf2p8affineinvqb_v32qi,
7257         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
7258         __builtin_ia32_vgf2p8affineinvqb_v16qi,
7259         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
7260
7261 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
7262
7263         PR target/80425
7264         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
7265         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
7266         (zero-extendsidi peephole2): Remove peephole.
7267
7268 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7269
7270         PR c/53037
7271         * stor-layout.c: Include attribs.h.
7272         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
7273         explicit lookup of "aligned" attribute.
7274
7275 2017-11-07  Andrew Waterman  <andrew@sifive.com>
7276
7277         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
7278         (riscv_expand_block_move): Likewise.
7279         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
7280         implementation.
7281         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
7282         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
7283         * config/riscv/riscv.c (riscv_block_move_straight): New function.
7284         (riscv_adjust_block_mem): Likewise.
7285         (riscv_block_move_loop): Likewise.
7286         (riscv_expand_block_move): Likewise.
7287         * config/riscv/riscv.md (movmemsi): New pattern.
7288
7289 2017-11-07  Michael Clark  <michaeljclark@mac.com>
7290
7291         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
7292         (MUSL_DYNAMIC_LINKER): Likewise.
7293
7294 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
7295
7296         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
7297         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
7298         nonmmory_operand.
7299
7300 2017-11-07  Richard Biener  <rguenther@suse.de>
7301
7302         * match.pd: Fix build.
7303
7304 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
7305             Jackson Woodruff  <jackson.woodruff@arm.com>
7306
7307         PR tree-optimization/71026
7308         * match.pd: Canonicalize negate in division.
7309
7310 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
7311
7312         PR middle-end/80131
7313         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
7314
7315 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7316
7317         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
7318         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
7319
7320 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7321
7322         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
7323         non-scalar integral types.
7324         * match.pd (negate_expr_p): Handle MINUS_EXPR.
7325         (-(A-B), -(~A)): New transformations.
7326
7327 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7328
7329         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7330         semicolon after "do {} while (0)".
7331         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7332         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7333         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7334         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7335         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7336
7337 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7338
7339         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
7340         after "do {} while (0)".
7341         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7342         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7343         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7344         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7345         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7346
7347 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7348
7349         PR other/82784
7350         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
7351         "while {} do (0)".
7352         (arm_rtx_costs_internal): Add missing semicolon after
7353         HANDLE_NARROW_SHIFT_ARITH call.
7354
7355 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7356
7357         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7358         disable isel if it was not set explicitly.
7359
7360 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
7361
7362         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
7363         (add_type_attribute) likewise.
7364
7365 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
7366
7367         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
7368         of struct ix86_frame.
7369         (ix86_initial_elimination_offset): Likewise.
7370         (ix86_expand_split_stack_prologue): Likewise.
7371
7372 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
7373
7374         * tree-vrp.h (enum value_range_type): Update stale comment.
7375
7376 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7377             Alan Hayward  <alan.hayward@arm.com>
7378             David Sherwood  <david.sherwood@arm.com>
7379
7380         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
7381         (aarch64_expand_vec_perm_const): Take the number of units too.
7382         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
7383         (aarch64_expand_vec_perm_const): Likewise.
7384         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
7385         (vec_perm<mode>): Update accordingly.
7386
7387 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7388             Alan Hayward  <alan.hayward@arm.com>
7389             David Sherwood  <david.sherwood@arm.com>
7390
7391         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
7392         Take the number of units too.
7393         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
7394         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
7395         but check for a vector mode before rather than after the call.
7396         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
7397         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
7398         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
7399         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
7400         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
7401         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
7402         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
7403         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
7404         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
7405         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
7406         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
7407         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
7408         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
7409         (aarch64_sqdmull2_n<mode>): Update accordingly.
7410
7411 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7412             Alan Hayward  <alan.hayward@arm.com>
7413             David Sherwood  <david.sherwood@arm.com>
7414
7415         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
7416         the number of units too.
7417         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
7418         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
7419         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
7420         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
7421         (vec_store_lanesxi<mode>): Update accordingly.
7422
7423 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7424             Alan Hayward  <alan.hayward@arm.com>
7425             David Sherwood  <david.sherwood@arm.com>
7426
7427         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
7428         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
7429         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
7430         of units rather than the mode.
7431         * config/aarch64/iterators.md (nunits): New mode attribute.
7432         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
7433         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
7434         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
7435         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
7436         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
7437         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
7438         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
7439         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
7440         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
7441         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
7442         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
7443         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
7444         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
7445         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
7446         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
7447         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
7448         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
7449         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
7450         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
7451         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
7452         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7453         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
7454         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
7455         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
7456         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
7457         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
7458         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
7459         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
7460         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
7461         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
7462         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
7463         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
7464         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
7465         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
7466         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
7467         (aarch64_simd_vec_setv2di): Likewise.
7468
7469 2017-11-06  Carl Love  <cel@us.ibm.com>
7470
7471         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
7472         definitions.
7473         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
7474         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
7475         to power 8.
7476         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
7477         extern declaration.
7478         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
7479         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
7480         Add power 8 macro expansions.
7481         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
7482         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
7483         power 8 instructions.  (VSX_XXBR): Add iterator.
7484
7485 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
7486
7487         * config/arm/arm.md (predicable_short_it): Change default to "no",
7488         improve documentation, remove uses that are identical to the default.
7489         (enabled_for_depr_it): Rename to enabled_for_short_it.
7490         * gcc/config/arm/arm-fixed.md (predicable_short_it):
7491         Remove default uses.
7492         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
7493         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
7494         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
7495         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
7496
7497 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7498
7499         PR target/82748
7500         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
7501         float128 helper macros, which are no longer used after deleting
7502         the old 'q' built-in functions, and moving the round to odd
7503         built-in functions to being special built-in functions.
7504         (BU_FLOAT128_2): Likewise.
7505         (BU_FLOAT128_1_HW): Likewise.
7506         (BU_FLOAT128_2_HW): Likewise.
7507         (BU_FLOAT128_3_HW): Likewise.
7508         (FABSQ): Delete old 'q' built-in functions.
7509         (COPYSIGNQ): Likewise.
7510         (SQRTF128_ODD): Move round to odd built-in functions to be
7511         special built-in functions, so that we can handle
7512         -mabi=ieeelongdouble.
7513         (TRUNCF128_ODD): Likewise.
7514         (ADDF128_ODD): Likewise.
7515         (SUBF128_ODD): Likewise.
7516         (MULF128_ODD): Likewise.
7517         (DIVF128_ODD): Likewise.
7518         (FMAF128_ODD): Likewise.
7519         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
7520         built-in names to 'f128'.
7521         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
7522         old 'q' built-in functions, as the machine independent code for
7523         'f128' built-in functions handles this.
7524         (rs6000_expand_builtin): Add expansion for float128 round to odd
7525         functions, keying off on -mabi=ieeelongdouble of whether to use
7526         the KFmode or TFmode variant.
7527         (rs6000_init_builtins): Initialize the _Float128 round to odd
7528         built-in functions.
7529         * doc/extend.texi (PowerPC Built-in Functions): Document the old
7530         _Float128 'q' built-in functions are now mapped into the new
7531         'f128' built-in functions.
7532
7533 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
7534
7535         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
7536         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
7537
7538 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
7539
7540         PR jit/82826
7541         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
7542         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
7543         * toplev.c: Include "ipa-fnsummary.h".
7544         (toplev::finalize): Call ipa_fnsummary_c_finalize.
7545
7546 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
7547
7548         PR tree-optimization/82838
7549         * gimple-ssa-store-merging.c
7550         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
7551         on a separate gimple_seq which is then appended to seq.
7552
7553 2017-11-06  Jeff Law  <law@redhat.com>
7554
7555         PR target/82788
7556         * config/i386/i386.c (PROBE_INTERVAL): Remove.
7557         (get_probe_interval): New functions.
7558         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
7559         (ix86_adjust_stack_and_probe): Likewise.
7560         (output_adjust_stack_and_probe): Likewise.
7561         (ix86_emit_probe_stack_range): Likewise.
7562         (ix86_expand_prologue): Likewise.
7563
7564 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7565
7566         PR tree-optimization/82816
7567         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
7568         if the modes of the two types are the same.
7569         (convert_plusminus_to_widen): Likewise.
7570
7571 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7572
7573         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
7574         p9_vadu<mode>3.
7575         (usadv16qi): New define_expand.
7576         (usadv8hi): New define_expand.
7577
7578 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
7579
7580         PR bootstrap/82832
7581         * ipa-inline-transform.c (update_noncloned_frequencies): Always
7582         scale.
7583         (inline_transform): Likewise.
7584         * predict.c (counts_to_freqs): Remove useless conditional.
7585         * profile-count.h (profile_count::apply_scale): Move sanity check.
7586         * tree-inline.c (copy_bb): Always scale.
7587         (copy_cfg_body): Likewise.
7588
7589 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
7590
7591         PR target/67591
7592         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
7593         attribute.
7594         (*cmp_ite0): Add enabled_for_depr_it attribute.
7595         (*cmp_ite1): Likewise.
7596
7597 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7598
7599         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
7600         TYPE_MFCRF.
7601
7602 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7603
7604         * tree-vrp.c (vrp_int_const_binop): Return true on success and
7605         return the value by pointer.
7606         (extract_range_from_multiplicative_op_1): Update accordingly.
7607         Return as soon as an operation fails.
7608
7609 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7610
7611         PR other/82784
7612         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
7613         (DEF_SANITIZER_BUILTIN): ... here.
7614         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
7615         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
7616
7617 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7618
7619         PR other/82784
7620         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
7621         macro body.
7622         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
7623         ASM_OUTPUT_BEFORE_CASE_LABEL call.
7624         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
7625         after macro body.
7626         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7627         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7628         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7629
7630 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7631
7632         PR other/82784
7633         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
7634         "do {} while (0)".
7635
7636 2017-11-04  Michael Clark  <michaeljclark@mac.com>
7637
7638         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
7639         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
7640         (adddi3): Likewise.
7641         (*addsi3_extended): Likewise.
7642         (*addsi3_extended2): Likewise.
7643         (<optab>si3): Likewise.
7644         (<optab>di3): Likewise.
7645         (<optab><mode>3): Likewise.
7646         (<*optabe>si3_internal): Likewise.
7647         (zero_extendqi<SUPERQI:mode>2): Likewise.
7648         (*add<mode>hi3): Likewise.
7649         (*xor<mode>hi3): Likewise.
7650         (<optab>di3): Likewise.
7651         (*<optab>si3_extend): Likewise.
7652         (*sge<u>_<X:mode><GPR:mode>): Likewise.
7653         (*slt<u>_<X:mode><GPR:mode>): Likewise.
7654         (*sle<u>_<X:mode><GPR:mode>): Likewise.
7655
7656 2017-11-04  Andrew Waterman  <andrew@sifive.com>
7657
7658         * config/riscv/riscv.c (riscv_option_override): Conditionally set
7659         TARGET_STRICT_ALIGN based upon -mtune argument.
7660
7661 2017-11-04  Andrew Waterman  <andrew@sifive.com>
7662
7663         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
7664
7665 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
7666
7667         * config/i386/i386.c (choose_basereg): Use optional scratch
7668         register and add assertion.
7669         (x86_emit_outlined_ms2sysv_save): Use scratch register when
7670         needed, and don't allocate stack.
7671         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
7672         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
7673         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
7674
7675 2017-11-03  Jeff Law  <law@redhat.com>
7676
7677         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
7678         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
7679         to probe at the start of a noreturn function.
7680
7681 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
7682
7683         PR tree-optimization/78821
7684         * gimple-ssa-store-merging.c: Update the file comment.
7685         (MAX_STORE_ALIAS_CHECKS): Define.
7686         (struct store_operand_info): New type.
7687         (store_operand_info::store_operand_info): New constructor.
7688         (struct store_immediate_info): Add rhs_code and ops data members.
7689         (store_immediate_info::store_immediate_info): Add rhscode, op0r
7690         and op1r arguments to the ctor, initialize corresponding data members.
7691         (struct merged_store_group): Add load_align_base and load_align
7692         data members.
7693         (merged_store_group::merged_store_group): Initialize them.
7694         (merged_store_group::do_merge): Update them.
7695         (merged_store_group::apply_stores): Pick the constant for
7696         encode_tree_to_bitpos from one of the two operands, or skip
7697         encode_tree_to_bitpos if neither operand is a constant.
7698         (class pass_store_merging): Add process_store method decl.  Remove
7699         bool argument from terminate_all_aliasing_chains method decl.
7700         (pass_store_merging::terminate_all_aliasing_chains): Remove
7701         var_offset_p argument and corresponding handling.
7702         (stmts_may_clobber_ref_p): New function.
7703         (compatible_load_p): New function.
7704         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
7705         if there is overlap and rhs_code is not INTEGER_CST.  For
7706         non-overlapping stores terminate group if rhs is not mergeable.
7707         (get_alias_type_for_stmts): Change first argument from
7708         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
7709         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
7710         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
7711         alias type.
7712         (get_location_for_stmts): Change first argument from
7713         auto_vec<gimple *> & to vec<gimple *> &.
7714         (struct split_store): Remove orig_stmts data member, add orig_stores.
7715         (split_store::split_store): Create orig_stores rather than orig_stmts.
7716         (find_constituent_stmts): Renamed to ...
7717         (find_constituent_stores): ... this.  Change second argument from
7718         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
7719         to info structures rather than the statements.
7720         (split_group): Rename ALLOW_UNALIGNED argument to
7721         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
7722         it.  Adjust find_constituent_stores caller.
7723         (imm_store_chain_info::output_merged_store): Handle rhs_code other
7724         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
7725         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
7726         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
7727         (mem_valid_for_store_merging): New function.
7728         (handled_load): New function.
7729         (pass_store_merging::process_store): New method.
7730         (pass_store_merging::execute): Use process_store method.  Adjust
7731         terminate_all_aliasing_chains caller.
7732
7733 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7734
7735         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
7736         Return true for more constants, symbols and label references.
7737         (aarch64_valid_floating_const): Remove unused function.
7738
7739 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7740
7741         PR target/82786
7742         * config/aarch64/aarch64.c (aarch64_layout_frame):
7743         Undo forcing of LR at bottom of frame.
7744
7745 2017-11-03  Jeff Law  <law@redhat.com>
7746
7747         PR target/82823
7748         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
7749         for int_registers_saved.
7750
7751         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
7752         extracted from tree-ssa-dom.c.
7753         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
7754         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
7755         (record_equivalences_from_incoming_edge): Add additional argument
7756         to single_pred_edge_ignoring_loop_edges call.
7757         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
7758         (uncprop_dom_walker::before_dom_children): Add additional argument
7759         to single_pred_edge_ignoring_loop_edges call.
7760         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
7761         single_pred_edge_ignoring_loop_edges rather than open coding.
7762         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
7763
7764 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
7765
7766         * match.pd (-(-A)): Rewrite.
7767
7768 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7769
7770         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
7771         (rs6000_emit_int_cmove): New declaration.
7772         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
7773         (rs6000_emit_sISEL): Delete.
7774         (rs6000_emit_int_cmove): Make non-static.
7775         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
7776         instead of rs6000_emit_sISEL.
7777
7778 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
7779
7780         * asan.c (create_cond_insert_point): Maintain profile.
7781         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
7782         merged.
7783         * basic-block.h (struct basic_block_def): Remove frequency.
7784         (EDGE_FREQUENCY): Use to_frequency
7785         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
7786         heuristics.
7787         (find_traces): Update to use to_frequency.
7788         (find_traces_1_round): Likewise; use only IPA counts.
7789         (bb_to_key): Likewise.
7790         (connect_traces): Use IPA counts only.
7791         (copy_bb_p): Update to use to_frequency.
7792         (fix_up_crossing_landing_pad): Likewise.
7793         (sanitize_hot_paths): Likewise.
7794         * bt-load.c (basic_block_freq): Likewise.
7795         * cfg.c (init_flow): Set count_max to uninitialized.
7796         (check_bb_profile): Remove frequencies; check counts.
7797         (dump_bb_info): Do not dump frequencies.
7798         (update_bb_profile_for_threading): Update counts only.
7799         (scale_bbs_frequencies_int): Likewise.
7800         (MAX_SAFE_MULTIPLIER): Remove.
7801         (scale_bbs_frequencies_gcov_type): Update counts only.
7802         (scale_bbs_frequencies_profile_count): Update counts only.
7803         (scale_bbs_frequencies): Update counts only.
7804         * cfg.h (struct control_flow_graph): Add count-max.
7805         (update_bb_profile_for_threading): Update prototype.
7806         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
7807         (find_many_sub_basic_blocks): Likewise.
7808         * cfgcleanup.c (try_forward_edges): Likewise.
7809         (try_crossjump_to_edge): Likewise.
7810         * cfgexpand.c (expand_gimple_cond): Likewise.
7811         (expand_gimple_tailcall): Likewise.
7812         (construct_init_block): Likewise.
7813         (construct_exit_block): Likewise.
7814         * cfghooks.c (verify_flow_info): Check consistency of counts.
7815         (dump_bb_for_graph): Do not dump frequencies.
7816         (split_block_1): Do not update frequencies.
7817         (split_edge): Do not update frequencies.
7818         (make_forwarder_block): Do not update frequencies.
7819         (duplicate_block): Do not update frequencies.
7820         (account_profile_record): Do not update frequencies.
7821         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
7822         for global heuristics.
7823         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
7824         (expected_loop_iterations_unbounded): Use counts only.
7825         * cfgloopmanip.c (scale_loop_profile): Simplify.
7826         (create_empty_loop_on_edge): Simplify
7827         (loopify): Simplify
7828         (duplicate_loop_to_header_edge): Simplify
7829         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
7830         (update_br_prob_note): Take care of removing note when profile
7831         becomes undefined.
7832         (relink_block_chain): Do not dump frequency.
7833         (rtl_account_profile_record): Use to_frequency.
7834         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
7835         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
7836         (cgraph_update_edges_for_call_stmt_node): Likewise.
7837         (cgraph_edge::verify_count_and_frequency): Update.
7838         (cgraph_node::verify_node): Temporarily disable frequency verification.
7839         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
7840         to_cgraph_frequency.
7841         (cgraph_edge::rebuild_edges): Convert to ipa counts.
7842         * cgraphunit.c (init_lowered_empty_function): Do not initialize
7843         frequencies.
7844         (cgraph_node::expand_thunk): Update profile.
7845         * except.c (dw2_build_landing_pads): Do not update frequency.
7846         * final.c (compute_alignments): Use to_frequency.
7847         (dump_basic_block_info): Do not dump frequency.
7848         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
7849         (dump_gimple_bb_header): Do not dump frequency.
7850         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
7851         do update count.
7852         * gimple-streamer-in.c (input_bb): Do not stream frequency.
7853         * gimple-streamer-out.c (output_bb): Do not stream frequency.
7854         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
7855         (init_before_recovery): Do not update frequency.
7856         (sched_create_recovery_edges): Do not update frequency.
7857         * hsa-gen.c (convert_switch_statements): Do not update frequency.
7858         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
7859         (ipa_cp_c_finalize): Set max_count to uninitialized.
7860         * ipa-fnsummary.c (get_minimal_bb): Use counts.
7861         (param_change_prob): Use counts.
7862         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
7863         local profiles.
7864         * ipa-split.c (consider_split): Use to_frequency.
7865         (split_function): Use to_frequency.
7866         * ira-build.c (loop_compare_func): Likewise.
7867         (mark_loops_for_removal): Likewise.
7868         (mark_all_loops_for_removal): Likewise.
7869         * loop-doloop.c (doloop_modify): Do not update frequency.
7870         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
7871         frequency.
7872         * lto-streamer-in.c (input_function): Update count_max.
7873         * omp-expand.c (expand_omp_taskreg): Update count_max.
7874         * omp-simd-clone.c (simd_clone_adjust): Update profile.
7875         * predict.c (maybe_hot_frequency_p): Use to_frequency.
7876         (maybe_hot_count_p): Use ipa counts only.
7877         (maybe_hot_bb_p): Simplify.
7878         (maybe_hot_edge_p): Simplify.
7879         (probably_never_executed): Do not take frequency argument.
7880         (probably_never_executed_bb_p): Do not pass frequency.
7881         (probably_never_executed_edge_p): Likewise.
7882         (combine_predictions_for_bb): Check that profile is nonzero.
7883         (propagate_freq): Do not set frequency.
7884         (drop_profile): Simplify.
7885         (counts_to_freqs): Simplify.
7886         (expensive_function_p): Use to_frequency.
7887         (propagate_unlikely_bbs_forward): Simplify.
7888         (determine_unlikely_bbs): Simplify.
7889         (estimate_bb_frequencies): Add hack to silence graphite issues.
7890         (compute_function_frequency): Use ipa counts.
7891         (pass_profile::execute): Update.
7892         (rebuild_frequencies): Use counts only.
7893         (force_edge_cold): Use counts only.
7894         * profile-count.c (profile_count::dump): Dump new count types.
7895         (profile_count::differs_from_p): Check compatiblity.
7896         (profile_count::to_frequency): New function.
7897         (profile_count::to_cgraph_frequency): New function.
7898         * profile-count.h (struct function): Declare.
7899         (enum profile_quality): Add profile_guessed_local and
7900         profile_guessed_global0.
7901         (class profile_proability): Decrease number of bits to 29;
7902         update from_reg_br_prob_note and to_reg_br_prob_note.
7903         (class profile_count: Update comment; decrease number of bits
7904         to 61. Check compatibility.
7905         (profile_count::compatible_p): New private member function.
7906         (profile_count::ipa_p): New member function.
7907         (profile_count::operator<): Handle global zero correctly.
7908         (profile_count::operator>): Handle global zero correctly.
7909         (profile_count::operator<=): Handle global zero correctly.
7910         (profile_count::operator>=): Handle global zero correctly.
7911         (profile_count::nonzero_p): New member function.
7912         (profile_count::force_nonzero): New member function.
7913         (profile_count::max): New member function.
7914         (profile_count::apply_scale): Handle IPA scalling.
7915         (profile_count::guessed_local): New member function.
7916         (profile_count::global0): New member function.
7917         (profile_count::ipa): New member function.
7918         (profile_count::to_frequency): Declare.
7919         (profile_count::to_cgraph_frequency): Declare.
7920         * profile.c (OVERLAP_BASE): Delete.
7921         (compute_frequency_overlap): Delete.
7922         (compute_branch_probabilities): Do not use compute_frequency_overlap.
7923         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
7924         * sched-ebb.c (rank): Use counts only.
7925         * shrink-wrap.c (handle_simple_exit): Use counts only.
7926         (try_shrink_wrapping): Use counts only.
7927         (place_prologue_for_one_component): Use counts only.
7928         * tracer.c (find_best_predecessor): Use to_frequency.
7929         (find_trace): Use to_frequency.
7930         (tail_duplicate): Use to_frequency.
7931         * trans-mem.c (expand_transaction): Do not update frequency.
7932         * tree-call-cdce.c: Do not update frequency.
7933         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
7934         (gimple_merge_blocks): Likewise.
7935         (gimple_split_edge): Likewise.
7936         (gimple_duplicate_sese_region): Likewise.
7937         (gimple_duplicate_sese_tail): Likewise.
7938         (move_sese_region_to_fn): Likewise.
7939         (gimple_account_profile_record): Likewise.
7940         (insert_cond_bb): Likewise.
7941         * tree-complex.c (expand_complex_div_wide): Likewise.
7942         * tree-eh.c (lower_resx): Update profile.
7943         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
7944         frequencies.
7945         (initialize_cfun): Do not initialize frequencies
7946         (freqs_to_counts): Delete.
7947         (copy_cfg_body): Ignore count parameter.
7948         (copy_body): Update.
7949         (expand_call_inline): Update count_max.
7950         (optimize_inline_calls): Update count_max.
7951         (tree_function_versioning): Update count_max.
7952         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
7953         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
7954         frequency.
7955         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
7956         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
7957         (try_peel_loop): Likewise.
7958         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
7959         to_frequency.
7960         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
7961         (tree_transform_and_unroll_loop): Do not use frequencies
7962         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
7963         Use reliable prediction only.
7964         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
7965         * tree-ssa-sink.c (select_best_block): Use to_frequency.
7966         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
7967         probability scaling.
7968         * tree-ssa-threadupdate.c (create_block_for_threading): Do
7969         not update frequency
7970         (any_remaining_duplicated_blocks): Likewise.
7971         (update_profile): Likewise.
7972         (estimated_freqs_path): Delete.
7973         (freqs_to_counts_path): Delete.
7974         (clear_counts_path): Delete.
7975         (ssa_fix_duplicate_block_edges): Likewise.
7976         (duplicate_thread_path): Likewise.
7977         * tree-switch-conversion.c (gen_inbound_check): Use counts.
7978         * tree-tailcall.c (decrease_profile): Do not update frequency.
7979         (eliminate_tail_call): Likewise.
7980         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
7981         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
7982         (optimize_mask_stores): Likewise.
7983         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
7984         * ubsan.c (ubsan_expand_null_ifn): Update profile.
7985         (ubsan_expand_ptr_ifn): Update profile.
7986         * value-prof.c (gimple_ic): Simplify.
7987         * value-prof.h (gimple_ic): Update prototype.
7988         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
7989         * ipa-inline.c (compute_uninlined_call_time): Be sure that
7990         counts are nonzero.
7991         (want_inline_self_recursive_call_p): Likewise.
7992         (resolve_noninline_speculation): Only cummulate defined counts.
7993         (inline_small_functions): Use nonzero_p.
7994         (ipa_inline): Do not access freed node.
7995
7996 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7997
7998         * config/aarch64/aarch64.c (aarch64_override_options_internal):
7999         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
8000
8001 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
8002
8003         * config/riscv/riscv.c (riscv_legitimize_move): Handle
8004         non-legitimate address.
8005
8006 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8007
8008         * config/rs6000/rs6000.md (*lt0_disi): Delete.
8009         (*lt0_<mode>di, *lt0_<mode>si): New.
8010
8011 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8012
8013         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
8014         TARGET_PAIRED_FLOAT.
8015
8016 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
8017             Jim Wilson  <jim.wilson@linaro.org>
8018
8019         * config/aarch64/aarch64-cores.def (saphira): New CPU.
8020         * config/aarch64/aarch64-tune.md: Regenerated.
8021         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
8022         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
8023
8024 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
8025
8026         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
8027         (arc_expand_prologue): Restore blink for millicode.
8028         * config/arc/linux.h (LINK_EH_SPEC): Defined.
8029
8030 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
8031
8032         PR target/82809
8033         * config/i386/i386.c (ix86_vector_duplicate_value): Use
8034         gen_vec_duplicate after forcing the scalar into a register.
8035
8036 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
8037
8038         * combine (try_combine): Print the insns input to try_combine to the
8039         dump file.
8040
8041 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
8042
8043         PR target/79868
8044         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8045         Remove second argument from aarch64_process_target_attr call.
8046         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
8047         Ditto.
8048         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
8049         field type.
8050         (aarch64_handle_attr_arch): Remove second argument.
8051         (aarch64_handle_attr_cpu): Ditto.
8052         (aarch64_handle_attr_tune): Ditto.
8053         (aarch64_handle_attr_isa_flags): Ditto.
8054         (aarch64_process_one_target_attr): Ditto.
8055         (aarch64_process_target_attr): Ditto.
8056         (aarch64_option_valid_attribute_p): Remove second argument.
8057         on aarch64_process_target_attr call.
8058
8059 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8060
8061         * diagnostic.c: Include "selftest-diagnostic.h".
8062         (selftest::assert_location_text): New function.
8063         (selftest::test_diagnostic_get_location_text): New function.
8064         (selftest::diagnostic_c_tests): Call it.
8065
8066 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8067
8068         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
8069         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
8070         (class selftest::test_diagnostic_context): Move to...
8071         * selftest-diagnostic.c: New file.
8072         * selftest-diagnostic.h: New file.
8073
8074 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
8075
8076         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
8077         offset range for FT32B.
8078         * config/ft32/ft32.h: option "mcompress" enables relaxation.
8079         * config/ft32/ft32.md: Add TARGET_NOPM.
8080         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
8081         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
8082
8083 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
8084
8085         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
8086
8087 2017-11-02  Jeff Law  <law@redhat.com>
8088
8089         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
8090         virtual keyword on FINAL OVERRIDE members.
8091
8092         * tree-ssa-propagate.h (ssa_propagation_engine): Group
8093         virtuals together.  Add virtual destructor.
8094         (substitute_and_fold_engine): Similarly.
8095
8096 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
8097
8098         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
8099
8100 2017-11-02  Richard Biener  <rguenther@suse.de>
8101
8102         PR tree-optimization/82795
8103         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
8104
8105 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8106
8107         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
8108         gcc_SUN_LD_VERSION.
8109         (gcc_GAS_CHECK_FEATURE): Remove.
8110         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
8111         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
8112         * configure: Regenerate.
8113
8114 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
8115
8116         * config/arc/arc.c (hwloop_optimize): Account for empty
8117         body loops.
8118
8119 2017-11-02  Richard Biener  <rguenther@suse.de>
8120
8121         PR middle-end/82765
8122         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
8123         Truncate ARRAY_REF index and element size.
8124
8125 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8126
8127         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
8128
8129 2017-11-01  Jeff Law  <law@redhat.com>
8130
8131         * tree-ssa-ccp.c (ccp_folder): New class derived from
8132         substitute_and_fold_engine.
8133         (ccp_folder::get_value): New member function.
8134         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
8135         (ccp_fold_stmt): Remove prototype.
8136         (ccp_finalize): Call substitute_and_fold from the ccp_class.
8137         * tree-ssa-copy.c (copy_folder): New class derived from
8138         substitute_and_fold_engine.
8139         (copy_folder::get_value): Renamed from get_value.
8140         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
8141         * tree-vrp.c (vrp_folder): New class derived from
8142         substitute_and_fold_engine.
8143         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
8144         (vrp_folder::get_value): New member function.
8145         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
8146         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
8147         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
8148         provide a class interface to folder/substitute routines.
8149         (ssa_prop_fold_stmt_fn): Remove typedef.
8150         (ssa_prop_get_value_fn): Likewise.
8151         (subsitute_and_fold): Remove prototype.
8152         (replace_uses_in): Likewise.
8153         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
8154         Renamed from replace_uses_in.  Call the virtual member function
8155         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
8156         (substitute_and_fold_dom_walker): Remove initialization of
8157         data member entries for calbacks.  Add substitute_and_fold_engine
8158         member and initialize it.
8159         (substitute_and_fold_dom_walker::before_dom_children0: Use the
8160         member functions for get_value, replace_phi_args_in c
8161         replace_uses_in, and fold_stmt calls.
8162         (substitute_and_fold_engine::substitute_and_fold): Renamed from
8163         substitute_and_fold.  Remove assert.   Update ctor call.
8164
8165         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
8166         (ssa_prop_visit_phi_fn): Likewise.
8167         (class ssa_propagation_engine): New class to provide an interface
8168         into ssa_propagate.
8169         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
8170         variable.
8171         (ssa_prop_visit_phi): Likewise.
8172         (ssa_propagation_engine::simulate_stmt): Moved into class.
8173         Call visit_phi/visit_stmt from the class rather than via
8174         file scoped static variables.
8175         (ssa_propagation_engine::simulate_block): Moved into class.
8176         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
8177         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
8178         set file scoped statics for the visit_stmt/visit_phi callbacks.
8179         * tree-complex.c (complex_propagate): New class derived from
8180         ssa_propagation_engine.
8181         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
8182         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
8183         (tree_lower_complex): Call ssa_propagate via the complex_propagate
8184         class.
8185         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
8186         ssa_propagation_engine.
8187         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
8188         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
8189         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
8190         * tree-ssa-copy.c (copy_prop): New class derived from
8191         ssa_propagation_engine.
8192         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
8193         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
8194         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
8195         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
8196         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
8197         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
8198         (execute_vrp): Call ssa_propagate from the vrp_prop class.
8199
8200 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
8201
8202         PR rtl-optimization/82778
8203         PR rtl-optimization/82597
8204         * compare-elim.c (struct comparison): Add in_a_setter field.
8205         (find_comparison_dom_walker::before_dom_children): Remove killed
8206         bitmap and df_simulate_find_defs call, instead walk the defs.
8207         Compute last_setter and initialize in_a_setter.  Merge definitions
8208         with first initialization for a few variables.
8209         (try_validate_parallel): Use insn_invalid_p instead of
8210         recog_memoized.  Return insn rather than just the pattern.
8211         (try_merge_compare): Fix up comment.  Don't uselessly test if
8212         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
8213         chains.
8214         (execute_compare_elim_after_reload): Remove df_chain_add_problem
8215         call.
8216
8217 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8218             Alan Hayward  <alan.hayward@arm.com>
8219             David Sherwood  <david.sherwood@arm.com>
8220
8221         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8222         aarch64_hard_regno_nregs to get the number of registers
8223         in a mode.
8224
8225 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8226             Alan Hayward  <alan.hayward@arm.com>
8227             David Sherwood  <david.sherwood@arm.com>
8228
8229         * config/aarch64/constraints.md (Upl): Rename to...
8230         (Uaa): ...this.
8231         * config/aarch64/aarch64.md
8232         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
8233         Update accordingly.
8234
8235 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8236             Alan Hayward  <alan.hayward@arm.com>
8237             David Sherwood  <david.sherwood@arm.com>
8238
8239         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
8240         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
8241         earlier in file.
8242
8243 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8244             Alan Hayward  <alan.hayward@arm.com>
8245             David Sherwood  <david.sherwood@arm.com>
8246
8247         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
8248         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
8249         (aarch64_evpc_dup): Generate rtl direcly, rather than using
8250         named expanders.
8251         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
8252         of a single element.
8253         * config/aarch64/iterators.md: Add a comment above the permute
8254         unspecs to say that they are generated directly by
8255         aarch64_expand_vec_perm_const.
8256         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
8257
8258 2017-11-01  Nathan Sidwell  <nathan@acm.org>
8259
8260         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
8261
8262 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8263
8264         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
8265         and medany code models, and describe what they do.
8266
8267 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8268
8269         Revert accidental duplicate:
8270
8271         * combine.c (can_change_dest_mode): Reject changes in
8272         REGMODE_NATURAL_SIZE.
8273
8274 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
8275
8276         PR rtl-optimization/64682
8277         PR rtl-optimization/69567
8278         PR rtl-optimization/69737
8279         PR rtl-optimization/82683
8280         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
8281         register mentioned in the note, drop the note, unless it came from I3,
8282         in which case it should go to I3 again.
8283
8284 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8285
8286         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
8287         and return false if not.
8288         (clear_bytes_written_by, live_bytes_read): Update accordingly.
8289
8290 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8291
8292         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
8293         range is known to be empty.
8294
8295 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8296             Alan Hayward  <alan.hayward@arm.com>
8297             David Sherwood  <david.sherwood@arm.com>
8298
8299         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
8300         and CONST_VECTOR_NUNITS instead of computing the number of units from
8301         the byte sizes of the vector and element.
8302         (simplify_binary_operation_1): Likewise.
8303         (simplify_const_binary_operation): Likewise.
8304         (simplify_ternary_operation): Likewise.
8305
8306 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8307             Alan Hayward  <alan.hayward@arm.com>
8308             David Sherwood  <david.sherwood@arm.com>
8309
8310         * var-tracking.c (INT_MEM_OFFSET): Replace with...
8311         (int_mem_offset): ...this new function.
8312         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
8313         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
8314         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
8315         Update accordingly.
8316
8317 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8318             Alan Hayward  <alan.hayward@arm.com>
8319             David Sherwood  <david.sherwood@arm.com>
8320
8321         * lower-subreg.c (interesting_mode_p): New function.
8322         (compute_costs, find_decomposable_subregs, decompose_register)
8323         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
8324         (resolve_clobber, dump_choices): Use it.
8325
8326 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8327             Alan Hayward  <alan.hayward@arm.com>
8328             David Sherwood  <david.sherwood@arm.com>
8329
8330         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
8331
8332 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8333             Alan Hayward  <alan.hayward@arm.com>
8334             David Sherwood  <david.sherwood@arm.com>
8335
8336         * alias.c (find_base_value, find_base_term): Only process integer
8337         truncations.  Check the precision rather than the size.
8338
8339 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8340             Alan Hayward  <alan.hayward@arm.com>
8341             David Sherwood  <david.sherwood@arm.com>
8342
8343         * machmode.h (is_narrower_int_mode): New function
8344         * optabs.c (expand_float, expand_fix): Use it.
8345         * dwarf2out.c (rotate_loc_descriptor): Likewise.
8346
8347 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8348             Alan Hayward  <alan.hayward@arm.com>
8349             David Sherwood  <david.sherwood@arm.com>
8350
8351         * rtl.h (narrower_subreg_mode): New function.
8352         * ira-color.c (update_costs_from_allocno): Use it.
8353
8354 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8355             Alan Hayward  <alan.hayward@arm.com>
8356             David Sherwood  <david.sherwood@arm.com>
8357
8358         * optabs-query.h (convert_optab_p): New function, split out from...
8359         (convert_optab_handler): ...here.
8360         (widening_optab_handler): Delete.
8361         (find_widening_optab_handler): Remove permit_non_widening parameter.
8362         (find_widening_optab_handler_and_mode): Likewise.  Provide an
8363         override that operates on mode class wrappers.
8364         * optabs-query.c (widening_optab_handler): Delete.
8365         (find_widening_optab_handler_and_mode): Remove permit_non_widening
8366         parameter.  Assert that the two modes are the same class and that
8367         the "from" mode is narrower than the "to" mode.  Use
8368         convert_optab_handler instead of widening_optab_handler.
8369         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
8370         instead of widening_optab_handler.
8371         * expr.c (expand_expr_real_2): Update calls to
8372         find_widening_optab_handler.
8373         * optabs.c (expand_widen_pattern_expr): Likewise.
8374         (expand_binop_directly): Take the insn_code as a parameter.
8375         (expand_binop): Only call find_widening_optab_handler for
8376         conversion optabs; use optab_handler otherwise.  Update calls
8377         to find_widening_optab_handler and expand_binop_directly.
8378         Use convert_optab_handler instead of widening_optab_handler.
8379         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
8380         find_widening_optab_handler and use scalar_mode rather than
8381         machine_mode.
8382         (convert_plusminus_to_widen): Likewise.
8383
8384 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8385             Alan Hayward  <alan.hayward@arm.com>
8386             David Sherwood  <david.sherwood@arm.com>
8387
8388         * machmode.h (fixed_size_mode): New class.
8389         * rtl.h (get_pool_mode): Return fixed_size_mode.
8390         * gengtype.c (main): Add fixed_size_mode.
8391         * target.def (get_raw_result_mode): Return a fixed_size_mode.
8392         (get_raw_arg_mode): Likewise.
8393         * doc/tm.texi: Regenerate.
8394         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
8395         * targhooks.c (default_get_reg_raw_mode): Likewise.
8396         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
8397         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
8398         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
8399         (msp430_get_raw_result_mode): Likewise.
8400         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
8401         * dbxout.c (dbxout_parms): Require fixed-size modes.
8402         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
8403         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
8404         * omp-low.c (lower_oacc_reductions): Likewise.
8405         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
8406         (simplify_subreg): Update accordingly.
8407         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
8408         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
8409         that aren't fixed-size.
8410         (get_pool_mode): Return a fixed_size_mode.
8411         (output_constant_pool_2): Take a fixed_size_mode.
8412
8413 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8414             Alan Hayward  <alan.hayward@arm.com>
8415             David Sherwood  <david.sherwood@arm.com>
8416
8417         * doc/rtl.texi (vec_series): Document.
8418         (const): Say that the operand can be a vec_series.
8419         * rtl.def (VEC_SERIES): New rtx code.
8420         * rtl.h (const_vec_series_p_1): Declare.
8421         (const_vec_series_p): New function.
8422         * emit-rtl.h (gen_const_vec_series): Declare.
8423         (gen_vec_series): Likewise.
8424         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
8425         (gen_vec_series): Likewise.
8426         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
8427         * simplify-rtx.c (simplify_unary_operation): Handle negations
8428         of vector series.
8429         (simplify_binary_operation_series): New function.
8430         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
8431         (test_vector_ops_series): New function.
8432         (test_vector_ops): Call it.
8433         * config/powerpcspe/altivec.md (altivec_lvsl): Use
8434         gen_const_vec_series.
8435         (altivec_lvsr): Likewise.
8436         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
8437
8438 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8439             Alan Hayward  <alan.hayward@arm.com>
8440             David Sherwood  <david.sherwood@arm.com>
8441
8442         * doc/rtl.texi (const): Update description of address constants.
8443         Say that vector constants are allowed too.
8444         * common.md (E, F): Use CONSTANT_P instead of checking for
8445         CONST_VECTOR.
8446         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
8447         checking for CONST_VECTOR.
8448         * expmed.c (make_tree): Use build_vector_from_val for a CONST
8449         VEC_DUPLICATE.
8450         * expr.c (expand_expr_real_2): Check for vector modes instead
8451         of checking for CONST_VECTOR.
8452         * rtl.h (const_vec_p): New function.
8453         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
8454         (unwrap_const_vec_duplicate): Handle them here too.
8455
8456 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8457             David Malcolm  <dmalcolm@redhat.com>
8458             Alan Hayward  <alan.hayward@arm.com>
8459             David Sherwood  <david.sherwood@arm.com>
8460
8461         * rtl.h (vec_duplicate_p): New function.
8462         * selftest-rtl.c (assert_rtx_eq_at): New function.
8463         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
8464         (assert_rtx_eq_at): Declare.
8465         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
8466         * selftest-run-tests.c (selftest::run_tests): Call it.
8467         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
8468         (simplify_unary_operation_1): Recursively handle vector duplicates.
8469         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
8470         vector duplicates.
8471         (simplify_subreg): Handle subregs of vector duplicates.
8472         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
8473         (selftest::simplify_rtx_c_tests): New functions.
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         * emit-rtl.h (gen_const_vec_duplicate): Declare.
8480         (gen_vec_duplicate): Likewise.
8481         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
8482         out from...
8483         (gen_const_vector): ...here.
8484         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
8485         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
8486         whose elements are all equal.
8487         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
8488         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8489         (simplify_relational_operation): Likewise.
8490         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
8491         Likewise.
8492         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
8493         (aarch64_expand_vector_init): Likewise.
8494         * config/arm/arm.c (neon_vdup_constant): Likewise.
8495         (neon_expand_vector_init): Likewise.
8496         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
8497         (arm_block_set_unaligned_vect): Likewise.
8498         (arm_block_set_aligned_vect): Likewise.
8499         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
8500         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
8501         (expand_vec_perm_even_odd_pack): Likewise.
8502         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
8503         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
8504         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
8505         gen_const_vec_duplicate.
8506         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
8507         * config/mips/mips.c (mips_gen_const_int_vector): Use
8508         gen_const_vec_duplicate.
8509         (mips_expand_vector_init): Use CONST0_RTX.
8510         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
8511         (define_split): Use gen_const_vec_duplicate.
8512         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
8513         (define_split): Use gen_const_vec_duplicate.
8514         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
8515         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
8516         * config/spu/spu.c (spu_const): Likewise.
8517
8518 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8519             Alan Hayward  <alan.hayward@arm.com>
8520             David Sherwood  <david.sherwood@arm.com>
8521
8522         * combine.c (can_change_dest_mode): Reject changes in
8523         REGMODE_NATURAL_SIZE.
8524
8525 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
8526
8527         * configure.ac (--enable-libssp): New.
8528         (gcc_cv_libc_provides_ssp): Check for explicit setting before
8529         trying to determine target-specific default.  Adjust indentation.
8530         * configure: Regenerated.
8531         * doc/install.texi (Configuration): Expand --disable-libssp
8532         documentation.
8533
8534 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
8535
8536         config/i386/i386.c (ix86_expand_epilogue): Correct stack
8537         calculation.
8538
8539 2017-10-31  Martin Jambor  <mjambor@suse.cz>
8540
8541         PR c++/81702
8542         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
8543
8544 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
8545
8546         * auto-profile.c (autofdo_source_profile::read): Use
8547         UNKNOWN_LOCATION rather than 0.
8548         * diagnostic-core.h (warning_at_rich_loc): Rename to...
8549         (warning_at): ...this overload.
8550         (warning_at_rich_loc_n): Rename to...
8551         (warning_n): ...this overload.
8552         (error_at_rich_loc): Rename to...
8553         (error_at): ...this overload.
8554         (pedwarn_at_rich_loc): Rename to...
8555         (pedwarn): ...this overload.
8556         (permerror_at_rich_loc): Rename to...
8557         (permerror): ...this overload.
8558         (inform_at_rich_loc): Rename to...
8559         (inform): ...this overload.
8560         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
8561         (diagnostic_n_impl_richloc): Rename to...
8562         (diagnostic_n_impl): ...this rich_location *-based decl.
8563         (inform_at_rich_loc): Rename to...
8564         (inform): ...this, and add an assertion.
8565         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
8566         (warning_at_rich_loc): Rename to...
8567         (warning_at): ...this, and add an assertion.
8568         (warning_at_rich_loc_n): Rename to...
8569         (warning_n): ...this, and add an assertion.
8570         (warning_n): Update location_t-based implementation for removal of
8571         location_t-based diagnostic_n_impl.
8572         (pedwarn_at_rich_loc): Rename to...
8573         (pedwarn): ...this, and add an assertion.
8574         (permerror_at_rich_loc): Rename to...
8575         (permerror): ...this, and add an assertion.
8576         (error_n): Update for removal of location_t-based diagnostic_n_impl.
8577         (error_at_rich_loc): Rename to...
8578         (error_at): ...this, and add an assertion.
8579         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
8580         (driver::do_spec_on_infiles): Likewise.
8581         * substring-locations.c (format_warning_va): Update for renaming
8582         of inform_at_rich_loc.
8583
8584 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
8585
8586         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
8587         _Float<N>X built-in functions so that the variant without the
8588         "__builtin_" prefix is only enabled for the GNU C and Objective C
8589         languages when they are in non-strict ANSI/ISO mode.
8590         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
8591         * target.def (floatn_builtin_p): Add a target hook to control
8592         whether _Float<N> and _Float<N>X built-in functions without the
8593         "__builtin_" prefix are enabled, and return true for C and
8594         Objective C in the default hook.  Include langhooks.h in
8595         targhooks.c.
8596         * targhooks.h (default_floatn_builtin_p): Likewise.
8597         * targhooks.c (default_floatn_builtin_p): Likewise.
8598         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
8599         floatn_builtin_p target hook.
8600         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
8601
8602 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
8603             Eric Botcazou  <ebotcazou@adacore.com>
8604
8605         PR rtl-optimization/81803
8606         * lra-constraints.c (curr_insn_transform): Also reload the whole
8607         register for a strict subreg no wider than a word if this is for
8608         a WORD_REGISTER_OPERATIONS target.
8609
8610 2017-10-31  Jason Merrill  <jason@redhat.com>
8611
8612         * gdbinit.in: Skip over inlines from timevar.h.
8613
8614 2017-10-31  Martin Liska  <mliska@suse.cz>
8615
8616         * doc/gcov.texi: Document new option.
8617         * gcov.c (print_usage): Likewise print it.
8618         (process_args): Support the argument.
8619         (format_count): New function.
8620         (format_gcov): Use the function.
8621
8622 2017-10-31  Martin Liska  <mliska@suse.cz>
8623
8624         * gcov.c (struct name_map): do not use typedef.
8625         Define operator== and operator<.
8626         (name_search): Remove.
8627         (name_sort): Remove.
8628         (main): Do not allocate names.
8629         (process_file): Add vertical space.
8630         (generate_results): Use std::find.
8631         (release_structures): Do not release memory.
8632         (find_source): Use std::find.
8633
8634 2017-10-31  Martin Liska  <mliska@suse.cz>
8635
8636         * gcov.c (struct line_info): Remove it's typedef.
8637         (line_info::line_info): Add proper ctor.
8638         (line_info::has_block): Do not use a typedef.
8639         (struct source_info): Do not use typedef.
8640         (circuit): Likewise.
8641         (get_cycles_count): Likewise.
8642         (output_intermediate_file): Iterate via vector iterator.
8643         (add_line_counts): Use std::vector methods.
8644         (accumulate_line_counts): Likewise.
8645         (output_lines): Likewise.
8646
8647 2017-10-31  Martin Liska  <mliska@suse.cz>
8648
8649         * gcov.c (struct source_info): Remove typedef.
8650         (source_info::source_info): Add proper ctor.
8651         (accumulate_line_counts): Use struct, not it's typedef.
8652         (output_gcov_file): Likewise.
8653         (output_lines): Likewise.
8654         (main): Do not allocate an array.
8655         (output_intermediate_file): Use size of vector container.
8656         (process_file): Resize the vector.
8657         (generate_results): Do not preallocate, use newly added vector
8658         lines.
8659         (release_structures): Do not release sources.
8660         (find_source): Use vector methods.
8661         (add_line_counts): Do not use typedef.
8662
8663 2017-10-31  Martin Liska  <mliska@suse.cz>
8664
8665         * doc/gcov.texi: Document that.
8666         * gcov.c (add_line_counts): Mark lines with a non-executed
8667         statement.
8668         (output_line_beginning): Handle such lines.
8669         (output_lines): Pass new argument.
8670         (output_intermediate_file): Print it in intermediate format.
8671
8672 2017-10-31  Martin Liska  <mliska@suse.cz>
8673
8674         * color-macros.h: New file.
8675         * diagnostic-color.c: Factor out color related to macros to
8676         color-macros.h.
8677         * doc/gcov.texi: Document -k option.
8678         * gcov.c (INCLUDE_STRING): Include string.h.
8679         (print_usage): Add -k option.
8680         (process_args): Parse it.
8681         (pad_count_string): New function.
8682         (output_line_beginning): Likewise.
8683         (DEFAULT_LINE_START): New macro.
8684         (output_lines): Support color output.
8685
8686 2017-10-31  Martin Liska  <mliska@suse.cz>
8687
8688         PR gcov-profile/82633
8689         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
8690         their interaction with GCOV infrastructure.
8691         * configure.ac: Add -fkeep-{inline,static}-functions to
8692         coverage_flags.
8693         * configure: Regenerate.
8694
8695 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
8696
8697         PR target/82772
8698         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
8699
8700 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
8701
8702         PR target/82674
8703         * config/rs6000/rs6000.md (allocate_stack): Force update interval
8704         into a register if it does not fit into an immediate offset field.
8705
8706 2017-10-31  Olivier Hainque  <hainque@adacore.com>
8707
8708         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
8709
8710 2017-10-31  Julia Koval  <julia.koval@intel.com>
8711
8712         * config.gcc: Add gfniintrin.h.
8713         * config/i386/gfniintrin.h: New.
8714         * config/i386/i386-builtin-types.def
8715         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
8716         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
8717         __builtin_ia32_vgf2p8affineinvqb_v32qi,
8718         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
8719         __builtin_ia32_vgf2p8affineinvqb_v16qi,
8720         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
8721         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
8722         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
8723         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
8724         V64QI_FTYPE_V64QI_V64QI_INT): New types.
8725         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
8726         * config/i386/immintrin.h: Include gfniintrin.h.
8727         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
8728
8729 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
8730
8731         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
8732
8733 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
8734
8735         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
8736         (arm_ashldi3_1bit): Remove pattern.
8737         (ashrdi3): Remove shift by 1 expansion.
8738         (arm_ashrdi3_1bit): Remove pattern.
8739         (lshrdi3): Remove shift by 1 expansion.
8740         (arm_lshrdi3_1bit): Remove pattern.
8741         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
8742         cost of ashldi3 by 1.
8743         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
8744         (<shift>di3_neon): Likewise.
8745
8746 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
8747
8748         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
8749         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
8750         and (*aarch64_simd_mov<VQ:mode>).
8751         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
8752         pattern alternative.
8753         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
8754         attributes to match pattern alternative.
8755
8756 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
8757
8758         * config.gcc (powerpc*-*-*): Add emmintrin.h.
8759         * config/rs6000/emmintrin.h: New file.
8760         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
8761
8762 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
8763
8764         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
8765         * (movdi_vfp_cortexa8): Remove pattern.
8766
8767 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8768
8769         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
8770         etc. reference.
8771         (Specific, alpha*-dec-osf5.1): Remove.
8772         (Specific, mips-sgi-irix5): Remove.
8773         (Specific, mips-sgi-irix6): Remove.
8774
8775 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
8776
8777         PR middle-end/22141
8778         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
8779         arguments to clear_bit_region_be.
8780
8781 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
8782
8783         * gimplify.c: Include memmodel.h.
8784
8785 2017-10-30  Martin Jambor  <mjambor@suse.cz>
8786
8787         * omp-grid.c (grid_attempt_target_gridification): Also insert a
8788         condition whether loop should be executed at all.
8789
8790 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
8791
8792         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
8793         gimple folding of vec_madd() intrinsics.
8794         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
8795         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
8796         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
8797
8798 2017-10-30  Richard Biener  <rguenther@suse.de>
8799
8800         PR tree-optimization/82762
8801         Revert
8802         2017-10-23  Richard Biener  <rguenther@suse.de>
8803
8804         PR tree-optimization/82129
8805         Revert
8806         2017-08-01  Richard Biener  <rguenther@suse.de>
8807
8808         PR tree-optimization/81181
8809         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
8810         (compute_antic): ... end of iteration here.
8811
8812 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
8813
8814         * doc/invoke.texi (C Dialect Options): Document -std=c17,
8815         -std=iso9899:2017 and -std=gnu17.
8816         * doc/standards.texi (C Language): Document C17 support.
8817         * doc/cpp.texi (Overview): Mention -std=c17.
8818         (Standard Predefined Macros): Document C11 and C17 values of
8819         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
8820         * doc/extend.texi (Inline): Do not list individual options for
8821         standards newer than C99.
8822         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
8823         "GNU C17".
8824         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
8825         language name.
8826
8827 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
8828
8829         * asan.c (asan_finish_file): Align asan globals array by shadow
8830         granularity.
8831
8832 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
8833
8834         PR middle-end/22141
8835         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
8836         (struct store_immediate_info): Add bitregion_start and bitregion_end
8837         fields.
8838         (store_immediate_info::store_immediate_info): Add brs and bre
8839         arguments and initialize bitregion_{start,end} from those.
8840         (struct merged_store_group): Add bitregion_start, bitregion_end,
8841         align_base and mask fields.  Drop unnecessary struct keyword from
8842         struct store_immediate_info.  Add do_merge method.
8843         (clear_bit_region_be): Use memset instead of loop storing zeros.
8844         (merged_store_group::do_merge): New method.
8845         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
8846         stores as long as the surrounding bitregions have no gaps.
8847         (merged_store_group::merge_overlapping): Use do_merge.
8848         (merged_store_group::apply_stores): Test that bitregion_{start,end}
8849         is byte aligned, rather than requiring that start and width are
8850         byte aligned.  Drop unnecessary struct keyword from
8851         struct store_immediate_info.  Allocate and populate also mask array.
8852         Make start of the arrays relative to bitregion_start rather than
8853         start and size them according to bitregion_{end,start} difference.
8854         (struct imm_store_chain_info): Drop unnecessary struct keyword from
8855         struct store_immediate_info.
8856         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
8857         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
8858         struct keyword from struct store_immediate_info.
8859         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
8860         between stores as long as the surrounding bitregions have no gaps.
8861         Formatting fixes.
8862         (struct split_store): Add orig non-static data member.
8863         (split_store::split_store): Initialize orig to false.
8864         (find_constituent_stmts): Return store_immediate_info *, non-NULL
8865         if there is exactly a single original stmt.  Change stmts argument
8866         to pointer from reference, if NULL, don't push anything to it.  Add
8867         first argument, use it to optimize skipping over orig stmts that
8868         are known to be before bitpos already.  Simplify.
8869         (split_group): Return unsigned int count how many stores are or
8870         would be needed rather than a bool.  Add allow_unaligned argument.
8871         Change split_stores argument from reference to pointer, if NULL,
8872         only do a dry run computing how many stores would be produced.
8873         Rewritten algorithm to use both alignment and misalign if
8874         !allow_unaligned and handle bitfield stores with gaps.
8875         (imm_store_chain_info::output_merged_store): Set start_byte_pos
8876         from bitregion_start instead of start.  Compute allow_unaligned
8877         here, if true, do 2 split_group dry runs to compute which one
8878         produces fewer stores and prefer aligned if equal.  Punt if
8879         new count is bigger or equal than original before emitting any
8880         statements, rather than during that.  Remove no longer needed
8881         new_ssa_names tracking.  Replace num_stmts with
8882         split_stores.length ().  Use 32-bit stack allocated entries
8883         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
8884         if possible.  Handle bitfields with gaps.
8885         (pass_store_merging::execute): Ignore bitsize == 0 stores.
8886         Compute bitregion_{start,end} for the stores and construct
8887         store_immediate_info with that.  Formatting fixes.
8888
8889 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
8890
8891         PR target/82725
8892         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
8893         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
8894
8895 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
8896
8897         * gimplify.c: Include tm_p.h.
8898
8899         * common.opt (gcoff): Re-add as ignored option.
8900         (gcoff1, gcoff2, gcoff3): Likewise.
8901
8902         * Makefile.in (OBJS): Delete sdbout.o.
8903         (GTFILES): Delete $(srcdir)/sdbout.c.
8904         * debug.h: Delete sdb_debug_hooks.
8905         * final.c: Delete sdbout.h include.
8906         (final_scan_insn): Delete SDB_DEBUG check.
8907         (rest_of_clean_state): Likewise.
8908         * output.h: Delete sdb_begin_function_line.
8909         * sdbout.c: Delete.
8910         * sdbout.h: Delete.
8911         * toplev.c: Delete sdbout.h include.
8912         (process_options): Delete SDB_DEBUG check.
8913         * tree-core.h (tree_type_common): Delete pointer field of
8914         tree_type_symtab.
8915         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
8916         TYPE_SYMTAB_POINTER.
8917         * tree.h (TYPE_SYMTAB_POINTER): Delete.
8918         (TYPE_SYMTAB_IS_POINTER): Delete.
8919         (TYPE_SYMTAB_IS_DIE): Renumber.
8920         * xcoffout.c: Refer to former sdbout.c file.
8921         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
8922
8923         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
8924         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
8925         (Debugging Options): Delete -gcoff.
8926         (-gstabs): Delete SDB reference.
8927         (-gcoff): Delete.
8928         (-gcoff@var{level}): Delete.
8929         * doc/passes.texi (Debugging information output): Delete SDB and
8930         sdbout.c references.
8931         * doc/tm.texi: Regenerate.
8932         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
8933         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
8934         references.
8935         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
8936         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
8937         (SDB_DEBUGGING_INFO): Delete.
8938         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
8939         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
8940         * target.def (output_source_filename): Delete COFF reference.
8941
8942         * common.opt (gcoff): Delete.
8943         (gxcoff+): Update Negative chain.
8944         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
8945         SDB_DEBUG.
8946         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
8947         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
8948         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
8949         and SDB references.
8950         (expand_function_start): Change sdb reference to past tense.
8951         (expand_function_end): Change sdb reference to past tense.
8952         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
8953         * opts.c (debug_type_names): Delete coff entry.
8954         (common_handle_option): Delete OPT_gcoff case.
8955         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
8956
8957         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
8958         * config/cris/cris.h: Delete SDB reference in comment.
8959         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
8960         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
8961         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
8962         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
8963         to past tense.
8964         (ix86_expand_prologue): Likewise.
8965         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
8966         * config/ia64/ia64.h: Likewise.
8967         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
8968         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
8969         support.
8970         * config/mmix/mmix.h: Likewise.
8971         * config/nds32/nds32.c: Likewise.
8972         * config/stormy/storym16.h: Likewise.
8973         * config/visium/visium.h: Likewise.
8974         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
8975
8976 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
8977
8978         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
8979         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
8980         FRAME_POINTER_REGNUM point at high end of local var area.
8981
8982 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8983
8984         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
8985         Move comment around.  Do not reset best_edge for a copiable
8986         destination if the copy would cause a partition change.
8987         (better_edge_p): Remove redundant check.
8988
8989 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
8990
8991         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
8992
8993 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
8994
8995         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
8996         for math functions that have _Float<N> and _Float<N>X variants.
8997         (mathfn_built_in_2): Add support for math functions that have
8998         _Float<N> and _Float<N>X variants.
8999         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
9000         (expand_builtin_mathfn_ternary): Add support for fma with
9001         _Float<N> and _Float<N>X variants.
9002         (expand_builtin): Likewise.
9003         (fold_builtin_3): Likewise.
9004         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
9005         create math function _Float<N> and _Float<N>X variants as external
9006         library builtins.
9007         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
9008         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
9009         the __builtin_ prefix and if not strict ansi, without the prefix.
9010         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
9011         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
9012         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
9013         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
9014         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
9015         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
9016         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
9017         function signatures for fma _Float<N> and _Float<N>X variants.
9018         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
9019         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
9020         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
9021         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
9022         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
9023         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
9024         * gencfn-macros.c (print_case_cfn): Add support for math functions
9025         that have _Float<N> and _Float<N>X variants.
9026         (print_define_operator_list): Likewise.
9027         (fltfn_suffixes): Likewise.
9028         (main): Likewise.
9029         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
9030         for math functions that have _Float<N> and _Float<N>X variants.
9031         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
9032         and _Float<N>X variants.
9033         (COPYSIGN): Likewise.
9034         (FMIN): Likewise.
9035         (FMAX): Likewise.
9036         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
9037         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
9038         variants.
9039         (integer_valued_read_call_p): Likewise.
9040         * fold-const-call.c (fold_const_call_ss): Likewise.
9041         (fold_const_call_sss): Add support for copysign, fmin, and fmax
9042         _Float<N> and _Float<N>X variants.
9043         (fold_const_call_ssss): Add support for fma _Float<N> and
9044         _Float<N>X variants.
9045         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
9046         support for copysign and fma _Float<N> and _Float<N>X variants.
9047         (backprop::process_builtin_call_use): Likewise.
9048         * tree-call-cdce.c (can_test_argument_range); Add support for
9049         sqrt _Float<N> and _Float<N>X variants.
9050         (edom_only_function): Likewise.
9051         (get_no_error_domain): Likewise.
9052         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
9053         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
9054         copysign _Float<N> and _Float<N>X variants.
9055         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
9056         handled by machine independent code.
9057         (FMAF128): Likewise.
9058         * doc/cpp.texi (Common Predefined Macros): Document defining
9059         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
9060         fma _Float<N> and _Float<N>X variants.
9061
9062 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9063
9064         PR target/82692
9065         * config/i386/i386-modes.def (CCFPU): Remove definition.
9066         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
9067         (ix86_cc_modes_compatible): Ditto.
9068         (ix86_expand_carry_flag_compare): Ditto.
9069         (ix86_expand_int_movcc): Ditto.
9070         (ix86_expand_int_addcc): Ditto.
9071         (ix86_reverse_condition): Ditto.
9072         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
9073         Return true/false for unordered/ordered fp comparisons.
9074         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
9075         (ix86_prepare_fp_compare_args): Update for rename.
9076         (ix86_expand_fp_compare): Update for rename.  Generate unordered
9077         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
9078         (ix86_expand_sse_compare_and_jump): Ditto.
9079         * config/i386/predicates.md (fcmov_comparison_operator):
9080         Remove CCFPU mode handling.
9081         (ix86_comparison_operator): Ditto.
9082         (ix86_carry_flag_operator): Ditto.
9083         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
9084         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
9085         (*cmpu<mode>_cc_i387): Ditto.
9086         (FPCMP): Remove mode iterator.
9087         (unord): Remove mode attribute.
9088         (unord_subst): New define_subst transformation
9089         (unord): New define_subst attribute.
9090         (unordered): Ditto.
9091         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
9092         (*cmpi<unord>xf_i387): Ditto.
9093         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
9094         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
9095         using unord_subst transformation.
9096         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
9097         (round_saeonly): Also handle CCFP mode.
9098         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
9099         Remove UNSPEC_SAHF unspec handling.
9100
9101 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9102
9103         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
9104
9105 2017-10-27  Jeff Law  <law@redhat.com>
9106
9107         * gimple-ssa-sprintf.c: Include domwalk.h.
9108         (class sprintf_dom_walker): New class, derived from dom_walker.
9109         (sprintf_dom_walker::before_dom_children): New function.
9110         (struct call_info): Moved into sprintf_dom_walker class
9111         (compute_formath_length, handle_gimple_call): Likewise.
9112         (sprintf_length::execute): Call the dominator walker rather
9113         than walking the statements.
9114
9115         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
9116         gimple statement locations.
9117         (check_array_bounds): Corresponding changes.  Get the statement's
9118         location directly from wi->stmt.
9119
9120 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
9121
9122         PR target/82717
9123         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
9124
9125 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9126
9127         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
9128         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
9129
9130 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
9131
9132         PR target/82703
9133         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
9134         * config/i386/i386.c (maybe_get_pool_constant): Removed.
9135         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
9136         maybe_get_pool_constant.
9137         * config/i386/predicates.md (zero_extended_scalar_load_operand):
9138         Likewise.
9139
9140 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9141
9142         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
9143         2.26 caveat.  Update gas and gld versions.
9144         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
9145         reference.
9146
9147 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9148
9149         * cgraph.h (set_malloc_flag): Declare.
9150         * cgraph.c (set_malloc_flag_1): New function.
9151         (set_malloc_flag): Likewise.
9152         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
9153         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
9154         false.
9155         (read_ipa_call_summary): Add support for reading is_return_callee.
9156         (write_ipa_call_summary): Stream is_return_callee.
9157         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
9158         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
9159         ipa-prop.h, ipa-fnsummary.h.
9160         (pure_const_names): Change to static.
9161         (malloc_state_e): Define.
9162         (malloc_state_names): Define.
9163         (funct_state_d): Add field malloc_state.
9164         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
9165         (check_retval_uses): New function.
9166         (malloc_candidate_p): Likewise.
9167         (analyze_function): Add support for malloc attribute.
9168         (pure_const_write_summary): Stream malloc_state.
9169         (pure_const_read_summary): Add support for reading malloc_state.
9170         (dump_malloc_lattice): New function.
9171         (propagate_malloc): New function.
9172         (warn_function_malloc): New function.
9173         (ipa_pure_const::execute): Call propagate_malloc and
9174         ipa_free_fn_summary.
9175         (pass_local_pure_const::execute): Add support for malloc attribute.
9176         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
9177         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
9178
9179 2017-10-27  Martin Liska  <mliska@suse.cz>
9180
9181         PR gcov-profile/82457
9182         * doc/invoke.texi: Document that one needs a non-strict ISO mode
9183         for fork-like functions to be properly instrumented.
9184
9185 2017-10-27  Richard Biener  <rguenther@suse.de>
9186
9187         PR middle-end/81659
9188         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
9189         info when we redirected EH.
9190
9191 2017-10-26  Michael Collison  <michael.collison@arm.com>
9192
9193         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
9194         New pattern.
9195         (<optab>_trunchf<GPI:mode>2: New pattern.
9196         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
9197         * config/aarch64/iterators.md (wv): New mode attribute.
9198         (vf, VF): New mode attributes.
9199         (vgp, VGP): New mode attributes.
9200         (s): Update attribute with SImode and DImode prefixes.
9201
9202 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9203
9204         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
9205         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
9206         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
9207         (nios2_option_overide): Initialize it.  Don't allow R0-relative
9208         addressing with PIC.
9209         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
9210         (nios2_symbolic_constant_p): Likewise.
9211         (nios2_legitimate_address_p): Likewise.
9212         (nios2_r0rel_section_name_p): New.
9213         (nios2_symbol_ref_in_r0rel_data_p): New.
9214         (nios2_emit_move_sequence): Handle r0rel_constant_p.
9215         (r0rel_constant_p): New.
9216         (nios2_print_operand_address): Handle r0rel_constant_p.
9217         (nios2_cdx_narrow_form_p): Likewise.
9218         * config/nios2/nios2.opt (mr0rel-sec=): New option.
9219         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
9220         (Nios II Options): Document -mr0rel-sec.
9221
9222 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9223
9224         * config/nios2/nios2.c: Include xregex.h.
9225         (nios2_gprel_sec_regex): New.
9226         (nios2_option_overide): Initialize it.  Don't allow GP-relative
9227         addressing with PIC.
9228         (nios2_small_section_name_p): Check for regex match.
9229         * config/nios2/nios2.opt (mgprel-sec=): New option.
9230         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
9231         (Nios II Options): Document -mgprel-sec.
9232
9233 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
9234
9235         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
9236
9237 2017-10-26  Tom de Vries  <tom@codesourcery.com>
9238
9239         PR tree-optimization/82707
9240         * gimple.c (gimple_copy): Fix unsharing of
9241         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
9242
9243 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
9244
9245         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
9246         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
9247         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
9248         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
9249         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
9250         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
9251         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
9252         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
9253         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
9254         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
9255         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
9256         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
9257         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
9258         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
9259         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
9260         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
9261         _mm512_mask_cmpunord_ps_mask): New intrinsics.
9262
9263 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9264
9265         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
9266         default to IBM.
9267         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
9268         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
9269         warning to rs6000.c.  Remove the Undocumented flag, since it has
9270         been documented.
9271         (-mabi=ibmlongdouble): Likewise.
9272         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
9273         already set, set the default format for long double.
9274         (rs6000_debug_reg_global): Print whether long double is IBM or
9275         IEEE.
9276         (rs6000_option_override_internal): Rework setting long double
9277         format.  Only warn if the user is changing the long double default
9278         and they did not use -Wno-psabi.
9279         * doc/invoke.texi (PowerPC options): Update the documentation for
9280         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
9281
9282 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9283             Alan Hayward  <alan.hayward@arm.com>
9284             David Sherwood  <david.sherwood@arm.com>
9285
9286         * rtl.h (wider_subreg_mode): New function.
9287         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
9288         rather than an unsigned int *.
9289         * ira-color.c (regno_max_ref_width): Replace with...
9290         (regno_max_ref_mode): ...this new variable.
9291         (coalesced_pseudo_reg_slot_compare): Update accordingly.
9292         Use wider_subreg_mode.
9293         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
9294         rather than an unsigned int *.
9295         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
9296         (process_alt_operands): Likewise.
9297         (invariant_p): Likewise.
9298         * lra-spills.c (assign_mem_slot): Likewise.
9299         (add_pseudo_to_slot): Likewise.
9300         * lra.c (collect_non_operand_hard_regs): Likewise.
9301         (add_regs_to_insn_regno_info): Likewise.
9302         * reload1.c (regno_max_ref_width): Replace with...
9303         (regno_max_ref_mode): ...this new variable.
9304         (reload): Update accordingly.  Update call to
9305         ira_sort_regnos_for_alter_reg.
9306         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
9307         (init_eliminable_invariants): Update to use regno_max_ref_mode.
9308         (scan_paradoxical_subregs): Likewise.
9309
9310 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9311
9312         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
9313         (aarch64_frame): Add emit_frame_chain boolean.
9314         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9315         Move eh_return case to aarch64_layout_frame.
9316         (aarch64_layout_frame): Initialize emit_frame_chain.
9317         (aarch64_expand_prologue): Use emit_frame_chain.
9318
9319 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9320
9321         * config/aarch64/aarch64.c (aarch64_layout_frame):
9322         Ensure LR is always stored at the bottom of the callee-saves.
9323         Remove rarely used frame layout which saves callee-saves at top of
9324         frame, so the store of LR can be used as a valid probe in all cases.
9325
9326 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9327
9328         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
9329         Improve unaligned TImode/TFmode base/offset split.
9330
9331 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9332             Alan Hayward  <alan.hayward@arm.com>
9333             David Sherwood  <david.sherwood@arm.com>
9334
9335         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
9336         * combine.c (find_single_use_1): Likewise.
9337         (expand_field_assignment): Likewise.
9338         (move_deaths): Likewise.
9339         * lra-constraints.c (simplify_operand_subreg): Likewise.
9340         (curr_insn_transform): Likewise.
9341         * lra.c (collect_non_operand_hard_regs): Likewise.
9342         (add_regs_to_insn_regno_info): Likewise.
9343         * rtlanal.c (reg_referenced_p): Likewise.
9344         (covers_regno_no_parallel_p): Likewise.
9345
9346 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9347
9348         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
9349         Don't print any bits outside the precision of the value.
9350         * wide-int.cc (test_printing): Add some new tests.
9351
9352 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9353
9354         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
9355         supports -xbrace_comment option.
9356         * configure: Regenerate.
9357         * config.in: Regenerate.
9358         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
9359         (ASM_CPU_SPEC): Use it.
9360
9361 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9362
9363         * target.def (static_rtx_alignment): New hook.
9364         * targhooks.h (default_static_rtx_alignment): Declare.
9365         * targhooks.c (default_static_rtx_alignment): New function.
9366         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
9367         * doc/tm.texi: Regenerate.
9368         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
9369         instead of targetm.constant_alignment.  Remove call to
9370         set_mem_attributes.
9371         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9372         (cris_preferred_mininum_alignment): New function, split out from...
9373         (cris_constant_alignment): ...here.
9374         (cris_static_rtx_alignment): New function.
9375         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
9376         split out from...
9377         (ix86_constant_alignment): ...here.
9378         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9379         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9380         (mmix_static_rtx_alignment): New function.
9381         * config/spu/spu.c (spu_static_rtx_alignment): New function.
9382         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9383
9384 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
9385
9386         PR target/81800
9387         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
9388         Add flag_trapping_math and flag_fp_int_builtin_inexact.
9389
9390 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
9391
9392         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
9393         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
9394         mark as a sign-extending load.
9395         (local_pic_load_u): Define.
9396
9397 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
9398
9399         PR middle-end/82062
9400         * fold-const.c (operand_equal_for_comparison_p): Also return true
9401         if ARG0 is a simple variant of ARG1 with narrower precision.
9402         (fold_ternary_loc): Always pass unstripped operands to the predicate.
9403
9404 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
9405
9406         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
9407         cost correctly.
9408         * i386.h (processor_costs): Add gather_static, gather_per_elt,
9409         scatter_static, scatter_per_elt.
9410         * x86-tune-costs.h: Add new cost entries.
9411
9412 2017-10-25  Richard Biener  <rguenther@suse.de>
9413
9414         * tree-ssa-sccvn.h (vn_eliminate): Declare.
9415         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
9416         class pass_fre): Move to ...
9417         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
9418         class pass_fre): ... here and adjust for statistics.
9419
9420 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
9421
9422         PR libstdc++/81706
9423         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
9424         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
9425         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
9426         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
9427         declarations.
9428
9429 2017-10-25  Richard Biener  <rguenther@suse.de>
9430
9431         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
9432         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
9433         eliminate_push_avail, eliminate_insert): Move inside...
9434         (class eliminate_dom_walker): ... this class in preparation
9435         of move.
9436         (fini_eliminate): Remove by merging with ...
9437         (eliminate): ... this function.  Adjust for class changes.
9438         (pass_pre::execute): Remove fini_eliminate call.
9439         (pass_fre::execute): Likewise.
9440
9441 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
9442
9443         PR target/82460
9444         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
9445         (VPERMI2, VPERMI2I): New mode iterators.
9446         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
9447         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
9448         patterns.
9449         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
9450         mode iterator.  Remove 3 old define_insn patterns.
9451         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
9452         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
9453         VPERMI2 mode iterator, remove the other two expanders.
9454         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
9455         to use VPERMI2 mode iterator, add another alternative for vpermi2*
9456         instructions, remove the other two patterns.
9457         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
9458         mode iterator, remove the other two patterns.
9459         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
9460         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
9461         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
9462         and adjust argument order accordingly.
9463         (ix86_expand_vec_perm): Adjust caller.
9464         (expand_vec_perm_1): Likewise.
9465         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
9466         (expand_vec_perm_vpermt2_vpshub2): ... this.
9467         (ix86_expand_vec_perm_const_1): Adjust caller.
9468         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
9469
9470         PR target/82370
9471         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
9472         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
9473         (vec_shl_<mode>): Remove unused expander.
9474         (avx512bw_<shift_insn><mode>3): New define_insn.
9475         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
9476         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
9477
9478 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
9479
9480         PR c++/82466
9481         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
9482         description.
9483
9484 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9485
9486         PR rtl-optimization/82396
9487         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
9488         (autopref_multipass_init): Simplify initialization.
9489         (autopref_rank_data): Simplify sort order.
9490         * gcc/sched-int.h (autopref_multipass_data_): Remove
9491         multi_mem_insn_p, min_offset and max_offset.
9492
9493 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9494
9495         PR middle-end/60580
9496         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9497         Check special value of flag_omit_frame_pointer.
9498         (aarch64_can_eliminate): Likewise.
9499         (aarch64_override_options_after_change_1): Simplify handling of
9500         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
9501
9502 2017-10-24  Richard Biener  <rguenther@suse.de>
9503
9504         PR tree-optimization/82697
9505         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
9506         zero for conditional load and unconditional store.
9507
9508 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
9509
9510         * doc/install.texi: Document bootstrap-cet.
9511
9512 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
9513
9514         PR target/82659
9515         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
9516         ENDBR instruction at function entrance if function is only
9517         called directly.
9518
9519 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
9520
9521         PR target/82628
9522         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
9523         patterns to better describe from which operation the CF is computed.
9524         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
9525         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
9526         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
9527         is 0, use _0 suffixed expanders instead of emitting a comparison
9528         before it.
9529
9530 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
9531
9532         * config/i386/i386.md(*movsf_internal, *movdf_internal):
9533         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
9534
9535 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
9536
9537         PR middle-end/82569
9538         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
9539         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
9540         * loop-iv.c (iv_get_reaching_def): Likewise.
9541         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
9542         variable is promoted and the partition contains undefined values.
9543
9544 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9545
9546         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
9547         reflect reality.
9548         (nios2_address_cost): Define.
9549         (nios2_legitimize_address): Recognize (exp + constant) directly.
9550         (TARGET_ADDRESS_COST): Define.
9551
9552 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9553
9554         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
9555         (nios2_symbolic_memory_operand_p): Declare.
9556         (nios2_split_large_constant): Declare.
9557         (nios2_split_symbolic_memory_operand): Declare.
9558         * config/nios2/nios2.c: Adjust includes.
9559         (nios2_symbolic_constant_allowed): New.
9560         (nios2_symbolic_constant_p): New.
9561         (nios2_plus_symbolic_constant_p): New.
9562         (nios2_valid_addr_expr_p): Recognize addresses involving
9563         symbolic constants.
9564         (nios2_legitimate_address_p): Likewise, also LO_SUM.
9565         (nios2_symbolic_memory_operand_p): New.
9566         (nios2_large_constant_p): New.
9567         (nios2_split_large_constant): New.
9568         (nios2_split_plus_large_constant): New.
9569         (nios2_split_symbolic_memory_operand): New.
9570         (nios2_legitimize_address): Code refactoring.  Handle addresses
9571         involving symbolic constants.
9572         (nios2_emit_move_sequence): Likewise.
9573         (nios2_print_operand): Improve error output.
9574         (nios2_print_operand_address): Handle LO_SUM.
9575         (nios2_cdx_narrow_form_p): Likewise.
9576         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
9577         operands involving symbolic constants.
9578         (movhi_internal, movsi_internal): Likewise.
9579         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
9580         (extendhisi2, extendqi<mode>2): Likewise.
9581
9582 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9583
9584         * tree-pass.h (PROP_rtl_split_insns): Define.
9585         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
9586
9587 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9588
9589         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
9590
9591 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
9592
9593         PR debug/82630
9594         * target.def (const_not_ok_for_debug_p): Default to
9595         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
9596         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
9597         * targhooks.c (default_const_not_ok_for_debug_p): New function.
9598         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
9599         which targetm.const_not_ok_for_debug_p returned true.
9600         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
9601         for UNSPECs.
9602         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
9603         Likewise.
9604         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
9605         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
9606         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
9607         if !base_term_p.
9608         (ix86_const_not_ok_for_debug_p): New function.
9609         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
9610         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
9611
9612 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
9613
9614         PR bootstrap/82610
9615         * system.h: Conditionally include "unique-ptr.h" if
9616         INCLUDE_UNIQUE_PTR is defined.
9617         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
9618         of defining INCLUDE_UNIQUE_PTR before including "system.h".
9619
9620 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
9621
9622         * config/rl78/rl78.md: New define_expand "subdi3".
9623
9624 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
9625
9626         PR target/82673
9627         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
9628         DF_REF_INSN if DF_REF_INSN_INFO is false.
9629
9630 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
9631
9632         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
9633         xmm_move instead of sse_move.
9634         (sse_store_index): New function.
9635         (ix86_register_move_cost): Be more sensible about mismatch stall;
9636         model AVX moves correctly; make difference between sse->integer and
9637         integer->sse.
9638         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
9639         moves; make difference between SSE and AVX.
9640         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
9641         and zmm_move. Increase size of sse load and store tables;
9642         add unaligned load and store tables; add ssemmx_to_integer.
9643         * x86-tune-costs.h: Update all entries according to real
9644         move latencies from Agner Fog's manual and chip documentation.
9645
9646 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
9647
9648         PR target/82628
9649         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
9650         * config/i386/constraints.md (Wf): New constraint.
9651         * config/i386/i386.md (UNSPEC_SBB): New unspec.
9652         (cmp<dwi>_doubleword): Removed.
9653         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
9654         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
9655         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
9656         expand with cmp<dwi>_doubleword.  For LTU and GEU use
9657         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
9658
9659         * common.opt (gcolumn-info): Enable by default.
9660         * doc/invoke.texi (gcolumn-info): Document new default.
9661
9662 2017-10-23  Richard Biener  <rguenther@suse.de>
9663
9664         PR tree-optimization/82672
9665         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
9666         Fold the stmt if we propagated into it.
9667
9668 2017-10-23  Richard Biener  <rguenther@suse.de>
9669
9670         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
9671         (bitmap_remove_expr_from_set): ... this.  All callers call this
9672         for non-constant values.
9673         (bitmap_set_subtract): Rename to...
9674         (bitmap_set_subtract_expressions): ... this.  Adjust and
9675         optimize.
9676         (bitmap_set_contains_value): Remove superfluous check.
9677         (bitmap_set_replace_value): Inline into single caller ...
9678         (bitmap_value_replace_in_set): ... here and simplify.
9679         (dependent_clean): Merge into ...
9680         (clean): ... this using an overload.  Adjust.
9681         (prune_clobbered_mems): Adjust.
9682         (compute_antic_aux): Likewise.
9683         (compute_partial_antic_aux): Likewise.
9684
9685 2017-10-23  Richard Biener  <rguenther@suse.de>
9686
9687         PR tree-optimization/82129
9688         Revert
9689         2017-08-01  Richard Biener  <rguenther@suse.de>
9690
9691         PR tree-optimization/81181
9692         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
9693         (compute_antic): ... end of iteration here.
9694
9695 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9696
9697         * target.def (starting_frame_offset): New hook.
9698         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
9699         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
9700         * doc/tm.texi.in: Regenerate.
9701         * hooks.h (hook_hwi_void_0): Declare.
9702         * hooks.c (hook_hwi_void_0): New function.
9703         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
9704         STARTING_FRAME_OFFSET.
9705         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
9706         * reload1.c (reload): Likewise.
9707         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
9708         instead of STARTING_FRAME_OFFSET.
9709         * function.c (try_fit_stack_local): Likewise.
9710         (assign_stack_local_1): Likewise
9711         (instantiate_virtual_regs): Likewise.
9712         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
9713         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
9714         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
9715         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
9716         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
9717         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
9718         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
9719         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
9720         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
9721         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
9722         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
9723         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
9724         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
9725         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
9726         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
9727         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
9728         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
9729         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
9730         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
9731         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
9732         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
9733         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
9734         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
9735         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
9736         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
9737         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
9738         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
9739         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
9740         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
9741         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
9742         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
9743         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
9744         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
9745         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
9746         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
9747         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
9748         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
9749         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
9750         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
9751         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
9752         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
9753         * config/avr/avr.c (avr_starting_frame_offset): Make static and
9754         return a HOST_WIDE_INT.
9755         (avr_builtin_setjmp_frame_value): Use it instead of
9756         STARTING_FRAME_OFFSET.
9757         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9758         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
9759         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
9760         New function.
9761         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9762         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
9763         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
9764         (TARGET_CONSTANT_ALIGNMENT): Redefine.
9765         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
9766         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
9767         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9768         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
9769         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
9770         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9771         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
9772         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
9773         New function.
9774         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9775         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
9776         * config/mips/mips.c (mips_compute_frame_info): Refer to
9777         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
9778         (mips_starting_frame_offset): New function.
9779         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9780         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
9781         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
9782         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
9783         and return a HOST_WIDE_INT.
9784         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9785         (mmix_initial_elimination_offset): Refer to
9786         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
9787         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
9788         * config/pa/pa.c (pa_starting_frame_offset): New function.
9789         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
9790         (pa_expand_prologue): Likewise.
9791         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9792         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
9793         !FRAME_GROWS_DOWNWARD handling to...
9794         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9795         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
9796         !FRAME_GROWS_DOWNWARD handling to...
9797         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9798         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
9799         !FRAME_GROWS_DOWNWARD handling to...
9800         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9801         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
9802         Redefine.
9803         (rs6000_starting_frame_offset): New function.
9804         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
9805         !FRAME_GROWS_DOWNWARD handling to...
9806         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9807         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
9808         !FRAME_GROWS_DOWNWARD handling to...
9809         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9810         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
9811         !FRAME_GROWS_DOWNWARD handling to...
9812         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9813         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
9814         (rs6000_starting_frame_offset): New function.
9815         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
9816         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
9817         * config/vax/vax.c (vax_starting_frame_offset): New function.
9818         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
9819         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9820         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
9821         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
9822         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9823         * system.h (STARTING_FRAME_OFFSET): Poison.
9824
9825 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9826
9827         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
9828         SCALAR_TYPE_MODE instead of TYPE_MODE.
9829
9830 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9831             Alan Hayward  <alan.hayward@arm.com>
9832             David Sherwood  <david.sherwood@arm.com>
9833
9834         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
9835
9836 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9837             Alan Hayward  <alan.hayward@arm.com>
9838             David Sherwood  <david.sherwood@arm.com>
9839
9840         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
9841
9842 2017-10-23  Richard Biener  <rguenther@suse.de>
9843
9844         PR tree-optimization/82129
9845         * tree-ssa-pre.c (bitmap_set_and): Remove.
9846         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
9847         canonicalizing expressions in the set to those with lowest
9848         ID rather than taking that from the first edge.
9849
9850 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9851
9852         * combine.c (rtx_equal_for_field_assignment_p): Use
9853         byte_lowpart_offset.
9854
9855 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9856             Alan Hayward  <alan.hayward@arm.com>
9857             David Sherwood  <david.sherwood@arm.com>
9858
9859         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
9860         to a SUBREG_PROMOTED_VAR.
9861
9862 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9863             Alan Hayward  <alan.hayward@arm.com>
9864             David Sherwood  <david.sherwood@arm.com>
9865
9866         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
9867         (expand_debug_source_expr): Likewise.
9868         * combine.c (combine_simplify_rtx): Likewise.
9869         * cse.c (fold_rtx): Likewise.
9870         * optabs.c (expand_float): Likewise.
9871         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9872         (simplify_binary_operation_1): Likewise.
9873
9874 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9875             Alan Hayward  <alan.hayward@arm.com>
9876             David Sherwood  <david.sherwood@arm.com>
9877
9878         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
9879         (record_promoted_value): Likewise.
9880         * expr.c (expand_expr_real_2): Likewise.
9881         * ree.c (update_reg_equal_equiv_notes): Likewise.
9882         (combine_set_extension): Likewise.
9883         * rtlanal.c (low_bitmask_len): Likewise.
9884         * simplify-rtx.c (neg_const_int): Likewise.
9885         (simplify_binary_operation_1): Likewise.
9886
9887 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9888             Alan Hayward  <alan.hayward@arm.com>
9889             David Sherwood  <david.sherwood@arm.com>
9890
9891         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
9892         * regcprop.c (maybe_mode_change): Likewise.
9893         * reload1.c (alter_reg): Likewise.
9894
9895 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9896
9897         * inchash.h (inchash::hash::add_wide_int): New function.
9898         * lto-streamer-out.c (hash_tree): Use it.
9899
9900 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9901
9902         * inchash.h (inchash::hash::add_wide_int): Rename to...
9903         (inchash::hash::add_hwi): ...this.
9904         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
9905         (polymorphic_call_target_hasher::hash): Likewise.
9906         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
9907         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
9908         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
9909         * lto-streamer-out.c (hash_tree): Likewise.
9910         * optc-save-gen.awk: Likewise.
9911         * tree.c (add_expr): Likewise.
9912
9913 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
9914
9915         PR target/52451
9916         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
9917         for ordered inequality comparisons even with TARGET_IEEE_FP.
9918
9919 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
9920
9921         PR target/82628
9922         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
9923         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
9924         Expand with cmp<dwi>_doubleword.
9925
9926 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9927
9928         * extend.texi: Add x86 specific to 'nocf_check' attribute.
9929         List CET intrinsics.
9930         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
9931         specific to -fcf-protection option.
9932
9933 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9934
9935         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
9936         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
9937         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
9938         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
9939         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
9940         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
9941         (extra_objs): Add cet.o for Linux/x86 targets.
9942         (tmake_file): Add i386/t-cet for Linux/x86 targets.
9943         * config/i386/cet.c: New file.
9944         * config/i386/cetintrin.h: Likewise.
9945         * config/i386/t-cet: Likewise.
9946         * config/i386/cpuid.h (bit_SHSTK): New.
9947         (bit_IBT): Likewise.
9948         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
9949         pass IBT and SHSTK bits.
9950         * config/i386/i386-builtin-types.def
9951         (VOID_FTYPE_UNSIGNED_PVOID): New.
9952         (VOID_FTYPE_UINT64_PVOID): Likewise.
9953         * config/i386/i386-builtin.def: Add CET intrinsics.
9954         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9955         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
9956         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
9957         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
9958         prototype.
9959         * config/i386/i386.c (rest_of_insert_endbranch): New.
9960         (pass_data_insert_endbranch): Likewise.
9961         (pass_insert_endbranch): Likewise.
9962         (make_pass_insert_endbranch): Likewise.
9963         (ix86_notrack_prefixed_insn_p): Likewise.
9964         (ix86_target_string): Add -mibt, -mshstk flags.
9965         (ix86_option_override_internal): Add flag_cf_protection
9966         processing.
9967         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
9968         (ix86_print_operand): Add 'notrack' prefix output.
9969         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
9970         (ix86_expand_builtin): Expand CET intrinsics.
9971         (x86_output_mi_thunk): Add 'endbranch' instruction.
9972         * config/i386/i386.h (TARGET_IBT): New.
9973         (TARGET_IBT_P): Likewise.
9974         (TARGET_SHSTK): Likewise.
9975         (TARGET_SHSTK_P): Likewise.
9976         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
9977         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
9978         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
9979         (builtin_setjmp_setup): New pattern.
9980         (builtin_longjmp): Likewise.
9981         (rdssp<mode>): Likewise.
9982         (incssp<mode>): Likewise.
9983         (saveprevssp): Likewise.
9984         (rstorssp): Likewise.
9985         (wrss<mode>): Likewise.
9986         (wruss<mode>): Likewise.
9987         (setssbsy): Likewise.
9988         (clrssbsy): Likewise.
9989         (nop_endbr): Likewise.
9990         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
9991         options.
9992         * config/i386/immintrin.h: Include <cetintrin.h>.
9993         * config/i386/linux-common.h
9994         (file_end_indicate_exec_stack_and_cet): New prototype.
9995         (TARGET_ASM_FILE_END): New.
9996
9997 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
9998
9999         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
10000         latencies instead of having separate table; make difference between
10001         integer and float costs.
10002         * i386.h (processor_costs): Remove scalar_stmt_cost,
10003         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
10004         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
10005         vec_store_cost.
10006         * x86-tune-costs.h: Remove entries which has been removed in
10007         procesor_costs from all tables; make cond_taken_branch_cost
10008         and cond_not_taken_branch_cost COST_N_INSNS based.
10009
10010 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10011
10012         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
10013
10014 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10015
10016         * config/i386/i386.md (isa): Remove fma_avx512f.
10017         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
10018         <avx512>_fmadd_<mode>_mask3<round_name>,
10019         <avx512>_fmsub_<mode>_mask<round_name>,
10020         <avx512>_fmsub_<mode>_mask3<round_name>,
10021         <avx512>_fnmadd_<mode>_mask<round_name>,
10022         <avx512>_fnmadd_<mode>_mask3<round_name>,
10023         <avx512>_fnmsub_<mode>_mask<round_name>,
10024         <avx512>_fnmsub_<mode>_mask3<round_name>,
10025         <avx512>_fmaddsub_<mode>_mask<round_name>,
10026         <avx512>_fmaddsub_<mode>_mask3<round_name>,
10027         <avx512>_fmsubadd_<mode>_mask<round_name>,
10028         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
10029         (*vec_widen_umult_even_v16si<mask_name>,
10030         *vec_widen_smult_even_v16si<mask_name>): Likewise.
10031         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
10032
10033 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10034
10035         * extend.texi: Add 'nocf_check' documentation.
10036         * gimple.texi: Add second parameter to
10037         gimple_build_call_from_tree.
10038         * invoke.texi: Add -fcf-protection documentation.
10039         * rtl.texi: Add REG_CALL_NOTRACK documenation.
10040
10041 2017-10-20  Richard Biener  <rguenther@suse.de>
10042
10043         PR tree-optimization/82473
10044         * tree-vect-loop.c (vectorizable_reduction): Properly get at
10045         the largest input type.
10046
10047 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10048
10049         * c-attribs.c (handle_nocf_check_attribute): New function.
10050         (c_common_attribute_table): Add 'nocf_check' handling.
10051         * gimple-parser.c: Add second argument NULL to
10052         gimple_build_call_from_tree.
10053         * attrib.c (comp_type_attributes): Check nocf_check attribute.
10054         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
10055         call insn.
10056         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
10057         * common.opt: Add fcf-protection flag.
10058         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
10059         * flag-types.h: Add enum cf_protection_level.
10060         * gimple.c (gimple_build_call_from_tree): Add second parameter.
10061         Add 'nocf_check' attribute propagation to gimple call.
10062         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
10063         (gimple_build_call_from_tree): Update prototype.
10064         (gimple_call_nocf_check_p): New function.
10065         (gimple_call_set_nocf_check): Likewise.
10066         * gimplify.c: Add second argument to gimple_build_call_from_tree.
10067         * ipa-icf.c: Add nocf_check attribute in statement hash.
10068         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
10069         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
10070         * toplev.c (process_options): Add flag_cf_protection handling.
10071
10072 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10073
10074         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
10075
10076 2017-10-20  Richard Biener  <rguenther@suse.de>
10077
10078         PR tree-optimization/82603
10079         * tree-if-conv.c (predicate_mem_writes): Make sure to only
10080         remove false predicated stores.
10081
10082 2017-10-20  Richard Biener  <rguenther@suse.de>
10083
10084         * graphite-isl-ast-to-gimple.c
10085         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
10086         Remove return value and simplify, dump copied stmt after lhs
10087         adjustment.
10088         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
10089         Reduce dump verbosity.
10090         (gsi_insert_earliest): Likewise.
10091         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
10092         * graphite.c (print_global_statistics): Adjust dumping.
10093         (print_graphite_scop_statistics): Likewise.
10094         (print_graphite_statistics): Do not dump loops here.
10095         (graphite_transform_loops): But here.
10096
10097 2017-10-20  Nicolas Roche  <roche@adacore.com>
10098
10099         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
10100         * configure: Regenerate.
10101
10102 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10103
10104         PR target/82158
10105         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
10106         functions when optimizing replace GIMPLE_RETURN stmts with
10107         calls to __builtin_unreachable ().
10108
10109         PR sanitizer/82595
10110         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
10111         for -fsanitize=thread link of executables.
10112         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
10113         link of executables.
10114
10115         PR target/82370
10116         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
10117         New mode iterators.
10118         (<shift_insn><mode>3<mask_name>): Change the last of the 3
10119         define_insns for logical vector shifts to use VI248_AVX512BW
10120         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
10121         condition, useless isa and prefix attributes.  Change the first
10122         2 of these define_insns to ...
10123         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
10124         define_insn for avx512vl.
10125         (<shift_insn><mode>3): ... and this, new define_insn without
10126         masking for non-avx512vl.
10127
10128         PR target/82370
10129         * config/i386/sse.md (*andnot<mode>3,
10130         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
10131         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
10132         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
10133         not applied use empty suffix even for TARGET_AVX512VL.
10134         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
10135         is applied, supply evex,evex or evex,evex,evex instead of just
10136         evex.
10137
10138 2017-10-20  Julia Koval  <julia.koval@intel.com>
10139
10140         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
10141         (OPTION_MASK_ISA_GFNI_UNSET): New.
10142         (ix86_handle_option): Handle OPT_mgfni.
10143         * config/i386/cpuid.h (bit_GFNI): New.
10144         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
10145         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
10146         * config/i386/i386.c (ix86_target_string): Add -mgfni.
10147         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
10148         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
10149         * config/i386/i386.opt: Add mgfni.
10150
10151 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
10152
10153         * config/msp430/msp430.c (msp430_option_override): Disable
10154         -fdelete-null-pointer-checks.
10155         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
10156
10157 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10158
10159         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
10160         of x87 and SSE instructions.
10161
10162 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10163
10164         * asan.c (create_cond_insert_point): Do not update edge count.
10165         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
10166         (afdo_propagate_circuit): Likewise.
10167         (afdo_calculate_branch_prob): Likewise.
10168         (afdo_annotate_cfg): Likewise.
10169         * basic-block.h (struct edge_def): Remove count.
10170         (edge_def::count): New accessor.
10171         * bb-reorder.c (rotate_loop): Update.
10172         (find_traces_1_round): Update.
10173         (connect_traces): Update.
10174         (sanitize_hot_paths): Update.
10175         * cfg.c (unchecked_make_edge): Update.
10176         (make_single_succ_edge): Update.
10177         (check_bb_profile): Update.
10178         (dump_edge_info): Update.
10179         (update_bb_profile_for_threading): Update.
10180         (scale_bbs_frequencies_int): Update.
10181         (scale_bbs_frequencies_gcov_type): Update.
10182         (scale_bbs_frequencies_profile_count): Update.
10183         (scale_bbs_frequencies): Update.
10184         * cfganal.c (connect_infinite_loops_to_exit): Update.
10185         * cfgbuild.c (compute_outgoing_frequencies): Update.
10186         (find_many_sub_basic_blocks): Update.
10187         * cfgcleanup.c (try_forward_edges): Update.
10188         (try_crossjump_to_edge): Update
10189         * cfgexpand.c (expand_gimple_cond): Update
10190         (expand_gimple_tailcall): Update
10191         (construct_exit_block): Update
10192         * cfghooks.c (verify_flow_info): Update
10193         (redirect_edge_succ_nodup): Update
10194         (split_edge): Update
10195         (make_forwarder_block): Update
10196         (duplicate_block): Update
10197         (account_profile_record): Update
10198         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
10199         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
10200         * cfgloopmanip.c (scale_loop_profile): Update.
10201         (loopify): Update.
10202         (lv_adjust_loop_entry_edge): Update.
10203         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
10204         (force_nonfallthru_and_redirect): Update.
10205         (purge_dead_edges): Update.
10206         (rtl_flow_call_edges_add): Update.
10207         * cgraphunit.c (init_lowered_empty_function): Update.
10208         (cgraph_node::expand_thunk): Update.
10209         * gimple-pretty-print.c (dump_probability): Update.
10210         (dump_edge_probability): Update.
10211         * gimple-ssa-isolate-paths.c (isolate_path): Update.
10212         * haifa-sched.c (sched_create_recovery_edges): Update.
10213         * hsa-gen.c (convert_switch_statements): Update.
10214         * ifcvt.c (dead_or_predicable): Update.
10215         * ipa-inline-transform.c (inline_transform): Update.
10216         * ipa-split.c (split_function): Update.
10217         * ipa-utils.c (ipa_merge_profiles): Update.
10218         * loop-doloop.c (add_test): Update.
10219         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
10220         * lto-streamer-in.c (input_cfg): Update.
10221         (input_function): Update.
10222         * lto-streamer-out.c (output_cfg): Update.
10223         * modulo-sched.c (sms_schedule): Update.
10224         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
10225         * predict.c (maybe_hot_edge_p): Update.
10226         (unlikely_executed_edge_p): Update.
10227         (probably_never_executed_edge_p): Update.
10228         (dump_prediction): Update.
10229         (drop_profile): Update.
10230         (propagate_unlikely_bbs_forward): Update.
10231         (determine_unlikely_bbs): Update.
10232         (force_edge_cold): Update.
10233         * profile.c (compute_branch_probabilities): Update.
10234         * reg-stack.c (better_edge): Update.
10235         * shrink-wrap.c (handle_simple_exit): Update.
10236         * tracer.c (better_p): Update.
10237         * trans-mem.c (expand_transaction): Update.
10238         (split_bb_make_tm_edge): Update.
10239         * tree-call-cdce.c: Update.
10240         * tree-cfg.c (gimple_find_sub_bbs): Update.
10241         (gimple_split_edge): Update.
10242         (gimple_duplicate_sese_region): Update.
10243         (gimple_duplicate_sese_tail): Update.
10244         (gimple_flow_call_edges_add): Update.
10245         (insert_cond_bb): Update.
10246         (execute_fixup_cfg): Update.
10247         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
10248         * tree-complex.c (expand_complex_div_wide): Update.
10249         * tree-eh.c (lower_resx): Update.
10250         (unsplit_eh): Update.
10251         (cleanup_empty_eh_move_lp): Update.
10252         * tree-inline.c (copy_edges_for_bb): Update.
10253         (freqs_to_counts): Update.
10254         (copy_cfg_body): Update.
10255         * tree-ssa-dce.c (remove_dead_stmt): Update.
10256         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
10257         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
10258         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
10259         (unloop_loops): Update.
10260         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10261         * tree-ssa-loop-split.c (connect_loops): Update.
10262         (split_loop): Update.
10263         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
10264         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
10265         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
10266         * tree-ssa-reassoc.c (branch_fixup): Update.
10267         * tree-ssa-tail-merge.c (replace_block_by): Update.
10268         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
10269         (compute_path_counts): Update.
10270         (update_profile): Update.
10271         (recompute_probabilities): Update.
10272         (update_joiner_offpath_counts): Update.
10273         (estimated_freqs_path): Update.
10274         (freqs_to_counts_path): Update.
10275         (clear_counts_path): Update.
10276         (ssa_fix_duplicate_block_edges): Update.
10277         (duplicate_thread_path): Update.
10278         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
10279         (case_bit_test_cmp): Update.
10280         (collect_switch_conv_info): Update.
10281         (gen_inbound_check): Update.
10282         (do_jump_if_equal): Update.
10283         (emit_cmp_and_jump_insns): Update.
10284         * tree-tailcall.c (decrease_profile): Update.
10285         (eliminate_tail_call): Update.
10286         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
10287         (vect_do_peeling): Update.
10288         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10289         * ubsan.c (ubsan_expand_null_ifn): Update.
10290         (ubsan_expand_ptr_ifn): Update.
10291         * value-prof.c (gimple_divmod_fixed_value): Update.
10292         (gimple_mod_pow2): Update.
10293         (gimple_mod_subtract): Update.
10294         (gimple_ic): Update.
10295         (gimple_stringop_fixed_value): Update.
10296
10297 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10298
10299         PR target/82618
10300         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
10301
10302 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
10303
10304         PR rtl-optimization/82395
10305         * ira-color.c (allocno_priority_compare_func): Fix comparison step
10306         based on non_spilled_static_chain_regno_p.
10307
10308 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10309
10310         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
10311         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
10312         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
10313
10314 2017-10-19  Martin Sebor  <msebor@redhat.com>
10315
10316         PR tree-optimization/82596
10317         * tree.c (array_at_struct_end_p): Handle STRING_CST.
10318
10319 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10320
10321         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
10322         (get_mem_refs_of_builtin_call): Likewise.
10323         * builtins.c (expand_builtin_apply): Adjust call to
10324         allocate_dynamic_stack_space.
10325         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
10326         the third argument to allocate_dynamic_stack_space, otherwise -1.
10327         (expand_builtin): Deal with all alloca variants.
10328         (is_inexpensive_builtin): Likewise.
10329         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
10330         * calls.c (special_function_p): Deal with all alloca variants.
10331         (initialize_argument_information): Adjust call to
10332         allocate_dynamic_stack_space.
10333         (expand_call): Likewise.
10334         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
10335         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
10336         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
10337         use it for the stack usage computation.
10338         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
10339         * function.c (gimplify_parameters): Call build_alloca_call_expr.
10340         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
10341         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
10342         (in_loop_p): Remove first argument and useless check.
10343         (pass_walloca::execute): Remove useless test and adjust call to above.
10344         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
10345         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
10346         (gimplify_call_expr): Deal with all alloca variants.
10347         * hsa-gen.c (gen_hsa_alloca): Likewise.
10348         (gen_hsa_insns_for_call): Likewise.
10349         * ipa-pure-const.c (special_builtin_state): Likewise.
10350         * tree-chkp.c (chkp_build_returned_bound): Likewise.
10351         * tree-object-size.c (alloc_object_size): Likewise.
10352         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10353         (call_may_clobber_ref_p_1): Likewise.
10354         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
10355         (ccp_fold_stmt): Likewise.
10356         (optimize_stack_restore): Likewise.
10357         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10358         (mark_all_reaching_defs_necessary_1): Likewise.
10359         (propagate_necessity): Likewise.
10360         (eliminate_unnecessary_stmts): Likewise.
10361         * tree.c (build_common_builtin_nodes): Build
10362         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
10363         (build_alloca_call_expr): New function.
10364         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
10365         (CASE_BUILT_IN_ALLOCA): Likewise.
10366         (build_alloca_call_expr): Declare.
10367         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
10368
10369 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10370
10371         PR debug/82509
10372         * dwarf2out.c (new_die_raw): New static inline function.
10373         (new_die): Use it to create the DIE.
10374         (add_AT_external_die_ref): Likewise.
10375         (clone_die): Likewise.
10376         (clone_as_declaration): Likewise.
10377         (dwarf2out_vms_debug_main_pointer): Likewise.
10378         (base_type_die): Likewise.  Remove early return for corner cases.
10379         Do not call add_pubtype on the DIE here.
10380         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
10381         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
10382         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
10383         native order exists for base types, attach the DIE manually and call
10384         add_pubtype on it.  Do not equate a reverse order DIE to the type.
10385
10386 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
10387
10388         * config/arm/arm.c (align_ok_ldrd_strd): New function.
10389         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
10390         the mem into it.
10391         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
10392
10393 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
10394
10395         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
10396         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
10397         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
10398         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
10399         * opts.c (sanitizer_opts): Add builtin.
10400         * ubsan.c (instrument_builtin): New function.
10401         (pass_ubsan::execute): Call it.
10402         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
10403         * doc/invoke.texi: Document -fsanitize=builtin.
10404
10405         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
10406         builtins, store max (log2 (align), 0) into uchar field instead of
10407         align into uptr field.
10408         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
10409         store uchar 0 field instead of uptr 0 field.
10410         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
10411         instead of passing one address of struct with 2 locations pass
10412         two addresses of structs with 1 location each.
10413         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
10414         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
10415         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
10416         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
10417         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
10418         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
10419         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
10420         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
10421
10422 2017-10-19  Martin Liska  <mliska@suse.cz>
10423
10424         PR driver/81829
10425         * file-find.c (remove_prefix): Remove.
10426         * file-find.h (remove_prefix): Likewise.
10427         * gcc-ar.c: Remove smartness of lookup.
10428
10429 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
10430
10431         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
10432         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
10433         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
10434
10435 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
10436
10437         PR target/82580
10438         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
10439         (setcc + and to xor + setcc): New peephole2.
10440
10441 2017-10-19  Tom de Vries  <tom@codesourcery.com>
10442
10443         * doc/sourcebuild.texi (Test Directives, Variants of
10444         dg-require-support): Add dg-require-stack-size.
10445
10446 2017-10-19  Martin Liska  <mliska@suse.cz>
10447
10448         PR sanitizer/82517
10449         * gimplify.c (gimplify_decl_expr): Do not instrument variables
10450         that have a large alignment.
10451         (gimplify_target_expr): Likewise.
10452
10453 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
10454
10455         PR rtl-optimization/82602
10456         * ira.c (rtx_moveable_p): Return false for volatile asm.
10457
10458 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
10459
10460         PR target/82580
10461         * config/i386/i386-modes.def (CCGZ): New CC mode.
10462         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
10463         * config/i386/predicates.md (ix86_comparison_operator):
10464         Handle CCGZmode.
10465         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10466         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
10467         with double-word subtraction.
10468         (put_condition_code): Handle CCGZmode.
10469
10470 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
10471
10472         * wide-int.cc (debug (const wide_int &)): New.
10473         (debug (const wide_int *)): New.
10474         (debug (const widest_int &)): New.
10475         (debug (const widest_int *)): New.
10476
10477 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
10478
10479         PR middle-end/82556
10480         * lra-constraints.c (curr_insn_transform): Use non-input operand
10481         instead of output one for matched reload.
10482
10483 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
10484
10485         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
10486         (tree-ssa-loop-ivopts.h): New header file.
10487         (struct builtin_info): New fields.
10488         (classify_builtin_1): Compute and record base and offset parts for
10489         memset builtin partition by calling strip_offset.
10490         (offset_cmp, fuse_memset_builtins): New functions.
10491         (finalize_partitions): Fuse adjacent memset partitions by calling
10492         above function.
10493         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
10494         Expose the interface.
10495         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
10496
10497 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
10498
10499         PR tree-optimization/82574
10500         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
10501         that data reference must be executed exactly once per iteration
10502         against the outermost loop in nest.
10503         (classify_partition): Update call to above function.
10504
10505 2017-10-18  Richard Biener  <rguenther@suse.de>
10506
10507         PR tree-optimization/82591
10508         * graphite.c (graphite_transform_loops): Move code gen message
10509         printing ...
10510         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
10511         Here.  Handle scop_to_isl_ast failing.
10512         (scop_to_isl_ast): Limit the number of ISL operations.
10513
10514 2017-10-18  Richard Biener  <rguenther@suse.de>
10515
10516         * graphite-isl-ast-to-gimple.c
10517         (translate_isl_ast_to_gimple::set_rename): Simplify.
10518         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
10519         (graphite_copy_stmts_from_block): ... here.
10520         (copy_bb_and_scalar_dependences): Simplify.
10521         (add_parameters_to_ivs_params): Canonicalize.
10522         (generate_entry_out_of_ssa_copies): Simplify.
10523         * graphite-sese-to-poly.c (extract_affine_name): Simplify
10524         by passing in ISL dimension.
10525         (parameter_index_in_region_1): Rename to ...
10526         (parameter_index_in_region): ... this.
10527         (extract_affine): Adjust assert, pass down parameter index.
10528         (add_param_constraints): Use range-info when available.
10529         (build_scop_context): Adjust.
10530         * sese.c (new_sese_info): Adjust.
10531         (free_sese_info): Likewise.
10532         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
10533         Remove unused typedefs.
10534         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
10535
10536 2017-10-18  Martin Liska  <mliska@suse.cz>
10537
10538         * combine.c (simplify_compare_const): Add gcc_fallthrough.
10539
10540 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
10541
10542         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
10543         (s390_sched_init): Do not reset s390_sched_state if we entered the
10544         current basic block via a fallthru edge and all others are unlikely.
10545
10546 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
10547
10548         * config/s390/s390.c (NUM_SIDES): New variable.
10549         (LONGRUNNING_THRESHOLD): New variable.
10550         (LATENCY_FACTOR): New variable.
10551         (s390_sched_score): Decrease score for long-running instructions on
10552         wrong side.
10553         (s390_sched_variable_issue): Perform bookkeeping for long-running
10554         instructions.
10555
10556 2017-10-18  Richard Biener  <rguenther@suse.de>
10557
10558         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10559         Simplify with removal of the parameter rename map.
10560         (set_rename): Likewise.
10561         (should_copy_to_new_region): Likewise.
10562         (graphite_copy_stmts_from_block): Likewise.
10563         (copy_bb_and_scalar_dependences): Remove initialization of
10564         unused copied_bb_map.
10565         (copy_def): Remove.
10566         (copy_internal_parameters): Likewise.
10567         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
10568         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
10569         Use INTEGRAL_TYPE_P.
10570         (parameter_index_in_region_1): Rename to ...
10571         (assign_parameter_index_in_region): ... this.  Assert we have
10572         a parameter we handle.
10573         (scan_tree_for_params): Adjust.
10574         * sese.h (parameter_rename_map_t): Remove.
10575         (struct sese_info_t): Remove unused parameter_rename_map and
10576         copied_bb_map members.
10577         * sese.c (new_sese_info): Adjust.
10578         (free_sese_info): Likewise.
10579
10580 2017-10-18  Martin Liska  <mliska@suse.cz>
10581
10582         PR sanitizer/82545
10583         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
10584         on an abnormal edge.
10585
10586 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10587
10588         * doc/invoke.texi (ffunction-sections and fdata-sections):
10589         Update.
10590
10591 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
10592
10593         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
10594         the use statement can throw internally.
10595
10596 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
10597
10598         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
10599         any RTX present on the RHS of a SET.
10600         * compare-elim.c (try_eliminate_compare): Restore comment.
10601
10602 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
10603
10604         * langhooks.h (struct lang_hooks): Document that tree_size langhook
10605         may be also called on tcc_type nodes.
10606         * langhooks.c (lhd_tree_size): Likewise.
10607
10608 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
10609
10610         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
10611         format_warning_at_substring.
10612         (maybe_warn): Convert source_range * param to a location_t.  Pass
10613         UNKNOWN_LOCATION rather than NULL to fmtwarn.
10614         (format_directive): Remove code to extract source_ranges and
10615         source_range * in favor of just a location_t.
10616         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
10617         fmtwarn.
10618         * substring-locations.c (format_warning_va): Convert
10619         source_range * param to a location_t.
10620         (format_warning_at_substring): Likewise.
10621         * substring-locations.h (format_warning_va): Likewise.
10622         (format_warning_at_substring): Likewise.
10623
10624 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
10625
10626         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
10627         vec_scatter_store
10628         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
10629         and scatter/gather ops.
10630
10631         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
10632         vec_gather_load and vec_scatter_store.
10633         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
10634         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
10635         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
10636         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
10637         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
10638         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
10639
10640 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
10641
10642         * reg-stack.c (compare_for_stack_reg): Add bool argument.
10643         Detect FTST instruction and handle its register pops.  Only pop
10644         second operand if can_pop_second_op is true.
10645         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
10646         set can_pop_second_op to false in the compare_for_stack_reg call.
10647
10648         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
10649         output_fp_compare for stack register operands.
10650         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
10651         instructions here.  Do not emit stack register pops here.  Assert
10652         that FCOMPP pops next to top stack register.  Rewrite function.
10653
10654 2017-10-17  Nathan Sidwell  <nathan@acm.org>
10655
10656         PR middle-end/82577
10657         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
10658         use DECL_ASSEMBLER_NAME_RAW.
10659
10660         PR middle-end/82546
10661         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
10662         TYPE nodes.
10663
10664 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
10665             Wilco Dijkstra <wilco.dijkstra@arm.com>
10666
10667         * builtins.c (expand_builtin_update_setjmp_buf): Add a
10668         converstion to Pmode from the buf_addr.
10669
10670 2017-10-17  Richard Biener  <rguenther@suse.de>
10671
10672         * graphite-dependences.c (scop_get_reads_and_writes): Change
10673         output parameters to references.
10674
10675 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
10676
10677         PR 71026/tree-optimization
10678         * fold-const.c (distribute_real_division): Removed.
10679         (fold_binary_loc): Remove calls to distribute_real_divison.
10680
10681 2017-10-17  Richard Biener  <rguenther@suse.de>
10682
10683         * graphite-scop-detection.c
10684         (scop_detection::stmt_has_simple_data_refs_p): Always use
10685         the full nest as region.
10686         (try_generate_gimple_bb): Likewise.
10687         * sese.c (scalar_evolution_in_region): Simplify now that
10688         SCEV can handle instantiation in regions.
10689         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
10690         in the non-loop part of a function if requested.
10691
10692 2017-10-17  Richard Biener  <rguenther@suse.de>
10693
10694         PR tree-optimization/82563
10695         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
10696         New function.
10697         (graphite_regenerate_ast_isl): Call it.
10698         * graphite-scop-detection.c (build_scops): Remove entry edge split.
10699
10700 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
10701
10702         PR tree-optimization/82549
10703         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
10704         Formatting fixes.  Instead of calling make_bit_field_ref with negative
10705         bitpos return 0.
10706
10707 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
10708
10709         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
10710         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
10711         _mm_maskz_reduce_ss): New.
10712         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
10713         __builtin_ia32_reducess_mask): Ditto..
10714         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
10715         * config/i386/sse.md (reduces<mode>): Renamed to ...
10716         (reduces<mode><mask_scalar_name>): ... this.
10717         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
10718         Changed to ...
10719         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
10720         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
10721
10722 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
10723
10724         * Makefile.in (OBJS): Add unique-ptr-tests.o.
10725         * selftest-run-tests.c (selftest::run_tests): Call
10726         selftest::unique_ptr_tests_cc_tests.
10727         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
10728         * unique-ptr-tests.cc: New file.
10729
10730 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
10731
10732         PR sanitizer/82353
10733         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10734         locations.
10735         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10736         (make_hard_regno_born, make_hard_regno_dead): Update
10737         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
10738
10739 2017-10-16  Jeff Law  <law@redhat.com>
10740
10741         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
10742
10743 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
10744
10745         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
10746
10747 2017-10-16  Olivier Hainque  <hainque@adacore.com>
10748
10749         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
10750         with_cpu if we were configured for an e500v2 target cpu name.
10751
10752 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10753
10754         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
10755         * doc/invoke.texi: Document +nodsp as a valid extension for
10756         -mcpu=cortex-m33.
10757
10758 2017-10-16  Martin Liska  <mliska@suse.cz>
10759
10760         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
10761         (test_set_range): Likewise.
10762         (test_range_functions): Rename to ...
10763         (test_bit_in_range): ... this.
10764         (sbitmap_c_tests): Add new test.
10765
10766 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10767
10768         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
10769         New.
10770         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
10771         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
10772
10773 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10774
10775         * config/aarch64/aarch64-builtins.c
10776         (aarch64_types_quadopu_lane_qualifiers): New.
10777         (TYPES_QUADOPU_LANE): New.
10778         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
10779         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
10780         (aarch64_<sur>dot_laneq<vsi2qi>): New.
10781         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
10782         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
10783         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
10784         (Vdottype, DOTPROD): New.
10785         (sur): Add SDOT and UDOT.
10786
10787 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10788
10789         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
10790         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
10791         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
10792         Add TARGET_DOTPROD.
10793         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
10794         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
10795         Enable TARGET_DOTPROD.
10796         (cortex-a75.cortex-a55): Likewise.
10797         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
10798
10799 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10800
10801         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
10802         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
10803         New.
10804         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
10805         New.
10806         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
10807         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
10808         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
10809         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
10810         * config/arm/types.md (neon_dot, neon_dot_q): New.
10811         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
10812
10813 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10814
10815         * config/arm/arm.h (TARGET_DOTPROD): New.
10816         * config/arm/arm.c (arm_arch_dotprod): New.
10817         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
10818         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
10819         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
10820         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
10821         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
10822         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
10823         * doc/invoke.texi (armv8.2-a): Document dotprod
10824
10825 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10826
10827         * i386.c (ix86_vec_cost): New function.
10828         (ix86_rtx_costs): Handle vector operations better.
10829         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
10830         * x86-tune-costs.h: Add new costs to all tables.
10831
10832 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10833
10834         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
10835         operations.
10836         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
10837         divsd, sqrtss and sqrtsd
10838         * x86-tune-costs.h: Add new entries to all costs.
10839         (znver1_cost): Fix to match real instruction latencies.
10840
10841 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10842             Michael Collison <michael.collison@arm.com>
10843
10844         * compare-elim.c: Include emit-rtl.h.
10845         (can_merge_compare_into_arith): New function.
10846         (try_validate_parallel): Likewise.
10847         (try_merge_compare): Likewise.
10848         (try_eliminate_compare): Call the above when no previous clobber
10849         is available.
10850         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
10851         dataflow problems.
10852
10853 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
10854
10855         PR middle-end/62263
10856         PR middle-end/82498
10857         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
10858         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
10859
10860         PR middle-end/62263
10861         PR middle-end/82498
10862         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
10863         to be any operand_equal_p operands.  For & (B - 1) require
10864         B to be power of 2.  Recognize
10865         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
10866
10867 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10868
10869         PR bootstrap/82553
10870         * optabs.c (expand_memory_blockage): Fix call of
10871         targetm.have_memory_blockage.
10872
10873 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
10874
10875         PR bootstrap/82548
10876         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
10877         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
10878         objects to extra_objs instead of overwriting it.
10879
10880 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10881
10882         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
10883         Use any_fp_register_operand as operand[3] predicate.  Simplify
10884         equality test for operands[2] and operands[4] memory location.
10885         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
10886         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
10887         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
10888         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
10889         any_fp_register_operand as operand[1] predicate.  Simplify
10890         equality test for operands[0] and operands[3] memory location.
10891         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
10892         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
10893         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
10894
10895 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10896
10897         * target-insns.def: Add memory_blockage.
10898         * optabs.c (expand_memory_blockage): New function.
10899         (expand_asm_memory_barrier): Rename ...
10900         (expand_asm_memory_blockage): ... to this.
10901         (expand_mem_thread_fence): Call expand_memory_blockage
10902         instead of expand_asm_memory_barrier.
10903         (expand_mem_singnal_fence): Ditto.
10904         (expand_atomic_load): Ditto.
10905         (expand_atomic_store): Ditto.
10906         * doc/md.texi (Standard Pattern Names For Generation):
10907         Document memory_blockage instruction pattern.
10908
10909 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
10910
10911         * config/rl78/rl78.c (rl78_emit_libcall): New function.
10912         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
10913         * config/rl78/rl78.md: New define_expand "adddi3".
10914
10915 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
10916
10917         * cfghooks.c (verify_flow_info): Disable check that all probabilities
10918         are set correctly.
10919
10920 2017-10-13  Jeff Law  <law@redhat.com>
10921
10922         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
10923
10924 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
10925
10926         PR target/82274
10927         * internal-fn.c (expand_mul_overflow): If both operands have
10928         the same highpart of -1 or 0 and the topmost bit of lowpart
10929         is different, overflow is if res <= 0 rather than res < 0.
10930
10931 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
10932
10933         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
10934         TARGET_P9_VECTOR code for unaligned_load case.
10935
10936 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
10937
10938         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
10939
10940 2017-10-13  Nathan Sidwell  <nathan@acm.org>
10941
10942         * tree-core.h (tree_contains_struct): Make bool.
10943         * tree.c (tree_contains_struct): Likewise.
10944         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
10945         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
10946         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
10947         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
10948         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
10949
10950 2017-10-13  Richard Biener  <rguenther@suse.de>
10951
10952         * graphite-isl-ast-to-gimple.c
10953         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
10954         parameters and dominance check.
10955         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
10956         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
10957         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
10958         Do not update SSA form here or do intermediate IL verification.
10959         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
10960         (graphite_initialize): Remove check on the number of loops in
10961         the function and inline into graphite_transform_loops.
10962         (graphite_finalize): Inline into graphite_transform_loops.
10963         (graphite_transform_loops): Perform SSA update and IL verification
10964         here.
10965         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
10966
10967 2017-10-13  Richard Biener  <rguenther@suse.de>
10968
10969         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
10970         graphite_expression_type_precision): Avoid global constructor
10971         by moving ...
10972         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
10973         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
10974         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
10975         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
10976         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
10977         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
10978
10979 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
10980
10981         PR target/82499
10982         * config/i386/i386.h (ix86_red_zone_size): New.
10983         * config/i386/i386.md (push peephole2s): Replace
10984         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
10985
10986 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10987             Alan Hayward  <alan.hayward@arm.com>
10988             David Sherwood  <david.sherwood@arm.com>
10989
10990         * combine.c (can_change_dest_mode): Reject changes in
10991         REGMODE_NATURAL_SIZE.
10992
10993 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10994             Alan Hayward  <alan.hayward@arm.com>
10995             David Sherwood  <david.sherwood@arm.com>
10996
10997         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
10998         (expand_debug_source_expr): Likewise.
10999         * combine.c (combine_simplify_rtx): Likewise.
11000         * cse.c (fold_rtx): Likewise.
11001         * fwprop.c (canonicalize_address): Likewise.
11002         * targhooks.c (default_shift_truncation_mask): Likewise.
11003
11004 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11005             Alan Hayward  <alan.hayward@arm.com>
11006             David Sherwood  <david.sherwood@arm.com>
11007
11008         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
11009         (widened_mode): Likewise.
11010         (expand_unop): Likewise.
11011         * ree.c (transform_ifelse): Likewise.
11012         (merge_def_and_ext): Likewise.
11013         (combine_reaching_defs): Likewise.
11014         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11015
11016 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11017             Alan Hayward  <alan.hayward@arm.com>
11018             David Sherwood  <david.sherwood@arm.com>
11019
11020         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
11021         * combine.c (gen_lowpart_for_combine): Likewise.
11022         * dwarf2out.c (rtl_for_decl_location): Likewise.
11023         * final.c (alter_subreg): Likewise.
11024         * rtlhooks.c (gen_lowpart_general): Likewise.
11025         (gen_lowpart_if_possible): Likewise.
11026
11027 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11028             Alan Hayward  <alan.hayward@arm.com>
11029             David Sherwood  <david.sherwood@arm.com>
11030
11031         * calls.c (expand_call): Use subreg_lowpart_offset.
11032         * cse.c (cse_insn): Likewise.
11033         * regcprop.c (copy_value): Likewise.
11034         (copyprop_hardreg_forward_1): Likewise.
11035
11036 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11037
11038         PR target/82524
11039         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
11040         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
11041         =Q constraints to +Q and into insn condition add check
11042         that operands[0] and operands[1] are equal.
11043         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
11044         =Q constraints to +Q and into insn condition add check
11045         that operands[0] is equal to either operands[1] or operands[2].
11046
11047         PR target/82498
11048         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
11049         instead of handling MINUS_EXPR twice (once for each argument),
11050         canonicalize operand order and handle just once, use rtype where
11051         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
11052
11053         PR target/82498
11054         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
11055         any values of __C while still being pattern recognizable as a simple
11056         rotate instruction.
11057
11058 2017-10-13  Richard Biener  <rguenther@suse.de>
11059
11060         PR tree-optimization/82451
11061         Revert
11062         2017-10-02  Richard Biener  <rguenther@suse.de>
11063
11064         PR tree-optimization/82355
11065         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
11066         a mapping for the enclosing loop but avoid generating one for
11067         the loop tree root.
11068         (copy_bb_and_scalar_dependences): Remove premature codegen
11069         error on PHIs in blocks duplicated into multiple places.
11070         * graphite-scop-detection.c
11071         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
11072         in the region use it as loop and nest to analyze the DR in.
11073         (try_generate_gimple_bb): Likewise.
11074         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
11075         (add_loop_constraints): For blocks in a loop not in the region
11076         create a dimension with a single iteration.
11077         * sese.h (gbb_loop_at_index): Remove assert.
11078
11079         * cfgloop.c (loop_preheader_edge): For the loop tree root
11080         return the single successor of the entry block.
11081         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11082         Reset the SCEV hashtable and niters.
11083         * graphite-scop-detection.c
11084         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
11085         assert that we only have POLYNOMIAL_CHREC that vary in loops
11086         contained in the region.
11087         (scop_detection::graphite_can_represent_expr): Adjust.
11088         (scop_detection::stmt_has_simple_data_refs_p): For loops
11089         not in the region set loop to NULL.  The nest is now the
11090         entry edge to the region.
11091         (try_generate_gimple_bb): Likewise.
11092         * sese.c (scalar_evolution_in_region): Adjust for
11093         instantiate_scev change.
11094         * tree-data-ref.h (graphite_find_data_references_in_stmt):
11095         Make nest parameter the edge into the region.
11096         (create_data_ref): Likewise.
11097         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
11098         entry edge into a region and adjust instantiate_scev calls.
11099         (create_data_ref): Likewise.
11100         (graphite_find_data_references_in_stmt): Likewise.
11101         (find_data_references_in_stmt): Pass the loop preheader edge
11102         from the nest argument.
11103         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
11104         parameter the edge into the region.
11105         (instantiate_parameters): Use the loop preheader edge as entry.
11106         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
11107         NULL loop.
11108         (get_instantiated_value_entry): Make instantiate_below parameter
11109         the edge into the region.
11110         (instantiate_scev_name): Likewise.  Adjust dominance checks,
11111         when we cannot use loop-based instantiation instantiate by
11112         walking use-def chains.
11113         (instantiate_scev_poly): Adjust.
11114         (instantiate_scev_binary): Likewise.
11115         (instantiate_scev_convert): Likewise.
11116         (instantiate_scev_not): Likewise.
11117         (instantiate_array_ref): Remove.
11118         (instantiate_scev_3): Likewise.
11119         (instantiate_scev_2): Likewise.
11120         (instantiate_scev_1): Likewise.
11121         (instantiate_scev_r): Do not blindly handle N-operand trees.
11122         Do not instantiate array-refs.  Handle all constants and invariants.
11123         (instantiate_scev): Make instantiate_below parameter
11124         the edge into the region.
11125         (resolve_mixers): Use the loop preheader edge for the region
11126         parameter to instantiate_scev_r.
11127         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
11128
11129 2017-10-13  Richard Biener  <rguenther@suse.de>
11130
11131         PR tree-optimization/82525
11132         * graphite-isl-ast-to-gimple.c
11133         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
11134         out from ...
11135         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
11136         Fail code generation when we cannot represent the isl integer.
11137         (binary_op_to_tree): Elide modulo operations that are no-ops
11138         in the type we code generate.  Remove now superfluous code
11139         generation errors.
11140
11141 2017-10-13  Richard Biener  <rguenther@suse.de>
11142
11143         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
11144         (scop_detection::harmful_loop_in_region): Remove premature
11145         IV type restriction.
11146         (scop_detection::graphite_can_represent_scev): We can handle
11147         pointer IVs just fine.
11148
11149 2017-10-13  Alan Modra  <amodra@gmail.com>
11150
11151         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
11152         "Clobbers and Scratch Registers".  Add paragraph on
11153         alternative to clobbers for scratch registers and OpenBLAS
11154         example.
11155
11156 2017-10-13  Alan Modra  <amodra@gmail.com>
11157
11158         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
11159         example of a memory input for a string of known length.  Move
11160         commentary out of table.  Add a number of new examples
11161         covering array memory inputs.
11162
11163 2017-10-12  Martin Liska  <mliska@suse.cz>
11164
11165         PR tree-optimization/82493
11166         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
11167         (test_range_functions): New function.
11168         (sbitmap_c_tests): Likewise.
11169         * selftest-run-tests.c (selftest::run_tests): Run new tests.
11170         * selftest.h (sbitmap_c_tests): New function.
11171
11172         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11173
11174 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11175
11176         * config/rs6000/amo.h: Fix spacing issue.
11177
11178 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11179
11180         PR target/82498
11181         * config/i386/i386.md (*ashl<mode>3_mask_1,
11182         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
11183         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
11184         patterns.
11185
11186 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11187
11188         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
11189         (profile_probability): Set max_probability
11190         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
11191         in temporaries.
11192         * profile-count.c (profile_probability::differs_from_p): Do not
11193         rely on max_probaiblity == 10000
11194
11195 2017-10-12  Jeff Law  <law@redhat.com>
11196
11197         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
11198         negative offsets.
11199
11200 2017-10-12  Martin Sebor  <msebor@redhat.com>
11201
11202         PR other/82301
11203         PR c/82435
11204         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
11205         (handle_alias_pairs): Call it.
11206         * common.opt (-Wattribute-alias): New option.
11207         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
11208         * doc/invoke.texi (-Wattribute-alias): Document.
11209
11210 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
11211
11212         Revert
11213         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11214         PR sanitizer/82353
11215         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11216         locations.
11217         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11218         (make_hard_regno_born, make_hard_regno_dead): Update
11219         bb_killed_pseudos and bb_gen_pseudos.
11220
11221 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11222
11223         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
11224
11225 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
11226
11227         * config/alpha/alpha.c (alpha_split_conditional_move):
11228         Use std::swap instead of manually swapping.
11229         (alpha_stdarg_optimize_hook): Ditto.
11230         (alpha_canonicalize_comparison): Ditto.
11231
11232 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11233
11234         * tree-loop-distribution.c (struct builtin_info): New struct.
11235         (struct partition): Refactor fields into struct builtin_info.
11236         (partition_free): Free struct builtin_info.
11237         (build_size_arg_loc, build_addr_arg_loc): Delete.
11238         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
11239         information from struct builtin_info.
11240         (find_single_drs): New function refactored from classify_partition.
11241         Also moved builtin validity checks to this function.
11242         (compute_access_range, alloc_builtin): New functions.
11243         (classify_builtin_st, classify_builtin_ldst): New functions.
11244         (classify_partition): Refactor code into functions find_single_drs,
11245         classify_builtin_st and classify_builtin_ldst.
11246         (distribute_loop): Don't do runtime alias check when distributing
11247         loop nest.
11248         (find_seed_stmts_for_distribution): New function.
11249         (pass_loop_distribution::execute): Refactor code finding seed
11250         stmts into above function.  Support distribution for the innermost
11251         two-level loop nest.  Adjust dump information.
11252
11253 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11254
11255         * tree-loop-distribution.c: Adjust the general comment.
11256         (NUM_PARTITION_THRESHOLD): New macro.
11257         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
11258         (classify_partition): Skip builtin pattern of loop nest's inner loop.
11259         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
11260         in call to build_partition_graph.
11261         (finalize_partitions): New parameter.  Make loop distribution more
11262         conservative by fusing more partitions.
11263         (distribute_loop): Don't do runtime alias check in case of loop nest
11264         distribution.
11265         (find_seed_stmts_for_distribution): New function.
11266         (prepare_perfect_loop_nest): New function.
11267         (pass_loop_distribution::execute): Refactor code finding seed stmts
11268         and loop nest into above functions.  Support loop nest distribution.
11269         Adjust dump information accordingly.
11270
11271 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11272
11273         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
11274         and set PTYPE_SEQUENTIAL for merged partition.
11275
11276 2017-10-12  Richard Biener  <rguenther@suse.de>
11277
11278         PR tree-optimization/69728
11279         Revert
11280         2017-09-19  Richard Biener  <rguenther@suse.de>
11281
11282         PR tree-optimization/69728
11283         * graphite-sese-to-poly.c (schedule_error): New global.
11284         (add_loop_schedule): Handle empty domain by failing the
11285         schedule.
11286         (build_original_schedule): Handle schedule_error.
11287
11288         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
11289         domain by returning an unchanged schedule.
11290
11291 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11292
11293         * genrecog.c (validate_pattern): For VEC_SELECT verify that
11294         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
11295
11296 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
11297
11298         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
11299         Handle params.def.
11300
11301 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11302
11303         PR c++/82159
11304         * expr.c (store_field): Don't optimize away bitsize == 0 store
11305         from CALL_EXPR with addressable return type.
11306
11307 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11308
11309         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
11310         * config/rs6000/rs6000.md (sel): Delete mode attribute.
11311         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
11312         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
11313         TARGET_ISEL instead of TARGET_ISEL<sel>.
11314
11315 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
11316
11317         * config/rs6000/rs6000.c
11318         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
11319
11320 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11321
11322         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
11323         Move up in file.
11324         (reg_or_cint_operand): Fix comment.
11325         (reg_or_zero_operand): New predicate.
11326         * config/rs6000/rs6000-protos.h (output_isel): Delete.
11327         * config/rs6000/rs6000.c (output_isel): Delete.
11328         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
11329         instead of reg_or_cint_operand.  Output instruction directly (not via
11330         output_isel).
11331         (isel_unsigned_<mode>): Ditto.
11332         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
11333         gpc_reg_operand.  Add an instruction alternative for this.  Output
11334         instruction directly.
11335         (*isel_reversed_unsigned_<mode>): Ditto.
11336
11337 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11338
11339         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
11340         (TARGET_CANONICALIZE_COMPARISON): Define.
11341
11342 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
11343
11344         PR target/81422
11345         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11346         Check whether the dest is REG before adding REG_EQUIV note.
11347
11348 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11349
11350         PR sanitizer/82353
11351         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11352         locations.
11353         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11354         (make_hard_regno_born, make_hard_regno_dead): Update
11355         bb_killed_pseudos and bb_gen_pseudos.
11356
11357 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11358
11359         * incpath.h (enum incpath_kind): Name enum, prefix values.
11360         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
11361         * incpath.c (heads, tails): Use INC_MAX.
11362         (add_env_var_paths, add_standard_paths): Use incpath_kind.
11363         (merge_include_chains, split_quote_chain,
11364         register_include_chains): Update incpath_kind names.
11365         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
11366         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
11367         names.
11368         (add_framework_path, darwin_register_objc_includes): Likewise.
11369         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
11370
11371 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11372
11373         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
11374         Do not use float_operator operator predicate.
11375         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
11376         * config/i386/predicates.md (float_operator): Remove predicate.
11377
11378 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11379
11380         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
11381         (*jccxf_i387): Ditto.
11382         (*jcc<mode>_i387): Ditto.
11383         (*jccu<mode>_i387): Ditto.
11384         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
11385         (*jcc_*_i387 splitters): Remove.
11386         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
11387         * config/i386/i386.c (ix86_split_fp_branch): Remove.
11388         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
11389         Remove predicate.
11390
11391 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
11392
11393         * profile-count.h (slow_safe_scale_64bit): New function.
11394         (safe_scale_64bit): New inline.
11395         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
11396         * profile-count.c: Include wide-int.h
11397         (slow_safe_scale_64bit): New.
11398
11399 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11400
11401         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
11402         HAS_DECL_ASSEMBLER_NAME_P.
11403         * gimple-expr.c (gimple_decl_printable_name: Check
11404         HAS_DECL_ASSEMBLER_NAME_P too.
11405         * ipa-utils.h (type_in_anonymous_namespace_p): Check
11406         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
11407         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
11408         * passes.c (rest_of_decl_compilation): Check
11409         HAS_DECL_ASSEMBLER_NAME_P too.
11410         * recog.c (verify_changes): Likewise.
11411         * tree-pretty-print.c (dump_decl_name): Likewise.
11412         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
11413
11414         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
11415         (SET_DECL_ASSEMBLER_NAME): Use it.
11416         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
11417         (COPY_DECL_ASSEMBLER_NAME): Likewise.
11418         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
11419
11420 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
11421
11422         * config.gcc (i386, x86_64): Add extra objects.
11423         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
11424         (ix86_min_insn_size): Declare.
11425         (ix86_issue_rate): Declare.
11426         (ix86_adjust_cost): Declare.
11427         (ia32_multipass_dfa_lookahead): Declare.
11428         (ix86_macro_fusion_p): Declare.
11429         (ix86_macro_fusion_pair_p): Declare.
11430         (ix86_bd_has_dispatch): Declare.
11431         (ix86_bd_do_dispatch): Declare.
11432         (ix86_core2i7_init_hooks): Declare.
11433         (ix86_atom_sched_reorder): Declare.
11434         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
11435         (COSTS_N_BYTES): Move to x86-tune-costs.h.
11436         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
11437         (rip_relative_addr_p): Rename to ...
11438         (ix86_rip_relative_addr_p): ... this one; export.
11439         (memory_address_length): Update.
11440         (ix86_issue_rate): Move to x86-tune-sched.c.
11441         (ix86_flags_dependent): Move to x86-tune-sched.c.
11442         (ix86_agi_dependent): Move to x86-tune-sched.c.
11443         (exact_dependency_1): Move to x86-tune-sched.c.
11444         (exact_store_load_dependency): Move to x86-tune-sched.c.
11445         (ix86_adjust_cost): Move to x86-tune-sched.c.
11446         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
11447         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
11448         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
11449         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
11450         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
11451         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
11452         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
11453         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
11454         (min_insn_size): Rename to ...
11455         (ix86_min_insn_size): ... this one; export.
11456         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
11457         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
11458         (core2i7_first_cycle_multipass_backtrack): Move to
11459         x86-tune-sched-core.c.
11460         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
11461         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
11462         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
11463         (ix86_avoid_jump_mispredicts): Update.
11464         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
11465         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
11466         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
11467         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
11468         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
11469         (MAX_INSN): Move to ix86-tune-sched-bd.c.
11470         (MAX_IMM): Move to ix86-tune-sched-bd.c.
11471         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
11472         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
11473         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
11474         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
11475         (MAX_STORE): Move to ix86-tune-sched-bd.c.
11476         (BIG): Move to ix86-tune-sched-bd.c.
11477         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
11478         (enum insn_path): Move to ix86-tune-sched-bd.c.
11479         (get_mem_group): Move to ix86-tune-sched-bd.c.
11480         (is_cmp): Move to ix86-tune-sched-bd.c.
11481         (dispatch_violation): Move to ix86-tune-sched-bd.c.
11482         (is_branch): Move to ix86-tune-sched-bd.c.
11483         (is_prefetch): Move to ix86-tune-sched-bd.c.
11484         (init_window): Move to ix86-tune-sched-bd.c.
11485         (allocate_window): Move to ix86-tune-sched-bd.c.
11486         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
11487         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
11488         (process_end_window): Move to ix86-tune-sched-bd.c.
11489         (allocate_next_window): Move to ix86-tune-sched-bd.c.
11490         (find_constant): Move to ix86-tune-sched-bd.c.
11491         (get_num_immediates): Move to ix86-tune-sched-bd.c.
11492         (has_immediate): Move to ix86-tune-sched-bd.c.
11493         (get_insn_path): Move to ix86-tune-sched-bd.c.
11494         (get_insn_group): Move to ix86-tune-sched-bd.c.
11495         (count_num_restricted): Move to ix86-tune-sched-bd.c.
11496         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
11497         (add_insn_window): Move to ix86-tune-sched-bd.c.
11498         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
11499         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
11500         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
11501         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
11502         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
11503         (do_dispatch): Move to ix86-tune-sched-bd.c.
11504         (has_dispatch): Move to ix86-tune-sched-bd.c.
11505         * config/i386/t-i386: Add new object files.
11506         * config/i386/x86-tune-costs.h: New file.
11507         * config/i386/x86-tune-sched-atom.c: New file.
11508         * config/i386/x86-tune-sched-bd.c: New file.
11509         * config/i386/x86-tune-sched-core.c: New file.
11510         * config/i386/x86-tune-sched.c: New file.
11511
11512 2017-10-11  Liu Hao  <lh_mouse@126.com>
11513
11514         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
11515         the generic version below instead.
11516         (should_colorize): Recognize Windows consoles as terminals
11517         for MinGW targets.
11518         * pretty-print.c [__MINGW32__] (write_all): New function.
11519         [__MINGW32__] (find_esc_head): Likewise.
11520         [__MINGW32__] (find_esc_terminator): Likewise.
11521         [__MINGW32__] (eat_esc_sequence): Likewise.
11522         [__MINGW32__] (mingw_ansi_fputs): New function that handles
11523         ANSI escape codes.
11524         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
11525         for MinGW targets.
11526
11527 2017-10-11  Richard Biener  <rguenther@suse.de>
11528
11529         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
11530         Properly call analyze_scalar_evolution with the loop of the stmt.
11531
11532 2017-10-11  Richard Biener  <rguenther@suse.de>
11533
11534         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
11535         * tree-core.h (tree_base): Add chrec_var union member.
11536         * tree.h (CHREC_VAR): Remove.
11537         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
11538         * tree-chrec.h (build_polynomial_chrec): Adjust.
11539         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
11540         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
11541
11542 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
11543
11544         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
11545         * match.pd: ... here.
11546         ((T) X == (T) Y): Relax condition.
11547
11548 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
11549
11550         PR tree-optimization/82472
11551         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
11552         comment.
11553         (break_alias_scc_partitions): Update postorder number.
11554
11555 2017-10-11  Martin Liska  <mliska@suse.cz>
11556
11557         PR sanitizer/82490
11558         * opts.c (parse_no_sanitize_attribute): Do not use error_value
11559         variable.
11560         * opts.h (parse_no_sanitize_attribute): Remove last argument.
11561
11562 2017-10-11  Martin Liska  <mliska@suse.cz>
11563
11564         * print-rtl.c (print_insn): Move declaration of idbuf
11565         to same scope as name.
11566
11567 2017-10-11  Martin Liska  <mliska@suse.cz>
11568
11569         Revert r253637:
11570
11571         PR sanitizer/82484
11572         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
11573         volatile arguments.
11574
11575 2017-10-11  Martin Liska  <mliska@suse.cz>
11576
11577         PR sanitizer/82484
11578         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
11579         volatile arguments.
11580
11581 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
11582
11583         * config.gcc (default_gnu_indirect_function): Default to yes for
11584         arm*-*-linux* with glibc.
11585
11586 2017-10-11  Richard Biener  <rguenther@suse.de>
11587
11588         * tree-scalar-evolution.c (get_scalar_evolution): Handle
11589         default-defs and types we do not want to analyze.
11590         (interpret_loop_phi): Replace unreachable code with an assert.
11591         (compute_scalar_evolution_in_loop): Remove and inline ...
11592         (analyze_scalar_evolution_1): ... here, replacing condition with
11593         what makes the intent clearer.  Remove handling of cases
11594         get_scalar_evolution now handles.
11595
11596 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
11597
11598         PR rtl-optimization/81434
11599         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
11600         comment for main loop.  In sched_group_found if, also add checks for
11601         pass and min_cost_group.
11602
11603 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
11604
11605         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
11606         (rs6000_insn_cost): New function.
11607         * config/rs6000/rs6000.md (cost): New attribute.
11608
11609 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
11610             H.J. Lu  <hongjiu.lu@intel.com>
11611
11612         PR target/79565
11613         PR target/82483
11614         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
11615         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
11616         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
11617         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
11618         to OPTION_MASK_ISA_AVX512VL - builtins that have both
11619         OPTION_MASK_ISA_MMX and some other bit set require both
11620         mmx and the ISAs without the mmx bit.
11621         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
11622         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
11623         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
11624         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
11625         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
11626         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
11627         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
11628         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
11629         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
11630         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
11631         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
11632         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
11633         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
11634         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
11635         Add OPTION_MASK_ISA_MMX.
11636
11637 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
11638
11639         * config.gcc (armv7*-*-freebsd*): New target.
11640         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
11641
11642 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
11643
11644         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
11645         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
11646         spot in the file.
11647
11648 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
11649
11650         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
11651         a template parameter.
11652         (WIDE_INT_REF_FOR): Update accordingly.
11653         * tree.h (wi::int_traits <const_tree>): Delete.
11654         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
11655         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
11656         (wi::tree_to_wide_ref): New typedef.
11657         (wi::to_wide): New function.
11658         * calls.c (get_size_range): Use wi::to_wide when operating on
11659         trees as wide_ints.
11660         * cgraph.c (cgraph_node::create_thunk): Likewise.
11661         * config/i386/i386.c (ix86_data_alignment): Likewise.
11662         (ix86_local_alignment): Likewise.
11663         * dbxout.c (stabstr_O): Likewise.
11664         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
11665         * expr.c (const_vector_from_tree): Likewise.
11666         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
11667         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
11668         (fold_negate_expr_1, int_const_binop_1, const_binop)
11669         (fold_convert_const_int_from_real, optimize_bit_field_compare)
11670         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
11671         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
11672         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
11673         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
11674         (fold_not_const, round_up_loc): Likewise.
11675         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
11676         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
11677         (alloca_call_type): Likewise.
11678         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
11679         * godump.c (go_output_typedef): Likewise.
11680         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
11681         * internal-fn.c (get_min_precision): Likewise.
11682         * ipa-cp.c (ipcp_store_vr_results): Likewise.
11683         * ipa-polymorphic-call.c
11684         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
11685         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
11686         (ipa_modify_call_arguments): Likewise.
11687         * match.pd: Likewise.
11688         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
11689         * print-tree.c (print_node_brief, print_node): Likewise.
11690         * stmt.c (expand_case): Likewise.
11691         * stor-layout.c (layout_type): Likewise.
11692         * tree-affine.c (tree_to_aff_combination): Likewise.
11693         * tree-cfg.c (group_case_labels_stmt): Likewise.
11694         * tree-data-ref.c (dr_analyze_indices): Likewise.
11695         (prune_runtime_alias_test_list): Likewise.
11696         * tree-dump.c (dequeue_and_dump): Likewise.
11697         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
11698         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
11699         * tree-pretty-print.c (dump_generic_node): Likewise.
11700         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
11701         (simple_iv_with_niters): Likewise.
11702         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11703         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
11704         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
11705         * tree-ssa-loop-niter.c (split_to_var_and_offset)
11706         (refine_value_range_using_guard, number_of_iterations_ne_max)
11707         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
11708         (get_cst_init_from_scev, record_nonwrapping_iv)
11709         (scev_var_range_cant_overflow): Likewise.
11710         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
11711         * tree-ssa-pre.c (compute_avail): Likewise.
11712         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
11713         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
11714         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
11715         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
11716         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
11717         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
11718         (dump_case_nodes, try_switch_expansion): Likewise.
11719         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
11720         (vect_do_peeling): Likewise.
11721         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
11722         * tree-vect-stmts.c (vectorizable_load): Likewise.
11723         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
11724         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
11725         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
11726         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
11727         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
11728         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
11729         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
11730         (evrp_dom_walker::before_dom_children): Likewise.
11731         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
11732         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
11733         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
11734         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
11735         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
11736         (get_range_pos_neg): Likewise.
11737         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
11738         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
11739         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
11740         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
11741         * config/avr/avr.c (avr_fold_builtin): Likewise.
11742         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
11743         * config/msp430/msp430.c (msp430_attr): Likewise.
11744         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
11745         * config/powerpcspe/powerpcspe-c.c
11746         (altivec_resolve_overloaded_builtin): Likewise.
11747         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
11748         (rs6000_expand_ternop_builtin): Likewise.
11749         * config/rs6000/rs6000-c.c
11750         (altivec_resolve_overloaded_builtin): Likewise.
11751         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
11752         (rs6000_expand_ternop_builtin): Likewise.
11753         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
11754
11755 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11756
11757         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
11758         when copying loop nest with only one inner loop.
11759
11760 2017-10-10  Richard Biener  <rguenther@suse.de>
11761
11762         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
11763         blocks if SCEV is active.
11764         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
11765         dead code.
11766         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
11767         (scev_initialize): Assert we are not yet initialized.
11768
11769 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11770
11771         * tree-loop-distribution.c (generate_loops_for_partition): Remove
11772         inner loop's exit stmt by making it always exit the loop, otherwise
11773         we would generate an infinite empty loop.
11774
11775 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11776
11777         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
11778         renaming variables in new preheader if it's deleted.
11779
11780 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11781
11782         * tree-loop-distribution.c (struct partition): Remove unused field
11783         loops of the structure.
11784         (partition_alloc, partition_free): Ditto.
11785         (build_rdg_partition_for_vertex): Ditto.
11786
11787 2017-10-09  Jeff Law  <law@redhat.com>
11788
11789         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
11790         return type to match prototype and documentation.
11791
11792 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11793
11794         * config/rs6000/rs6000.c (processor_costs): Move to ...
11795         * config/rs6000/rs6000.h: ... here.
11796         (rs6000_cost): Declare.
11797
11798 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
11799
11800         * except.c (setjmp_fn): New global variable.
11801         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
11802         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
11803         if DONT_USE_BUILTIN_SETJMP is defined.
11804
11805 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11806
11807         * target.def (insn_cost): New hook.
11808         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
11809         * doc/tm.texi: Regenerate.
11810         * rtlanal.c (insn_cost): Use the new hook.
11811
11812 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11813
11814         * combine.c (combine_validate_cost): Compute the new insn_cost,
11815         not just pattern_cost.
11816         (try_combine): Adjust comment.
11817
11818 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11819
11820         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
11821         insn_cost.
11822         * combine.c (uid_insn_cost): Adjust comment.
11823         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
11824         of insn_rtx_cost
11825         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
11826         * dse.c (find_shift_sequence): Ditto.
11827         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
11828         (bb_valid_for_noce_process_p): Use pattern_cost.
11829         * rtl.h (insn_rtx_cost): Delete.
11830         (pattern_cost): New prototype.
11831         (insn_cost): New prototype.
11832         * rtlanal.c (insn_rtx_cost): Rename to...
11833         (pattern_cost): ... this.
11834         (insn_cost): New.
11835
11836 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
11837
11838         * config/i386/i386.md (*jcc_2): Remove insn pattern.
11839         (*jcc<mode>_0_r_i387): Ditto.
11840         (*jccxf_r_i387): Ditto.
11841         (*jcc<mode>_r_i387): Ditto.
11842         (*jccu<mode>_r_i387): Ditto.
11843         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
11844         (*jcc): Rename from *jcc_1.
11845
11846 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11847
11848         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
11849         deferred rescans after the lvx/stvx recombination pre-pass.
11850
11851 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
11852
11853         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
11854         memory operation instruction support.
11855         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
11856         (rs6000-ibm-aix[789]*): Likewise.
11857         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
11858         Document new functions.
11859
11860 2017-10-09  Richard Biener  <rguenther@suse.de>
11861
11862         PR tree-optimization/82397
11863         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
11864         equality only for semantically equal trees.
11865
11866 2017-10-09  Richard Biener  <rguenther@suse.de>
11867
11868         PR tree-optimization/82449
11869         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
11870         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
11871         allow constant addresses.
11872         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
11873         are linear.
11874
11875 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11876
11877         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
11878         flags.
11879
11880 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11881
11882         PR target/82463
11883         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
11884         definitions.
11885
11886 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11887
11888         PR target/82465
11889         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
11890
11891 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
11892
11893         PR target/82464
11894         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
11895         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
11896
11897 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
11898
11899         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
11900         (WI_BINARY_PREDICATE_RESULT): Likewise.
11901         (wi::binary_traits::operator_result): New type.
11902         (wi::binary_traits::predicate_result): Likewise.
11903         (generic_wide_int::operator~, unary generic_wide_int::operator-)
11904         (generic_wide_int::operator==, generic_wide_int::operator!=)
11905         (generic_wide_int::operator&, generic_wide_int::and_not)
11906         (generic_wide_int::operator|, generic_wide_int::or_not)
11907         (generic_wide_int::operator^, generic_wide_int::operator+
11908         (binary generic_wide_int::operator-, generic_wide_int::operator*):
11909         Delete.
11910         (operator~, unary operator-, operator==, operator!=, operator&)
11911         (operator|, operator^, operator+, binary operator-, operator*): New
11912         functions.
11913         * expr.c (get_inner_reference): Use wi::bit_and_not.
11914         * fold-const.c (fold_binary_loc): Likewise.
11915         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
11916         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11917         (bit_value_binop): Likewise.
11918         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
11919         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
11920         (extract_range_from_binary_expr_1): Likewise.
11921         (masked_increment): Likewise.
11922         (simplify_bit_ops_using_ranges): Likewise.
11923
11924 2017-10-09  Martin Jambor  <mjambor@suse.cz>
11925
11926         PR hsa/82416
11927         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
11928         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
11929         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
11930         COMPLEX types.
11931         (hsa_fixup_mov_insn_type): New function.
11932         (hsa_op_with_type::get_in_type): Use it.
11933         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
11934         immediates in an assert.
11935         (hsa_op_with_type::extend_int_to_32bit): New method.
11936         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
11937         types.  Convert to dest type if necessary.
11938         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
11939         (reg_for_gimple_ssa): Pass false as min32int to
11940         hsa_type_for_scalar_tree_type.
11941         (gen_hsa_addr): Fixup type when creating addresable temporary.
11942         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
11943         (gen_hsa_unary_operation): Extend operands and convert to dest type if
11944         necessary.  Call hsa_fixup_mov_insn_type.
11945         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
11946         extend operands and convert to dest type if necessary.
11947         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
11948         to dest type if necessary.
11949         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
11950         if conversion nt necessary and size matches.
11951         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
11952         to dest type if necessary.
11953         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
11954         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
11955         necessary.
11956         (gen_hsa_clrsb): Likewise.
11957         (gen_hsa_ffs): Likewise.
11958         (gen_hsa_divmod): Extend operands and convert to dest type if
11959         necessary.
11960         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
11961
11962 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
11963
11964         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
11965         Remove empty default arguments.  Use a brace block as output
11966         statement.
11967         (conditional return): Ditto.
11968         (jump): Ditto.
11969         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
11970         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
11971         Ditto.
11972         (group_ending_nop): Ditto.
11973         (doloop_end): Ditto.
11974         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
11975         (splitters for those): Ditto.
11976
11977 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
11978
11979         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
11980         a conditional jump (and the compare for it) so that pc_rtx is the
11981         last operand.
11982         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
11983         for the deleted and renamed ctr<mode>_internal[234] patterns.
11984         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
11985         Delete second conditional return pattern.
11986         (ctr<mode>_internal2): Delete this second bdnz pattern.
11987         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
11988         (ctr<mode>_internal4): Delete this second bdz pattern.
11989
11990 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
11991
11992         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
11993         (always_initialized_rtx_for_ssa_name_p): New predicate.
11994         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
11995         (finish_out_of_ssa): Free new field of SA.
11996         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
11997         * tree-ssa-coalesce.c: Include tree-ssa.h.
11998         (get_parm_default_def_partitions): Remove extern keyword.
11999         (get_undefined_value_partitions): New function.
12000         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
12001         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
12002         uninitialized bits.
12003         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
12004
12005 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12006
12007         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
12008
12009 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12010
12011         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
12012         for targets that preffer 128bit.
12013
12014 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12015
12016         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
12017
12018 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12019
12020         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
12021         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
12022         prevent DSE.
12023         (thumb_set_return_address): Likewise.
12024
12025 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12026
12027         * common/config/arm/arm-common.c (arm_except_unwind_info):
12028         Handle DWARF2_UNWIND_INFO.
12029
12030 2017-10-07  Michael Collison <michael.collison@arm.com>
12031
12032         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
12033         New pattern.
12034
12035 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
12036
12037         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
12038         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
12039         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
12040         defined, force the creation of a new block for a dispatch label.
12041
12042 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
12043
12044         * invoke.texi (Wsuggest-attribute=cold): Document.
12045         * common.opt (Wsuggest-attribute=cold): New
12046         * ipa-pure-const.c (warn_function_cold): New function.
12047         * predict.c (compute_function_frequency): Use it.
12048         * predict.h (warn_function_cold): Declare.
12049
12050 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
12051
12052         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
12053         Update profile.
12054
12055 2017-10-06  Martin Liska  <mliska@suse.cz>
12056
12057         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
12058         keyword for member functions.
12059         (struct sanopt_tree_couple): New struct.
12060         (struct sanopt_tree_couple_hash): New function.
12061         (struct sanopt_ctx): Add new hash_map.
12062         (has_dominating_ubsan_ptr_check): New function.
12063         (record_ubsan_ptr_check_stmt): Likewise.
12064         (maybe_optimize_ubsan_ptr_ifn): Likewise.
12065         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
12066         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
12067
12068 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
12069
12070         PR target/82440
12071         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
12072         aarch64_simd_valid_immediate on CONST_VECTORs.
12073         (aarch64_reg_or_bic_imm): Likewise.
12074
12075 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
12076
12077         PR rtl-optimization/82396
12078         * haifa-sched.c (ready_sort_real): Disable qsort checking.
12079
12080 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
12081
12082         * graphite-dependences.c (scop_get_reads): Move code to...
12083         (scop_get_must_writes): Move code to...
12084         (scop_get_may_writes): Move code to...
12085         (scop_get_reads_and_writes): ... here.
12086         (scop_get_dependences): Call scop_get_reads_and_writes.
12087
12088 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
12089
12090         PR tree-optimization/82434
12091         * fold-const.h (can_native_encode_type_p,
12092         can_native_encode_string_p): Remove.
12093         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
12094         don't encode anything, just return what would be otherwise returned.
12095         (native_encode_fixed, native_encode_complex, native_encode_vector):
12096         Likewise.
12097         (native_encode_string): Likewise.  Inline by hand
12098         can_native_encode_string_p.
12099         (can_native_encode_type_p): Remove.
12100         (can_native_encode_string_p): Remove.
12101         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
12102         STRING_CSTs using can_native_encode_string_p, test all
12103         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
12104         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
12105         argument from native_encode_expr.
12106         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
12107         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
12108         but just 2.
12109
12110 2017-10-06  Richard Biener  <rguenther@suse.de>
12111
12112         PR tree-optimization/82397
12113         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
12114         operand_equal_p but rely on data_ref_compare_tree for detecting
12115         equalities.
12116         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
12117         to match up with dr_group_sort_cmp.
12118
12119 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12120
12121         PR target/82322
12122         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
12123         builtin.
12124         * config/s390/s390-builtin-types.def: Regenerate.
12125
12126 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12127
12128         PR target/82317
12129         * config/s390/s390-builtin-types.def: Regenerate.
12130         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
12131         Change flag from B_VXE to B_VX.
12132         (s390_vec_min_dbl): Remove B_VXE flag.
12133
12134 2017-10-06  Richard Biener  <rguenther@suse.de>
12135
12136         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
12137         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
12138         translate_isl_ast_to_gimple::is_valid_rename,
12139         translate_isl_ast_to_gimple::get_rename,
12140         translate_isl_ast_to_gimple::get_def_bb_for_const,
12141         translate_isl_ast_to_gimple::get_new_name,
12142         translate_isl_ast_to_gimple::collect_all_ssa_names,
12143         translate_isl_ast_to_gimple::copy_loop_phi_args,
12144         translate_isl_ast_to_gimple::collect_all_ssa_names,
12145         translate_isl_ast_to_gimple::copy_loop_phi_args,
12146         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
12147         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
12148         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
12149         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
12150         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
12151         translate_isl_ast_to_gimple::copy_cond_phi_args,
12152         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
12153         translate_isl_ast_to_gimple::edge_for_new_close_phis,
12154         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
12155         translate_isl_ast_to_gimple::rename_uses,
12156         translate_isl_ast_to_gimple::rename_all_uses): Remove.
12157         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
12158         (set_rename_for_each_def): Likewise.
12159         (graphite_copy_stmts_from_block): Handle debug stmt resetting
12160         here.  Handle rewriting SCEV analyzable uses here.
12161         (copy_bb_and_scalar_dependences): Generate code for PHI
12162         copy-in/outs.
12163         (graphite_regenerate_ast_isl): Adjust.
12164         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
12165         (add_write, add_read): New functions.
12166         (build_cross_bb_scalars_def): Use it and simplify.
12167         (build_cross_bb_scalars_use): Likewise.
12168         (graphite_find_cross_bb_scalar_vars): Inline into...
12169         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
12170         simulating out-of-SSA.  Compute liveout and add dependencies.
12171         (build_scops): Force an empty entry block.
12172         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
12173         members.
12174         (sese_build_liveouts): Declare.
12175         (sese_trivially_empty_bb_p): Likewise.
12176         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
12177         compute liveout and debug_liveout.
12178         (sese_bad_liveouts_use): Remove.
12179         (sese_reset_debug_liveouts_bb): Likewise.
12180         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
12181         (sese_build_liveouts): Build liveout and debug_liveout and store
12182         it in region.
12183         (new_sese_info): Adjust.
12184         (free_sese_info): Likewise.
12185         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
12186         do not build liveout here.
12187         (move_sese_in_condition): Adjust region entry.
12188         (scev_analyzable_p): Match up with chrec_apply requirements.
12189         (sese_trivially_empty_bb_p): New.
12190         * tree-into-ssa.c (get_reaching_def): Properly support generating
12191         default-defs for incremental rewrite of anonymous names.
12192
12193 2017-10-06  Richard Biener  <rguenther@suse.de>
12194
12195         * graphite-sese-to-poly.c (extract_affine): For casts increasing
12196         precision do not perform modulo reduction.
12197
12198 2017-10-06  Richard Biener  <rguenther@suse.de>
12199
12200         PR tree-optimization/82436
12201         * tree-vect-slp.c (vect_supported_load_permutation_p): More
12202         conservatively choose the vectorization factor when checking
12203         whether we can perform the required load permutation.
12204         (vect_transform_slp_perm_load): Assert when we may not fail.
12205
12206 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
12207
12208         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
12209         message for incompatible -msdata=* and -mcall-* options.
12210
12211 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12212
12213         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
12214         rate for post-reload scheduling.
12215
12216 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12217
12218         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
12219
12220 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12221
12222         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
12223         to improve monte carlo in scimark.
12224
12225 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12226
12227         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
12228         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
12229         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
12230         pentium4_cost, nocona_cost): Set reassociation width to 1.
12231         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
12232         width to 2 for fp operations and 1 otherwise.
12233         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
12234         for int and fp.
12235         (atom_cost): Set reassociation width to 2.
12236         (slm_cost, generic_cost): Set fp reassociation width
12237         to 2 and 1 otherwise.
12238         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
12239         (core_cost): Set fp reassociation width to 4 and vector to 2.
12240         (ix86_reassociation_width): Rewrite using cost table; special case
12241         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
12242         and TARGET_AVX128_OPTIMAL.
12243         * config/i386/i386.h (processor_costs): Add
12244         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
12245         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
12246         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
12247         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
12248         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
12249         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
12250
12251 2017-10-05  Nathan Sidwell  <nathan@acm.org>
12252
12253         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
12254
12255 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12256
12257         * config/arm/arm.c (arm_test_fpu_data): New.
12258         (arm_run_selftests): Call arm_test_fpu_data.
12259
12260 2017-10-04  Nathan Sidwell  <nathan@acm.org>
12261
12262         * toplev.c (toplev::main): Remove excess parens on pretty_printer
12263         decl.
12264         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
12265
12266 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
12267
12268         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
12269         check type for aarch64_simd_valid_immediate.
12270         (aarch64_output_simd_mov_immediate): Update prototype.
12271         (aarch64_simd_valid_immediate): Update prototype.
12272         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
12273         support for ORR-immediate.
12274         (and<mode>3): modified pattern to add support for BIC-immediate.
12275         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
12276         now checks for valid immediate for BIC and ORR based on new enum
12277         argument.
12278         (aarch64_output_simd_mov_immediate): Function now used to output
12279         BIC/ORR imm as well based on new enum argument.
12280         * config/aarch64/constraints.md (Do): New vector immediate constraint.
12281         (Db) : Likewise.
12282         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
12283         (aarch64_reg_or_bic_imm): Likewise.
12284
12285 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12286
12287         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
12288         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
12289
12290 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12291
12292         Revert r253399:
12293
12294         PR rtl-optimization/82396
12295         * haifa-sched.c (autopref_multipass_init): Simplify
12296         initialization.
12297         (autopref_rank_data): Simplify sort order.
12298         * sched-int.h (autopref_multipass_data_): Remove
12299         multi_mem_insn_p, min_offset and max_offset.
12300
12301 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12302
12303         * doc/sourcebuild.texi: Document vect_peeling_profitable.
12304
12305 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12306
12307         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
12308         vect_doubleint_cvt.
12309
12310 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12311
12312         * doc/sourcebuild.texi: Document vect_long_mult.
12313
12314 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
12315
12316         PR tree-optimization/82413
12317         * fold-const.c (build_range_check): Use widest_int when comparing
12318         the maximum ETYPE value with HIGH.
12319
12320 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12321
12322         PR rtl-optimization/82396
12323         * haifa-sched.c (autopref_multipass_init): Simplify
12324         initialization.
12325         (autopref_rank_data): Simplify sort order.
12326         * sched-int.h (autopref_multipass_data_): Remove
12327         multi_mem_insn_p, min_offset and max_offset.
12328
12329 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
12330
12331         PR tree-optimization/82381
12332         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
12333         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
12334         is not.
12335
12336         PR tree-optimization/82374
12337         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
12338         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
12339         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
12340         current_function_decl to the new decl.
12341
12342 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12343
12344         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
12345         helper macro for IEEE float128 hardware built-in functions.
12346         (SQRTF128_ODD): Add built-in functions with the round-to-odd
12347         semantics.
12348         (TRUNCF128_ODD): Likewise.
12349         (ADDF128_ODD): Likewise.
12350         (SUBF128_ODD): Likewise.
12351         (MULF128_ODD): Likewise.
12352         (DIVF128_ODD): Likewise.
12353         (FMAF128_ODD): Likewise.
12354         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
12355         UNSPEC_TRUNC_ROUND_TO_ODD.
12356         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
12357         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
12358         floating point round to odd instructions.
12359         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
12360         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
12361         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
12362         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
12363         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
12364         (trunc<mode>sf2_hw): Change the truncate with round to odd
12365         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
12366         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
12367         to odd hardware instructions.
12368         (sub<mode>3_odd): Likewise.
12369         (mul<mode>3_odd): Likewise.
12370         (div<mode>3_odd): Likewise.
12371         (sqrt<mode>2_odd): Likewise.
12372         (fma<mode>4_odd): Likewise.
12373         (fms<mode>4_odd): Likewise.
12374         (nfma<mode>4_odd): Likewise.
12375         (nfms<mode>4_odd): Likewise.
12376         (trunc<mode>df2_odd): Change the truncate with round to odd
12377         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
12378         function.
12379         * doc/extend.texi (PowerPC built-in functions): Update documentation
12380         for existing IEEE float128-bit built-in functions.  Add built-in
12381         functions that generate the IEEE 128-bit floating point round to
12382         odd instructions.
12383
12384 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
12385
12386         PR rtl-optimization/77729
12387         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
12388         to (X&(C1&~C2))|C2 transformations.
12389
12390 2017-10-03  Martin Jambor  <mjambor@suse.cz>
12391
12392         PR tree-optimization/82363
12393         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
12394         mismatch, mark lacc written regardless of racc.
12395
12396 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
12397
12398         PR tree-optimization/82381
12399         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
12400         stmt_to_insert nor wheather SSA_NAMEs are default defs.
12401         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
12402         fallthrough into reassoc_stmt_dominates_stmt_p.
12403
12404         PR target/82386
12405         * combine.c (combine_instructions): Don't combine in unreachable
12406         basic blocks.
12407
12408 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
12409
12410         PR target/80210
12411         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
12412         function to not use the have_cpu variable.  Do not set cpu_index,
12413         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
12414         or the default cpu.
12415         (rs6000_valid_attribute_p): Remove duplicate initializations of
12416         old_optimize and func_optimize.
12417         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
12418         (rs6000_activate_target_options): Make global.
12419         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
12420         prototype.
12421
12422 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
12423
12424         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
12425         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
12426         Set *poffset to 0 and *psize and *pmax_size to -1 if
12427         *poffset + *psize overflows in HOST_WIDE_INT.
12428
12429         PR tree-optimization/82387
12430         PR tree-optimization/82388
12431         PR tree-optimization/82389
12432         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
12433         instead of live_bytes non-NULL.
12434
12435 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
12436
12437         PR target/41076
12438         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
12439         alternative.
12440
12441 2017-10-02  Richard Biener  <rguenther@suse.de>
12442
12443         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
12444         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
12445         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
12446
12447 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
12448
12449         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
12450         requested precision matches the type's.
12451         * calls.c (alloc_max_size): Calculate the new candidate size as
12452         a widest_int and use wi::to_widest when comparing it with the
12453         current candidate size.
12454         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
12455         zero rather than integer_zero_node.
12456         * match.pd: Check for a no-op conversion before using wi::add
12457         rather than after.  Use tree_to_uhwi when summing small shift
12458         counts into an unsigned int.
12459
12460 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
12461             Alan Hayward  <alan.hayward@arm.com>
12462             David Sherwood  <david.sherwood@arm.com>
12463
12464         PR target/71307
12465         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
12466         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12467         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
12468         POINTER_AND_FP_REGS.
12469
12470 2017-10-02  Richard Biener  <rguenther@suse.de>
12471
12472         PR tree-optimization/82355
12473         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
12474         a mapping for the enclosing loop but avoid generating one for
12475         the loop tree root.
12476         (copy_bb_and_scalar_dependences): Remove premature codegen
12477         error on PHIs in blocks duplicated into multiple places.
12478         * graphite-scop-detection.c
12479         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
12480         in the region use it as loop and nest to analyze the DR in.
12481         (try_generate_gimple_bb): Likewise.
12482         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
12483         (add_loop_constraints): For blocks in a loop not in the region
12484         create a dimension with a single iteration.
12485         * sese.h (gbb_loop_at_index): Remove assert.
12486
12487 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
12488
12489         * omp-expand.c (adjust_context_scope): New function.
12490         (expand_parallel_call): Call adjust_context_scope.
12491
12492 2017-10-01  Jeff Law  <law@redhat.com>
12493
12494         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
12495         dom_opt_dom_walker class with direct access to private members.
12496         Add comments.  Call test_for_singularity.
12497         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
12498         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
12499         m_dummy_cond anymore.
12500         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
12501         class ctor.
12502         (pass_dominator:execute): Build the dummy_cond here and pass it
12503         to the dom_opt_dom_walker ctor.
12504         (test_for_singularity): New function.
12505
12506 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
12507             Maya Rashish  <coypu@sdf.org>
12508
12509         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
12510         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
12511         (alpha*-*-netbsd*) Use nbsd_tm_file.
12512         (arm*-*-netbsdelf*) Likewise.
12513         (i[34567]86-*-netbsdelf*) Likewise.
12514         (x86_64-*-netbsd*) Likewise.
12515         (mips*-*-netbsd*) Likewise.
12516         (powerpc-*-netbsd*) Likewise.
12517         (sh*-*-netbsd*) Likewise.
12518         (sparc-*-netbsdelf*) Likewise.
12519         (sparc64-*-netbsd*) Likewise.
12520         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
12521         to tm_defines.
12522         (vax-*-netbsdelf*) Likewise.
12523         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
12524         (UINT_FAST8_TYPE) Likewise.
12525         (INT_FAST16_TYPE) Check CHAR_FAST16.
12526         (UINT_FAST16_TYPE) Likewise.
12527
12528 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
12529
12530         PR target/82361
12531         * config/i386/i386.md
12532         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
12533         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
12534         *divmodsi4_zext_2): New define_insn_and_split.
12535         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
12536         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
12537         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
12538         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
12539         New define_insn_and_split.
12540         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
12541         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
12542         operands[1] having DImode when mode is SImode.
12543
12544         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
12545         always SImode for DIV and MOD in REG_EQUAL notes.
12546
12547 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
12548
12549         PR middle-end/82319
12550         * match.pd: Fix handling of NaNs in pattern.
12551
12552 2017-09-29  Jeff Law  <law@redhat.com>
12553
12554         * sbitmap.c (bitmap_bit_in_range_p): New function.
12555         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
12556         * tree-ssa-dse.c (live_bytes_read): New function.
12557         (dse_classify_store): Ignore reads of dead bytes.
12558
12559         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
12560         typos and whitespace errors.
12561         * config/i386/predicates.md (address_no_seg_operand): Likewise.
12562         * config/s390/s390.c (s390_emit_prologue): Likewise.
12563
12564 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
12565
12566         PR target/81481
12567         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
12568         with a symbol for LRA.
12569
12570 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
12571
12572         PR rtl-optimization/82338
12573         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
12574
12575 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
12576
12577         * genmodes.c (calc_wider_mode): Suppress qsort macro.
12578         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
12579         (qsort_chk): Declare.
12580         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
12581         (qsort_chk): New function.
12582
12583 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12584
12585         PR tree-optimization/82337
12586         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
12587         phi definition if the PHI result appears in an abnormal PHI.
12588         (find_basis_for_base_expr): Don't record a basis if the LHS of the
12589         basis appears in an abnormal PHI.
12590
12591 2017-09-29  Richard Biener  <rguenther@suse.de>
12592
12593         * graphite-isl-ast-to-gimple.c
12594         (translate_isl_ast_to_gimple::set_codegen_error): New function.
12595         (binary_op_to_tree): Use it.
12596         (get_rename_from_scev): Likewise.
12597         (copy_loop_phi_nodes): Likewise.
12598         (copy_bb_and_scalar_dependences): Likewise.
12599         (translate_pending_phi_nodes): Likewise.
12600
12601 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
12602
12603         PR target/82339
12604         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
12605         for movabsq $(i32 << shift), r64.
12606
12607 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
12608
12609         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
12610         index when encoding %esp as %rsp to avoid 0x67 prefix.
12611
12612 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
12613
12614         * config/i386/i386.md (*movsf_internal, *movdf_internal):
12615         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
12616
12617 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12618
12619         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
12620         Extensions with more than 16 double VFP registers.
12621         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
12622         to_clear_mask and all code related to it.  Replace the remaining
12623         entry by a sbitmap and adapt code accordingly.
12624
12625 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
12626
12627         * brig-builtins.def: Change pure attributes to const.
12628
12629 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
12630
12631         * config.gcc (default_gnu_indirect_function): Default to yes for
12632         sparc*-*-linux* with glibc.
12633
12634 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
12635
12636         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
12637         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
12638         when creating .init_array and .fini_array sections with priority
12639         specified.
12640
12641 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
12642
12643         PR target/71727
12644         * config/aarch64/aarch64.c
12645         (aarch64_builtin_support_vector_misalignment): Always return false
12646         when misalignment is unknown.
12647
12648 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12649
12650         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
12651         this function to return false if the definition used by the swap
12652         instruction is artificial, or if the memory address from which the
12653         constant value is loaded is not represented by a base address held
12654         in a register or if the base address register is a frame or stack
12655         pointer.  Additionally, return false if the base address of the
12656         loaded constant is a SYMBOL_REF but is not considered to be a
12657         constant.
12658         (replace_swapped_load_constant): New function.
12659         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
12660         loaded constant vector with a load of a swapped constant vector.
12661
12662 2017-09-27  Carl Love  <cel@us.ibm.com>
12663
12664         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
12665         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
12666         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
12667         fctiw instruction.
12668
12669 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
12670
12671         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
12672         first, always call autopref_rank_data otherwise.
12673
12674 2017-09-27  Richard Biener  <rguenther@suse.de>
12675
12676         * graphite-scop-detection.c (find_scop_parameters): Move
12677         loop bound handling ...
12678         (gather_bbs::before_dom_children): ... here, avoiding the need
12679         to build scop_info->loop_nest.
12680         (record_loop_in_sese): Remove.
12681         * sese.h (sese_info_t::loop_nest): Remove.
12682         * sese.c (new_sese_info): Do not allocate loop_nest.
12683         (free_sese_info): Do not free loop_nest.
12684
12685 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
12686
12687         PR c++/82159
12688         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
12689         lhs from calls if the lhs has addressable type.
12690
12691 2017-09-27  Richard Biener  <rguenther@suse.de>
12692
12693         * graphite.h (scop::max_alias_set): New member.
12694         * graphite-scop-detection.c: Remove references to non-existing
12695         --param in comments.
12696         (build_alias_sets): Record the maximum alias set used for drs.
12697         (build_scops): Support zero as unlimited for
12698         --param graphite-max-arrays-per-scop.
12699         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
12700         and inline into ...
12701         (build_poly_sr_1): ... here.  Compute alias set based on the
12702         maximum alias set used for drs rather than
12703         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
12704
12705 2017-09-27  Richard Biener  <rguenther@suse.de>
12706
12707         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
12708         --param loop-block-tile-size=0 to disable tiling.
12709
12710 2017-09-27  Richard Biener  <rguenther@suse.de>
12711
12712         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
12713         (graphite-max-nb-scop-params): Document special value zero.
12714         * domwalk.h (dom_walker::STOP): New symbolical constant.
12715         (dom_walker::dom_walker): Add optional parameter for bb to
12716         RPO mapping.
12717         (dom_walker::~dom_walker): Declare.
12718         (dom_walker::before_dom_children): Document STOP return value.
12719         (dom_walker::m_user_bb_to_rpo): New member.
12720         (dom_walker::m_bb_to_rpo): Likewise.
12721         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
12722         mapping here if not provided by the user.
12723         (dom_walker::~dom_walker): Free bb to RPO mapping if not
12724         provided by the user.
12725         (dom_walker::STOP): Define.
12726         (dom_walker::walk): Do not compute bb to RPO mapping here.
12727         Support STOP return value from before_dom_children to stop
12728         walking.
12729         * graphite-optimize-isl.c (optimize_isl): If the schedule
12730         is the same still generate code if -fgraphite-identity
12731         or -floop-parallelize-all are given.
12732         * graphite-scop-detection.c: Include cfganal.h.
12733         (gather_bbs::gather_bbs): Get and pass through bb to RPO
12734         mapping.
12735         (gather_bbs::before_dom_children): Return STOP for BBs
12736         not in the region.
12737         (build_scops): Compute bb to RPO mapping and pass it to
12738         the domwalk.  Treat --param graphite-max-nb-scop-params=0
12739         as not limiting the number of params.
12740         * graphite.c (graphite_initialize): Remove limit on the
12741         number of basic-blocks in a function.
12742         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
12743         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
12744         default value of 10.
12745
12746 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12747
12748         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
12749         Adjust code to eliminate needing to do the shift right 32-bits
12750         operation after XSCVDPSPN.
12751
12752 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12753
12754         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
12755         ((X / Y) != 0 -> X >= Y): Likewise.
12756
12757 2017-09-26  Carl Love  <cel@us.ibm.com>
12758
12759         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
12760         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
12761         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
12762         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
12763         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
12764         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
12765         definitions and overloading.
12766         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
12767         statement for P9V_BUILTIN_XST_LEN_R.
12768         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
12769         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
12770         define_expand and define_insn for the instructions and builtins.
12771         * doc/extend.texi: Update the built-in documentation file for the new
12772         built-in functions.
12773         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
12774         define_insn for the instructions
12775
12776 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
12777
12778         PR target/39570
12779         * gcc/config/netbsd-protos.h: New file.
12780         * gcc/config/netbsd.c: New file.
12781         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
12782         * gcc/config/t-netbsd: New file.
12783         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
12784         (tmake_file) Add t-netbsd.
12785         (extra_objs) Add netbsd.o.
12786
12787 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
12788
12789         PR fortran/82143
12790         PR fortran/82324
12791         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
12792
12793 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12794
12795         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
12796         sign extension from a vector register to a GPR by doing a 32-bit
12797         direct move and then an EXTSW.
12798         (extendsi<mode>2 splitter): Likewise.
12799         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
12800         right or vector extract after doing XSCVDPSPN.  Use
12801         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
12802         the GPRs.
12803         (movdi_from_sf_zero_ext): Likewise.
12804         (reload_gpr_from_vsxsf): Likewise.
12805         (p8_mfvsrd_4_disf): Delete, no longer used.
12806         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
12807         then needing to move the SFmode to a GPR to use the XSCVDPSP
12808         instruction instead of FRSP and XSCVDPSPN.
12809         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
12810         it is adjacent to the other XSCVSPDP insns.
12811         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
12812         SFmode to be in traditional Altivec registers.
12813         (vsx_xscvdpspn): Eliminate useless alternative constraint.
12814         (vsx_xscvspdpn): Likewise.
12815         (vsx_xscvspdpn_scalar): Likewise.
12816
12817 2017-09-26  Martin Jambor  <mjambor@suse.cz>
12818
12819         * tree-sra.c (compare_access_positions): Put integral types first,
12820         stabilize sorting of integral types, remove conditions putting
12821         non-full-precision integers last.
12822         (sort_and_splice_var_accesses): Disable scalarization if a
12823         non-integert would be represented by a non-full-precision integer.
12824
12825 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
12826
12827         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
12828         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
12829         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
12830         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
12831         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
12832         conditionals inside the function instead of around it.  Call
12833         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
12834         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
12835
12836 2017-09-26  Richard Biener  <rguenther@suse.de>
12837
12838         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
12839         fold in ...
12840         (scop_detection::build_scop_breadth): ... this.  Removed.
12841         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
12842         (scop_detection::harmful_stmt_in_bb): Likewise.
12843         (scop_detection::graphite_can_represent_stmt): Likewise.
12844         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
12845         (scop_detection::can_represent_loop): Remove recursion, fold in ...
12846         (scop_detection::can_represent_loop_1): ... this.  Removed.
12847         (scop_detection::harmful_loop_in_region): Simplify after inlining
12848         the above and remove more quadraticness.
12849         (build_scops): Adjust.
12850         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
12851         quadraticness.
12852
12853 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
12854
12855         PR target/82267
12856         * config/i386/i386.c (ix86_print_operand_address_as): Only test
12857         REGNO (base) == SP_REG if base is a REG.
12858
12859         PR middle-end/35691
12860         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
12861         if it is different SSA_NAME.
12862         (optimize_range_tests_cmp_bitwise): New function.
12863         (optimize_range_tests): Call it.
12864
12865 2017-09-26  Richard Biener  <rguenther@suse.de>
12866
12867         PR tree-optimization/82321
12868         * graphite.c (canonicalize_loop_closed_ssa): Properly check
12869         for the def being inside the loop.
12870
12871 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12872
12873         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
12874         assembler output.
12875         * config/s390/s390-builtins.def: Fix constraint on op4.
12876
12877 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12878
12879         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
12880         independent expanders.
12881         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
12882         ("vec_ordered", "vec_unordered"): New expanders.
12883
12884 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12885
12886         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
12887         for SFmode.
12888
12889 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12890
12891         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
12892         vec_unpacks_lo_v16qi.
12893         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
12894
12895 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12896
12897         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
12898         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
12899         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
12900
12901 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12902
12903         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
12904         predicate.
12905         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
12906         and V16QI.
12907         ("*vec_slb<mode>"): New insn pattern.
12908         ("vec_shr_<mode>"): New expander.
12909         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
12910         and force the shift count operand to V16QImode.
12911         ("vec_srb<mode>"): Set shift count mode to V16QI.
12912
12913 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12914
12915         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
12916         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
12917         ("vec_widen_smult_hi_<mode>"): New expander definitions.
12918
12919 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
12920
12921         PR target/82175
12922         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
12923
12924 2017-09-26  Richard Biener  <rguenther@suse.de>
12925
12926         PR tree-optimization/82320
12927         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
12928         isn't a change.
12929
12930 2017-09-25  Jeff Law  <law@redhat.com>
12931
12932         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
12933         prototype for new argument.
12934         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
12935         mostly extracted from rs6000_emit_allocate_stack.
12936         (rs6000_emit_probe_stack_range_stack_clash): New function.
12937         (rs6000_emit_allocate_stack): Call
12938         rs6000_emit_probe_stack_range_stack_clash as needed.
12939         (rs6000_emit_probe_stack_range): Add additional argument
12940         to call to gen_probe_stack_range{si,di}.
12941         (output_probe_stack_range): New.
12942         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
12943         (output_probe_stack_range_stack_clash): New.
12944         (rs6000_emit_prologue): Emit notes into dump file as requested.
12945         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
12946         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
12947         Add additional operand and pass it to output_probe_stack_range.
12948
12949 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
12950
12951         PR tree-optimization/82163
12952         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
12953         (checking_verify_loop_closed_ssa): New parameter.
12954         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
12955         (check_loop_closed_ssa_stmt): Delete.
12956         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
12957         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
12958         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
12959         changed loops.
12960
12961 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
12962
12963         * brig-builtins.def: Treat HSAIL barrier builtins as
12964         setjmp/longjump style functions.
12965
12966 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
12967
12968         * target.def (constant_alignment): New hook.
12969         * defaults.h (CONSTANT_ALIGNMENT): Delete.
12970         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
12971         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
12972         * doc/tm.texi: Regenerate.
12973         * targhooks.h (default_constant_alignment): Declare.
12974         (constant_alignment_word_strings): Likewise.
12975         * targhooks.c (default_constant_alignment): New function.
12976         (constant_alignment_word_strings): Likewise.
12977         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
12978         instead of CONSTANT_ALIGNMENT.
12979         * varasm.c (align_variable, get_variable_align, build_constant_desc)
12980         (force_const_mem): Likewise.
12981         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
12982         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
12983         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
12984         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12985         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
12986         definition.
12987         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
12988         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12989         constant_alignment_word_strings.
12990         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
12991         (CONSTANT_ALIGNMENT): Likewise.
12992         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12993         (arm_constant_alignment): New function.
12994         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
12995         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12996         constant_alignment_word_strings.
12997         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
12998         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12999         constant_alignment_word_strings.
13000         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
13001         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13002         (cris_constant_alignment): New function.
13003         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
13004         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13005         (epiphany_constant_alignment): New function.
13006         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
13007         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13008         constant_alignment_word_strings.
13009         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
13010         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13011         constant_alignment_word_strings.
13012         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
13013         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13014         constant_alignment_word_strings.
13015         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
13016         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
13017         * config/i386/i386.c (ix86_constant_alignment): Make static.
13018         Use the same interface as the target hook.
13019         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13020         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
13021         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13022         constant_alignment_word_strings.
13023         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
13024         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
13025         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13026         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
13027         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13028         constant_alignment_word_strings.
13029         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
13030         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13031         constant_alignment_word_strings.
13032         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
13033         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13034         constant_alignment_word_strings.
13035         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
13036         * config/microblaze/microblaze.c (microblaze_constant_alignment):
13037         New function.
13038         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13039         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
13040         * config/mips/mips.c (mips_constant_alignment): New function.
13041         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13042         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
13043         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
13044         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13045         (mmix_constant_alignment): Make static.  Use the same interface
13046         as the target hook.
13047         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
13048         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13049         constant_alignment_word_strings.
13050         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
13051         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13052         constant_alignment_word_strings.
13053         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
13054         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13055         constant_alignment_word_strings.
13056         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
13057         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13058         (rs6000_constant_alignment): New function.
13059         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
13060         * config/riscv/riscv.c (riscv_constant_alignment): New function.
13061         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13062         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
13063         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13064         (rs6000_constant_alignment): New function.
13065         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
13066         * config/s390/s390.c (s390_constant_alignment): New function.
13067         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13068         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
13069         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13070         constant_alignment_word_strings.
13071         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
13072         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13073         (sparc_constant_alignment): New function.
13074         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
13075         * config/spu/spu.c (spu_constant_alignment): New function.
13076         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13077         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
13078         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13079         constant_alignment_word_strings.
13080         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
13081         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13082         constant_alignment_word_strings.
13083         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
13084         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13085         constant_alignment_word_strings.
13086         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
13087         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13088         (visium_constant_alignment): New function.
13089         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
13090         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13091         (xtensa_constant_alignment): New function.
13092         * system.h (CONSTANT_ALIGNMENT): Poison.
13093
13094 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
13095
13096         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13097         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
13098         (rs6000_builtin_valid_without_lhs): New helper function.
13099         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13100         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
13101
13102 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13103
13104         * target.h (vec_perm_indices): Use unsigned short rather than
13105         unsigned char.
13106         (auto_vec_perm_indices): Likewise.
13107         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
13108         Use unsigned int rather than unsigned char.
13109         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
13110
13111 2017-09-25  Richard Biener  <rguenther@suse.de>
13112
13113         * cfgloop.h (sort_sibling_loops): Declare.
13114         * cfgloop.c (sort_sibling_loops_cmp): New helper.
13115         (sort_sibling_loops): New function sorting the sibling loop list
13116         in RPO order.
13117         * graphite.c (graphite_transform_loops): Sort sibling loops.
13118
13119 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
13120
13121         * target.def (vec_perm_const_ok): Change sel parameter to
13122         vec_perm_indices.
13123         * optabs-query.c (can_vec_perm_p): Update accordingly.
13124         * doc/tm.texi: Regenerate.
13125         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
13126         auto_vec_perm_indices and remove separate nelt field.
13127         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
13128         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
13129         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
13130         (aarch64_expand_vec_perm_const): Update accordingly.
13131         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
13132         to vec_perm_indices.
13133         * config/arm/arm.c (expand_vec_perm_d): Change perm to
13134         auto_vec_perm_indices and remove separate nelt field.
13135         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
13136         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
13137         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
13138         accordingly.
13139         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
13140         to vec_perm_indices.
13141         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
13142         sel to vec_perm_indices.
13143         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
13144         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
13145         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
13146         Likewise.
13147         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
13148         Likewise.
13149
13150 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
13151
13152         PR debug/82155
13153         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
13154         on the FUNCTION_DECL function context if it has a DIE that is a
13155         declaration.
13156
13157 2017-09-25  Richard Biener  <rguenther@suse.de>
13158
13159         PR tree-optimization/82285
13160         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
13161         enumeral types.
13162
13163 2017-09-25  Tom de Vries  <tom@codesourcery.com>
13164
13165         PR target/80035
13166         PR target/81069
13167         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
13168         noreturn function.
13169
13170 2017-09-25  Richard Biener  <rguenther@suse.de>
13171
13172         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
13173         ISL errors other than isl_error_quota happen.  Dump if the
13174         schedule is the same.
13175         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
13176         errors instead of aborting inside ISL.
13177
13178 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
13179
13180         PR target/80556
13181         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
13182         of libgcc_eh for m64.
13183         * config/i386/darwin64.h: Likewise.
13184
13185 2017-09-25  Richard Biener  <rguenther@suse.de>
13186
13187         PR middle-end/82144
13188         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
13189         attribute for incomplete types nor twice for complete ones.
13190
13191 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
13192
13193         PR target/82267
13194         * config/i386/i386.c (ix86_print_operand_address_as): Encode
13195         %esp as %rsp to avoid 0x67 prefix if there is no index or base
13196         register.
13197
13198 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
13199
13200         PR bootstrap/82306
13201         * config/i386/i386.opt (mprefer-avx256): Use
13202         ix86_target_flags variable.
13203         * config/i386/i386.c (ix86_target_string): Move
13204         -mprefer-avx256 to flag2_opts.
13205
13206 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
13207
13208         PR middle-end/35691
13209         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
13210         and x != -1 | y != -1 into (x & y) != -1.
13211
13212 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
13213
13214         * config.gcc: Add new case statement to set
13215         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
13216         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
13217         s390x-*-linux* case statements.   Added aarch64 to the list of
13218         supported architectures.
13219
13220 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13221
13222         PR tree-optimization/82289
13223         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
13224         STMT_VINFO_RELEVANT_P.
13225
13226 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13227             Alan Hayward  <alan.hayward@arm.com>
13228             David Sherwood  <david.sherwood@arm.com>
13229
13230         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
13231         for VR_RANGE only; don't allow VR_ANTI_RANGE.
13232         (extract_range_from_binary_expr_1): Don't call
13233         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
13234
13235 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13236             Alan Hayward  <alan.hayward@arm.com>
13237             David Sherwood  <david.sherwood@arm.com>
13238
13239         * target.def (preferred_vector_alignment): New hook.
13240         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
13241         hook.
13242         * doc/tm.texi: Regenerate.
13243         * targhooks.h (default_preferred_vector_alignment): Declare.
13244         * targhooks.c (default_preferred_vector_alignment): New function.
13245         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
13246         Expand commentary.
13247         (DR_TARGET_ALIGNMENT): New macro.
13248         (aligned_access_p): Update commentary.
13249         (vect_known_alignment_in_bytes): New function.
13250         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
13251         function.
13252         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
13253         Calculate the misalignment based on the target alignment rather than
13254         the vector size.
13255         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
13256         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
13257         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
13258         the target alignment, rather than masking the element misalignment
13259         with the number of elements in a vector.  Also use the target
13260         alignment when calculating the maximum number of peels.
13261         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
13262         instead of TYPE_ALIGN_UNIT.
13263         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
13264         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
13265         (vect_create_addr_base_for_vector_ref): Update call accordingly.
13266         (vect_create_data_ref_ptr): Likewise.
13267         (vect_setup_realignment): Realign by ANDing with
13268         -DR_TARGET_MISALIGNMENT.
13269         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
13270         the number of peels based on DR_TARGET_ALIGNMENT.
13271         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
13272         with the guaranteed alignment boundary when deciding whether
13273         overrun is OK.
13274         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
13275         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
13276         (ensure_base_align): Remove stmt_info parameter.  Get the
13277         target base alignment from DR_TARGET_ALIGNMENT.
13278         (vectorizable_store): Update call accordingly.   Interpret
13279         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
13280         TYPE_ALIGN_UNIT.
13281         (vectorizable_load): Likewise.
13282
13283 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13284             Alan Hayward  <alan.hayward@arm.com>
13285             David Sherwood  <david.sherwood@arm.com>
13286
13287         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
13288         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
13289         (vect_enhance_data_refs_alignment): Likewise.
13290
13291 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13292
13293         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
13294         error.  Only quit immediately if parsing is complete.
13295         (BEGIN): Initialize fatal_err and parse_done.
13296         (begin fpu, end fpu): Check number of arguments.
13297         (begin arch, end arch): Likewise.
13298         (begin cpu, end cpu): Likewise.
13299         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
13300         (optalias): Likewise.
13301
13302 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13303
13304         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
13305         * config/arm/arm-isa.h: Delete.  Move definitions to ...
13306         * arm-cpus.in: ... here.  Use new feature and fgroup values.
13307         * config/arm/arm.c (arm_option_override): Use lower case for feature
13308         bit names.
13309         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
13310         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
13311         * config/arm/parsecpu.awk (END): Add new command 'isa'.
13312         (isa_pfx): Delete.
13313         (print_isa_bits_for): New function.
13314         (gen_isa): New function.
13315         (gen_comm_data): Use print_isa_bits_for.
13316         (define feature): New keyword.
13317         (define fgroup): New keyword.
13318         * config/arm/t-arm (TM_H): Remove.
13319         (GTM_H): Add arm-isa.h.
13320         (arm-isa.h): Add rule to generate file.
13321         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
13322         case for feature bit names.
13323
13324 2017-09-22  Richard Biener  <rguenther@suse.de>
13325
13326         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
13327         single caller.
13328         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
13329         print of no dependency loops ...
13330         * graphite.c (graphite_transform_loops): ... here.
13331         (canonicalize_loop_closed_ssa_form): Work from inner to outer
13332         loops.
13333         (same_close_phi_node, remove_duplicate_close_phi,
13334         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
13335         (canonicalize_loop_closed_ssa): ... here and simplify.
13336         * graphite-optimize-isl.c: Include tree-vectorizer.h.
13337         (optimize_isl): Use dump_printf_loc to tell when we stopped
13338         optimizing because of an ISL timeout.
13339
13340 2017-09-22  Richard Biener  <rguenther@suse.de>
13341
13342         PR tree-optimization/82291
13343         * tree-if-conv.c (predicate_mem_writes): Make sure to
13344         remove writes in blocks predicated with false.
13345
13346 2017-09-22  Richard Biener  <rguenther@suse.de>
13347
13348         * sese.c: Include cfganal.h.
13349         (if_region_set_false_region): Remove.
13350         (create_if_region_on_edge): Likewise.
13351         (move_sese_in_condition): Re-implement without destroying
13352         dominators.
13353
13354 2017-09-22  Richard Biener  <rguenther@suse.de>
13355
13356         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
13357         Verify both BBs contain loop PHI nodes before dispatching to
13358         copy_loop_phi_args.
13359         (graphite_regenerate_ast_isl): Do not recompute dominators,
13360         do not verify three times.  Restructure for clarity.
13361         * graphite-scop-detection.c (same_close_phi_node,
13362         remove_duplicate_close_phi, make_close_phi_nodes_unique,
13363         defined_in_loop_p, canonicalize_loop_closed_ssa,
13364         canonicalize_loop_closed_ssa_form): Simplify, remove excess
13365         checking and SSA rewrite, move to ...
13366         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
13367         (graphite_initialize): Do not pass in ctx, do not reset the
13368         SCEV cache, compute only dominators.
13369         (graphite_transform_loops): Allocate ISL ctx after
13370         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
13371         Maintain post-dominators only around build_scops.
13372         * sese.c (if_region_set_false_region): Make static.  Free
13373         and recompute dominators.
13374         (move_sese_in_condition): Assert we don't get called with
13375         post-dominators computed.
13376         * sese.h (if_region_set_false_region): Remove.
13377
13378 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
13379
13380         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
13381         mode attribute for TARGET_AVX512VL.
13382
13383 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
13384
13385         * config/i386/i386.opt (mprefer-avx256): New option.
13386         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
13387         to flag_opts.
13388         (ix86_preferred_simd_mode): Return 256-bit AVX modes
13389         for TARGET_PREFER_AVX256.
13390         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
13391
13392 2017-09-21  Jeff Law  <law@redhat.com>
13393
13394         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
13395         Fix dump output if the only stack space is for pushed registers.
13396
13397 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13398
13399         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
13400         of insn_cost.
13401
13402 2017-09-21  Martin Sebor  <msebor@redhat.com>
13403
13404         PR c/81882
13405         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
13406         code (in C++) or code that triggers warnings.
13407
13408 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
13409
13410         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
13411
13412 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
13413
13414         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
13415         * sched-rgn.c: Ditto.
13416         * sel-sched-ir.c: Ditto.
13417
13418 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
13419
13420         * toplev.h (set_random_seed): Adjust return type.
13421         * toplev.c (init_local_tick): Move eager initialization of random_seed
13422         to get_random_seed.  Adjust comment.
13423         (init_random_seed): Inline to get_random_seed, delete.
13424         (get_random_seed): Initialize random_seed lazily.
13425         (set_random_seed): Do not return previous value.
13426         (print_switch_value): Do not call get_random_seed.
13427
13428 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
13429
13430         * cgraph.c (delete_function_version): New, broken out from...
13431         (cgraph_node::delete_function_version): ...here.  Rename to
13432         cgraph_node::delete_function_version_by_decl.  Update all uses.
13433         (cgraph_node::remove): Call delete_function_version.
13434
13435 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
13436
13437         PR sanitizer/81715
13438         * tree-inline.c (expand_call_inline): Emit clobber stmts for
13439         VAR_DECLs to which addressable non-volatile parameters are mapped
13440         and for id->retvar after the return value assignment.  Clear
13441         id->retval and id->retbnd after inlining.
13442
13443 2017-09-21  Richard Biener  <rguenther@suse.de>
13444
13445         PR tree-optimization/82276
13446         PR tree-optimization/82244
13447         * tree-vrp.c (build_assert_expr_for): Set
13448         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
13449         has it set.
13450         (remove_range_assertions): Revert earlier change.
13451
13452 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
13453
13454         PR target/71951
13455         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
13456
13457 2017-09-21  Richard Biener  <rguenther@suse.de>
13458
13459         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
13460         Restore valid IL after code generation errors.
13461         * graphite.c (graphite_transform_loops): Diagnose code
13462         generation issues as MSG_MISSED_OPTIMIZATION and continue
13463         with processing SCOPs.
13464
13465 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13466             Alan Hayward  <alan.hayward@arm.com>
13467             David Sherwood  <david.sherwood@arm.com>
13468
13469         * calls.c (compute_argument_addresses): Use simplify_gen_binary
13470         rather than choosing between plus_constant and gen_rtx_<CODE>.
13471         * expr.c (emit_push_insn): Likewise.
13472         (expand_expr_real_2): Likewise.
13473
13474 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13475             Alan Hayward  <alan.hayward@arm.com>
13476             David Sherwood  <david.sherwood@arm.com>
13477
13478         * loop-unroll.c (split_iv): Call copy_rtx on the step.
13479
13480 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13481             Alan Hayward  <alan.hayward@arm.com>
13482             David Sherwood  <david.sherwood@arm.com>
13483
13484         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
13485         calling tree_to_uhwi.
13486
13487 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13488             Alan Hayward  <alan.hayward@arm.com>
13489             David Sherwood  <david.sherwood@arm.com>
13490
13491         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
13492         INTEGER_CST rather than a negative test for ADDR_EXPR.
13493
13494 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13495             Alan Hayward  <alan.hayward@arm.com>
13496             David Sherwood  <david.sherwood@arm.com>
13497
13498         * tree-vrp.c (extract_range_from_binary_expr_1): Check
13499         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
13500
13501 2017-09-21  Richard Biener  <rguenther@suse.de>
13502
13503         PR tree-optimization/71351
13504         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
13505         graphite_create_new_loop_guard): Remove, fold remaining parts
13506         into caller ...
13507         (translate_isl_ast_node_for): ... here and simplify.
13508
13509 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
13510
13511         PR target/82260
13512         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
13513         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
13514         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
13515         alternative always use QI mode, for -Os imov (=R,R) alternative
13516         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
13517         ignore -Os.
13518
13519 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13520             Jeff Law  <law@redhat.com>
13521
13522         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
13523         (allocate_stack_space): New function, partially extracted from
13524         s390_emit_prologue.
13525         (s390_emit_prologue): Track offset to most recent stack probe.
13526         Code to allocate space moved into allocate_stack_space.
13527         Dump actions when no stack is allocated.
13528         (s390_prologue_plus_offset): New function.
13529         (s390_emit_stack_probe): Likewise.
13530
13531 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
13532
13533         * common.opt (Wa, Wl, Wp, g, gz=): Add
13534         RejectNegative.
13535         (gno-column-info): Remove.
13536         (gcolumn-info): Drop RejectNegative.
13537         (gno-): New prefix.
13538         (gno-record-gcc-switches): Remove.
13539         (grecord-gcc-switches): Drop RejectNegative.
13540         (gno-split-dwarf): Remove.
13541         (gsplit-dwarf): Drop RejectNegative.
13542         (gno-strict-dwarf): Remove.
13543         (gstrict-dwarf): Drop RejectNegative.
13544         * config/darwin.opt (gfull, gused): Add RejectNegative.
13545         * dwarf2out.c (gen_producer_string): Drop
13546         gno-record-gcc-switches handler.
13547         * optc-gen.awk: Add g to prefixes with negative forms.
13548         * opts-common.c (remapping_prefix_p): New.
13549         (find_opt): Check it.
13550         (generate_canonical_option): Test g prefix.
13551         (option_map): Add -gno- mapping.
13552         (add_misspelling_candidates): Check remapping_prefix_p.
13553
13554 2017-09-20  Jeff Law  <law@redhat.com>
13555
13556         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
13557         thinko in stack clash protection support.
13558
13559         * explow.c (compute_stack_clash_protection_loop_data): Use
13560         CONST_INT_P instead of explicit test.  Verify object is a
13561         CONST_INT_P before looking at INTVAL.
13562         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
13563         instead of explicit test.
13564
13565 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
13566
13567         PR target/77687
13568         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
13569         address instead of to r1 and r11.
13570
13571 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
13572
13573         * config.gcc: Support "knm".
13574         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
13575         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13576         PROCESSOR_KNM.
13577         * config/i386/i386.c (m_KNM): Define.
13578         (processor_target_table): Add "knm".
13579         (PTA_KNM): Define.
13580         (ix86_option_override_internal): Add "knm".
13581         (ix86_issue_rate): Add PROCESSOR_KNM.
13582         (ix86_adjust_cost): Ditto.
13583         (ia32_multipass_dfa_lookahead): Ditto.
13584         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
13585         (fold_builtin_cpu): Add M_INTEL_KNM.
13586         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
13587         (processor_type): Add PROCESSOR_KNM.
13588         * config/i386/x86-tune.def: Add m_KNM.
13589         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
13590
13591 2017-09-20  Richard Biener  <rguenther@suse.de>
13592
13593         PR tree-optimization/80213
13594         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
13595         are allowed in empty BBs as well.
13596         (canonicalize_loop_closed_ssa): Also look for other complex
13597         edges.
13598         (scop_detection::get_sese): Include the loop-closed PHI block
13599         in loop SESEs.
13600         (scop_detection::merge_sese): Remove code adding extra blocks.
13601         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
13602         (build_scops): Assert the final returned scop is invalid.
13603
13604 2017-09-20  Richard Biener  <rguenther@suse.de>
13605
13606         PR tree-optimization/82264
13607         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
13608         for GIMPLE_CONDs.
13609         (vn_phi_lookup): Likewise.
13610         (vn_phi_insert): Likewise.
13611
13612 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
13613
13614         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
13615         that fits into uhwi or shwi, add DW_AT_const_value regardless
13616         of early_dwarf without going through RTL, using add_AT_unsigned
13617         or add_AT_int.
13618
13619         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
13620         (DEBUG_LTO_ABBREV_SECTION): Likewise.
13621         (DEBUG_LTO_MACINFO_SECTION): Likewise.
13622         (DEBUG_MACRO_SECTION): Likewise.
13623         (DEBUG_LTO_MACRO_SECTION): Likewise.
13624         (DEBUG_STR_DWO_SECTION): Likewise.
13625         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
13626         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
13627         (DEBUG_LTO_DWO_LINE_SECTION): Define.
13628         (DEBUG_LTO_LINE_STR_SECTION): Define.
13629         (init_sections_and_labels): Initialize debug_line_str_section
13630         variable.  Initialize debug_loc_section for -gdwarf-5 to
13631         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
13632
13633 2017-09-20  Richard Biener  <rguenther@suse.de>
13634
13635         * graphite-sese-to-poly.c (extract_affine): Properly handle
13636         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
13637
13638 2017-09-20  Richard Biener  <rguenther@suse.de>
13639
13640         PR tree-optimization/81373
13641         * graphite-scop-detection.c (build_cross_bb_scalars_def):
13642         Force SESE live-out defs to be handled even if they are
13643         scev_analyzable_p.
13644
13645 2017-09-19  Jeff Law  <law@redhat.com>
13646
13647         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
13648         nothing for stack adjustments with REG_STACK_CHECK.
13649         * sched-deps.c (parse_add_or_inc): Reject insns with
13650         REG_STACK_CHECK from dependency breaking.
13651         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
13652         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
13653         * reg-notes.def (STACK_CHECK): New note.
13654
13655         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
13656         (ix86_expand_prologue): Dump stack clash info as needed.
13657         Call ix86_adjust_stack_and_probe_stack_clash as needed.
13658
13659         * function.c (dump_stack_clash_frame_info): New function.
13660         * function.h (dump_stack_clash_frame_info): Prototype.
13661         (enum stack_clash_probes): New enum.
13662
13663         * config/alpha/alpha.c (alpha_expand_prologue): Also check
13664         flag_stack_clash_protection.
13665         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
13666         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
13667         (arm_frame_pointer_required): Likewise.
13668         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
13669         (ia64_expand_prologue): Likewise.
13670         * config/mips/mips.c (mips_expand_prologue): Likewise.
13671         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
13672         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13673         (sparc_flat_expand_prologue): Likewise.
13674         * config/spu/spu.c (spu_expand_prologue): Likewise.
13675
13676         * explow.c: Include "params.h".
13677         (anti_adjust_stack_and_probe_stack_clash): New function.
13678         (get_stack_check_protect): Likewise.
13679         (compute_stack_clash_protection_loop_data): Likewise.
13680         (emit_stack_clash_protection_loop_start): Likewise.
13681         (emit_stack_clash_protection_loop_end): Likewise.
13682         (allocate_dynamic_stack_space): Use get_stack_check_protect.
13683         Use anti_adjust_stack_and_probe_stack_clash.
13684         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
13685         (emit_stack_clash_protection_loop_start): Likewise.
13686         (emit_stack_clash_protection_loop_end): Likewise.
13687         * rtl.h (get_stack_check_protect): Prototype.
13688         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
13689         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
13690         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
13691         Prototype.
13692         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
13693         Add @hook.
13694         * doc/tm.texi: Rebuilt.
13695         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
13696         get_stack_check_protect.
13697         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
13698         * config/arm/arm.c (arm_expand_prologue): Likewise.
13699         (arm_frame_pointer_required): Likewise.
13700         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13701         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13702         * config/mips/mips.c (mips_expand_prologue): Likewise.
13703         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
13704         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13705         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13706         (sparc_flat_expand_prologue): Likewise.
13707
13708         * common.opt (-fstack-clash-protection): New option.
13709         * flag-types.h (enum stack_check_type): Note difference between
13710         -fstack-check= and -fstack-clash-protection.
13711         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
13712         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
13713         * toplev.c (process_options): Issue warnings/errors for cases
13714         not handled with -fstack-clash-protection.
13715         * doc/invoke.texi (-fstack-clash-protection): Document new option.
13716         (-fstack-check): Note additional problem with -fstack-check=generic.
13717         Note that -fstack-check is primarily for Ada and refer users
13718         to -fstack-clash-protection for stack-clash-protection.
13719         Document new params for stack clash protection.
13720
13721 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
13722
13723         * config/i386/i386.c (ix86_split_long_move): Do not handle
13724         address used for LEA in a special way.
13725
13726 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
13727
13728         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
13729
13730 2017-09-19  Martin Sebor  <msebor@redhat.com>
13731
13732         PR c/81854
13733         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
13734         of incompatible types.
13735
13736 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
13737
13738         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13739         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
13740         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13741         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
13742
13743 2017-09-19  Richard Biener  <rguenther@suse.de>
13744
13745         PR tree-optimization/82244
13746         * tree-vrp.c (remove_range_assertions): Do not propagate
13747         a constant to abnormals but replace the assert with a copy.
13748
13749 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
13750
13751         PR rtl-optimization/57878
13752         PR rtl-optimization/68988
13753         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
13754         avoidance test involving non_reload_pseudos.  Move frequency test
13755         below the general fragmentation avoidance test.
13756
13757 2017-09-19  Richard Biener  <rguenther@suse.de>
13758
13759         PR tree-optimization/69728
13760         * graphite-sese-to-poly.c (schedule_error): New global.
13761         (add_loop_schedule): Handle empty domain by failing the
13762         schedule.
13763         (build_original_schedule): Handle schedule_error.
13764
13765 2017-09-19  Richard Biener  <rguenther@suse.de>
13766
13767         * graphite-scop-detection.c (scop_detection::can_represent_loop):
13768         Do not iterate to sibling loops but only to siblings of inner
13769         loops.
13770
13771 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
13772
13773         PR target/81613
13774         * config/m68k/m68k.md (moveq feeding equality comparison): Check
13775         that the registers are different.
13776
13777 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
13778
13779         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
13780         to processor_model and "amdfam17h" to arch_names_table.
13781         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
13782
13783 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
13784
13785         PR c/82234
13786         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
13787
13788 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13789             Alan Hayward  <alan.hayward@arm.com>
13790             David Sherwood  <david.sherwood@arm.com>
13791
13792         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
13793         with a vec_info *.
13794         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
13795         accordingly.
13796         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
13797         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
13798         vect_schedule_slp_instance.
13799         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
13800         Update call to vect_slp_analyze_node_operations.  Simplify return
13801         value.
13802         (vect_slp_analyze_bb_1): Update call accordingly.
13803         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
13804         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
13805         (vect_schedule_slp): Update call accordingly.
13806
13807 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13808             Alan Hayward  <alan.hayward@arm.com>
13809             David Sherwood  <david.sherwood@arm.com>
13810
13811         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
13812         with types that aren't in fact scalar.
13813
13814 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13815
13816         * tree-vect-slp.c (vect_record_max_nunits): New function,
13817         split out from...
13818         (vect_build_slp_tree_1): ...here.
13819         (vect_build_slp_tree_2): Call it for phis too.
13820
13821 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13822
13823         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
13824         to vect_get_vec_def_for_operand when getting the mask operand.
13825
13826 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13827             Alan Hayward  <alan.hayward@arm.com>
13828             David Sherwood  <david.sherwood@arm.com>
13829
13830         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
13831         bitstart.
13832
13833 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13834             Alan Hayward  <alan.hayward@arm.com>
13835             David Sherwood  <david.sherwood@arm.com>
13836
13837         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
13838         calculation for vector booleans.
13839
13840 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13841             Alan Hayward  <alan.hayward@arm.com>
13842             David Sherwood  <david.sherwood@arm.com>
13843
13844         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
13845         split out from...
13846         (vect_transform_stmt): ...here.
13847         (vect_analyze_stmt): Use it instead of calling
13848         vectorizable_live_operation directly.
13849
13850 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
13851
13852         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
13853         non-SIMT targets in acc vector loops.
13854
13855 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
13856
13857         * configure.ac: Add arc and check if assembler supports gdwarf2.
13858         * configure: Regenerate.
13859
13860 2017-09-18  Richard Biener  <rguenther@suse.de>
13861
13862         PR tree-optimization/82220
13863         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
13864         epilogue niters from the min_profitable_iters compute.
13865
13866 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
13867
13868         PR target/82145
13869         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
13870         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
13871         (ix86_init_pic_reg): Revert 2017-09-01 changes.
13872
13873 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
13874
13875         PR target/81361
13876         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
13877         switching to a new text section.
13878
13879 2017-09-18  Richard Biener  <rguenther@suse.de>
13880
13881         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
13882         Simplify.
13883         (build_alias_set): Reject aliases with no access function.
13884
13885 2017-09-18  Richard Biener  <rguenther@suse.de>
13886
13887         PR tree-optimization/79622
13888         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
13889         handle PHIs.
13890         (build_cross_bb_scalars_use): Likewise.
13891
13892 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
13893
13894         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
13895
13896 2017-09-18  Alan Modra  <amodra@gmail.com>
13897
13898         PR target/81996
13899         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
13900         stack_pointer_rtx for count 0.  Update comments.  Break up
13901         large rtl expression.
13902
13903 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
13904
13905         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
13906         Increase to 20 bytes.
13907         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
13908         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
13909         or avx version of the stub.
13910
13911 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13912
13913         PR target/82166
13914         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
13915         compute the minimum stack alignment.  Also update preferred stack
13916         boundary for leaf functions.
13917
13918 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
13919
13920         PR tree-optimization/82228
13921         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
13922         of ncopies.
13923
13924 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
13925
13926         * common/config/nds32/nds32-common.c
13927         (nds32_option_optimization_table): Refine formatting.
13928         (nds32_option_optimization_table): Use -fsched-pressure and
13929         -fomit-frame-pointer for specific optimization level.
13930
13931 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
13932
13933         * config/nds32/nds32.c: Refine formatting and comments.
13934         * config/nds32/nds32.h: Likewise.
13935         * config/nds32/nds32.md: Likewise.
13936         * config/nds32/nds32-cost.c: Likewise.
13937         * config/nds32/nds32-isr.c: Likewise.
13938         * config/nds32/nds32-md-auxiliary.c: Likewise.
13939         * config/nds32/nds32-multiple.md: Likewise.
13940         * config/nds32/nds32-predicates.c: Likewise.
13941
13942 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
13943             Jakub Jelinek  <jakub@redhat.com>
13944
13945         Add support for -std=c++2a.
13946         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
13947         or -std=gnu+2a.
13948         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
13949
13950 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
13951
13952         PR target/82066
13953         * doc/extend.texi (Common Function Attributes): Add 
13954         references to ARM, AArch64, and S/390 specific attributes.
13955         (Function Specific Option Pragmas): Add AArch64 and S/390
13956         to list of back ends that support the target pragma.
13957
13958 2017-09-15  Nathan Sidwell  <nathan@acm.org>
13959
13960         * doc/standards.texi: Fix C++17 description.  Update URLs for
13961         C++11 & 14.
13962
13963 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13964
13965         * common.opt (Wcast-align=strict): New warning option.
13966         * doc/invoke.texi: Document -Wcast-align=strict. 
13967
13968 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
13969
13970         * cgraph.h (cgraph_thunk_info): Add comments.
13971         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
13972         assert for VIRTUAL_* arguments stricter.
13973
13974 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
13975
13976         PR tree-optimization/71026
13977         * match.pd: Move RDIV patterns from fold-const.c
13978         * fold-const.c (distribute_real_division): Removed.
13979         (fold_binary_loc): Remove calls to distribute_real_divison.
13980
13981 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13982
13983         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
13984         c++1z and gnu++1z as deprecated.  Change other references to
13985         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
13986         Change -Wc++1z-compat to -Wc++17-compat.
13987         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
13988         * dwarf2out.c (highest_c_language): Handle C++17.
13989         (gen_compile_unit_die): Likewise.
13990
13991 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13992
13993         PR rtl-optimization/82192
13994         * combine.c (make_extraction): Don't look through non-paradoxical
13995         SUBREGs or TRUNCATE if pos + len is or might be bigger than
13996         inner's mode.
13997
13998 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13999             Alan Hayward  <alan.hayward@arm.com>
14000             David Sherwood  <david.sherwood@arm.com>
14001
14002         * target.def (function_arg_offset): New hook.
14003         * targhooks.h (default_function_arg_offset): Declare.
14004         * targhooks.c (default_function_arg_offset): New function.
14005         * function.c (locate_and_pad_parm): Use
14006         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
14007         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
14008         (TARGET_FUNCTION_ARG_OFFSET): ...this.
14009         * doc/tm.texi: Regenerate.
14010         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
14011         * config/spu/spu.c (spu_function_arg_offset): New function.
14012         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
14013         * system.h (FUNCTION_ARG_OFFSET): Poison.
14014
14015 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14016             Alan Hayard  <alan.hayward@arm.com>
14017             David Sherwood  <david.sherwood@arm.com>
14018
14019         * target.def (truly_noop_truncation): New hook.
14020         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
14021         than TRULY_NOOP_TRUNCATION.
14022         * hooks.h (hook_bool_uint_uint_true): Declare.
14023         * hooks.c (hook_bool_uint_uint_true): New function.
14024         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
14025         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
14026         * doc/tm.texi: Regenerate.
14027         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
14028         rather than TRULY_NOOP_TRUNCATION in comments.
14029         (simplify_comparison): Likewise.
14030         (record_truncated_value): Likewise.
14031         * expmed.c (extract_bit_field_1): Likewise.
14032         (extract_split_bit_field): Likewise.
14033         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
14034         instead of TRULY_NOOP_TRUNCATION.
14035         * function.c (assign_parm_setup_block): Likewise.
14036         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
14037         * rtlhooks.c: Include target.h.
14038         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
14039         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
14040         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
14041         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
14042         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
14043         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
14044         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
14045         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
14046         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
14047         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
14048         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
14049         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
14050         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
14051         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
14052         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
14053         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
14054         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
14055         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
14056         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
14057         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
14058         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
14059         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
14060         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
14061         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
14062         * config/mips/mips.c (mips_truly_noop_truncation): New function.
14063         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14064         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14065         rather than TRULY_NOOP_TRUNCATION in comments.
14066         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
14067         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
14068         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
14069         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
14070         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
14071         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
14072         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
14073         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
14074         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
14075         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
14076         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
14077         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14078         rather than TRULY_NOOP_TRUNCATION in comments.
14079         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
14080         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
14081         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
14082         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
14083         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
14084         TRULY_NOOP_TRUNCATION condition.
14085         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
14086         (TRULY_NOOP_TRUNCATION): Delete.
14087         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
14088         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
14089         * config/spu/spu.c (spu_truly_noop_truncation): New function.
14090         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14091         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
14092         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
14093         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
14094         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14095         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14096         rather than TRULY_NOOP_TRUNCATION in comments.
14097         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
14098         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
14099         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
14100         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
14101         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
14102         * system.h (TRULY_NOOP_TRUNCATION): Poison.
14103
14104 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
14105
14106         PR target/67591
14107         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
14108         (*cmp_ior): Likewise.
14109         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
14110         (*ior_scc_scc_cmp): Likewise.
14111         (*and_scc_scc): Likewise.
14112         (*and_scc_scc_cmp): Likewise.
14113
14114 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14115             Alan Hayard  <alan.hayward@arm.com>
14116             David Sherwood  <david.sherwood@arm.com>
14117
14118         * target.def (can_change_mode_class): New hook.
14119         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
14120         (hard_regno_nregs): Likewise.
14121         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
14122         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
14123         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
14124         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
14125         (LOAD_EXTEND_OP): Update accordingly.
14126         * doc/tm.texi: Regenerate.
14127         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
14128         CANNOT_CHANGE_MODE_CLASS.
14129         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
14130         (REG_CAN_CHANGE_MODE_P): ...this new macro.
14131         * combine.c (simplify_set): Update accordingly.
14132         * emit-rtl.c (validate_subreg): Likewise.
14133         * recog.c (general_operand): Likewise.
14134         * regcprop.c (mode_change_ok): Likewise.
14135         * reload1.c (choose_reload_regs): Likewise.
14136         (inherit_piecemeal_p): Likewise.
14137         * rtlanal.c (simplify_subreg_regno): Likewise.
14138         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
14139         instead of CANNOT_CHANGE_MODE_CLASS.
14140         (reload_cse_simplify_operands): Likewise.
14141         * reload.c (push_reload): Use targetm.can_change_mode_class
14142         instead of CANNOT_CHANGE_MODE_CLASS.
14143         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
14144         REG_CANNOT_CHANGE_MODE_P.
14145         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14146         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
14147         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14148         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14149         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14150         (arm_can_change_mode_class): New function.
14151         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14152         than CANNOT_CHANGE_MODE_CLASS in comments.
14153         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14154         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
14155         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
14156         (ix86_can_change_mode_class): ...this new function, inverting the
14157         sense of the return value.
14158         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14159         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14160         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14161         (ia64_can_change_mode_class): New function.
14162         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14163         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
14164         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
14165         (m32c_can_change_mode_class): ...this new function, inverting the
14166         sense of the return value.
14167         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14168         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14169         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
14170         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
14171         (mips_can_change_mode_class): ...this new function, inverting the
14172         sense of the return value.
14173         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14174         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14175         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14176         (msp430_can_change_mode_class): New function.
14177         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14178         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
14179         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14180         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14181         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14182         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
14183         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14184         (pa_cannot_change_mode_class): Replace with...
14185         (pa_can_change_mode_class): ...this new function, inverting the
14186         sense of the return value.
14187         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14188         than CANNOT_CHANGE_MODE_CLASS in comments.
14189         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14190         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
14191         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14192         (pdp11_cannot_change_mode_class): Replace with...
14193         (pdp11_can_change_mode_class): ...this new function, inverting the
14194         sense of the return value.
14195         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14196         * config/powerpcspe/powerpcspe-protos.h
14197         (rs6000_cannot_change_mode_class_ptr): Delete.
14198         * config/powerpcspe/powerpcspe.c
14199         (rs6000_cannot_change_mode_class_ptr): Delete.
14200         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14201         (rs6000_option_override_internal): Assign to
14202         targetm.can_change_mode_class instead of
14203         rs6000_cannot_change_mode_class_ptr.
14204         (rs6000_cannot_change_mode_class): Replace with...
14205         (rs6000_can_change_mode_class): ...this new function, inverting the
14206         sense of the return value.
14207         (rs6000_debug_cannot_change_mode_class): Replace with...
14208         (rs6000_debug_can_change_mode_class): ...this new function.
14209         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14210         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
14211         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14212         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14213         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
14214         Delete.
14215         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
14216         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14217         (rs6000_option_override_internal): Assign to
14218         targetm.can_change_mode_class instead of
14219         rs6000_cannot_change_mode_class_ptr.
14220         (rs6000_cannot_change_mode_class): Replace with...
14221         (rs6000_can_change_mode_class): ...this new function, inverting the
14222         sense of the return value.
14223         (rs6000_debug_cannot_change_mode_class): Replace with...
14224         (rs6000_debug_can_change_mode_class): ...this new function.
14225         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14226         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
14227         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
14228         (s390_can_change_mode_class): ...this new function, inverting the
14229         sense of the return value.
14230         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14231         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14232         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
14233         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14234         (sh_cannot_change_mode_class): Replace with...
14235         (sh_can_change_mode_class): ...this new function, inverting the
14236         sense of the return value.
14237         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14238         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14239         (sparc_can_change_mode_class): New function.
14240         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14241         * config/spu/spu.c (spu_can_change_mode_class): New function.
14242         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14243         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14244         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14245         (visium_can_change_mode_class): New function.
14246         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
14247
14248 2017-09-15  Richard Biener  <rguenther@suse.de>
14249
14250         PR tree-optimization/82217
14251         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
14252         but not undefined case.
14253
14254 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14255
14256         PR target/82145
14257         * postreload.c (reload_cse_simplify_operands): Skip
14258         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
14259
14260 2017-09-15  Richard Biener  <rguenther@suse.de>
14261
14262         PR tree-optimization/68823
14263         * graphite-scop-detection.c (build_alias_set): If we have a
14264         possible dependence check whether we can handle them by just
14265         looking at the DRs DR_ACCESS_FNs.
14266         (build_scops): If build_alias_set fails, fail the SCOP.
14267
14268 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14269
14270         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
14271         to support float128 built-in functions that require the ISA 3.0
14272         hardware.
14273         (BU_FLOAT128_3_HW): Likewise.
14274         (SQRTF128): Add support for the IEEE 128-bit square root and fma
14275         built-in functions.
14276         (FMAF128): Likewise.
14277         (FMAQ): Likewise.
14278         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
14279         support for built-in functions that need the ISA 3.0 IEEE 128-bit
14280         floating point instructions.
14281         (rs6000_invalid_builtin): Likewise.
14282         (rs6000_builtin_mask_names): Likewise.
14283         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
14284         (RS6000_BTM_FLOAT128_HW): Likewise.
14285         (RS6000_BTM_COMMON): Likewise.
14286         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
14287         function.
14288         * doc/extend.texi (RS/6000 built-in functions): Document the
14289         IEEE 128-bit floating point square root and fused multiply-add
14290         built-in functions.
14291
14292 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
14293
14294         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
14295         reg (r2) isn't in the set of registers defined in the prologue.
14296
14297 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14298             Alan Hayward  <alan.hayward@arm.com>
14299             David Sherwood  <david.sherwood@arm.com>
14300
14301         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
14302         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
14303         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
14304         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
14305         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
14306         accordingly.
14307         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14308         max_vectorization_factor.
14309         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
14310
14311 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14312             Alan Hayward  <alan.hayward@arm.com>
14313             David Sherwood  <david.sherwood@arm.com>
14314
14315         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
14316         (vect_worthwhile_without_simd_p): Declare.
14317         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
14318         (vectorizable_reduction): Use it.
14319         * tree-vect-stmts.c (vectorizable_shift): Likewise.
14320         (vectorizable_operation): Likewise.
14321
14322 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14323             Alan Hayward  <alan.hayward@arm.com>
14324             David Sherwood  <david.sherwood@arm.com>
14325
14326         * tree-vectorizer.h (vect_get_num_copies): New function.
14327         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
14328         * tree-vect-loop.c (vectorizable_reduction): Likewise.
14329         (vectorizable_induction): Likewise.
14330         (vectorizable_live_operation): Likewise.
14331         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
14332         (vectorizable_bswap): Likewise.
14333         (vectorizable_call): Likewise.
14334         (vectorizable_conversion): Likewise.
14335         (vectorizable_assignment): Likewise.
14336         (vectorizable_shift): Likewise.
14337         (vectorizable_operation): Likewise.
14338         (vectorizable_store): Likewise.
14339         (vectorizable_load): Likewise.
14340         (vectorizable_condition): Likewise.
14341         (vectorizable_comparison): Likewise.
14342         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
14343
14344 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14345             Alan Hayward  <alan.hayward@arm.com>
14346             David Sherwood  <david.sherwood@arm.com>
14347
14348         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
14349         of vect_init_vector.
14350
14351 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14352             Alan Hayward  <alan.hayward@arm.com>
14353             David Sherwood  <david.sherwood@arm.com>
14354
14355         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
14356         an inline wrapper that provides a location.
14357         (gimple_build_vector): Likewise.
14358         * gimple-fold.c (gimple_build_vector_from_val): New function.
14359         (gimple_build_vector): Likewise.
14360         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
14361         functions to build the initial value.  Always return a gimple value.
14362         (get_initial_defs_for_reduction): Likewise.  Only compute
14363         neutral_vec once.
14364         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
14365         vect_init_vector on the results from get_initial_def(s)_for_reduction.
14366         (vectorizable_induction): Use gimple_build_vector rather than
14367         vect_init_vector.
14368
14369 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14370             Alan Hayward  <alan.hayward@arm.com>
14371             David Sherwood  <david.sherwood@arm.com>
14372
14373         * target.h (vec_perm_indices): New typedef.
14374         (auto_vec_perm_indices): Likewise.
14375         * optabs-query.h: Include target.h
14376         (can_vec_perm_p): Take a vec_perm_indices *.
14377         * optabs-query.c (can_vec_perm_p): Likewise.
14378         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
14379         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14380         * tree-vect-generic.c (lower_vec_perm): Likewise.
14381         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
14382         (vect_grouped_load_supported): Likewise.
14383         (vect_shift_permute_load_chain): Likewise.
14384         (vect_permute_store_chain): Use auto_vec_perm_indices.
14385         (vect_permute_load_chain): Likewise.
14386         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
14387         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
14388         Update uses of can_vec_perm_p.
14389         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
14390         mode with a number of elements.  Take a vec_perm_indices *.
14391         (vect_create_epilog_for_reduction): Update accordingly.
14392         Use auto_vec_perm_indices.
14393         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
14394         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
14395         (vect_transform_slp_perm_load): Likewise.
14396         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
14397         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
14398         (vect_gen_perm_mask_checked): Likewise.
14399         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
14400         (vect_gen_perm_mask_checked): Likewise.
14401         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
14402         (vectorizable_store): Likewise.
14403         (vectorizable_load): Likewise.
14404         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
14405         (vectorizable_bswap): Likewise.
14406
14407 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14408             Alan Hayward  <alan.hayward@arm.com>
14409             David Sherwood  <david.sherwood@arm.com>
14410
14411         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
14412         * tree.c (build_vector): Likewise.
14413         (build_vector_from_ctor): Update accordingly.
14414         (build_vector_from_val): Likewise.
14415         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
14416         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14417         * tree-vect-generic.c (add_rshift): Likewise.
14418         (expand_vector_divmod): Likewise.
14419         (optimize_vector_constructor): Likewise.
14420         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14421         (vect_transform_slp_perm_load): Likewise.
14422         (vect_schedule_slp_instance): Likewise.
14423         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
14424         (vectorizable_call): Likewise.
14425         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
14426         * expmed.c (make_tree): Likewise.
14427         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
14428         a vector passed to build_vector.
14429         (fold_convert_const): Likewise.
14430         (exact_inverse): Likewise.
14431         (fold_ternary_loc): Likewise.
14432         (fold_relational_const): Likewise.
14433         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
14434         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
14435         (const_unop): Likewise.  Store the reduction accumulator in a
14436         variable rather than an array.
14437         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
14438         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
14439         the new vector, rather than constructing it after the input arrays.
14440         (native_interpret_vector): Use auto_vec<tree> when building
14441         a vector passed to build_vector.  Add elements in order.
14442         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
14443         auto_vec<tree> when building a vector passed to build_vector.
14444         (vect_create_epilog_for_reduction): Likewise.
14445         (vectorizable_induction): Likewise.
14446         (get_initial_def_for_reduction): Likewise.  Fix indentation of
14447         case statements.
14448         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
14449         to a vec<tree> *.
14450         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
14451         passed to build_vector.
14452
14453 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14454             Alan Hayward  <alan.hayward@arm.com>
14455             David Sherwood  <david.sherwood@arm.com>
14456
14457         * tree-core.h (tree_base::u): Add an "nelts" field.
14458         (tree_vector): Use VECTOR_CST_NELTS as the length.
14459         * tree.c (tree_size): Likewise.
14460         (make_vector): Initialize VECTOR_CST_NELTS.
14461         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
14462         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
14463         TYPE_VECTOR_SUBPARTS.
14464         * expr.c (const_vector_mask_from_tree): Consistently use "units"
14465         as the number of units, setting it from VECTOR_CST_NELTS.
14466         (const_vector_from_tree): Likewise.
14467         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
14468         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
14469         (fold_negate_expr_1): Likewise.
14470         (fold_convert_const): Likewise.
14471         (const_binop): Likewise.  Differentiate the number of output and
14472         input elements.
14473         (const_unop): Likewise.
14474         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
14475         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
14476         in cases that did the opposite.
14477
14478 2017-09-14  Richard Biener  <rguenther@suse.de>
14479
14480         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
14481         to VN_TOP.
14482
14483 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14484
14485         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
14486
14487 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
14488
14489         PR target/81325
14490         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
14491         if and where to split a bb, except for splitting before debug insn
14492         sequences followed by non-label real insn.  Delete debug insns
14493         in between basic blocks.
14494
14495         * combine.c (make_compound_operation_int): Formatting fixes.
14496
14497         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
14498         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14499         * config/netbsd.h (LINK_EH_SPEC): Likewise.
14500         * config/sol2.h (LINK_EH_SPEC): Likewise.
14501         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14502         * config/s390/linux.h (LINK_SPEC): Likewise.
14503         * config/freebsd.h (LINK_EH_SPEC): Likewise.
14504         * config/openbsd.h (LINK_EH_SPEC): Likewise.
14505         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14506         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
14507         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
14508         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14509         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
14510         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
14511
14512 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
14513
14514         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
14515         support.
14516         (ENDFILE_LINUX_SPEC): Likewise.
14517         (LINK_EH_SPEC): Likewise.
14518         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
14519         (LINK_OS_LINUX_SPEC32): Likewise.
14520         (LINK_OS_LINUX_SPEC64): Likewise.
14521         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
14522         (LINK_OS_LINUX_SPEC): Likewise.
14523
14524 2017-09-13  Martin Liska  <mliska@suse.cz>
14525
14526         PR middle-end/82154
14527         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
14528         CASE_HIGH is NULL_TREE.
14529
14530 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
14531             Alan Hayward  <alan.hayward@arm.com>
14532             David Sherwood  <david.sherwood@arm.com>
14533
14534         * target.def (secondary_memory_needed): New hook.
14535         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
14536         instead of SECONDARY_MEMORY_NEEDED.
14537         (secondary_memory_needed_mode): Likewise.
14538         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
14539         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
14540         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
14541         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
14542         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
14543         * doc/tm.texi: Regenerate.
14544         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
14545         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
14546         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14547         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
14548         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
14549         * config/i386/i386.c (inline_secondary_memory_needed): Put the
14550         mode argument first and change the reg_class arguments to reg_class_t.
14551         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
14552         Make static.  Update the call to inline_secondary_memory_needed.
14553         (ix86_register_move_cost): Update the call to
14554         inline_secondary_memory_needed.
14555         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14556         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
14557         definition.
14558         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
14559         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14560         in comment.
14561         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
14562         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
14563         * config/mips/mips.c (mips_secondary_memory_needed): Make static
14564         and match hook interface.  Add comment from mips.h.
14565         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14566         * config/mmix/mmix.md (truncdfsf2): Refer to
14567         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14568         in comment.
14569         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
14570         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
14571         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14572         (pa_secondary_memory_needed): New function.
14573         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
14574         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
14575         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14576         (pdp11_secondary_memory_needed): Make static and match hook interface.
14577         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
14578         * config/powerpcspe/powerpcspe-protos.h
14579         (rs6000_secondary_memory_needed_ptr): Delete.
14580         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
14581         Delete.
14582         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14583         (rs6000_option_override_internal): Assign to
14584         targetm.secondary_memory_needed rather than
14585         rs6000_secondary_memory_needed_ptr.
14586         (rs6000_secondary_memory_needed): Match hook interface.
14587         (rs6000_debug_secondary_memory_needed): Likewise.
14588         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
14589         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
14590         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
14591         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14592         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
14593         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
14594         Delete.
14595         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
14596         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14597         (rs6000_option_override_internal): Assign to
14598         targetm.secondary_memory_needed rather than
14599         rs6000_secondary_memory_needed_ptr.
14600         (rs6000_secondary_memory_needed): Match hook interface.
14601         (rs6000_debug_secondary_memory_needed): Likewise.
14602         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
14603         * config/s390/s390.c (s390_secondary_memory_needed): New function.
14604         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14605         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
14606         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14607         (sparc_secondary_memory_needed): New function.
14608         * lra-constraints.c (check_and_process_move): Refer to
14609         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14610         in comment.
14611         (curr_insn_transform): Likewise.
14612         (process_alt_operands): Use targetm.secondary_memory_needed
14613         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14614         (check_secondary_memory_needed_p): Likewise.
14615         (choose_split_class): Likewise.
14616         * reload.c: Unconditionally include code that was previously
14617         conditional on SECONDARY_MEMORY_NEEDED.
14618         (push_secondary_reload): Use targetm.secondary_memory_needed
14619         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14620         (push_reload): Likewise.
14621         * reload1.c: Unconditionally include code that was previously
14622         conditional on SECONDARY_MEMORY_NEEDED.
14623         (choose_reload_regs): Use targetm.secondary_memory_needed
14624         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14625         (gen_reload): Likewise.
14626         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
14627
14628 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
14629             Alan Hayward  <alan.hayward@arm.com>
14630             David Sherwood  <david.sherwood@arm.com>
14631
14632         * target.def (secondary_memory_needed_mode): New hook:
14633         * targhooks.c (default_secondary_memory_needed_mode): Declare.
14634         * targhooks.h (default_secondary_memory_needed_mode): New function.
14635         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
14636         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
14637         * doc/tm.texi: Regenerate.
14638         * lra-constraints.c (check_and_process_move): Use
14639         targetm.secondary_memory_needed_mode instead of
14640         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
14641         (curr_insn_transform): Likewise.
14642         * reload.c (get_secondary_mem): Likewise.
14643         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14644         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
14645         function.
14646         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14647         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14648         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
14649         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14650         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
14651         Delete.
14652         * config/powerpcspe/powerpcspe-protos.h
14653         (rs6000_secondary_memory_needed_mode): Delete.
14654         * config/powerpcspe/powerpcspe.c
14655         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14656         (rs6000_secondary_memory_needed_mode): Make static.
14657         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14658         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
14659         Delete.
14660         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
14661         Redefine.
14662         (rs6000_secondary_memory_needed_mode): Make static.
14663         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14664         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
14665         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14666         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14667         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
14668         Redefine.
14669         (sparc_secondary_memory_needed_mode): New function.
14670         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
14671
14672 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
14673
14674         * config/aarch64/constraints.md (Umq): New constraint.
14675         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
14676         Change to use Umq.
14677         (mov<mode>): Update condition.
14678
14679 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14680
14681         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
14682         when bitposition is the same.
14683
14684 2017-09-13  Richard Biener  <rguenther@suse.de>
14685
14686         * dwarf2out.c (output_die_symbol): Remove.
14687         (output_die): Do not output a DIEs symbol.
14688
14689 2017-09-13  Richard Biener  <rguenther@suse.de>
14690
14691         PR middle-end/82128
14692         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
14693         default-def to avoid breaking iterator update with the weird
14694         interaction with cgraph_update_edges_for_call_stmt_node.
14695
14696 2017-09-13  Richard Biener  <rguenther@suse.de>
14697
14698         * tree-cfg.c (verify_gimple_assign_binary): Add verification
14699         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
14700         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
14701         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
14702
14703 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
14704
14705         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
14706         Disable pc relative literal load irrespective of
14707         TARGET_FIX_ERR_A53_84341 for default.
14708
14709 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
14710
14711         * config/sparc/sparc.c (output_return): Output the source location of
14712         the insn in the delay slot, if any.
14713         (output_sibcall): Likewise.
14714
14715 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
14716
14717         PR driver/81498
14718         * common.opt (-static-pie): New alias.
14719         (shared): Negate static-pie.
14720         (-no-pie): Update help text.
14721         (-pie): Likewise.
14722         (static-pie): New option.
14723         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
14724         -static-pie support.
14725         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
14726         (LINK_EH_SPEC): Likewise.
14727         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14728         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
14729         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
14730         * gcc.c (LINK_COMMAND_SPEC): Likewise.
14731         (init_gcc_specs): Likewise.
14732         (init_spec): Likewise.
14733         (display_help): Update help message for -pie.
14734         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
14735         -static-pie.
14736
14737 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
14738
14739         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
14740         (movdi_aarch64): Likewise.
14741         (movti_aarch64): Likewise.
14742
14743 2017-09-12 Simon Wright <simon@pushface.org>
14744
14745         PR target/80204
14746         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
14747         calculation of the minor version, always output as 0.
14748
14749 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
14750
14751         PR target/82112
14752         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
14753         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
14754         on it early, rather than manual conversion late.  For
14755         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
14756         instead of performing manual conversion.
14757
14758 2017-09-12  Carl Love  <cel@us.ibm.com>
14759
14760         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
14761         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
14762         vmulouw, vmulosw.
14763         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
14764         VMULOSW): Add definitions.
14765         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14766         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
14767         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
14768         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
14769         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
14770
14771 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
14772
14773         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
14774         types correctly.
14775         (movti_aarch64): Likewise.
14776         (movdf_aarch64): Likewise.
14777         (movtf_aarch64): Likewise.
14778         (load_pairdi): Likewise.
14779         (store_pairdi): Likewise.
14780         (load_pairdf): Likewise.
14781         (store_pairdf): Likewise.
14782         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
14783         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
14784         (ldr_got_small_<mode>): Likewise.
14785         (ldr_got_small_28k_<mode>): Likewise.
14786         (ldr_got_tiny): Likewise.
14787         * config/aarch64/iterators.md (ldst_sz): New.
14788         (ldpstp_sz): Likewise.
14789         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
14790         to store_16.
14791         (thunderx_load): Split load_8 to load_16.
14792         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
14793         load_8 to load_16.
14794         (thunderx2t99_storepair_basic): Split store_8 to store_16.
14795         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
14796         (xgene1_store_pair): Split store_8 to store_16.
14797         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
14798         (falkor_st_0_st_sd): Split store_8 to store_16.
14799
14800 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
14801
14802         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
14803         and store1/2/3/4 to store_4/8/12/16.
14804         * config/aarch64/aarch64.md: Update for rename.
14805         * config/arm/arm.md: Likewise.: Likewise.
14806         * config/arm/arm.c: Likewise.
14807         * config/arm/thumb1.md: Likewise.
14808         * config/arm/thumb2.md: Likewise.
14809         * config/arm/vfp.md: Likewise.
14810         * config/arm/arm-generic.md: Likewise.
14811         * config/arm/arm1020e.md: Likewise.
14812         * config/arm/arm1026ejs.md: Likewise.
14813         * config/arm/arm1136jfs.md: Likewise.
14814         * config/arm/arm926ejs.md: Likewise.
14815         * config/arm/cortex-a15.md: Likewise.
14816         * config/arm/cortex-a17.md: Likewise.
14817         * config/arm/cortex-a5.md: Likewise.
14818         * config/arm/cortex-a53.md: Likewise.
14819         * config/arm/cortex-a57.md: Likewise.
14820         * config/arm/cortex-a7.md: Likewise.
14821         * config/arm/cortex-a8.md: Likewise.
14822         * config/arm/cortex-a9.md: Likewise.
14823         * config/arm/cortex-m4.md: Likewise.
14824         * config/arm/cortex-m7.md: Likewise.
14825         * config/arm/cortex-r4.md: Likewise.
14826         * config/arm/exynos-m1.md: Likewise.
14827         * config/arm/fa526.md: Likewise.
14828         * config/arm/fa606te.md: Likewise.
14829         * config/arm/fa626te.md: Likewise.
14830         * config/arm/fa726te.md: Likewise.
14831         * config/arm/fmp626.md: Likewise.
14832         * config/arm/iwmmxt.md: Likewise.
14833         * config/arm/ldmstm.md: Likewise.
14834         * config/arm/marvell-pj4.md: Likewise.
14835         * config/arm/xgene1.md: Likewise.
14836         * config/aarch64/thunderx.md: Likewise.
14837         * config/aarch64/thunderx2t99.md: Likewise.
14838         * config/aarch64/falkor.md: Likewise.
14839
14840 2017-09-12  Martin Liska  <mliska@suse.cz>
14841
14842         * attribs.c (private_lookup_attribute): New function.
14843         * attribs.h (private_lookup_attribute): Declared here.
14844         (lookup_attribute): Called from this place.
14845
14846 2017-09-12  Richard Biener  <rguenther@suse.de>
14847
14848         PR tree-optimization/82157
14849         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
14850         stmts with side-effects.
14851
14852 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14853             Alan Hayward  <alan.hayward@arm.com>
14854             David Sherwood <david.sherwood@arm.com>
14855
14856         * target.def (hard_regno_nregs): New hook.
14857         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
14858         * targhooks.h (default_hard_regno_nregs): Declare.
14859         * targhooks.c (default_hard_regno_nregs): New function.
14860         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
14861         (TARGET_HARD_REGNO_NREGS): ...this hook.
14862         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
14863         (CLASS_MAX_NREGS): Likewise.
14864         * doc/tm.texi: Regenerate.
14865         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
14866         instead of HARD_REGNO_NREGS.
14867         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
14868         HARD_REGNO_NREGS in the comment.
14869         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
14870         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
14871         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
14872         Return an unsigned int.
14873         (TARGET_HARD_REGNO_NREGS): Redefine.
14874         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
14875         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
14876         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
14877         (arc_hard_regno_nregs): New function.
14878         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
14879         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
14880         (arm_hard_regno_nregs): New function.
14881         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
14882         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
14883         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
14884         (TARGET_HARD_REGNO_NREGS): Redefine.
14885         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
14886         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
14887         (HARD_REGNO_NREGS): Delete.
14888         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
14889         (cr16_hard_regno_nregs): New function.
14890         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
14891         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
14892         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
14893         (cris_hard_regno_nregs): New function.
14894         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
14895         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
14896         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
14897         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
14898         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
14899         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
14900         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
14901         (frv_hard_regno_nregs): Make static.  Take and return an
14902         unsigned int.
14903         (frv_class_max_nregs): Remove outdated copy of documentation.
14904         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
14905         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
14906         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
14907         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
14908         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
14909         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
14910         (TARGET_HARD_REGNO_NREGS): Redefine.
14911         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
14912         (CLASS_MAX_NREGS): Update comment.
14913         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
14914         (ia64_hard_regno_nregs): New function.
14915         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
14916         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
14917         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
14918         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
14919         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
14920         an unsigned int.
14921         (m32c_hard_regno_nregs): Likewise.  Make static.
14922         (TARGET_HARD_REGNO_NREGS): Redefine.
14923         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
14924         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
14925         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
14926         (m68k_hard_regno_nregs): New function.
14927         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
14928         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
14929         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
14930         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
14931         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
14932         Take and return an unsigned int.
14933         (TARGET_HARD_REGNO_NREGS): Redefine.
14934         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
14935         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
14936         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
14937         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
14938         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
14939         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
14940         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
14941         (msp430_hard_regno_nregs): Make static.  Take and return an
14942         unsigned int.
14943         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
14944         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
14945         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
14946         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
14947         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
14948         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
14949         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
14950         (TARGET_HARD_REGNO_NREGS): Redefine.
14951         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
14952         (PA_HARD_REGNO_NREGS): ...this.
14953         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
14954         (PA_HARD_REGNO_NREGS): ...this.
14955         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
14956         (pa_hard_regno_nregs): New function.
14957         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
14958         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
14959         (pdp11_hard_regno_nregs): New function.
14960         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
14961         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
14962         (rs6000_hard_regno_nregs_hook): New function.
14963         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
14964         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
14965         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
14966         Take and return an unsigned int.  Move earlier in file.
14967         (TARGET_HARD_REGNO_NREGS): Redefine.
14968         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
14969         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
14970         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
14971         (rl78_hard_regno_nregs): Make static.  Take and return an
14972         unsigned int.
14973         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
14974         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
14975         (rs6000_hard_regno_nregs_hook): New function.
14976         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
14977         * config/rx/rx.c (rx_hard_regno_nregs): New function.
14978         (TARGET_HARD_REGNO_NREGS): Redefine.
14979         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
14980         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
14981         instead of HARD_REGNO_NREGS.
14982         (s390_hard_regno_nregs): New function.
14983         (s390_hard_regno_mode_ok): Add comment from s390.h.
14984         (TARGET_HARD_REGNO_NREGS): Redefine.
14985         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
14986         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
14987         (sh_hard_regno_nregs): New function.
14988         (sh_pass_in_reg_p): Use it.
14989         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
14990         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
14991         (sparc_hard_regno_nregs): New function.
14992         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
14993         * config/spu/spu.c (spu_hard_regno_nregs): New function.
14994         (spu_function_arg_advance): Use it, supplying a valid register number.
14995         (TARGET_HARD_REGNO_NREGS): Redefine.
14996         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
14997         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
14998         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
14999         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
15000         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
15001         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
15002         (CLASS_MAX_NREGS): Remove copy of old documentation.
15003         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
15004         (visium_hard_regno_nregs): New function.
15005         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
15006         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
15007         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15008         xtensa_hard_regno_nregs): New function.
15009         * system.h (HARD_REGNO_NREGS): Poison.
15010
15011 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15012
15013         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
15014         hard_regno_nregs instead of HARD_REGNO_NREGS.
15015         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15016         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
15017         (c6x_expand_epilogue): Likewise.
15018         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15019         (frv_read_iacc_argument): Likewise.
15020         * config/sh/sh.c: Include regs.h.
15021         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15022         (regs_used): Likewise.
15023         (output_stack_adjust): Likewise.
15024         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
15025         * expmed.c: Include regs.h.
15026         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15027         * ree.c: Include regs.h.
15028         (combine_reaching_defs): Use hard_regno_nregs instead of
15029         HARD_REGNO_NREGS.
15030         (add_removable_extension): Likewise.
15031
15032 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15033
15034         * regs.h (hard_regno_nregs): Turn into a function.
15035         (end_hard_regno): Update accordingly.
15036         * caller-save.c (setup_save_areas): Likewise.
15037         (save_call_clobbered_regs): Likewise.
15038         (replace_reg_with_saved_mem): Likewise.
15039         (insert_restore): Likewise.
15040         (insert_save): Likewise.
15041         * combine.c (can_change_dest_mode): Likewise.
15042         (move_deaths): Likewise.
15043         (distribute_notes): Likewise.
15044         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
15045         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
15046         (rs6000_split_multireg_move): Likewise.
15047         (rs6000_register_move_cost): Likewise.
15048         (rs6000_memory_move_cost): Likewise.
15049         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
15050         (rs6000_split_multireg_move): Likewise.
15051         (rs6000_register_move_cost): Likewise.
15052         (rs6000_memory_move_cost): Likewise.
15053         * cselib.c (cselib_reset_table): Likewise.
15054         (cselib_lookup_1): Likewise.
15055         * emit-rtl.c (set_mode_and_regno): Likewise.
15056         * function.c (aggregate_value_p): Likewise.
15057         * ira-color.c (setup_profitable_hard_regs): Likewise.
15058         (check_hard_reg_p): Likewise.
15059         (calculate_saved_nregs): Likewise.
15060         (assign_hard_reg): Likewise.
15061         (improve_allocation): Likewise.
15062         (calculate_spill_cost): Likewise.
15063         * ira-emit.c (modify_move_list): Likewise.
15064         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
15065         (ira_hard_reg_in_set_p): Likewise.
15066         * ira.c (setup_reg_mode_hard_regset): Likewise.
15067         (clarify_prohibited_class_mode_regs): Likewise.
15068         (check_allocation): Likewise.
15069         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15070         (lra_setup_reg_renumber): Likewise.
15071         (setup_try_hard_regno_pseudos): Likewise.
15072         (spill_for): Likewise.
15073         (assign_hard_regno): Likewise.
15074         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
15075         * lra-constraints.c (in_class_p): Likewise.
15076         (lra_constraint_offset): Likewise.
15077         (simplify_operand_subreg): Likewise.
15078         (lra_constraints): Likewise.
15079         (split_reg): Likewise.
15080         (split_if_necessary): Likewise.
15081         (invariant_p): Likewise.
15082         (inherit_in_ebb): Likewise.
15083         * lra-lives.c (process_bb_lives): Likewise.
15084         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
15085         (get_hard_regs): Likewise.
15086         (do_remat): Likewise.
15087         * lra-spills.c (assign_spill_hard_regs): Likewise.
15088         * mode-switching.c (create_pre_exit): Likewise.
15089         * postreload.c (reload_combine_recognize_pattern): Likewise.
15090         * recog.c (peep2_find_free_register): Likewise.
15091         * regcprop.c (kill_value_regno): Likewise.
15092         (set_value_regno): Likewise.
15093         (copy_value): Likewise.
15094         (maybe_mode_change): Likewise.
15095         (find_oldest_value_reg): Likewise.
15096         (copyprop_hardreg_forward_1): Likewise.
15097         * regrename.c (check_new_reg_p): Likewise.
15098         (regrename_do_replace): Likewise.
15099         * reload.c (push_reload): Likewise.
15100         (combine_reloads): Likewise.
15101         (find_dummy_reload): Likewise.
15102         (operands_match_p): Likewise.
15103         (find_reloads): Likewise.
15104         (find_equiv_reg): Likewise.
15105         (reload_adjust_reg_for_mode): Likewise.
15106         * reload1.c (count_pseudo): Likewise.
15107         (count_spilled_pseudo): Likewise.
15108         (find_reg): Likewise.
15109         (clear_reload_reg_in_use): Likewise.
15110         (free_for_value_p): Likewise.
15111         (allocate_reload_reg): Likewise.
15112         (choose_reload_regs): Likewise.
15113         (reload_adjust_reg_for_temp): Likewise.
15114         (emit_reload_insns): Likewise.
15115         (delete_output_reload): Likewise.
15116         * rtlanal.c (subreg_get_info): Likewise.
15117         * sched-deps.c (sched_analyze_reg): Likewise.
15118         * sel-sched.c (init_regs_for_mode): Likewise.
15119         (mark_unavailable_hard_regs): Likewise.
15120         (choose_best_reg_1): Likewise.
15121         (verify_target_availability): Likewise.
15122         * valtrack.c (dead_debug_insert_temp): Likewise.
15123         * var-tracking.c (track_loc_p): Likewise.
15124         (emit_note_insn_var_location): Likewise.
15125         * varasm.c (make_decl_rtl): Likewise.
15126         * reginfo.c (choose_hard_reg_mode): Likewise.
15127         (init_reg_modes_target): Refer directly to
15128         this_target_regs->x_hard_regno_nregs.
15129
15130 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15131
15132         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
15133         instead of hard_regno_nregs.
15134
15135 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15136
15137         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
15138         end_hard_regno instead of hard_regno_nregs.
15139         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
15140         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
15141         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
15142         * ira-color.c (improve_allocation): Likewise.
15143         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15144         * lra-lives.c (mark_regno_live): Likewise.
15145         (mark_regno_dead): Likewise.
15146         * lra-remat.c (operand_to_remat): Likewise.
15147         * lra.c (collect_non_operand_hard_regs): Likewise.
15148         * postreload.c (reload_combine_note_store): Likewise.
15149         (move2add_valid_value_p): Likewise.
15150         * reload.c (regno_clobbered_p): Likewise.
15151
15152 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15153
15154         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
15155         hard_regno_nregs.
15156         * config/v850/v850.c (v850_reorg): Likewise.
15157         * reload.c (refers_to_regno_for_reload_p): Likewise.
15158         (find_equiv_reg): Likewise.
15159         * reload1.c (reload_reg_reaches_end_p): Likewise.
15160
15161 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15162
15163         * caller-save.c (add_used_regs): Use REG_NREGS instead of
15164         hard_regno_nregs.
15165         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
15166         * config/arm/arm.c (output_move_neon): Likewise.
15167         (arm_attr_length_move_neon): Likewise.
15168         (neon_split_vcombine): Likewise.
15169         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
15170         (c6x_mark_reg_written): Likewise.
15171         (c6x_dwarf_register_span): Likewise.
15172         * config/i386/i386.c (ix86_save_reg): Likewise.
15173         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
15174         (rws_access_reg): Likewise.
15175         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15176         * mode-switching.c (create_pre_exit): Likewise.
15177         * ree.c (combine_reaching_defs): Likewise.
15178         (add_removable_extension): Likewise.
15179         * regcprop.c (find_oldest_value_reg): Likewise.
15180         (copyprop_hardreg_forward_1): Likewise.
15181         * reload.c (reload_inner_reg_of_subreg): Likewise.
15182         (push_reload): Likewise.
15183         (combine_reloads): Likewise.
15184         (find_dummy_reload): Likewise.
15185         (reload_adjust_reg_for_mode): Likewise.
15186         * reload1.c (find_reload_regs): Likewise.
15187         (forget_old_reloads_1): Likewise.
15188         (reload_reg_free_for_value_p): Likewise.
15189         (reload_adjust_reg_for_temp): Likewise.
15190         (emit_reload_insns): Likewise.
15191         (delete_output_reload): Likewise.
15192         * sel-sched.c (choose_best_reg_1): Likewise.
15193         (choose_best_pseudo_reg): Likewise.
15194
15195 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15196             Alan Hayward  <alan.hayward@arm.com>
15197             David Sherwood <david.sherwood@arm.com>
15198
15199         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
15200         * target.def (slow_unaligned_access): New hook.
15201         * targhooks.h (default_slow_unaligned_access): Declare.
15202         * targhooks.c (default_slow_unaligned_access): New function.
15203         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
15204         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
15205         * doc/tm.texi: Regenerate.
15206         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
15207         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
15208         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
15209         definition.
15210         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
15211         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
15212         Redefine.
15213         (rs6000_slow_unaligned_access): New function.
15214         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15215         (expand_block_compare): Likewise.
15216         (expand_strn_compare): Likewise.
15217         (rs6000_rtx_costs): Likewise.
15218         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
15219         (riscv_slow_unaligned_access): Likewise.
15220         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
15221         (riscv_slow_unaligned_access_p): ...this and make static.
15222         (riscv_option_override): Update accordingly.
15223         (riscv_slow_unaligned_access): New function.
15224         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15225         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
15226         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15227         (rs6000_slow_unaligned_access): New function.
15228         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15229         (rs6000_rtx_costs): Likewise.
15230         * config/rs6000/rs6000-string.c (expand_block_compare)
15231         (expand_strn_compare): Use targetm.slow_unaligned_access instead
15232         of SLOW_UNALIGNED_ACCESS.
15233         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
15234         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
15235         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
15236         of SLOW_UNALIGNED_ACCESS.
15237         * expmed.c (simple_mem_bitfield_p): Likewise.
15238         * expr.c (alignment_for_piecewise_move): Likewise.
15239         (emit_group_load_1): Likewise.
15240         (emit_group_store): Likewise.
15241         (copy_blkmode_from_reg): Likewise.
15242         (emit_push_insn): Likewise.
15243         (expand_assignment): Likewise.
15244         (store_field): Likewise.
15245         (expand_expr_real_1): Likewise.
15246         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
15247         * lra-constraints.c (simplify_operand_subreg): Likewise.
15248         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
15249         * gimple-ssa-store-merging.c: Likewise in block comment at start
15250         of file.
15251         * tree-ssa-strlen.c: Include target.h.
15252         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
15253         of SLOW_UNALIGNED_ACCESS.
15254         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
15255
15256 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15257
15258         PR rtl-optimization/82185
15259         * expmed.c (emit_store_flag_int): Only test tem if it has been
15260         initialized.
15261
15262 2017-09-12  Richard Biener  <rguenther@suse.de>
15263
15264         PR middle-end/82149
15265         * match.pd ((FTYPE) N CMP CST): Fix typo.
15266
15267 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
15268
15269         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
15270         attribute.
15271         (mips_near_type_p): Add 'short_call' attribute as a synonym
15272         for 'near'.
15273         * doc/extend.texi (short_call): Document new function attribute.
15274
15275 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15276
15277         PR target/82112
15278         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
15279         assertion check that in the condition.
15280         (get_atomic_generic_size): Likewise.  Before testing if parameter
15281         has pointer type, if it has array type, call for C++
15282         default_conversion to perform array-to-pointer conversion.
15283
15284 2017-09-12  Richard Biener  <rguenther@suse.de>
15285
15286         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
15287         for operations we cannot scalarize.
15288
15289 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
15290
15291         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
15292         vectors heap vectors.  Clean up comments.
15293         Make visited_bbs a reference.
15294         (profitable_jump_thread_path): Make GC
15295         vectors heap vectors.  Clean up comments.
15296         Misc cleanups.
15297         (convert_and_register_jump_thread_path): Make GC vectors heap
15298         vectors.
15299         (check_subpath_and_update_thread_path): Same.  Clean up comments.
15300         Make visited_bbs a reference.
15301         (handle_phi): Abstract common code to to
15302         register_jump_thread_path_if_profitable.
15303         Rename VAR_BB to DEF_BB.
15304         Update comments.
15305         Make GC vectors heap vectors.
15306         Make visited_bbs a reference.
15307         (handle_assignment): Same.
15308         (register_jump_thread_path_if_profitable): New.
15309         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
15310         DEF_BB.
15311         Make GC vectors heap vectors.  Clean up comments.
15312         Make visited_bbs a reference.
15313         (find_jump_threads_backwards): Make visited_bbs live in the stack.
15314         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
15315         comment.
15316
15317 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
15318
15319         PR target/82181
15320         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
15321         words of E_DImode object are reachable by xtensa_uimm8x4 access.
15322
15323 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
15324
15325         Revert r251800 and r251799.
15326
15327 2017-09-11  Martin Jambor  <mjambor@suse.cz>
15328
15329         PR hsa/82119
15330         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
15331         arguments in advance.
15332         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
15333         use it to find predecessor edges.
15334         (naive_outof_ssa): Collect vector of predecessors.
15335
15336 2017-09-08  Jason Merrill  <jason@redhat.com>
15337
15338         PR c++/70029 - ICE with ref-qualifier and -flto
15339         * langhooks.h (struct lang_hooks_for_types): Add
15340         copy_lang_qualifiers.
15341         * attribs.c (build_type_attribute_qual_variant): Use it.
15342         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
15343         NULL.
15344         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
15345         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
15346
15347 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
15348
15349         PR target/81988
15350         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
15351         (*mulsi3_sp64): New instruction.
15352         (mulsi3): New expander.
15353
15354 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
15355
15356         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
15357
15358 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15359
15360         * sancov.c: Include memmodel.h.
15361
15362 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
15363
15364         PR target/80897
15365         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
15366         large offsets.
15367
15368 2017-09-07  Carl Love  <cel@us.ibm.com>
15369
15370         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
15371         the sldi instruction.
15372
15373 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
15374
15375         * sancov.c: Include tm_p.h.
15376
15377 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
15378
15379         PR target/81979
15380         * output.h (switch_to_other_text_partition): New declaration.
15381         * varasm.c (switch_to_other_text_partition): New function.
15382         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
15383         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
15384         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
15385         to the other text partition before emitting LCL label and switch back
15386         after emitting the word after it.
15387
15388 2017-09-07  Richard Biener  <rguenther@suse.de>
15389
15390         * passes.def (pass_split_crit_edges): Remove instance before PRE.
15391         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
15392         critical edges here, after loop init.
15393         (pass_data_pre): Remove PROP_no_crit_edges flags.
15394         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
15395         for valueization of call args to avoid leaking VN_TOP.
15396         (visit_use): Assert we do not visit default defs.
15397         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
15398         Use error_mark_node to more easily detect leaking VN_TOP.
15399         All default-defs are varying, not VN_TOP.  Mark them visited.
15400         (run_scc_vn): Make code match comment.
15401
15402 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
15403
15404         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
15405         OPTION_MASK_FLOAT128_KEYWORD.
15406         (POWERPC_MASKS): Likewise.
15407         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
15408         support for the -mfloat128-type option, and make -mfloat128
15409         default on PowerPC Linux systems.  Define or undefine
15410         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
15411         Define __float128 to be __ieee128 if IEEE 128-bit support is
15412         enabled, or undefine it.
15413         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
15414         Delete defining __FLOAT128_TYPE__.
15415         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
15416         -mfloat128-type option and make -mfloat128 default on PowerPC
15417         Linux systems.
15418         (TARGET_FLOAT128_TYPE): Likewise.
15419         (-mfloat128-type): Likewise.
15420         * config/rs6000/rs6000.c (rs6000_option_override_internal):
15421         Delete the -mfloat128-type option and make -mfloat128 default on
15422         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
15423         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
15424         128-bit floating point is enabled.  Change tests from using
15425         -mfloat128-type to -mfloat128.
15426         (rs6000_mangle_type): Use the correct mangling for the __float128
15427         type even if normal long double is restricted to 64-bits.
15428         (floatn_mode): Enable the _Float128 type by default on VSX Linux
15429         systems.
15430         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
15431         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
15432         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
15433         -mfloat128-type.
15434         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
15435         documentation for -mfloat128.
15436
15437 2017-09-06  Olivier Hainque  <hainque@adacore.com>
15438
15439         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
15440
15441 2017-09-06  Wish Wu  <wishwu007@gmail.com>
15442             Jakub Jelinek  <jakub@redhat.com>
15443
15444         * asan.c (initialize_sanitizer_builtins): Add
15445         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
15446         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
15447         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
15448         BT_FN_VOID_UINT64_PTR variables.
15449         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
15450         (BT_FN_VOID_UINT16_UINT16): Likewise.
15451         (BT_FN_VOID_UINT32_UINT32): Likewise.
15452         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
15453         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
15454         (BT_FN_VOID_UINT64_PTR): Likewise.
15455         * common.opt (flag_sanitize_coverage): New variable.
15456         (fsanitize-coverage=trace-pc): Remove.
15457         (fsanitize-coverage=): Add.
15458         * flag-types.h (enum sanitize_coverage_code): New enum.
15459         * fold-const.c (fold_range_test): Disable non-short-circuit
15460         optimization if flag_sanitize_coverage.
15461         (fold_truth_andor): Likewise.
15462         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
15463         * opts.c (COVERAGE_SANITIZER_OPT): Define.
15464         (coverage_sanitizer_opts): New array.
15465         (get_closest_sanitizer_option): Add OPTS argument, handle also
15466         OPT_fsanitize_coverage_.
15467         (parse_sanitizer_options): Adjusted to also handle
15468         OPT_fsanitize_coverage_.
15469         (common_handle_option): Add OPT_fsanitize_coverage_.
15470         * sancov.c (instrument_comparison, instrument_switch): New function.
15471         (sancov_pass): Add trace-cmp support.
15472         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
15473         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
15474         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
15475         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
15476         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
15477         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
15478         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
15479         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
15480         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
15481         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
15482
15483 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
15484
15485         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
15486         error.  Only quit immediately if parsing is complete.
15487         (BEGIN): Initialize fatal_err and parse_done.
15488         (begin fpu, end fpu): Check number of arguments.
15489         (begin arch, end arch): Likewise.
15490         (begin cpu, end cpu): Likewise.
15491         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
15492         (optalias): Likewise.
15493
15494 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
15495
15496         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
15497         * config/arm/arm-isa.h: Delete.  Move definitions to ...
15498         * arm-cpus.in: ... here.  Use new feature and fgroup values.
15499         * config/arm/arm.c (arm_option_override): Use lower case for feature
15500         bit names.
15501         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
15502         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
15503         * config/arm/parsecpu.awk (END): Add new command 'isa'.
15504         (isa_pfx): Delete.
15505         (print_isa_bits_for): New function.
15506         (gen_isa): New function.
15507         (gen_comm_data): Use print_isa_bits_for.
15508         (define feature): New keyword.
15509         (define fgroup): New keyword.
15510         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
15511         (arm-isa.h): Add rule to generate file.
15512         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
15513         case for feature bit names.
15514
15515 2017-09-06  Richard Biener  <rguenther@suse.de>
15516
15517         * tree-ssa-pre.c (NECESSARY): Remove.
15518         (create_expression_by_pieces): Do not touch pass-local flags.
15519         (insert_into_preds_of_block): Likewise.
15520         (do_pre_regular_insertion): Likewise.
15521         (eliminate_insert): Likewise.
15522         (eliminate_dom_walker::before_dom_children): Likewise.
15523         (fini_eliminate): Do not look at inserted_exprs.
15524         (mark_operand_necessary): Remove.
15525         (remove_dead_inserted_code): Replace with simple work-list
15526         algorithm based on inserted_exprs and SSA uses.
15527         (pass_pre::execute): Re-order fini_eliminate and
15528         remove_dead_inserted_code.
15529
15530 2017-09-06  Olivier Hainque  <hainque@adacore.com>
15531
15532         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
15533         for VxWorks 7.  Adjust surrounding comments.
15534
15535 2017-09-06  Richard Biener  <rguenther@suse.de>
15536
15537         * gimple-ssa-strength-reduction.c
15538         (find_candidates_dom_walker::before_dom_children): Also allow
15539         pointer types.
15540
15541 2017-09-06  Richard Biener  <rguenther@suse.de>
15542
15543         PR tree-optimization/82108
15544         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
15545         for gap in the non-permutation SLP case.
15546
15547 2017-09-06  Martin Jambor  <mjambor@suse.cz>
15548
15549         PR tree-optimization/82078
15550         * tree-sra.c (sort_and_splice_var_accesses): Move call to
15551         add_access_to_work_queue...
15552         (build_accesses_from_assign): ...here.
15553         (propagate_all_subaccesses): Make sure racc is the group
15554         representative, if there is one.
15555
15556 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
15557
15558         PR middle-end/82095
15559         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
15560         NULL DECL_INITIAL.
15561
15562 2017-09-06  Richard Biener  <rguenther@suse.de>
15563
15564         * gimple-ssa-strength-reduction.c
15565         (find_candidates_dom_walker::before_doom_children): Use a
15566         type and not a mode check.
15567
15568 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15569
15570         PR target/77308
15571         * config/arm/predicates.md (arm_general_adddi_operand): Create new
15572         non-vfp predicate.
15573         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
15574
15575 2017-09-05  Jeff Law  <law@redhat.com>
15576
15577         PR tree-optimization/64910
15578         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
15579         cases where we have 3 or more operands.
15580
15581 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
15582
15583         PR middle-end/81768
15584         * omp-low.c (lower_omp_for): Recompute tree invariant if
15585         gimple_omp_for_initial/final is ADDR_EXPR.
15586
15587         PR middle-end/81768
15588         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
15589         into gimple val before gimplification fo the COND_EXPR.
15590
15591 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
15592
15593         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
15594         REGION_COPY argument.
15595         (thread_through_all_blocks): Remove unused argument to
15596         duplicate_thread_path.
15597
15598 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15599             Alan Hayward  <alan.hayward@arm.com>
15600             David Sherwood  <david.sherwood@arm.com>
15601
15602         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
15603         Take a scalar_mode rather than a machine_mode.
15604         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15605         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
15606         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15607         (aarch64_gen_adjusted_ldpstp): Likewise.
15608         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
15609
15610 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15611             Alan Hayward  <alan.hayward@arm.com>
15612             David Sherwood  <david.sherwood@arm.com>
15613
15614         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
15615         Take a scalar_int_mode instead of a machine_mode.
15616         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
15617         (aarch64_output_scalar_simd_mov_immediate): Likewise.
15618         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
15619         (aarch64_simd_attr_length_rglist): Delete.
15620         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
15621         a scalar_int_mode instead of a machine_mode.
15622         (aarch64_add_offset): Likewise.
15623         (aarch64_internal_mov_immediate): Likewise
15624         (aarch64_add_constant_internal): Likewise.
15625         (aarch64_add_constant): Likewise.
15626         (aarch64_movw_imm): Likewise.
15627         (aarch64_rtx_arith_op_extract_p): Likewise.
15628         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
15629         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
15630         Remove assert that the mode isn't a vector.
15631         (aarch64_output_scalar_simd_mov_immediate): Likewise.
15632         (aarch64_expand_mov_immediate): Update calls after above changes.
15633         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
15634         (aarch64_and_bitmask_imm): Check for scalar integer modes.
15635         (aarch64_move_imm): Likewise.
15636         (aarch64_can_const_movi_rtx_p): Likewise.
15637         (aarch64_strip_extend): Likewise.
15638         (aarch64_extr_rtx_p): Likewise.
15639         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
15640         a CONST_INT when the mode parameter is VOIDmode.
15641         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
15642
15643 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15644
15645         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
15646         * stor-layout.c (bitwise_mode_for_mode): Likewise.
15647         (bitwise_type_for_mode): Update accordingly.
15648
15649 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15650
15651         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
15652         * stor-layout.c (mode_for_size_tree): Likewise.
15653         (mode_for_array): Update accordingly.
15654         (layout_decl): Likewise.
15655         (compute_record_mode): Likewise.  Only set the mode once.
15656
15657 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15658
15659         * target.def (get_mask_mode): Change return type to opt_mode.
15660         Expand commentary.
15661         * doc/tm.texi: Regenerate.
15662         * targhooks.h (default_get_mask_mode): Return an opt_mode.
15663         * targhooks.c (default_get_mask_mode): Likewise.
15664         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
15665         * optabs-query.c (can_vec_mask_load_store_p): Update use of
15666         targetm.get_mask_mode.
15667         * tree.c (build_truth_vector_type): Likewise.
15668
15669 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15670
15671         * machmode.h (mode_for_vector): Return an opt_mode.
15672         * stor-layout.c (mode_for_vector): Likewise.
15673         (mode_for_int_vector): Update accordingly.
15674         (layout_type): Likewise.
15675         * config/i386/i386.c (emit_memmov): Likewise.
15676         (ix86_expand_set_or_movmem): Likewise.
15677         (ix86_expand_vector_init): Likewise.
15678         (ix86_get_mask_mode): Likewise.
15679         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
15680         Likewise.
15681         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
15682         * expmed.c (extract_bit_field_1): Likewise.
15683         * expr.c (expand_expr_real_2): Likewise.
15684         * optabs-query.c (can_vec_perm_p): Likewise.
15685         (can_vec_mask_load_store_p): Likewise.
15686         * optabs.c (expand_vec_perm): Likewise.
15687         * targhooks.c (default_get_mask_mode): Likewise.
15688         * tree-vect-stmts.c (vectorizable_store): Likewise.
15689         (vectorizable_load): Likewise.
15690         (get_vectype_for_scalar_type_and_size): Likewise.
15691
15692 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15693
15694         * machmode.h (mode_for_int_vector): New function.
15695         * stor-layout.c (mode_for_int_vector): Likewise.
15696         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
15697         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
15698         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15699         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
15700         (s390_expand_vcond): Likewise.
15701
15702 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15703
15704         * machmode.h (opt_machine_mode): New type.
15705         (opt_mode<T>): Allow construction from anything that can be
15706         converted to a T.
15707         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
15708         (mode_for_size): Return an opt_machine_mode.
15709         * stor-layout.c (mode_for_size): Likewise.
15710         (mode_for_size_tree): Update call accordingly.
15711         (bitwise_mode_for_mode): Likewise.
15712         (make_fract_type): Likewise.
15713         (make_accum_type): Likewise.
15714         * caller-save.c (replace_reg_with_saved_mem): Update call
15715         accordingly.
15716         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15717         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15718         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15719         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15720         * expmed.c (extract_bit_field_1): Likewise.
15721         * reload.c (get_secondary_mem): Likewise.
15722         * varasm.c (assemble_integer): Likewise.
15723         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
15724         early-out.
15725
15726 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15727
15728         * machmode.h (decimal_float_mode_for_size): New function.
15729         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
15730         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
15731         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
15732         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
15733         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
15734         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
15735
15736 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15737
15738         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
15739         (get_builtin_sync_mode): Likewise.
15740         (expand_ifn_atomic_compare_exchange): Likewise.
15741         (expand_builtin_atomic_clear): Likewise.
15742         (expand_builtin_atomic_test_and_set): Likewise.
15743         (fold_builtin_atomic_always_lock_free): Likewise.
15744         * calls.c (compute_argument_addresses): Likewise.
15745         (emit_library_call_value_1): Likewise.
15746         (store_one_arg): Likewise.
15747         * combine.c (combine_instructions): Likewise.
15748         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
15749         * config/arm/arm.c (arm_function_value): Likewise.
15750         (aapcs_allocate_return_reg): Likewise.
15751         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
15752         * config/i386/i386.c (construct_container): Likewise.
15753         (ix86_gimplify_va_arg): Likewise.
15754         (ix86_expand_sse_cmp): Likewise.
15755         (emit_memmov): Likewise.
15756         (emit_memset): Likewise.
15757         (expand_small_movmem_or_setmem): Likewise.
15758         (ix86_expand_pextr): Likewise.
15759         (ix86_expand_pinsr): Likewise.
15760         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
15761         * config/microblaze/microblaze.c (microblaze_block_move_straight):
15762         Likewise.
15763         * config/mips/mips.c (mips_function_value_1) Likewise.
15764         (mips_block_move_straight): Likewise.
15765         (mips_expand_ins_as_unaligned_store): Likewise.
15766         * config/powerpcspe/powerpcspe.c
15767         (rs6000_darwin64_record_arg_advance_flush): Likewise.
15768         (rs6000_darwin64_record_arg_flush): Likewise.
15769         * config/rs6000/rs6000.c
15770         (rs6000_darwin64_record_arg_advance_flush): Likewise.
15771         (rs6000_darwin64_record_arg_flush): Likewise.
15772         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
15773         (sparc_function_value_1): Likewise.
15774         * config/spu/spu.c (adjust_operand): Likewise.
15775         (spu_emit_branch_or_set): Likewise.
15776         (arith_immediate_p): Likewise.
15777         * emit-rtl.c (gen_lowpart_common): Likewise.
15778         * expr.c (expand_expr_real_1): Likewise.
15779         * function.c (assign_parm_setup_block): Likewise.
15780         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
15781         * reload1.c (alter_reg): Likewise.
15782         * stor-layout.c (mode_for_vector): Likewise.
15783         (layout_type): Likewise.
15784
15785 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15786
15787         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
15788         (spu_convert_move): Likewise.
15789         * lower-subreg.c (resolve_simple_move): Likewise.
15790
15791 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15792
15793         PR target/81833
15794         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
15795         define_insn to a define_expand.
15796         (altivec_vsum2sws_direct): New define_insn.
15797         (altivec_vsumsws): Convert from a define_insn to a define_expand.
15798
15799 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
15800
15801         * config/arm/arm.c (arm_option_params_internal): Improve setting of
15802         max_insns_skipped.
15803
15804 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
15805
15806         PR target/59501
15807         PR target/81624
15808         PR target/81769
15809         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
15810         realign stack if stack alignment needed is less than incoming
15811         stack boundary.
15812
15813 2017-09-05  Marek Polacek  <polacek@redhat.com>
15814
15815         PR sanitizer/82072
15816         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
15817         check earlier.
15818
15819 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
15820
15821         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
15822
15823 2017-09-05  Richard Biener  <rguenther@suse.de>
15824
15825         PR tree-optimization/82084
15826         * fold-const.c (can_native_encode_string_p): Handle wide characters.
15827
15828 2017-09-05  Richard Biener  <rguenther@suse.de>
15829
15830         PR tree-optimization/82102
15831         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
15832
15833 2017-09-05  Martin Liska  <mliska@suse.cz>
15834
15835         PR tree-optimization/82032
15836         * tree-cfg.c (generate_range_test): New function.
15837         * tree-cfg.h (generate_range_test): Declared here.
15838         * tree-cfgcleanup.c (convert_single_case_switch): New function.
15839         (cleanup_control_expr_graph): Use it.
15840         * tree-switch-conversion.c (try_switch_expansion): Remove
15841         assert.
15842         (emit_case_nodes): Use generate_range_test.
15843
15844 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
15845
15846         PR target/82098
15847         * config/i386/i386.md (*<btsc><mode>_mask): Add
15848         TARGET_USE_BT to insn constraint.
15849         (*btr<mode>_mask): Ditto.
15850
15851 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
15852
15853         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
15854         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
15855
15856 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15857
15858         PR target/77308
15859         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
15860         TARGET_NEON and TARGET_IWMMXT.
15861         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
15862         TARGET_NEON and TARGET_IWMMXT.
15863         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
15864
15865 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
15866
15867         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
15868         (ix86_rewrite_tls_address): Ditto.
15869         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
15870         (ix86_rewrite_tls_address_1): Ditto.
15871         (ix86_rewrite_tls_address): Ditto.
15872         * config/i386/predicates.md (tls_address_pattern): New predicate.
15873         * config/i386/i386.md (TLS address splitter): New splitter.
15874
15875 2017-09-04  Richard Biener  <rguenther@suse.de>
15876
15877         PR tree-optimization/82084
15878         * fold-const.h (can_native_encode_string_p): Declare.
15879         * fold-const.c (can_native_encode_string_p): Factor out from ...
15880         (native_encode_string): ... here.
15881         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
15882         vectorizing stores from constants we later cannot handle.
15883
15884 2017-09-04  Marek Polacek  <polacek@redhat.com>
15885
15886         PR c/81783
15887         * doc/invoke.texi: Update -Wtautological-compare documentation.
15888
15889 2017-09-04  Jeff Law  <law@redhat.com>
15890
15891         PR tree-optimization/64910
15892         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
15893         swap the first and last operand if the last is a constant.
15894
15895 2017-09-04  Marek Polacek  <polacek@redhat.com>
15896
15897         PR sanitizer/82072
15898         * convert.c (do_narrow): When sanitizing signed integer overflows,
15899         bail out for signed types.
15900         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
15901
15902 2017-09-04  Richard Biener  <rguenther@suse.de>
15903
15904         PR tree-optimization/82060
15905         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15906         Move devirtualization after stmt folding and before EH/AB/noreturn
15907         cleanup to get the stmt refs canonicalized.  Use a bool instead
15908         of gimple_modified_p since that doesn't work for NOPs.  Schedule
15909         NOPs generated by folding for removal.
15910
15911 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15912             Alan Hayward  <alan.hayward@arm.com>
15913             David Sherwood  <david.sherwood@arm.com>
15914
15915         * coretypes.h (pad_direction): New enum.
15916         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
15917         (FUNCTION_ARG_PADDING): Likewise.
15918         * target.def (function_arg_padding): New hook.
15919         * targhooks.h (default_function_arg_padding): Declare.
15920         * targhooks.c (default_function_arg_padding): New function.
15921         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
15922         (TARGET_FUNCTION_ARG_PADDING): ...this.
15923         * doc/tm.texi: Regenerate.
15924         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
15925         instead of direction.
15926         (compute_argument_addresses): Likewise.
15927         (load_register_parameters): Likewise.
15928         (emit_library_call_value_1): Likewise.
15929         (store_one_arg): Use targetm.calls.function_arg_padding instead
15930         of FUNCTION_ARG_PADDING.
15931         (must_pass_in_stack_var_size_or_pad): Likewise.
15932         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
15933         (emit_group_store): Likewise.
15934         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
15935         instead of FUNCTION_ARG_PADDING.
15936         (emit_push_insn): Likewise, and propagate enum change throughout
15937         function.
15938         * function.h (direction): Delete.
15939         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
15940         of direction.
15941         * function.c (assign_parm_find_stack_rtl): Likewise.
15942         (assign_parm_setup_block_p): Likewise.
15943         (assign_parm_setup_block): Likewise.
15944         (gimplify_parameters): Likewise.
15945         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
15946         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
15947         function.
15948         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
15949         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15950         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
15951         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
15952         (aarch64_function_arg_padding): ...this new function.
15953         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
15954         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15955         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
15956         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15957         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
15958         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15959         (arm_pad_arg_upward): Replace with...
15960         (arm_function_arg_padding): ...this new function.
15961         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
15962         of direction.
15963         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
15964         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
15965         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15966         (ia64_hpux_function_arg_padding): Replace with...
15967         (ia64_function_arg_padding): ...this new function.  Use pad_direction
15968         instead of direction.  Check for TARGET_HPUX.
15969         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
15970         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15971         (iq2000_function_arg_padding): New function.
15972         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
15973         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
15974         (mips_function_arg_padding): ...this new function.
15975         (mips_pad_reg_upward): Update accordingly.
15976         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15977         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
15978         targetm.calls.function_arg_padding.
15979         (FUNCTION_ARG_PADDING): Delete.
15980         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15981         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
15982         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15983         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
15984         (nios2_block_reg_padding): Return pad_direction instead of direction.
15985         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
15986         instead of direction.
15987         (nios2_function_arg_padding): Likewise.  Make static.
15988         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15989         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
15990         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
15991         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
15992         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15993         (pa_function_arg_padding): Make static.  Return pad_direction instead
15994         of direction.
15995         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
15996         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15997         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
15998         instead of direction.  Use targetm.calls.function_arg_padding.
15999         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
16000         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16001         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
16002         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
16003         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
16004         Redefine.
16005         (function_arg_padding): Rename to...
16006         (rs6000_function_arg_padding): ...this.  Make static.  Return
16007         pad_direction instead of direction.
16008         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16009         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
16010         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16011         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
16012         instead of direction.  Use targetm.calls.function_arg_padding.
16013         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
16014         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16015         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
16016         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
16017         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16018         (function_arg_padding): Rename to...
16019         (rs6000_function_arg_padding): ...this.  Make static.  Return
16020         pad_direction instead of direction.
16021         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16022         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
16023         * config/s390/s390.c (s390_function_arg_padding): New function.
16024         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16025         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
16026         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
16027         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16028         (function_arg_padding): Rename to...
16029         (sparc_function_arg_padding): ...this.  Make static.  Return
16030         pad_direction instead of direction.
16031         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
16032         * config/spu/spu.c (spu_function_arg_padding): New function.
16033         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16034         * system.h (FUNCTION_ARG_PADDING): Poison.
16035
16036 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16037             Alan Hayward  <alan.hayward@arm.com>
16038             David Sherwood  <david.sherwood@arm.com>
16039
16040         * target.def (modes_tieable_p): New hook.
16041         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
16042         (TARGET_MODES_TIEABLE_P): ...this.
16043         * doc/tm.texi.in: Regenerate.
16044         * hooks.h (hook_bool_mode_mode_true): Declare.
16045         * hooks.c (hook_bool_mode_mode_true): New function.
16046         * combine.c (subst): Use targetm.modes_tieable_p instead of
16047         MODES_TIEABLE_P.
16048         * dse.c (find_shift_sequence): Likewise.
16049         * expmed.c (extract_low_bits): Likewise.
16050         * lower-subreg.c: Include target.h.
16051         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
16052         MODES_TIEABLE_P.
16053         * rtlanal.c (rtx_cost): Likewise.
16054         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
16055         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
16056         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
16057         (TARGET_MODES_TIEABLE_P): Redefine.
16058         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
16059         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
16060         (TARGET_MODES_TIEABLE_P): Redefine.
16061         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
16062         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
16063         (arc_modes_tieable_p): New function.
16064         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
16065         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
16066         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
16067         (arm_modes_tieable_p): Make static.
16068         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
16069         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
16070         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
16071         (TARGET_MODES_TIEABLE_P): Redefine.
16072         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
16073         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
16074         (TARGET_MODES_TIEABLE_P): Redefine.
16075         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
16076         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
16077         (cr16_modes_tieable_p): New function.
16078         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
16079         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
16080         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
16081         (TRULY_NOOP_TRUNCATION): Update comment.
16082         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
16083         (TRULY_NOOP_TRUNCATION): Update comment.
16084         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
16085         (frv_modes_tieable_p): New function.
16086         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
16087         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
16088         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
16089         (TARGET_MODES_TIEABLE_P): Redefine.
16090         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
16091         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
16092         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
16093         (TARGET_MODES_TIEABLE_P): Redefine.
16094         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
16095         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
16096         (ia64_modes_tieable_p): New function.
16097         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
16098         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
16099         (iq2000_modes_tieable_p): New function.
16100         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
16101         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
16102         (lm32_modes_tieable_p): New function.
16103         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
16104         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
16105         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
16106         (TARGET_MODES_TIEABLE_P): Redefine.
16107         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
16108         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
16109         (m32r_modes_tieable_p): New function.
16110         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
16111         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
16112         (m68k_modes_tieable_p): New function.
16113         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
16114         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
16115         (mcore_modes_tieable_p): New function.
16116         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
16117         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
16118         function.
16119         (TARGET_MODES_TIEABLE_P): Redefine.
16120         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
16121         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
16122         * config/mips/mips.c (mips_modes_tieable_p): Make static.
16123         (TARGET_MODES_TIEABLE_P): Redefine.
16124         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
16125         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
16126         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
16127         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
16128         (mn10300_modes_tieable_p): ...this and make static.
16129         (TARGET_MODES_TIEABLE_P): Redefine.
16130         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
16131         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
16132         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
16133         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
16134         (msp430_modes_tieable_p): Make static.
16135         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
16136         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
16137         (TARGET_MODES_TIEABLE_P): Redefine.
16138         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
16139         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
16140         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
16141         (TARGET_MODES_TIEABLE_P): Redefine.
16142         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
16143         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
16144         * config/pa/pa.c (pa_modes_tieable_p): Make static.
16145         (TARGET_MODES_TIEABLE_P): Redefine.
16146         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
16147         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
16148         (pdp11_modes_tieable_p): New function.
16149         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
16150         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
16151         (rs6000_modes_tieable_p): New function.
16152         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16153         * config/powerpcspe/powerpcspe.md: Update comment.
16154         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
16155         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
16156         (TARGET_MODES_TIEABLE_P): Redefine.
16157         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
16158         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
16159         (rl78_modes_tieable_p): New function.
16160         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
16161         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
16162         (rs6000_modes_tieable_p): New function.
16163         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16164         * config/rs6000/rs6000.md: Update comment.
16165         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
16166         * config/rx/rx.c (rx_modes_tieable_p): New function.
16167         (TARGET_MODES_TIEABLE_P): Redefine.
16168         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
16169         * config/s390/s390.c (s390_modes_tieable_p): New function.
16170         (TARGET_MODES_TIEABLE_P): Redefine.
16171         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
16172         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
16173         (sh_modes_tieable_p): New function.
16174         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
16175         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
16176         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
16177         (sparc_modes_tieable_p): Make static.
16178         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
16179         * config/spu/spu.c (spu_modes_tieable_p): New function.
16180         (TARGET_MODES_TIEABLE_P): Redefine.
16181         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
16182         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
16183         (TARGET_MODES_TIEABLE_P): Redefine.
16184         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
16185         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
16186         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
16187         * config/v850/v850.c (v850_modes_tieable_p): New function.
16188         (TARGET_MODES_TIEABLE_P): Redefine.
16189         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
16190         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
16191         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
16192         (visium_modes_tieable_p): New function.
16193         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
16194         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
16195         (xtensa_modes_tieable_p): New function.
16196         * system.h (MODES_TIEABLE_P): Poison.
16197
16198 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16199             Alan Hayward  <alan.hayward@arm.com>
16200             David Sherwood  <david.sherwood@arm.com>
16201
16202         * target.def (hard_regno_mode_ok): New hook.
16203         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
16204         (TARGET_HARD_REGNO_MODE_OK): ...this.
16205         * doc/tm.texi.in: Regenerate.
16206         * hooks.h (hook_bool_uint_mode_true): Declare.
16207         * hooks.c (hook_bool_uint_mode_true): New function.
16208         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
16209         HARD_REGNO_MODE_OK.
16210         * genpreds.c (write_insn_preds_c): Add an include of target.h.
16211         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
16212         instead of HARD_REGNO_MODE_OK.
16213         * caller-save.c: Include target.h.
16214         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
16215         HARD_REGNO_MODE_OK.
16216         * combine.c (can_combine_p): Likewise.
16217         (combinable_i3pat): Likewise.
16218         (can_change_dest_mode): Likewise.
16219         * expr.c (init_expr_target): Likewise.
16220         (convert_move): Likewise.
16221         (convert_modes): Likewise.
16222         * ira.c (setup_prohibited_class_mode_regs): Likewise.
16223         (setup_prohibited_mode_move_regs): Likewise.
16224         * ira.h (target_ira): Likewise.
16225         * lra-assigns.c (find_hard_regno_for_1): Likewise.
16226         * lra-constraints.c (process_alt_operands): Likewise.
16227         (split_reg): Likewise.
16228         * recog.c (peep2_find_free_register): Likewise.
16229         * ree.c (combine_reaching_defs): Likewise.
16230         * regcprop.c (maybe_mode_change): Likewise.
16231         * reginfo.c (init_reg_sets_1): Likewise.
16232         (choose_hard_reg_mode): Likewise.
16233         (simplifiable_subregs): Likewise.
16234         * regrename.c (check_new_reg_p): Likewise.
16235         * reload.c (find_valid_class): Likewise.
16236         (find_valid_class_1): Likewise.
16237         (reload_inner_reg_of_subreg): Likewise.
16238         (push_reload): Likewise.
16239         (combine_reloads): Likewise.
16240         (find_dummy_reload): Likewise.
16241         (find_reloads): Likewise.
16242         * reload1.c (find_reg): Likewise.
16243         (set_reload_reg): Likewise.
16244         (allocate_reload_reg): Likewise.
16245         (choose_reload_regs): Likewise.
16246         (reload_adjust_reg_for_temp): Likewise.
16247         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
16248         (simplify_subreg_regno): Likewise.
16249         * sel-sched.c (init_regs_for_mode): Likewise.
16250         * varasm.c (make_decl_rtl): Likewise.
16251         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
16252         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
16253         HARD_REGNO_MODE_OK.
16254         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
16255         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
16256         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16257         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
16258         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
16259         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16260         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
16261         (arc_mode_class): Delete.
16262         (HARD_REGNO_MODE_OK): Delete.
16263         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16264         (arc_hard_regno_mode_ok): Rename old array to...
16265         (arc_hard_regno_mode_ok_modes): ...this.
16266         (arc_conditional_register_usage): Update accordingly.
16267         (arc_mode_class): Make static.
16268         (arc_hard_regno_mode_ok): New function.
16269         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
16270         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
16271         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16272         (arm_hard_regno_mode_ok): Make static.
16273         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
16274         HARD_REGNO_MODE_OK.
16275         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
16276         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
16277         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
16278         return a bool.
16279         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16280         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
16281         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
16282         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
16283         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
16284         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16285         * config/bfin/predicates.md (valid_reg_operand): Use
16286         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
16287         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
16288         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
16289         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16290         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
16291         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
16292         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16293         (cr16_hard_regno_mode_ok): Make static and return a bool.
16294         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
16295         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16296         (cris_hard_regno_mode_ok): New function.
16297         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
16298         (epiphany_mode_class): Delete.
16299         (HARD_REGNO_MODE_OK): Delete.
16300         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
16301         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16302         (hard_regno_mode_ok): Rename to...
16303         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
16304         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
16305         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
16306         HARD_REGNO_MODE_OK.
16307         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
16308         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
16309         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16310         (frv_hard_regno_mode_ok): Make static and return a bool.
16311         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
16312         HARD_REGNO_MODE_OK.
16313         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
16314         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
16315         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
16316         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
16317         and return a bool.
16318         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16319         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
16320         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
16321         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
16322         return a bool.
16323         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16324         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
16325         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16326         (ia64_hard_regno_mode_ok): New function.
16327         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
16328         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16329         (iq2000_hard_regno_mode_ok): New function.
16330         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
16331         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16332         (lm32_hard_regno_mode_ok): New function.
16333         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
16334         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
16335         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
16336         instead of HARD_REGNO_MODE_OK.
16337         (m32c_hard_regno_ok): Rename to...
16338         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
16339         (m32c_cannot_change_mode_class): Update accordingly.
16340         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16341         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
16342         (m32r_mode_class): Delete.
16343         (HARD_REGNO_MODE_OK): Delete.
16344         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16345         (m32r_hard_regno_mode_ok): Rename to...
16346         (m32r_hard_regno_modes): ...this.
16347         (m32r_mode_class): Make static.
16348         (m32r_hard_regno_mode_ok): New function.
16349         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
16350         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
16351         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16352         (m68k_hard_regno_mode_ok): Make static.
16353         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
16354         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16355         (mcore_hard_regno_mode_ok): New function.
16356         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
16357         (HARD_REGNO_MODE_OK): Delete.
16358         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
16359         Rename to...
16360         (microblaze_hard_regno_mode_ok_p): ...this and make static.
16361         (microblaze_hard_regno_mode_ok): New function.
16362         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16363         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
16364         (mips_hard_regno_mode_ok): Delete.
16365         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
16366         (mips_hard_regno_mode_ok_p): ...this and make static.
16367         (mips_hard_regno_mode_ok_p): Rename to...
16368         (mips_hard_regno_mode_ok_uncached): ...this.
16369         (mips_hard_regno_mode_ok): New function.
16370         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
16371         of HARD_REGNO_MODE_OK.
16372         (mips_option_override): Update after above name changes.
16373         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16374         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
16375         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
16376         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
16377         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
16378         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16379         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
16380         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
16381         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
16382         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16383         (msp430_hard_regno_mode_ok): Make static and return a bool.
16384         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
16385         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
16386         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
16387         and return a bool.
16388         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16389         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
16390         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
16391         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
16392         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
16393         (PA_HARD_REGNO_MODE_OK): ...this
16394         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
16395         (PA_HARD_REGNO_MODE_OK): ...this.
16396         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16397         (pa_hard_regno_mode_ok): New function.
16398         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
16399         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16400         (pdp11_hard_regno_mode_ok): New function.
16401         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
16402         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
16403         Delete.
16404         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
16405         Make static.
16406         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16407         (rs6000_hard_regno_mode_ok): Rename to...
16408         (rs6000_hard_regno_mode_ok_uncached): ...this.
16409         (rs6000_init_hard_regno_mode_ok): Update accordingly.
16410         (rs6000_hard_regno_mode_ok): New function.
16411         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
16412         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
16413         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
16414         (riscv_hard_regno_mode_ok): ...this and make static.
16415         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16416         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
16417         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
16418         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16419         (rl78_hard_regno_mode_ok): Make static and return bool.
16420         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
16421         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
16422         Delete.
16423         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
16424         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16425         (rs6000_hard_regno_mode_ok): Rename to...
16426         (rs6000_hard_regno_mode_ok_uncached): ...this.
16427         (rs6000_init_hard_regno_mode_ok): Update accordingly.
16428         (rs6000_hard_regno_mode_ok): New function.
16429         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
16430         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
16431         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16432         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
16433         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
16434         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
16435         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16436         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
16437         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
16438         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16439         (sh_hard_regno_mode_ok): Make static.
16440         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
16441         instead of HARD_REGNO_MODE_OK.
16442         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
16443         (sparc_mode_class): Delete.
16444         (HARD_REGNO_MODE_OK): Delete.
16445         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16446         (hard_regno_mode_classes): Make static.
16447         (sparc_mode_class): Likewise.
16448         (sparc_hard_regno_mode_ok): New function.
16449         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
16450         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
16451         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
16452         function.
16453         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16454         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
16455         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
16456         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
16457         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
16458         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16459         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
16460         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
16461         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16462         (visium_hard_regno_mode_ok): New function.
16463         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
16464         instead of HARD_REGNO_MODE_OK.
16465         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
16466         (HARD_REGNO_MODE_OK): Delete.
16467         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
16468         (xtensa_hard_regno_mode_ok_p): ...this and make static.
16469         (xtensa_option_override): Update accordingly.
16470         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16471         (xtensa_hard_regno_mode_ok): New function.
16472         * system.h (HARD_REGNO_MODE_OK): Poison.
16473
16474 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16475             Alan Hayward  <alan.hayward@arm.com>
16476             David Sherwood  <david.sherwood@arm.com>
16477
16478         * target.def (hard_regno_call_part_clobbered): New hook.
16479         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
16480         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
16481         * doc/tm.texi: Regenerate.
16482         * hooks.h (hook_bool_uint_mode_false): Declare.
16483         * hooks.c (hook_bool_uint_mode_false): New function.
16484         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16485         * cselib.c (cselib_process_insn): Use
16486         targetm.hard_regno_call_part_clobbered instead of
16487         HARD_REGNO_CALL_PART_CLOBBERED.
16488         * ira-conflicts.c (ira_build_conflicts): Likewise.
16489         * ira-costs.c (ira_tune_allocno_costs): Likewise.
16490         * lra-constraints.c (need_for_call_save_p): Likewise.
16491         * lra-lives.c: Include target.h.
16492         (check_pseudos_live_through_calls): Use
16493         targetm.hard_regno_call_part_clobbered instead of
16494         HARD_REGNO_CALL_PART_CLOBBERED.
16495         * regcprop.c: Include target.h.
16496         (copyprop_hardreg_forward_1): Use
16497         targetm.hard_regno_call_part_clobbered instead of
16498         HARD_REGNO_CALL_PART_CLOBBERED.
16499         * reginfo.c (choose_hard_reg_mode): Likewise.
16500         * regrename.c (check_new_reg_p): Likewise.
16501         * reload.c (find_equiv_reg): Likewise.
16502         * reload1.c (emit_reload_insns): Likewise.
16503         * sched-deps.c (deps_analyze_insn): Likewise.
16504         * sel-sched.c (init_regs_for_mode): Likewise.
16505         (mark_unavailable_hard_regs): Likewise.
16506         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
16507         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16508         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
16509         New function.
16510         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16511         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16512         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
16513         Delete.
16514         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
16515         and return a bool.
16516         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16517         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16518         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
16519         function.
16520         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16521         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16522         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
16523         function.
16524         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16525         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
16526         Delete.
16527         * config/powerpcspe/powerpcspe.c
16528         (rs6000_hard_regno_call_part_clobbered): New function.
16529         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16530         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16531         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
16532         New function.
16533         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16534         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16535         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
16536         function.
16537         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16538         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16539         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
16540
16541 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16542             Alan Hayward  <alan.hayward@arm.com>
16543             David Sherwood  <david.sherwood@arm.com>
16544
16545         * rtl.h (subreg_memory_offset): Declare.
16546         * emit-rtl.c (subreg_memory_offset): New function.
16547         * expmed.c (store_bit_field_1): Use it.
16548         * expr.c (undefined_operand_subword_p): Likewise.
16549         * simplify-rtx.c (simplify_subreg): Likewise.
16550
16551 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
16552
16553         PR rtl-optimization/57448
16554         PR target/67458
16555         PR target/81316
16556         * optabs.c (expand_atomic_load): Place compiler memory barriers if
16557         using atomic_load pattern.
16558         (expand_atomic_store): Likewise.
16559
16560 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
16561
16562         PR sanitizer/81981
16563         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
16564         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
16565         handling.  Use replace_call_with_value with NULL instead of
16566         gsi_replace, unlink_stmt_vdef and release_defs.
16567
16568         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
16569         instead of tab.
16570
16571         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
16572
16573 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16574
16575         PR bootstrap/82045
16576         * rtl.h (emit_library_call_value_1): Declare.
16577         (emit_library_call): Replace declaration with a series of overloads.
16578         Remove the parameter count argument.
16579         (emit_library_call_value): Likewise.
16580         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
16581         with an "rtx_mode_t *".
16582         (emit_library_call_value): Delete.
16583         (emit_library_call): Likewise.
16584         * asan.c (asan_emit_stack_protection): Update calls accordingly.
16585         (asan_emit_allocas_unpoison): Likewise.
16586         * builtins.c (expand_builtin_powi): Likewise.
16587         (expand_asan_emit_allocas_unpoison): Likewise.
16588         * cfgexpand.c (expand_main_function): Likewise.
16589         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
16590         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
16591         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
16592         * config/arm/arm.c (arm_trampoline_init): Likewise.
16593         (arm_call_tls_get_addr): Likewise.
16594         (arm_expand_divmod_libfunc): Likewise.
16595         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
16596         (smulsi3_highpart): Likewise.
16597         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
16598         (c6x_expand_compare): Likewise.
16599         (c6x_expand_movmem): Likewise.
16600         * config/frv/frv.c (frv_trampoline_init): Likewise.
16601         * config/i386/i386.c (ix86_trampoline_init): Likewise.
16602         (ix86_expand_divmod_libfunc): Likewise.
16603         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16604         (ia64_expand_compare): Likewise.
16605         (ia64_profile_hook): Likewise.
16606         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
16607         (nonlocal_goto): Likewise.
16608         (restore_stack_nonlocal): Likewise.
16609         * config/m32r/m32r.c (block_move_call): Likewise.
16610         (m32r_trampoline_init): Likewise.
16611         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
16612         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
16613         (m68k_call_m68k_read_tp): Likewise.
16614         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
16615         (microblaze_expand_divide): Likewise.
16616         * config/mips/mips.h (mips_args): Likewise.
16617         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
16618         (MIPS_ICACHE_SYNC): Likewise.
16619         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
16620         (nios2_trampoline_init): Likewise.
16621         * config/pa/pa.c (hppa_tls_call): Likewise.
16622         (pa_trampoline_init): Likewise.
16623         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
16624         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
16625         (expand_strn_compare): Likewise.
16626         (rs6000_generate_compare): Likewise.
16627         (rs6000_expand_float128_convert): Likewise.
16628         (output_profile_hook): Likewise.
16629         (rs6000_trampoline_init): Likewise.
16630         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
16631         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
16632         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
16633         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16634         (rs6000_generate_compare): Likewise.
16635         (rs6000_expand_float128_convert): Likewise.
16636         (output_profile_hook): Likewise.
16637         (rs6000_trampoline_init): Likewise.
16638         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
16639         * config/sh/sh.c (sh_trampoline_init): Likewise.
16640         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
16641         (sparc_emit_float_lib_cmp): Likewise.
16642         (sparc32_initialize_trampoline): Likewise.
16643         (sparc64_initialize_trampoline): Likewise.
16644         (sparc_profile_hook): Likewise.
16645         * config/spu/spu.c (ea_load_store): Likewise.
16646         * config/spu/spu.md (floatunssidf2): Likewise.
16647         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
16648         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
16649         * config/visium/visium.c (expand_block_move_4): Likewise.
16650         (expand_block_move_2): Likewise.
16651         (expand_block_move_1): Likewise.
16652         (expand_block_set_4): Likewise.
16653         (expand_block_set_2): Likewise.
16654         (expand_block_set_1): Likewise.
16655         (visium_trampoline_init): Likewise.
16656         (visium_profile_hook): Likewise.
16657         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
16658         (xtensa_setup_frame_addresses): Likewise.
16659         (xtensa_trampoline_init): Likewise.
16660         * except.c (sjlj_emit_function_enter): Likewise.
16661         (sjlj_emit_function_exit): Likewise.
16662         * explow.c (allocate_dynamic_stack_space): Likewise.
16663         (probe_stack_range): Likewise.
16664         * expr.c (convert_mode_scalar): Likewise.
16665         * optabs.c (expand_binop): Likewise.
16666         (expand_twoval_binop_libfunc): Likewise.
16667         (expand_unop): Likewise.
16668         (prepare_cmp_insn): Likewise.
16669         (prepare_float_lib_cmp): Likewise.
16670         (expand_float): Likewise.
16671         (expand_fix): Likewise.
16672         (expand_fixed_convert): Likewise.
16673         (maybe_emit_sync_lock_test_and_set): Likewise.
16674         (expand_atomic_compare_and_swap): Likewise.
16675         (expand_mem_thread_fence): Likewise.
16676         (expand_atomic_fetch_op): Likewise.
16677
16678 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
16679
16680         * doc/generic.texi (OpenACC): Adjust URL.
16681         * doc/invoke.texi (C Dialect Options): Ditto.
16682
16683 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
16684
16685         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
16686         predicate for operand 1.  Add (m,<S>) constraint.
16687         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
16688         Prevent memory operand 1 with register operand 2.
16689
16690 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
16691
16692         PR rtl-optimization/82024
16693         * combine.c (try_combine): If the combination result is a PARALLEL,
16694         and we only need to retain the SET in there that would be placed
16695         at I2, check that we can place that at I3 instead, before doing so.
16696
16697 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
16698
16699         PR target/81766
16700         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
16701         instead of void.
16702         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
16703         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
16704         and label.
16705
16706 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
16707             Jeff Law  <law@redhat.com>
16708
16709         * varasm.c (bss_initializer_p): Do not put constants into .bss
16710         (categorize_decl_for_section): Handle bss_initializer_p returning
16711         false when DECL_INITIAL is NULL.
16712
16713 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16714
16715         PR target/82012
16716         * config/s390/s390.c (s390_can_inline_p): New function.
16717
16718 2017-09-01  Jeff Law  <law@redhat.com>
16719
16720         PR tree-optimization/82052
16721         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
16722         Always initialize the returned slot after a hash table miss
16723         when INSERT is true.
16724
16725 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
16726
16727         * config/s390/s390.md (mem_signal_fence): Remove.
16728         * doc/md.texi (mem_signal_fence): Remove.
16729         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
16730         Update comments.
16731         * target-insns.def (mem_signal_fence): Remove.
16732
16733 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
16734
16735         PR sanitizer/81902
16736         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
16737
16738         PR sanitizer/81923
16739         * asan.c (create_odr_indicator): Strip name encoding from assembler
16740         name before appending it after __odr_asan_.
16741
16742 2017-09-01  Martin Liska  <mliska@suse.cz>
16743
16744         PR tree-optimization/82059
16745         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
16746         frequency only when an edge is redirected.
16747
16748 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16749
16750         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
16751         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
16752         (arc_conditional_register_usage): Remove ARC600 lp_count
16753         exception.
16754         (arc_file_start): Emit Tag_ARC_CPU_variation.
16755         (arc_can_use_doloop_p): New conditions to use ZOLs.
16756         (hwloop_fail): New function.
16757         (hwloop_optimize): Likewise.
16758         (hwloop_pattern_reg): Likewise.
16759         (arc_doloop_hooks): New struct, to be used with reorg_loops.
16760         (arc_reorg_loops): New function, calls reorg_loops.
16761         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
16762         (arc600_corereg_hazard): Remove ZOL checking, case handled by
16763         hwloop_optimize.
16764         (arc_loop_hazard): Remove function, functionality moved into
16765         hwloop_optimize.
16766         (arc_hazard): Remove arc_loop_hazard call.
16767         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
16768         into hwloop_optimize.
16769         (arc_label_align): Remove ZOL handling.
16770         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
16771         * config/arc/arc.md (doloop_begin): Remove pattern.
16772         (doloop_begin_i): Likewise.
16773         (doloop_end_i): Likewise.
16774         (doloop_fallback): Likewise.
16775         (doloop_fallback_m): Likewise.
16776         (doloop_end): Reimplement expand.
16777         (arc_lp): New pattern for LP instruction.
16778         (loop_end): New pattern.
16779         (loop_fail): Likewise.
16780         (decrement_and_branch_until_zero): Likewise.
16781         * config/arc/arc.opt (mlpc-width): New option.
16782         * doc/invoke.texi (mlpc-width): Document option.
16783
16784 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16785
16786         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
16787         (arc_ccfsm_advance): Fix checking for delay slots.
16788         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
16789
16790 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16791
16792         * config/arc/arc.md (movqi_insn): Add stores to save constant long
16793         immediates.
16794         (movhi_insn): Update store instruction constraint which are saving
16795         6-bit short immediates.
16796         (movsi_insn): Consider also short scaled load operations.
16797         (zero_extendhisi2_i): Use Usd constraint instead of T.
16798         (extendhisi2_i): Add q constraint.
16799         (arc_clzsi2): Add type and length attributes.
16800         (arc_ctzsi2): Likewise.
16801         * config/arc/constraints.md (Usc): Update constraint, the
16802         assembler can parse two relocations for a single instruction.
16803
16804 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16805
16806         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
16807         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
16808
16809 2017-08-31  Olivier Hainque  <hainque@adacore.com>
16810
16811         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
16812         match as powerpc-wrs-vxworks*.
16813
16814 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
16815
16816         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
16817         register constraint for by-element operand.
16818         (aarch64_mls_elt_merge<mode>): Likewise.
16819
16820 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16821
16822         * config/arc/arc.c (arc_can_follow_jump): Check for short
16823         branches.
16824
16825 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16826
16827         * config.gcc: Use g.opt for arc.
16828         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
16829         functionality moved to ...
16830         (legitimate_scaled_address_p): New function, ...here.
16831         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
16832         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
16833         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
16834         condition.
16835         (arc_override_options): Handle G option.
16836         (arc_output_pic_addr_const): Correct function definition.
16837         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
16838         (arc_decl_anon_ns_mem_p): Delete.
16839         (arc_in_small_data_p): Overhaul this function to take into
16840         consideration the value given via G option.
16841         (arc_rewrite_small_data_1): Renamed and corrected old
16842         arc_rewrite_small_data function.
16843         (arc_rewrite_small_data): New function.
16844         (small_data_pattern): Don't use pic_offset_table_rtx.
16845         * config/arc/arc.h (CC1_SPEC): Recognize G option.
16846         * config/arc/simdext.md (movmisalignv2hi): Use
16847         prepare_move_operands function.
16848         (mov*): Likewise.
16849         (movmisalign*): Likewise.
16850         * doc/invoke.texi (ARC options): Document -G option.
16851
16852 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16853
16854         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
16855         prototype.
16856         * config/arc/arc.c (arc_print_operand): Output scalled address for
16857         sdata whenever is possible.
16858         (arc_in_small_data_p): Allow sdata for 64bit datum when double
16859         load/stores are available.
16860         (compact_sda_memory_operand): Check for the alignment required by
16861         code density instructions.
16862         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
16863         constraint.
16864         * config/arc/constraints.md (Usd): Update constraint.
16865         (Us0): New constraint.
16866         (Usc): Update constraint.
16867
16868 2017-08-31  Richard Biener  <rguenther@suse.de>
16869
16870         PR middle-end/82054
16871         * dwarf2out.c (dwarf2out_early_global_decl): Process each
16872         function only once.
16873
16874 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
16875
16876         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16877         Resize type_signature.
16878
16879 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16880             Alan Hayward  <alan.hayward@arm.com>
16881             David Sherwood  <david.sherwood@arm.com>
16882
16883         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
16884         subregs whose inner modes can be stored in GPRs.
16885         (aarch64_classify_index): Likewise.
16886
16887 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16888             Alan Hayward  <alan.hayward@arm.com>
16889             David Sherwood  <david.sherwood@arm.com>
16890
16891         * config/aarch64/iterators.md (V_cmp_result): Rename to...
16892         (V_INT_EQUIV): ...this.
16893         (v_cmp_result): Rename to...
16894         (v_int_equiv): ...this.
16895         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
16896         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
16897         (copysign<mode>3): Likewise.
16898         (aarch64_simd_bsl<mode>_internal): Likewise.
16899         (aarch64_simd_bsl<mode>): Likewise.
16900         (vec_cmp<mode><mode>): Likewise.
16901         (vcond<mode><mode>): Likewise.
16902         (vcond<v_cmp_mixed><mode>): Likewise.
16903         (vcondu<mode><v_cmp_mixed>): Likewise.
16904         (aarch64_cm<optab><mode>): Likewise.
16905         (aarch64_cmtst<mode>): Likewise.
16906         (aarch64_fac<optab><mode>): Likewise.
16907         (vec_perm_const<mode>): Likewise.
16908         (vcond_mask_<mode><v_cmp_result>): Rename to...
16909         (vcond_mask_<mode><v_int_equiv>): ...this.
16910         (vec_cmp<mode><v_cmp_result>): Rename to...
16911         (vec_cmp<mode><v_int_equiv>): ...this.
16912
16913 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16914             Alan Hayward  <alan.hayward@arm.com>
16915             David Sherwood  <david.sherwood@arm.com>
16916
16917         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
16918         vector modes.
16919         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
16920         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
16921         (UNSPEC_LD4_DREG): New unspecs.
16922         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
16923         (aarch64_ld2<mode>_dreg_be): Replace with...
16924         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
16925         unspec.
16926         (aarch64_ld3<mode>_dreg_le)
16927         (aarch64_ld3<mode>_dreg_be): Replace with...
16928         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
16929         unspec.
16930         (aarch64_ld4<mode>_dreg_le)
16931         (aarch64_ld4<mode>_dreg_be): Replace with...
16932         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
16933         unspec.
16934
16935 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16936
16937         PR tree-optimization/81987
16938         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
16939         insert an initializer in a location not dominated by the stride
16940         definition.
16941
16942 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16943
16944         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
16945         on the entire header of the finally block in the fallthru case.
16946
16947 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16948
16949         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
16950
16951 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
16952
16953         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
16954         rs6000_emit_move_from_cr and call renamed function.
16955         (rs6000_emit_prologue): Call renamed functions.
16956         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
16957         movesi_from_cr, remove volatile CRs.
16958
16959 2017-08-30  Jon Beniston  <jon@beniston.com>
16960             Richard Biener  <rguenther@suse.de>
16961
16962         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
16963         of VECTOR_MODE_P check.
16964         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
16965         element vector types.
16966
16967 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16968
16969         * df.h (df_read_modify_subreg_p): Remove in favor of...
16970         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
16971         const_rtx instead of an rtx.
16972         * cprop.c (local_cprop_find_used_regs): Update accordingly.
16973         * df-problems.c (df_word_lr_mark_ref): Likewise.
16974         * ira-lives.c (mark_pseudo_reg_live): Likewise.
16975         (mark_pseudo_reg_dead): Likewise.
16976         (mark_ref_dead): Likewise.
16977         * reginfo.c (init_subregs_of_mode): Likewise.
16978         * sched-deps.c (sched_analyze_1): Likewise.
16979         * df-scan.c (df_def_record_1): Likewise.
16980         (df_uses_record): Likewise.
16981         (df_read_modify_subreg_p): Remove in favor of...
16982         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
16983         const_rtx instead of an rtx.
16984
16985 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16986             Alan Hayward  <alan.hayward@arm.com>
16987             David Sherwood  <david.sherwood@arm.com>
16988
16989         * rtl.h (partial_subreg_p): New function.
16990         * caller-save.c (save_call_clobbered_regs): Use it.
16991         * calls.c (expand_call): Likewise.
16992         * combine.c (combinable_i3pat): Likewise.
16993         (simplify_set): Likewise.
16994         (make_extraction): Likewise.
16995         (make_compound_operation_int): Likewise.
16996         (gen_lowpart_or_truncate): Likewise.
16997         (force_to_mode): Likewise.
16998         (make_field_assignment): Likewise.
16999         (reg_truncated_to_mode): Likewise.
17000         (record_truncated_value): Likewise.
17001         (move_deaths): Likewise.
17002         * cse.c (record_jump_cond): Likewise.
17003         (cse_insn): Likewise.
17004         * cselib.c (cselib_lookup_1): Likewise.
17005         * expmed.c (extract_bit_field_using_extv): Likewise.
17006         * function.c (assign_parm_setup_reg): Likewise.
17007         * ifcvt.c (noce_convert_multiple_sets): Likewise.
17008         * ira-build.c (create_insn_allocnos): Likewise.
17009         * lra-coalesce.c (merge_pseudos): Likewise.
17010         * lra-constraints.c (match_reload): Likewise.
17011         (simplify_operand_subreg): Likewise.
17012         (curr_insn_transform): Likewise.
17013         * lra-lives.c (process_bb_lives): Likewise.
17014         * lra.c (new_insn_reg): Likewise.
17015         (lra_substitute_pseudo): Likewise.
17016         * regcprop.c (mode_change_ok): Likewise.
17017         (maybe_mode_change): Likewise.
17018         (copyprop_hardreg_forward_1): Likewise.
17019         * reload.c (push_reload): Likewise.
17020         (find_reloads): Likewise.
17021         (find_reloads_subreg_address): Likewise.
17022         * reload1.c (alter_reg): Likewise.
17023         (eliminate_regs_1): Likewise.
17024         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17025
17026 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
17027
17028         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
17029         back to if statements, including unpack.
17030
17031 2017-08-30  Martin Liska  <mliska@suse.cz>
17032
17033         PR inline-asm/82001
17034         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
17035         Rename to ...
17036         (func_checker::compare_asm_inputs_outputs): ... this function.
17037         (func_checker::compare_gimple_asm): Use the function to compare
17038         also ASM constrains.
17039         * ipa-icf-gimple.h: Rename the function.
17040
17041 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17042             Alan Hayward  <alan.hayward@arm.com>
17043             David Sherwood  <david.sherwood@arm.com>
17044
17045         * coretypes.h (complex_mode): New type.
17046         * gdbhooks.py (build_pretty_printer): Handle it.
17047         * machmode.h (complex_mode): New class.
17048         (complex_mode::includes_p): New function.
17049         (is_complex_int_mode): Likewise.
17050         (is_complex_float_mode): Likewise.
17051         * genmodes.c (get_mode_class): Handle complex mode classes.
17052         * function.c (expand_function_end): Use is_complex_int_mode.
17053
17054 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17055             Alan Hayward  <alan.hayward@arm.com>
17056             David Sherwood  <david.sherwood@arm.com>
17057
17058         * coretypes.h (scalar_mode_pod): New typedef.
17059         * gdbhooks.py (build_pretty_printer): Handle it.
17060         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
17061         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
17062         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
17063         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
17064         as_a <scalar_mode>.
17065
17066 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17067             Alan Hayward  <alan.hayward@arm.com>
17068             David Sherwood  <david.sherwood@arm.com>
17069
17070         * machmode.h (mode_for_vector): Take a scalar_mode instead
17071         of a machine_mode.
17072         * stor-layout.c (mode_for_vector): Likewise.
17073         * explow.c (promote_mode): Use as_a <scalar_mode>.
17074         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
17075
17076 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17077             Alan Hayward  <alan.hayward@arm.com>
17078             David Sherwood  <david.sherwood@arm.com>
17079
17080         * target.def (preferred_simd_mode): Take a scalar_mode
17081         instead of a machine_mode.
17082         * targhooks.h (default_preferred_simd_mode): Likewise.
17083         * targhooks.c (default_preferred_simd_mode): Likewise.
17084         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
17085         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
17086         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
17087         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
17088         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
17089         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
17090         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
17091         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
17092         Likewise.
17093         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
17094         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
17095         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
17096         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
17097         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
17098         * doc/tm.texi: Regenerate.
17099         * optabs-query.c (can_vec_mask_load_store_p): Return false for
17100         non-scalar modes.
17101
17102 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17103             Alan Hayward  <alan.hayward@arm.com>
17104             David Sherwood  <david.sherwood@arm.com>
17105
17106         * target.def (scalar_mode_supported_p): Take a scalar_mode
17107         instead of a machine_mode.
17108         * targhooks.h (default_scalar_mode_supported_p): Likewise.
17109         * targhooks.c (default_scalar_mode_supported_p): Likewise.
17110         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
17111         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
17112         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
17113         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
17114         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
17115         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
17116         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
17117         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
17118         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
17119         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
17120         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
17121         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
17122         Likewise.
17123         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
17124         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
17125         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
17126         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
17127         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
17128         Likewise.
17129         * doc/tm.texi: Regenerate.
17130
17131 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17132             Alan Hayward  <alan.hayward@arm.com>
17133             David Sherwood  <david.sherwood@arm.com>
17134
17135         * coretypes.h (opt_scalar_mode): New typedef.
17136         * gdbhooks.py (build_pretty_printers): Handle it.
17137         * machmode.h (mode_iterator::get_2xwider): Add overload for
17138         opt_mode<T>.
17139         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
17140         over scalar modes.
17141         * expr.c (convert_mode_scalar): Likewise.
17142         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17143         * optabs.c (expand_float): Likewise.
17144         (expand_fix): Likewise.
17145         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17146
17147 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17148             Alan Hayward  <alan.hayward@arm.com>
17149             David Sherwood  <david.sherwood@arm.com>
17150
17151         * optabs.c (expand_float): Explicitly check for scalars before
17152         using a branching expansion.
17153         (expand_fix): Likewise.
17154
17155 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17156             Alan Hayward  <alan.hayward@arm.com>
17157             David Sherwood  <david.sherwood@arm.com>
17158
17159         * expr.c (convert_mode): Split scalar handling out into...
17160         (convert_mode_scalar): ...this new function.  Treat the modes
17161         as scalar_modes.
17162
17163 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17164             Alan Hayward  <alan.hayward@arm.com>
17165             David Sherwood  <david.sherwood@arm.com>
17166
17167         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
17168         and scalar_mode.
17169         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
17170
17171 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17172             Alan Hayward  <alan.hayward@arm.com>
17173             David Sherwood  <david.sherwood@arm.com>
17174
17175         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
17176         rather than a machine_mode.
17177         (fixed_from_string): Likewise.
17178         (fixed_convert): Likewise.
17179         (fixed_convert_from_int): Likewise.
17180         (fixed_convert_from_real): Likewise.
17181         (real_convert_from_fixed): Likewise.
17182         * fixed-value.c (fixed_from_double_int): Likewise.
17183         (fixed_from_string): Likewise.
17184         (fixed_convert): Likewise.
17185         (fixed_convert_from_int): Likewise.
17186         (fixed_convert_from_real): Likewise.
17187         (real_convert_from_fixed): Likewise.
17188         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
17189
17190 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17191             Alan Hayward  <alan.hayward@arm.com>
17192             David Sherwood  <david.sherwood@arm.com>
17193
17194         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
17195         of separate mode class checks.  Do not allow vector modes here.
17196         (immed_wide_int_const): Use as_a <scalar_mode>.
17197         * explow.c (trunc_int_for_mode): Likewise.
17198         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
17199         (wi::shwi): Likewise.
17200         (wi::min_value): Likewise.
17201         (wi::max_value): Likewise.
17202         * dwarf2out.c (loc_descriptor): Likewise.
17203         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
17204         for CONST_WIDE_INT.
17205
17206 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17207             Alan Hayward  <alan.hayward@arm.com>
17208             David Sherwood  <david.sherwood@arm.com>
17209
17210         * tree.h (SCALAR_TYPE_MODE): New macro.
17211         * expr.c (expand_expr_addr_expr_1): Use it.
17212         (expand_expr_real_2): Likewise.
17213         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
17214         (fold_convert_const_fixed_from_int): Likewise.
17215         (fold_convert_const_fixed_from_real): Likewise.
17216         (native_encode_fixed): Likewise
17217         (native_encode_complex): Likewise
17218         (native_encode_vector): Likewise.
17219         (native_interpret_fixed): Likewise.
17220         (native_interpret_real): Likewise.
17221         (native_interpret_complex): Likewise.
17222         (native_interpret_vector): Likewise.
17223         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
17224         (simd_clone_adjust_argument_types): Likewise.
17225         (simd_clone_init_simd_arrays): Likewise.
17226         (simd_clone_adjust): Likewise.
17227         * stor-layout.c (layout_type): Likewise.
17228         * tree.c (build_minus_one_cst): Likewise.
17229         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17230         * tree-inline.c (estimate_move_cost): Likewise.
17231         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
17232         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17233         (vectorizable_reduction): Likewise.
17234         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
17235         (vect_recog_mixed_size_cond_pattern): Likewise.
17236         (check_bool_pattern): Likewise.
17237         (adjust_bool_pattern): Likewise.
17238         (search_type_for_mask_1): Likewise.
17239         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
17240         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17241         (vectorizable_load): Likewise.
17242         (vectorizable_store): Likewise.
17243         * ubsan.c (ubsan_encode_value): Likewise.
17244         * varasm.c (output_constant): Likewise.
17245
17246 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17247             Alan Hayward  <alan.hayward@arm.com>
17248             David Sherwood  <david.sherwood@arm.com>
17249
17250         * coretypes.h (scalar_mode): New class.
17251         * machmode.h (scalar_mode): Likewise.
17252         (scalar_mode::includes_p): New function.
17253         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
17254         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
17255         * genmodes.c (get_mode_class): Handle remaining scalar modes.
17256         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
17257         * expmed.c (store_bit_field_1): Likewise.
17258         (extract_bit_field_1): Likewise.
17259         * expr.c (write_complex_part): Likewise.
17260         (read_complex_part): Likewise.
17261         (emit_move_complex_push): Likewise.
17262         (expand_expr_real_2): Likewise.
17263         * function.c (assign_parm_setup_reg): Likewise.
17264         (assign_parms_unsplit_complex): Likewise.
17265         * optabs.c (expand_binop): Likewise.
17266         * rtlanal.c (subreg_get_info): Likewise.
17267         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17268         * varasm.c (output_constant_pool_2): Likewise.
17269
17270 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17271             Alan Hayward  <alan.hayward@arm.com>
17272             David Sherwood  <david.sherwood@arm.com>
17273
17274         * expmed.c (extract_high_half): Use scalar_int_mode and remove
17275         assertion.
17276         (expmed_mult_highpart_optab): Likewise.
17277         (expmed_mult_highpart): Likewise.
17278
17279 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17280             Alan Hayward  <alan.hayward@arm.com>
17281             David Sherwood  <david.sherwood@arm.com>
17282
17283         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
17284         instead of a machine_mode.
17285         (builtin_memset_read_str): Likewise.
17286         * builtins.c (c_readstr): Likewise.
17287         (builtin_memcpy_read_str): Likewise.
17288         (builtin_strncpy_read_str): Likewise.
17289         (builtin_memset_read_str): Likewise.
17290         (builtin_memset_gen_str): Likewise.
17291         (expand_builtin_signbit): Use scalar_int_mode for local variables.
17292         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
17293         instead of a machine_mode.
17294         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
17295         variables.
17296         (make_extraction): Likewise.
17297         (try_widen_shift_mode): Take and return scalar_int_modes instead
17298         of machine_modes.
17299         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
17300         a scalar_int_mode instead of a machine_mode.
17301         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
17302         (avr_addr_space_pointer_mode): Likewise.
17303         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
17304         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
17305         (msp430_unwind_word_mode): Likewise.
17306         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
17307         (spu_addr_space_pointer_mode): Likewise.
17308         (spu_addr_space_address_mode): Likewise.
17309         (spu_libgcc_cmp_return_mode): Likewise.
17310         (spu_libgcc_shift_count_mode): Likewise.
17311         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
17312         (rl78_addr_space_pointer_mode): Likewise.
17313         (fl78_unwind_word_mode): Likewise.
17314         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
17315         machine_mode.
17316         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
17317         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
17318         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
17319         (mips_valid_pointer_mode): Likewise.
17320         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
17321         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
17322         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
17323         of a machine_mode.
17324         (ft32_addr_space_address_mode): Likewise.
17325         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
17326         scalar_int_mode instead of a machine_mode.
17327         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
17328         of a machine_mode.
17329         (m32c_addr_space_address_mode): Likewise.
17330         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
17331         (rs6000_eh_return_filter_mode): Likewise.
17332         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
17333         (rs6000_eh_return_filter_mode): Likewise.
17334         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
17335         (s390_libgcc_shift_count_mode): Likewise.
17336         (s390_unwind_word_mode): Likewise.
17337         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
17338         machine_mode.
17339         * target.def (mode_rep_extended): Likewise.
17340         (valid_pointer_mode): Likewise.
17341         (addr_space.valid_pointer_mode): Likewise.
17342         (eh_return_filter_mode): Return a scalar_int_mode rather than
17343         a machine_mode.
17344         (libgcc_cmp_return_mode): Likewise.
17345         (libgcc_shift_count_mode): Likewise.
17346         (unwind_word_mode): Likewise.
17347         (addr_space.pointer_mode): Likewise.
17348         (addr_space.address_mode): Likewise.
17349         * doc/tm.texi: Regenerate.
17350         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
17351         a machine_mode.
17352         (do_jump): Use scalar_int_mode for local variables.
17353         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
17354         rather than a machine_mode.
17355         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
17356         (scompare_loc_descriptor_wide): Likewise.
17357         (scompare_loc_descriptor_narrow): Likewise.
17358         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
17359         variables.
17360         * except.c (sjlj_emit_dispatch_table): Likewise.
17361         (expand_builtin_eh_copy_values): Likewise.
17362         * explow.c (convert_memory_address_addr_space_1): Likewise.
17363         Take a scalar_int_mode rather than a machine_mode.
17364         (convert_memory_address_addr_space): Take a scalar_int_mode rather
17365         than a machine_mode.
17366         (memory_address_addr_space): Use scalar_int_mode for local variables.
17367         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
17368         rather than a machine_mode.
17369         * expmed.c (mask_rtx): Likewise.
17370         (init_expmed_one_conv): Likewise.
17371         (expand_mult_highpart_adjust): Likewise.
17372         (extract_high_half): Likewise.
17373         (expmed_mult_highpart_optab): Likewise.
17374         (expmed_mult_highpart): Likewise.
17375         (expand_smod_pow2): Likewise.
17376         (expand_sdiv_pow2): Likewise.
17377         (emit_store_flag_int): Likewise.
17378         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
17379         variables.
17380         (extract_low_bits): Likewise.
17381         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
17382         a machine_mode.
17383         * expr.c (pieces_addr::adjust):  Likewise.
17384         (can_store_by_pieces): Likewise.
17385         (store_by_pieces): Likewise.
17386         (clear_by_pieces_1): Likewise.
17387         (expand_expr_addr_expr_1): Likewise.
17388         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
17389         (expand_expr_real_1): Likewise.
17390         (try_casesi): Likewise.
17391         * final.c (shorten_branches): Likewise.
17392         * fold-const.c (fold_convert_const_int_from_fixed): Change the
17393         type of "mode" to machine_mode.
17394         * internal-fn.c (expand_arith_overflow_result_store): Take a
17395         scalar_int_mode rather than a machine_mode.
17396         (expand_mul_overflow): Use scalar_int_mode for local variables.
17397         * loop-doloop.c (doloop_modify): Likewise.
17398         (doloop_optimize): Likewise.
17399         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
17400         than a machine_mode.
17401         (expand_doubleword_shift_condmove): Likewise.
17402         (expand_doubleword_shift): Likewise.
17403         (expand_doubleword_clz): Likewise.
17404         (expand_doubleword_popcount): Likewise.
17405         (expand_doubleword_parity): Likewise.
17406         (expand_absneg_bit): Use scalar_int_mode for local variables.
17407         (prepare_float_lib_cmp): Likewise.
17408         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
17409         rather than a machine_mode.
17410         (convert_memory_address_addr_space): Likewise.
17411         (get_mode_bounds): Likewise.
17412         (get_address_mode): Return a scalar_int_mode rather than a
17413         machine_mode.
17414         * rtlanal.c (get_address_mode): Likewise.
17415         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
17416         than a machine_mode.
17417         * targhooks.c (default_mode_rep_extended): Likewise.
17418         (default_valid_pointer_mode): Likewise.
17419         (default_addr_space_valid_pointer_mode): Likewise.
17420         (default_eh_return_filter_mode): Return a scalar_int_mode rather
17421         than a machine_mode.
17422         (default_libgcc_cmp_return_mode): Likewise.
17423         (default_libgcc_shift_count_mode): Likewise.
17424         (default_unwind_word_mode): Likewise.
17425         (default_addr_space_pointer_mode): Likewise.
17426         (default_addr_space_address_mode): Likewise.
17427         * targhooks.h (default_eh_return_filter_mode): Likewise.
17428         (default_libgcc_cmp_return_mode): Likewise.
17429         (default_libgcc_shift_count_mode): Likewise.
17430         (default_unwind_word_mode): Likewise.
17431         (default_addr_space_pointer_mode): Likewise.
17432         (default_addr_space_address_mode): Likewise.
17433         (default_mode_rep_extended): Take a scalar_int_mode rather than
17434         a machine_mode.
17435         (default_valid_pointer_mode): Likewise.
17436         (default_addr_space_valid_pointer_mode): Likewise.
17437         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
17438         local variables.
17439         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
17440         rather than a machine_mode.
17441         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
17442         for local variables.
17443         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17444         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
17445         than a machine_mode.
17446
17447 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17448             Alan Hayward  <alan.hayward@arm.com>
17449             David Sherwood  <david.sherwood@arm.com>
17450
17451         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
17452         the mode argument to scalar_int_mode.
17453         (do_jump_by_parts_zero_rtx): Likewise.
17454         (do_jump_by_parts_equality_rtx): Likewise.
17455         (do_jump_by_parts_greater): Take a mode argument.
17456         (do_jump_by_parts_equality): Likewise.
17457         (do_jump_1): Update calls accordingly.
17458
17459 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17460             Alan Hayward  <alan.hayward@arm.com>
17461             David Sherwood  <david.sherwood@arm.com>
17462
17463         * is-a.h (safe_dyn_cast): New function.
17464         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
17465         (jump_table_for_label): Likewise.
17466         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
17467         instead of an rtx_insn *.
17468         (shorten_branches): Use dyn_cast instead of LABEL_P and
17469         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
17470         rtx_jump_table_data::get_data_mode.
17471         (final_scan_insn): Likewise.
17472
17473 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17474             Alan Hayward  <alan.hayward@arm.com>
17475             David Sherwood  <david.sherwood@arm.com>
17476
17477         * combine.c (try_combine): Use is_a <scalar_int_mode> when
17478         trying to combine a full-register integer set with a subreg
17479         integer set.
17480
17481 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17482             Alan Hayward  <alan.hayward@arm.com>
17483             David Sherwood  <david.sherwood@arm.com>
17484
17485         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
17486         that is always either address_mode or pointer_mode.
17487
17488 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17489             Alan Hayward  <alan.hayward@arm.com>
17490             David Sherwood  <david.sherwood@arm.com>
17491
17492         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
17493         when the two are known to be equal.
17494
17495 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17496             Alan Hayward  <alan.hayward@arm.com>
17497             David Sherwood  <david.sherwood@arm.com>
17498
17499         * simplify-rtx.c (simplify_const_unary_operation): Use
17500         is_a <scalar_int_mode> instead of checking for a nonzero
17501         precision.  Forcibly convert op_mode to a scalar_int_mode
17502         in that case.  More clearly differentiate the operand and
17503         result modes and use the former when deciding what the value
17504         of a count-bits operation should be.  Use is_int_mode instead
17505         of checking for a MODE_INT.  Remove redundant check for whether
17506         this mode has a zero precision.
17507
17508 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17509             Alan Hayward  <alan.hayward@arm.com>
17510             David Sherwood  <david.sherwood@arm.com>
17511
17512         * optabs.c (widen_leading): Change the type of the mode argument
17513         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
17514         (widen_bswap): Likewise.
17515         (expand_parity): Likewise.
17516         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
17517         (expand_ffs): Likewise.
17518         (epand_unop): Check for scalar integer modes before calling the
17519         above routines.
17520
17521 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17522             Alan Hayward  <alan.hayward@arm.com>
17523             David Sherwood  <david.sherwood@arm.com>
17524
17525         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
17526         Expand commentary.
17527         (expand_expr_real_1): Update call accordingly.
17528
17529 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17530             Alan Hayward  <alan.hayward@arm.com>
17531             David Sherwood  <david.sherwood@arm.com>
17532
17533         * expmed.c (store_bit_field_using_insv): Add op0_mode and
17534         value_mode arguments.  Use scalar_int_mode internally.
17535         (store_bit_field_1): Rename the new integer mode from imode
17536         to op0_mode and use it instead of GET_MODE (op0).  Update calls
17537         to store_split_bit_field, store_bit_field_using_insv and
17538         store_fixed_bit_field.
17539         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
17540         Use scalar_int_mode internally.  Use a bit count rather than a mode
17541         when calculating the largest bit size for get_best_mode.
17542         Update calls to store_split_bit_field and store_fixed_bit_field_1.
17543         (store_fixed_bit_field_1): Add mode and value_mode arguments.
17544         Remove assertion that OP0 has a scalar integer mode.
17545         (store_split_bit_field): Add op0_mode and value_mode arguments.
17546         Update calls to extract_fixed_bit_field.
17547         (extract_bit_field_using_extv): Add an op0_mode argument.
17548         Use scalar_int_mode internally.
17549         (extract_bit_field_1): Rename the new integer mode from imode to
17550         op0_mode and use it instead of GET_MODE (op0).  Update calls to
17551         extract_split_bit_field, extract_bit_field_using_extv and
17552         extract_fixed_bit_field.
17553         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
17554         to extract_split_bit_field and extract_fixed_bit_field_1.
17555         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
17556         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
17557         on the target mode.
17558         (extract_split_bit_field): Add an op0_mode argument.  Update call
17559         to extract_fixed_bit_field.
17560
17561 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17562             Alan Hayward  <alan.hayward@arm.com>
17563             David Sherwood  <david.sherwood@arm.com>
17564
17565         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
17566         * explow.c (hard_function_value): Likewise.
17567         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
17568         convert_to_mode call outside the loop.
17569         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
17570         for the mode iterator.  Require the mode specified by max_pieces
17571         to exist.
17572         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
17573         mode iterator.
17574         (copy_blkmode_to_reg): Likewise.
17575         (set_storage_via_setmem): Likewise.
17576         * optabs.c (prepare_cmp_insn): Likewise.
17577         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
17578         * stor-layout.c (finish_bitfield_representative): Likewise.
17579
17580 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17581             Alan Hayward  <alan.hayward@arm.com>
17582             David Sherwood  <david.sherwood@arm.com>
17583
17584         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
17585         * expr.c (convert_move): Use them.
17586         (convert_modes): Likewise.
17587         (store_expr_with_bounds): Likewise.
17588
17589 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17590             Alan Hayward  <alan.hayward@arm.com>
17591             David Sherwood  <david.sherwood@arm.com>
17592
17593         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
17594         parameter for the mode of "x".  Remove the "known_x", "known_mode"
17595         and "known_ret" arguments.  Change the type of the mode argument
17596         to scalar_int_mode.
17597         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
17598         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
17599         (reg_num_sign_bit_copies_for_combine): Likewise.
17600         * rtlanal.c (nonzero_bits1): Likewise.
17601         (num_sign_bit_copies1): Likewise.
17602         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
17603         (reg_num_sign_bit_copies_general): Likewise.
17604         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
17605         (reg_nonzero_bits_general): Likewise.
17606
17607 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17608             Alan Hayward  <alan.hayward@arm.com>
17609             David Sherwood  <david.sherwood@arm.com>
17610
17611         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
17612         than in subroutines.  Return 1 for non-integer modes.
17613         (cached_num_sign_bit_copies): Change the type of the mode parameter
17614         to scalar_int_mode.
17615         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
17616         classes.  Handle CONST_INT_P first and then check whether X also
17617         has a scalar integer mode.  Check the same thing for inner registers
17618         of a SUBREG and for values that are being extended or truncated.
17619
17620 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17621             Alan Hayward  <alan.hayward@arm.com>
17622             David Sherwood  <david.sherwood@arm.com>
17623
17624         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
17625         in subroutines.  Return the mode mask for non-integer modes.
17626         (cached_nonzero_bits): Change the type of the mode parameter
17627         to scalar_int_mode.
17628         (nonzero_bits1): Likewise.  Remove early exit for other mode
17629         classes.  Handle CONST_INT_P first and then check whether X
17630         also has a scalar integer mode.
17631
17632 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17633             Alan Hayward  <alan.hayward@arm.com>
17634             David Sherwood  <david.sherwood@arm.com>
17635
17636         * expr.c (widest_int_mode_for_size): Make the comment match the code.
17637         Return a scalar_int_mode and assert that the size is greater than
17638         one byte.
17639         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
17640         (op_by_pieces_d::op_by_pieces_d): Likewise.
17641         (op_by_pieces_d::run): Likewise.
17642         (can_store_by_pieces): Likewise.
17643
17644 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17645             Alan Hayward  <alan.hayward@arm.com>
17646             David Sherwood  <david.sherwood@arm.com>
17647
17648         * combine.c (extract_left_shift): Add a mode argument and update
17649         recursive calls.
17650         (make_compound_operation_int): Change the type of the mode parameter
17651         to scalar_int_mode and update the call to extract_left_shift.
17652
17653 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17654             Alan Hayward  <alan.hayward@arm.com>
17655             David Sherwood  <david.sherwood@arm.com>
17656
17657         * combine.c (simplify_and_const_int): Change the type of the mode
17658         parameter to scalar_int_mode.
17659         (simplify_and_const_int_1): Likewise.  Update recursive call.
17660
17661 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17662             Alan Hayward  <alan.hayward@arm.com>
17663             David Sherwood  <david.sherwood@arm.com>
17664
17665         * combine.c (simplify_compare_const): Check that the mode is a
17666         scalar_int_mode (rather than VOIDmode) before testing its
17667         precision.
17668         (simplify_comparison): Move COMPARISON_P handling out of the
17669         loop and restrict the latter part of the loop to scalar_int_modes.
17670         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
17671         and when considering SUBREG_REGs.  Use is_int_mode instead of
17672         checking GET_MODE_CLASS against MODE_INT.
17673
17674 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17675             Alan Hayward  <alan.hayward@arm.com>
17676             David Sherwood  <david.sherwood@arm.com>
17677
17678         * combine.c (try_widen_shift_mode): Move check for equal modes to...
17679         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
17680         shift_unit_mode and for modes involved in scalar shifts.
17681
17682 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17683             Alan Hayward  <alan.hayward@arm.com>
17684             David Sherwood  <david.sherwood@arm.com>
17685
17686         * combine.c (force_int_to_mode): New function, split out from...
17687         (force_to_mode): ...here.  Keep xmode up-to-date and use it
17688         instead of GET_MODE (x).
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         * optabs-query.h (extraction_insn::struct_mode): Change type to
17695         opt_scalar_int_mode and update comment.
17696         (extraction_insn::field_mode): Change type to scalar_int_mode.
17697         (extraction_insn::pos_mode): Likewise.
17698         * combine.c (make_extraction): Update accordingly.
17699         * optabs-query.c (get_traditional_extraction_insn): Likewise.
17700         (get_optab_extraction_insn): Likewise.
17701         * recog.c (simplify_while_replacing): Likewise.
17702         * expmed.c (narrow_bit_field_mem): Change the type of the mode
17703         parameter to opt_scalar_int_mode.
17704
17705 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17706             Alan Hayward  <alan.hayward@arm.com>
17707             David Sherwood  <david.sherwood@arm.com>
17708
17709         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
17710         to a scalar_int_mode instead of a machine_mode.
17711         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
17712         (get_best_mode): Return a boolean and use a pointer argument to store
17713         the selected mode.  Replace the limit mode parameter with a bit limit.
17714         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
17715         for the values returned by bit_field_mode_iterator::next_mode.
17716         (store_bit_field): Update call to get_best_mode.
17717         (store_fixed_bit_field): Likewise.
17718         (extract_fixed_bit_field): Likewise.
17719         * expr.c (optimize_bitfield_assignment_op): Likewise.
17720         * fold-const.c (optimize_bit_field_compare): Likewise.
17721         (fold_truth_andor_1): Likewise.
17722         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
17723         Update for new type of m_mode.
17724         (get_best_mode): As above.
17725
17726 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17727             Alan Hayward  <alan.hayward@arm.com>
17728             David Sherwood  <david.sherwood@arm.com>
17729
17730         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
17731         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
17732         (store_bit_field): Check is_a <scalar_int_mode> before calling
17733         strict_volatile_bitfield_p.
17734         (extract_bit_field): Likewise.
17735
17736 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17737             Alan Hayward  <alan.hayward@arm.com>
17738             David Sherwood  <david.sherwood@arm.com>
17739
17740         * target.def (cstore_mode): Return a scalar_int_mode.
17741         * doc/tm.texi: Regenerate.
17742         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
17743         * targhooks.h (default_cstore_mode): Likewise.
17744         * targhooks.c (default_cstore_mode): Likewise, using a forced
17745         conversion.
17746         * expmed.c (emit_cstore): Expect the target of the cstore to be
17747         a scalar_int_mode.
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         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
17754         scalar_int_mode.
17755         (niter_desc): Likewise mode.
17756         (iv_analyze): Add a mode parameter.
17757         (biv_p): Likewise.
17758         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
17759         and change its type to scalar_int_mode.
17760         * loop-iv.c: Update commentary at head of file.
17761         (iv_constant): Pass the mode paraeter before the rtx it describes
17762         and change its type to scalar_int_mode.  Remove VOIDmode handling.
17763         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
17764         (iv_extend): Likewise.
17765         (shorten_into_mode): Likewise.
17766         (iv_add): Use scalar_int_mode.
17767         (iv_mult): Likewise.
17768         (iv_shift): Likewise.
17769         (canonicalize_iv_subregs): Likewise.
17770         (get_biv_step_1): Pass the outer_mode parameter before the rtx
17771         it describes and change its mode to scalar_int_mode.   Also change
17772         the type of the returned inner_mode to scalar_int_mode.
17773         (get_biv_step): Likewise, turning outer_mode from a pointer
17774         into a direct parameter.  Update call to get_biv_step_1.
17775         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
17776         iv_constant and get_biv_step.
17777         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
17778         and change its type to scalar_int_mode.  Don't initialise iv->mode
17779         to VOIDmode and remove later checks for its still being VOIDmode.
17780         Update calls to iv_analyze_op and iv_analyze_expr.  Check
17781         is_a <scalar_int_mode> when changing the mode under consideration.
17782         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
17783         Update call to iv_analyze_expr.
17784         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
17785         inner register is not also a scalar_int_mode.  Update call to
17786         iv_analyze_biv.
17787         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
17788         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
17789         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
17790         separate mode class checks.  Update calls to iv_analyze.  Remove
17791         fix-up of VOIDmodes after iv_analyze_biv.
17792         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
17793         don't have a scalar_int_mode.  Update call to biv_p.
17794
17795 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17796             Alan Hayward  <alan.hayward@arm.com>
17797             David Sherwood  <david.sherwood@arm.com>
17798
17799         * cfgexpand.c (convert_debug_memory_address): Use
17800         as_a <scalar_int_mode>.
17801         * combine.c (expand_compound_operation): Likewise.
17802         (make_extraction): Likewise.
17803         (change_zero_ext): Likewise.
17804         (simplify_comparison): Likewise.
17805         * cse.c (cse_insn): Likewise.
17806         * dwarf2out.c (minmax_loc_descriptor): Likewise.
17807         (mem_loc_descriptor): Likewise.
17808         (loc_descriptor): Likewise.
17809         * expmed.c (init_expmed_one_mode): Likewise.
17810         (synth_mult): Likewise.
17811         (emit_store_flag_1): Likewise.
17812         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
17813         of a comparison with size.
17814         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
17815         (reduce_to_bit_field_precision): Likewise.
17816         * function.c (expand_function_end): Likewise.
17817         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
17818         * loop-doloop.c (doloop_modify): Likewise.
17819         * optabs.c (expand_binop): Likewise.
17820         (expand_unop): Likewise.
17821         (expand_copysign_absneg): Likewise.
17822         (prepare_cmp_insn): Likewise.
17823         (maybe_legitimize_operand): Likewise.
17824         * recog.c (const_scalar_int_operand): Likewise.
17825         * rtlanal.c (get_address_mode): Likewise.
17826         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17827         (simplify_cond_clz_ctz): Likewise.
17828         * tree-nested.c (get_nl_goto_field): Likewise.
17829         * tree.c (build_vector_type_for_mode): Likewise.
17830         * var-tracking.c (use_narrower_mode): Likewise.
17831
17832 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17833             Alan Hayward  <alan.hayward@arm.com>
17834             David Sherwood  <david.sherwood@arm.com>
17835
17836         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
17837         * builtins.c (expand_builtin_signbit): Use it.
17838         * cfgexpand.c (expand_debug_expr): Likewise.
17839         * dojump.c (do_jump): Likewise.
17840         (do_compare_and_jump): Likewise.
17841         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
17842         * expmed.c (make_tree): Likewise.
17843         * expr.c (expand_expr_real_2): Likewise.
17844         (expand_expr_real_1): Likewise.
17845         (try_casesi): Likewise.
17846         * fold-const-call.c (fold_const_call_ss): Likewise.
17847         * fold-const.c (unextend): Likewise.
17848         (extract_muldiv_1): Likewise.
17849         (fold_single_bit_test): Likewise.
17850         (native_encode_int): Likewise.
17851         (native_encode_string): Likewise.
17852         (native_interpret_int): Likewise.
17853         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
17854         * internal-fn.c (expand_addsub_overflow): Likewise.
17855         (expand_neg_overflow): Likewise.
17856         (expand_mul_overflow): Likewise.
17857         (expand_arith_overflow): Likewise.
17858         * match.pd: Likewise.
17859         * stor-layout.c (layout_type): Likewise.
17860         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17861         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
17862         * tree-ssanames.c (get_range_info): Likewise.
17863         * tree-switch-conversion.c (array_value_type) Likewise.
17864         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
17865         (vect_recog_divmod_pattern): Likewise.
17866         (vect_recog_mixed_size_cond_pattern): Likewise.
17867         * tree-vrp.c (extract_range_basic): Likewise.
17868         (simplify_float_conversion_using_ranges): Likewise.
17869         * tree.c (int_fits_type_p): Likewise.
17870         * ubsan.c (instrument_bool_enum_load): Likewise.
17871         * varasm.c (mergeable_string_section): Likewise.
17872         (narrowing_initializer_constant_valid_p): Likewise.
17873         (output_constant): Likewise.
17874
17875 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17876             Alan Hayward  <alan.hayward@arm.com>
17877             David Sherwood  <david.sherwood@arm.com>
17878
17879         * machmode.h (NARROWEST_INT_MODE): New macro.
17880         * expr.c (alignment_for_piecewise_move): Use it instead of
17881         GET_CLASS_NARROWEST_MODE (MODE_INT).
17882         (push_block): Likewise.
17883         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
17884         Likewise.
17885         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17886
17887 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17888             Alan Hayward  <alan.hayward@arm.com>
17889             David Sherwood  <david.sherwood@arm.com>
17890
17891         * postreload.c (move2add_valid_value_p): Change the type of the
17892         mode parameter to scalar_int_mode.
17893         (move2add_use_add2_insn): Add a mode parameter and use it instead
17894         of GET_MODE (reg).
17895         (move2add_use_add3_insn): Likewise.
17896         (reload_cse_move2add): Update accordingly.
17897
17898 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17899             Alan Hayward  <alan.hayward@arm.com>
17900             David Sherwood  <david.sherwood@arm.com>
17901
17902         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
17903         double-word mode.
17904         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
17905         * optabs.c (expand_unop): Likewise.
17906
17907 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17908             Alan Hayward  <alan.hayward@arm.com>
17909             David Sherwood  <david.sherwood@arm.com>
17910
17911         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
17912         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
17913         (popcount_loc_descriptor): Likewise.
17914         (bswap_loc_descriptor): Likewise.
17915         (rotate_loc_descriptor): Likewise.
17916         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
17917         calling the functions above.
17918
17919 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17920             Alan Hayward  <alan.hayward@arm.com>
17921             David Sherwood  <david.sherwood@arm.com>
17922
17923         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
17924         checks.
17925         (try_combine): Likewise.
17926         (simplify_if_then_else): Likewise.
17927         * cse.c (cse_insn): Likewise.
17928         * dwarf2out.c (mem_loc_descriptor): Likewise.
17929         * emit-rtl.c (gen_lowpart_common): Likewise.
17930         * simplify-rtx.c (simplify_truncation): Likewise.
17931         (simplify_binary_operation_1): Likewise.
17932         (simplify_const_relational_operation): Likewise.
17933         (simplify_ternary_operation): Likewise.
17934         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
17935
17936 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17937             Alan Hayward  <alan.hayward@arm.com>
17938             David Sherwood  <david.sherwood@arm.com>
17939
17940         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
17941         * reload.c (push_reload): Likewise.
17942         (find_reloads): Likewise.
17943
17944 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17945             Alan Hayward  <alan.hayward@arm.com>
17946             David Sherwood  <david.sherwood@arm.com>
17947
17948         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
17949         (make_compound_operation_int): Likewise.
17950         (change_zero_ext): Likewise.
17951         * expr.c (convert_move): Likewise.
17952         (convert_modes): Likewise.
17953         * fwprop.c (forward_propagate_subreg): Likewise.
17954         * loop-iv.c (get_biv_step_1): Likewise.
17955         * optabs.c (widen_operand): Likewise.
17956         * postreload.c (move2add_valid_value_p): Likewise.
17957         * recog.c (simplify_while_replacing): Likewise.
17958         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17959         (simplify_binary_operation_1): Likewise.  Remove redundant
17960         mode equality check.
17961
17962 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17963             Alan Hayward  <alan.hayward@arm.com>
17964             David Sherwood  <david.sherwood@arm.com>
17965
17966         * combine.c (combine_simplify_rtx): Add checks for
17967         is_a <scalar_int_mode>.
17968         (simplify_if_then_else): Likewise.
17969         (make_field_assignment): Likewise.
17970         (simplify_comparison): Likewise.
17971         * ifcvt.c (noce_try_bitop): Likewise.
17972         * loop-invariant.c (canonicalize_address_mult): Likewise.
17973         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17974
17975 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17976             Alan Hayward  <alan.hayward@arm.com>
17977             David Sherwood  <david.sherwood@arm.com>
17978
17979         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
17980         is_a <scalar_int_mode> instead of != BLKmode.
17981
17982 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17983             Alan Hayward  <alan.hayward@arm.com>
17984             David Sherwood  <david.sherwood@arm.com>
17985
17986         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
17987         instead of != VOIDmode.
17988         * combine.c (if_then_else_cond): Likewise.
17989         (change_zero_ext): Likewise.
17990         * dwarf2out.c (mem_loc_descriptor): Likewise.
17991         (loc_descriptor): Likewise.
17992         * rtlanal.c (canonicalize_condition): Likewise.
17993         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
17994
17995 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17996             Alan Hayward  <alan.hayward@arm.com>
17997             David Sherwood  <david.sherwood@arm.com>
17998
17999         * simplify-rtx.c (simplify_binary_operation_1): Use
18000         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
18001
18002 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18003             Alan Hayward  <alan.hayward@arm.com>
18004             David Sherwood  <david.sherwood@arm.com>
18005
18006         * wide-int.h (int_traits<unsigned char>) New class.
18007         (int_traits<unsigned short>) Likewise.
18008         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
18009         Use GET_MODE_UNIT_PRECISION and remove redundant test for
18010         SCALAR_INT_MODE_P.
18011         * combine.c (set_nonzero_bits_and_sign_copies): Use
18012         is_a <scalar_int_mode>.
18013         (find_split_point): Likewise.
18014         (combine_simplify_rtx): Likewise.
18015         (simplify_logical): Likewise.
18016         (expand_compound_operation): Likewise.
18017         (expand_field_assignment): Likewise.
18018         (make_compound_operation): Likewise.
18019         (extended_count): Likewise.
18020         (change_zero_ext): Likewise.
18021         (simplify_comparison): Likewise.
18022         * dwarf2out.c (scompare_loc_descriptor): Likewise.
18023         (ucompare_loc_descriptor): Likewise.
18024         (minmax_loc_descriptor): Likewise.
18025         (mem_loc_descriptor): Likewise.
18026         (loc_descriptor): Likewise.
18027         * expmed.c (init_expmed_one_mode): Likewise.
18028         * lra-constraints.c (lra_constraint_offset): Likewise.
18029         * optabs.c (prepare_libcall_arg): Likewise.
18030         * postreload.c (move2add_note_store): Likewise.
18031         * reload.c (operands_match_p): Likewise.
18032         * rtl.h (load_extend_op): Likewise.
18033         * rtlhooks.c (gen_lowpart_general): Likewise.
18034         * simplify-rtx.c (simplify_truncation): Likewise.
18035         (simplify_unary_operation_1): Likewise.
18036         (simplify_binary_operation_1): Likewise.
18037         (simplify_const_binary_operation): Likewise.
18038         (simplify_const_relational_operation): Likewise.
18039         (simplify_subreg): Likewise.
18040         * stor-layout.c (bitwise_mode_for_mode): Likewise.
18041         * var-tracking.c (adjust_mems): Likewise.
18042         (prepare_call_arguments): 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 (is_int_mode): New fuction.
18049         * combine.c (find_split_point): Use it.
18050         (combine_simplify_rtx): Likewise.
18051         (simplify_if_then_else): Likewise.
18052         (simplify_set): Likewise.
18053         (simplify_shift_const_1): Likewise.
18054         (simplify_comparison): Likewise.
18055         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
18056         * cse.c (notreg_cost): Likewise.
18057         (cse_insn): Likewise.
18058         * cselib.c (cselib_lookup_1): Likewise.
18059         * dojump.c (do_jump_1): Likewise.
18060         (do_compare_rtx_and_jump): Likewise.
18061         * dse.c (get_call_args): Likewise.
18062         * dwarf2out.c (rtl_for_decl_init): Likewise.
18063         (native_encode_initializer): Likewise.
18064         * expmed.c (emit_store_flag_1): Likewise.
18065         (emit_store_flag): Likewise.
18066         * expr.c (convert_modes): Likewise.
18067         (store_field): Likewise.
18068         (expand_expr_real_1): Likewise.
18069         * fold-const.c (fold_read_from_constant_string): Likewise.
18070         * gimple-ssa-sprintf.c (get_format_string): Likewise.
18071         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
18072         * optabs.c (expand_binop): Likewise.
18073         (expand_unop): Likewise.
18074         (expand_abs_nojump): Likewise.
18075         (expand_one_cmpl_abs_nojump): Likewise.
18076         * simplify-rtx.c (mode_signbit_p): Likewise.
18077         (val_signbit_p): Likewise.
18078         (val_signbit_known_set_p): Likewise.
18079         (val_signbit_known_clear_p): Likewise.
18080         (simplify_relational_operation_1): Likewise.
18081         * tree.c (vector_type_mode): Likewise.
18082
18083 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18084             Alan Hayward  <alan.hayward@arm.com>
18085             David Sherwood  <david.sherwood@arm.com>
18086
18087         * machmode.h (smallest_mode_for_size): Fix formatting.
18088         (smallest_int_mode_for_size): New function.
18089         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
18090         instead of smallest_mode_for_size.
18091         * combine.c (make_extraction): Likewise.
18092         * config/arc/arc.c (arc_expand_movmem): Likewise.
18093         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
18094         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
18095         * config/s390/s390.c (s390_expand_insv): Likewise.
18096         * config/sparc/sparc.c (assign_int_registers): Likewise.
18097         * config/spu/spu.c (spu_function_value): Likewise.
18098         (spu_function_arg): Likewise.
18099         * coverage.c (get_gcov_type): Likewise.
18100         (get_gcov_unsigned_t): Likewise.
18101         * dse.c (find_shift_sequence): Likewise.
18102         * expmed.c (store_bit_field_1): Likewise.
18103         * expr.c (convert_move): Likewise.
18104         (store_field): Likewise.
18105         * internal-fn.c (expand_arith_overflow): Likewise.
18106         * optabs-query.c (get_best_extraction_insn): Likewise.
18107         * optabs.c (expand_twoval_binop_libfunc): Likewise.
18108         * stor-layout.c (layout_type): Likewise.
18109         (initialize_sizetypes): Likewise.
18110         * targhooks.c (default_get_mask_mode): Likewise.
18111         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): 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         * machmode.h (opt_mode::else_blk): New function.
18118         (int_mode_for_mode): Declare.
18119         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
18120         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
18121         return type.
18122         * cfgexpand.c (expand_debug_expr): Likewise.
18123         * combine.c (gen_lowpart_or_truncate): Likewise.
18124         (gen_lowpart_for_combine): Likewise.
18125         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
18126         * config/avr/avr.c (avr_to_int_mode): Likewise.
18127         (avr_out_plus_1): Likewise.
18128         (avr_out_plus): Likewise.
18129         (avr_out_round): Likewise.
18130         * config/i386/i386.c (ix86_split_to_parts): Likewise.
18131         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
18132         (s390_expand_vcond): Likewise.
18133         * config/spu/spu.c (spu_split_immediate): Likewise.
18134         (spu_expand_mov): Likewise.
18135         * dse.c (get_stored_val): Likewise.
18136         * expmed.c (store_bit_field_1): Likewise.
18137         (convert_extracted_bit_field): Use int_mode_for_mode instead of
18138         int_mode_for_size.
18139         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
18140         (extract_low_bits): Likewise.
18141         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
18142         handling rather than repeating the check.
18143         (emit_group_store): Likewise.
18144         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
18145         * optabs.c (expand_absneg_bit): Likewise.
18146         (expand_copysign_absneg): Likewise.
18147         (expand_copysign_bit): Likewise.
18148         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
18149         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
18150         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
18151         * var-tracking.c (prepare_call_arguments):  Likewise.
18152         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
18153         int_mode_for_mode instead of mode_for_size.
18154         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
18155
18156 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18157             Alan Hayward  <alan.hayward@arm.com>
18158             David Sherwood  <david.sherwood@arm.com>
18159
18160         * machmode.h (int_mode_for_size): New function.
18161         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
18162         instead of mode_for_size.
18163         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
18164         explicit.
18165         * combine.c (expand_field_assignment): Use int_mode_for_size
18166         instead of mode_for_size.
18167         (make_extraction): Likewise.
18168         (simplify_shift_const_1): Likewise.
18169         (simplify_comparison): Likewise.
18170         * dojump.c (do_jump): Likewise.
18171         * dwarf2out.c (mem_loc_descriptor): Likewise.
18172         * emit-rtl.c (init_derived_machine_modes): Likewise.
18173         * expmed.c (flip_storage_order): Likewise.
18174         (convert_extracted_bit_field): Likewise.
18175         * expr.c (copy_blkmode_from_reg): Likewise.
18176         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
18177         * internal-fn.c (expand_mul_overflow): Likewise.
18178         * lower-subreg.c (simple_move): Likewise.
18179         * optabs-libfuncs.c (init_optabs): Likewise.
18180         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18181         * tree.c (vector_type_mode): Likewise.
18182         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
18183         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
18184         * tree-vect-generic.c (expand_vector_parallel): Likewise.
18185         * tree-vect-stmts.c (vectorizable_load): Likewise.
18186         (vectorizable_store): Likewise.
18187
18188 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18189             Alan Hayward  <alan.hayward@arm.com>
18190             David Sherwood  <david.sherwood@arm.com>
18191
18192         * coretypes.h (pod_mode): New type.
18193         (scalar_int_mode_pod): New typedef.
18194         * machmode.h (pod_mode): New class.
18195         (int_n_data_t::m): Change type to scalar_int_mode_pod.
18196         * genmodes.c (emit_mode_int_n): Update accordingly.
18197         * lower-subreg.h (target_lower_subreg): Change type to
18198         scalar_int_mode_pod.
18199         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
18200         scalar_int_mode_pod.
18201
18202 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18203             Alan Hayward  <alan.hayward@arm.com>
18204             David Sherwood  <david.sherwood@arm.com>
18205
18206         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
18207         machine_mode to scalar_int_mode.
18208         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
18209         (rs6000_option_override_internal): Remove cast to int.
18210         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
18211         machine_mode to scalar_int_mode.
18212         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
18213         (rs6000_option_override_internal): Remove cast to int.
18214         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
18215         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
18216         to machine_mode.
18217         * config/s390/s390.c (s390_expand_builtin): Likewise.
18218         * coretypes.h (scalar_int_mode): New type.
18219         (opt_scalar_int_mode): New typedef.
18220         * machmode.h (scalar_int_mode): New class.
18221         (scalar_int_mode::includes_p): New function.
18222         (byte_mode): Change type to scalar_int_mode.
18223         (word_mode): Likewise.
18224         (ptr_mode): Likewise.
18225         * emit-rtl.c (byte_mode): Likewise.
18226         (word_mode): Likewise.
18227         (ptr_mode): Likewise.
18228         (init_derived_machine_modes): Update accordingly.
18229         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
18230         and MODE_PARTIAL_INT.
18231         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
18232         opt_scalar_int_mode.
18233
18234 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18235             Alan Hayward  <alan.hayward@arm.com>
18236             David Sherwood  <david.sherwood@arm.com>
18237
18238         * target.def (libgcc_floating_mode_supported_p): Take a
18239         scalar_float_mode.
18240         * doc/tm.texi: Regenerate.
18241         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
18242         scalar_float_mode.
18243         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18244         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
18245         Likewise.
18246
18247 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18248             Alan Hayward  <alan.hayward@arm.com>
18249             David Sherwood  <david.sherwood@arm.com>
18250
18251         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
18252         * doc/tm.texi: Regenerate.
18253         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
18254         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
18255         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
18256         * targhooks.h (default_floatn_mode): Likewise.
18257         * targhooks.c (default_floatn_mode): Likewise.
18258         * tree.c (build_common_tree_nodes): Update accordingly.
18259
18260 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18261             Alan Hayward  <alan.hayward@arm.com>
18262             David Sherwood  <david.sherwood@arm.com>
18263
18264         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
18265         (mode_iterator::iterate_p): Likewise.
18266         (mode_iterator::get_wider): Likewise.
18267         * expr.c (init_expr_target): Use opt_scalar_float_mode.
18268
18269 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18270             Alan Hayward  <alan.hayward@arm.com>
18271             David Sherwood  <david.sherwood@arm.com>
18272
18273         * coretypes.h (opt_scalar_float_mode): New typedef.
18274         * machmode.h (float_mode_for_size): New function.
18275         * emit-rtl.c (double_mode): Delete.
18276         (init_emit_once): Use float_mode_for_size.
18277         * stor-layout.c (layout_type): Likewise.
18278         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
18279
18280 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18281             Alan Hayward  <alan.hayward@arm.com>
18282             David Sherwood  <david.sherwood@arm.com>
18283
18284         * output.h (assemble_real): Take a scalar_float_mode.
18285         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
18286         * config/arm/arm.md (consttable_4): Likewise.
18287         (consttable_8): Likewise.
18288         (consttable_16): Likewise.
18289         * config/mips/mips.md (consttable_float): Likewise.
18290         * config/s390/s390.c (s390_output_pool_entry): Likewise.
18291         * varasm.c (assemble_real): Take a scalar_float_mode.
18292         (output_constant_pool_2): Update accordingly.
18293         (output_constant): Likewise.
18294
18295 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18296             Alan Hayward  <alan.hayward@arm.com>
18297             David Sherwood  <david.sherwood@arm.com>
18298
18299         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
18300         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
18301         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
18302         (native_encode_real): Likewise.
18303         (native_interpret_real): Likewise.
18304         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
18305         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18306
18307 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18308             Alan Hayward  <alan.hayward@arm.com>
18309             David Sherwood  <david.sherwood@arm.com>
18310
18311         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
18312         <scalar_float_mode>.  Simplify.
18313         (gen_extend_conv_libfunc): Likewise.
18314
18315 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18316             Alan Hayward  <alan.hayward@arm.com>
18317             David Sherwood  <david.sherwood@arm.com>
18318
18319         * coretypes.h (scalar_float_mode): New type.
18320         * machmode.h (mode_traits::from_int): Use machine_mode if
18321         USE_ENUM_MODES is defined.
18322         (is_a): New function.
18323         (as_a): Likewise.
18324         (dyn_cast): Likewise.
18325         (scalar_float_mode): New class.
18326         (scalar_float_mode::includes_p): New function.
18327         (is_float_mode): Likewise.
18328         * gdbhooks.py (MachineModePrinter): New class.
18329         (build_pretty_printer): Use it for scalar_float_mode.
18330         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
18331         (format_helper::format_helper): Turn into a template.
18332         * genmodes.c (get_mode_class): New function.
18333         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
18334         or machine_mode if none.
18335         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
18336         as_a <scalar_float_mode>.
18337         * dwarf2out.c (mem_loc_descriptor): Likewise.
18338         (insert_float): Likewise.
18339         (add_const_value_attribute): Likewise.
18340         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18341         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
18342         (expand_unop): Update accordingly.
18343         (expand_abs_nojump): Likewise.
18344         (expand_copysign_absneg): Take a scalar_float_mode.
18345         (expand_copysign_bit): Likewise.
18346         (expand_copysign): Update accordingly.
18347
18348 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18349             Alan Hayward  <alan.hayward@arm.com>
18350             David Sherwood  <david.sherwood@arm.com>
18351
18352         * coretypes.h (opt_mode): New class.
18353         * machmode.h (opt_mode): Likewise.
18354         (opt_mode::else_void): New function.
18355         (opt_mode::require): Likewise.
18356         (opt_mode::exists): Likewise.
18357         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
18358         (GET_MODE_2XWIDER_MODE): Likewise.
18359         (mode_iterator::get_wider): Update accordingly.
18360         (mode_iterator::get_2xwider): Likewise.
18361         (mode_iterator::get_known_wider): Likewise, turning into a template.
18362         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
18363         forcing a wider mode to exist.
18364         * config/cr16/cr16.h (LONG_REG_P): Likewise.
18365         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18366         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
18367         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
18368         * lower-subreg.c (init_lower_subreg): Likewise.
18369         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
18370         on the final iteration.
18371         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
18372         a wider mode exists before asking for a move pattern.
18373         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
18374         forcing a wider mode to exist.
18375         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
18376         returning false if no such mode exists.
18377         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
18378         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
18379         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
18380         Avoid checking for a MODE_INT if we already know the mode is not a
18381         SCALAR_INT_MODE_P.
18382         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
18383         forcing a wider mode to exist.
18384         (expmed_mult_highpart_optab): Likewise.
18385         (expmed_mult_highpart): Likewise.
18386         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
18387         using else_void.
18388         * lto-streamer-in.c (lto_input_mode_table): Likewise.
18389         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
18390         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
18391         * internal-fn.c (expand_mul_overflow): Update use of
18392         GET_MODE_2XWIDER_MODE.
18393         * omp-low.c (omp_clause_aligned_alignment): Likewise.
18394         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
18395         GET_MODE_WIDER_MODE.
18396         (convert_plusminus_to_widen): Likewise.
18397         * tree-switch-conversion.c (array_value_type): Likewise.
18398         * var-tracking.c (emit_note_insn_var_location): Likewise.
18399         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18400         Return false inside rather than outside the loop if no wider mode
18401         exists
18402         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
18403         and GET_MODE_2XWIDER_MODE
18404         (can_compare_p): Use else_void.
18405         * gdbhooks.py (OptMachineModePrinter): New class.
18406         (build_pretty_printer): Use it for opt_mode.
18407
18408 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18409             Alan Hayward  <alan.hayward@arm.com>
18410             David Sherwood  <david.sherwood@arm.com>
18411
18412         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
18413         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
18414
18415 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18416             Alan Hayward  <alan.hayward@arm.com>
18417             David Sherwood  <david.sherwood@arm.com>
18418
18419         * machmode.h (mode_traits): New structure.
18420         (get_narrowest_mode): New function.
18421         (mode_iterator::start): Likewise.
18422         (mode_iterator::iterate_p): Likewise.
18423         (mode_iterator::get_wider): Likewise.
18424         (mode_iterator::get_known_wider): Likewise.
18425         (mode_iterator::get_2xwider): Likewise.
18426         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
18427         (FOR_EACH_MODE): Likewise.
18428         (FOR_EACH_MODE_FROM): Likewise.
18429         (FOR_EACH_MODE_UNTIL): Likewise.
18430         (FOR_EACH_WIDER_MODE): Likewise.
18431         (FOR_EACH_2XWIDER_MODE): Likewise.
18432         * builtins.c (expand_builtin_strlen): Use new mode iterators.
18433         * combine.c (simplify_comparison): Likewise
18434         * config/i386/i386.c (type_natural_mode): Likewise.
18435         * cse.c (cse_insn): Likewise.
18436         * dse.c (find_shift_sequence): Likewise.
18437         * emit-rtl.c (init_derived_machine_modes): Likewise.
18438         (init_emit_once): Likewise.
18439         * explow.c (hard_function_value): Likewise.
18440         * expmed.c (extract_fixed_bit_field_1): Likewise.
18441         (extract_bit_field_1): Likewise.
18442         (expand_divmod): Likewise.
18443         (emit_store_flag_1): Likewise.
18444         * expr.c (init_expr_target): Likewise.
18445         (convert_move): Likewise.
18446         (alignment_for_piecewise_move): Likewise.
18447         (widest_int_mode_for_size): Likewise.
18448         (emit_block_move_via_movmem): Likewise.
18449         (copy_blkmode_to_reg): Likewise.
18450         (set_storage_via_setmem): Likewise.
18451         (compress_float_constant): Likewise.
18452         * omp-low.c (omp_clause_aligned_alignment): Likewise.
18453         * optabs-query.c (get_best_extraction_insn): Likewise.
18454         * optabs.c (expand_binop): Likewise.
18455         (expand_twoval_unop): Likewise.
18456         (expand_twoval_binop): Likewise.
18457         (widen_leading): Likewise.
18458         (widen_bswap): Likewise.
18459         (expand_parity): Likewise.
18460         (expand_unop): Likewise.
18461         (prepare_cmp_insn): Likewise.
18462         (prepare_float_lib_cmp): Likewise.
18463         (expand_float): Likewise.
18464         (expand_fix): Likewise.
18465         (expand_sfix_optab): Likewise.
18466         * postreload.c (move2add_use_add2_insn): Likewise.
18467         * reg-stack.c (reg_to_stack): Likewise.
18468         * reginfo.c (choose_hard_reg_mode): Likewise.
18469         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18470         * stor-layout.c (mode_for_size): Likewise.
18471         (smallest_mode_for_size): Likewise.
18472         (mode_for_vector): Likewise.
18473         (finish_bitfield_representative): Likewise.
18474         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
18475         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
18476         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
18477         * var-tracking.c (prepare_call_arguments): Likewise.
18478
18479 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18480             Alan Hayward  <alan.hayward@arm.com>
18481             David Sherwood  <david.sherwood@arm.com>
18482
18483         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
18484         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
18485         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
18486         * machmode.h (mode_size): Move earlier in file.
18487         (mode_precision): Likewise.
18488         (mode_inner): Likewise.
18489         (mode_nunits): Likewise.
18490         (mode_unit_size): Likewise.
18491         (unit_unit_precision): Likewise.
18492         (mode_wider): Likewise.
18493         (mode_2xwider): Likewise.
18494         (machine_mode): New class.
18495         (mode_to_bytes): New function.
18496         (mode_to_bits): Likewise.
18497         (mode_to_precision): Likewise.
18498         (mode_to_inner): Likewise.
18499         (mode_to_unit_size): Likewise.
18500         (mode_to_unit_precision): Likewise.
18501         (mode_to_nunits): Likewise.
18502         (GET_MODE_SIZE): Use mode_to_bytes.
18503         (GET_MODE_BITSIZE): Use mode_to_bits.
18504         (GET_MODE_PRECISION): Use mode_to_precision.
18505         (GET_MODE_INNER): Use mode_to_inner.
18506         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
18507         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
18508         (GET_MODE_NUNITS): Use mode_to_nunits.
18509         * system.h (ALWAYS_INLINE): New macro.
18510         * config/powerpcspe/powerpcspe-c.c
18511         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
18512         int for arg1_mode and arg2_mode.
18513
18514 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18515             Alan Hayward  <alan.hayward@arm.com>
18516             David Sherwood  <david.sherwood@arm.com>
18517
18518         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
18519         Prefix mode names with E_ in case statements.
18520         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18521         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
18522         (aarch64_split_simd_move): Likewise.
18523         (aarch64_gen_storewb_pair): Likewise.
18524         (aarch64_gen_loadwb_pair): Likewise.
18525         (aarch64_gen_store_pair): Likewise.
18526         (aarch64_gen_load_pair): Likewise.
18527         (aarch64_get_condition_code_1): Likewise.
18528         (aarch64_constant_pool_reload_icode): Likewise.
18529         (get_rsqrte_type): Likewise.
18530         (get_rsqrts_type): Likewise.
18531         (get_recpe_type): Likewise.
18532         (get_recps_type): Likewise.
18533         (aarch64_gimplify_va_arg_expr): Likewise.
18534         (aarch64_simd_container_mode): Likewise.
18535         (aarch64_emit_load_exclusive): Likewise.
18536         (aarch64_emit_store_exclusive): Likewise.
18537         (aarch64_expand_compare_and_swap): Likewise.
18538         (aarch64_gen_atomic_cas): Likewise.
18539         (aarch64_emit_bic): Likewise.
18540         (aarch64_emit_atomic_swap): Likewise.
18541         (aarch64_emit_atomic_load_op): Likewise.
18542         (aarch64_evpc_trn): Likewise.
18543         (aarch64_evpc_uzp): Likewise.
18544         (aarch64_evpc_zip): Likewise.
18545         (aarch64_evpc_ext): Likewise.
18546         (aarch64_evpc_rev): Likewise.
18547         (aarch64_evpc_dup): Likewise.
18548         (aarch64_gen_ccmp_first): Likewise.
18549         (aarch64_gen_ccmp_next): Likewise.
18550         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
18551         (alpha_emit_xfloating_libcall): Likewise.
18552         (emit_insxl): Likewise.
18553         (alpha_arg_type): Likewise.
18554         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
18555         (arc_preferred_simd_mode): Likewise.
18556         (arc_secondary_reload): Likewise.
18557         (get_arc_condition_code): Likewise.
18558         (arc_print_operand): Likewise.
18559         (arc_legitimate_constant_p): Likewise.
18560         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18561         * config/arc/arc.md (casesi_load): Likewise.
18562         (casesi_compact_jump): Likewise.
18563         * config/arc/predicates.md (proper_comparison_operator): Likewise.
18564         (cc_use_register): Likewise.
18565         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18566         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
18567         (arm_init_iwmmxt_builtins): Likewise.
18568         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
18569         (neon_expand_vector_init): Likewise.
18570         (arm_attr_length_move_neon): Likewise.
18571         (maybe_get_arm_condition_code): Likewise.
18572         (arm_emit_vector_const): Likewise.
18573         (arm_preferred_simd_mode): Likewise.
18574         (arm_output_iwmmxt_tinsr): Likewise.
18575         (thumb1_output_casesi): Likewise.
18576         (thumb2_output_casesi): Likewise.
18577         (arm_emit_load_exclusive): Likewise.
18578         (arm_emit_store_exclusive): Likewise.
18579         (arm_expand_compare_and_swap): Likewise.
18580         (arm_evpc_neon_vuzp): Likewise.
18581         (arm_evpc_neon_vzip): Likewise.
18582         (arm_evpc_neon_vrev): Likewise.
18583         (arm_evpc_neon_vtrn): Likewise.
18584         (arm_evpc_neon_vext): Likewise.
18585         (arm_validize_comparison): Likewise.
18586         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
18587         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
18588         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
18589         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
18590         (c6x_preferred_simd_mode): Likewise.
18591         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
18592         (epiphany_rtx_costs): Likewise.
18593         * config/epiphany/predicates.md (proper_comparison_operator):
18594         Likewise.
18595         * config/frv/frv.c (condexec_memory_operand): Likewise.
18596         (frv_emit_move): Likewise.
18597         (output_move_single): Likewise.
18598         (output_condmove_single): Likewise.
18599         (frv_hard_regno_mode_ok): Likewise.
18600         (frv_matching_accg_mode): Likewise.
18601         * config/h8300/h8300.c (split_adds_subs): Likewise.
18602         (h8300_rtx_costs): Likewise.
18603         (h8300_print_operand): Likewise.
18604         (compute_mov_length): Likewise.
18605         (output_logical_op): Likewise.
18606         (compute_logical_op_length): Likewise.
18607         (compute_logical_op_cc): Likewise.
18608         (h8300_shift_needs_scratch_p): Likewise.
18609         (output_a_shift): Likewise.
18610         (compute_a_shift_length): Likewise.
18611         (compute_a_shift_cc): Likewise.
18612         (expand_a_rotate): Likewise.
18613         (output_a_rotate): Likewise.
18614         * config/i386/i386.c (classify_argument): Likewise.
18615         (function_arg_advance_32): Likewise.
18616         (function_arg_32): Likewise.
18617         (function_arg_64): Likewise.
18618         (function_value_64): Likewise.
18619         (ix86_gimplify_va_arg): Likewise.
18620         (ix86_legitimate_constant_p): Likewise.
18621         (put_condition_code): Likewise.
18622         (split_double_mode): Likewise.
18623         (ix86_avx256_split_vector_move_misalign): Likewise.
18624         (ix86_expand_vector_logical_operator): Likewise.
18625         (ix86_split_idivmod): Likewise.
18626         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
18627         (ix86_build_const_vector): Likewise.
18628         (ix86_build_signbit_mask): Likewise.
18629         (ix86_match_ccmode): Likewise.
18630         (ix86_cc_modes_compatible): Likewise.
18631         (ix86_expand_branch): Likewise.
18632         (ix86_expand_sse_cmp): Likewise.
18633         (ix86_expand_sse_movcc): Likewise.
18634         (ix86_expand_int_sse_cmp): Likewise.
18635         (ix86_expand_vec_perm_vpermi2): Likewise.
18636         (ix86_expand_vec_perm): Likewise.
18637         (ix86_expand_sse_unpack): Likewise.
18638         (ix86_expand_int_addcc): Likewise.
18639         (ix86_split_to_parts): Likewise.
18640         (ix86_vectorize_builtin_gather): Likewise.
18641         (ix86_vectorize_builtin_scatter): Likewise.
18642         (avx_vpermilp_parallel): Likewise.
18643         (inline_memory_move_cost): Likewise.
18644         (ix86_tieable_integer_mode_p): Likewise.
18645         (x86_maybe_negate_const_int): Likewise.
18646         (ix86_expand_vector_init_duplicate): Likewise.
18647         (ix86_expand_vector_init_one_nonzero): Likewise.
18648         (ix86_expand_vector_init_one_var): Likewise.
18649         (ix86_expand_vector_init_concat): Likewise.
18650         (ix86_expand_vector_init_interleave): Likewise.
18651         (ix86_expand_vector_init_general): Likewise.
18652         (ix86_expand_vector_set): Likewise.
18653         (ix86_expand_vector_extract): Likewise.
18654         (emit_reduc_half): Likewise.
18655         (ix86_emit_i387_round): Likewise.
18656         (ix86_mangle_type): Likewise.
18657         (ix86_expand_round_sse4): Likewise.
18658         (expand_vec_perm_blend): Likewise.
18659         (canonicalize_vector_int_perm): Likewise.
18660         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
18661         (expand_vec_perm_1): Likewise.
18662         (expand_vec_perm_interleave3): Likewise.
18663         (expand_vec_perm_even_odd_pack): Likewise.
18664         (expand_vec_perm_even_odd_1): Likewise.
18665         (expand_vec_perm_broadcast_1): Likewise.
18666         (ix86_vectorize_vec_perm_const_ok): Likewise.
18667         (ix86_expand_vecop_qihi): Likewise.
18668         (ix86_expand_mul_widen_hilo): Likewise.
18669         (ix86_expand_sse2_abs): Likewise.
18670         (ix86_expand_pextr): Likewise.
18671         (ix86_expand_pinsr): Likewise.
18672         (ix86_preferred_simd_mode): Likewise.
18673         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
18674         * config/i386/sse.md (*andnot<mode>3): Likewise.
18675         (<mask_codefor><code><mode>3<mask_name>): Likewise.
18676         (*<code><mode>3): Likewise.
18677         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
18678         (ia64_expand_atomic_op): Likewise.
18679         (ia64_arg_type): Likewise.
18680         (ia64_mode_to_int): Likewise.
18681         (ia64_scalar_mode_supported_p): Likewise.
18682         (ia64_vector_mode_supported_p): Likewise.
18683         (expand_vec_perm_broadcast): Likewise.
18684         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
18685         (iq2000_function_arg_advance): Likewise.
18686         (iq2000_function_arg): Likewise.
18687         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
18688         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
18689         (m68k_libcall_value): Likewise.
18690         (m68k_function_value): Likewise.
18691         (sched_attr_op_type): Likewise.
18692         * config/mcore/mcore.c (mcore_output_move): Likewise.
18693         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
18694         Likewise.
18695         (microblaze_function_arg): Likewise.
18696         * config/mips/mips.c (mips16_build_call_stub): Likewise.
18697         (mips_print_operand): Likewise.
18698         (mips_mode_ok_for_mov_fmt_p): Likewise.
18699         (mips_vector_mode_supported_p): Likewise.
18700         (mips_preferred_simd_mode): Likewise.
18701         (mips_expand_vpc_loongson_even_odd): Likewise.
18702         (mips_expand_vec_unpack): Likewise.
18703         (mips_expand_vi_broadcast): Likewise.
18704         (mips_expand_vector_init): Likewise.
18705         (mips_expand_vec_reduc): Likewise.
18706         (mips_expand_msa_cmp): Likewise.
18707         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
18708         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
18709         (cc_flags_for_mode): Likewise.
18710         * config/msp430/msp430.c (msp430_print_operand): Likewise.
18711         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
18712         (nds32_output_casesi_pc_relative): Likewise.
18713         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18714         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
18715         (nvptx_gen_unpack): Likewise.
18716         (nvptx_gen_pack): Likewise.
18717         (nvptx_gen_shuffle): Likewise.
18718         (nvptx_gen_wcast): Likewise.
18719         (nvptx_preferred_simd_mode): Likewise.
18720         * config/pa/pa.c (pa_secondary_reload): Likewise.
18721         * config/pa/predicates.md (base14_operand): Likewise.
18722         * config/powerpcspe/powerpcspe-c.c
18723         (altivec_resolve_overloaded_builtin): Likewise.
18724         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
18725         Likewise.
18726         (rs6000_preferred_simd_mode): Likewise.
18727         (output_vec_const_move): Likewise.
18728         (rs6000_expand_vector_extract): Likewise.
18729         (rs6000_split_vec_extract_var): Likewise.
18730         (reg_offset_addressing_ok_p): Likewise.
18731         (rs6000_legitimate_offset_address_p): Likewise.
18732         (rs6000_legitimize_address): Likewise.
18733         (rs6000_emit_set_const): Likewise.
18734         (rs6000_const_vec): Likewise.
18735         (rs6000_emit_move): Likewise.
18736         (spe_build_register_parallel): Likewise.
18737         (rs6000_darwin64_record_arg_recurse): Likewise.
18738         (swap_selector_for_mode): Likewise.
18739         (spe_init_builtins): Likewise.
18740         (paired_init_builtins): Likewise.
18741         (altivec_init_builtins): Likewise.
18742         (do_load_for_compare): Likewise.
18743         (rs6000_generate_compare): Likewise.
18744         (rs6000_expand_float128_convert): Likewise.
18745         (emit_load_locked): Likewise.
18746         (emit_store_conditional): Likewise.
18747         (rs6000_output_function_epilogue): Likewise.
18748         (rs6000_handle_altivec_attribute): Likewise.
18749         (rs6000_function_value): Likewise.
18750         (emit_fusion_gpr_load): Likewise.
18751         (emit_fusion_p9_load): Likewise.
18752         (emit_fusion_p9_store): Likewise.
18753         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
18754         (fusion_gpr_mem_load): Likewise.
18755         (fusion_addis_mem_combo_load): Likewise.
18756         (fusion_addis_mem_combo_store): Likewise.
18757         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
18758         (fusion_gpr_mem_load): Likewise.
18759         (fusion_addis_mem_combo_load): Likewise.
18760         (fusion_addis_mem_combo_store): Likewise.
18761         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18762         Likewise.
18763         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
18764         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
18765         (rs6000_preferred_simd_mode): Likewise.
18766         (output_vec_const_move): Likewise.
18767         (rs6000_expand_vector_extract): Likewise.
18768         (rs6000_split_vec_extract_var): Likewise.
18769         (reg_offset_addressing_ok_p): Likewise.
18770         (rs6000_legitimate_offset_address_p): Likewise.
18771         (rs6000_legitimize_address): Likewise.
18772         (rs6000_emit_set_const): Likewise.
18773         (rs6000_const_vec): Likewise.
18774         (rs6000_emit_move): Likewise.
18775         (rs6000_darwin64_record_arg_recurse): Likewise.
18776         (swap_selector_for_mode): Likewise.
18777         (paired_init_builtins): Likewise.
18778         (altivec_init_builtins): Likewise.
18779         (rs6000_expand_float128_convert): Likewise.
18780         (emit_load_locked): Likewise.
18781         (emit_store_conditional): Likewise.
18782         (rs6000_output_function_epilogue): Likewise.
18783         (rs6000_handle_altivec_attribute): Likewise.
18784         (rs6000_function_value): Likewise.
18785         (emit_fusion_gpr_load): Likewise.
18786         (emit_fusion_p9_load): Likewise.
18787         (emit_fusion_p9_store): Likewise.
18788         * config/rx/rx.c (rx_gen_move_template): Likewise.
18789         (flags_from_mode): Likewise.
18790         * config/s390/predicates.md (s390_alc_comparison): Likewise.
18791         (s390_slb_comparison): Likewise.
18792         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
18793         (s390_vector_mode_supported_p): Likewise.
18794         (s390_cc_modes_compatible): Likewise.
18795         (s390_match_ccmode_set): Likewise.
18796         (s390_canonicalize_comparison): Likewise.
18797         (s390_emit_compare_and_swap): Likewise.
18798         (s390_branch_condition_mask): Likewise.
18799         (s390_rtx_costs): Likewise.
18800         (s390_secondary_reload): Likewise.
18801         (__SECONDARY_RELOAD_CASE): Likewise.
18802         (s390_expand_cs): Likewise.
18803         (s390_preferred_simd_mode): Likewise.
18804         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
18805         * config/sh/sh.c (sh_print_operand): Likewise.
18806         (dump_table): Likewise.
18807         (sh_secondary_reload): Likewise.
18808         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18809         * config/sh/sh.md (casesi_worker_1): Likewise.
18810         (casesi_worker_2): Likewise.
18811         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
18812         (fcc_comparison_operator): Likewise.
18813         * config/sparc/sparc.c (sparc_expand_move): Likewise.
18814         (emit_soft_tfmode_cvt): Likewise.
18815         (sparc_preferred_simd_mode): Likewise.
18816         (output_cbranch): Likewise.
18817         (sparc_print_operand): Likewise.
18818         (sparc_expand_vec_perm_bmask): Likewise.
18819         (vector_init_bshuffle): Likewise.
18820         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
18821         (spu_vector_mode_supported_p): Likewise.
18822         (spu_expand_insv): Likewise.
18823         (spu_emit_branch_or_set): Likewise.
18824         (spu_handle_vector_attribute): Likewise.
18825         (spu_builtin_splats): Likewise.
18826         (spu_builtin_extract): Likewise.
18827         (spu_builtin_promote): Likewise.
18828         (spu_expand_sign_extend): Likewise.
18829         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
18830         (tilegx_simd_int): Likewise.
18831         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
18832         (tilepro_simd_int): Likewise.
18833         * config/v850/v850.c (const_double_split): Likewise.
18834         (v850_print_operand): Likewise.
18835         (ep_memory_offset): Likewise.
18836         * config/vax/vax.c (vax_rtx_costs): Likewise.
18837         (vax_output_int_move): Likewise.
18838         (vax_output_int_add): Likewise.
18839         (vax_output_int_subtract): Likewise.
18840         * config/visium/predicates.md (visium_branch_operator): Likewise.
18841         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
18842         (visium_print_operand_address): Likewise.
18843         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18844         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
18845         (xtensa_expand_conditional_branch): Likewise.
18846         (xtensa_copy_incoming_a7): Likewise.
18847         (xtensa_output_literal): Likewise.
18848         * dfp.c (decimal_real_maxval): Likewise.
18849         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18850
18851 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18852             Alan Hayward  <alan.hayward@arm.com>
18853             David Sherwood  <david.sherwood@arm.com>
18854
18855         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
18856         (mode_nunits_inline): Likewise.
18857         (mode_inner_inline): Likewise.
18858         (mode_unit_size_inline): Likewise.
18859         (mode_unit_precision_inline): Likewise.
18860         (emit_insn_modes_h): Likewise.  Also emit a #define of the
18861         unprefixed name.
18862         (emit_mode_wider): Add an E_ prefix to mode names.
18863         (emit_mode_complex): Likewise.
18864         (emit_mode_inner): Likewise.
18865         (emit_mode_adjustments): Likewise.
18866         (emit_mode_int_n): Likewise.
18867         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
18868         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
18869         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
18870         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
18871         (CRC32_BUILTIN, ENTRY): Likewise.
18872         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
18873         (aarch64_pop_regs): Likewise.
18874         (aarch64_process_components): Likewise.
18875         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
18876         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
18877         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
18878         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
18879         * config/arm/arm.c (arm_init_libfuncs): Likewise.
18880         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
18881         Likewise.
18882         * config/i386/i386-builtin.def (pcmpestr): Likewise.
18883         (pcmpistr): Likewise.
18884         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
18885         * config/mmix/mmix.c (mmix_output_condition): Likewise.
18886         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
18887         Likewise.
18888         * config/rl78/rl78.c (mduc_regs): Likewise.
18889         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
18890         (htm_expand_builtin): Likewise.
18891         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
18892         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
18893         * config/xtensa/xtensa.c (print_operand): Likewise.
18894         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
18895         (NUM_MODE_VECTOR_INT): Likewise.
18896         * genoutput.c (null_operand): Likewise.
18897         (output_operand_data): Likewise.
18898         * genrecog.c (print_parameter_value): Likewise.
18899         * lra.c (debug_operand_data): Likewise.
18900
18901 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18902
18903         * dwarf2out.c (scompare_loc_descriptor_wide)
18904         (scompare_loc_descriptor_narrow): New functions, split out from...
18905         (scompare_loc_descriptor): ...here.
18906         * expmed.c (emit_store_flag_int): New function, split out from...
18907         (emit_store_flag): ...here.
18908
18909 2017-08-30  Richard Biener  <rguenther@suse.de>
18910
18911         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
18912         (dwarf2out_early_finish): Move setting of AT_pubnames from
18913         early debug output to early finish.
18914
18915 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
18916
18917         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
18918         and -mdata-region to the assembler.
18919
18920 2017-08-30  Richard Biener  <rguenther@suse.de>
18921
18922         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
18923         attributes.
18924         (gen_subprogram_die): Add DW_AT_object_pointer only early.
18925         (dwarf2out_early_global_decl): Only generate a DIE for the
18926         abstract origin if it doesn't already exist or is a declaration DIE.
18927         (resolve_addr): Do not add the linkage name twice when
18928         generating a stub DIE for the DW_TAG_GNU_call_site target.
18929
18930 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18931
18932         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18933         Use machine_mode rather than int for arg1_mode.
18934
18935 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
18936
18937         PR target/82015
18938         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
18939         that the second argument of the built-in functions to unpack
18940         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
18941         switch statement instead a lot of if statements.
18942         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
18943         Allow 64-bit values to be in Altivec registers as well as
18944         traditional floating point registers.
18945         (pack<mode>, FMOVE128_VSX iterator): Likewise.
18946
18947 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
18948
18949         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
18950         MAX_REGS_PER_ADDRESS == 1.
18951
18952 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
18953
18954         * config/i386/i386.opt (flag_fentry): Do not init to -1.
18955         * config/i386/i386.c (ix86_option_override_internal): Simplify
18956         setting of opts->x_flag_entry.
18957
18958 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18959             Jakub Jelinek  <jakub@redhat.com>
18960             Richard Biener  <rguenther@suse.de>
18961
18962         PR tree-optimization/81503
18963         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
18964         folded constant fits in the target type; reorder tests for clarity.
18965
18966 2017-08-29  Martin Liska  <mliska@suse.cz>
18967
18968         * passes.def: Include pass_lower_switch.
18969         * stmt.c (dump_case_nodes): Remove and move to
18970         tree-switch-conversion.
18971         (case_values_threshold): Likewise.
18972         (expand_switch_as_decision_tree_p): Likewise.
18973         (emit_case_decision_tree): Likewise.
18974         (expand_case): Likewise.
18975         (balance_case_nodes): Likewise.
18976         (node_has_low_bound): Likewise.
18977         (node_has_high_bound): Likewise.
18978         (node_is_bounded): Likewise.
18979         (emit_case_nodes): Likewise.
18980         (struct simple_case_node): New struct.
18981         (add_case_node): Remove.
18982         (emit_case_dispatch_table): Use vector instead of case_list.
18983         (reset_out_edges_aux): Remove.
18984         (compute_cases_per_edge): Likewise.
18985         (expand_case): Build list of simple_case_node.
18986         (expand_sjlj_dispatch_table): Use it.
18987         * tree-switch-conversion.c (struct case_node): Moved from
18988         stmt.c and adjusted.
18989         (emit_case_nodes): Likewise.
18990         (node_has_low_bound): Likewise.
18991         (node_has_high_bound): Likewise.
18992         (node_is_bounded): Likewise.
18993         (case_values_threshold): Likewise.
18994         (reset_out_edges_aux): Likewise.
18995         (compute_cases_per_edge): Likewise.
18996         (add_case_node): Likewise.
18997         (dump_case_nodes): Likewise.
18998         (balance_case_nodes): Likewise.
18999         (expand_switch_as_decision_tree_p): Likewise.
19000         (emit_jump): Likewise.
19001         (emit_case_decision_tree): Likewise.
19002         (try_switch_expansion): Likewise.
19003         (do_jump_if_equal): Likewise.
19004         (emit_cmp_and_jump_insns): Likewise.
19005         (fix_phi_operands_for_edge): New function.
19006         (record_phi_operand_mapping): Likewise.
19007         (class pass_lower_switch): New pass.
19008         (pass_lower_switch::execute): New function.
19009         (make_pass_lower_switch): Likewise.
19010         (conditional_probability):
19011         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
19012         * tree-pass.h: Add make_pass_lower_switch.
19013
19014 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19015
19016         PR target/80993
19017         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
19018         handlers as used.
19019
19020 2017-08-29  Richard Biener  <rguenther@suse.de>
19021
19022         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
19023         we do not add a DW_AT_inline attribute twice.
19024         (gen_subprogram_die): Remove code setting DW_AT_inline on
19025         DECL_ABSTRACT_P nodes.
19026
19027 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
19028
19029         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
19030         calls to internal functions.
19031         (gimplify_modify_expr): Likewise.
19032         * tree-call-cdce.c (use_internal_fn): Likewise.
19033         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
19034         (convert_to_divmod): Set the nothrow flag.
19035         * tree-if-conv.c (predicate_mem_writes):  Likewise.
19036         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19037         (vectorizable_call): Likewise.
19038         (vectorizable_store): Likewise.
19039         (vectorizable_load): Likewise.
19040         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
19041         (vect_recog_mask_conversion_pattern): Likewise.
19042
19043 2017-08-29  Martin Liska  <mliska@suse.cz>
19044
19045         PR other/39851
19046         * gcc.c (driver_handle_option): Add new argument.
19047         * opts-common.c (handle_option): Pass
19048         target_option_override_hook.
19049         * opts-global.c (lang_handle_option): Add new option.
19050         (set_default_handlers):  Add new argument.
19051         (decode_options): Likewise.
19052         * opts.c (target_handle_option): Likewise.
19053         (common_handle_option): Call target_option_override_hook.
19054         * opts.h (struct cl_option_handler_func): Add hook for
19055         target option override.
19056         (struct cl_option_handlers): Likewise.
19057         (set_default_handlers): Add new argument.
19058         (decode_options): Likewise.
19059         (common_handle_option): Likewise.
19060         (target_handle_option): Likewise.
19061         * toplev.c (toplev::main): Pass targetm.target_option.override
19062         hook.
19063
19064 2017-08-29  Richard Biener  <rguenther@suse.de>
19065         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
19066
19067         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
19068         life to the active subtree.
19069
19070 2017-08-28  Jeff Law  <law@redhat.com>
19071
19072         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
19073         derive_equivalences.
19074         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
19075         Code moved into....
19076         (edge_info::derive_equivalences): New private member function
19077
19078         * tree-ssa-dom.c (class edge_info): Changed from a struct
19079         to a class.  Add ctor/dtor, methods and data members.
19080         (edge_info::edge_info): Renamed from allocate_edge_info.
19081         Initialize additional members.
19082         (edge_info::~edge_info): New.
19083         (free_dom_edge_info): Delete the edge info.
19084         (record_edge_info): Use new class & associated member functions.
19085         Tighten forms for testing for edge equivalences.
19086         (record_temporary_equivalences): Iterate over the simple
19087         equivalences rather than assuming there's only one per edge.
19088         (cprop_into_successor_phis): Iterate over the simple
19089         equivalences rather than assuming there's only one per edge.
19090         (optimize_stmt): Use operand_equal_p rather than pointer
19091         equality for mini-DSE code.
19092
19093 2017-08-28  Nathan Sidwell  <nathan@acm.org>
19094
19095         * gcc.c (execute): Fold SIGPIPE handling into switch
19096         statement.  Adjust internal error message.
19097
19098 2017-08-28  Richard Biener  <rguenther@suse.de>
19099
19100         PR debug/81993
19101         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
19102         Do nothing for removed DIEs.
19103
19104 2017-08-28  Richard Biener  <rguenther@suse.de>
19105
19106         PR tree-optimization/81977
19107         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
19108         memcpy.
19109
19110 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
19111
19112         PR target/80640
19113         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
19114         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
19115         using targetm.gen_mem_thread_fence.
19116
19117 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
19118
19119         PR target/81995
19120         * config/i386/i386.md (*<btsc><mode>): Change operand 2
19121         predicate to register_operand.  Reorder operands.
19122         (*btr<mode>): Ditto.
19123         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
19124         (*btr<mode>_mask): Ditto.
19125
19126 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
19127
19128         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
19129         * config/rs6000/xmmintrin.h: New file.
19130         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
19131
19132 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19133
19134         PR target/81504
19135         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
19136         parameter and_insn and return it.
19137         (recombine_lvx_pattern): Insert a copy to ensure availability of
19138         the base register of the copied masking operation at the point of
19139         the instruction replacement.
19140         (recombine_stvx_pattern): Likewise.
19141
19142 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19143
19144         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
19145         undocumented switches.
19146         (-mpower9-dform-vector): Likewise.
19147         (-mpower9-dform): Likewise.
19148         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
19149         comments to delete references to -mpower9-dform* switches.
19150         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
19151         Delete reference to -mpower9-dform* switches, test for
19152         -mpower9-vector instead.
19153         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
19154         (OTHER_P9_VECTOR_MASKS): Likewise.
19155         (POWERPC_MASKS): Likewise.
19156         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
19157         tests against -mpower9-dform* to -mpower9-vector.  Delete code
19158         that checked for -mpower9-dform* consistancy with other options.
19159         Add test for -mpower9-misc to enable other power9 switches.
19160         (rs6000_init_hard_regno_mode_ok): Likewise.
19161         (rs6000_option_override_internal): Likewise.
19162         (rs6000_emit_prologue): Likewise.
19163         (rs6000_emit_epilogue): Likewise.
19164         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
19165         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
19166         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
19167         -mpower9-vector.
19168         (emit_fusion_p9_store): Likewise.
19169         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
19170         resetting these macros if the assembler does not support ISA 3.0
19171         instructions.
19172         (TARGET_P9_DFORM_VECTOR): Likewise.
19173         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
19174         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
19175
19176 2017-08-25  Alan Modra  <amodra@gmail.com>
19177
19178         PR rtl-optimization/81747
19179         * cse.c (cse_extended_basic_block): Don't attempt to record
19180         equivalences for degenerate conditional branches that branch
19181         to their fall-through.
19182
19183 2017-08-24  Martin Sebor  <msebor@redhat.com>
19184
19185         PR middle-end/81908
19186         * gimple-fold.c (size_must_be_zero_p): New function.
19187         (gimple_fold_builtin_memory_op): Call it.
19188
19189 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
19190
19191         * config/rs6000/mm_malloc.h: New file.
19192
19193 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
19194
19195         PR tree-optimization/81913
19196         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
19197         analysis when either IVs in condition can wrap.
19198
19199 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
19200
19201         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
19202         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
19203
19204 2017-08-24  Richard Biener  <rguenther@suse.de>
19205
19206         PR target/81921
19207         * targhooks.c (default_target_can_inline_p): Properly
19208         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
19209         is present and always compare.
19210         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
19211         infer -mfpmath=sse from TARGET_SSE_P.
19212         (ix86_can_inline_p): Properly use target_option_default_node when
19213         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
19214
19215 2017-08-24  Richard Biener  <rguenther@suse.de>
19216
19217         PR debug/81936
19218         * dwarf2out.c (output_die): Handle flag_generate_offload like
19219         flag_generate_lto.
19220         (output_comp_unit): Likewise.
19221         (gen_array_type_die): Likewise.
19222         (dwarf2out_early_finish): Likewise.
19223         (note_variable_value_in_expr): Likewise.
19224         (dwarf2out_finish): Likewise.  Adjust assert.
19225         * cgraphunit.c (symbol_table::compile): Move setting of
19226         flag_generate_offload earlier ...
19227         (symbol_table::finalize_compilation_unit): ... here, before
19228         early debug finalization.
19229
19230 2017-08-24  Richard Biener  <rguenther@suse.de>
19231
19232         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
19233         and ipa-fnsummary.h.
19234         (ix86_can_inline_p): When ix86_fpmath flags do not match
19235         check whether the callee uses FP math at all.
19236
19237 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
19238
19239         PR middle-end/81931
19240         * tree-ssanames.c (get_nonzero_bits): Use element_precision
19241         instead of TYPE_PRECISION.
19242
19243 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
19244             Alan Hayward  <alan.hayward@arm.com>
19245             David Sherwood  <david.sherwood@arm.com>
19246
19247         * combine.c (make_extraction): Use subreg_offset_from_lsb.
19248
19249 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
19250
19251         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
19252         Remove field.
19253         (ix86_frame::stack_realign_allocate): New field.
19254         (struct machine_frame_state): Modify comments.
19255         (machine_frame_state::sp_realigned_fp_end): New field.
19256         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
19257         layout calculation.
19258         (sp_valid_at): Add assertion to assure no attempt to access invalid
19259         offset of a realigned stack.
19260         (fp_valid_at): Likewise.
19261         (choose_baseaddr): Modify comments.
19262         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
19263         ix86_expand_prologue.
19264         (ix86_expand_prologue): Modify stack realignment and allocation.
19265         (ix86_expand_epilogue): Modify comments.
19266         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
19267         avx2_runtime, avx512f, and avx512f_runtime.
19268
19269 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
19270
19271         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
19272         (mstackrealign): Do not init to -1.
19273         * config/i386/i386.c (ix86_option_override_internal):
19274         Check opts_set, not opts when setting default value of
19275         opts->x_ix86_force_align_arg_pointer.
19276
19277 2017-08-23  Richard Biener  <rguenther@suse.de>
19278
19279         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
19280         lang_hooks.decl_printable_name.
19281         * print-rtl-function.c (print_rtx_function): Likewise.
19282         * tree-pretty-print.c (dump_function_header): Likewise.
19283
19284 2017-08-23  Richard Biener  <rguenther@suse.de>
19285
19286         PR lto/81940
19287         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
19288         -g0 at compile-time.
19289
19290 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19291
19292         PR middle-end/19706
19293         * doc/sourcebuild.texi (Other hardware attributes):
19294         Document xorsign.
19295
19296 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19297
19298         PR middle-end/19706
19299         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
19300         Fix single-use check.
19301
19302 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19303
19304         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
19305
19306 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19307
19308         * doc/install.texi: Modify to add more details on running selected
19309         tests.
19310
19311 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19312
19313         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
19314         is combined with -mabi=ms.
19315         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
19316         ms_abi.
19317
19318 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19319
19320         PR tree-optimization/81488
19321         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
19322         and cached_basis fields.
19323         (MAX_SPREAD): New constant.
19324         (alloc_cand_and_find_basis): Initialize new fields.
19325         (clear_visited): New function.
19326         (create_phi_basis_1): Rename from create_phi_basis, set visited
19327         and cached_basis fields.
19328         (create_phi_basis): New wrapper function.
19329         (phi_add_costs_1): Rename from phi_add_costs, add spread
19330         parameter, set visited field, short-circuit when limits reached.
19331         (phi_add_costs): New wrapper function.
19332         (record_phi_increments_1): Rename from record_phi_increments, set
19333         visited field.
19334         (record_phi_increments): New wrapper function.
19335         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
19336         (phi_incr_cost): New wrapper function.
19337         (all_phi_incrs_profitable_1): Rename from
19338         all_phi_incrs_profitable, set visited field.
19339         (all_phi_incrs_profitable): New wrapper function.
19340
19341 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19342             Alan Hayward  <alan.hayward@arm.com>
19343             David Sherwood  <david.sherwood@arm.com>
19344
19345         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
19346         that takes the outer and inner modes.
19347         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
19348         comparison as the canonical test for a paradoxical subreg.
19349         * combine.c (simplify_set): Use paradoxical_subreg_p.
19350         (make_extraction): Likewise.
19351         (force_to_mode): Likewise.
19352         (rtx_equal_for_field_assignment_p): Likewise.
19353         (gen_lowpart_for_combine): Likewise.
19354         (simplify_comparison): Likewise.
19355         * cse.c (equiv_constant): Likewise.
19356         * expmed.c (store_bit_field_1): Likewise.
19357         * final.c (alter_subreg): Likewise.
19358         * fwprop.c (propagate_rtx): Likewise.
19359         (forward_propagate_subreg): Likewise.
19360         * ira-conflicts.c (ira_build_conflicts): Likewise.
19361         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
19362         * lra-constraints.c (curr_insn_transform): Likewise.
19363         (split_reg): Likewise.
19364         * lra-eliminations.c (move_plus_up): Likewise.
19365         (lra_eliminate_regs_1): Likewise.
19366         * recog.c (general_operand): Likewise.
19367         * ree.c (combine_reaching_defs): Likewise.
19368         * reload.c (push_reload): Likewise.
19369         (find_reloads): Likewise.
19370         * reload1.c (elimination_effects): Likewise.
19371         (compute_reload_subreg_offset): Likewise.
19372         (choose_reload_regs): Likewise.
19373         * rtlanal.c (subreg_lsb_1): Likewise.
19374         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
19375         (simplify_subreg): Likewise.
19376         * var-tracking.c (track_loc_p): Likewise.
19377         * emit-rtl.c (byte_lowpart_offset): Likewise.
19378         (paradoxical_subreg_p): Delete out-of-line definition.
19379
19380 2017-08-22  Jeff Law  <law@redhat.com>
19381
19382         PR tree-optimization/81741
19383         PR tree-optimization/71947
19384         * tree-ssa-dom.c: Include tree-inline.h.
19385         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
19386         equivalences if one is more expensive to compute than the other.
19387         * tree-ssa-scopedtables.h (class const_or_copies): Make
19388         record_const_or_copy_raw method private.
19389         (class avail_exprs_stack): New method simplify_binary_operation.
19390         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
19391         avail_exprs_stack::simplify_binary_operation as needed.
19392         (avail_exprs_stack::simplify_binary_operation): New function.
19393
19394 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19395
19396         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
19397         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
19398         (DOT_SYMBOLS): Likewise.
19399         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
19400         (RELOCATABLE_NEEDS_FIXUP): Likewise.
19401         (RS6000_ABI_NAME): Likewise.
19402         (TARGET_CMODEL): Likewise.
19403         (TOC_SECTION_ASM_OP): Likewise.
19404         (SET_CMODEL): New macro.
19405         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
19406
19407 2017-08-22  Richard Biener  <rguenther@suse.de>
19408
19409         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
19410         to allow for free-lang-data replacements similar to verify_type_variant.
19411
19412 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19413             Alan Hayward  <alan.hayward@arm.com>
19414             David Sherwood  <david.sherwood@arm.com>
19415
19416         * config/aarch64/aarch64.md (casesi): Use DImode rather than
19417         VOIDmode for the LABEL_REF.
19418
19419 2017-08-22  Richard Biener  <rguenther@suse.de>
19420
19421         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
19422
19423 2017-08-22  Richard Biener  <rguenther@suse.de>
19424
19425         * common.opt (feliminate-dwarf2-dups): Ignore.
19426         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
19427         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
19428         same_die_p_wrap, compute_section_prefix,
19429         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
19430         (comdat_symbol_id, comdat_symbol_number): Likewise.
19431         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
19432         Likewise.
19433         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
19434         (output_die): Mark unreachable path unreachable.
19435         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
19436         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
19437         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
19438         (dwarf2out_early_finish): Likewise.
19439
19440 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
19441
19442         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
19443
19444 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
19445
19446         PR target/81910
19447         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
19448         not VAR_P. Filter attribute warnings with OPT_Wattributes.
19449         (avr_attribute_table) <io, io_low, address>: Initialize
19450         .decl_required with true.
19451
19452 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19453
19454         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
19455         undocumented debugging options.
19456         (-mvsx-scalar-double): Likewise.
19457         (-mallow-df-permute): Likewise.
19458         (-mvectorize-builtins): Likewise.
19459         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19460         (rs6000_builtin_vectorized_function): Likewise.
19461         (rs6000_builtin_md_vectorized_function): Likewise.
19462         (rs6000_opt_vars): Likewise.
19463
19464 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
19465
19466         PR target/46091
19467         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
19468         (*btrq_imm): Rename from *btrq.
19469         (*btcq_imm): Rename from *btcq.
19470         (btsc): New code attribute.
19471         (*<btsc><mode>): New insn pattern.
19472         (*btr<mode>): Ditto.
19473         (*<btsc><mode>_mask): New insn_and_split pattern.
19474         (*btr<mode>_mask): Ditto.
19475
19476 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19477             Alan Hayward  <alan.hayward@arm.com>
19478             David Sherwood  <david.sherwood@arm.com>
19479
19480         * function.c (pad_below): Simplify padding calculation.
19481
19482 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19483             Alan Hayward  <alan.hayward@arm.com>
19484             David Sherwood  <david.sherwood@arm.com>
19485
19486         * target.def (function_prologue): Remove frame size argument.
19487         (function_epilogue): Likewise.
19488         * doc/tm.texi: Regenerate.
19489         * final.c (final_start_function): Update call to function_prologue.
19490         (final_end_function): Update call to function_epilogue.
19491         (default_function_pro_epilogue): Remove frame size argument.
19492         * output.h (default_function_pro_epilogue): Likewise.
19493         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
19494         (arm_output_function_prologue): Likewise.
19495         * config/frv/frv.c (frv_function_prologue): Likewise.
19496         (frv_function_epilogue): Likewise.
19497         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
19498         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
19499         (ia64_output_function_epilogue): Likewise.
19500         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
19501         (m32r_output_function_epilogue): Likewise.
19502         * config/microblaze/microblaze.c (microblaze_function_prologue)
19503         (microblaze_function_epilogue): Likewise.
19504         * config/mips/mips.c (mips_output_function_prologue): Likewise.
19505         (mips_output_function_epilogue): Likewise.
19506         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
19507         (mmix_target_asm_function_epilogue): Likewise.
19508         * config/msp430/msp430.c (msp430_start_function): Likewise.
19509         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
19510         (nds32_asm_function_epilogue): Likewise.
19511         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
19512         * config/pa/pa.c (pa_output_function_prologue): Likewise.
19513         (pa_output_function_epilogue): Likewise.
19514         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
19515         (rs6000_output_function_epilogue): Likewise.
19516         * config/rl78/rl78.c (rl78_start_function): Likewise.
19517         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
19518         (rs6000_output_function_epilogue): Likewise.
19519         * config/rx/rx.c (rx_output_function_prologue): Likewise.
19520         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
19521         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
19522         (sparc_asm_function_epilogue): Likewise.
19523
19524 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19525
19526         * tree.h (type_has_mode_precision_p): New function.
19527         * convert.c (convert_to_integer_1): Use it.
19528         * expr.c (expand_expr_real_2): Likewise.
19529         (expand_expr_real_1): Likewise.
19530         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
19531         * match.pd: Likewise.
19532         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
19533         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
19534         * tree-tailcall.c (process_assignment): Likewise.
19535         * tree-vect-loop.c (vectorizable_reduction): Likewise.
19536         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
19537         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
19538         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
19539         (vectorizable_assignment): Likewise.
19540         (vectorizable_shift): Likewise.
19541         (vectorizable_operation): Likewise.
19542         * tree-vrp.c (register_edge_assert_for_2): Likewise.
19543
19544 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
19545
19546         * match.pd: Add pow (C, x) simplification.
19547
19548 2017-08-21  Richard Biener  <rguenther@suse.de>
19549
19550         PR tree-optimization/81900
19551         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
19552         for blocks with abnormal predecessors.
19553         (compute_antic): Do not set visited flag prematurely.
19554
19555 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
19556
19557         PR target/79883
19558         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
19559
19560 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19561
19562         * stor-layout.h (vector_type_mode): Move to...
19563         * tree.h (vector_type_mode): ...here.
19564         * stor-layout.c (vector_type_mode): Move to...
19565         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
19566
19567 2017-08-21  Richard Biener  <rguenther@suse.de>
19568
19569         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
19570         register_external_die hooks.
19571         (debug_false_tree_charstarstar_uhwistar): Declare.
19572         (debug_nothing_tree_charstar_uhwi): Likewise.
19573         * debug.c (do_nothing_debug_hooks): Adjust.
19574         (debug_false_tree_charstarstar_uhwistar): New do nothing.
19575         (debug_nothing_tree_charstar_uhwi): Likewise.
19576         * dbxout.c (dbx_debug_hooks): Adjust.
19577         (xcoff_debug_hooks): Likewise.
19578         * sdbout.c (sdb_debug_hooks): Likewise.
19579         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19580         * dwarf2out.c (macinfo_label_base): New global.
19581         (dwarf2out_register_external_die): New function for the
19582         register_external_die hook.
19583         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
19584         (dwarf2_debug_hooks): Use them.
19585         (dwarf2_lineno_debug_hooks): Adjust.
19586         (struct die_struct): Add with_offset flag.
19587         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
19588         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
19589         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
19590         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
19591         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
19592         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
19593         defining section names for the early LTO debug variants.
19594         (reset_indirect_string): New helper.
19595         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
19596         (print_dw_val): Add support for offsetted symbol references.
19597         (get_ultimate_context): Split out from is_cxx.
19598         (is_cxx): Use get_ultimate_context.
19599         (is_fortran): Add decl overload.
19600         (compute_comp_unit_symbol): Split out worker from
19601         compute_section_prefix.
19602         (compute_section_prefix): Call compute_comp_unit_symbol and
19603         set comdat_type_p here.
19604         (output_die): Skip DIE symbol output for the LTO added one.
19605         Handle DIE symbol references with offset.
19606         (output_comp_unit): Guard section name mangling properly.
19607         For LTO debug sections emit a symbol at the section beginning
19608         which we use to refer to its DIEs.
19609         (add_abstract_origin_attribute): For DIEs registered via
19610         dwarf2out_register_external_die directly refer to the early
19611         DIE rather than indirectly through the shadow one we created.
19612         Remove obsolete call to dwarf2out_abstract_function for
19613         non-function/block origins.
19614         (gen_array_type_die): When generating early LTO debug do
19615         not emit DW_AT_string_length.
19616         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
19617         late when in LTO.  As suggested place a gcc_unreachable for
19618         the DECL_ABSTRACT_P case.
19619         (gen_subprogram_die): Avoid another specification DIE
19620         for early built declarations/definitions for the late LTO case.
19621         (gen_variable_die): Add type references for late duplicated VLA dies
19622         when in late LTO.
19623         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
19624         we have the abstract instance already.
19625         (process_scope_var): Adjust decl DIE contexts in LTO which
19626         first puts them in limbo.
19627         (gen_decl_die): Do not generate type DIEs late apart from
19628         types for VLAs or for decls we do not yet have a DIE.  Do not
19629         call dwarf2out_abstract_function late.
19630         (dwarf2out_early_global_decl): Make sure to create DIEs
19631         for abstract instances of a decl first.
19632         (dwarf2out_late_global_decl): Adjust comment.
19633         (output_macinfo_op): With multiple macro sections use
19634         macinfo_label_base to distinguish labels.
19635         (output_macinfo): Likewise.  Update macinfo_label_base.
19636         Pass in the line info label.
19637         (note_variable_value_in_expr): When generating LTO resolve
19638         all variable values here by generating DIEs as needed.
19639         (init_sections_and_labels): Add early LTO debug flag parameter
19640         and generate different sections and names if set.  Add generation
19641         counter for the labels so we can have multiple of them.
19642         (reset_dies): Helper to allow DIEs to be output multiple times.
19643         (dwarf2out_finish): When outputting DIEs to the fat part of an
19644         LTO object first reset DIEs.
19645         (dwarf2out_early_finish): Output early DIEs when generating LTO.
19646         (modified_type_die): Check for decl_ultimate_origin being self
19647         before recursing.
19648         (gen_type_die_with_usage): Likewise.
19649         (gen_typedef_die): Allow decl_ultimate_origin being self.
19650         (set_decl_abstract_flags): Remove.
19651         (set_block_abstract_flags): Likewise.
19652         (dwarf2out_abstract_function): Treat the early generated DIEs
19653         as the abstract copy and only add DW_AT_inline and
19654         DW_AT_artificial here and call set_decl_origin_self.
19655         If the DIE has an abstract origin don't do anything.
19656         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
19657         if we have none yet (Go fails to build one, PR78628).
19658         (variably_modified_type_p): Prevent endless recursion for Ada
19659         cyclic pointer types.
19660         * lto-streamer-in.c: Include debug.h.
19661         (dref_queue): New global.
19662         (lto_read_tree_1): Stream in DIE references.
19663         (lto_input_tree): Register DIE references.
19664         (input_function): Stream DECL_DEBUG_ARGS.
19665         * lto-streamer-out.c: Include debug.h.
19666         (lto_write_tree_1): Output DIE references.
19667         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
19668         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
19669         (output_function): Stream DECL_DEBUG_ARGS.
19670         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19671         Stream DECL_ABSTRACT_ORIGIN.
19672         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
19673         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
19674         DECL_CONTEXT for file-scope decls.
19675         * lto-streamer.h (struct dref_entry): Declare.
19676         (dref_queue): Likewise.
19677         * cfgexpand.c (pass_expand::execute): Do not call the
19678         outlining_inline_function hook here.
19679         * lto-wrapper.c (debug_obj): New global.
19680         (tool_cleanup): Unlink it if required.
19681         (debug_objcopy): New function.
19682         (run_gcc): Handle early debug sections in the IL files by
19683         extracting them to separate files, partially linkin them and
19684         feeding the result back as result to the linker.
19685         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
19686         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
19687         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
19688         sections into a separate segment.
19689         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
19690         segments.
19691         (darwin_asm_dwarf_section): Likewise.
19692         (darwin_asm_output_dwarf_offset): Likewise.
19693         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
19694
19695 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19696             Alan Hayward  <alan.hayward@arm.com>
19697             David Sherwood  <david.sherwood@arm.com>
19698
19699         * read-md.h (md_reader::record_potential_iterator_use): Replace
19700         pointer argument with an rtx and an index.
19701         * read-rtl.c (iterator_group::apply_iterator): Likewise.
19702         (apply_mode_iterator): Likewise.
19703         (apply_code_iterator): Likewise.
19704         (apply_int_iterator): Likewise.
19705         (apply_subst_iterator): Likewise.
19706         (record_iterator_use): Likewise.
19707         (record_attribute_use): Likewise.
19708         (md_reader::record_potential_iterator_use): Likewise.  Update calls
19709         to record_iterator_use and apply_iterator.
19710         (iterator_use): Replace ptr with x and index.
19711         (attribute_use): Likewise.
19712         (apply_attribute_uses): Update calls to apply_iterator.
19713         (apply_iterators): Likewise.  Update initialization of iterator_use.
19714         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
19715         and record_potential_iterator_use.
19716         (rtx_reader::read_rtx_operand): Likewise.
19717
19718 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19719             Alan Hayward  <alan.hayward@arm.com>
19720             David Sherwood  <david.sherwood@arm.com>
19721
19722         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
19723         CONST_WIDE_INT.
19724
19725 2017-08-21  Richard Biener  <rguenther@suse.de>
19726
19727         PR middle-end/81884
19728         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
19729         at struct end conservatively when comparing common bases.
19730
19731 2017-08-21  Richard Biener  <rguenther@suse.de>
19732
19733         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
19734         (mem_ref_in_stmt): Remove.
19735         (determine_max_movement): Use ref index to get at the reference.
19736         (invariantness_dom_walker::before_dom_children): Deal with
19737         lim data already initialized.
19738         (gather_mem_refs_stmt): Initialize lim data and record ref index.
19739
19740 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
19741
19742         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
19743         (TARGET_ISA_ROUND): Ditto.
19744         (TARGET_ROUND): Ditto.
19745         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
19746         * config/i386/i386.md: Ditto.
19747         * config/i386/sse.md: Ditto.
19748         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
19749         with OPTION_MASK_ISA_SSE4_1.
19750
19751 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
19752
19753         PR target/81894
19754         * doc/extend.texi (x86 Built-in Functions): Correct the name of
19755         __builtin_ia32_lzcnt_u16.
19756
19757 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
19758
19759         PR target/80210
19760         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
19761         (rs6000_set_current_function): Rewrite function to use it.
19762
19763 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
19764
19765         PR c/53037
19766         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
19767         and TYPE_WARN_IF_NOT_ALIGN.
19768         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
19769         (handle_warn_if_not_align): New.
19770         (place_union_field): Call handle_warn_if_not_align.
19771         (place_field): Call handle_warn_if_not_align.
19772         Copy TYPE_WARN_IF_NOT_ALIGN.
19773         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
19774         (layout_type): Likewise.
19775         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
19776         spare to 18.
19777         (tree_decl_common): Add warn_if_not_align.
19778         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
19779         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
19780         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
19781         (DECL_WARN_IF_NOT_ALIGN): Likewise.
19782         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
19783         * doc/extend.texi: Document warn_if_not_aligned attribute.
19784         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
19785
19786 2017-08-17  Martin Liska  <mliska@suse.cz>
19787
19788         PR bootstrap/81864
19789         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
19790         (get_data_dependence): Use it as pointer type.
19791         (distribute_loop): Likewise.
19792
19793 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19794
19795         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
19796         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
19797         (p8_vmrgow_<mode>_direct): New define_insn.
19798         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
19799         handle endianness for vmrgew and vmrgow permute patterns.
19800
19801 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
19802
19803         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
19804         * config/rs6000/rs6000-cpus.def: Remove comment.
19805         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
19806         (POWERPC_MASKS): Likewise.
19807         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
19808         use of TARGET_VSX_TIMODE.
19809         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
19810         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
19811         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
19812         (rs6000_option_override_internal): Remove dead code.
19813         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
19814         (rs6000_legitimize_reload_address): Likewise.
19815         (rs6000_legitimate_address_p): Likewise.
19816         (rs6000_opt_masks): Delete "vsx-timode".
19817         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
19818         from function comment.
19819         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
19820         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
19821         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
19822         condition.
19823         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
19824         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
19825         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
19826         (VSX_TI): Likewise.
19827         (VSX_M): Likewise.
19828         (define_peephole2): Likewise.
19829
19830 2017-08-17  Martin Sebor  <msebor@redhat.com>
19831
19832         PR c/81859
19833         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
19834         past the end of an array.
19835         (test_pp_format): Add test cases.
19836
19837 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
19838
19839         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
19840         missing ECF_NOTHROW flags.
19841
19842 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
19843
19844         PR target/72804
19845         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
19846         operands residing in integer registers.
19847         (*vsx_le_perm_load_<mode>): Likewise.
19848         (*vsx_le_perm_store_<mode>): Likewise.
19849         (define_peephole2): Add peepholes to optimize the above.
19850
19851 2017-08-17  Marek Polacek  <polacek@redhat.com>
19852
19853         PR middle-end/81814
19854         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
19855         to mimic what shorten_compare did.  Change the return type to bool.
19856         (fold_cond_expr_with_comparison): Update call to
19857         operand_equal_for_comparison_p.
19858         (fold_ternary_loc): Likewise.
19859
19860 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
19861
19862         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
19863         register.
19864         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
19865
19866 2017-08-17  Richard Biener  <rguenther@suse.de>
19867
19868         * tree-ssa-structalias.c (solve_graph): When propagating
19869         to successors update the graphs succ edges and avoid duplicate work.
19870
19871 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
19872
19873         PR target/81861
19874         * config/i386/i386.c (ix86_option_override_internal): Save target
19875         specific options after ix86_stack_protector_guard_reg was changed.
19876
19877 2017-08-17  Richard Biener  <rguenther@suse.de>
19878
19879         PR tree-optimization/81827
19880         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
19881         (new_var_info): Initialize it conservatively.
19882         (get_call_vi): Mark register vars.
19883         (new_scalar_tmp_constraint_exp): Likewise.
19884         (handle_rhs_call): Likewise.
19885         (handle_const_call): Likewise.
19886         (create_function_info_for): Likewise.
19887         (solve_constraints): Sort varinfos to separate register from
19888         non-register vars to pack points-to solution bitmaps during
19889         iteration.
19890
19891 2017-08-17  Marek Polacek  <polacek@redhat.com>
19892
19893         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
19894
19895 2017-08-17  Richard Biener  <rguenther@suse.de>
19896
19897         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
19898         to true when overflow is undefined and we saturated the result.
19899
19900 2017-08-17  Alan Modra  <amodra@gmail.com>
19901
19902         PR target/80938
19903         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
19904         Don't use store multiple if only one reg needs saving.
19905         (interesting_frame_related_regno): New function.
19906         (rs6000_frame_related): Don't emit frame info for regs that
19907         don't need saving.
19908         (rs6000_emit_epilogue): Likewise.
19909
19910 2017-08-16  Nathan Sidwell  <nathan@acm.org>
19911
19912         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
19913         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
19914         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
19915         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
19916         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
19917         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
19918         (verify_type): Adjust for TYPE_BINFO move.
19919         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
19920         process TYPE_BINFO directly.
19921         (hash_tree): Likewise.
19922         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
19923         Likewise.
19924         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
19925         Likewise.
19926
19927 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
19928
19929         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
19930
19931 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
19932
19933         PR target/46091
19934         * config/i386/i386.md (*anddi_1_btr): Change predicates of
19935         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
19936         Add ix86_binary_operator_ok to insn constraint.
19937         (*iordi_1_bts): Ditto.
19938         (*xordi_1_btc): Ditto.
19939         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
19940         Update corresponding peephole2 pattern.
19941         (*btrq): Ditto.
19942         (*btcq): Ditto.
19943
19944 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
19945
19946         PR tree-optimization/81832
19947         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
19948         copy loop header which has IFN_LOOP_DIST_ALIAS call.
19949
19950 2017-08-16  Marek Polacek  <polacek@redhat.com>
19951
19952         PR middle/81695
19953         * fold-const.c (fold_indirect_ref_1): Restore original behavior
19954         regarding size_zero_node.
19955
19956 2017-08-16  Martin Liska  <mliska@suse.cz>
19957
19958         PR target/81753
19959         * config.gcc: Respect previously set extra_objs in case
19960         of darwin target.
19961
19962 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
19963
19964         PR tree-optimization/81835
19965         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
19966         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
19967         not depend on the phi.
19968
19969 2017-08-16  Alan Modra  <amodra@gmail.com>
19970
19971         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
19972         dead code.
19973
19974 2017-08-16  Alan Modra  <amodra@gmail.com>
19975
19976         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
19977         (save_reg_p): ..into this.  Update all callers.
19978         (first_reg_to_save): Simplify.
19979
19980 2017-08-16  Alan Modra  <amodra@gmail.com>
19981
19982         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
19983         fixed regs.
19984
19985 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
19986
19987         PR target/78460
19988         PR target/67712
19989         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
19990         constant count if that count is less than 32.
19991
19992 2017-08-15  Nathan Sidwell  <nathan@acm.org>
19993
19994         * gcc.c (execute): Emit friendlier message if inferior is killed
19995         by an external cause.
19996
19997 2017-08-15  Richard Biener  <rguenther@suse.de>
19998
19999         PR tree-optimization/81790
20000         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
20001         CONSTRUCTORs from simplifying and VN.
20002
20003 2017-08-14  Martin Sebor  <msebor@redhat.com>
20004
20005         * builtin-attrs.def: Add comments.
20006
20007 2017-08-14  Martin Sebor  <msebor@redhat.com>
20008
20009         PR c/81117
20010         * doc/extend.texi (attribute nonstring): Document new attribute.
20011
20012 2017-08-14  Martin Sebor  <msebor@redhat.com>
20013
20014         PR c/81117
20015         * tree-diagnostic.c (default_tree_printer): Handle %G.
20016         * gimple-pretty-print.h (percent_G_format): Declare new function.
20017         * gimple-pretty-print.c (percent_G_format): Define.
20018         * tree-pretty-print.c (percent_K_format): Add argument.
20019
20020 2017-08-14  Martin Sebor  <msebor@redhat.com>
20021
20022         PR translation/79998
20023         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
20024         Remove a stray space.
20025
20026 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
20027
20028         PR target/46091
20029         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
20030         (*iordi_1_bts): Ditto.
20031         (*xordi_1_btc): Ditto.
20032
20033 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20034
20035         PR target/79845
20036         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
20037         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20038         Likewise.
20039         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
20040         quoted strings, and make more translator-friendly.
20041         (darwin_rs6000_override_options): Likewise.
20042         (rs6000_option_override_internal): Likewise.
20043         (rs6000_return_in_memory): Fix overlong line.
20044         (init_cmulative_args): Use quoted strings, and make more
20045         translator-friendly.
20046         (rs6000_pass_by_reference): Fix overlong line.
20047         (def_builtin): Use quoted strings.
20048         (altivec_expand_predicate_builtin): Use quoted strings, and make
20049         more translator-friendly.
20050         (htm_expand_builtin): Use quoted strings.
20051         (cpu_expand_builtin): Use quoted strings, and make more
20052         translator-friendly.
20053         (altivec_expand_builtin): Likewise.
20054         (paired_expand_predicate_builtin): Likewise.
20055         (rs6000_invalid_builtin): Likewise.
20056         (builtin_function_type): Use quoted strings.
20057         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
20058         more translator-friendly.
20059         (rs6000_trampoline_init): Likewise.
20060         (rs6000_handle_altivec_attribute): Likewise.
20061         (rs6000_inner_target_options): Use quoted strings.
20062         (rs6000_disable_incompatible_switches): Likewise.
20063         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
20064         strings, and make more translator-friendly.
20065         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
20066
20067 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
20068
20069         PR tree-optimization/81799
20070         * tree-loop-distribution.c (version_loop_by_alias_check): Force
20071         cond_expr to simple gimple operand.
20072
20073 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
20074
20075         PR middle-end/46932
20076         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
20077
20078 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
20079
20080         PR target/81754
20081         PR target/81268
20082         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
20083         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
20084         TARGET_GASISR_PROLOGUES.
20085         * config/avr/avr.c (avr_option_override): Same.
20086         (avr_pass_pre_proep::execute): Same.
20087
20088 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
20089
20090         PR target/81820
20091         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
20092         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
20093
20094 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
20095
20096         * config/i386/i386.md (*load_tp_<mode>): Redefine as
20097         define_insn_and_split.  Split to a memory load from 0 in
20098         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
20099         using PTR mode iterator.
20100         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
20101         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
20102         (*add_tp_<mode>): Redefine as define_insn_and_split.
20103         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
20104         address space.  Merge with *add_tp_x32 using PTR mode iterator.
20105         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
20106         Split to an add with a  memory load from 0 in
20107         DEFAULT_TLS_SEG_REG address space.
20108
20109 2017-08-12  Andrew Pinski  <apinski@cavium.com>
20110
20111         * config/aarch64/aarch64-option-extensions.def (rdma):
20112         Fix feature string to what Linux prints out in /proc/cpuinfo.
20113
20114 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
20115
20116         PR ada/79542
20117         * dwarf2out.c (modified_type_die): For C typedef types that have
20118         an ultimate origin, process the ultimate origin instead of the
20119         input type.
20120         (gen_typedef_die): Assert that input DECLs have no ultimate
20121         origin.
20122         (gen_type_die_with_usage): For typedef variants that have an
20123         ultimate origin, just call gen_decl_die on the original DECL.
20124         (process_scope_var): Avoid creating DIEs for local typedefs and
20125         concrete static variables.
20126
20127 2017-08-12  Alan Modra  <amodra@gmail.com>
20128
20129         PR target/81170
20130         PR target/81295
20131         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
20132         match gnu-user.h startfile.
20133         (ENDFILE_LINUX_SPEC): Similarly.
20134
20135 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
20136
20137         PR lto/81430
20138         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
20139         Remove function.
20140         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
20141
20142 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
20143         * config/aarch64/aarch64.md (mov<mode>): Change.
20144         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
20145         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
20146         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
20147
20148 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
20149
20150         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
20151         for storage order barriers.
20152
20153 2017-08-11  Martin Liska  <mliska@suse.cz>
20154
20155         PR tree-opt/79987
20156         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
20157         variables of void type.
20158
20159 2017-08-11  Martin Liska  <mliska@suse.cz>
20160
20161         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
20162         TARGET_SUPPORTS_ALIASES.
20163         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
20164         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
20165         (optimize_weakref): Likewise.
20166         * symtab.c (symtab_node::noninterposable_alias): Likewise.
20167         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
20168         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
20169
20170 2017-08-11  Martin Liska  <mliska@suse.cz>
20171
20172         PR ipa/81213
20173         * config/i386/i386.c (make_resolver_func): Do complete
20174         refactoring of the function.
20175
20176 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20177
20178         PR target/81708
20179         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
20180         * config/i386/i386.c (ix86_stack_protect_guard): Use
20181         ix86_stack_protect_guard_symbol_str to generate varible declaration.
20182         * doc/invoke.texi (x86 Options): Document
20183         -mstack-protector-guard-symbol= option.
20184
20185 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20186
20187         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
20188         * config/i386/i386.c (ix86_split_stack_guard): New function.
20189         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
20190         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
20191         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
20192         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
20193         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
20194         (split_stack_space_check): Call ix86_split_stack_guard.
20195
20196 2017-08-10  Martin Sebor  <msebor@redhat.com>
20197
20198         * print-tree.c (print_node): Print location using the established
20199         format %s:%i%i.
20200         Replace spaces with colons.
20201         (debug_raw, debug): Ditto.
20202
20203 2017-08-10  Martin Sebor  <msebor@redhat.com>
20204
20205         PR c++/81586
20206         * pretty-print.c (pp_format): Correct the handling of %s precision.
20207
20208 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
20209
20210         PR target/81736
20211         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20212         to ...
20213         (ix86_finalize_stack_frame_flags): This.  Also clear
20214         frame_pointer_needed if -fno-omit-frame-pointer is used without
20215         stack access.
20216         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20217         with ix86_finalize_stack_frame_flags.
20218         (ix86_expand_epilogue): Likewise.
20219         (ix86_expand_split_stack_prologue): Likewise.
20220         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
20221
20222 2017-08-10  Martin Liska  <mliska@suse.cz>
20223
20224         PR c++/81355
20225         * c-attribs.c (handle_target_attribute):
20226         Report warning for an empty string argument of target attribute.
20227
20228 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
20229
20230         PR c/81687
20231         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
20232         LABEL_DECLs.
20233         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
20234         or DECL_NONLOCAL labels.
20235         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
20236         or DECL_NONLOCAL labels here.
20237
20238 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
20239
20240         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
20241         to indicate when early gimple folding has been disabled.
20242         (rs6000_gimple_fold_builtin): Add debug content.
20243         (rs6000_invalid_builtin): Fix whitespace.
20244         (rs6000_expand_builtin): Fix whitespace.
20245         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
20246
20247 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
20248
20249         PR target/80938
20250         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
20251         SAVE_MULTIPLE if not all the registers that saves, should be saved.
20252
20253 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
20254
20255         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
20256         (qdf24xx): Likewise.
20257         * config/aarch64/aarch64.md: Include falkor.md.
20258         * config/aarch64/falkor.md: New.
20259
20260 2017-08-09  Marek Polacek  <polacek@redhat.com>
20261
20262         PR c/81233
20263         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
20264         * diagnostic.c (emit_diagnostic): Add a comment.
20265         (emit_diagnostic_valist): New function.
20266
20267 2017-08-09  Marek Polacek  <polacek@redhat.com>
20268
20269         PR c/81417
20270         * input.c (make_location): New overload.
20271         * input.h (make_location): Declare.
20272
20273 2017-08-08  Alan Modra  <amodra@gmail.com>
20274             H.J. Lu  <hongjiu.lu@intel.com>
20275
20276         PR driver/81523
20277         * gcc.c (NO_PIE_SPEC): Delete.
20278         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
20279         exclusion..
20280         (LINK_PIE_SPEC): ..to here.
20281         (LINK_COMMAND_SPEC): Support -no-pie.
20282         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
20283         chain of crtbegin*.o selection, update for PIE_SPEC changes and
20284         format.
20285         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
20286         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
20287         (ENDFILE_CRTEND_SPEC): Similarly.
20288
20289 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
20290
20291         PR target/81708
20292         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
20293         (mstack-protector-guard-offset=): Ditto.
20294         * config/i386/i386.c (ix86_option_override): Handle
20295         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
20296         options.
20297         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
20298         ix86_stack_protect_guard_offset variables.
20299         (TARGET_STACK_PROTECT_GUARD): Always define.
20300         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
20301         and -mstack-protector-guard-offset= options.
20302
20303 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20304
20305         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
20306         boundary case for the last candidate.
20307
20308 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20309
20310         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
20311         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
20312
20313 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20314
20315         PR middle-end/19706
20316         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
20317         * config/aarch64/aarch64-builtins.c
20318         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
20319         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
20320         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
20321
20322 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20323             Andrew Pinski <pinskia@gmail.com>
20324
20325         PR middle-end/19706
20326         * internal-fn.def (XORSIGN): New.
20327         * optabs.def (xorsign_optab): New.
20328         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
20329         (convert_expand_mult_copysign): New.
20330         (pass_optimize_widening_mul::execute): Call
20331         convert_expand_mult_copysign.
20332
20333 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20334
20335         PR tree-optimization/81354
20336         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
20337         Insert on edges rather than explicitly creating landing pads.
20338         (analyze_candidates_and_replace): Commit edge inserts.
20339
20340 2017-08-08  Richard Biener  <rguenther@suse.de>
20341
20342         PR middle-end/81719
20343         * tree-ssa-loop-niter.c: Include tree-dfa.h.
20344         (expand_simple_operations): Also look through ADDR_EXPRs with
20345         MEM_REF bases treating them as POINTER_PLUS_EXPR.
20346
20347 2017-08-08  Richard Biener  <rguenther@suse.de>
20348
20349         PR tree-optimization/81723
20350         * tree-vect-slp.c (struct bst_traits): New hash traits.
20351         (bst_fail): New global.
20352         (vect_build_slp_tree_2): New worker, split out from ...
20353         (vect_build_slp_tree): ... this now wrapping it with using
20354         bst_fail set to cache SLP tree build fails.  Properly handle
20355         max_tree_size.
20356         (vect_analyze_slp_instance): Allocate and free bst_fail.
20357
20358 2017-08-08  Martin Liska  <mliska@suse.cz>
20359
20360         PR tree-opt/81696
20361         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
20362         LABEL_DECLs that can be from a different function.
20363
20364 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20365
20366         PR tree-optimization/81744
20367         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
20368         loop's number of iterations.
20369
20370 2017-08-08  Martin Liska  <mliska@suse.cz>
20371
20372         * asan.c: Include header files.
20373         * attribs.c (build_decl_attribute_variant): New function moved
20374         from tree.[ch].
20375         (build_type_attribute_qual_variant): Likewise.
20376         (cmp_attrib_identifiers): Likewise.
20377         (simple_cst_list_equal): Likewise.
20378         (omp_declare_simd_clauses_equal): Likewise.
20379         (attribute_value_equal): Likewise.
20380         (comp_type_attributes): Likewise.
20381         (build_type_attribute_variant): Likewise.
20382         (lookup_ident_attribute): Likewise.
20383         (remove_attribute): Likewise.
20384         (merge_attributes): Likewise.
20385         (merge_type_attributes): Likewise.
20386         (merge_decl_attributes): Likewise.
20387         (merge_dllimport_decl_attributes): Likewise.
20388         (handle_dll_attribute): Likewise.
20389         (attribute_list_equal): Likewise.
20390         (attribute_list_contained): Likewise.
20391         * attribs.h (lookup_attribute): New function moved from tree.[ch].
20392         (lookup_attribute_by_prefix): Likewise.
20393         * bb-reorder.c: Include header files.
20394         * builtins.c: Likewise.
20395         * calls.c: Likewise.
20396         * cfgexpand.c: Likewise.
20397         * cgraph.c: Likewise.
20398         * cgraphunit.c: Likewise.
20399         * convert.c: Likewise.
20400         * dwarf2out.c: Likewise.
20401         * final.c: Likewise.
20402         * fold-const.c: Likewise.
20403         * function.c: Likewise.
20404         * gimple-expr.c: Likewise.
20405         * gimple-fold.c: Likewise.
20406         * gimple-pretty-print.c: Likewise.
20407         * gimple.c: Likewise.
20408         * gimplify.c: Likewise.
20409         * hsa-common.c: Likewise.
20410         * hsa-gen.c: Likewise.
20411         * internal-fn.c: Likewise.
20412         * ipa-chkp.c: Likewise.
20413         * ipa-cp.c: Likewise.
20414         * ipa-devirt.c: Likewise.
20415         * ipa-fnsummary.c: Likewise.
20416         * ipa-inline.c: Likewise.
20417         * ipa-visibility.c: Likewise.
20418         * ipa.c: Likewise.
20419         * lto-cgraph.c: Likewise.
20420         * omp-expand.c: Likewise.
20421         * omp-general.c: Likewise.
20422         * omp-low.c: Likewise.
20423         * omp-offload.c: Likewise.
20424         * omp-simd-clone.c: Likewise.
20425         * opts-global.c: Likewise.
20426         * passes.c: Likewise.
20427         * predict.c: Likewise.
20428         * sancov.c: Likewise.
20429         * sanopt.c: Likewise.
20430         * symtab.c: Likewise.
20431         * toplev.c: Likewise.
20432         * trans-mem.c: Likewise.
20433         * tree-chkp.c: Likewise.
20434         * tree-eh.c: Likewise.
20435         * tree-into-ssa.c: Likewise.
20436         * tree-object-size.c: Likewise.
20437         * tree-parloops.c: Likewise.
20438         * tree-profile.c: Likewise.
20439         * tree-ssa-ccp.c: Likewise.
20440         * tree-ssa-live.c: Likewise.
20441         * tree-ssa-loop.c: Likewise.
20442         * tree-ssa-sccvn.c: Likewise.
20443         * tree-ssa-structalias.c: Likewise.
20444         * tree-ssa.c: Likewise.
20445         * tree-streamer-in.c: Likewise.
20446         * tree-vectorizer.c: Likewise.
20447         * tree-vrp.c: Likewise.
20448         * tsan.c: Likewise.
20449         * ubsan.c: Likewise.
20450         * varasm.c: Likewise.
20451         * varpool.c: Likewise.
20452         * tree.c: Remove functions moved to attribs.[ch].
20453         * tree.h: Likewise.
20454         * config/aarch64/aarch64.c: Add attrs.h header file.
20455         * config/alpha/alpha.c: Likewise.
20456         * config/arc/arc.c: Likewise.
20457         * config/arm/arm.c: Likewise.
20458         * config/avr/avr.c: Likewise.
20459         * config/bfin/bfin.c: Likewise.
20460         * config/c6x/c6x.c: Likewise.
20461         * config/cr16/cr16.c: Likewise.
20462         * config/cris/cris.c: Likewise.
20463         * config/darwin.c: Likewise.
20464         * config/epiphany/epiphany.c: Likewise.
20465         * config/fr30/fr30.c: Likewise.
20466         * config/frv/frv.c: Likewise.
20467         * config/ft32/ft32.c: Likewise.
20468         * config/h8300/h8300.c: Likewise.
20469         * config/i386/winnt.c: Likewise.
20470         * config/ia64/ia64.c: Likewise.
20471         * config/iq2000/iq2000.c: Likewise.
20472         * config/lm32/lm32.c: Likewise.
20473         * config/m32c/m32c.c: Likewise.
20474         * config/m32r/m32r.c: Likewise.
20475         * config/m68k/m68k.c: Likewise.
20476         * config/mcore/mcore.c: Likewise.
20477         * config/microblaze/microblaze.c: Likewise.
20478         * config/mips/mips.c: Likewise.
20479         * config/mmix/mmix.c: Likewise.
20480         * config/mn10300/mn10300.c: Likewise.
20481         * config/moxie/moxie.c: Likewise.
20482         * config/msp430/msp430.c: Likewise.
20483         * config/nds32/nds32-isr.c: Likewise.
20484         * config/nds32/nds32.c: Likewise.
20485         * config/nios2/nios2.c: Likewise.
20486         * config/nvptx/nvptx.c: Likewise.
20487         * config/pa/pa.c: Likewise.
20488         * config/pdp11/pdp11.c: Likewise.
20489         * config/powerpcspe/powerpcspe.c: Likewise.
20490         * config/riscv/riscv.c: Likewise.
20491         * config/rl78/rl78.c: Likewise.
20492         * config/rx/rx.c: Likewise.
20493         * config/s390/s390.c: Likewise.
20494         * config/sh/sh.c: Likewise.
20495         * config/sol2.c: Likewise.
20496         * config/sparc/sparc.c: Likewise.
20497         * config/spu/spu.c: Likewise.
20498         * config/stormy16/stormy16.c: Likewise.
20499         * config/tilegx/tilegx.c: Likewise.
20500         * config/tilepro/tilepro.c: Likewise.
20501         * config/v850/v850.c: Likewise.
20502         * config/vax/vax.c: Likewise.
20503         * config/visium/visium.c: Likewise.
20504         * config/xtensa/xtensa.c: Likewise.
20505
20506 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
20507
20508         PR target/81593
20509         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
20510         constraints since the -mupper-regs-* switches have been
20511         eliminated.
20512         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
20513         into a vector from a double word element that was extracted from
20514         another vector, and eliminate extra XXPERMDI instructions.
20515         (vsx_concat_<mode>_2): Likewise.
20516         (vsx_concat_<mode>_3): Likewise.
20517         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
20518         concat to allow optimizing inserts from previous extracts.
20519
20520 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
20521
20522         * config/i386/i386.c (ix86_stack_protect_guard): Generate
20523         memory reference to a SSP offset in TLS address space.
20524         (ix86_print_operand) <case '@'>: Remove.
20525         (ix86_print_operand_punct_valid_p): Remove '@' code.
20526         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
20527         UNSPEC_SP_TLS_TEST.
20528         (stack_tls_protect_set_<mode>): Remove.
20529         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
20530         (stack_tls_protect_test_<mode>): Remove.
20531         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
20532
20533 2017-08-07  Olivier Hainque  <hainque@adacore.com>
20534
20535         PR target/81755
20536         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
20537
20538 2017-08-07  Douglas Rupp  <rupp@adacore.com>
20539
20540         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
20541         variable was referenced as multidir in command.
20542
20543 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
20544
20545         PR c/69389
20546         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
20547         BIT_FIELD_REF.
20548
20549 2017-08-07  Martin Liska  <mliska@suse.cz>
20550
20551         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
20552         * config/rl78/rl78.c: Add include of attribs.h.
20553         * config/sh/sh.c: Likewise.
20554         * config/v850/v850.c: Likewise.
20555
20556 2017-08-07  Tom de Vries  <tom@codesourcery.com>
20557
20558         PR middle-end/78266
20559         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
20560
20561 2017-08-07  Martin Liska  <mliska@suse.cz>
20562
20563         * config/mips/mips.c: Include attribs.h.
20564
20565 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
20566
20567         PR fortran/68829
20568         * doc/invoke.texi: Document change in behvaior for -Ofast for
20569         Fortran.
20570
20571 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
20572
20573         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
20574         Use gen_frame_mem.
20575         (aarch64_pop_regs): Likewise.
20576         (aarch64_gen_load_pair): Likewise.
20577         (aarch64_save_callee_saves): Likewise.
20578         (aarch64_restore_callee_saves): Likewise.
20579
20580 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20581
20582         * config/i386/i386.c: Revert the last change.
20583
20584 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20585
20586         PR target/81736
20587         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20588         to ...
20589         (ix86_finalize_stack_frame_flags): This.  Also clear
20590         frame_pointer_needed if -fno-omit-frame-pointer is used without
20591         stack access.
20592         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20593         with ix86_finalize_stack_frame_flags.
20594         (ix86_expand_epilogue): Likewise.
20595         (ix86_expand_split_stack_prologue): Likewise.
20596
20597 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20598
20599         PR target/81743
20600         * config/i386/i386.c (get_builtin_code_for_version): Set priority
20601         to P_AES for Westmere.
20602
20603 2017-08-07  Jonathan Yong  <10walls@gmail.com>
20604
20605         * config/i386/mingw.opt (fset-stack-executable): Removed.
20606         * config/i386/cygming.opt (fset-stack-executable): Moved
20607         from mingw.opt.
20608         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
20609
20610 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
20611
20612         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
20613
20614 2017-08-07  Marek Polacek  <polacek@redhat.com>
20615
20616         PR middle-end/81737
20617         * fold-const.c (fold_indirect_ref_1): Check type_domain.
20618
20619 2017-08-07  Martin Liska  <mliska@suse.cz>
20620
20621         * attribs.h (canonicalize_attr_name): New function.
20622         (cmp_attribs): Move from c-format.c and adjusted.
20623         (is_attribute_p): Moved from tree.h.
20624         * tree-inline.c: Add new includes.
20625         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
20626         (private_is_attribute_p): Remove.
20627         (private_lookup_attribute): Likewise.
20628         (private_lookup_attribute_by_prefix): Simplify.
20629         (remove_attribute): Use is_attribute_p.
20630         * tree.h: Remove removed declarations.
20631
20632 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
20633
20634         PR middle-end/81698
20635         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
20636         instead of computing it in the function.  Formatting fix.
20637         (expand_case): Don't rely on default_edge being the first edge,
20638         clear it if removing it, pass default_edge to
20639         emit_case_dispatch_table.
20640         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
20641         fix.
20642
20643 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
20644
20645         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
20646         insn in the function, emit NOP after the insn.
20647
20648 2017-08-06  Tom de Vries  <tom@codesourcery.com>
20649
20650         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
20651         and element loops.
20652
20653 2017-08-06  Tom de Vries  <tom@codesourcery.com>
20654
20655         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
20656         loop.
20657
20658 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
20659
20660         PR tree-optimization/57371
20661         * match.pd: New pattern.
20662
20663 2017-08-04  Marek Polacek  <polacek@redhat.com>
20664
20665         PR middle-end/81695
20666         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
20667         perform the computation in offset_int.
20668
20669 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20670
20671         PR tree-optimization/81136
20672         * tree-vectorizer.h: Include tree-hash-traits.h.
20673         (vec_base_alignments): New typedef.
20674         (vec_info): Add a base_alignments field.
20675         (vect_record_base_alignments): Declare.
20676         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
20677         field.
20678         (DR_IS_CONDITIONAL_IN_STMT): New macro.
20679         (create_data_ref): Add an is_conditional_in_stmt argument.
20680         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
20681         the is_conditional_in_stmt field.
20682         (data_ref_loc): Add an is_conditional_in_stmt field.
20683         (get_references_in_stmt): Set the is_conditional_in_stmt field.
20684         (find_data_references_in_stmt): Update call to create_data_ref.
20685         (graphite_find_data_references_in_stmt): Likewise.
20686         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
20687         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
20688         (vect_record_base_alignment): New function.
20689         (vect_record_base_alignments): Likewise.
20690         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
20691         for nested statements even if we fail to compute a misalignment.
20692         Use pooled base alignments for unconditional references.
20693         (vect_find_same_alignment_drs): Compare base addresses instead
20694         of base objects.
20695         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
20696         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
20697
20698 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20699
20700         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
20701         Add an explicit name for the enum.  Use auto_vec for slp_instances
20702         and grouped_stores.
20703         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
20704         for all vectors.
20705         (_bb_vec_info): Add a constructor and destructor.
20706         (vinfo_for_stmt): Return NULL for uids of -1 as well.
20707         (destroy_loop_vec_info): Delete.
20708         (vect_destroy_datarefs): Likewise.
20709         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
20710         (vec_info::vec_info): New function.
20711         (vec_info::~vec_info): Likewise.
20712         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
20713         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
20714         destroy_loop_vec_info.
20715         * tree-vect-loop.c (new_loop_vec_info): Replace with...
20716         (_loop_vec_info::_loop_vec_info): ...this.
20717         (destroy_loop_vec_info): Replace with...
20718         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
20719         the stmt_vec_infos.  Leave handling of vec_info information to its
20720         destructor.  Remove explicit vector releases.
20721         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
20722         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
20723         * tree-vect-slp.c (new_bb_vec_info): Replace with...
20724         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
20725         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
20726         (destroy_bb_vec_info): Replace with...
20727         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
20728         information to its destructor.
20729         (vect_slp_analyze_bb_1): Use new and delete instead of
20730         new_bb_vec_info and destroy_bb_vec_info.
20731         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
20732         single delete.
20733
20734 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20735
20736         * tree-data-ref.h (subscript): Add access_fn field.
20737         (data_dependence_relation): Add could_be_independent_p.
20738         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
20739         (same_access_functions): Move to tree-data-ref.c.
20740         * tree-data-ref.c (ref_contains_union_access_p): New function.
20741         (access_fn_component_p): Likewise.
20742         (access_fn_components_comparable_p): Likewise.
20743         (dr_analyze_indices): Add a reference to access_fn_component_p.
20744         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
20745         DR_ACCESS_FN.
20746         (constant_access_functions): Likewise.
20747         (add_other_self_distances): Likewise.
20748         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
20749         (initialize_data_dependence_relation): Use XCNEW and remove
20750         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
20751         of access functions that have the same type.  Allow the
20752         subsequence to end with different bases in some circumstances.
20753         Record the chosen access functions in SUB_ACCESS_FN.
20754         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
20755         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
20756         (subscript_dependence_tester_1): Likewise dra and drb.
20757         (build_classic_dist_vector): Update calls accordingly.
20758         (subscript_dependence_tester): Likewise.
20759         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
20760         DDR_COULD_BE_INDEPENDENT_P.
20761         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
20762         comp_alias_ddrs instead of may_alias_ddrs.
20763         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
20764         New function.
20765         (vect_analyze_data_ref_dependence): Use it if
20766         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
20767         distance vectors if that fails.
20768         (dependence_distance_ge_vf): New function.
20769         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
20770         LOOP_VINFO_MAY_ALIAS_DDRS.
20771
20772 2017-08-04  Richard Biener  <rguenther@suse.de>
20773
20774         PR middle-end/81705
20775         * fold-const.c (fold_binary_loc): Properly restrict
20776         minus_var0 && minus_var1 case when associating undefined overflow
20777         entities.
20778
20779 2017-08-04  Tom de Vries  <tom@codesourcery.com>
20780
20781         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
20782
20783 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20784
20785         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20786         Don't start diagnostic messages with a capital letter.
20787         * config/rs6000/rs6000.c (rs6000_option_override_internal):
20788         Likewise.
20789         (rs6000_invalid_builtin): Likewise.
20790         (rs6000_trampoline_init): Likewise.
20791
20792 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
20793
20794         PR target/81621
20795         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
20796         after setting changeable df flags.
20797
20798 2017-08-03  Richard Biener  <rguenther@suse.de>
20799
20800         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
20801         up if the use is in USE - X.
20802
20803 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
20804
20805         * toplev.c (dumpfile.h): New include.
20806         (internal_error_reentered): New static function.  Use it...
20807         (internal_error_function): ...here to handle reentered internal_error.
20808
20809 2017-08-03  Richard Biener  <rguenther@suse.de>
20810
20811         PR middle-end/81148
20812         * fold-const.c (split_tree): Add minus_var and minus_con
20813         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
20814         here but always use minus_*.
20815         (associate_trees): Assert we never associate with MINUS_EXPR
20816         and NULL first operand.  Do not recurse for PLUS_EXPR operands
20817         when associating as MINUS_EXPR either.
20818         (fold_binary_loc): Track minus_var and minus_con.
20819
20820 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20821
20822         PR lto/81430
20823         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
20824         ACCEL_COMPILER, apply finish_options on
20825         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
20826
20827 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20828
20829         PR target/81662
20830         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
20831         function_entry_patch_area_size > 0.
20832
20833 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
20834
20835         PR driver/81650
20836         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
20837         instead of 10??LU, perform unit multiplication in wide_int,
20838         don't change alloc_object_size_limit if the limit is larger
20839         than SSIZE_MAX.
20840
20841         PR tree-optimization/81655
20842         PR tree-optimization/81588
20843         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
20844         the case when ranges[i].low and high are 1 for unsigned type with
20845         precision 1.
20846
20847         PR middle-end/81052
20848         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
20849         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
20850
20851 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20852
20853         * tree-vrp.h: Add include guard.
20854
20855 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
20856
20857         PR target/81644
20858         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
20859         (ud2): New insn pattern.
20860         * config/i386/i386.c (ix86_expand_epilogue):
20861         For naked functions, generate ud2 instead of trap insn.
20862
20863 2017-08-02  Marek Polacek  <polacek@redhat.com>
20864
20865         PR other/81667
20866         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
20867
20868 2017-08-02  Tom de Vries  <tom@codesourcery.com>
20869             Cesar Philippidis  <cesar@codesourcery.com>
20870
20871         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
20872         Add missing edge probabilities.
20873
20874 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
20875
20876         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
20877         Correct endianness.
20878
20879 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
20880
20881         PR middle-end/79499
20882         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
20883         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
20884         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
20885         prologue_seq sequences - if any.
20886
20887 2017-08-02  Richard Biener  <rguenther@suse.de>
20888
20889         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
20890         via vectors if supported, integer extracts via punning if supported
20891         or otherwise vector extracts.
20892
20893 2017-08-02  Richard Biener  <rguenther@suse.de>
20894
20895         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
20896         into ...
20897         (bitmap_insert_into_set): ... this.
20898
20899 2017-08-02  Richard Biener  <rguenther@suse.de>
20900
20901         PR tree-optimization/81633
20902         Revert
20903         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
20904
20905         PR tree-optimization/71752
20906         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
20907
20908 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
20909
20910         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
20911         (machine_function::call_ms2sysv_pad_out): Remove field.
20912         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
20913         (ix86_compute_frame_layout): Likewise.
20914
20915 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
20916
20917         PR target/81654
20918         * config/i386/i386.c (ix86_set_func_type): Disallow naked
20919         attribute with interrupt attribute.
20920
20921 2017-08-01  Andrew Pinski  <apinski@cavium.com>
20922
20923         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
20924         BIT_INSERT_EXPR's operand 1
20925         to see if the types precision matches.
20926
20927 2017-08-01  Martin Liska  <mliska@suse.cz>
20928
20929         PR middle-end/70140
20930         * builtins.c (expand_builtin_memcpy_args): Remove.
20931         (expand_builtin_memcpy): Call newly added function
20932         expand_builtin_memory_copy_args.
20933         (expand_builtin_memcpy_with_bounds): Likewise.
20934         (expand_builtin_mempcpy): Remove last argument.
20935         (expand_builtin_mempcpy_with_bounds): Likewise.
20936         (expand_builtin_memory_copy_args): New function created from
20937         expand_builtin_mempcpy_args with small modifications.
20938         (expand_builtin_mempcpy_args): Remove.
20939         (expand_builtin_stpcpy): Remove unused argument.
20940         (expand_builtin): Likewise.
20941         (expand_builtin_with_bounds): Likewise.
20942
20943 2017-08-01  Martin Liska  <mliska@suse.cz>
20944
20945         Revert r250771
20946         Make mempcpy more optimal (PR middle-end/70140).
20947
20948 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
20949
20950         PR target/81622
20951         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
20952         __builtin_vec_cmpne verify both arguments are compatible vectors
20953         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
20954         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
20955         move computation of aligned to after checking the argument types.
20956         Formatting fixes.
20957
20958         PR target/80846
20959         * config/rs6000/vsx.md (vextract_fp_from_shorth,
20960         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
20961         calls.
20962
20963 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
20964             Doug Rupp  <rupp@adacore.com>
20965             Olivier Hainque  <hainque@adacore.com>
20966
20967         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
20968         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
20969         arm8 (arch v4).
20970         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
20971         for TARGET_OS_CPP_BUILTIN.
20972         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
20973         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
20974         arm_arch7.
20975         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
20976         passing required abi options to the assembler for EABI configurations.
20977         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
20978         of .text.hot and .text.unlikely sections for kernel modules when
20979         using ARM style exceptions.
20980         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
20981         options. Add EXTRA_CC1_SPEC.
20982         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
20983         toolchain options.
20984         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
20985         transition.
20986         (ARM_TARGET2_DWARF_FORMAT): Define.
20987         * config/arm/t-vxworks: Adjust multilib control to removal of the
20988         Diab command line options.
20989
20990 2017-08-01  Martin Liska  <mliska@suse.cz>
20991
20992         PR gcov-profile/81561
20993         * gcov.c (unblock): Make unblocking safe as we need to preserve
20994         index correspondence of blocks and block_lists.
20995
20996 2017-08-01  Richard Biener  <rguenther@suse.de>
20997
20998         PR tree-optimization/81181
20999         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
21000         (compute_antic): ... end of iteration here.
21001
21002 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
21003
21004         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
21005         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
21006         (ftree-slp-vectorize): Likewise.
21007         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
21008         can no longer be set independent of flag_tree_loop_vectorize.
21009         * omp-general.c (emp_max_vf): Likewise.
21010         * opts.c (enable_fdo_optimizations): Remove references to
21011         flag_tree_vectorize, these are now implicit.
21012         (common_handle_option): Remove handling for OPT_ftree_vectorize,
21013         and leave it for the options machinery.
21014
21015 2017-08-01  Martin Liska  <mliska@suse.cz>
21016
21017         PR middle-end/70140
21018         * builtins.c (expand_builtin_memcpy_args): Remove.
21019         (expand_builtin_memcpy): Call newly added function
21020         expand_builtin_memory_copy_args.
21021         (expand_builtin_memcpy_with_bounds): Likewise.
21022         (expand_builtin_mempcpy): Remove last argument.
21023         (expand_builtin_mempcpy_with_bounds): Likewise.
21024         (expand_builtin_memory_copy_args): New function created from
21025         expand_builtin_mempcpy_args with small modifications.
21026         (expand_builtin_mempcpy_args): Remove.
21027         (expand_builtin_stpcpy): Remove unused argument.
21028         (expand_builtin): Likewise.
21029         (expand_builtin_with_bounds): Likewise.
21030
21031 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21032
21033         PR target/81641
21034         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
21035         print "ds:" only for immediates in generic address space.
21036
21037 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21038
21039         PR target/81639
21040         * config/i386/i386.c (ix86_funciton_naked): New prototype.
21041         (ix86_function_ok_for_sibcall): Return false for naked functions.
21042
21043 2017-08-01  Richard Biener  <rguenther@suse.de>
21044
21045         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
21046         (compute_antic): Seed worklist with exit block predecessors.
21047         * cfganal.c (dfs_find_deadend): For a cycle return the source
21048         of the edge closing it.
21049
21050 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
21051
21052         * config/aarch64/aarch64.c
21053         (aarch64_can_const_movi_rtx_p): Move 0 check.
21054
21055 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21056
21057         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
21058         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
21059         above macro.
21060         * match.pd: Ditto in address comparison pattern.
21061
21062 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21063
21064         PR tree-optimization/81627
21065         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
21066         closed ssa form for store-store chain.
21067
21068 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21069
21070         PR tree-optimization/81620
21071         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
21072         for store-store chain.
21073
21074 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21075
21076         PR tree-optimization/81588
21077         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
21078         ranges[i].in_p, invert comparison code ccode.  For >/>=,
21079         swap rhs1 and rhs2 and comparison code unconditionally,
21080         for </<= don't do that.  Don't swap rhs1/rhs2 again if
21081         ranges[i].in_p, instead invert comparison code ccode if
21082         opcode or oe->rank is BIT_IOR_EXPR.
21083
21084         PR target/80846
21085         * optabs.def (vec_extract_optab, vec_init_optab): Change from
21086         a direct optab to conversion optab.
21087         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
21088         with GET_MODE_INNER as last argument instead of optab_handler.
21089         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
21090         vector extraction if possible and optab is available.
21091         * expr.c (store_constructor): Use convert_optab_handler instead
21092         of optab_handler.  Use vector initialization from smaller
21093         vectors if possible and optab is available.
21094         * tree-vect-stmts.c (vectorizable_load): Likewise.
21095         * doc/md.texi (vec_extract, vec_init): Document that the optabs
21096         now have two modes.
21097         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
21098         of vec_init from half-sized vectors with the same element mode.
21099         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
21100         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
21101         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
21102         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
21103         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
21104         after mode in gen_vec_extract* calls.
21105         (vec_extract<mode>): Renamed to ...
21106         (vec_extract<mode><ssescalarmodelower>): ... this.
21107         (vec_extract<mode><ssehalfvecmodelower>): New expander.
21108         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
21109         element mode after mode in gen_vec_init* calls.
21110         (VEC_INIT_HALF_MODE): New mode iterator.
21111         (vec_init<mode>): Renamed to ...
21112         (vec_init<mode><ssescalarmodelower>): ... this.
21113         (vec_init<mode><ssehalfvecmodelower>): New expander.
21114         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
21115         (vec_extractv2sfsf): ... this.
21116         (vec_initv2sf): Renamed to ...
21117         (vec_initv2sfsf): ... this.
21118         (vec_extractv2si): Renamed to ...
21119         (vec_extractv2sisi): ... this.
21120         (vec_initv2si): Renamed to ...
21121         (vec_initv2sisi): ... this.
21122         (vec_extractv4hi): Renamed to ...
21123         (vec_extractv4hihi): ... this.
21124         (vec_initv4hi): Renamed to ...
21125         (vec_initv4hihi): ... this.
21126         (vec_extractv8qi): Renamed to ...
21127         (vec_extractv8qiqi): ... this.
21128         (vec_initv8qi): Renamed to ...
21129         (vec_initv8qiqi): ... this.
21130         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
21131         (vec_init<mode>): Renamed to ...
21132         (vec_init<mode><VEC_base_l>): ... this.
21133         (vec_extract<mode>): Renamed to ...
21134         (vec_extract<mode><VEC_base_l>): ... this.
21135         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
21136         (vec_initv2sfsf): ... this.
21137         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
21138         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21139         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
21140         element mode after mode in gen_vec_init* calls.
21141         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
21142         (vec_init<mode><Vel>): ... this.
21143         (vec_extract<mode>): Renamed to ...
21144         (vec_extract<mode><Vel>): ... this.
21145         * config/aarch64/iterators.md (Vel): New mode attribute.
21146         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
21147         Add element mode after mode in gen_vec_extract* calls.
21148         * config/s390/vector.md (non_vec_l): New mode attribute.
21149         (vec_extract<mode>): Renamed to ...
21150         (vec_extract<mode><non_vec_l>): ... this.
21151         (vec_init<mode>): Renamed to ...
21152         (vec_init<mode><non_vec_l>): ... this.
21153         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
21154         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
21155         vec_extract mode.
21156         * config/arm/iterators.md (V_elem_l): New mode attribute.
21157         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
21158         (vec_extract<mode><V_elem_l>): ... this.
21159         (vec_extractv2di): Renamed to ...
21160         (vec_extractv2didi): ... this.
21161         (vec_init<mode>): Renamed to ...
21162         (vec_init<mode><V_elem_l>): ... this.
21163         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
21164         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
21165         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
21166         Add element mode after gen_vec_extract* calls.
21167         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
21168         (vec_init<mode><unitmode>): ... this.
21169         (vec_extract<mode>): Renamed to ...
21170         (vec_extract<mode><unitmode>): ... this.
21171         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
21172         (vec_init<mode><unitmode>): ... this.
21173         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
21174         (vec_initv2sfsf): ... this.
21175         (vec_extractv2sf): Renamed to ...
21176         (vec_extractv2sfsf): ... this.
21177         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
21178         Add element mode after gen_vec_extract* calls.
21179         * config/mips/mips.md (unitmode): New mode iterator.
21180         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
21181         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
21182         * config/spu/spu.md (inner_l): New mode attribute.
21183         (vec_init<mode>): Renamed to ...
21184         (vec_init<mode><inner_l>): ... this.
21185         (vec_extract<mode>): Renamed to ...
21186         (vec_extract<mode><inner_l>): ... this.
21187         * config/sparc/sparc.md (veltmode): New mode iterator.
21188         (vec_init<VMALL:mode>): Renamed to ...
21189         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
21190         * config/ia64/vect.md (vec_initv2si): Renamed to ...
21191         (vec_initv2sisi): ... this.
21192         (vec_initv2sf): Renamed to ...
21193         (vec_initv2sfsf): ... this.
21194         (vec_extractv2sf): Renamed to ...
21195         (vec_extractv2sfsf): ... this.
21196         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
21197         (vec_init<mode>): Renamed to ...
21198         (vec_init<mode><VEC_base_l>): ... this.
21199         (vec_extract<mode>): Renamed to ...
21200         (vec_extract<mode><VEC_base_l>): ... this.
21201         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
21202         (vec_initv2sfsf): ... this.
21203         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
21204         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21205         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
21206         gen_vec_init* calls.
21207
21208 2017-08-01  Richard Biener  <rguenther@suse.de>
21209
21210         PR tree-optimization/81297
21211         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
21212         TREE_OVERFLOW from INTEGER_CSTs.
21213
21214 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
21215
21216         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
21217
21218 2017-07-31  Carl Love  <cel@us.ibm.com>
21219
21220         * config/rs6000/rs6000-c: Add support for built-in functions
21221         vector signed char vec_xl_be (signed long long, signed char *);
21222         vector unsigned char vec_xl_be (signed long long, unsigned char *);
21223         vector signed int vec_xl_be (signed long long, signed int *);
21224         vector unsigned int vec_xl_be (signed long long, unsigned int *);
21225         vector signed long long vec_xl_be (signed long long, signed long long *);
21226         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
21227         vector signed short vec_xl_be (signed long long, signed short *);
21228         vector unsigned short vec_xl_be (signed long long, unsigned short *);
21229         vector double vec_xl_be (signed long long, double *);
21230         vector float vec_xl_be (signed long long, float *);
21231         * config/rs6000/altivec.h (vec_xl_be): Add #define.
21232         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
21233         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
21234         for the builtins.
21235         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
21236         (altivec_expand_builtin): Add switch statement to call
21237         altivec_expand_xl_be for each builtin.
21238         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
21239         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
21240         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
21241         __builtin_vsx_le_be_v16qi.
21242         * doc/extend.texi: Update the built-in documentation file for the
21243         new built-in functions.
21244
21245 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21246
21247         PR target/25967
21248         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
21249         New function.
21250         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
21251
21252 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21253
21254         * config.gcc: Add z14.
21255         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
21256         CPU model numbers for z13s and z14.
21257         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
21258         arch12 with z14.
21259         * config/s390/s390-opts.h (enum processor_type): Rename
21260         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21261         * config/s390/s390.c (processor_table): Add field for CPU name to
21262         be passed to Binutils.
21263         (s390_asm_output_machine_for_arch): Use the new field in
21264         processor_table for Binutils.
21265         (s390_expand_builtin): Replace arch12 with z14.
21266         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21267         (s390_get_sched_attrmask): Likewise.
21268         (s390_get_unit_mask): Likewise.
21269         * config/s390/s390.opt: Add z14 to processor_type enum.
21270
21271 2017-07-31  Martin Jambor  <mjambor@suse.cz>
21272
21273         PR hsa/81477
21274         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
21275         regardless of optimization level.
21276
21277 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
21278             Martin Liska  <mliska@suse.cz>
21279
21280         * predict.def: Remove old comment and adjust probability.
21281         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
21282         PREDICT statements.
21283
21284 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21285
21286         PR target/25967
21287         * config/i386/i386.c (ix86_function_naked): New function.
21288         (ix86_can_use_return_insn_p): Return false for naked functions.
21289         (ix86_expand_prologue): Skip prologue for naked functions.
21290         (ix86_expand_epilogue): Skip epilogue for naked functions
21291         and emit trap instruction.
21292         (ix86_warn_func_return): New function.
21293         (ix86_attribute_table): Add "naked" attribute specification.
21294         (TARGET_WARN_FUNC_RETURN): Define.
21295         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
21296
21297 2017-07-31  Martin Liska  <mliska@suse.cz>
21298
21299         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
21300         (dump_gimple_bb_header): Always dump BB info.
21301         (pp_cfg_jump): Do not append info about BB when dumping a jump.
21302
21303 2017-07-31  Martin Liska  <mliska@suse.cz>
21304
21305         PR sanitize/81530
21306         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
21307         also with current_function_decl non-null equality.
21308
21309 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
21310
21311         PR sanitizer/81604
21312         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
21313         change type to the element type, instead add eltype variable and
21314         use it where we are interested in the element type.
21315
21316         PR tree-optimization/81603
21317         * ipa-polymorphic-call.c
21318         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
21319         offset arithmetic in offset_int, bail out if the resulting bit offset
21320         doesn't fit into shwi.
21321
21322 2017-07-31  Martin Liska  <mliska@suse.cz>
21323
21324         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
21325         (gimplify_save_expr): Fix comment.
21326
21327 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
21328
21329         PR target/79793
21330         * config/i386/i386.c (ix86_function_arg): Update arguments for
21331         exception handler.
21332         (ix86_compute_frame_layout): Set the initial stack offset to
21333         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
21334         INCOMING_FRAME_SP_OFFSET.
21335         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
21336         stack before exception handler returns.
21337         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
21338         the 'ERROR_CODE' for exception handler.
21339
21340 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
21341
21342         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
21343         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
21344         (ASM_OUTPUT_REG_POP): Ditto.
21345         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
21346         instead of asm_fprintf to output pure string.
21347
21348 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
21349
21350         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
21351         to imported_module_or_decl hook.
21352         (debug_nothing_tree_tree_tree_bool): Remove.
21353         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
21354         * debug.c (do_nothing_debug_hooks): Use
21355         debug_nothing_tree_tree_tree_bool_bool instead of
21356         debug_nothing_tree_tree_tree_bool.
21357         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
21358         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
21359         * sdbout.c (sdb_debug_hooks): Likewise.
21360         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
21361         (gen_namespace_die): Add DW_AT_export_symbols attribute if
21362         langhook wants it.
21363         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
21364         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
21365         attribute, don't add anything.
21366
21367 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21368
21369         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
21370         (fold_build2_stat_loc): Likewise.
21371         (fold_build3_stat_loc): Likewise.
21372         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
21373         (fold_build1_loc): Remove macro.
21374         (fold_build2_loc): Likewise.
21375         (fold_build3_loc): Likewise.
21376
21377 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21378
21379         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
21380         (gimple_build_debug_bind_source_stat): Likewise.
21381         * gimple.h (gimple_build_debug_bind): Remove macro.
21382         (gimple_build_debug_bind_source): Likewise.
21383
21384 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21385
21386         * bitmap.c (bitmap_alloc): Adjust.
21387         (bitmap_gc_alloc): Likewise.
21388         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
21389
21390 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21391
21392         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
21393         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
21394         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
21395         (bitmap_gc_alloc_stat): Likewise.
21396         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
21397
21398 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21399
21400         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
21401         * rtl.h (shallow_copy_rtx): Remove macro.
21402
21403 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21404
21405         * emit-rtl.c (gen_raw_REG): Adjust.
21406         * gengenrtl.c (gendef): Likewise.
21407         * rtl.c (rtx_alloc_stat): Remove _stat from name.
21408         * rtl.h (rtx_alloc): Remove macro.
21409
21410 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21411
21412         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
21413         (build_tree_list_stat): Likewise.
21414         * tree.h (build_tree_list): Remove macro.
21415         (build_tree_list_vec): Likewise.
21416
21417 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21418
21419         * tree.c (make_vector_stat): Remove _stat from name.
21420         (build_vector_stat): Likewise.
21421         * tree.h (make_vector_stat): Remove macro.
21422         (build_vector_stat): Likewise.
21423
21424 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21425
21426         * tree.h (build_var_debug_value): Remove prototype.
21427
21428 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21429
21430         * tree.c (tree_cons_stat): Remove _stat from name.
21431         * tree.h (tree_cons): Remove macro.
21432
21433 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21434
21435         * tree.c (build_vl_exp_stat): Remove _stat from name.
21436         * tree.h (build_vl_exp): Remove macro.
21437
21438 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21439
21440         * tree.c (build_decl_stat): Remove _stat from name.
21441         * tree.h (build_decl): Remove macro.
21442
21443 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21444
21445         * gimple.c (gimple_build_with_ops_stat): Adjust.
21446         (gimple_alloc_stat): Remove _stat from name.
21447         * gimple.h (gimple_alloc): Remove macro.
21448
21449 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21450
21451         * tree.c (make_tree_vec_stat): Remove _stat from name.
21452         (grow_tree_vec_stat): Likewise.
21453         * tree.h (make_tree_vec_stat): Adjust prototype.
21454         (grow_tree_vec_stat): Likewise.
21455         (make_tree_vec): Remove macro.
21456         (grow_tree_vec): Likewise.
21457
21458 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21459
21460         * fold-const.c (fold_build1_stat_loc): Adjust.
21461         (fold_build2_stat_loc): Likewise.
21462         (fold_build3_stat_loc): Likewise.
21463         * tree.c (build0_stat): Remove _stat from name.
21464         (build1_stat): Likewise.
21465         (build2_stat): Likewise.
21466         (build3_stat): Likewise.
21467         (build4_stat): Likewise.
21468         (build5_stat): Likewise.
21469         * tree.h (build1_loc): Remove macro, and rename _stat function
21470         to this.
21471         (build2_loc): Likewise.
21472         (build3_loc): Likewise.
21473         (build4_loc): Likewise.
21474         (build5_loc): Likewise.
21475
21476 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21477
21478         * tree.c (make_int_cst_stat): Remove _stat from name.
21479         * tree.h (make_int_cst_stat): Adjust prototype.
21480         (make_int_cst): Remove macro.
21481
21482 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21483
21484         * tree.c (make_tre_binfo_stat): Remove _stat from name.
21485         * tree.h (make_tree_binfo_stat): Adjust prototype.
21486         (make_tree_binfo): Remove.
21487
21488 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21489
21490         * tree.c (copy_node_stat): Rename to copy_node.
21491         (build_distinct_type_copy): Adjust.
21492         * tree.h (copy_node_stat): Adjust prototype.
21493         (copy_node): Remove macro.
21494
21495 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21496
21497         * tree.c (make_node_stat): rename to make_node.
21498         (build_tree_list_stat): Adjust.
21499         (build0_stat): Likewise.
21500         (build2_stat): Likewise.
21501         (build3_stat): Likewise.
21502         (build4_stat): Likewise.
21503         (build5_stat): Likewise.
21504         (build_decl_stat): Likewise.
21505         * tree.h (make_node_stat): Adjust prototype.
21506         (make_node): remove macro.
21507
21508 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
21509
21510         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
21511         (PPC_FEATURE2_SCV): Likewise.
21512         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
21513
21514 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21515
21516         * config/aarch64/aarch64.c
21517         (aarch64_internal_mov_immediate): Add new special pattern.
21518         * config/aarch64/aarch64.md (*movdi_aarch64):
21519         Add reg/32bit const mov case.
21520
21521 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21522             Richard Sandiford <richard.sandiford@linaro.org>
21523
21524         * config/aarch64/aarch64.md (mov<mode>): Generalize.
21525         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
21526         Add integer and movi cases.
21527         (movi-split-hf-df-sf split, fp16): New.
21528         (enabled): Added TARGET_FP_F16INST.
21529         * config/aarch64/iterators.md (GPF_HF): New.
21530         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
21531
21532 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21533
21534         * config/aarch64/aarch64.c
21535         (aarch64_simd_container_mode): Add prototype.
21536         (aarch64_expand_mov_immediate): Add HI support.
21537         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
21538         (aarch64_can_const_movi_rtx_p): New.
21539         (aarch64_preferred_reload_class):
21540         Remove restrictions of using FP registers for certain SIMD operations.
21541         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
21542         (aarch64_valid_floating_const): Add integer move validation.
21543         (aarch64_simd_imm_scalar_p): Remove.
21544         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
21545         (aarch64_legitimate_constant_p): Expand list of supported cases.
21546         * config/aarch64/aarch64-protos.h
21547         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
21548         (aarch64_reinterpret_float_as_int): New.
21549         (aarch64_simd_imm_scalar_p): Remove.
21550         * config/aarch64/constraints.md (Uvi): New.
21551         (Dd): Split into Ds and new Dd.
21552         * config/aarch64/aarch64.md (*movsi_aarch64):
21553         Add SIMD mov case.
21554         (*movdi_aarch64): Add SIMD mov case.
21555
21556 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21557
21558         * tree-predcom.c: (struct chain): Handle store-store chain in which
21559         stores for elimination only store loop invariant values.
21560         (execute_pred_commoning_chain): Ditto.
21561         (prepare_initializers_chain_store_elim): Ditto.
21562         (prepare_finalizers): Ditto.
21563         (is_inv_store_elimination_chain): New function.
21564         (initialize_root_vars_store_elim_1): New function.
21565
21566 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21567
21568         * tree-predcom.c: Revise general description of the pass.
21569         (enum chain_type): New enum type for store elimination.
21570         (struct chain): New field supporting store elimination.
21571         (struct component): Ditto.
21572         (dump_chain): Dump store-stores chain.
21573         (release_chain): Release resources.
21574         (split_data_refs_to_components): Compute and create component
21575         contains only stores for elimination.
21576         (get_chain_last_ref_at): New function.
21577         (make_invariant_chain): Initialization.
21578         (make_rooted_chain): Specify chain type in parameter and record it.
21579         (add_looparound_copies): Skip for store-stores chain.
21580         (determine_roots_comp): Compute type of chain and pass it to
21581         make_rooted_chain.
21582         (initialize_root_vars_store_elim_2): New function.
21583         (finalize_eliminated_stores): New function.
21584         (remove_stmt): Handle store for elimination.
21585         (execute_pred_commoning_chain): Execute predictive commoning on
21586         store-store chains.
21587         (determine_unroll_factor): Skip unroll for store-stores chain.
21588         (prepare_initializers_chain_store_elim): New function.
21589         (prepare_initializers_chain): Hanlde store-store chain.
21590         (prepare_finalizers_chain, prepare_finalizers): New function.
21591         (tree_predictive_commoning_loop): Return integer value indicating
21592         if loop is unrolled or lcssa form is corrupted.
21593         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
21594
21595 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21596
21597         * tree-predcom.c (initialize_root): Delete.
21598         (execute_pred_commoning_chain): Initialize root vars and replace
21599         reference of non-combined chain directly, rather than call above
21600         function.
21601
21602 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21603
21604         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
21605         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
21606
21607 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21608
21609         * tree-predcom.c (struct chain): New field init_seq.
21610         (release_chain): Release init_seq.
21611         (prepare_initializers_chain): Record intialization stmts in above
21612         field.
21613         (insert_init_seqs): New function.
21614         (tree_predictive_commoning_loop): Call insert_init_seqs.
21615
21616 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21617
21618         * tree-predcom.c (determine_roots_comp): Skip trivial components.
21619
21620 2017-07-28  Richard Biener  <rguenther@suse.de>
21621
21622         * match.pd: Remove superfluous :c.
21623         * genmatch.c (simplify::id): Add member.
21624         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
21625         Copy id.
21626         (current_id): New global.
21627         (dt_node::parent): Move from ...
21628         (dt_operand::parent): ... here.  Add for_id member.
21629         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
21630         (decision_tree::find_node): Relax order requirement when
21631         merging DT_TRUE nodes to ones inbetween the current simplify
21632         and the one we try to merge with.  Add diagnostic whenever
21633         we need to enforce pattern order by not merging.
21634         (decision_tree::insert): Set current_id.
21635         (decision_tree::print_node): Dump parent node and for_id.
21636         (parser::last_id): Add member.
21637         (parser::push_simplify): Assign unique id.
21638         (parser::parser): Initialize last_id.
21639
21640 2017-07-28  Martin Liska  <mliska@suse.cz>
21641
21642         PR sanitizer/81340
21643         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
21644         gimple_build_debug_bind.
21645
21646 2017-07-28  Richard Biener  <rguenther@suse.de>
21647
21648         PR tree-optimization/81502
21649         * match.pd: Add pattern combining BIT_INSERT_EXPR with
21650         BIT_FIELD_REF.
21651         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
21652         size/pos operands.
21653         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
21654         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
21655         for BIT_FIELD_REF args.
21656         * fold-const.c (make_bit_field_ref): Likewise.
21657         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
21658
21659 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
21660
21661         PR sanitizer/80998
21662         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
21663         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
21664         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
21665         Or it into SANITIZER_UNDEFINED.
21666         * ubsan.c: Include gimple-fold.h and varasm.h.
21667         (ubsan_expand_ptr_ifn): New function.
21668         (instrument_pointer_overflow): New function.
21669         (maybe_instrument_pointer_overflow): New function.
21670         (instrument_object_size): Formatting fix.
21671         (pass_ubsan::execute): Call instrument_pointer_overflow
21672         and maybe_instrument_pointer_overflow.
21673         * internal-fn.c (expand_UBSAN_PTR): New function.
21674         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
21675         * sanitizer.def (__ubsan_handle_pointer_overflow,
21676         __ubsan_handle_pointer_overflow_abort): New builtins.
21677         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
21678         * internal-fn.def (UBSAN_PTR): New internal function.
21679         * opts.c (sanitizer_opts): Add pointer-overflow.
21680         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
21681         * fold-const.c (build_range_check): Compute pointer range check in
21682         integral type if pointer arithmetics would be needed.  Formatting
21683         fixes.
21684
21685 2017-07-28  Martin Liska  <mliska@suse.cz>
21686
21687         PR sanitizer/81460
21688         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
21689         parameters that are of a variable-length.
21690
21691 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21692
21693         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
21694         rs6000/biarch64.h.
21695         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
21696         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21697         (CRT_CALL_STATIC_FUNCTION): Likewise.
21698         (ASM_DEFAULT_SPEC): New define.
21699         (ASM_SPEC32): Likewise.
21700         (ASM_SPEC64): Likewise.
21701         (ASM_SPEC_COMMON): Likewise.
21702         (ASM_SPEC): Likewise.
21703         (INVALID_64BIT): Likewise.
21704         (LINK_OS_DEFAULT_SPEC): Likewise.
21705         (LINK_OS_SPEC32): Likewise.
21706         (LINK_OS_SPEC64): Likewise.
21707         (POWERPC_LINUX): Likewise.
21708         (PTRDIFF_TYPE): Likewise.
21709         (RESTORE_FP_PREFIX): Likewise.
21710         (RESTORE_FP_SUFFIX): Likewise.
21711         (SAVE_FP_PREFIX): Likewise.
21712         (SAVE_FP_SUFFIX): Likewise.
21713         (SIZE_TYPE): Likewise.
21714         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
21715         (TARGET_64BIT): Likewise.
21716         (TARGET_64BIT): Likewise.
21717         (TARGET_AIX): Likewise.
21718         (WCHAR_TYPE_SIZE): Likewise.
21719         (WCHAR_TYPE): Undefine.
21720         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
21721         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
21722         (CPP_OS_RTEMS_SPEC): Delete.
21723         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
21724         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
21725         link_os_spec64.
21726         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
21727
21728 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
21729
21730         PR tree-optimization/81578
21731         * tree-parloops.c (build_new_reduction): Bail out if
21732         reduction_code isn't one of the standard OpenMP reductions.
21733         Move the details printing after that decision.
21734
21735 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21736
21737         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
21738         related to reload_in_progress.
21739         (splat_input_operand): Likewise.
21740         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
21741         Delete prototype.
21742         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
21743         field.
21744         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
21745         (TARGET_INSTANTIATE_DECLS): Likewise.
21746         (legitimate_indexed_address_p): Delete reload_in_progress code.
21747         (rs6000_debug_legitimate_address_p): Likewise.
21748         (rs6000_eliminate_indexed_memrefs): Likewise.
21749         (rs6000_emit_le_vsx_store): Likewise.
21750         (rs6000_emit_move_si_sf_subreg): Likewise.
21751         (rs6000_emit_move): Likewise.
21752         (register_to_reg_type): Likewise.
21753         (rs6000_pre_atomic_barrier): Likewise.
21754         (rs6000_machopic_legitimize_pic_address): Likewise.
21755         (rs6000_allocate_stack_temp): Likewise.
21756         (rs6000_address_for_fpconvert): Likewise.
21757         (rs6000_address_for_altivec): Likewise.
21758         (rs6000_secondary_memory_needed_rtx): Delete function.
21759         (rs6000_check_sdmode): Likewise.
21760         (rs6000_alloc_sdmode_stack_slot): Likewise.
21761         (rs6000_instantiate_decls): Likewise.
21762         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
21763         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
21764         Delete reload_in_progress.
21765         (*vec_reload_and_plus_<mptrsize>): Likewise.
21766         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
21767         (vsx_div_v2di): Likewise.
21768         (vsx_udiv_v2di): Likewise.
21769
21770 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21771
21772         * config/rs6000/rs6000.opt (mlra): Replace with stub.
21773         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
21774         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
21775         (rs6000_debug_reg_global): Delete print of LRA status.
21776         (rs6000_option_override_internal): Delete dead LRA related code.
21777         (rs6000_lra_p): Delete function.
21778         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
21779
21780 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21781
21782         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
21783         * config/riscv/rtems.h: New file.
21784
21785 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21786             Sudakshina Das  <sudi.das@arm.com>
21787
21788         * config/aarch64/aarch64.md
21789         (define_split for and<mode>3nr_compare): Move
21790         non aarch64_logical_operand to a register.
21791         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
21792         register immediate operand to a register.
21793         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
21794
21795 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21796
21797         PR middle-end/81564
21798         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
21799
21800 2017-07-27  Richard Biener  <rguenther@suse.de>
21801
21802         PR tree-optimization/81573
21803         PR tree-optimization/81494
21804         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
21805         multi defuse cycle case.
21806
21807 2017-07-27  Richard Biener  <rguenther@suse.de>
21808
21809         PR tree-optimization/81571
21810         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
21811         PHIs.
21812
21813 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
21814
21815         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
21816         earlier and only if MASK_FPU is set.  Adjust formatting.
21817
21818 2017-07-27  Martin Liska  <mliska@suse.cz>
21819
21820         * opt-functions.awk: Add validation of value of Init.
21821         * optc-gen.awk: Pass new argument.
21822
21823 2017-07-27  Martin Liska  <mliska@suse.cz>
21824
21825         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
21826         Fix wrong condition.
21827
21828 2017-07-27  Martin Liska  <mliska@suse.cz>
21829
21830         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
21831         BBs and edges seen by autoFDO.
21832
21833 2017-07-27  Richard Biener  <rguenther@suse.de>
21834
21835         PR tree-optimization/81502
21836         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
21837         with incompatible but same sized type.
21838         (execute_update_addresses_taken): Likewise.
21839
21840 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
21841
21842         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
21843         flag_tree_loop_vectorize rather than flag_tree_vectorize.
21844
21845 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21846
21847         PR target/81534
21848         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
21849         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
21850         Change s_operand to memory_operand.
21851
21852 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
21853
21854         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
21855         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
21856         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
21857         Emit instructions rather than returning an expression.  Handle TFmode
21858         and KFmode by casting to TImode.
21859         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
21860         (rs6000_emit_le_vsx_store): Likewise.
21861         * config/rs6000/vsx.md (VSX_TI): New iterator.
21862         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
21863         (*vsx_le_undo_permute_<mode>): Likewise.
21864         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
21865         emit the split sequence.
21866         (*vsx_le_perm_store_<mode>): Likewise.
21867
21868 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
21869
21870         PR tree-optimization/81555
21871         PR tree-optimization/81556
21872         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
21873         if true, force CHANGED for the recursive invocation.
21874         (reassociate_bb): Remember original length of ops array, pass
21875         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
21876
21877         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
21878         attributes for noipa attribute.  For naked attribute use
21879         lookup_attribute first before lookup_attribute_spec.
21880         * final.c (rest_of_handle_final): Disable IPA RA for functions with
21881         noipa attribute.
21882         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
21883         for functions with noipa attribute.
21884         (cgraph_externally_visible_p): Return true for functions with noipa
21885         attribute.
21886         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
21887         for functions with noipa attribute.
21888         * doc/extend.texi: Document noipa function attribute.
21889         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
21890         also for functions with noipa attribute.
21891         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
21892
21893 2017-07-26  Andrew Pinski  <apinski@cavium.com>
21894
21895         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
21896         vec_unalign_load_cost and vec_unalign_store_cost.
21897
21898 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
21899
21900         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
21901         -mvsx-small-integer option.
21902         (ISA_3_0_MASKS_IEEE): Likewise.
21903         (OTHER_VSX_VECTOR_MASKS): Likewise.
21904         (POWERPC_MASKS): Likewise.
21905         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
21906         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
21907         code, only testing for DImode being allowed in non-VSX floating
21908         point registers.
21909         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
21910         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
21911         another VSX test.
21912         (rs6000_option_override_internal): Delete -mvsx-small-integer.
21913         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
21914         TARGET_P8_VECTOR test.
21915         (rs6000_secondary_reload_simple_move): Likewise.
21916         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
21917         since TARGET_P9_VECTOR was already tested.
21918         (rs6000_opt_masks): Remove -mvsx-small-integer.
21919         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
21920         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21921         used.
21922         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
21923         test for TARGET_VEXTRACTUB was used, and that uses
21924         TARGET_P9_VECTOR.
21925         (p9 extract splitter): Likewise.
21926         (vsx_extract_<mode>_di_p9): Likewise.
21927         (vsx_extract_<mode>_store_p9): Likewise.
21928         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
21929         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
21930         the elimination of TARGET_VSX_SMALL_INTEGER.
21931         (vsx_extract_<mode>_p8): Likewise.
21932         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
21933         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
21934         (vsx_set_<mode>_p9): Likewise.
21935         (vsx_set_v4sf_p9): Likewise.
21936         (vsx_set_v4sf_p9_zero): Likewise.
21937         (vsx_insert_extract_v4sf_p9): Likewise.
21938         (vsx_insert_extract_v4sf_p9_2): Likewise.
21939         * config/rs6000/rs6000.md (sign extend splitter): Change
21940         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
21941         (floatsi<mode>2_lfiwax_mem): Likewise.
21942         (floatunssi<mode>2_lfiwzx_mem): Likewise.
21943         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
21944         since a test for TARGET_P9_VECTOR was used.
21945         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21946         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
21947         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21948         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
21949         TARGET_P8_VECTOR test.
21950         (fix_trunc<mode>si2_stfiwx): Likewise.
21951         (fix_trunc<mode>si2_internal): Likewise.
21952         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
21953         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21954         used.
21955         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
21956         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
21957         TARGET_P8_VECTOR test.
21958         (fixuns_trunc<mode>si2_stfiwx): Likewise.
21959         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
21960         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21961         used.
21962         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
21963         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
21964         since a test for TARGET_P9_VECTOR was used.
21965         (splitter for loading small constants): Likewise.
21966
21967 2017-07-26  Andrew Pinski  <apinski@cavium.com>
21968
21969         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
21970         vec_fp_stmt_cost.
21971
21972 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
21973
21974         PR target/81563
21975         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
21976         (fp_valid_at): Likewise.
21977
21978 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
21979
21980         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
21981         (qdf24xx_addrcost_table): Likewise.
21982         (cortexa57_tunings): Update to use generic_branch_cost.
21983         (cortexa72_tunings): Likewise.
21984         (cortexa73_tunings): Likewise.
21985         (qdf24xx_tunings): Likewise.
21986
21987 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
21988
21989         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
21990         (thunderx2t99_branch_cost): Likewise.
21991         (cortexa35_tunings): Update to use generic_branch_cost.
21992         (cortexa53_tunings): Likewise.
21993         (cortexa57_tunings): Likewise.
21994         (cortexa72_tunings): Likewise.
21995         (cortexa73_tunings): Likewise.
21996         (thunderx2t99_tunings): Likewise.
21997
21998 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21999
22000         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
22001         (sparc_option_override): Honour MASK_FSMULD.
22002         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
22003         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
22004         * config/sparc/sparc.opt (mfsmuld): New option.
22005         * doc/invoke.texi (mfsmuld): Document option.
22006
22007 2017-07-26  Marek Polacek  <polacek@redhat.com>
22008
22009         PR middle-end/70992
22010         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
22011
22012 2017-07-26  Richard Biener  <rguenther@suse.de>
22013
22014         * gimple-match-head.c (do_valueize): Return OP if valueize
22015         returns NULL_TREE.
22016         (get_def): New helper to get at the def stmt of a SSA name
22017         if valueize allows.
22018         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
22019         do_valueize to get at the def stmt.
22020         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
22021
22022 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
22023
22024         PR middle-end/46932
22025         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
22026
22027 2017-07-26  Martin Liska  <mliska@suse.cz>
22028
22029         PR sanitize/81186
22030         * function.c (expand_function_start): Make expansion of
22031         nonlocal_goto_save_area after parm_birth_insn.
22032
22033 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22034
22035         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
22036         from all CPU target flags enable members.
22037
22038 2017-07-26  Richard Biener  <rguenther@suse.de>
22039
22040         * genmatch.c (dt_simplify::gen): Make iterator vars const.
22041         (decision_tree::gen): Make 'type' const.
22042         (write_predicate): Likewise.
22043
22044 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22045
22046         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
22047         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
22048         (rs6000_option_override_internal): Likewise.
22049         (rs6000_expand_vector_set): Likewise.
22050         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
22051         (TARGET_UPPER_REGS_SF): Likewise.
22052         (TARGET_UPPER_REGS_DI): Likewise.
22053         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
22054         (TARGET_DIRECT_MOVE_64BIT): Likewise.
22055         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
22056         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22057         (Splitters for DI constants in Altivec registers): Likewise.
22058         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
22059         (vsx_set_v4sf_p9): Likewise.
22060         (vsx_set_v4sf_p9_zero): Likewise.
22061         (vsx_insert_extract_v4sf_p9): Likewise.
22062         (vsx_insert_extract_v4sf_p9_2): Likewise.
22063
22064 2017-07-25  Carl Love  <cel@us.ibm.com>
22065
22066         * doc/extend.texi: Update the built-in documentation file for the
22067         existing built-in functions
22068         vector signed char vec_cnttz (vector signed char);
22069         vector unsigned char vec_cnttz (vector unsigned char);
22070         vector signed short vec_cnttz (vector signed short);
22071         vector unsigned short vec_cnttz (vector unsigned short);
22072         vector signed int vec_cnttz (vector signed int);
22073         vector unsigned int vec_cnttz (vector unsigned int);
22074         vector signed long long vec_cnttz (vector signed long long);
22075         vector unsigned long long vec_cnttz (vector unsigned long long);
22076
22077 2017-07-25  Andrew Pinski  <apinski@cavium.com>
22078
22079         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
22080         accesses where the use is for the first operand of a BIT_INSERT.
22081
22082 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22083
22084         PR bootstrap/81521
22085         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22086         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22087
22088 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22089
22090         * config/i386/gstabs.h: Delete.
22091         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
22092
22093 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
22094
22095         * config/i386/i386.c (ix86_decompose_address): Do not check for
22096         register RTX when looking at index_reg or base_reg.
22097         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
22098
22099 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
22100
22101         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
22102         to update EH info here.
22103
22104 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22105
22106         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
22107
22108 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22109
22110         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
22111
22112 2017-07-25  Torsten Duwe  <duwe@suse.de>
22113
22114         * common.opt: Introduce -fpatchable-function-entry
22115         command line option, and its variables function_entry_patch_area_size
22116         and function_entry_patch_area_start.
22117         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
22118         including a two-value parser.
22119         * target.def (print_patchable_function_entry): New target hook.
22120         * targhooks.h (default_print_patchable_function_entry): New function.
22121         * targhooks.c (default_print_patchable_function_entry): Likewise.
22122         * toplev.c (process_options): Switch off IPA-RA if
22123         patchable function entries are being generated.
22124         * varasm.c (assemble_start_function): Look at the
22125         patchable-function-entry command line switch and current
22126         function attributes and maybe generate NOP instructions by
22127         calling the print_patchable_function_entry hook.
22128         * doc/extend.texi: Document patchable_function_entry attribute.
22129         * doc/invoke.texi: Document -fpatchable_function_entry
22130         command line option.
22131         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
22132         New target hook.
22133         * doc/tm.texi: Re-generate.
22134
22135 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
22136
22137         PR target/81532
22138         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
22139         TARGET_AVX512DQ rather than TARGET_AVX512BW.
22140
22141 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
22142
22143         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
22144
22145 2017-07-25  Richard Biener  <rguenther@suse.de>
22146
22147         PR tree-optimization/81455
22148         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
22149         not walk in cycles when looking for guards.
22150
22151 2017-07-25  Richard Biener  <rguenther@suse.de>
22152
22153         PR tree-optimization/81529
22154         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
22155         when optimizing backedge uses.
22156
22157 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
22158
22159         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
22160         character for AIX.
22161         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
22162         to dl_section_ref.  On AIX, append an expression to subtract
22163         the size of the section length to dl_section_ref.
22164
22165 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
22166
22167         * configure.ac: If any of the config.* scripts fail, exit 1.
22168         * configure: Regenerate.
22169
22170 2017-07-25  Richard Biener  <rguenther@suse.de>
22171
22172         PR middle-end/81546
22173         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
22174         of immediate uses, be more verbose on errors.
22175
22176 2017-07-25  Richard Biener  <rguenther@suse.de>
22177
22178         PR tree-optimization/81510
22179         * tree-vect-loop.c (vect_is_simple_reduction): When the
22180         reduction stmt is not inside the loop bail out.
22181
22182 2017-07-25  Richard Biener  <rguenther@suse.de>
22183
22184         PR tree-optimization/81303
22185         * tree-vect-loop-manip.c (vect_loop_versioning): Build
22186         profitability check against LOOP_VINFO_NITERSM1.
22187
22188 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22189
22190         * domwalk.c (cmp_bb_postorder): Simplify.
22191         (sort_bbs_postorder): New function.  Use it...
22192         (dom_walker::walk): ...here to optimize common cases.
22193
22194 2017-07-25  Martin Liska  <mliska@suse.cz>
22195
22196         PR ipa/81520
22197         * ipa-visibility.c (function_and_variable_visibility): Make the
22198         redirection just on target that supports aliasing.
22199         Fix GNU coding style.
22200
22201 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22202
22203         PR libgcc/61152
22204         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
22205         Format changes.
22206         * config/arm/rtems.h: Likewise.
22207         * config/bfin/rtems.h: Likewise.
22208         * config/i386/rtemself.h: Likewise.
22209         * config/lm32/rtems.h: Likewise.
22210         * config/m32c/rtems.h: Likewise.
22211         * config/m68k/rtemself.h: Likewise.
22212         * config/microblaze/rtems.h: Likewise.
22213         * config/mips/rtems.h: Likewise.
22214         * config/moxie/rtems.h: Likewise.
22215         * config/nios2/rtems.h: Likewise.
22216         * config/powerpcspe/rtems.h: Likewise.
22217         * config/rs6000/rtems.h: Likewise.
22218         * config/rtems.h: Likewise.
22219         * config/sh/rtems.h: Likewise.
22220         * config/sh/rtemself.h: Likewise.
22221         * config/sparc/rtemself.h: Likewise.
22222
22223 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22224
22225         PR 81487
22226         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
22227         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
22228         * tree-ssa-structalias.c (alias_get_name): Same.
22229
22230 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
22231
22232         PR target/81414
22233         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
22234         instructions if no du chain is found.
22235
22236 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22237
22238         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
22239
22240 2017-07-25  Richard Biener  <rguenther@suse.de>
22241
22242         PR middle-end/81505
22243         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
22244         sticky.
22245
22246 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22247
22248         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
22249         upper-regs options.
22250         (ISA_2_7_MASKS_SERVER): Likewise.
22251         (ISA_3_0_MASKS_IEEE): Likewise.
22252         (OTHER_P8_VECTOR_MASKS): Likewise.
22253         (OTHER_VSX_VECTOR_MASKS): Likewise.
22254         (POWERPC_MASKS): Likewise.
22255         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
22256         duplicate list of options.
22257         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
22258         explicit -mupper-regs options.
22259         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
22260         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
22261         alias for -mupper-regs-df.
22262         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
22263         (rs6000_init_hard_regno_mode_ok): Likewise.
22264         (rs6000_option_override_internal): Likewise.
22265         (rs6000_opt_masks): Likewise.
22266         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
22267         options in terms of whether -mvsx or -mpower8-vector was used.
22268         (TARGET_UPPER_REGS_DI): Likewise.
22269         (TARGET_UPPER_REGS_SF): Likewise.
22270         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
22271         -mupper-regs-* options.
22272
22273 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22274
22275         * passes.c (emergency_dump_function): Print some empty lines and a
22276         header before the RTL dump.
22277
22278 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22279
22280         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
22281
22282 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
22283
22284         PR target/79041
22285         * config/aarch64/aarch64.c (aarch64_classify_symbol):
22286         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
22287
22288 2017-07-24  Carl Love  <cel@us.ibm.com>
22289
22290         * config/rs6000/rs6000-c.c: Add support for built-in functions
22291         vector float vec_extract_fp32_from_shorth (vector unsigned short);
22292         vector float vec_extract_fp32_from_shortl (vector unsigned short);
22293         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
22294         vec_extract_fp_from_shortl): Add defines for the two builtins.
22295         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
22296         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
22297         new builtins.
22298         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
22299         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
22300         * doc/extend.texi: Update the built-in documentation file for the
22301         new built-in function.
22302
22303 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
22304
22305         PR bootstrap/81521
22306         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
22307         documentation.
22308         * doc/generic.texi: Likewise.
22309         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22310         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22311
22312 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
22313
22314         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
22315         (aarch64_mls_elt_merge<mode>): Likewise.
22316
22317 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
22318
22319         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
22320         having __cxa_atexit.
22321
22322 2017-07-23  Michael Collison  <michael.collison@arm.com>
22323
22324         * config/arm/arm.c (arm_option_override): Deprecate
22325         use of -mstructure-size-boundary.
22326         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
22327         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
22328
22329 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22330
22331         PR target/80695
22332         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
22333         Reduce cost estimate for direct moves.
22334
22335 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
22336
22337         PR target/80569
22338         * config/i386/i386.c (ix86_option_override_internal): Disable
22339         BMI, BMI2 and TBM instructions for -m16.
22340
22341 2017-07-21  Carl Love  <cel@us.ibm.com>
22342
22343         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22344         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22345         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22346         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22347         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22348         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22349         VMULOSW): New enum "unspec" values.
22350         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22351         altivec_vmulosw): New patterns.
22352         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22353         VMULOSW): Add definitions.
22354
22355 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
22356
22357         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
22358         (qdf24xx): Likewise.
22359         * config/aarch64/aarch64-options-extensions.def (rdma); New.
22360         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
22361         (AARCH64_FL_V8_1): Renumber.
22362         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
22363         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
22364         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
22365         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
22366         rdma to feature modifiers list.
22367
22368 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
22369
22370         PR middle-end/56727
22371         * ipa-visibility (function_and_variable_visibility): Convert
22372         recursive PLT call to direct call if appropriate.
22373
22374 2017-07-21  Andrew Pinski  <apinski@cavium.com>
22375
22376         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
22377         operand 1 to see if the types precision matches.
22378         * fold-const.c (operand_equal_p): Likewise.
22379
22380 2017-07-21  Richard Biener  <rguenther@suse.de>
22381
22382         PR tree-optimization/81303
22383         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
22384         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
22385         (vect_peeling_hash_get_lowest_cost): Adjust.
22386         (vect_enhance_data_refs_alignment): Likewise.  Use
22387         vect_get_peeling_costs_all_drs to compute the penalty for no
22388         peeling to match up costs.
22389
22390 2017-07-21  Richard Biener  <rguenther@suse.de>
22391
22392         PR tree-optimization/81500
22393         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
22394         we didn't identify a reduction path.
22395
22396 2017-07-21  Tom de Vries  <tom@codesourcery.com>
22397             Cesar Philippidis  <cesar@codesourcery.com>
22398
22399         PR gcov-profile/81442
22400         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
22401         probabilities.
22402
22403 2017-07-21  Tom de Vries  <tom@codesourcery.com>
22404
22405         PR lto/81430
22406         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
22407         function.
22408         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
22409         nvptx_override_options_after_change.
22410
22411 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
22412
22413         * dwarf2out.c (output_file_names): Avoid double testing for
22414         dwarf_version >= 5.
22415
22416 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
22417
22418         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
22419
22420 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
22421
22422         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
22423         hot/cold regions.
22424         (try_crossjump_to_edge): Do not punt on partitioned functions.
22425
22426 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
22427
22428         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
22429         Put all BBs reachable only via paths crossing cold region to cold
22430         region.
22431         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
22432
22433 2016-07-21  Richard Biener  <rguenther@suse.de>
22434
22435         PR tree-optimization/81303
22436         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
22437         into account prologue and epilogue iterations when raising
22438         min_profitable_iters to sth at least covering one vector iteration.
22439
22440 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
22441
22442         * config/arm/arm.c (arm_test_cpu_arch_dat):
22443         Check for overlap.
22444
22445 2017-07-20  Nathan Sidwell  <nathan@acm.org>
22446
22447         Remove TYPE_METHODS.
22448         * tree.h (TYPE_METHODS): Delete.
22449         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
22450         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
22451         (dbxout_type_methods): Scan TYPE_FIELDS.
22452         (dbxout_type): Don't check TYPE_METHODS here.
22453         * function.c (use_register_for_decl): Always ignore register for
22454         class types when not optimizing.
22455         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
22456         * tree.c (free_lang_data_in_type): Stitch out member functions and
22457         templates from TYPE_FIELDS.
22458         (build_distinct_type_copy, verify_type_variant,
22459         verify_type): Member fns are on TYPE_FIELDS.
22460         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
22461         * tree-pretty-print.c (dump_generic_node): Likewise.
22462
22463 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
22464
22465         PR target/80846
22466         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
22467         V2TImode and V4TImode.
22468         (ix86_expand_vector_extract): Likewise.
22469         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
22470         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
22471         (ssescalarmode): Handle V4TImode and V2TImode.
22472         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
22473         (*vec_extractv2ti, *vec_extractv4ti): New insns.
22474         (VEXTRACTI128_MODE): New mode iterator.
22475         (splitter for *vec_extractv?ti first element): New.
22476         (VEC_INIT_MODE): New mode iterator.
22477         (vec_init<mode>): Consolidate 3 expanders into one using
22478         VEC_INIT_MODE mode iterator.
22479
22480 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
22481
22482         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
22483         non_spilled_static_chain_regno_p.
22484
22485 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
22486
22487         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
22488
22489 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
22490
22491         * bb-reorder.c (connect_traces): Allow copying of blocks within
22492         single partition.
22493
22494 2017-07-20  Richard Biener  <rguenther@suse.de>
22495
22496         * gimple.h (gimple_phi_result): Add gphi * overload.
22497         (gimple_phi_result_ptr): Likewise.
22498         (gimple_phi_arg): Likewise.  Adjust index assert to only
22499         allow actual argument accesses rather than all slots available
22500         by capacity.
22501         (gimple_phi_arg_def): Add gphi * overload.
22502         * tree-phinodes.c (make_phi_node): Initialize only actual
22503         arguments.
22504         (resize_phi_node): Clear memory not covered by old node,
22505         do not initialize excess argument slots.
22506         (reserve_phi_args_for_new_edge): Initialize new argument slot
22507         completely.
22508
22509 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
22510
22511         PR tree-optimization/81388
22512         Revert r238585:
22513         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
22514
22515         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
22516         by removing computation of may_be_zero.
22517
22518 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22519             Tom de Vries  <tom@codesourcery.com>
22520
22521         PR middle-end/81030
22522         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
22523         when gimple level profile disagrees with what RTL expander did.
22524
22525 2017-07-20  Richard Biener  <rguenther@suse.de>
22526
22527         PR tree-optimization/61171
22528         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
22529         (vect_analyze_stmt): Add slp instance parameter.
22530         (vectorizable_reduction): Likewise.
22531         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
22532         (vect_is_simple_reduction): Deal with chains not detected
22533         as SLP reduction chain, specifically not properly associated
22534         chains containing a mix of plus/minus.
22535         (get_reduction_op): Remove.
22536         (get_initial_defs_for_reduction): Simplify, pass in whether
22537         this is a reduction chain, pass in the SLP node for the PHIs.
22538         (vect_create_epilog_for_reduction): Get the SLP instance as
22539         arg and adjust.
22540         (vectorizable_reduction): Get the SLP instance as arg.
22541         During analysis remember the SLP node with the PHIs in the
22542         instance.  Simplify getting at the vectorized reduction PHIs.
22543         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
22544         through SLP instance.
22545         (vect_slp_analyze_operations): Likewise.
22546         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
22547         (vect_transform_stmt): Likewise.
22548
22549 2017-07-20  Tom de Vries  <tom@codesourcery.com>
22550
22551         PR tree-optimization/81489
22552         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
22553         read of phi arg location to before loop that modifies phi.
22554
22555 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
22556
22557         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
22558         New pattern.
22559
22560 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22561
22562         PR middle-end/81331
22563         * except.c (execute): Fix ordering issue.
22564
22565 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
22566
22567         PR rtl-optimization/81423
22568         * combine.c (make_compound_operation_int): Don't try to optimize
22569         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
22570
22571 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
22572
22573         PR rtl-optimization/81423
22574         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
22575         with a constant that is -1 in the truncated to mode.
22576
22577 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22578
22579         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
22580         (determine_unlikely_bbs): ... here.
22581         * predict.h (propagate_unlikely_bbs_forward): Declare.
22582         * cfgexpand.c (pass_expand::execute): Use it.
22583         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
22584         unlikely edges.
22585         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
22586         propagate_unlikely_bbs_forward.
22587
22588 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22589
22590         PR middle-end/81331
22591         * except.c (maybe_add_nop_after_section_switch): New function.
22592         (execute): Use it.
22593
22594 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22595
22596         * gimple.h (gimple_phi_set_arg): Make assert more strict.
22597
22598 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22599
22600         * gimple.h (gimple_phi_arg): Make assert more strict.
22601
22602 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
22603
22604         * config.gcc (powerpc*-*-*): Add mmintrin.h.
22605         * config/rs6000/mmintrin.h: New file.
22606         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
22607
22608 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
22609
22610         PR tree-optimization/81346
22611         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
22612
22613 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22614
22615         * config/nvptx/nvptx.md (VECIM): Add V2DI.
22616
22617 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22618
22619         * config/nvptx/nvptx-modes.def: Add V2DImode.
22620         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
22621         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
22622         (nvptx_output_mov_insn): Handle lack of mov.b128.
22623         (nvptx_print_operand): Handle 'H' and 'L' codes.
22624         (nvptx_vector_mode_supported): Allow V2DImode.
22625         (nvptx_preferred_simd_mode): New function.
22626         (nvptx_data_alignment): New function.
22627         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
22628         nvptx_preferred_simd_mode.
22629         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
22630         64 to 128 bits.
22631         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
22632
22633 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22634
22635         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
22636         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
22637         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
22638         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
22639         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
22640         (mov<VECIM>_insn): New define_insn.
22641         (define_expand "mov<VECIM>): New define_expand.
22642
22643 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22644
22645         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
22646
22647 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
22648
22649         PR tree-optimization/81346
22650         * fold-const.h (fold_div_compare, range_check_type): Declare.
22651         * fold-const.c (range_check_type): New function.
22652         (build_range_check): Use range_check_type.
22653         (fold_div_compare): No longer static, rewritten into
22654         a match.pd helper function.
22655         (fold_comparison): Don't call fold_div_compare here.
22656         * match.pd (X / C1 op C2): New optimization using fold_div_compare
22657         as helper function.
22658
22659 2017-07-19  Nathan Sidwell  <nathan@acm.org>
22660
22661         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
22662         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
22663         * tree.c (find_decls_types_r, verify_type): Use
22664         TYPE_{MIN,MAX}_VALUE_RAW.
22665         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
22666         (hash_tree): Likewise.
22667         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
22668         Likewise.
22669         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
22670         Likewise.
22671
22672 2017-07-18  Tom de Vries  <tom@codesourcery.com>
22673
22674         PR middle-end/81464
22675         * omp-expand.c (expand_omp_for_static_chunk): Handle
22676         equal-argument loop exit phi.
22677
22678 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
22679
22680         PR target/81471
22681         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
22682         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
22683         operand 2 predicate.
22684         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
22685         operand 2 predicate.
22686         (ror,rol -> rorx splitters): Use const_int_operand as
22687         operand 2 predicate.
22688
22689 2017-06-18  Richard Biener  <rguenther@suse.de>
22690
22691         PR tree-optimization/81410
22692         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
22693         the gap in the ! slp_perm SLP case after each group.
22694
22695 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22696
22697         PR middle-end/81463
22698         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
22699         again.
22700
22701 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22702
22703         PR middle-end/81462
22704         * predict.c (set_even_probabilities): Cleanup; do not affect
22705         probabilities that are already known.
22706         (combine_predictions_for_bb): Call even when count is set.
22707
22708 2017-07-18  Nathan Sidwell  <nathan@acm.org>
22709
22710         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22711         TYPE_MAX_VALUE.
22712
22713 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
22714
22715         PR target/81408
22716         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
22717         optimization for loop niter analysis.
22718
22719 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
22720
22721         PR target/81473
22722         * config/avr/avr.c (avr_optimize_casesi): Don't use
22723         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
22724
22725 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22726
22727         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
22728         body_cost_vec from _vect_peel_extended_info.
22729         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
22730         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
22731         npeel.
22732
22733 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
22734
22735         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
22736
22737 2017-07-18  Richard Biener  <rguenther@suse.de>
22738
22739         PR tree-optimization/80620
22740         PR tree-optimization/81403
22741         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
22742         info when re-using a VN table entry.
22743
22744 2017-07-18  Richard Biener  <rguenther@suse.de>
22745
22746         PR tree-optimization/81418
22747         * tree-vect-loop.c (vectorizable_reduction): Properly compute
22748         vectype_in.  Verify that with lane-reducing reduction operations
22749         we have a single def-use cycle.
22750
22751 2017-07-17  Carl Love  <cel@us.ibm.com>
22752
22753         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
22754
22755         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22756         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22757         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22758         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22759         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22760         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22761         VMULOSW): New enum "unspec" values.
22762         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
22763         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
22764         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22765         altivec_vmulosw): New patterns.
22766         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22767         VMULOSW): Add definitions.
22768
22769 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
22770
22771         * config/alpha/alpha.c: Include predict.h.
22772
22773 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
22774
22775         * tree-vrp.c (compare_assert_loc): Fix comparison function
22776         to return predictable results.
22777
22778 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22779
22780         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
22781         option.
22782         (subdi3): Likewise.
22783         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
22784         * doc/invoke.texi (mexpand-adddi): Update text.
22785
22786 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22787
22788         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
22789         that also clobbers the CC register. The old expand code is moved
22790         to ...
22791         (*arc_clzsi2): ... here.
22792         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
22793         the CC register. The old expand code is moved to ...
22794         (arc_ctzsi2): ... here.
22795
22796 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22797
22798         * config/arc/arc.opt (mindexed-loads): Use initial value
22799         TARGET_INDEXED_LOADS_DEFAULT.
22800         (mauto-modify-reg): Use initial value
22801         TARGET_AUTO_MODIFY_REG_DEFAULT.
22802         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
22803         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
22804         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
22805         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
22806
22807 2017-07-17  Martin Liska  <mliska@suse.cz>
22808
22809         PR sanitizer/81302
22810         * opts.c (finish_options): Do not allow -fgnu-tm
22811         w/ -fsanitize={kernel-,}address.  Say sorry.
22812
22813 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22814
22815         PR target/81369
22816         * tree-loop-distribution.c (classify_partition): Only assert on
22817         numer of iterations.
22818         (merge_dep_scc_partitions): Delete prameter.  Update function call.
22819         (distribute_loop): Remove code handling loop with unknown niters.
22820         (pass_loop_distribution::execute): Skip loop with unknown niters.
22821
22822 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22823
22824         PR target/81369
22825         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
22826         function sort_partitions_by_post_order.
22827
22828 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22829
22830         PR tree-optimization/81374
22831         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
22832         the max index of basic blocks, rather than number of basic blocks.
22833
22834 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22835
22836         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
22837         proto.
22838         (arc_legitimate_pic_operand_p): Likewise.
22839         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
22840         function.
22841         (arc_needs_pcl_p): Likewise.
22842         (arc_legitimate_pc_offset_p): Likewise.
22843         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
22844         function is also used in constrains.md.
22845         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
22846         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
22847         PLUS.  Only return true/false in known cases, otherwise assert.
22848         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
22849         is already called in arc_legitimate_constant_p.
22850         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
22851         pic addresses.
22852         (LEGITIMATE_PIC_OPERAND_P): Use
22853         arc_raw_symbolic_reference_mentioned_p function.
22854         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
22855         function.
22856         (Cal): Likewise.
22857         (C32): Likewise.
22858
22859 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22860         Andrew Burgess  <andrew.burgess@embecosm.com>
22861
22862         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
22863         (arc_return_address_register): New function.
22864         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
22865         (arc_handle_fndecl_attribute): Add naked attribute.
22866         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
22867         (TARGET_WARN_FUNC_RETURN): Likewise.
22868         (arc_allocate_stack_slots_for_args): New function.
22869         (arc_warn_func_return): Likewise.
22870         (machine_function): Change type fn_type.
22871         (arc_compute_function_type): Consider new naked function type,
22872         change function return type.
22873         (arc_must_save_register): Adapt to handle new
22874         arc_compute_function_type's return type.
22875         (arc_expand_prologue): Likewise.
22876         (arc_expand_epilogue): Likewise.
22877         (arc_return_address_regs): Delete.
22878         (arc_return_address_register): New function.
22879         (arc_epilogue_uses): Use above function.
22880         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
22881         (arc_function_type): Change encoding, add naked type.
22882         (ARC_INTERRUPT_P): Change to handle the new encoding.
22883         (ARC_FAST_INTERRUPT_P): Likewise.
22884         (ARC_NORMAL_P): Define.
22885         (ARC_NAKED_P): Likewise.
22886         (arc_compute_function_type): Delete prototype.
22887         * config/arc/arc.md (in_ret_delay_slot): Use
22888         arc_return_address_register function.
22889         (simple_return): Likewise.
22890         (p_return_i): Likewise.
22891
22892 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22893
22894         PR tree-optimization/81428
22895         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
22896         can't be built for those types.
22897
22898 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
22899
22900         Remove stuff dead since r239246.
22901
22902         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
22903         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
22904         (avr_inform_devices): Remove dead stuff.
22905
22906 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
22907
22908         * config/arm/arm_neon.h: Fix softp typo.
22909
22910 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22911
22912         PR tree-optimization/81365
22913         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
22914         aggregate moves onto bb predecessor edges, make sure there are no
22915         loads that could alias the lhs in between the start of bb and the
22916         loads from *phi.
22917
22918 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
22919
22920         PR 80929
22921         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
22922         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
22923         [LSHIFTRT, outer_code = TRUNCATE]: Same.
22924
22925 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22926
22927         PR tree-optimization/81396
22928         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
22929         (init_symbolic_number): Initialize it to 1.
22930         (perform_symbolic_merge): Add n_ops from both operands into the new
22931         n_ops.
22932         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
22933         without base_addr as useless if they need more than one operation.
22934         (bswap_replace): Handle !bswap case for NULL base_addr.
22935
22936 2017-07-17  Tom de Vries  <tom@codesourcery.com>
22937
22938         PR target/81069
22939         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
22940         as possible.
22941
22942 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22943
22944         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
22945         conditional builtin define __FIX_LEON3FT_B2BST.
22946
22947 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
22948
22949         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
22950         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
22951         with -mfix-ut700.
22952
22953 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
22954
22955         PR rtl-optimization/81424
22956         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
22957         to remove potential trapping from operands if -fnon-call-exceptions.
22958
22959 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22960
22961         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
22962         profile_proability for scalling.
22963         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
22964
22965 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22966
22967         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
22968
22969 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22970
22971         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
22972         fixpoint arithmetics.
22973
22974 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22975
22976         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
22977         fixpoint arithmetics.
22978
22979 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22980
22981         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
22982         fixpoint arithmetics.
22983
22984 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22985
22986         * profile-count.h (profile_probability::from_reg_br_prob_note,
22987         profile_probability::to_reg_br_prob_note): New functions.
22988         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
22989         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
22990         * predict.c (probability_reliable_p): Update.
22991         (edge_probability_reliable_p): Update.
22992         (br_prob_note_reliable_p): Update.
22993         (invert_br_probabilities): Update.
22994         (add_reg_br_prob_note): New function.
22995         (combine_predictions_for_insn): Update.
22996         * asan.c (asan_clear_shadow): Update.
22997         * cfgbuild.c (compute_outgoing_frequencies): Update.
22998         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
22999         (update_br_prob_note): Update.
23000         (rtl_verify_edges): Update.
23001         (purge_dead_edges): Update.
23002         (fixup_reorder_chain): Update.
23003         * emit-rtl.c (try_split): Update.
23004         * ifcvt.c (cond_exec_process_insns): Update.
23005         (cond_exec_process_if_block): Update.
23006         (dead_or_predicable): Update.
23007         * internal-fn.c (expand_addsub_overflow): Update.
23008         (expand_neg_overflow): Update.
23009         (expand_mul_overflow): Update.
23010         * loop-doloop.c (doloop_modify): Update.
23011         * loop-unroll.c (compare_and_jump_seq): Update.
23012         * optabs.c (emit_cmp_and_jump_insn_1): Update.
23013         * predict.h: Update.
23014         * reorg.c (mostly_true_jump): Update.
23015         * rtl.h: Update.
23016         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
23017         * config/alpha/alpha.c (emit_unlikely_jump): Update.
23018         * config/arc/arc.c: (emit_unlikely_jump): Update.
23019         * config/arm/arm.c: (emit_unlikely_jump): Update.
23020         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
23021         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
23022         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
23023         (ix86_print_operand): Update.
23024         (ix86_split_fp_branch): Update.
23025         (predict_jump): Update.
23026         * config/ia64/ia64.c (ia64_print_operand): Update.
23027         * config/mmix/mmix.c (mmix_print_operand): Update.
23028         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
23029         (rs6000_expand_split_stack_prologue): Update.
23030         * config/rs6000/rs6000.c: Update.
23031         * config/s390/s390.c (s390_expand_vec_strlen): Update.
23032         (s390_expand_vec_movstr): Update.
23033         (s390_expand_cs_tdsi): Update.
23034         (s390_expand_split_stack_prologue): Update.
23035         * config/sh/sh.c (sh_print_operand): Update.
23036         (expand_cbranchsi4): Update.
23037         (expand_cbranchdi4): Update.
23038         * config/sparc/sparc.c (output_v9branch): Update.
23039         * config/spu/spu.c (get_branch_target): Update.
23040         (ea_load_store_inline): Update.
23041         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
23042         * config/tilepro/tilepro.c: Update.
23043
23044 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23045
23046         * gimplify.c (mostly_copy_tree_r): Revert latest change.
23047         (gimplify_save_expr): Likewise.
23048
23049 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23050
23051         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
23052
23053 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23054
23055         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
23056         TV_IPA_FNSUMMARY.
23057         * timevar.def (TV_IPA_FNSUMMARY): Define.
23058
23059 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
23060
23061         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
23062         to back store errata sensitive sequence from being generated.
23063         (sqrtdf2_fix): Likewise.
23064
23065 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23066
23067         * tree-ssa-threadupdate.c (compute_path_counts,
23068         update_joiner_offpath_counts): Use profile_probability.
23069
23070 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23071
23072         Revert:
23073         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23074
23075         * config/arm/arm-c.c (arm_cpu_builtins): Define
23076         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23077
23078 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23079
23080         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23081         array entries to represent __ieee128 versions of the
23082         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
23083         scalar_extract_sig, and scalar_insert_exp built-in functions.
23084         (altivec_resolve_overloaded_builtin): Add special case handling
23085         for the __builtin_scalar_insert_exp function, as represented by
23086         the P9V_BUILTIN_VEC_VSIEDP constant.
23087         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
23088         exponent support for __ieee128 argument.
23089         (VSESQP): Add scalar extract signature support for __ieee128
23090         argument.
23091         (VSTDCNQP): Add scalar test negative support for __ieee128
23092         argument.
23093         (VSIEQP): Add scalar insert exponent support for __int128 argument
23094         with __ieee128 result.
23095         (VSIEQPF): Add scalar insert exponent support for __ieee128
23096         argument with __ieee128 result.
23097         (VSTDCQP): Add scalar test data class support for __ieee128
23098         argument.
23099         (VSTDCNQP): Add overload support for scalar test negative with
23100         __ieee128 argument.
23101         (VSTDCQP): Add overload support for scalar test data class
23102         __ieee128 argument.
23103         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
23104         UNSPEC_VSX_SXSIGDP.
23105         (UNSPEC_VSX_SIEXPQP): New constant.
23106         (xsxexpqp): New insn for VSX scalar extract exponent quad
23107         precision.
23108         (xsxsigqp): New insn for VSX scalar extract significand quad
23109         precision.
23110         (xsiexpqpf): New insn for VSX scalar insert exponent quad
23111         precision with floating point argument.
23112         (xststdcqp): New expand for VSX scalar test data class quad
23113         precision.
23114         (xststdcnegqp): New expand for VSX scalar test negative quad
23115         precision.
23116         (xststdcqp): New insn to match expansions for VSX scalar test data
23117         class quad precision and VSX scalar test negative quad precision.
23118         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
23119         special case operand checking to enforce that second operand of
23120         VSX scalar test data class with quad precision argument is a 7-bit
23121         unsigned literal.
23122         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23123         prototypes and descriptions of __ieee128 versions of
23124         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
23125         scalar_test_data_class, and scalar_test_neg built-in functions.
23126
23127 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23128
23129         PR tree-optimization/81162
23130         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
23131         replace a negate with an add.
23132
23133 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
23134
23135         * doc/invoke.texi (arm/-mcpu): Document +crypto.
23136
23137 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23138
23139         * config/arm/arm-c.c (arm_cpu_builtins): Define
23140         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23141
23142 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23143
23144         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
23145         (armv8-r): Set ARM Cortex-R52 as default CPU.
23146         * config/arm/arm-tables.opt: Regenerate.
23147         * config/arm/arm-tune.md: Regenerate.
23148         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
23149         Cortex-R52.
23150         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
23151         extension for -mcpu=cortex-r52.
23152
23153 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23154
23155         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
23156         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
23157         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
23158         (fp-armv8): Define it as FP_ARMv8 only.
23159         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
23160         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
23161         TARGET_FPU_ARMV8.
23162         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
23163         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
23164         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
23165         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
23166         than TARGET_FPU_ARMV8.
23167         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
23168         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
23169         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
23170         TARGET_FPU_ARMV8.
23171         * config/arm/neon.md (neon_vrint): Likewise.
23172         (neon_vcvt): Likewise.
23173         (neon_<fmaxmin_op><mode>): Likewise.
23174         (<fmaxmin><mode>3): Likewise.
23175         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
23176         * config/arm/predicates.md (arm_cond_move_operator): Check against
23177         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
23178
23179 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
23180
23181         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
23182         to top of function.
23183
23184 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23185
23186         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
23187         loop in comment with memset.
23188
23189 2017-07-14  Martin Liska  <mliska@suse.cz>
23190
23191         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
23192         * dwarf2out.c (is_java): Remove the function.
23193         (output_pubname): Remove usage of the function.
23194         (lower_bound_default): Remove usage of DW_LANG_Java.
23195         (gen_compile_unit_die): Likewise.
23196         * gcc.c: Remove compiler defaults for .java and .zip files.
23197         * gimple-expr.c (remove_suffix): Change as there's no longer
23198         extension than 4-letter one.
23199         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
23200         (gimplify_save_expr): Likewise.
23201         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
23202         as it's possible even for other languages than Java.
23203         * langhooks.h (struct lang_hooks): Remove Java from a comment.
23204         * lto-opts.c (lto_write_options): Remove reference to Java.
23205         * opts.c (strip_off_ending): Update file extension handling.
23206         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
23207         * tree-eh.c (lower_resx): Likewise.
23208         * tree.c (free_lang_data_in_type): Remove dead code.
23209         (find_decls_types_r): Likewise.
23210         (build_common_builtin_nodes): Remove Java from a comment.
23211         (verify_type): Remove dead code.
23212         * varasm.c (assemble_external): Remove Java from a comment.
23213
23214 2017-07-14  Martin Liska  <mliska@suse.cz>
23215
23216         * opts.c (finish_options): Add quotes.
23217         (common_handle_option): Likewise.
23218
23219 2017-07-14  Martin Liska  <mliska@suse.cz>
23220
23221         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
23222         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
23223         Remove N_SO_PASCAL.
23224         * dwarf2out.c (lower_bound_default): Do not handle
23225         DW_LANG_Pascal83.
23226         (gen_compile_unit_die): Likewise.
23227         * gcc.c: Remove default extension binding for GNU Pascal.
23228         * stmt.c: Remove Pascal language from a comment.
23229         * xcoffout.c: Likewise.
23230
23231 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
23232
23233         PR c/81405
23234         * diagnostic-show-locus.c (fixit_cmp): New function.
23235         (layout::layout): Sort m_fixit_hints.
23236         (column_range::column_range): Assert that the values are valid.
23237         (struct char_span): New struct.
23238         (correction::overwrite): New method.
23239         (struct source_line): New struct.
23240         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
23241         calls in terms of classes source_line and char_span, and
23242         correction::overwrite.
23243         (selftest::test_overlapped_fixit_printing_2): New function.
23244         (selftest::diagnostic_show_locus_c_tests): Call it.
23245
23246 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
23247
23248         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
23249         early if there is no lhs.
23250
23251 2017-07-13  Martin Liska  <mliska@suse.cz>
23252
23253         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
23254         (gen_reference_type_die): Likewise.
23255         * stor-layout.c: Remove Pascal-related comment.
23256
23257 2017-07-13  Martin Liska  <mliska@suse.cz>
23258
23259         * opts.c (finish_options): Add quotes to error messages.
23260         (parse_sanitizer_options): Likewise.
23261
23262 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23263
23264         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
23265
23266 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
23267
23268         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
23269
23270 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
23271
23272         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
23273         during expansion.
23274         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
23275
23276 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23277
23278         PR target/81193
23279         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
23280         provides the hardware capability bits, define the macro
23281         __BUILTIN_CPU_SUPPORTS__.
23282         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
23283         if GLIBC does not provide the hardware capability bits.  Add a
23284         gcc_unreachable call if the built-in cpu function is neither
23285         __builtin_cpu_is nor __builtin_cpu_supports.
23286         (rs6000_get_function_versions_dispatcher): Change the warning
23287         that an old GLIBC is used which does not export the capability
23288         bits to be an error.
23289         * doc/extend.texi (target_clones attribute): Document the
23290         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
23291         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
23292         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
23293         the macros defined by GCC if the newer GLIBC is available.
23294
23295 2017-07-12  Jeff Law  <law@redhat.com>
23296
23297         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
23298         remaining includes slightly.
23299         * config/riscv/riscv-builtins.c: Include profile-count.h.
23300
23301 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23302
23303         PR target/79883
23304         * config/avr/avr.c (avr_set_current_function): In diagnostic
23305         messages: Quote keywords and (parts of) identifiers.
23306         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
23307         "INTERUPT".
23308
23309 2017-07-12  Carl Love  <cel@us.ibm.com>
23310
23311         * config/rs6000/rs6000-c.c: Add support for built-in functions
23312         vector bool char vec_revb (vector bool char);
23313         vector bool short vec_revb (vector short char);
23314         vector bool int vec_revb (vector bool int);
23315         vector bool long long vec_revb (vector bool long long);
23316         * doc/extend.texi: Update the built-in documentation file for the
23317         new built-in functions.
23318
23319 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23320
23321         * config/s390/s390.md: Remove movcc splitter.
23322
23323 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23324
23325         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
23326         load/store on condition.
23327
23328 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23329
23330         PR target/81407
23331         * config/avr/avr.c (avr_encode_section_info)
23332         [progmem && !TREE_READONLY]: Error if progmem object needs
23333         constructing.
23334
23335 2017-07-11  Michael Collison  <michael.collison@arm.com>
23336
23337         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
23338         New pattern.
23339
23340 2017-07-11  Carl Love  <cel@us.ibm.com>
23341
23342         * config/rs6000/rs6000-c.c: Add support for builtins
23343         vector unsigned int vec_parity_lsbb (vector signed int);
23344         vector unsigned int vec_parity_lsbb (vector unsigned int);
23345         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
23346         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
23347         vector unsigned long long vec_parity_lsbb (vector signed long long);
23348         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
23349         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
23350         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
23351         * doc/extend.texi: Update the built-in documentation file for the
23352         new built-in functions.
23353
23354 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
23355
23356         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
23357         (layout::m_primary_loc): New field.
23358         (layout::layout): Initialize new field.  Move location filtering
23359         logic from here to...
23360         (layout::maybe_add_location_range): ...this new method.  Add
23361         support for filtering to just the lines already specified by other
23362         locations.
23363         (layout::will_show_line_p): New method.
23364         (gcc_rich_location::add_location_if_nearby): New method.
23365         (selftest::test_add_location_if_nearby): New test function.
23366         (selftest::diagnostic_show_locus_c_tests): Call it.
23367         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
23368         New method.
23369
23370 2017-07-11  Tom de Vries  <tom@codesourcery.com>
23371
23372         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
23373         (bb_first_real_insn): New function.
23374         (nvptx_single): Add extra initialization of broadcasted condition
23375         variables.
23376
23377 2017-07-11  Nathan Sidwell  <nathan@acm.org>
23378
23379         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
23380
23381 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
23382
23383         * doc/extend.texi (AVR Function Attributes): Remove weblink to
23384         Binutils doc as TEXI will mess them up.
23385         * doc/invoke.texi (AVR Options): Same here.
23386
23387 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
23388
23389         * config/sparc/sparc.opt (mfix-ut700): New option.
23390         (mfix-gr712rc): Likewise.
23391         (sparc_fix_b2bst): New variable.
23392         * doc/invoke.texi (SPARC options): Document them.
23393         (ARM options): Fix warnings.
23394         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
23395         instructions to prevent sequences that can trigger the store-store
23396         errata for certain LEON3FT processors.
23397         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
23398         (sparc_option_override): Set sparc_fix_b2bst appropriately.
23399         * config/sparc/sparc.md (fix_b2bst): New attribute.
23400         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
23401
23402 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
23403
23404         PR target/81375
23405         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
23406         (rcpps): Ditto.
23407         (*rsqrtsf2_sse): Ditto.
23408         (rsqrtsf2): Ditto.
23409         (div<mode>3): Macroize insn from divdf3 and divsf3
23410         using MODEF mode iterator.
23411
23412 2017-07-10  Martin Sebor  <msebor@redhat.com>
23413
23414         PR tree-optimization/80397
23415         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
23416         instead of testing for equality to INTEGER_TYPE.
23417
23418 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
23419
23420         * config.gcc: Remove uclibc from arc target spec.
23421
23422 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
23423
23424         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
23425
23426 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23427
23428         PR lto/80838
23429         * lto-wrapper.c (remove_option): New function.
23430         (merge_and_complain): Merge PIC/PIE options more realistically.
23431
23432 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
23433
23434         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
23435
23436         PR target/20296
23437         PR target/81268
23438         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
23439         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
23440         * config.in: Regenerate.
23441         * configure: Regenerate.
23442         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
23443         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
23444         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
23445         (TARGET_GASISR_PROLOGUES): ...target mask.
23446         * common/config/avr/avr-common.c
23447         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
23448         Set -mgas-isr-prologues.
23449         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
23450         INSERT_PASS_BEFORE for it.
23451         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
23452         * config/avr/avr.c (avr_option_override)
23453         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
23454         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
23455         (avr_attribute_table) <no_gccisr>: Add new function attribute.
23456         (avr_set_current_function) <is_no_gccisr>: Init machine field.
23457         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
23458         and rtl_opt_pass.
23459         (make_avr_pass_pre_proep): New function.
23460         (emit_push_sfr) <treg>: Add argument to function and use it
23461         instead of TMP_REG.
23462         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
23463         and set machine->gasisr.yes.
23464         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
23465         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
23466         __gcc_isr.n_pushed to .L__stack_usage.
23467         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
23468         (avr_asm_final_postscan_insn): ...this new static function.
23469         * config/avr/avr.h (machine_function)
23470         <is_no_gccisr, use_L__stack_usage>: New fields.
23471         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
23472         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
23473         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
23474         (gasisr, *gasisr): New expander and insn.
23475         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
23476         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
23477         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
23478
23479 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
23480
23481         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
23482         in quoted strings.
23483
23484 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
23485
23486         Move jump-tables out of .text again.
23487
23488         PR target/81075
23489         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
23490         (ASM_OUTPUT_ADDR_VEC): New function.
23491         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
23492         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
23493         INSN_ADDRESSes as asm comment.
23494         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
23495         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
23496         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
23497         * config/avr/avr.md (*tablejump): Adjust comment.
23498         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
23499         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
23500         New detail.
23501         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
23502         (avr_output_addr_vec): New proto.
23503         (avr_log_t) <insn_addresses>: New field.
23504
23505 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
23506
23507         PR target/81313
23508         * config/i386/i386.c (ix86_function_arg_advance): Set
23509         outgoing_args_on_stack to true if there are outgoing arguments
23510         on stack.
23511         (ix86_function_arg): Likewise.
23512         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
23513         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
23514         * config/i386/i386.h (machine_function): Add
23515         outgoing_args_on_stack.
23516
23517 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
23518
23519         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
23520         supporting pthreds.
23521         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
23522
23523 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
23524
23525         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
23526         (REAL_H): Remove $(MACHMODE_H).
23527         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
23528         double-int.h.
23529         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
23530         $(MACHMODE_H) and double-int.h.
23531         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
23532         $(MACHMODE_H).
23533         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
23534         double-int.h.
23535
23536 2017-07-07  Andrew Pinski  <apinski@cavium.com>
23537
23538         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
23539         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
23540
23541 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
23542
23543         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
23544         Add warning if GCC was not configured to link against a GLIBC that
23545         exports the hardware capability bits.
23546         (make_resolver_func): Make resolver function private and not a
23547         COMDAT function.  Create the name with clone_function_name instead
23548         of make_unique_name.
23549
23550         PR target/81348
23551         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
23552         correct operand in doing the split.
23553
23554 2017-07-07 Carl Love  <cel@us.ibm.com>
23555
23556         * config/rs6000/rs6000-c: Add support for built-in function
23557         vector unsigned short vec_pack_to_short_fp32 (vector float,
23558                                                       vector float).
23559         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
23560         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
23561         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
23562         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
23563         (convert_4f32_8i16): Add define_expand.
23564         * doc/extend.texi: Update the built-in documentation file for the
23565         new built-in function.
23566
23567 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23568
23569         * config/sparc/m8.md: New file.
23570         * config/sparc/sparc.md: Include m8.md.
23571
23572 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23573
23574         * config/sparc/sparc.opt: New option -mvis4b.
23575         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
23576         (sparc_option_override): Handle VIS4B.
23577         (enum sparc_builtins): Define
23578         SPARC_BUILTIN_DICTUNPACK{8,16,32},
23579         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
23580         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
23581         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
23582         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
23583         (check_constant_argument): New function.
23584         (sparc_vis_init_builtins): Define builtins
23585         __builtin_vis_dictunpack{8,16,32},
23586         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
23587         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
23588         __builtin_vis_fpcmpde{8,16,32}shl and
23589         __builtin_vis_fpcmpur{8,16,32}shl.
23590         (sparc_expand_builtin): Check that the constant operands to
23591         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
23592         constant and in range.
23593         * config/sparc/sparc-c.c (sparc_target_macros): Handle
23594         TARGET_VIS4B.
23595         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
23596         (SPARC_IMM5_P): Likewise.
23597         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
23598         (enabled): Handle vis4b.
23599         (UNSPEC_DICTUNPACK): New unspec.
23600         (UNSPEC_FPCMPSHL): Likewise.
23601         (UNSPEC_FPUCMPSHL): Likewise.
23602         (UNSPEC_FPCMPDESHL): Likewise.
23603         (UNSPEC_FPCMPURSHL): Likewise.
23604         (cpu_feature): New CPU feature `vis4b'.
23605         (dictunpack{8,16,32}): New insns.
23606         (FPCSMODE): New mode iterator.
23607         (fpcscond): New code iterator.
23608         (fpcsucond): Likewise.
23609         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
23610         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
23611         (fpcmpde{8,16,32}{si,di}shl): Likewise.
23612         (fpcmpur{8,16,32}{si,di}shl): Likewise.
23613         * config/sparc/constraints.md: Define constraints `q' for unsigned
23614         2-bit integer constants and `t' for unsigned 5-bit integer
23615         constants.
23616         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
23617         predicate.
23618         (imm5_operand_dictunpack16): Likewise.
23619         (imm5_operand_dictunpack32): Likewise.
23620         (imm2_operand): Likewise.
23621         * doc/invoke.texi (SPARC Options): Document -mvis4b.
23622         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
23623         ditunpack* and fpcmp*shl builtins.
23624
23625 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23626
23627         * config.gcc: Handle m8 in --with-{cpu,tune} options.
23628         * config.in: Add HAVE_AS_SPARC6 define.
23629         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
23630         M8.
23631         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
23632         TARGET_CPU_m8.
23633         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
23634         (CPP_CPU_SPEC): Handle m8.
23635         (ASM_CPU_SPEC): Likewise.
23636         * config/sparc/sparc-opts.h (enum processor_type): Add
23637         PROCESSOR_M8.
23638         * config/sparc/sparc.c (m8_costs): New struct.
23639         (sparc_option_override): Handle TARGET_CPU_m8.
23640         (sparc32_initialize_trampoline): Likewise.
23641         (sparc64_initialize_trampoline): Likewise.
23642         (sparc_issue_rate): Likewise.
23643         (sparc_register_move_cost): Likewise.
23644         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
23645         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
23646         (ASM_CPU64_DEFAULT_SPEC): Likewise.
23647         (CPP_CPU_SPEC): Handle M8.
23648         (ASM_CPU_SPEC): Likewise.
23649         (AS_M8_FLAG): Define.
23650         * config/sparc/sparc.md: Add m8 to the cpu attribute.
23651         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
23652         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
23653         M8 instructions.
23654         * configure: Regenerate.
23655         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
23656         -mtune=m8.
23657
23658 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23659
23660         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
23661         subtypes.
23662         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
23663         ("*movdi_insn_sp32"): Do not set v3pipe.
23664         ("*movsi_insn"): Likewise.
23665         ("*movdi_insn_sp64"): Likewise.
23666         ("*movsf_insn"): Likewise.
23667         ("*movdf_insn_sp32"): Likewise.
23668         ("*movdf_insn_sp64"): Likewise.
23669         ("*zero_extendsidi2_insn_sp64"): Likewise.
23670         ("*sign_extendsidi2_insn"): Likewise.
23671         ("*mov<VM32:mode>_insn"): Likewise.
23672         ("*mov<VM64:mode>_insn_sp64"): Likewise.
23673         ("*mov<VM64:mode>_insn_sp32"): Likewise.
23674         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
23675         ("<vlop:code><VL:mode>3"): Likewise.
23676         ("*not_<vlop:code><VL:mode>3"): Likewise.
23677         ("*nand<VL:mode>_vis"): Likewise.
23678         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
23679         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
23680         ("one_cmpl<VL:mode>2"): Likewise.
23681         ("faligndata<VM64:mode>_vis"): Likewise.
23682         ("alignaddrsi_vis"): Likewise.
23683         ("alignaddrdi_vis"): Likweise.
23684         ("alignaddrlsi_vis"): Likewise.
23685         ("alignaddrldi_vis"): Likewise.
23686         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
23687         ("bmaskdi_vis"): Likewise.
23688         ("bmasksi_vis"): Likewise.
23689         ("bshuffle<VM64:mode>_vis"): Likewise.
23690         ("cmask8<P:mode>_vis"): Likewise.
23691         ("cmask16<P:mode>_vis"): Likewise.
23692         ("cmask32<P:mode>_vis"): Likewise.
23693         ("pdistn<P:mode>_vis"): Likewise.
23694         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
23695
23696 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23697
23698         * config/sparc/sparc.md ("subtype"): New insn attribute.
23699         ("*wrgsr_sp64"): Set insn subtype.
23700         ("*rdgsr_sp64"): Likewise.
23701         ("alignaddrsi_vis"): Likewise.
23702         ("alignaddrdi_vis"): Likewise.
23703         ("alignaddrlsi_vis"): Likewise.
23704         ("alignaddrldi_vis"): Likewise.
23705         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
23706         ("fexpand_vis"): Likewise.
23707         ("fpmerge_vis"): Likewise.
23708         ("faligndata<VM64:mode>_vis"): Likewise.
23709         ("bshuffle<VM64:mode>_vis"): Likewise.
23710         ("cmask8<P:mode>_vis"): Likewise.
23711         ("cmask16<P:mode>_vis"): Likewise.
23712         ("cmask32<P:mode>_vis"): Likewise.
23713         ("fchksm16_vis"): Likewise.
23714         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
23715         ("fmean16_vis"): Likewise.
23716         ("fp<plusminus_insn>64_vis"): Likewise.
23717         ("<plusminus_insn>v8qi3"): Likewise.
23718         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
23719         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
23720         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
23721         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
23722         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
23723         ("*movqi_insn"): Likewise.
23724         ("*movhi_insn"): Likewise.
23725         ("*movsi_insn"): Likewise.
23726         ("movsi_pic_gotdata_op"): Likewise.
23727         ("*movdi_insn_sp32"): Likewise.
23728         ("*movdi_insn_sp64"): Likewise.
23729         ("movdi_pic_gotdata_op"): Likewise.
23730         ("*movsf_insn"): Likewise.
23731         ("*movdf_insn_sp32"): Likewise.
23732         ("*movdf_insn_sp64"): Likewise.
23733         ("*zero_extendhisi2_insn"): Likewise.
23734         ("*zero_extendqihi2_insn"): Likewise.
23735         ("*zero_extendqisi2_insn"): Likewise.
23736         ("*zero_extendqidi2_insn"): Likewise.
23737         ("*zero_extendhidi2_insn"): Likewise.
23738         ("*zero_extendsidi2_insn_sp64"): Likewise.
23739         ("ldfsr"): Likewise.
23740         ("prefetch_64"): Likewise.
23741         ("prefetch_32"): Likewise.
23742         ("tie_ld32"): Likewise.
23743         ("tie_ld64"): Likewise.
23744         ("*tldo_ldub_sp32"): Likewise.
23745         ("*tldo_ldub1_sp32"): Likewise.
23746         ("*tldo_ldub2_sp32"): Likewise.
23747         ("*tldo_ldub_sp64"): Likewise.
23748         ("*tldo_ldub1_sp64"): Likewise.
23749         ("*tldo_ldub2_sp64"): Likewise.
23750         ("*tldo_ldub3_sp64"): Likewise.
23751         ("*tldo_lduh_sp32"): Likewise.
23752         ("*tldo_lduh1_sp32"): Likewise.
23753         ("*tldo_lduh_sp64"): Likewise.
23754         ("*tldo_lduh1_sp64"): Likewise.
23755         ("*tldo_lduh2_sp64"): Likewise.
23756         ("*tldo_lduw_sp32"): Likewise.
23757         ("*tldo_lduw_sp64"): Likewise.
23758         ("*tldo_lduw1_sp64"): Likewise.
23759         ("*tldo_ldx_sp64"): Likewise.
23760         ("*mov<VM32:mode>_insn"): Likewise.
23761         ("*mov<VM64:mode>_insn_sp64"): Likewise.
23762         ("*mov<VM64:mode>_insn_sp32"): Likewise.
23763
23764 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23765
23766         * config/sparc/sparc.md ("type"): New insn type viscmp.
23767         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
23768         viscmp.
23769         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
23770         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
23771         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
23772         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
23773         viscmp.
23774         ("n7_vis_logical_11cycle"): Likewise.
23775         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
23776         * config/sparc/niagara2.md ("niag3_vis": Likewise.
23777         * config/sparc/niagara.md ("niag_vis"): Likewise.
23778         * config/sparc/ultra3.md ("us3_fga"): Likewise.
23779         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
23780
23781 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23782
23783         * config/sparc/sparc.md: New instruction type `bmask'.
23784         (bmaskdi_vis): Use the `bmask' type.
23785         (bmasksi_vis): Likewise.
23786         * config/sparc/ultra3.md (us3_array): Likewise.
23787         * config/sparc/niagara7.md (n7_array): Likewise.
23788         * config/sparc/niagara4.md (n4_array): Likewise.
23789         * config/sparc/niagara2.md (niag2_vis): Likewise.
23790         (niag3_vis): Likewise.
23791         * config/sparc/niagara.md (niag_vis): Likewise.
23792
23793 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23794
23795         * ipa-comdats.c: Remove optimize check from gate.
23796         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
23797         for functions not optimized.
23798         (ipa_fn_summary_read): Skip optimize check.
23799         (ipa_fn_summary_write): Likewise.
23800         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
23801         is optimized.
23802         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
23803         uninlinable.
23804         (can_inline_edge_p): Check flag_pcc_struct_return for match.
23805         (check_callers): Give up on caller which is not optimized.
23806         (inline_small_functions): Likewise.
23807         (ipa_inline): Do not give up when not optimizing.
23808         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
23809         away unoptimizes cdtors.
23810         (whole_program_function_and_variable_visibility): Do
23811         ipa_discover_readonly_nonaddressable_vars in LTO mode.
23812         * ipa.c (process_references): Do not check optimize.
23813         (symbol_table::remove_unreachable_nodes): Update optimize check.
23814         (set_writeonly_bit): Update optimize check.
23815         (pass_ipa_cdtor_merge::gate): Do not check optimize.
23816         (pass_ipa_single_use::gate): Remove.
23817
23818 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
23819
23820         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
23821         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
23822         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
23823         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
23824         permute_load, permute_store, adjust_extract, adjust_splat,
23825         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
23826         replace_swap_with_copy, dump_swap_insn_table,
23827         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
23828         recombine_lvx_pattern, recombine_stvx_pattern,
23829         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
23830         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
23831         to file rs6000-p8swap.c.
23832         * config/rs6000/rs6000-p8swap.c: New file.
23833         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
23834         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
23835         and rs6000*-*-* targets.
23836
23837 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23838
23839         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
23840
23841 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23842
23843         * lto-wrapper.c (merge_and_complain): Do not merge
23844         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
23845         fsigned_zeros, ftrapping_math, fwrapv.
23846         (append_compiler_options): Do not track these options.
23847         (append_linker_options): Likewie
23848
23849 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23850
23851         * cgraphunit.c (cgraph_node::finalize_function): When
23852         !flag_toplevel_reorde set no_reorder flag.
23853         (varpool_node::finalize_decl): Likewise.
23854         (symbol_table::compile): Drop no toplevel reorder path.
23855
23856 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23857
23858         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
23859         edges; zero probability is not better than uninitialized.
23860
23861 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
23862
23863         * asan.h (asan_sanitize_allocas_p): Declare.
23864         * asan.c (asan_sanitize_allocas_p): New function.
23865         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
23866         (handle_builtin_alloca): Likewise.
23867         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
23868         if !asan_sanitize_allocas_p.
23869         * params.def (asan-instrument-allocas): Add new option.
23870         * params.h (ASAN_PROTECT_ALLOCAS): Define.
23871         * opts.c (common_handle_option): Disable allocas sanitization for
23872         KASan by default.
23873
23874 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
23875
23876         * asan.c: Include gimple-fold.h.
23877         (get_last_alloca_addr): New function.
23878         (handle_builtin_stackrestore): Likewise.
23879         (handle_builtin_alloca): Likewise.
23880         (asan_emit_allocas_unpoison): Likewise.
23881         (get_mem_refs_of_builtin_call): Add new parameter, remove const
23882         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
23883         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
23884         (instrument_builtin_call): Pass gimple iterator to
23885         get_mem_refs_of_builtin_call.
23886         (last_alloca_addr): New global.
23887         * asan.h (asan_emit_allocas_unpoison): Declare.
23888         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
23889         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
23890         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
23891         if function calls alloca.
23892         * gimple-fold.c (replace_call_with_value): Remove static keyword.
23893         * gimple-fold.h (replace_call_with_value): Declare.
23894         * internal-fn.c: Include asan.h.
23895         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
23896         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
23897
23898 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23899
23900         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
23901         (C_SELFTEST_FLAGS): New.
23902         (CPP_SELFTEST_FLAGS): New.
23903         (SELFTEST_DEPS): New, from deps of s-selftest.
23904         (C_SELFTEST_DEPS): New, from deps of s-selftest.
23905         (CPP_SELFTEST_DEPS): New.
23906         (selftest): Add dependency on s-selftest-c++.
23907         (s-selftest): Rename to...
23908         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
23909         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
23910         than SELFTEST_FLAGS.
23911         (selftest-gdb): Rename to...
23912         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
23913         C_SELFTEST_FLAGS.
23914         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
23915         (selftest-valgrind): Rename to...
23916         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
23917         C_SELFTEST_FLAGS.
23918         (selftest-valgrind): Reintroduce as an alias for
23919         selftest-c-valgrind.
23920         (s-selftest-c++): New.
23921         (selftest-c++-gdb): New.
23922         (selftest-c++-valgrind): New.
23923
23924 2017-07-06  Olivier Hainque  <hainque@adacore.com>
23925
23926         * gcc.c (process_command): When deciding if undefined variables
23927         should be ignored when processing specs, accept "gcc -v" as well.
23928
23929 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23930
23931         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
23932         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
23933
23934 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23935
23936         * config/arm/arm-cpus.in (armv8-r): Add new entry.
23937         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
23938         * config/arm/arm-tables.opt: Regenerate.
23939         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
23940         enumerator.
23941         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
23942
23943 2017-07-06  Carl Love  <cel@us.ibm.com>
23944
23945         * ChangeLog: Clean up from mid air collision
23946
23947 2017-07-06  Carl Love  <cel@us.ibm.com>
23948
23949         * config/rs6000/rs6000-c.c: Add support for built-in functions
23950         vector signed int vec_subc (vector signed int, vector signed int);
23951         vector signed __int128 vec_subc (vector signed __int128,
23952                                          vector signed __int128);
23953         vector unsigned __int128 vec_subc (vector unsigned __int128,
23954                                            vector unsigned __int128);
23955         vector signed int vec_sube (vector signed int, vector signed int,
23956                                     vector signed int);
23957         vector unsigned int vec_sube (vector unsigned int,
23958                                       vector unsigned int,
23959                                       vector unsigned int);
23960         vector signed __int128 vec_sube (vector signed __int128,
23961                                          vector signed __int128,
23962                                          vector signed__int128);
23963         vector unsigned __int128 vec_sube (vector unsigned __int128,
23964                                            vector unsigned __int128,
23965                                            vector unsigned __int128);
23966         vector signed int vec_subec (vector signed int, vector signed int,
23967                                      vector signed int);
23968         vector unsigned int vec_subec (vector unsigned int,
23969                                        vector unsigned int,
23970                                        vector unsigned int);
23971         vector signed __int128 vec_subec (vector signed __int128,
23972                                           vector signed __int128,
23973                                           vector signed__int128);
23974         vector unsigned __int128 vec_subec (vector unsigned __int128,
23975                                             vector unsigned __int128,
23976                                             vector unsigned __int128);
23977         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
23978         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
23979         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
23980         BU_ALTIVEC_OVERLOAD_X definitions.
23981         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
23982         * doc/extend.texi: Update the built-in documentation file for the new
23983         built-in functions.
23984
23985 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23986
23987         PR c++/79300
23988         * diagnostic-show-locus.c (layout::layout): Use start and finish
23989         spelling location for the start and finish of each range.
23990         * genmatch.c (linemap_client_expand_location_to_spelling_point):
23991         Add unused aspect param.
23992         * input.c (expand_location_1): Add "aspect" param, and use it
23993         to access the correct part of the location.
23994         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
23995         expand_location_1.
23996         (expand_location_to_spelling_point): Likewise.
23997         (linemap_client_expand_location_to_spelling_point): Add "aspect"
23998         param, and pass it to expand_location_1.
23999
24000 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
24001
24002         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
24003         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
24004         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
24005         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
24006         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
24007         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
24008         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
24009         _mm_maskz_getmant_ss): New intrinsics.
24010         (__builtin_ia32_getexpss128_mask): Changed to ...
24011         __builtin_ia32_getexpss128_round ... this.
24012         (__builtin_ia32_getexpsd128_mask): Changed to ...
24013         __builtin_ia32_getexpsd128_round ... this.
24014         * config/i386/i386-builtin-types.def
24015         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
24016         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
24017         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
24018         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
24019         __builtin_ia32_getmantss_mask_round): New builtins.
24020         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
24021         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
24022         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
24023         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
24024         * config/i386/sse.md
24025         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
24026         avx512f_sgetexp<mode><mask_scalar_name>
24027         <round_saeonly_scalar_name> ... this.
24028         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
24029         %0, %1, %2<round_saeonly_op3>}): Changed to ...
24030         vgetexp<ssescalarmodesuffix>
24031         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24032         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
24033         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
24034         avx512f_vgetmant<mode><mask_scalar_name>
24035         <round_saeonly_scalar_name> ... this.
24036         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
24037         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
24038         vgetmant<ssescalarmodesuffix>
24039         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
24040         %0<mask_scalar_operand4>, %1, %2
24041         <round_saeonly_scalar_mask_op4>, %3} ... this.
24042         * config/i386/subst.md (mask_scalar_operand4,
24043         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
24044         round_saeonly_scalar_nimm_predicate): New subst attributes.
24045
24046 2017-07-06  Julia Koval  <julia.koval@intel.com>
24047
24048         * config/i386/i386.c (ix86_erase_embedded_rounding):
24049         Remove code for old rounding pattern.
24050
24051 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
24052
24053         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
24054
24055 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
24056
24057         * doc/sourcebuild.texi (Test Directives, Variants of
24058         dg-require-support): Add documentation for dg-require-stack-check.
24059
24060 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
24061
24062         * config/i386/subst.md (mask_scalar, round_scalar,
24063         round_saeonly_scalar): New meta-templates.
24064         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
24065         round_scalar_mask_operand3, round_scalar_mask_op3,
24066         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
24067         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
24068         round_saeonly_scalar_constraint,
24069         round_saeonly_scalar_prefix): New subst attribute.
24070         * config/i386/sse.md
24071         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
24072         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
24073         <round_scalar_name> ... this.
24074         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
24075         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
24076         <round_scalar_name> ... this.
24077         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
24078         <sse>_vm<code><mode>3<mask_scalar_name>
24079         <round_saeonly_scalar_name> ... this.
24080         (v<plusminus_mnemonic><ssescalarmodesuffix>
24081         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24082         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24083         v<plusminus_mnemonic><ssescalarmodesuffix>
24084         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24085         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24086         (v<multdiv_mnemonic><ssescalarmodesuffix>
24087         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24088         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24089         v<multdiv_mnemonic><ssescalarmodesuffix>
24090         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24091         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24092         (v<maxmin_float><ssescalarmodesuffix>
24093         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
24094         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
24095         v<maxmin_float><ssescalarmodesuffix>
24096         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24097         %0<mask_scalar_operand3>, %1, %<iptr>2
24098         <round_saeonly_scalar_mask_op3>} ... this.
24099
24100 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
24101
24102         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
24103         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
24104
24105 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
24106             Alan Hayward  <alan.hayward@arm.com>
24107             David Sherwood  <david.sherwood@arm.com>
24108
24109         * combine.c (simplify_if_then_else): Remove "enum" before
24110         "machine_mode".
24111         * compare-elim.c (can_eliminate_compare): Likewise.
24112         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
24113         Likewise.
24114         (aarch64_lookup_simd_builtin_type): Likewise.
24115         (aarch64_simd_builtin_type): Likewise.
24116         (aarch64_init_simd_builtin_types): Likewise.
24117         (aarch64_simd_expand_args): Likewise.
24118         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
24119         Likewise.
24120         (aarch64_reverse_mask): Likewise.
24121         (aarch64_simd_emit_reg_reg_move): Likewise.
24122         (aarch64_gen_adjusted_ldpstp): Likewise.
24123         (aarch64_ccmp_mode_to_code): Likewise.
24124         (aarch64_operands_ok_for_ldpstp): Likewise.
24125         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24126         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
24127         Likewise.
24128         (aarch64_min_divisions_for_recip_mul): Likewise.
24129         (aarch64_reassociation_width): Likewise.
24130         (aarch64_get_condition_code_1): Likewise.
24131         (aarch64_simd_emit_reg_reg_move): Likewise.
24132         (aarch64_simd_attr_length_rglist): Likewise.
24133         (aarch64_reverse_mask): Likewise.
24134         (aarch64_operands_ok_for_ldpstp): Likewise.
24135         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24136         (aarch64_gen_adjusted_ldpstp): Likewise.
24137         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
24138         Likewise.
24139         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
24140         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
24141         (arm_lookup_simd_builtin_type): Likewise.
24142         (arm_simd_builtin_type): Likewise.
24143         (arm_init_simd_builtin_types): Likewise.
24144         (arm_expand_builtin_args): Likewise.
24145         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
24146         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
24147         (ft32_setup_incoming_varargs): Likewise.
24148         (ft32_function_arg): Likewise.
24149         (ft32_function_arg_advance): Likewise.
24150         (ft32_pass_by_reference): Likewise.
24151         (ft32_arg_partial_bytes): Likewise.
24152         (ft32_valid_pointer_mode): Likewise.
24153         (ft32_addr_space_pointer_mode): Likewise.
24154         (ft32_addr_space_legitimate_address_p): Likewise.
24155         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
24156         Likewise.
24157         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
24158         (ix86_emit_outlined_ms2sysv_restore): Likewise.
24159         (iamcu_alignment): Likewise.
24160         (canonicalize_vector_int_perm): Likewise.
24161         (ix86_noce_conversion_profitable_p): Likewise.
24162         (ix86_mpx_bound_mode): Likewise.
24163         (ix86_operands_ok_for_move_multiple): Likewise.
24164         * config/microblaze/microblaze-protos.h
24165         (microblaze_expand_conditional_branch_reg): Likewise.
24166         * config/microblaze/microblaze.c
24167         (microblaze_expand_conditional_branch_reg): Likewise.
24168         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
24169         Likewise.
24170         (rs6000_reassociation_width): Likewise.
24171         (rs6000_invalid_binary_op): Likewise.
24172         (fusion_p9_p): Likewise.
24173         (emit_fusion_p9_load): Likewise.
24174         (emit_fusion_p9_store): Likewise.
24175         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
24176         Likewise.
24177         (riscv_hard_regno_mode_ok_p): Likewise.
24178         (riscv_address_insns): Likewise.
24179         (riscv_split_symbol): Likewise.
24180         (riscv_legitimize_move): Likewise.
24181         (riscv_function_value): Likewise.
24182         (riscv_hard_regno_nregs): Likewise.
24183         (riscv_expand_builtin): Likewise.
24184         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
24185         (riscv_build_integer): Likewise.
24186         (riscv_split_integer): Likewise.
24187         (riscv_legitimate_constant_p): Likewise.
24188         (riscv_cannot_force_const_mem): Likewise.
24189         (riscv_regno_mode_ok_for_base_p): Likewise.
24190         (riscv_valid_base_register_p): Likewise.
24191         (riscv_valid_offset_p): Likewise.
24192         (riscv_valid_lo_sum_p): Likewise.
24193         (riscv_classify_address): Likewise.
24194         (riscv_legitimate_address_p): Likewise.
24195         (riscv_address_insns): Likewise.
24196         (riscv_load_store_insns): Likewise.
24197         (riscv_force_binary): Likewise.
24198         (riscv_split_symbol): Likewise.
24199         (riscv_force_address): Likewise.
24200         (riscv_legitimize_address): Likewise.
24201         (riscv_move_integer): Likewise.
24202         (riscv_legitimize_const_move): Likewise.
24203         (riscv_legitimize_move): Likewise.
24204         (riscv_address_cost): Likewise.
24205         (riscv_subword): Likewise.
24206         (riscv_output_move): Likewise.
24207         (riscv_canonicalize_int_order_test): Likewise.
24208         (riscv_emit_int_order_test): Likewise.
24209         (riscv_function_arg_boundary): Likewise.
24210         (riscv_pass_mode_in_fpr_p): Likewise.
24211         (riscv_pass_fpr_single): Likewise.
24212         (riscv_pass_fpr_pair): Likewise.
24213         (riscv_get_arg_info): Likewise.
24214         (riscv_function_arg): Likewise.
24215         (riscv_function_arg_advance): Likewise.
24216         (riscv_arg_partial_bytes): Likewise.
24217         (riscv_function_value): Likewise.
24218         (riscv_pass_by_reference): Likewise.
24219         (riscv_setup_incoming_varargs): Likewise.
24220         (riscv_print_operand): Likewise.
24221         (riscv_elf_select_rtx_section): Likewise.
24222         (riscv_save_restore_reg): Likewise.
24223         (riscv_for_each_saved_reg): Likewise.
24224         (riscv_register_move_cost): Likewise.
24225         (riscv_hard_regno_mode_ok_p): Likewise.
24226         (riscv_hard_regno_nregs): Likewise.
24227         (riscv_class_max_nregs): Likewise.
24228         (riscv_memory_move_cost): Likewise.
24229         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
24230         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
24231         (rl78_addr_space_address_mode): Likewise.
24232         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24233         Likewise.
24234         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
24235         (rs6000_reassociation_width): Likewise.
24236         (rs6000_invalid_binary_op): Likewise.
24237         (fusion_p9_p): Likewise.
24238         (emit_fusion_p9_load): Likewise.
24239         (emit_fusion_p9_store): Likewise.
24240         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
24241         (ok_for_simple_move_operands): Likewise.
24242         (ok_for_simple_move_strict_operands): Likewise.
24243         (ok_for_simple_arith_logic_operands): Likewise.
24244         (visium_legitimize_reload_address): Likewise.
24245         (visium_select_cc_mode): Likewise.
24246         (output_cbranch): Likewise.
24247         (visium_split_double_move): Likewise.
24248         (visium_expand_copysign): Likewise.
24249         (visium_expand_int_cstore): Likewise.
24250         (visium_expand_fp_cstore): Likewise.
24251         * config/visium/visium.c (visium_pass_by_reference): Likewise.
24252         (visium_function_arg): Likewise.
24253         (visium_function_arg_advance): Likewise.
24254         (visium_libcall_value): Likewise.
24255         (visium_setup_incoming_varargs): Likewise.
24256         (visium_legitimate_constant_p): Likewise.
24257         (visium_legitimate_address_p): Likewise.
24258         (visium_legitimize_address): Likewise.
24259         (visium_secondary_reload): Likewise.
24260         (visium_register_move_cost): Likewise.
24261         (visium_memory_move_cost): Likewise.
24262         (prepare_move_operands): Likewise.
24263         (ok_for_simple_move_operands): Likewise.
24264         (ok_for_simple_move_strict_operands): Likewise.
24265         (ok_for_simple_arith_logic_operands): Likewise.
24266         (visium_function_value_1): Likewise.
24267         (rtx_ok_for_offset_p): Likewise.
24268         (visium_legitimize_reload_address): Likewise.
24269         (visium_split_double_move): Likewise.
24270         (visium_expand_copysign): Likewise.
24271         (visium_expand_int_cstore): Likewise.
24272         (visium_expand_fp_cstore): Likewise.
24273         (visium_split_cstore): Likewise.
24274         (visium_select_cc_mode): Likewise.
24275         (visium_split_cbranch): Likewise.
24276         (output_cbranch): Likewise.
24277         (visium_print_operand_address): Likewise.
24278         * expmed.c (flip_storage_order): Likewise.
24279         * expmed.h (emit_cstore): Likewise.
24280         (flip_storage_order): Likewise.
24281         * genrecog.c (validate_pattern): Likewise.
24282         * hsa-gen.c (gen_hsa_addr): Likewise.
24283         * internal-fn.c (expand_arith_overflow): Likewise.
24284         * ira-color.c (allocno_copy_cost_saving): Likewise.
24285         * lra-assigns.c (find_hard_regno_for_1): Likewise.
24286         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
24287         (process_invariant_for_inheritance): Likewise.
24288         * lra-eliminations.c (move_plus_up): Likewise.
24289         * omp-low.c (lower_oacc_reductions): Likewise.
24290         * simplify-rtx.c (simplify_subreg): Likewise.
24291         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
24292         (TARGET_CHKP_BOUND_MODE): Likewise..
24293         * targhooks.c (default_chkp_bound_mode): Likewise.
24294         (default_setup_incoming_vararg_bounds): Likewise.
24295         * targhooks.h (default_chkp_bound_mode): Likewise.
24296         (default_setup_incoming_vararg_bounds): Likewise.
24297         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
24298         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
24299         (have_whole_vector_shift): Likewise.
24300         * tree-vect-stmts.c (vectorizable_load): Likewise.
24301         * doc/tm.texi: Regenerate.
24302
24303 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24304
24305         Graceful degrade if Binutils PR21472 is not available.
24306
24307         PR target/81072
24308         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
24309         .rodata in flash test fails.
24310         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
24311         * confgure: Regenerate.
24312         * config.in: Regenerate.
24313         * config/avr/avr.c (avr_asm_named_section)
24314         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
24315         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
24316         (avr_asm_init_sections): Same.
24317
24318 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24319
24320         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
24321         (fma<VH:mode>4_intrinsic): Likewise.
24322         (*fmsub<VCVTF:mode>4): Likewise.
24323         (*fmsub<VH:mode>4_intrinsic): Likewise.
24324
24325 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24326
24327         PR target/81305
24328         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
24329         Don't depend on "optimize > 0".
24330         (out_movhi_r_mr, out_movqi_mr_r): Same.
24331         (out_movhi_mr_r, out_movqi_r_mr): Same.
24332         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
24333         io_address_operand on "optimize > 0".
24334
24335 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24336
24337         * tree-loop-distribution.c: Add general explanantion on the pass.
24338         (generate_loops_for_partition): Mark distributed loop.
24339         (pg_add_dependence_edges): New parameter.  Handle alias data
24340         dependence specially and record it in the parameter if asked.
24341         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
24342         (init_partition_graph_vertices, add_partition_graph_edge): New.
24343         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
24344         (free_partition_graph_vdata, build_partition_graph): New.
24345         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
24346         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
24347         (data_ref_segment_size, latch_dominated_by_data_ref): New.
24348         (compute_alias_check_pairs, version_loop_by_alias_check): New.
24349         (version_for_distribution_p, finalize_partitions): New.
24350         (distribute_loop): Handle alias data dependence specially.  Factor
24351         out loop fusion code as functions and call these functions.
24352
24353 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24354
24355         * tree-loop-distribution.c (classify_partition): New parameter and
24356         better handle reduction statement.
24357         (rdg_build_partitions): Revise comment.
24358         (distribute_loop): Compute statements in all partitions and pass it
24359         to classify_partition.
24360
24361 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24362
24363         * tree-loop-distribution.c (enum partition_type): New.
24364         (struct partition): New field type.
24365         (partition_merge_into): Add parameter.  Update partition type.
24366         (data_dep_in_cycle_p, update_type_for_merge): New functions.
24367         (build_rdg_partition_for_vertex): Compute partition type.
24368         (rdg_build_partitions): Dump partition type.
24369         (distribute_loop): Update calls to partition_merge_into.
24370
24371 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24372
24373         * tree-loop-distribution.c (struct ddr_hasher): New.
24374         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
24375         (ddrs_table): New.
24376         (classify_partition): Call get_data_dependence.
24377         (pg_add_dependence_edges): Ditto.
24378         (distribute_loop): Release data dependence hash table.
24379
24380 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24381
24382         * tree-loop-distribution.c (ref_base_address): Delete.
24383         (similar_memory_accesses): Rename ...
24384         (share_memory_accesses): ... to this.  Check if partitions access
24385         the same memory reference.
24386         (distribute_loop): Call share_memory_accesses.
24387
24388 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24389
24390         * tree-loop-distribution.c (struct partition): New field recording
24391         its data reference.
24392         (partition_alloc, partition_free): Init and release data refs.
24393         (partition_merge_into): Merge data refs.
24394         (build_rdg_partition_for_vertex): Collect data refs for partition.
24395         (pg_add_dependence_edges): Change parameters from vector to bitmap.
24396         Update uses.
24397         (distribute_loop): Remve data refs from vertice data of partition
24398         graph.
24399
24400 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24401
24402         * tree-loop-distribution.c (params.h): Include header file.
24403         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
24404         (datarefs_vec): New global var.
24405         (create_rdg_vertices): Use datarefs_vec directly.
24406         (free_rdg): Don't free data references.
24407         (build_rdg): Update use.  Don't free data references.
24408         (distribute_loop): Compute global variable for data references.
24409         Bail out if there are too many data references.
24410
24411 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24412
24413         * tree-loop-distribution.c (loop_nest): New global var.
24414         (build_rdg): Use loop directly, rather than loop nest.
24415         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
24416         variable directly.
24417         (distribute_loop): Compute global variable loop nest.  Update use.
24418
24419 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24420
24421         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
24422         (partition_merge_into): New parameter.  Dump reason for fusion.
24423         (distribute_loop): Update use of partition_merge_into.
24424
24425 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24426
24427         * tree-loop-distribution.c (bb_top_order_index): New.
24428         (bb_top_order_index_size, bb_top_order_cmp): New.
24429         (stmts_from_loop): Use topological order.
24430         (pass_loop_distribution::execute): Compute and release topological
24431         order for basic blocks.
24432
24433 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24434
24435         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
24436         if no loops.
24437
24438 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24439
24440         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
24441         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
24442         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
24443         * internal-fn.def (LOOP_DIST_ALIAS): New.
24444         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
24445         (fold_loop_internal_call): ... this.
24446         (vect_loop_dist_alias_call): New function.
24447         (set_uid_loop_bbs): Call fold_loop_internal_call.
24448         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
24449         internal calls.
24450
24451 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
24452
24453         PR target/81300
24454         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
24455         Require dead FLAGS_REG at the beginning of a peephole.
24456
24457 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
24458
24459         PR target/81294
24460         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
24461         arguments in the call to __builtin_ia32_sbb_u32.
24462         (_subborrow_u64): Swap _X and _Y arguments in the call to
24463         __builtin_ia32_sbb_u64.
24464
24465 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
24466
24467         PR debug/81278
24468         * tree-vrp.c (compare_assert_loc): Turn into a function template
24469         with stable template parameter.  Only test if a->e is NULL,
24470         !a->e == !b->e has been verified already.  Use e == NULL or
24471         e != NULL instead of e or ! e tests.  If stable is true, don't use
24472         iterative_hash_expr, on the other side allow a or b or both NULL
24473         and sort the NULLs last.
24474         (process_assert_insertions): Sort using compare_assert_loc<false>
24475         instead of compare_assert_loc, later sort using
24476         compare_assert_loc<true> before calling process_assert_insertions_for
24477         in a loop.  Use break instead of continue once seen NULL pointer.
24478
24479 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24480
24481         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
24482         Cortex-R7 and Cortex-R8 processors.
24483
24484 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24485
24486         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
24487         uninitialized while src is not.
24488
24489 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
24490
24491         * common/config/arm/arm-common.c: Adjust include path for
24492         arm-cpu-cdata.h
24493         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
24494         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
24495         (arm-cpu-data.h): Likewise.
24496         (arm-cpu-cdata.h): Likewise.
24497         * config/arm/arm-cpu.h: Delete.
24498         * config/arm/arm-cpu-cdata.h: Delete.
24499         * config/arm/arm-cpu-data.h: Delete.
24500
24501 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
24502
24503         * config/arm/arm-cpus.in (cortex-a55): New.
24504         (cortex-a75): Likewise.
24505         (cortex-a75.cortex-a55): Likewise.
24506         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
24507         cortex-a75.
24508         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
24509         * config/arm/arm-cpu-cdata.h: Regenerate.
24510         * config/arm/arm-cpu-data.h: Regenerate.
24511         * config/arm/arm-cpu.h: Regenerate.
24512         * config/arm/arm-tables.opt: Regenerate.
24513         * config/arm/arm-tune.md: Regenerate.
24514
24515 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24516
24517         * haifa-sched.c (sched_create_recovery_edges): Update profile.
24518
24519 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24520
24521         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
24522         probability.
24523
24524 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
24525
24526         PR tree-optimization/81292
24527         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
24528         full_string_p, also call adjust_related_strinfos if the adjustment
24529         is simple, otherwise invalidate related strinfos.
24530
24531 2017-07-04  Martin Liska  <mliska@suse.cz>
24532
24533         PR sanitizer/81040
24534         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
24535         newly created variable as DECL_IGNORED_P.
24536
24537 2017-07-04  Martin Liska  <mliska@suse.cz>
24538
24539         PR ipa/81293
24540         * ipa-inline.c (inline_small_functions):
24541         Use xstrdup_for_dump.
24542
24543 2017-07-04  Tom de Vries  <tom@codesourcery.com>
24544
24545         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
24546
24547 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
24548
24549         PR target/81033
24550         * config/darwin.c (darwin_function_switched_text_sections):
24551         Fix spaces.
24552
24553 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
24554
24555         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
24556
24557 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
24558
24559         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
24560
24561 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24562
24563         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
24564         min_profitable_iters, and th as inclusive lower bounds.
24565         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
24566         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
24567         for min_profitable_iters and min_profitable_estimate.
24568         (vect_transform_loop): Treat th as an inclusive lower bound.
24569         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
24570
24571 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
24572
24573         PR target/81033
24574         * config/darwin.c (darwin_function_switched_text_sections):
24575         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
24576         in two pieces, and suppress the use of buf.
24577
24578 2017-07-03  Nathan Sidwell  <nathan@acm.org>
24579
24580         * hash-table.h (hash_table_mod1): Fix indentation.
24581
24582 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24583
24584         PR middle-end/81290
24585         * predict.c (force_edge_cold): Be more careful about propagation
24586         backward.
24587         * profile-count.h (profile_probability::guessed,
24588         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
24589         New.
24590         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
24591
24592 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
24593
24594         * doc/invoke.texi (rcpc architecture extension): Document it.
24595
24596 2017-07-03  Richard Biener  <rguenther@suse.de>
24597
24598         PR tree-optimization/60510
24599         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
24600         the scalar reduction PHI and use it.
24601         (vectorizable_reduction): Properly guard the single_defuse_cycle
24602         path for non-SLP reduction chains where we cannot use it.
24603         Rework reduc_def/index and vector type deduction.  Rework
24604         vector operand gathering during reduction op code-gen.
24605         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
24606         chains dissolve the chain and leave it to non-SLP reduction
24607         handling.
24608
24609 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24610
24611         * tree-data-ref.h (dr_alignment): Declare.
24612         * tree-data-ref.c (dr_alignment): New function.
24613         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
24614         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
24615         set it.
24616         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
24617
24618 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24619
24620         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
24621         and base_misalignment fields.
24622         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
24623         * tree-data-ref.c: Include builtins.h.
24624         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
24625         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
24626         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
24627         * tree-vect-data-refs.c: Include tree-cfg.h.
24628         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
24629         fields instead of calculating an alignment here.
24630         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
24631         innermost_loop_behavior fields.
24632
24633 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24634
24635         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
24636         field.
24637         (DR_STEP_ALIGNMENT): New macro.
24638         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
24639         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
24640         (create_data_ref): Print it.
24641         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
24642         to tell whether the step preserves vector (mis)alignment.
24643         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
24644         Move the check for an integer step and generalise to all INTEGER_CST.
24645         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
24646         Print the outer step alignment.
24647
24648 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24649
24650         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
24651         with offset_alignment.
24652         (DR_ALIGNED_TO): Delete.
24653         (DR_OFFSET_ALIGNMENT): New macro.
24654         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
24655         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
24656         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
24657         (create_data_ref): Likewise.
24658         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
24659         (vect_analyze_data_refs): Likewise.
24660         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
24661         creating dummy innermost behavior.
24662
24663 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24664
24665         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
24666         with a "innermost_loop_behavior *" and refeence tree.
24667         * tree-data-ref.c (dr_analyze_innermost): Likewise.
24668         (create_data_ref): Update call accordingly.
24669         * tree-predcom.c (find_looparound_phi): Likewise.
24670
24671 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24672
24673         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
24674         fields with dr_wrt_vec_loop.
24675         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
24676         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
24677         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
24678         (vect_dr_behavior): New function.
24679         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
24680         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
24681         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
24682         track whether the step preserves the misalignment.
24683         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
24684         Use vect_dr_behavior.
24685         (vect_setup_realignment): Update call accordingly.
24686         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
24687         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
24688         call to vect_create_addr_base_for_vector_ref.
24689         (vect_create_cond_for_align_checks): Likewise.
24690         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
24691         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
24692         (vect_recog_mask_conversion_pattern): Likewise.
24693         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
24694         (new_stmt_vec_info): Remove redundant zeroing.
24695
24696 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
24697
24698         * common/config/arm/arm-common.c (arm_be8_option): New function.
24699         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
24700         (ISA_ARMv6): Add isa_bit_be8.
24701         * config/arm/arm.h (arm_be8_option): Add prototype.
24702         (BE8_SPEC_FUNCTION): New define.
24703         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
24704         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
24705         (mlittle-endian): Similarly.
24706         (mbe8, mbe32): New options.
24707         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
24708         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
24709
24710 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24711
24712         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
24713
24714 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24715
24716         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
24717         (cleanup_tree_cfg_bb): Use it.
24718         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
24719         New functions.
24720         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
24721
24722 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24723
24724         PR bootstrap/81285
24725         * loop-doloop.c (add_test): Update profile.
24726
24727 2017-07-03  Martin Liska  <mliska@suse.cz>
24728
24729         PR sanitize/81040
24730         * sanopt.c (rewrite_usage_of_param): New function.
24731         (sanitize_rewrite_addressable_params): Likewise.
24732         (pass_sanopt::execute): Call rewrite_usage_of_param.
24733
24734 2017-07-03  Richard Biener  <rguenther@suse.de>
24735
24736         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
24737         back to using VIEW_CONVERT_EXPR.
24738
24739 2017-07-03  Martin Liska  <mliska@suse.cz>
24740
24741         PR other/78366
24742         * doc/extend.texi: Document when a resolver function is
24743         generated for target_clones.
24744
24745 2017-07-03  Martin Liska  <mliska@suse.cz>
24746
24747         * asan.c (asan_emit_stack_protection): Unpoison just red zones
24748         and shadow memory of auto variables which are subject of
24749         use-after-scope sanitization.
24750         (asan_expand_mark_ifn): Add do set only when is_poison.
24751
24752 2016-07-03  Richard Biener  <rguenther@suse.de>
24753
24754         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
24755         reduction PHIs.
24756         (vect_force_simple_reduction): Record reduction def -> phi mapping.
24757         (vectorizable_reduction): Perform reduction PHI creation when
24758         visiting a reduction PHI and adjust and simplify code generation
24759         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
24760         (vect_transform_loop): Visit reduction PHIs.
24761         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
24762         defs into the SLP tree.
24763         (vect_build_slp_tree): Reduction defs terminate the recursion.
24764         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
24765         of reduction defs.
24766         (vect_get_vec_defs_for_stmt_copy): Export.
24767         (vect_get_vec_defs): Likewise.
24768         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
24769         purpose.
24770         (vect_get_vec_defs_for_stmt_copy): Declare.
24771         (vect_get_vec_defs): Likewise.
24772
24773 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24774
24775         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
24776         parameter with a "loop" parameter and use it instead of the
24777         loop containing DR_STMT.  Don't check simple_iv when doing
24778         BB analysis.  Describe the two analysis modes in the comment.
24779
24780 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24781
24782         PR tree-optimization/69468
24783         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
24784         (find_same_succ_bb): Handle ignore_edge_flags.
24785
24786 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24787
24788         PR tree-optimization/81192
24789         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
24790         hash.
24791         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
24792         differs.
24793         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
24794
24795 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24796
24797         PR tree-optimization/81192
24798         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
24799         BB_SAME_SUCC (bb) == NULL.
24800
24801 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24802
24803         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
24804         consistency.
24805
24806 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24807
24808         * dumpfile.c: Include profile-count.h
24809         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
24810         update profile.
24811         (insert_cond_bb): Update profile.
24812         * tree-cfg.h (insert_cond_bb): Update prototype.
24813         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
24814         * tree-dump.c: Do not include tree-cfg.
24815
24816 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24817
24818         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
24819
24820 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24821
24822         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
24823         bb.
24824
24825 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24826
24827         * tree-complex.c (expand_complex_div_wide): update profile.
24828
24829 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24830             Alan Hayward  <alan.hayward@arm.com>
24831             David Sherwood  <david.sherwood@arm.com>
24832
24833         * Makefile.in (MACHMODE_H): Remove insn-modes.h
24834         (CORETYPES_H): New define.
24835         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
24836         (insn-modes-inline.h, s-modes-inline-h): New rules.
24837         (generated_files): Add insn-modes-inline.h.
24838         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
24839         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
24840         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
24841         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
24842         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
24843         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
24844         (build/gencodes.o, build/genconditions.o): Likewise.
24845         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
24846         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
24847         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
24848         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
24849         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
24850         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
24851         * coretypes.h: Include everything up to real.h for generators.
24852         Include insn-modes.h first.  Include wide-int-print.h after
24853         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
24854         * machmode.h: Don't include insn-modes.h here.
24855         * function-tests.c: Remove includes of signop.h, machmode.h,
24856         double-int.h and wide-int.h.
24857         * rtl.h: Likewise.
24858         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
24859         and wide-int.h.
24860         * optc-save-gen.awk: Likewise.
24861         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
24862         * godump.c: Remove include of wide-int-print.h.
24863         * pretty-print.h: Likewise.
24864         * wide-int-print.cc: Likewise.
24865         * wide-int.cc: Likewise.
24866         * hash-map-tests.c: Remove include of signop.h.
24867         * hash-set-tests.c: Likewise.
24868         * rtl-tests.c: Likewise.
24869         * mkconfig.sh: Remove include of machmode.h.
24870         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
24871         into...
24872         (emit_insn_modes_inline_h): ...this new function.  Emit the code
24873         into an insn-modes-inline.h header file, adding appropriate
24874         include guards and end comments.
24875         (emit_insn_modes_c_header): Remove include of machmode.h.
24876         (emit_min_insn_modes_c_header): Include coretypes.h rather than
24877         machmode.h.
24878         (main): Handle -i flag and call emit_insn_modes_inline_h when
24879         it is passed.
24880
24881 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24882
24883         * tree-ssa-strlen.c (strinfo): Rename the length field to
24884         nonzero_chars.  Add a full_string_p field.
24885         (compare_nonzero_chars, zero_length_string_p): New functions.
24886         (get_addr_stridx): Add an offset_out parameter.
24887         Use compare_nonzero_chars.
24888         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
24889         (new_strinfo): Update after above changes to strinfo.
24890         (set_endptr_and_length): Set full_string_p.
24891         (get_string_length): Update after above changes to strinfo.
24892         (unshare_strinfo): Update call to new_strinfo.
24893         (maybe_invalidate): Likewise.
24894         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
24895         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
24896         as a uhwi instead of an shwi.  Update after above changes to
24897         strinfo and new_strinfo.
24898         (zero_length_string): Assert that chainsi contains full strings.
24899         Use zero_length_string_p.  Update call to new_strinfo.
24900         (adjust_related_strinfos): Update after above changes to strinfo.
24901         Copy full_string_p from origsi.
24902         (adjust_last_stmt): Use zero_length_string_p.
24903         (handle_builtin_strlen): Update after above changes to strinfo and
24904         new_strinfo.  Install the lhs as the string length if the previous
24905         entry didn't describe a full string.
24906         (handle_builtin_strchr): Update after above changes to strinfo
24907         and new_strinfo.
24908         (handle_builtin_strcpy): Likewise.
24909         (handle_builtin_strcat): Likewise.
24910         (handle_builtin_malloc): Likewise.
24911         (handle_pointer_plus): Likewise.
24912         (handle_builtin_memcpy): Likewise.  Track nonzero characters
24913         that aren't necessarily followed by a nul terminator.
24914         (handle_char_store): Likewise.
24915
24916 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24917
24918         PR tree-optimization/80769
24919         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
24920         for malloc and calloc.  Document the new invariant that all related
24921         strinfos have delayed lengths or none do.
24922         (verify_related_strinfos): Move earlier in file.
24923         (set_endptr_and_length): New function, split out from...
24924         (get_string_length): ...here.  Also set the lengths of related
24925         strinfos.
24926         (zero_length_string): Assert that chainsi has known (rather than
24927         delayed) lengths.
24928         (adjust_related_strinfos): Likewise.
24929
24930 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24931
24932         PR tree-optimization/81136
24933         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
24934         assert that two references with the same misalignment have the same
24935         compile-time misalignment if those compile-time misalignments
24936         are known.
24937
24938 2017-07-01  Andi Kleen  <ak@linux.intel.com>
24939
24940         * print-tree.c (print_node): Print all attributes.
24941
24942 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24943
24944         * cfg.c (scale_bbs_frequencies): New function.
24945         * cfg.h (scale_bbs_frequencies): Declare it.
24946         * cfgloopanal.c (single_likely_exit): Cleanup.
24947         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
24948         as parameter.
24949         (scale_loop_profile): Likewise.
24950         (loop_version): Likewise.
24951         (create_empty_loop_on_edge): Update.
24952         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
24953         scale_loop_frequencies, scale_loop_profile, loopify,
24954         loop_version): Update prototypes.
24955         * modulo-sched.c (sms_schedule): Update.
24956         * predict.c (unlikely_executed_edge_p): Also check probability.
24957         (probably_never_executed_edge_p): Fix typo.
24958         * tree-if-conv.c (version_loop_for_if_conversion): Update.
24959         * tree-parloops.c (gen_parallel_loop): Update.
24960         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
24961         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
24962         * tree-ssa-loop-split.c (split_loop): Update.
24963         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
24964         * tree-vect-loop-manip.c (vect_do_peeling): Update.
24965         (vect_loop_versioning): Update.
24966         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
24967
24968 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24969
24970         * trans-mem.c (split_bb_make_tm_edge): Update profile.
24971
24972 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24973
24974         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
24975         to keep profile consistent.
24976
24977 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24978
24979         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
24980         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
24981         * profile-count.h (max_safe_multiplier): Make unsigned.
24982         (profile_count::guessed_zero): New.
24983
24984 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24985
24986         * bb-reorder.c (fix_up_crossing_landing_pad,
24987         fix_crossing_conditional_branches): Use make_single_succ_edge
24988         to keep profile consistent.
24989
24990 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24991
24992         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
24993         to update profile.
24994
24995 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
24996
24997         PR sanitizer/81262
24998         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
24999         the right scopes, make sure cond_jump isn't preserved between multiple
25000         iterations.  Search for fallthru edge whenever there are 3+ edges and
25001         use find_fallthru_edge for it.
25002
25003 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25004
25005         Patch by Alexander Monakov <amonakov@ispras.ru>
25006         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
25007         probabilities consistently.
25008
25009 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25010
25011         * pa.c (pa_expand_compare_and_swap_loop): Update call of
25012         emit_cmp_and_jump_insns.
25013
25014 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25015
25016         PR ipa/81261
25017         * tree-inline.c (expand_call_inline): Combine profile statuses.
25018
25019 2017-06-30  Andrew Pinski  <apinski@cavium.com>
25020
25021         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
25022         fold_stmt returned true.
25023
25024 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25025
25026         * ggc.h (empty_string): Delete.
25027         * cfgexpand.c (expand_asm_stmt): Use plain "".
25028         * optabs.c (expand_asm_memory_barrier): Likewise.
25029         * stringpool.c (empty_string): Delete.
25030         (digit_vector, digit_string): Delete.
25031         (ggc_alloc_string): Use plain "", don't optimize single digit
25032         strings.  Use ggc_alloc_atomic.
25033
25034 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
25035
25036         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
25037         comparison set and one other set, use the cost of the non-comparison
25038         set.
25039
25040 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25041
25042         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
25043         some formatting.
25044
25045 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
25046
25047         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
25048         loops.  Remove now unneeded calls to gimple_switch_set_label() that
25049         just set removed labels to NULL_TREE.
25050
25051 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
25052
25053         * tree-ssanames.c (set_range_info_raw): Abstract from ...
25054         (set_range_info): ...here.  Only call set_range_info_raw if domain
25055         is useful.
25056         (set_nonzero_bits): Call set_range_info_raw.
25057         * tree-ssanames.h (set_range_info_raw): New.
25058
25059 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
25060
25061         PR target/81225
25062         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
25063         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
25064         of nonimmediate_operand and <store_mask_constraint> instead of m
25065         for the input operand.  For V8FI iterator, always split if input
25066         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
25067         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
25068         <store_mask_predicate> instead of register_operand and
25069         <store_mask_constraint> instead of v for the input operand.  Make
25070         sure both operands aren't MEMs for if not <mask_applied>.
25071
25072 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
25073
25074         * lto-wrapper.c (copy_file) Close both file descriptors before
25075         exiting normally.
25076
25077 2017-06-30  Martin Liska  <mliska@suse.cz>
25078
25079         PR ipa/81214
25080         * multiple_target.c (create_dispatcher_calls): Make ifunc
25081         also for function that don't have calls or are not referenced.
25082
25083 2017-06-30  Richard Biener  <rguenther@suse.de>
25084
25085         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
25086         analyze the first scalar stmt.  Move vector type computation
25087         for the BB case here from ...
25088         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
25089         live operation processing in the SLP case properly.
25090
25091 2017-06-30  Richard Biener  <rguenther@suse.de>
25092
25093         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
25094
25095 2017-06-30  Martin Liska  <mliska@suse.cz>
25096
25097         PR sanitizer/81021
25098         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
25099         before BUILT_IN_UNWIND_RESUME when ASAN is used.
25100
25101 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
25102
25103         * doc/invoke.texi (AArch64): Add missing options and remove redundant
25104         ones.
25105
25106 2017-06-30  Richard Biener  <rguenther@suse.de>
25107
25108         PR tree-optimization/81249
25109         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
25110         condition reduction result to original scalar type.
25111
25112 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25113
25114         * profile-count.h (enum profile_quality): Fix typos and whitespace
25115         issues.
25116
25117 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25118
25119         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
25120         type for branch probabilities.
25121
25122 2017-06-29  Julian Brown  <julian@codesourcery.com>
25123             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25124
25125         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
25126         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
25127         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
25128         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
25129
25130 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25131
25132         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
25133         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
25134         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
25135         CC usage from generic code to here.
25136         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
25137         CC usage into the target macros.
25138
25139 2017-06-29  Maya Rashish  <coypu@sdf.org>
25140
25141         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
25142         objects.
25143
25144 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25145
25146         * arm/arm-builtins.c: Include profile-count.h
25147         * except.c (sjlj_emit_function_enter): Use
25148         profile_probability::unlikely.
25149
25150 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25151
25152         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
25153         and tocrel_offset be pointer args rather than implicitly using
25154         static versions.
25155         (legitimate_constant_pool_address_p, rs6000_emit_move,
25156         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
25157         tocrel_offset and use in toc_relative_expr_p call.
25158         (print_operand, print_operand_address): Use static tocrel_base_oac
25159         and tocrel_offset_oac.
25160         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
25161         tocrel_offset_oac.
25162
25163 2017-06-29  Maya Rashish  <coypu@sdf.org>
25164
25165         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
25166
25167 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
25168
25169         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
25170         objects, take into account only the alignment of 'op0' and 'mode1' if
25171         'op0' is a MEM.
25172
25173 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
25174
25175         * ccmp.c (ccmp_tree_comparison_p): New function.
25176         (ccmp_candidate_p): Update to use above function.
25177         (get_compare_parts): New function.
25178         (expand_ccmp_next): Update to use new functions.
25179         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
25180         new functions.
25181         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
25182         take mode as argument.
25183         * ccmp.h (expand_ccmp_expr): Add mode as argument.
25184         * expr.c (expand_expr_real_1): Pass mode as argument.
25185
25186 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
25187
25188         * combine.c (combine_instructions): Print insns to dump_file, together
25189         with their costs.
25190
25191 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25192
25193         * asan.c (asan_emit_stack_protection): Update.
25194         (create_cond_insert_point): Update.
25195         * auto-profile.c (afdo_propagate_circuit): Update.
25196         * basic-block.h (struct edge_def): Turn probability to
25197         profile_probability.
25198         (EDGE_FREQUENCY): Update.
25199         * bb-reorder.c (find_traces_1_round): Update.
25200         (better_edge_p): Update.
25201         (sanitize_hot_paths): Update.
25202         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
25203         (make_single_succ_edge): Update.
25204         (check_bb_profile): Update.
25205         (dump_edge_info): Update.
25206         (update_bb_profile_for_threading): Update.
25207         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
25208         probabilitycount to 0.
25209         * cfgbuild.c (compute_outgoing_frequencies): Update.
25210         * cfgcleanup.c (try_forward_edges): Update.
25211         (outgoing_edges_match): Update.
25212         (try_crossjump_to_edge): Update.
25213         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
25214         (expand_gimple_tailcall): Update.
25215         (construct_init_block): Use make_single_succ_edge.
25216         (construct_exit_block): Use make_single_succ_edge.
25217         * cfghooks.c (verify_flow_info): Update.
25218         (redirect_edge_succ_nodup): Update.
25219         (split_edge): Update.
25220         (account_profile_record): Update.
25221         * cfgloopanal.c (single_likely_exit): Update.
25222         * cfgloopmanip.c (scale_loop_profile): Update.
25223         (set_zero_probability): Remove.
25224         (duplicate_loop_to_header_edge): Update.
25225         * cfgloopmanip.h (loop_version): Update prototype.
25226         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
25227         (force_nonfallthru_and_redirect): Update.
25228         (update_br_prob_note): Update.
25229         (rtl_verify_edges): Update.
25230         (purge_dead_edges): Update.
25231         (rtl_lv_add_condition_to_bb): Update.
25232         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
25233         * cgraphunit.c (init_lowered_empty_function): Update.
25234         (cgraph_node::expand_thunk): Update.
25235         * cilk-common.c: Include profile-count.h
25236         * dojump.c (inv): Remove.
25237         (jumpifnot): Update.
25238         (jumpifnot_1): Update.
25239         (do_jump_1): Update.
25240         (do_jump): Update.
25241         (do_jump_by_parts_greater_rtx): Update.
25242         (do_compare_rtx_and_jump): Update.
25243         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
25244         do_jump_1. do_compare_rtx_and_jump): Update prototype.
25245         * dwarf2cfi.c: Include profile-count.h
25246         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
25247         (sjlj_emit_dispatch_table): Likewise.
25248         * explow.c: Include profile-count.h
25249         * expmed.c (emit_store_flag_force): Update.
25250         (do_cmp_and_jump): Update.
25251         * expr.c (compare_by_pieces_d::generate): Update.
25252         (compare_by_pieces_d::finish_mode): Update.
25253         (emit_block_move_via_loop): Update.
25254         (store_expr_with_bounds): Update.
25255         (store_constructor): Update.
25256         (expand_expr_real_2): Update.
25257         (expand_expr_real_1): Update.
25258         * expr.h (try_casesi, try_tablejump): Update prototypes.
25259         * gimple-pretty-print.c (dump_probability): Update.
25260         (dump_profile): New.
25261         (dump_gimple_label): Update.
25262         (dump_gimple_bb_header): Update.
25263         * graph.c (draw_cfg_node_succ_edges): Update.
25264         * hsa-gen.c (convert_switch_statements): Update.
25265         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
25266         (find_if_case_1): Update.
25267         (find_if_case_2): Update.
25268         * internal-fn.c (expand_arith_overflow_result_store): Update.
25269         (expand_addsub_overflow): Update.
25270         (expand_neg_overflow): Update.
25271         (expand_mul_overflow): Update.
25272         (expand_vector_ubsan_overflow): Update.
25273         * ipa-cp.c (good_cloning_opportunity_p): Update.
25274         * ipa-split.c (split_function): Use make_single_succ_edge.
25275         * ipa-utils.c (ipa_merge_profiles): Update.
25276         * loop-doloop.c (add_test): Update.
25277         (doloop_modify): Update.
25278         * loop-unroll.c (compare_and_jump_seq): Update.
25279         (unroll_loop_runtime_iterations): Update.
25280         * lra-constraints.c (lra_inheritance): Update.
25281         * lto-streamer-in.c (input_cfg): Update.
25282         * lto-streamer-out.c (output_cfg): Update.
25283         * mcf.c (adjust_cfg_counts): Update.
25284         * modulo-sched.c (sms_schedule): Update.
25285         * omp-expand.c (expand_omp_for_init_counts): Update.
25286         (extract_omp_for_update_vars): Update.
25287         (expand_omp_ordered_sink): Update.
25288         (expand_omp_for_ordered_loops): Update.
25289         (expand_omp_for_generic): Update.
25290         (expand_omp_for_static_nochunk): Update.
25291         (expand_omp_for_static_chunk): Update.
25292         (expand_cilk_for): Update.
25293         (expand_omp_simd): Update.
25294         (expand_omp_taskloop_for_outer): Update.
25295         (expand_omp_taskloop_for_inner): Update.
25296         * omp-simd-clone.c (simd_clone_adjust): Update.
25297         * optabs.c (expand_doubleword_shift): Update.
25298         (expand_abs): Update.
25299         (emit_cmp_and_jump_insn_1): Update.
25300         (expand_compare_and_swap_loop): Update.
25301         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
25302         * predict.c (predictable_edge_p): Update.
25303         (edge_probability_reliable_p): Update.
25304         (set_even_probabilities): Update.
25305         (combine_predictions_for_insn): Update.
25306         (combine_predictions_for_bb): Update.
25307         (propagate_freq): Update.
25308         (estimate_bb_frequencies): Update.
25309         (force_edge_cold): Update.
25310         * profile-count.c (profile_count::dump): Add missing space into dump.
25311         (profile_count::debug): Add newline.
25312         (profile_count::differs_from_p): Explicitly convert to unsigned.
25313         (profile_count::stream_in): Update.
25314         (profile_probability::dump): New member function.
25315         (profile_probability::debug): New member function.
25316         (profile_probability::differs_from_p): New member function.
25317         (profile_probability::differs_lot_from_p): New member function.
25318         (profile_probability::stream_in): New member function.
25319         (profile_probability::stream_out): New member function.
25320         * profile-count.h (profile_count_quality): Rename to ...
25321         (profile_quality): ... this one.
25322         (profile_probability): New.
25323         (profile_count): Update.
25324         * profile.c (compute_branch_probabilities): Update.
25325         * recog.c (peep2_attempt): Update.
25326         * sched-ebb.c (schedule_ebbs): Update.
25327         * sched-rgn.c (find_single_block_region): Update.
25328         (compute_dom_prob_ps): Update.
25329         (schedule_region): Update.
25330         * sel-sched-ir.c (compute_succs_info): Update.
25331         * stmt.c (struct case_node): Update.
25332         (do_jump_if_equal): Update.
25333         (get_outgoing_edge_probs): Update.
25334         (conditional_probability): Update.
25335         (emit_case_dispatch_table): Update.
25336         (expand_case): Update.
25337         (expand_sjlj_dispatch_table): Update.
25338         (emit_case_nodes): Update.
25339         * targhooks.c: Update.
25340         * tracer.c (better_p): Update.
25341         (find_best_successor): Update.
25342         * trans-mem.c (expand_transaction): Update.
25343         * tree-call-cdce.c: Update.
25344         * tree-cfg.c (gimple_split_edge): Upate.
25345         (move_sese_region_to_fn): Upate.
25346         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
25347         * tree-eh.c (lower_resx): Upate.
25348         (cleanup_empty_eh_move_lp): Upate.
25349         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25350         * tree-inline.c (copy_edges_for_bb): Update.
25351         (copy_cfg_body): Update.
25352         * tree-parloops.c (gen_parallel_loop): Update.
25353         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
25354         (gimple_gen_time_profiler): Update.
25355         * tree-ssa-dce.c (remove_dead_stmt): Update.
25356         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
25357         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
25358         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
25359         (unloop_loops): Update.
25360         (try_peel_loop): Update.
25361         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25362         * tree-ssa-loop-split.c (connect_loops): Update.
25363         (split_loop): Update.
25364         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25365         (hoist_guard): Update.
25366         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
25367         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
25368         (value_replacement): Update.
25369         * tree-ssa-reassoc.c (branch_fixup): Update.
25370         * tree-ssa-tail-merge.c (replace_block_by): Update.
25371         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
25372         (create_edge_and_update_destination_phis): Update.
25373         (compute_path_counts): Update.
25374         (recompute_probabilities): Update.
25375         (update_joiner_offpath_counts): Update.
25376         (freqs_to_counts_path): Update.
25377         (duplicate_thread_path): Update.
25378         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
25379         (struct switch_conv_info): Update.
25380         (gen_inbound_check): Update.
25381         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
25382         (vect_do_peeling): Update.
25383         (vect_loop_versioning): Update.
25384         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25385         (optimize_mask_stores): Update.
25386         * ubsan.c (ubsan_expand_null_ifn): Update.
25387         * value-prof.c (gimple_divmod_fixed_value): Update.
25388         (gimple_divmod_fixed_value_transform): Update.
25389         (gimple_mod_pow2): Update.
25390         (gimple_mod_pow2_value_transform): Update.
25391         (gimple_mod_subtract): Update.
25392         (gimple_mod_subtract_transform): Update.
25393         (gimple_ic): Update.
25394         (gimple_stringop_fixed_value): Update.
25395         (gimple_stringops_transform): Update.
25396         * value-prof.h: Update.
25397
25398 2017-06-29  Carl Love  <cel@us.ibm.com>
25399
25400         * config/rs6000/rs6000-c.c: Add support for built-in functions
25401         vector signed int vec_signed (vector float);
25402         vector signed long long vec_signed (vector double);
25403         vector signed int vec_signed2 (vector double, vector double);
25404         vector signed int vec_signede (vector double);
25405         vector signed int vec_signedo (vector double);
25406         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
25407         instruction generator.
25408         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
25409         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
25410         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
25411         Add define_insn.
25412         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
25413         vunsignede_v2df): Add define_expands.
25414         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
25415         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
25416         VEC_UNSIGNEDO): Add definitions.
25417         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
25418         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
25419         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
25420         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
25421         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
25422         * config/rs6000/altivec.h (vec_signed, vec_signed2,
25423         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
25424         vec_unsignede, vec_unsignedo): Add builtin defines.
25425         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
25426         declaration.
25427         * doc/extend.texi: Update the built-in documentation file for the
25428         new built-in functions.
25429
25430 2017-06-29  Richard Biener  <rguenther@suse.de>
25431
25432         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
25433         reduction chains to LOOP_VINFO_REDUCTIONS.
25434         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
25435         SLP reductions after processing reduction chains.
25436
25437 2017-06-29  Nathan Sidwell  <nathan@acm.org>
25438
25439         * builtins.c (fold_builtin_FUNCTION): Use
25440         lang_hooks.decl_printable_name.
25441
25442 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
25443
25444         PR middle-end/81194
25445         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
25446         with only one label.
25447         * stmt.c (expand_case): Assert NCASES is greater than one.
25448
25449 2017-06-29  Richard Biener  <rguenther@suse.de>
25450
25451         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
25452         anything.
25453         (group_case_labels): Likewise.
25454         (find_taken_edge): Push sanity checking on val to workers...
25455         (find_taken_edge_cond_expr): ... here
25456         (find_taken_edge_switch_expr): ... and here, handle cases
25457         with just a default label.
25458         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
25459         (group_case_labels): Likewise.
25460         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
25461         group_case_labels does anything cleanup the CFG again.
25462
25463 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
25464
25465         PR tree-optimization/81196
25466         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
25467         exit condition comparing two IVs.
25468
25469 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
25470
25471         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
25472         profile to the dummy entry at the end of the list of architectures.
25473         * config/arm/arm-cpu-cdata.h: Regenerated.
25474
25475 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25476             Michael Collison <michael.collison@arm.com>
25477
25478         PR target/70119
25479         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
25480         New pattern.
25481         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
25482         (*aarch64_reg_<mode>3_minus_mask): New pattern.
25483         (*aarch64_<optab>_reg_di3_mask2): New pattern.
25484         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
25485         of shift when the shift amount is masked with constant equal to
25486         the size of the mode.
25487         * config/aarch64/predicates.md (subreg_lowpart_operator): New
25488         predicate.
25489
25490 2017-06-29  Martin Liska  <mliska@suse.cz>
25491
25492         * config/i386/i386.opt: Change range from [1,5] to [0,5].
25493
25494 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
25495
25496         PR bootstrap/80565
25497         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
25498         code.
25499         * ipa-inline.h
25500         (edge_growth_cache_entry::edge_growth_cache_entry): New
25501         function.
25502         (reset_edge_growth_cache): Update to use constructor.
25503
25504 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25505
25506         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
25507         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
25508         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
25509
25510 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
25511
25512         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
25513         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
25514
25515 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
25516
25517         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
25518         (*-linux-uclibc*): Add t-uclibc tmake_file.
25519         * config/t-musl: New.
25520         * config/t-uclibc: New.
25521
25522 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
25523
25524         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
25525         context.
25526         (gen_comm_data): Emit architectural setting of arch_prof.
25527         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
25528         profile.
25529         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
25530         (armv8-m.base, armv8-m.main): Likewise.
25531         * arm-protos.h (arm_build_target): Add profile field.
25532         (arch_option): Likewise.
25533         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
25534         the active target.
25535         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
25536         arm_active_target.profile.
25537
25538 2017-06-28  Richard Biener  <rguenther@suse.de>
25539
25540         PR middle-end/81227
25541         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
25542         TYPE_OVERFLOW_WRAPS.
25543         * match.pd (negate_expr_p): Likewise.
25544         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
25545         fold_build2, not fold_binary.
25546
25547 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
25548
25549         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
25550         Convert memory address to Pmode.
25551         (aarch64_print_operand): Assert MEM operands are always Pmode.
25552
25553 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
25554
25555         PR target/79665
25556         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
25557         Remove redundant if.
25558         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
25559         * config/arm/aarch-common-protos.h
25560         (aarch_forward_to_shift_is_not_shifted_re): Remove.
25561         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
25562
25563 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
25564
25565         PR ipa/81238
25566         * multiple_target.c (create_dispatcher_calls): Set the default
25567         clone to be static, not public.
25568
25569 2017-06-28  Richard Biener  <rguenther@suse.de>
25570
25571         * tree-vect-loop.c (vectorizable_reduction): Move special
25572         cond reduction IV var creation ...
25573         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
25574         parameter.  Use STMT_VINFO_VECTYPE.
25575         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
25576         constant_p.
25577
25578 2017-06-28  Martin Liska  <mliska@suse.cz>
25579
25580         PR ipa/81128
25581         * ipa-visibility.c (non_local_p): Handle visibility.
25582
25583 2017-06-28  Martin Liska  <mliska@suse.cz>
25584
25585         PR driver/79659
25586         * common.opt: Add IntegerRange to various options.
25587         * opt-functions.awk (integer_range_info): New function.
25588         * optc-gen.awk: Add integer_range_info to cl_options struct.
25589         * opts-common.c (decode_cmdline_option): Handle
25590         CL_ERR_INT_RANGE_ARG.
25591         (cmdline_handle_error): Likewise.
25592         * opts.c (print_filtered_help): Show valid interval in
25593         when --help is provided.
25594         * opts.h (struct cl_option): Add range_min and range_max fields.
25595         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
25596
25597 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
25598
25599         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
25600         (x * C EQ/NE y * C): New transformation.
25601
25602 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
25603
25604         * genmultilib (combination_space): Accept '+' in option names.
25605
25606 2017-06-28  Martin Liska  <mliska@suse.cz>
25607
25608         PR sanitizer/81224
25609         * asan.c (instrument_derefs): Bail out inner references
25610         that are hard register variables.
25611
25612 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
25613
25614         PR target/81175
25615         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
25616         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
25617
25618 2017-06-28  Richard Biener  <rguenther@suse.de>
25619
25620         * tree-vectorizer.h (vect_get_vec_defs): Remove.
25621         (vect_get_slp_defs): Adjust.
25622         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
25623         out from ...
25624         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
25625         simplify.
25626         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
25627         get_initial_defs_for_reduction instead of vect_get_vec_defs.
25628         (vectorizable_reduction): Adjust.
25629         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
25630         handling.
25631         (vect_get_slp_defs): Likewise.
25632         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
25633         (vectorizable_bswap): Adjust.
25634         (vectorizable_call): Likewise.
25635         (vectorizable_conversion): Likewise.
25636         (vectorizable_assignment): Likewise.
25637         (vectorizable_shift): Likewise.
25638         (vectorizable_operation): Likewise.
25639         (vectorizable_store): Likewise.
25640         (vectorizable_condition): Likewise.
25641         (vectorizable_comparison): Likewise.
25642
25643 2017-06-28  Michael Collison  <michael.collison@arm.com>
25644
25645         PR target/68535
25646         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
25647         set of base_reg
25648         (arm_gen_movmemqi): Removed unused variable 'i'.
25649         Convert 'for' loop into 'while' loop.
25650         (arm_expand_prologue): Remove last unnecessary set of insn.
25651         (thumb_pop): Remove unused variable 'pushed_words'.
25652         (thumb_exit): Remove last unnecessary set of regs_to_pop.
25653
25654 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25655
25656         * config/s390/predicates.md: Use s390_rel_address_ok_p.
25657         * config/s390/s390-protos.h: Add prototype of
25658         s390_rel_address_ok_p.
25659         * config/s390/s390.c (s390_got_symbol): New function.
25660         (s390_rel_address_ok_p): New function.
25661         (legitimize_pic_address): Use s390_rel_address_ok_p.
25662         (s390_load_got): Use s390_got_symbol.
25663         (s390_option_override): Issue error if
25664         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
25665         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
25666         New macro.
25667         * config/s390/s390.opt: New option mpic-data-is-text-relative.
25668
25669 2017-06-27  Andrew Pinski  <apinski@cavium.com>
25670
25671         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
25672         (X * copysign (1.0, X)): New pattern.
25673         (X * copysign (1.0, -X)): New pattern.
25674         (copysign (-1.0, CST)): New pattern.
25675
25676 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
25677
25678         * genmultilib (combination_space): Remove variable.
25679         Validate reuse rules against regular expression for any sequence
25680         of multilib options in any order.
25681
25682 2017-06-27  Michael Collison  <michael.collison@arm.com>
25683
25684         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
25685         call aarch64_split_simd_combine.
25686         * (aarch64_combine_internal<mode>): Delete pattern.
25687         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
25688         Allow register and subreg operands.
25689
25690 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25691
25692         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
25693         specific need, just fallback on defaults.
25694         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
25695
25696 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25697             Olivier Hainque  <hainque@adacore.com>
25698
25699         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
25700         map for 64bits.
25701         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
25702         targets. Pick a default if no particular attempt applied.
25703         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
25704         larger contexts.
25705
25706 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25707
25708         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
25709         (x86_64-wrs-vxworks7): Likewise.
25710
25711 2017-06-27  Marek Polacek  <polacek@redhat.com>
25712
25713         PR sanitizer/81223
25714         * ubsan.c (instrument_null): Check get_base_address's result for null.
25715
25716 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
25717
25718         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
25719
25720 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
25721
25722         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
25723         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
25724         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
25725         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
25726         New function types.
25727         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
25728         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
25729         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
25730         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
25731         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
25732         BUILT_IN_FEUPDATEENV): New builtins.
25733         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
25734         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
25735         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
25736         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
25737         macros.
25738         (builtin_structptr_types): Adjust size.
25739         * tree.c (builtin_structptr_types): Add four entries.
25740
25741 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25742             Olivier Hainque  <hainque@adacore.com>
25743
25744         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
25745         (TLS_SYM): New local macro, forcing reference to __tls__ on
25746         link command lines for VxWorks 7 RTPs, triggering initialization
25747         of tlsLib.
25748         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
25749         OS features TLS support, true for RTPs on VxWorks 7.
25750         * config/vxworks.c (vxworks_override_options): Setup emutls
25751         accordingly.
25752
25753 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
25754
25755         * predict.c (test_prediction_value_range): Use -1U instead of -1
25756         to avoid narrowing conversion warning.
25757         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
25758         to avoid narrowing conversion warning.
25759         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
25760         -1.
25761         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
25762
25763 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25764
25765         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
25766         64bit configurations.
25767         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
25768         (SIZE_TYPE): Likewise.
25769         * config/vxworks.c (vxworks_emutls_var_fields): Use
25770         long_unsigned_type_node instead of unsigned_type_node as the offset
25771         field type, which is "pointer" mode in emutls.c.
25772
25773 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
25774
25775         PR sanitizer/81209
25776         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
25777
25778         PR middle-end/81207
25779         * gimple-fold.c (replace_call_with_call_and_fold): Handle
25780         gimple_vuse copying separately from gimple_vdef copying.
25781
25782 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
25783
25784         * value-prof.c (free_hist): Remove call to memset and the enclosing if
25785         condition.
25786
25787 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
25788             Olivier Hainque  <hainque@adacore.com>
25789
25790         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
25791         for all vxworks7 targets.
25792         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
25793         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
25794         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
25795         variations for VX6/VX7 and 32/64bits later on in ...
25796         (VXWORKS_LIB_SPEC): Leverage new macros.
25797         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
25798         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
25799
25800 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
25801
25802         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
25803         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
25804
25805 2017-06-26  Carl Love  <cel@us.ibm.com>
25806
25807         * config/rs6000/rs6000-c.c: Add support for built-in functions
25808         vector bool char vec_reve (vector bool char);
25809         vector signed char vec_reve (vector signed char);
25810         vector unsigned char vec_reve (vector unsigned char);
25811         vector bool int vec_reve (vector bool int);
25812         vector signed int vec_reve (vector signed int);
25813         vector unsigned int vec_reve (vector unsigned int);
25814         vector bool long long vec_reve (vector bool long long);
25815         vector signed long long vec_reve (vector signed long long);
25816         vector unsigned long long vec_reve (vector unsigned long long);
25817         vector bool short vec_reve (vector bool short);
25818         vector signed short vec_reve (vector signed short);
25819         vector double vec_reve (vector double);
25820         vector float vec_reve (vector float);
25821         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
25822         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
25823         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
25824         (altivec_vreve): New pattern.
25825         * config/rs6000/altivec.h (vec_reve): New define.
25826         * doc/extend.texi (vec_rev): Update the built-in documentation file
25827         for the new built-in functions.
25828
25829 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25830
25831         PR tree-optimization/71815
25832         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
25833         function.
25834         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
25835         has_single_use.
25836         (slsr_process_phi): Likewise.
25837         (replace_uncond_cands_and_profitable_phis): Don't replace a
25838         multiply candidate with a stride of 1 (copy or cast).
25839         (phi_incr_cost): Call uses_consumed_by_stmt rather than
25840         has_single_use.
25841         (lowest_cost_path): Likewise.
25842         (total_savings): Likewise.
25843
25844 2017-06-26  Richard Biener  <rguenther@suse.de>
25845
25846         PR target/81175
25847         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
25848         Use def_builtin_pure for all gather builtins.
25849
25850 2017-06-26  Richard Biener  <rguenther@suse.de>
25851
25852         PR tree-optimization/81203
25853         * tree-tailcall.c (find_tail_calls): Do not move stmts into
25854         non-dominating BBs.
25855
25856 2017-06-26  Marek Polacek  <polacek@redhat.com>
25857
25858         PR c/80116
25859         * doc/invoke.texi: Document -Wmultistatement-macros.
25860
25861 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
25862
25863         * doc/sourcebuild.texi (ARM-specific attributes): Document new
25864         arm_neon_ok_no_float_abi effective target.
25865
25866 2017-06-26  Richard Biener  <rguenther@suse.de>
25867
25868         PR tree-optimization/80928
25869         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
25870         (copy_bbs): Set BB_DUPLICATED flag early.
25871         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
25872         marked blocks.
25873         (execute_on_shrinking_pred): Likewise.
25874         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
25875         BB_DUPLICATED blocks.
25876         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
25877         iterate over all PHIs considering removal of *gsi.
25878
25879 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
25880
25881         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
25882         qdf24xx.
25883
25884 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25885
25886         * config/rs6000/rs6000-string.c: (expand_block_clear,
25887         do_load_for_compare, select_block_compare_mode,
25888         compute_current_alignment, expand_block_compare,
25889         expand_strncmp_align_check, expand_strn_compare,
25890         expand_block_move, rs6000_output_load_multiple)
25891         Move functions related to string/block move/compare
25892         to a separate file.
25893         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
25894         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
25895         for this function which is now used in two files.
25896         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
25897         * config.gcc: Add rs6000-string.o to extra_objs for
25898         targets powerpc*-*-* and rs6000*-*-*.
25899
25900 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
25901
25902         PR target/80510
25903         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
25904         32-bit, since indexed is not valid for DImode.
25905         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
25906         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
25907         (define_peephole2 for Altivec d-form load): Add 32-bit support.
25908         (define_peephole2 for Altivec d-form store): Likewise.
25909
25910         PR ipa/81185
25911         * multiple_target.c (create_dispatcher_calls): Only create the
25912         dispatcher call if the function is the default clone of a
25913         versioned function.
25914
25915 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
25916
25917         PR middle-end/80902
25918         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
25919         a call, force the call to not be a tail call.
25920
25921 2017-06-23  Jeff Law  <law@redhat.com>
25922
25923         * doc/contrib.texi: Add entry for Steven Pemberton's work on
25924         enquire.
25925
25926 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
25927
25928         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
25929         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
25930         handling for early expansion of vector shifts (sl,sr,sra,rl).
25931         (builtin_function_type): Add vector shift right instructions
25932         to the unsigned argument list.
25933
25934 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25935
25936         rtl-optimizatoin/79286
25937         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
25938         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
25939         trap.  PIC register plus a const unspec without offset can never trap.
25940
25941 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
25942
25943         * tree.h (builtin_structptr_type): New type.
25944         (builtin_structptr_types): Declare new array.
25945         * tree.c (builtin_structptr_types): New array.
25946         (free_lang_data, build_common_tree_nodes): Use it.
25947
25948 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
25949
25950         PR c++/81187
25951         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
25952         -Wnoexcept.
25953
25954 2017-06-22  Matt Turner  <mattst88@gmail.com>
25955
25956         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
25957         Lake models to skylake case.  Assume skylake for unknown
25958         models with clflushopt.
25959
25960 2017-06-22  Jeff Law  <law@redhat.com>
25961
25962         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
25963         frame sizes that do not satisfy aarch64_uimm12_shift.
25964
25965 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
25966
25967         * profile-count.h (apply_probability,
25968         apply_scale, probability_in): Fix checks for zero.
25969
25970 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25971
25972         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
25973         * doc/cppdiropts.texi (-I @var{dir}): Document it.
25974
25975 2016-06-22  Richard Biener  <rguenther@suse.de>
25976
25977         * tree-vect-loop.c (vect_model_reduction_cost): Handle
25978         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
25979         REDUC_MAX_EXPR support.
25980         (vectorizable_reduction): Likewise.
25981         (vect_create_epilog_for_reduction): Likewise.
25982
25983 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
25984
25985         * match.pd (A / (1 << B) -> A >> B): New.
25986         * generic-match-head.c: Include optabs-tree.h.
25987         * gimple-match-head.c: Likewise.
25988         * optabs-tree.h (target_supports_op_p): New.
25989         * optabs-tree.c (target_supports_op_p): New.
25990
25991 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25992
25993         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
25994         $gcc_cv_ld --help output.
25995         (gcc_cv_ld_demangle): Likewise.
25996         (gcc_cv_ld_eh_frame_hdr): Likewise.
25997         (gcc_cv_ld_pie): Likewise.
25998         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
25999         (gcc_cv_ld_buildid): Likewise.
26000         (gcc_cv_ld_sysroot): Likewise.
26001         (ld_bndplt_support): Likewise.
26002         (ld_pushpopstate_support): Likewise.
26003         * configure: Regenerate.
26004         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
26005
26006 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26007
26008         PR target/81151
26009         * config/i386/sse.md (round<mode>2): Renumber match_dup and
26010         operands indexes to avoid gap between operands and match_dups.
26011
26012 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26013
26014         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
26015         Increment Arith_shift and Arith_shift_reg by 1.
26016         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
26017         New tuning flag.
26018         * config/aarch64/aarch64.c (thunderx_tunings): Enable
26019         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
26020         (aarch64_strip_extend): Add new argument and test for it.
26021         (aarch64_cheap_mult_shift_p): New function.
26022         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
26023         add a cost if it is true.
26024         Update calls to aarch64_strip_extend.
26025         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
26026
26027 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26028
26029         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
26030         tunings.
26031         (thunderxt88): Likewise.
26032         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
26033         (thunderx_prefetch_tune): New variable.
26034         (thunderx2t99_prefetch_tune): Update for the correct values.
26035         (thunderxt88_tunings): New variable.
26036         (thunderx_tunings): Use thunderx_prefetch_tune instead of
26037         generic_prefetch_tune.
26038         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
26039
26040 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26041
26042         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
26043         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
26044         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
26045         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
26046         (aarch64_atomic_cas<mode>, GPI): Likewise.
26047
26048 2017-06-21  Martin Liska  <mliska@suse.cz>
26049
26050         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
26051         statements on cold and hot labels.
26052         * predict.c (tree_estimate_probability_bb): Remove the
26053         prediction from this place.
26054
26055 2017-06-21  Martin Liska  <mliska@suse.cz>
26056
26057         PR tree-optimization/79489
26058         * gimplify.c (maybe_add_early_return_predict_stmt): New
26059         function.
26060         (gimplify_return_expr): Call the function.
26061         * predict.c (tree_estimate_probability_bb): Remove handling
26062         of early return.
26063         * predict.def: Update comment about early return predictor.
26064         * gimple-predict.h (is_gimple_predict): New function.
26065         * predict.def: Change default value of early return to 66.
26066         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
26067         statements.
26068         * passes.def: Put pass_strip_predict_hints to the beginning of
26069         IPA passes.
26070
26071 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
26072
26073         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
26074         FUNCTION_DECL declarations.
26075         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
26076         declarations.
26077         (dwaf2out_decl): Likewise.
26078         * godump.c (go_early_global_decl): Skip call to the real debug hook
26079         for FUNCTION_DECL declarations.
26080         * passes.c (rest_of_decl_compilation): Skip call to the
26081         early_global_decl debug hook for FUNCTION_DECL declarations, unless
26082         -fdump-go-spec is passed.
26083
26084 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26085
26086         * config/i386/i386.c (struct builtin_isa): New field pure_p.
26087         Reorder for compactness.
26088         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
26089         (def_builtin_pure, def_builtin_pure2): New functions.
26090         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
26091
26092 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26093
26094         * match.pd (nop_convert): New predicate.
26095         ((A +- CST1) +- CST2): Allow some NOP conversions.
26096
26097 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26098
26099         PR c++/81130
26100         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
26101         with ctors/dtors if GOVD_SHARED is set.
26102
26103 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26104
26105         * config/aarch64/aarch64.md (movti_aarch64):
26106         Emit mov rather than orr.
26107         (movtf_aarch64): Likewise.
26108         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
26109         Emit mov rather than orr.
26110
26111 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26112
26113         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
26114         Swap alternatives, make integer dup more expensive.
26115
26116 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26117
26118         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
26119         Return true for non-tls symbols.
26120
26121 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
26122
26123         * config/aarch64/aarch64-cores.def (cortex-a55): New.
26124         (cortex-a75): Likewise.
26125         (cortex-a75.cortex-a55): Likewise.
26126         * config/aarch64/aarch64-tune.md: Regenerate.
26127         * doc/invoke.texi (-mtune): Document new values for -mtune.
26128
26129 2017-06-21  Tom de Vries  <tom@codesourcery.com>
26130
26131         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
26132         stack_size feature.
26133         (Effective-Target Keywords, Other attributes): Suggest using
26134         dg-add-options stack_size feature to get stack limit in stack_size
26135         effective target documentation.
26136
26137 2017-06-21  Julian Brown  <julian@codesourcery.com>
26138             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26139
26140         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
26141         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
26142         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
26143         reservation.
26144         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
26145         attribute type list for neon_multiply.
26146         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
26147         attribute type list for neon_multiply.
26148         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
26149         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
26150         attribute type list for neon_multiply.
26151         * config/arm/types.md (crypto_pmull): Add.
26152         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
26153         attribute type list.
26154
26155 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
26156
26157         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
26158         arm1176jzf-s.
26159
26160 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26161
26162         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
26163         to make sure not to dereference a NULL cost_classes_ptr pointer.
26164
26165 2017-06-20  Carl Love  <cel@us.ibm.com>
26166
26167         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26168         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
26169         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
26170         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
26171         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
26172         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
26173         VMULOSW): New enum "unspec" values.
26174         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
26175         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
26176         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
26177         altivec_vmulosw): New patterns.
26178         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
26179         VMULOSW): Add definitions.
26180
26181 2017-06-20  Julia Koval  <julia.koval@intel.com>
26182
26183         * config/i386/i386.c: Fix rounding expand for new pattern.
26184         * config/i386/subst.md: Fix pattern (parallel -> unspec).
26185
26186 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26187
26188         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
26189         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
26190
26191 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26192
26193         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
26194         feature string.
26195
26196 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26197
26198         * config/aarch64/aarch64-cores.def: Rearrange to sort by
26199         architecture, then by implementer ID.
26200         * config/aarch64/aarch64-tune.md: Regenerate.
26201
26202 2017-06-20  Richard Biener  <rguenther@suse.de>
26203
26204         PR middle-end/81097
26205         * fold-const.c (split_tree): Fold to type before negating.
26206
26207 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
26208
26209         * diagnostic-show-locus.c
26210         (selftest::test_fixit_deletion_affecting_newline): New function.
26211         (selftest::diagnostic_show_locus_c_tests): Call it.
26212
26213 2017-06-20  Andreas Schwab  <schwab@suse.de>
26214
26215         PR target/80970
26216         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
26217         instead of "+d".
26218
26219 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
26220
26221         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
26222         __ARM_FEATURE_COPROC according to support.
26223
26224 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26225
26226         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
26227         Rewritten to avoid overflow for > 32-bit pointers.
26228
26229         PR sanitizer/81125
26230         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
26231         by removing enum keyword.
26232         (ubsan_type_descriptor): Likewise.  Formatting fix.
26233
26234         PR target/81121
26235         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
26236         splitter): Require TARGET_SSE2 in the condition.
26237
26238 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
26239
26240         PR target/79799
26241         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
26242         for doing vector set of SFmode on ISA 3.0.
26243         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
26244         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
26245         element.
26246         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
26247         SFmode value into a V4SF variable that was extracted from another
26248         V4SF variable without converting the element to double precision
26249         and back to single precision vector format.
26250         (vsx_insert_extract_v4sf_p9_2): Likewise.
26251
26252 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
26253
26254         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
26255         in UWHI to avoid undefined overflow.
26256
26257         PR sanitizer/81125
26258         * ubsan.h (enum ubsan_encode_value_phase): New.
26259         (ubsan_encode_value): Change second argument to
26260         enum ubsan_encode_value_phase with default value of
26261         UBSAN_ENCODE_VALUE_GENERIC.
26262         * ubsan.c (ubsan_encode_value): Change second argument to
26263         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
26264         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
26265         create_tmp_var_raw instead of create_tmp_var and use a
26266         TARGET_EXPR.
26267         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
26268         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
26269         ubsan_encode_value callers.
26270
26271         PR sanitizer/81111
26272         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
26273         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
26274         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
26275
26276 2017-06-19  Richard Biener  <rguenther@suse.de>
26277
26278         PR middle-end/81118
26279         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
26280         estimates if we changed anything.
26281
26282 2017-06-19  Richard Biener  <rguenther@suse.de>
26283
26284         PR tree-optimization/80887
26285         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
26286         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
26287         simplified lookups, then reset mprts_hook.
26288         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
26289         simplifying.
26290         (try_to_simplify): Likewise.
26291
26292 2017-06-19  Martin Liska  <mliska@suse.cz>
26293
26294         PR sanitizer/80879
26295         * gimplify.c (gimplify_switch_expr):
26296         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
26297
26298 2017-06-19  Martin Liska  <mliska@suse.cz>
26299
26300         * doc/install.texi: Document that PGO runs in 4 stages.
26301
26302 2017-06-19  Martin Liska  <mliska@suse.cz>
26303
26304         PR ipa/80732
26305         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
26306         to dispatcher function name.
26307         * multiple_target.c (replace_function_decl): New function.
26308         (create_dispatcher_calls): Redirect both edges and references.
26309
26310 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
26311
26312         * profile-count.c (profile_count::dump): Dump quality.
26313         (profile_count::differs_from_p): Update for unsigned val.
26314         * profile-count.h (profile_count_quality): New enum.
26315         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
26316
26317 2017-06-19  Richard Biener  <rguenther@suse.de>
26318
26319         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
26320         struct function as arg.
26321         (estimate_numbers_of_iterations): Export overload with loop arg.
26322         (free_numbers_of_iterations_estimates_loop): Use an overload of
26323         free_numbers_of_iterations_estimates instead.
26324         * tree-cfg.c (remove_bb): Adjust.
26325         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
26326         * tree-parloops.c (gen_parallel_loop): Likewise.
26327         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
26328         Likewise.
26329         (tree_unroll_loops_completely): Likewise.
26330         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
26331         Use an overload instead and export.
26332         (estimated_loop_iterations): Adjust.
26333         (max_loop_iterations): Likewise.
26334         (likely_max_loop_iterations): Likewise.
26335         (estimate_numbers_of_iterations): Take struct function as arg
26336         and adjust.
26337         (loop_exits_before_overflow): Adjust.
26338         (free_numbers_of_iterations_estimates_loop): Use an overload.
26339         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
26340         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
26341
26342 2017-06-19  Richard Biener  <rguenther@suse.de>
26343
26344         PR ipa/81112
26345         * ipa-prop.c (find_constructor_constant_at_offset): Handle
26346         RANGE_EXPR conservatively.
26347
26348 2017-06-16  Carl Love  <cel@us.ibm.com>
26349
26350         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26351         definitions for vec_float, vec_float2, vec_floato,
26352         vec_floate built-ins.
26353         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
26354         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
26355         floate.
26356         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
26357         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
26358         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
26359         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
26360         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
26361         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
26362         vec_floato): Add builtin defines.
26363         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
26364         Update the built-in documentation file for the new built-in
26365         functions.
26366
26367 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26368
26369         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
26370         (mthumb): Mark as the negative of -marm.
26371
26372 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26373
26374         * doc/invoke.texi (ARM Options, -mcpu): Document supported
26375         extension options.
26376         (ARM Options, -mtune): Document that this accepts the same
26377         extension options as -mcpu.
26378         (ARM Options, -mfpu): Document addition of -mfpu=auto.
26379
26380 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26381
26382         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
26383         permitted extensions.
26384
26385 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26386
26387         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
26388         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
26389         (armv8-m.main): Add option +nodsp.
26390         * config/arm/arm-cpu-cdata.h: Regenerated.
26391
26392 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26393
26394         * config/arm/t-fuchsia: New file.
26395         * config.gcc (arm*-*-fuchsia*): Use it.
26396
26397 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26398
26399         * config/arm/t-symbian: Rewrite for new option infrastructure.
26400
26401 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26402
26403         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
26404         (MULTILIB_REQUIRED): Likewise.
26405
26406 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26407
26408         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
26409         (MULTILIB_RESUE): Likewise.
26410         (MULTILIB_MATCHES): Likewise.
26411         (MULTLIB_REQUIRED): Likewise.
26412
26413 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26414
26415         * config/arm/t-rtems: Rewrite for new option framework.
26416
26417 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26418
26419         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
26420         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
26421         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
26422         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
26423         * config/arm/t-multilib: ... here.
26424         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
26425         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
26426         armv7-a and armv8*-a when A-profile libraries have not been built.
26427         * config/arm/t-rmprofile: Rewrite.
26428
26429 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26430
26431         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
26432         with a backslash.  Remove the backslash after substituting unescaped
26433         periods.
26434         * doc/fragments.texi (MULTILIB_REUSE): Document it.
26435
26436 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26437
26438         * config.gcc: (arm*-*-*): When building a-profile libraries, force
26439         the driver to pass through the default setting of -mfloat-abi.
26440         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
26441         rather than NULL.
26442         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
26443         (all_feat_combs): New rule.
26444         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
26445         default libraries.
26446         * config/arm/t-aprofile: Rewrite.
26447
26448 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26449
26450         * config/arm/arm.h (FPUTYPE_AUTO): Define.
26451         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
26452         fpu is not specified by the user/command-line.
26453         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
26454         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
26455         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
26456         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
26457         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
26458         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
26459
26460 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26461
26462         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
26463         * config/arm/t-arm-elf: Rewritten.
26464
26465 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26466
26467         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
26468         have some floating-point instructions.
26469         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
26470         (TARGET_MAYBE_HARD_FLOAT): New macro.
26471         * config/arm/arm-builtins.c (arm_init_builtins): Use
26472         TARGET_MAYBE_HARD_FLOAT.
26473         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
26474
26475 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26476
26477         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
26478         (configargs.h): Include it.
26479         (arm_print_hint_for_fpu_option): New function.
26480         (arm_parse_fpu_option): New function.
26481         (candidate_extension): New class.
26482         (arm_canon_for_multilib): New function.
26483         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
26484         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
26485         (ARCH_CANONICAL_SPECS): New macro.
26486         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
26487
26488 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26489
26490         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
26491         are set after handling multilib fragments.  Set target_cpu_default2
26492         from with_cpu.
26493
26494 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26495
26496         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
26497         cpu name.
26498         (arm*-*-*): Set target_cpu_default2 to a quoted string.
26499         * config/arm/parsecpu.awk (check_cpu): Validate any extension
26500         options.
26501         (check_arch): Likewise.
26502         * config/arm/arm.c (arm_configure_build_target): Handle
26503         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
26504         options in the default.
26505
26506 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26507
26508         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
26509         when an option is an alias of another.
26510         * config/arm/parsecpu.awk (optalias): New parser token.
26511         (gen_comm_data): Mark non-alias options as such.  Emit entries
26512         for extension aliases.
26513         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
26514         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
26515         (armv6kz, armv6zk, armv6t2): Likewise.
26516         (armv7): Make vfpv3-d16 an alias.
26517         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
26518         canonical order.
26519         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
26520         Sort in canonical order.
26521         (armv8-a): Sort in canonical order.
26522         (armv8.1-a, armv8.2-a):  Likewise.
26523         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
26524         canonical order.
26525         (cortex-a9): Sort in canonical order.
26526         * config/arm/arm.c (selftests.h): Include it.
26527         (arm_test_cpu_arch_data): New function.
26528         (arm_run_self_tests): New function.
26529         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
26530         (targetm): Move declaration to the end of the file.
26531         * arm-cpu-cdata.h: Regenerated.
26532
26533 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26534
26535         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
26536         call to target_mode_check describing the type of option passed.
26537         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
26538         (arm_target_thumb_only): Use arm_parse_arch_option_name or
26539         arm_parse_cpu_option_name to match parameters against list of
26540         available targets.
26541         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
26542         arm_arch_core_flags data structure.
26543         * config/arm/arm-cpu_cdata.h: Regenerated.
26544
26545 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26546
26547         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
26548         config/arm/arm.c.
26549         (arm_print_hint_for_cpu_option): Likewise.
26550         (arm_print_hint_for_arch_option): Likewise.
26551         (arm_parse_cpu_option_name): Likewise.
26552         (arm_parse_arch_option_name): Likewise.
26553         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
26554         of entries in the all_fpus list.
26555         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
26556         (arm_parse_cpu_option_name): Declare.
26557         (arm_parse_arch_option_name): Declare.
26558         (arm_parse_option_features): Declare.
26559         (arm_intialize_isa): Declare.
26560         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
26561         data tables to ...
26562         (gen_comm_data): ... here.  Make definitions non-static.
26563         * config/arm/arm-cpu-data.h: Regenerated.
26564         * config/arm/arm-cpu-cdata.h: Regenerated.
26565
26566 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26567
26568         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
26569         (cpu_arch_extension): New structure.
26570         (cpu_arch_option, arch_option, cpu_option): New structures.
26571         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
26572         architecture types.
26573         (gen_data): Generate new format data tables.
26574         * config/arm/arm.c (cpu_tune): New structure.
26575         (cpu_option, processors): Delete.
26576         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
26577         (arm_print_hint_for_cpu_option): ... this and ...
26578         (arm_print_hint_for_arch_option): ... this.
26579         (arm_parse_arch_cpu_name): Delete.  Replace with ...
26580         (arm_parse_cpu_option_name): ... this and ...
26581         (arm_parse_arch_option_name): ... this.
26582         (arm_unrecognized_feature): Change type of target parameter to
26583         cpu_arch_option.
26584         (arm_parse_arch_cpu_features): Delete.  Replace with ...
26585         (arm_parse_option_features): ... this.
26586         (arm_configure_build_target): Rework to use new configuration data
26587         tables.
26588         (arm_print_tune_info): Rework for new configuration data tables.
26589         * config/arm/arm-cpu-data.h: Regenerated.
26590         * config/arm/arm-cpu.h: Regenerated.
26591
26592 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26593
26594         * Makefile.in (OBJS): Move sbitmap.o from here ...
26595         (OBJS-libcommon): ... to here.
26596
26597 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26598
26599         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
26600         (ISA_ALL_CRYPTO): New macro.
26601         (ISA_ALL_SIMD): New macro
26602         (ISA_ALL_FP): New macro.
26603         * config/arm/arm.c (fpu_bitlist): Update initializer.
26604         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
26605         simd or fp.
26606         (arm9e): Add fpu.  Add option for nofp
26607         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
26608         (arm926ej-s, arm1026ej-s): Likewise.
26609         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
26610         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
26611         neon-fp16, neon-vfpv4, nofp and nosimd.
26612         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
26613         (cortex-a8): Add fpu.  Add option for nofp.
26614         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
26615         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
26616         (cortex-r4f): Add fpu.
26617         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
26618         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
26619         for nofp.
26620         (cortex-r8): Likewise.
26621         (cortex-m4): Add fpu.  Add option for nofp.
26622         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
26623         (cortex-a17.cortex-a7): Likewise.
26624         (cortex-a32): Add fpu.  Add options for crypto and nofp.
26625         (cortex-a35, cortex-a53): Likewise.
26626         (cortex-a57): Add fpu.  Add option for crypto.
26627         (cortex-a72, cortex-a73): Likewise.
26628         (exynos-m1): Likewise.
26629         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
26630         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
26631         (cortex-m33): Add fpu.  Add option for nofp.
26632         * config/arm/arm-cpu-cdata.h: Regenerated
26633         * config/arm/arm-cpu-data.h: Regenerated.
26634
26635 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26636
26637         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
26638         (armv5te, armv5tej): Likewise.
26639         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
26640         (armv7): Add options fp and vfpv3-d16.
26641         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
26642         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
26643         nofp and nosimd.
26644         (armv7ve): Likewise.
26645         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
26646         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
26647         (armv8-a): Add nocrypto option.
26648         (armv8.1-a, armv8.2-a): Likewise.
26649         (armv8-m.main): add options fp, fp.dp and nofp.
26650
26651 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26652
26653         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
26654         nofp.
26655         (armv8-a+crc): Delete.
26656         (armv8.1-a): Add options simd, crypto and nofp.
26657         (armv8.2-a): Add options fp16, simd, crypto and nofp.
26658         (armv8.2-a+fp16): Delete.
26659         (armv8-m.main): Add option dsp.
26660         (armv8-m.main+dsp): Delete.
26661         (cortex-a8): Add fpu.  Add nofp option.
26662         (cortex-a9): Add fpu.  Add nofp and nosimd options.
26663         * config/arm/parsecpu.awk (gen_data): Generate option tables and
26664         link to main cpu and architecture data structures.
26665         (gen_comm_data): Only put isa attributes from the main architecture
26666         in common tables.
26667         (option): New statement for architecture and CPU entries.
26668         * arm.c (struct cpu_option): New structure.
26669         (struct processors): Add entry for options.
26670         (arm_unrecognized_feature): New function.
26671         (arm_parse_arch_cpu_name): Ignore any characters after the first
26672         '+' character.
26673         (arm_parse_arch_cpu_feature): New function.
26674         (arm_configure_build_target): Separate out any CPU and architecture
26675         features and parse separately.  Don't error out if -mfpu=auto is
26676         used with only an architecture string.
26677         (arm_print_asm_arch_directives): New function.
26678         (arm_file_start): Call it.
26679         * config/arm/arm-cpu-cdata.h: Regenerated.
26680         * config/arm/arm-cpu-data.h: Likewise.
26681         * config/arm/arm-tables.opt: Likewise.
26682
26683 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26684
26685         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
26686         assembler when it is not -mfpu=auto.
26687
26688 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26689
26690         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
26691         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
26692         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
26693         (ASM_CPU_SPEC): Rewrite.
26694         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
26695         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
26696         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
26697         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
26698         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
26699         copied string is NUL-terminated.  Also strip any characters prefixed
26700         by '+'.
26701         (arm_rewrite_selected_arch): New function.
26702         (arm_rewrite_march): New function.
26703
26704 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26705
26706         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
26707         (x_arm_cpu_string, x_arm_tune_string): Likewise.
26708         (march, mcpu, mtune): Convert to string-based options.
26709         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
26710         (arm_parse_arch_cpu_name): New function.
26711         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
26712         identify selected architecture or CPU.
26713         (arm_option_save): New function.
26714         (TARGET_OPTION_SAVE): Redefine.
26715         (arm_option_restore): Restore string options.
26716         (arm_option_print): Print string options.
26717
26718 2017-06-16  Martin Sebor  <msebor@redhat.com>
26719
26720         PR tree-optimization/80933
26721         PR tree-optimization/80934
26722         * builtins.c (fold_builtin_3): Do not handle bcmp here.
26723         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
26724         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
26725         (gimple_fold_builtin): Call them.
26726
26727 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26728
26729         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
26730         as unlikely; update profile.
26731
26732 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26733
26734         * predict.c (force_edge_cold): Handle declaring edges impossible
26735         more aggresively.
26736
26737 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26738
26739         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
26740         profile.
26741         (try_unroll_loop_completely): Fix reporting.
26742
26743 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26744
26745         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
26746
26747 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
26748
26749         PR target/71778
26750         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
26751         if given a non-constant argument for an intrinsic which requires a
26752         constant.
26753
26754 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26755
26756         * profile.c (compare_freqs): New function.
26757         (branch_prob): Sort edge list.
26758         (find_spanning_tree): Assume that the list is priority sorted.
26759
26760 2017-06-16  Richard Biener  <rguenther@suse.de>
26761
26762         PR tree-optimization/81090
26763         * passes.def (pass_record_bounds): Remove.
26764         * tree-pass.h (make_pass_record_bounds): Likewise.
26765         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
26766         make_pass_record_bounds): Likewise.
26767         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
26768         not free niter estimates at the beginning but at the end.
26769         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
26770
26771 2017-06-16  Richard Biener  <rguenther@suse.de>
26772
26773         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
26774         initializer to workaround ICE in host GCC 4.8.
26775
26776 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26777
26778         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
26779         counts.
26780         (clone_inlined_nodes): Update.
26781
26782 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26783
26784         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
26785         prefetch settings, and enable prefetching by default at -O3.
26786
26787 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26788
26789         * config/aarch64/aarch64.c (aarch64_override_options_internal):
26790         Set flag_prefetch_loop_arrays according to tuning data.
26791
26792 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26793
26794         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
26795         New tune structure.
26796         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
26797         [Unrelated to main purpose of the patch] Place the pointer field last
26798         to enable type checking errors when tune structure are wrongly merged.
26799         * config/aarch64/aarch64.c (generic_prefetch_tune,)
26800         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
26801         (thunderx2t99_prefetch_tune): New tune constants.
26802         (tune_params *_tunings): Update all tunings (no functional change).
26803         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
26804         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
26805         from tunings structures.
26806
26807 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
26808
26809         PR sanitizer/81094
26810         * ubsan.c (instrument_null): Add T argument, use it instead
26811         of computing it based on IS_LHS.
26812         (instrument_object_size): Likewise.
26813         (pass_ubsan::execute): Adjust instrument_null and
26814         instrument_object_size callers to pass gimple_get_lhs or
26815         gimple_assign_rhs1 result to it.  Use instrument_null instead of
26816         calling get_base_address and instrument_mem_ref.  Handle
26817         aggregate call arguments for object-size sanitization.
26818
26819 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
26820
26821         PR tree-optimization/81089
26822         * tree-vrp.c (is_masked_range_test): Validate operands of
26823         subexpression.
26824
26825 2017-06-15  Martin Sebor  <msebor@redhat.com>
26826
26827         PR c++/80560
26828         * dumpfile.c (dump_register): Avoid calling memset to initialize
26829         a class with a default ctor.
26830         * gcc.c (struct compiler): Remove const qualification.
26831         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
26832         * hash-table.h: Ditto.
26833         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
26834           assignment.
26835         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
26836         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
26837         default ctor.
26838         * params.h (struct param_info): Make struct members non-const.
26839         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
26840         with default initialization.
26841         * vec.h (vec_copy_construct, vec_default_construct): New helper
26842         functions.
26843         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
26844         with vec_copy_construct.
26845         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
26846         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
26847         * doc/invoke.texi (-Wclass-memaccess): Document.
26848
26849 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26850
26851         * emit-rtl.h (is_leaf): Update comment about local
26852         register allocator.
26853
26854 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
26855
26856         PR target/78818
26857         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
26858         for a variable to have a section before checking if the section has a
26859         name.
26860         Set section to.persistent if persistent attribute is set.
26861         Warn if .persistent attribute is used on an automatic variable.
26862
26863 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
26864
26865         PR rtl-optimization/80474
26866         * reorg.c (update_block): Do not ignore instructions in a delay slot.
26867
26868 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
26869
26870         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
26871         of REGNO.
26872
26873 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
26874
26875         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
26876         (casesi): Emit bounds checking as RTL.
26877         (casesi_internal_mips16_<mode>): Remove bounds checking.
26878
26879 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
26880
26881         * config/xtensa/xtensa.c (xtensa_option_override): Append
26882         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
26883         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
26884          xtensa_doloop_hooks): Define unconditionally.
26885         (xtensa_reorg_loops): Only call reorg_loops in the presence of
26886         TARGET_LOOPS.
26887         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
26888         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
26889         for it in xtensa_option_override.
26890         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
26891          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
26892
26893 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
26894
26895         * doc/cppopts.texi: Document '-' special value to -MF.
26896
26897 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
26898
26899         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
26900         (cortex_a53_fconst): Likewise.
26901         (cortex_a53_fpmul): Likewise.
26902         (cortex_a53_f_load_64): Likewise.
26903         (cortex_a53_f_load_many): Likewise.
26904         (cortex_a53_advsimd_alu): Likewise.
26905         (cortex_a53_advsimd_alu_q): Likewise.
26906         (cortex_a53_advsimd_mul): Likewise.
26907         (cortex_a53_advsimd_mul_q): Likewise.
26908         (fpmac bypass): Add new bypass for fpmac-fpmac case.
26909         Add missing fmul, r2f_cvt and fconst cases.
26910
26911 2017-06-14  Richard Biener  <rguenther@suse.de>
26912
26913         PR middle-end/81088
26914         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
26915         literal constants.
26916         (fold_binary_loc): When associating do not treat pre-existing
26917         TREE_OVERFLOW on literal constants as a reason to allow
26918         TREE_OVERFLOW on associated literal constants.
26919
26920 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26921
26922         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
26923         (MASK_FEATURES): New macro.
26924         * config/sparc/sparc.c (sparc_option_override): Remove the special
26925         handling of -mfpu and generalize it to all MASK_FEATURES switches.
26926
26927 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26928
26929         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
26930         a division of 0 if non-call exceptions are enabled.
26931
26932 2017-06-14  Andrew Pinski  <apinski@cavium.com>
26933             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26934
26935         PR target/71663
26936         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
26937         Improve vector initialization code gen for only variable case.
26938
26939 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26940
26941         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
26942
26943 2017-06-14  Richard Biener  <rguenther@suse.de>
26944
26945         PR tree-optimization/81083
26946         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
26947         as values.
26948
26949 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26950
26951         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
26952         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
26953         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
26954         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
26955         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
26956         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
26957
26958 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26959
26960         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
26961         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
26962
26963 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26964
26965         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
26966
26967 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26968
26969         * config/rs6000/t-rtems: Don't handle SPE.
26970
26971 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26972
26973         * config/rs6000/t-linux: Don't handle SPE.
26974
26975 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26976
26977         * config/rs6000/eabispe.h: Delete file.
26978
26979 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26980
26981         * config/rs6000/t-spe: Delete file.
26982
26983 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26984
26985         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
26986         (rs6000_legitimate_offset_address_p): Return false for anything in
26987         V2SImode or V2SFmode.
26988
26989 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26990
26991         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
26992         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
26993         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
26994         and V4HImode.
26995         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
26996         (rs6000_legitimate_offset_address_p): Ditto.
26997         (rs6000_emit_move): Ditto.
26998         (rs6000_init_builtins): Remove V4HI_type_node.
26999
27000 2017-06-13  Martin Liska  <mliska@suse.cz>
27001
27002         PR sanitize/78204
27003         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
27004         (gate_asan): Likewise.
27005         * asan.h (asan_no_sanitize_address_p): Remove the function.
27006         (sanitize_flags_p): New function.
27007         * builtins.def: Fix coding style.
27008         * common.opt: Use renamed enum value.
27009         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
27010         * doc/extend.texi: Document no_sanitize attribute.
27011         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
27012         to SANITIZE_UNDEFINED_NONDEFAULT.
27013         * gcc.c (sanitize_spec_function): Use the renamed enum value.
27014         * gimple-fold.c (optimize_atomic_compare_exchange_p):
27015         Use sanitize_flags_p.
27016         * gimplify.c (gimplify_function_tree): Likewise.
27017         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
27018         * opts.c (parse_no_sanitize_attribute): New function.
27019         (common_handle_option): Use renamed enum value.
27020         * opts.h (parse_no_sanitize_attribute): Declare.
27021         * tree.c (sanitize_flags_p): New function.
27022         * tree.h: Declared here.
27023         * tsan.c: Use sanitize_flags_p.
27024         * ubsan.c (ubsan_expand_null_ifn): Likewise.
27025         (instrument_mem_ref): Likewise.
27026         (instrument_bool_enum_load): Likewise.
27027         (do_ubsan_in_current_function): Remove the function.
27028         (pass_ubsan::execute): Use sanitize_flags_p.
27029         * ubsan.h: Remove do_ubsan_in_current_function
27030         * tree-cfg.c (print_no_sanitize_attr_value): New function.
27031         (dump_function_to_file): Use it here.
27032
27033 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27034
27035         PR tree-optimization/80803
27036         PR tree-optimization/81063
27037         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
27038         (propagate_subaccesses_across_link): Enqueue subtree whenever
27039         necessary instead of relying on the caller.
27040
27041 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27042
27043         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
27044         that have a first_link.
27045         (sort_and_splice_var_accesses): Do not check first_link before
27046         enquing.
27047         (subtree_mark_written_and_enqueue): Likewise.
27048         (propagate_all_subaccesses): Likewise and do not stop at first
27049         parent with a first_link.
27050
27051 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27052
27053         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
27054         instead of f.
27055
27056 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27057
27058         * match.pd: New pattern.
27059
27060 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27061
27062         * tree-vrp.c (is_masked_range_test): New function.
27063         (register_edge_assert_for): Determine ranges for
27064         some bit tests.
27065
27066 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27067
27068         PR tree-optimization/67328
27069         * fold-const.c (maskable_range_p): New function.
27070         (build_range_check): Generate bittests if possible.
27071
27072 2017-06-13  Martin Liska  <mliska@suse.cz>
27073
27074         * gimple-pretty-print.c (dump_probability): Add new argument.
27075         (dump_edge_probability): Dump both probability and count.
27076         (dump_gimple_label): Likewise.
27077         (dump_gimple_bb_header): Likewise.
27078
27079 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
27080
27081         PR target/81072
27082         * config/avr/avr-devices.c: Fix indentation.
27083         * config/avr/gen-avr-mmcu-specs.c: Dito.
27084
27085 2017-06-13  Richard Biener  <rguenther@suse.de>
27086
27087         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
27088         instead get vector type from stmt_info.
27089         (vectorizable_reduction): Adjust.  Remove dead code.
27090
27091 2017-06-13  Richard Biener  <rguenther@suse.de>
27092
27093         PR middle-end/81065
27094         * fold-const.c (extract_muldiv_1): Remove bogus distribution
27095         case of C * (x * C2 + C3).
27096         (fold_addr_of_array_ref_difference): Properly fold index difference.
27097
27098 2017-06-12  David S. Miller  <davem@davemloft.net>
27099
27100         PR target/80968
27101         * config/sparc/sparc.md (return expander): Emit frame blockage if
27102         function uses alloca.
27103
27104 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
27105
27106         * combine.c (make_field_assignment): Check len rather than the mode
27107         precision when calling force_to_mode.
27108
27109 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
27110
27111         Support multilibs and devices that see flash in RAM address range.
27112
27113         PR target/81072
27114         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
27115         (avr_mcu_t) <flash_pm_offset>: New field.
27116         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
27117         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
27118         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
27119         (AVR_TINY_PM_OFFSET): Remove macro.
27120         * config/avr/avr.opt (-mshort-calls): New option.
27121         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
27122         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
27123         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
27124         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
27125         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
27126         instead of avr_arch->have_jmp_call.
27127         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
27128         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
27129         avr_arch->flash_pm_offset to define.
27130         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
27131         new field flash_pm_offset.  Add entry for avrxmega3.
27132         (avr_texinfo): Add entry for avrxmega3.
27133         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
27134         attiny212, attiny214,
27135         attiny412, attiny414, attiny416, attiny417,
27136         attiny814, attiny816, attiny817,
27137         attiny1614, attiny1616, attiny1617,
27138         attiny3214, attiny3216, attiny3217.
27139         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
27140         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
27141         (avr_print_operand_address) [AVR_TINY]: Same.
27142         (avr_asm_init_sections) <readonly_data_section>: Only patch
27143         callback if avr_arch->flash_pm_offset = 0.
27144         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
27145         for rodata if avr_arch->flash_pm_offset != 0.
27146         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
27147         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
27148         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
27149         (m_options): Append opt_rcall.
27150         (m_dirnames): Append dir_rcall.
27151         * config/avr/t-multilib: Regenerate.
27152
27153         * configure.ac [target=avr]: Check whether avrxmega3 default
27154         linker description file works as needed.
27155         * configure: Regenerate.
27156         * doc/avr-mmcu.texi: Regenerate.
27157         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
27158         <__AVR_ARCH__>: Document avrxmega3 and 103.
27159         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
27160         <__AVR_SHORT_CALLS__>: Document it.
27161         <__AVR_PM_BASE_ADDRESS__>: Document it.
27162         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
27163         (AVR Variable Attributes) <progmem>: Document this is
27164         not needed for avrxmega3.
27165         (AVR Named Address Spaces) <__flash>: Dito.
27166
27167 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
27168
27169         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
27170
27171 2017-06-12  Doug Rupp  <rupp@adacore.com>
27172
27173         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
27174         Append vxworks-stdint.h to the tm_file list.
27175         * config/vxworks-stdint.h: New file.
27176
27177 2017-06-12  Martin Liska  <mliska@suse.cz>
27178
27179         PR tree-optimization/81041
27180         * tree-profile.c (gimple_gen_ic_func_profiler):
27181         Create an extra BB in profile-generate
27182         (gimple_gen_time_profiler): Likewise.
27183
27184 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
27185
27186         PR tree-optimization/81003
27187         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
27188         (update_range_test): Use it instead of force_gimple_operand_gsi.
27189
27190 2017-06-12  Richard Biener  <rguenther@suse.de>
27191
27192         PR tree-optimization/81053
27193         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
27194         with backedge value not defined in loop.  Simplify def stmt
27195         compute.
27196
27197 2017-06-11  Tom de Vries  <tom@codesourcery.com>
27198
27199         PR target/79939
27200         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
27201         Return true.
27202         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
27203         nvptx_cannot_force_const_mem.
27204
27205 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27206
27207         * opts.c (finish_options): Move test for flag_split_stack after
27208         it has been initialized.
27209
27210 2017-06-11  Jason Merrill  <jason@redhat.com>
27211
27212         * tree.h (id_equal): New.
27213         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
27214         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
27215         instead of strcmp of IDENTIFIER_POINTER.
27216
27217 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27218
27219         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
27220         (mark_all_inlined_calls_cdtor): Fix formating.
27221         (inline_transform): Rescale profile before inlining.
27222
27223 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27224
27225         * cgraph.h (cgraph_edge::clone): Update prototype.
27226         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
27227         (cgraph_node::create_clone): Update.
27228         (cgraph_node::create_version_clone): Update.
27229         * tree-inline.c (copy_bb): Update.
27230         (expand_call_inline): Update.
27231
27232 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27233
27234         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
27235         factored out from ...
27236         (rs6000_emit_prologue): ... here.
27237
27238 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27239
27240         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
27241         factored out from ...
27242         (rs6000_emit_prologue): ... here.
27243
27244 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27245
27246         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
27247         edge counts.
27248         (handle_missing_profiles): Fix computation of tp_first_run.
27249         (counts_to_freqs): Do not touch freqs when count is 0.
27250
27251 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27252
27253         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
27254         profile.
27255
27256 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27257
27258         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
27259         attributes): Document signal effective target.
27260
27261 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27262
27263         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
27264         Document effective target stack_size.
27265
27266 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
27267
27268         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
27269         to the edit_context if they can be auto-applied.
27270
27271 2017-06-9  Ian Lance Taylor  <iant@golang.org>
27272
27273         * opts.c (finish_options): If -fsplit-stack, disable implicit
27274         -forder-blocks-and-partition.
27275         * doc/invoke.texi (Optimize Options): Document that when using
27276         -fsplit-stack -forder-blocks-and-partition is not implicitly
27277         enabled.
27278
27279 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27280
27281         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
27282         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
27283         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
27284         * builtins.def (abort, trap, unreachable): Declare cold.
27285         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
27286         * tree-core.h (ECF_COLD): New.
27287         * tree.c (set_call_expr_flags): Handle ECF_COLD.
27288         (build_common_builtin_nodes): Mark unreachable and abort as cold.
27289
27290 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27291
27292         * predict.c (unlikely_executed_stmt_p): Cleanup.
27293
27294 2017-06-09  Richard Biener  <rguenther@suse.de>
27295
27296         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
27297         model if the ref is always written to.
27298
27299 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27300
27301         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
27302
27303 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27304
27305         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
27306         than udiv.
27307
27308 2017-06-09  Tom de Vries  <tom@codesourcery.com>
27309
27310         PR target/80855
27311         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
27312         "target cannot support label values" when encountering LABEL_REF.
27313
27314 2017-06-09  Martin Liska  <mliska@suse.cz>
27315
27316         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
27317         (gimple_gen_ic_func_profiler): Emit direct comparison
27318         of __gcov_indirect_call_callee with NULL.
27319         (gimple_gen_time_profiler): Change probability from
27320         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
27321
27322 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27323
27324         * profile.c (edge_gcov_counts): Turn to pointer.
27325         (compute_branch_probabilities, compute_branch_probabilities): Update.
27326         (branch_prob): Do not clear edge_gcov_count.
27327         * profile.h (edge_gcov_counts): Turn to pointer.
27328         (edge_gcov_count): Update.
27329
27330 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27331
27332         * gimple.h (gimple_check_failed): Mark cold.
27333
27334 2017-06-09  Richard Biener  <rguenther@suse.de>
27335
27336         PR tree-optimization/66623
27337         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
27338         refactor check_reduction into two parts, properly computing
27339         whether we have to check reduction validity for outer loop
27340         vectorization.
27341
27342 2017-06-09  Richard Biener  <rguenther@suse.de>
27343
27344         PR tree-optimization/79483
27345         * graphite-scop-detection.c (order): New global.
27346         (get_order): Compute bb to order mapping that satisfies code
27347         generation constraints.
27348         (cmp_pbbs): New helper.
27349         (build_scops): Start domwalk at entry block, sort generated
27350         pbbs.
27351
27352 2017-06-09  Richard Biener  <rguenther@suse.de>
27353
27354         PR middle-end/81007
27355         * ipa-polymorphic-call.c
27356         (ipa_polymorphic_call_context::restrict_to_inner_class):
27357         Skip FIELD_DECLs with error_mark_node type.
27358         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
27359         last again.
27360
27361 2017-06-09  Martin Liska  <mliska@suse.cz>
27362
27363         * predict.c (struct branch_predictor): New struct.
27364         (test_prediction_value_range): New test.
27365         (predict_c_tests): New function.
27366         * selftest-run-tests.c (selftest::run_tests): Run the function.
27367         * selftest.h: Declare new tests.
27368
27369 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
27370
27371         PR target/80966
27372         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
27373         gen_add3_insn did not fail.
27374         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
27375         r0, construct that number in a temporary reg and add that reg to r0.
27376         If asked to put the result in r0 as well, fail.
27377
27378 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
27379
27380         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27381         for early expansion of vec_eqv.
27382
27383 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
27384
27385         PR middle-end/81005
27386         * ubsan.c (instrument_null): Avoid pointless code temporary.
27387         (pass_ubsan::execute): Instrument aggregate arguments of calls.
27388
27389 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
27390
27391         PR target/81015
27392         Revert:
27393         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
27394
27395         PR target/59874
27396         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
27397         (*clzhi2): Ditto.
27398
27399 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27400
27401         * predict.c (unlikely_executed_edge_p): Move ahead.
27402         (probably_never_executed_edge_p): Use it.
27403
27404 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27405
27406         PR middle-end/79988
27407         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
27408         gimple_call_builtin_p call.
27409
27410 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27411
27412         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
27413         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
27414         rtl_check_failed_type2, rtl_check_failed_code1,
27415         rtl_check_failed_code2, rtl_check_failed_code_mode,
27416         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
27417         rtvec_check_failed_bounds, rtl_check_failed_flag,
27418         _fatal_insn_not_found, _fatal_insn): Likewise.
27419         * tree.h (tree_contains_struct_check_failed,
27420         tree_check_failed, tree_not_check_failed,
27421         tree_class_check_failed, tree_range_check_failed,
27422         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
27423         tree_vec_elt_check_failed, phi_node_elt_check_failed,
27424         tree_operand_check_failed, omp_clause_check_failed,
27425         omp_clause_operand_check_failed, omp_clause_range_check_failed):
27426         Likewise.
27427
27428 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27429
27430         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
27431         flag_branch_probabilities.
27432         * ipa-inline.c (edge_badness): Likewise.
27433         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
27434         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
27435         * predict.c (maybe_hot_frequency_p): Likewise.
27436         (probably_never_executed): Likewise.
27437         * sched-ebb.c (schedule_ebbs): Likewise.
27438         * sched-rgn.c (find_single_block_region): Likewise.
27439         * tracer.c (tail_duplicate): Likewise.
27440
27441 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27442
27443         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
27444         longer requires x_flag_profile_use.
27445
27446 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27447
27448         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
27449         instead of flag_reorder_blocks_and_partition.
27450         * dbxout.c (dbxout_function_end): Likewise.
27451         * dwarf2out.c (gen_subprogram_die): Likewise.
27452         * haifa-sched.c (sched_create_recovery_edges): Likewise.
27453         * hw-doloop.c (reorg_loops): Likewise.
27454         * varasm.c (assemble_start_function,
27455         assemble_end_function): Likewise.
27456         (decide_function_section): Do not check for
27457         flag_reorder_blocks_and_partition.
27458
27459 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27460
27461         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
27462         New function.
27463         (chkp_get_hard_register_fake_addr_expr): Ditto.
27464         (chkp_build_addr_expr): Add check for hard reg case.
27465         (chkp_parse_array_and_component_ref): Ditto.
27466         (chkp_find_bounds_1): Ditto.
27467         (chkp_process_stmt): Don't generate bounds store for
27468         hard reg case.
27469
27470 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27471
27472         * predict.c (maybe_hot_bb_p): Do not check profile status.
27473         (maybe_hot_edge_p): Likewise.
27474         (probably_never_executed): Check for zero counts even if profile
27475         is not read.
27476         (unlikely_executed_edge_p): New function.
27477         (unlikely_executed_stmt_p): New function.
27478         (unlikely_executed_bb_p): New function.
27479         (set_even_probabilities): Use unlikely predicates.
27480         (combine_predictions_for_bb): Likewise.
27481         (predict_paths_for_bb): Likewise.
27482         (predict_paths_leading_to_edge): Likewise.
27483         (determine_unlikely_bbs): New function.
27484         (estimate_bb_frequencies): Use it.
27485         (compute_function_frequency): Use zero counts even if profile is
27486         not read.
27487         * profile-count.h: Fix typo.
27488
27489 2017-08-08  Julia Koval  <julia.koval@intel.com>
27490
27491         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
27492         _mm512_mask_cvtsepi16_storeu_epi8,
27493         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
27494         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
27495         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
27496         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
27497         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
27498         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
27499         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
27500         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
27501         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
27502         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
27503         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
27504         __builtin_ia32_pmovuswb256mem_mask,
27505         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
27506         __builtin_ia32_pmovwb512mem_mask): New builtins.
27507
27508 2017-08-08  Julia Koval  <julia.koval@intel.com>
27509
27510         PR target/73350,80862
27511         * config/i386/subst.md (round): Fix round pattern.
27512         * config/i386/i386.c (ix86_erase_embedded_rounding):
27513         Fix erasing rounding for the fixed pattern.
27514
27515 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27516
27517         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
27518
27519 2017-06-08  Martin Liska  <mliska@suse.cz>
27520
27521         PR gcov-profile/80911
27522         * gcov.c (block_info::block_info): New constructor.
27523
27524 2017-06-07  Carl Love  <cel@us.ibm.com>
27525
27526         * config/rs6000/rs6000-c: The return type of the following
27527         built-in functions was implemented as int not long long.  Fix sign
27528         of return value for the unsigned version of vec_mulo and vec_mule.
27529         vector unsigned long long vec_bperm (vector unsigned long long,
27530                                              vector unsigned char)
27531         vector signed long long vec_mule (vector signed int,
27532                                           vector signed int)
27533         vector unsigned long long vec_mule (vector unsigned int,
27534                                             vector unsigned int)
27535         vector signed long long vec_mulo (vector signed int,
27536                                           vector signed int)
27537         vector unsigned long long vec_mulo (vector unsigned int,
27538                                             vector unsigned int)
27539         * doc/extend.texi: Fix the documentation for the built-in
27540         functions.
27541
27542 2017-06-07  Carl Love  <cel@us.ibm.com>
27543
27544         PR target/80982
27545         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
27546         for BE.
27547
27548 2017-06-07  Carl Love  <cel@us.ibm.com>
27549
27550         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
27551         support, Generate       doublehv for signed int/float for BE case only.
27552
27553 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
27554
27555         * doc/invoke.texi (mcx16): Rewrite.
27556
27557 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27558
27559         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
27560         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
27561         *mov<mode>_softfloat, and an anonymous splitter): Use
27562         nonimmediate_operand instead of rs6000_nonimmediate_operand.
27563
27564 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27565
27566         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
27567         SPEFSCR registers.
27568         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
27569         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
27570         (rs6000_debug_reg_global): Adjust.
27571         (rs6000_init_hard_regno_mode_ok): Adjust.
27572         (rs6000_dbx_register_number): Adjust.
27573         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
27574         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27575         Remove SPE_ACC and SPEFSCR.
27576         (REG_ALLOC_ORDER): Ditto.
27577         (FRAME_POINTER_REGNUM): Change to 111.
27578         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
27579         (REG_CLASS_NAMES): Ditto.
27580         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
27581         (REGISTER_NAMES): Ditto.
27582         (ADDITIONAL_REG_NAMES): Ditto.
27583         (rs6000_reg_names): Ditto.
27584         * config/rs6000/rs6000.md: Renumber some register number
27585         define_constants.
27586
27587 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27588
27589         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
27590         registers.
27591         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
27592         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
27593         to 117.
27594         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
27595         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27596         Delete the SPE high registers.
27597         (REG_ALLOC_ORDER): Ditto.
27598         (enum reg_class): Remove SPE_HIGH_REGS.
27599         (REG_CLASS_NAMES): Ditto.
27600         (REG_CLASS_CONTENTS): Delete the SPE high registers.
27601         (REGISTER_NAMES): Ditto.
27602         (rs6000_reg_names): Ditto.
27603         * doc/tm.texi.in: Remove SPE as example.
27604         * doc/tm.texi: Regenerate.
27605
27606 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27607
27608         * config/rs6000/8540.md (ppc8540_brinc): Delete.
27609         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
27610         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
27611         * config/rs6000/rs6000.md (type): Remove "brinc".
27612
27613 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27614
27615         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
27616         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
27617         * config/rs6000/linuxspe.h: Delete file.
27618         * config/rs6000/rs6000.md: Don't include spe.md.
27619         * config/rs6000/spe.h: Delete file.
27620         * config/rs6000/spe.md: Delete file.
27621         * config/rs6000/t-rs6000: Remove spe.md.
27622
27623 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27624
27625         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
27626         (reg_or_none500mem_operand): Delete.
27627         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
27628         instead of reg_or_none500mem_operand.
27629
27630 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27631
27632         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
27633         handling of SPE flags.
27634         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
27635
27636 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27637
27638         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
27639         SPE ABI handling.
27640         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
27641         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
27642         paired_divv2sf3): Similar.
27643         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
27644         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
27645         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
27646         RS6000_BUILTIN_S.
27647         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
27648         Rename the paired_* instruction patterns.
27649         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
27650         define __SPE__.
27651         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
27652         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
27653         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
27654         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
27655         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
27656         PAIRED_VECTOR_MODE.
27657         (struct machine_function): Delete field spe_insn_chain_scanned_p.
27658         (spe_func_has_64bit_regs_p): Delete.
27659         (spe_expand_predicate_builtin): Delete.
27660         (spe_expand_evsel_builtin): Delete.
27661         (TARGET_DWARF_REGISTER_SPAN): Do not define.
27662         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
27663         (invalid_e500_subreg): Delete.
27664         (rs6000_legitimize_address): Always force_reg op2 as well, for
27665         paired single memory accesses.
27666         (rs6000_member_type_forces_blk): Delete.
27667         (rs6000_spe_function_arg): Delete.
27668         (rs6000_expand_unop_builtin): Delete SPE handling.
27669         (rs6000_expand_binop_builtin): Ditto.
27670         (spe_expand_stv_builtin): Delete.
27671         (bdesc_2arg_spe): Delete.
27672         (spe_expand_builtin): Delete.
27673         (spe_expand_predicate_builtin): Delete.
27674         (spe_expand_evsel_builtin): Delete.
27675         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
27676         (spe_init_builtins): Delete.
27677         (spe_func_has_64bit_regs_p): Delete.
27678         (savres_routine_name): Delete "info" parameter.  Adjust callers.
27679         (rs6000_emit_stack_reset): Ditto.
27680         (rs6000_dwarf_register_span): Delete.
27681         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
27682         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
27683         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
27684         Delete.
27685         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
27686         Delete.
27687         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
27688         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
27689         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
27690         mulv2sf3, divv2sf3): Delete expanders.
27691
27692 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27693
27694         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
27695
27696 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27697
27698         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
27699         * config/rs6000/rs6000.c: Ditto.
27700
27701 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27702
27703         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
27704         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
27705         comparison_operator.
27706
27707 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27708
27709         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
27710         * config/rs6000/rs6000.opt: Ditto.
27711         * config/rs6000/t-rtems: Ditto.
27712
27713 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27714
27715         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
27716         TARGET_E500_SINGLE by 0, simplify.
27717         * config/rs6000/rs6000.c: Ditto.
27718         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
27719         (spe_build_register_parallel): Delete.
27720         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
27721         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
27722         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
27723         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
27724         (E500_CONVERT): Delete.
27725         * config/rs6000/spe.md: Remove many patterns and all define_constants.
27726
27727 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27728
27729         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
27730         * config/rs6000/dfp.md: Ditto.
27731         (negdd2, *negdd2_fpr): Merge.
27732         (absdd2, *absdd2_fpr): Merge.
27733         (negtd2, *negtd2_fpr): Merge.
27734         (abstd2, *abstd2_fpr): Merge.
27735         * config/rs6000/e500.h: Delete file.
27736         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
27737         TARGET_FPRS by 1 and simplify.
27738         * config/rs6000/rs6000-c.c: Ditto.
27739         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
27740         TARGET_DF_SPE by 0.
27741         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
27742         TARGET_DF_SPE.
27743         * config/rs6000/rs6000.md: Ditto.
27744         (floatdidf2, *floatdidf2_fpr): Merge.
27745         (move_from_CR_gt_bit): Delete.
27746         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
27747         (E500_CR_IOR_COMPARE): Delete.
27748         (All patterns that require !TARGET_FPRS): Delete.
27749         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
27750
27751 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27752
27753         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
27754
27755 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27756
27757         * graphds.c (add_edge): Intitialize edge's attached data.
27758         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
27759         pointer parameter.  Call pointed function on each edge during
27760         graph traversing.  Skip traversing the edge when the function
27761         returns true.
27762         (graphds_dfs, graphds_scc): Ditto.
27763         (for_each_edge): New parameter.  Pass the new parameter to callback
27764         function.
27765         * graphds.h (skip_edge_callback): New function pointer type.
27766         (graphds_dfs, graphds_scc): New function pointer parameter.
27767         (graphds_edge_callback, for_each_edge): New parameter.
27768
27769 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27770
27771         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
27772         out code checking if runtime alias check is possible to below ...
27773         Call the new function.
27774         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
27775         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
27776
27777 2017-06-07  Marek Polacek  <polacek@redhat.com>
27778
27779         PR sanitizer/80932
27780         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
27781         TYPE_OVERFLOW_WRAPS check.
27782
27783 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27784
27785         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
27786         if versioning is required.
27787         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
27788         peeling with the check for versioning.
27789
27790 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27791
27792         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
27793         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
27794         Set true to new parameter if new ssa variable is defined.
27795         (vect_gen_vector_loop_niters): Refactor.  Set range information
27796         for the new vector loop bound variable.
27797         (vect_do_peeling): Ditto.
27798
27799 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27800
27801         * tree-affine.c (ssa.h): Include header file.
27802         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
27803         has wrapping overflow behavior.
27804
27805 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27806
27807         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
27808
27809 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27810
27811         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
27812         (tree_to_aff_combination): ... here.
27813
27814 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27815
27816         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
27817         reg_pressure model function.
27818         (ivopts_global_cost_for_size): Delete.
27819         (determine_set_costs, iv_ca_recount_cost): Call new model function
27820         ivopts_estimate_reg_pressure.
27821
27822 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27823
27824         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
27825         expensive than udiv.  Remove floating point cases from mod.
27826
27827 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27828
27829         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
27830         Increase idiv cost.
27831
27832 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27833
27834         * config/aarch64/aarch64.md
27835         (copysignsf3): Fix mask generation.
27836
27837 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
27838
27839         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
27840         TDI_gimple.
27841         (class dump_manager): Add register_dumps method.
27842         * dumpfile.c: Include langhooks.h.
27843         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
27844         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
27845         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
27846         (dump_manager::dump_register): Start with 512 entries instead of 32.
27847         (dump_manager::register_dumps): New method.
27848         * toplev.c (general_init): Instead of invoking register_dumps
27849         langhook, invoke register_dumps method on the dump manager.
27850         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
27851         TDI_generic.
27852
27853 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
27854
27855         * doc/md.texi: Clarify the restrictions on a define_insn condition.
27856         Say that # requires an associated define_split to exist, and that
27857         the define_split must be suitable for use after register allocation.
27858
27859 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27860
27861         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
27862         (compute_outgoing_frequencies): Also initialize zero counts.
27863         (find_many_sub_basic_blocks): Do not produce uninitialized profile
27864         around loops; preserve more of profile when nothing changes.
27865
27866 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
27867
27868         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
27869         here.
27870         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
27871         * config/arm/arm-cpu-cdata.h: Regenerate.
27872         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
27873         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
27874         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
27875         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
27876         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
27877         support.
27878         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
27879         support.
27880         * config/arm/t-rmprofile: Likewise.
27881         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
27882
27883 2017-06-06  David S. Miller  <davem@davemloft.net>
27884
27885         PR target/80968
27886         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
27887         blockage if function uses alloca.
27888
27889 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27890
27891         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
27892         New "uid" fields to hold pretty-print IDs of group and ref.
27893         Memory references are now identified as <group_id>:<ref_id>
27894         instead of using [random] addresses.
27895         (dump_mem_details): Simplify, no functional change.
27896         (dump_mem_ref): Simplify and make output more concise.
27897         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
27898         (find_or_create_group): Initialize group uid.
27899         (record_ref): Initialize ref uid.  Improve debug output.
27900         (prune_group_by_reuse, should_issue_prefetch_p,)
27901         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
27902         (mark_nontemporal_store, determine_loop_nest_reuse):
27903         Improve debug output.
27904
27905 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27906
27907         * dbgcnt.def (prefetch): New debug counter.
27908         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
27909         (schedule_prefetches): Stop issueing prefetches if debug counter
27910         tripped.
27911
27912 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27913
27914         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
27915         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
27916
27917 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27918
27919         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
27920         Use aarch64_reg_or_zero predicate for operand 4.
27921         (aarch64_compare_and_swap<mode> define_insn_and_split):
27922         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
27923         (aarch64_store_exclusive<mode>): Likewise for operand 2.
27924
27925 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27926
27927         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
27928         (arm_compute_save_core_reg_mask): This.
27929         (thumb1_compute_save_reg_mask): Rename into ...
27930         (thumb1_compute_save_core_reg_mask): This.
27931         (arm_compute_save_reg0_reg12_mask): Adapt comment.
27932         (arm_compute_frame_layout): Likewise.
27933
27934 2017-06-06  Richard Biener  <rguenther@suse.de>
27935
27936         PR tree-optimization/80974
27937         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
27938         keep or clear leaders SSA info.
27939
27940 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27941
27942         * config/nvptx/nvptx.c (split_mode_p): New function.
27943         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
27944
27945 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27946
27947         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
27948
27949 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27950
27951         PR bootstrap/80978
27952         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
27953         profile.
27954
27955 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27956
27957         * shrink-wrap.c (handle_simple_exit): Update profile.
27958         (try_shrink_wrapping): Upate profile.
27959
27960 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27961
27962         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
27963         (tree_guess_outgoing_edge_probabilities): New.
27964         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
27965         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
27966
27967 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27968
27969         * ipa-split.c (split_function): Initialize return bb profile.
27970
27971 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27972
27973         * profile.c (compute_branch_probabilities): Also initialize
27974         EXIT_BLOCK profile.
27975
27976 2017-06-06  Richard Biener  <rguenther@suse.de>
27977
27978         PR tree-optimization/80928
27979         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
27980         (vect_analyze_loop_operations): Properly guard analysis for
27981         pure SLP case.
27982         (vect_transform_loop): Likewise.
27983         (vect_analyze_loop_2): Also reset SLP type on PHIs.
27984         (vect_model_induction_cost): Do not cost for pure SLP.
27985         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
27986         of induction in inner loop vectorization.
27987         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
27988         (vect_get_and_check_slp_defs): Handle vect_induction_def.
27989         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
27990         recursion.
27991         (vect_analyze_slp_cost_1): Cost induction.
27992         (vect_detect_hybrid_slp_stmts): Handle PHIs.
27993         (vect_get_slp_vect_defs): Likewise.
27994         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
27995         (vect_transform_stmt): Handle SLP reductions.
27996         * tree-vectorizer.h (vectorizable_induction): Adjust.
27997
27998 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
27999
28000         * config/rs6000/rs6000.c (make_resolver_func): Update
28001         init_lowered_empty_function call.
28002
28003 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28004
28005         * doc/invoke.texi: Document the -fprofile-abs-path option.
28006         * common.opt (fprofile-abs-path): New option.
28007         * gcov-io.h (gcov_write_filename): Declare.
28008         * gcov-io.c (gcov_write_filename): New function.
28009         * coverage.c (coverage_begin_function): Use gcov_write_filename.
28010         * profile.c (output_location): Likewise.
28011
28012 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28013
28014         * shring-wrap.c: Revert accidental commit.
28015
28016 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
28017
28018         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
28019
28020 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28021
28022         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
28023         new edge.
28024         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
28025         profile in callgraph edge.
28026         * profile-count.h (apply_probability): If THIS is 0, then result is 0
28027         (apply_scale): Likewise.
28028         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
28029         Also scale profile when inlining function with zero profile.
28030         (initialize_cfun): Update exit block profile even when it is zero.
28031         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
28032         when profile is read.
28033
28034 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28035
28036         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
28037         (CLONE_*): New constants to define the processors we can generate
28038         code for with the target_clone attribute.
28039         (rs6000_clone_map): New array to identify which clone processors
28040         the current program is running on.
28041         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
28042         target_clone attribute.
28043         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
28044         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
28045         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
28046         (cpu_expand_builtin): Add support for target_clone attribute.
28047         (rs6000_valid_attribute_p): Allow "default" attribute.
28048         (get_decl_name): New debug function to simplify printing the
28049         current function name in debugging statements.
28050         (rs6000_clone_priority): New functions to support the target_clone
28051         attribute, and be able to generate code to switch between ISA 2.05
28052         through ISA 3.0 (power6 through power9).
28053         (rs6000_compare_version_priority): Likewise.
28054         (rs6000_get_function_versions_dispatcher): Likewise.
28055         (make_resolver_func): Likewise.
28056         (add_condition_to_bb): Likewise.
28057         (dispatch_function_versions): Likewise.
28058         (rs6000_generate_version_dispatcher_body): Likewise.
28059         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
28060         (fusion_gpr_load_p): Fix a spacing issue.
28061         * doc/extend.texi (Common Function Attributes): Document that the
28062         PowerPC supports the target_clone attribute.
28063
28064 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28065
28066         * config/arm/arm.h: explain F symbol found in description of ARM
28067         register allocation in its legend.
28068
28069 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28070
28071         * config/mips/frame-header-opt.c: Include profile-count.h.
28072         * config/riscv/riscv.c: Include profile-count.h
28073
28074 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28075
28076         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
28077         update profile.
28078         (sm_set_flag_if_changed): Add bbs field.
28079         (execute_sm_if_changed_flag_set): Pass BBS.
28080         (execute_sm): Update.
28081
28082 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28083
28084         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
28085         New pattern.
28086
28087 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28088
28089         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
28090         (peephole2): New peephole2 to emit the above.
28091         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
28092
28093 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28094
28095         * config/aarch64/aarch64.c (define_peephole2 above
28096         *sub_<shift>_<mode>): New peephole.
28097
28098 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28099
28100         * config/i386/i386.c (make_resolver_func): Update.
28101         * Makefile.in: Add profile-count.h and profile-count.o
28102         * auto-profile.c (afdo_indirect_call): Update to new API.
28103         (afdo_set_bb_count): Update.
28104         (afdo_propagate_edge): Update.
28105         (afdo_propagate_circuit): Update.
28106         (afdo_calculate_branch_prob): Update.
28107         (afdo_annotate_cfg): Update.
28108         * basic-block.h: Include profile-count.h
28109         (struct edge_def): Turn count to profile_count.
28110         (struct basic_block_def): Likewie.
28111         (REG_BR_PROB_BASE): Move to profile-count.h
28112         (RDIV): Move to profile-count.h
28113         * bb-reorder.c (max_entry_count): Turn to profile_count.
28114         (find_traces): Update.
28115         (rotate_loop):Update.
28116         (connect_traces):Update.
28117         (sanitize_hot_paths):Update.
28118         * bt-load.c (migrate_btr_defs): Update.
28119         * cfg.c (RDIV): Remove.
28120         (init_flow): Use alloc_block.
28121         (alloc_block): Uninitialize count.
28122         (unchecked_make_edge): Uninitialize count.
28123         (check_bb_profile): Update.
28124         (dump_edge_info): Update.
28125         (dump_bb_info): Update.
28126         (update_bb_profile_for_threading): Update.
28127         (scale_bbs_frequencies_int): Update.
28128         (scale_bbs_frequencies_gcov_type): Update.
28129         (scale_bbs_frequencies_profile_count): New.
28130         * cfg.h (update_bb_profile_for_threading): Update.
28131         (scale_bbs_frequencies_profile_count): Declare.
28132         * cfgbuild.c (compute_outgoing_frequencies): Update.
28133         (find_many_sub_basic_blocks): Update.
28134         * cfgcleanup.c (try_forward_edges): Update.
28135         (try_crossjump_to_edge): Update.
28136         * cfgexpand.c (expand_gimple_tailcall): Update.
28137         (construct_exit_block): Update.
28138         * cfghooks.c (verify_flow_info): Update.
28139         (dump_bb_for_graph): Update.
28140         (split_edge): Update.
28141         (make_forwarder_block): Update.
28142         (duplicate_block): Update.
28143         (account_profile_record): Update.
28144         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
28145         (get_estimated_loop_iterations): Update.
28146         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
28147         (single_likely_exit): Update.
28148         * cfgloopmanip.c (scale_loop_profile): Update.
28149         (loopify): Update.
28150         (set_zero_probability): Update.
28151         (lv_adjust_loop_entry_edge): Update.
28152         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
28153         (purge_dead_edges): Update.
28154         (rtl_account_profile_record): Update.
28155         * cgraph.c (cgraph_node::create): Uninitialize count.
28156         (symbol_table::create_edge): Uninitialize count.
28157         (cgraph_update_edges_for_call_stmt_node): Update.
28158         (cgraph_edge::dump_edge_flags): Update.
28159         (cgraph_node::dump): Update.
28160         (cgraph_edge::maybe_hot_p): Update.
28161         * cgraph.h: Include profile-count.h
28162         (create_clone), create_edge, create_indirect_edge): Update.
28163         (cgraph_node): Turn count to profile_count.
28164         (cgraph_edge0: Likewise.
28165         (make_speculative, clone): Update.
28166         (create_edge): Update.
28167         (init_lowered_empty_function): Update.
28168         * cgraphclones.c (cgraph_edge::clone): Update.
28169         (duplicate_thunk_for_node): Update.
28170         (cgraph_node::create_clone): Update.
28171         * cgraphunit.c (cgraph_node::analyze): Update.
28172         (cgraph_node::expand_thunk): Update.
28173         * final.c (dump_basic_block_info): Update.
28174         * gimple-streamer-in.c (input_bb): Update.
28175         * gimple-streamer-out.c (output_bb): Update.
28176         * graphite.c (print_global_statistics): Update.
28177         (print_graphite_scop_statistics): Update.
28178         * hsa-brig.c: Include basic-block.h.
28179         * hsa-dump.c: Include basic-block.h.
28180         * hsa-gen.c (T sum_slice): Update.
28181         (convert_switch_statements):Update.
28182         * hsa-regalloc.c: Include basic-block.h.
28183         * ipa-chkp.c (chkp_produce_thunks): Update.
28184         * ipa-cp.c (struct caller_statistics): Update.
28185         (init_caller_stats): Update.
28186         (gather_caller_stats): Update.
28187         (ipcp_cloning_candidate_p): Update.
28188         (good_cloning_opportunity_p): Update.
28189         (get_info_about_necessary_edges): Update.
28190         (dump_profile_updates): Update.
28191         (update_profiling_info): Update.
28192         (update_specialized_profile): Update.
28193         (perhaps_add_new_callers): Update.
28194         (decide_about_value): Update.
28195         (ipa_cp_c_finalize): Update.
28196         * ipa-devirt.c (struct odr_type_warn_count): Update.
28197         (struct decl_warn_count): Update.
28198         (struct final_warning_record): Update.
28199         (possible_polymorphic_call_targets): Update.
28200         (ipa_devirt): Update.
28201         * ipa-fnsummary.c (redirect_to_unreachable): Update.
28202         * ipa-icf.c (sem_function::merge): Update.
28203         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
28204         * ipa-inline.c (compute_uninlined_call_time): Update.
28205         (compute_inlined_call_time): Update.
28206         (want_inline_small_function_p): Update.
28207         (want_inline_self_recursive_call_p): Update.
28208         (edge_badness): Update.
28209         (lookup_recursive_calls): Update.
28210         (recursive_inlining): Update.
28211         (inline_small_functions): Update.
28212         (dump_overall_stats): Update.
28213         (dump_inline_stats): Update.
28214         * ipa-profile.c (ipa_profile_generate_summary): Update.
28215         (ipa_propagate_frequency): Update.
28216         (ipa_profile): Update.
28217         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28218         * ipa-utils.c (ipa_merge_profiles): Update.
28219         * loop-doloop.c (doloop_modify): Update.
28220         * loop-unroll.c (report_unroll): Update.
28221         (unroll_loop_runtime_iterations): Update.
28222         * lto-cgraph.c (lto_output_edge): Update.
28223         (lto_output_node): Update.
28224         (input_node): Update.
28225         (input_edge): Update.
28226         (merge_profile_summaries): Update.
28227         * lto-streamer-in.c (input_cfg): Update.
28228         * lto-streamer-out.c (output_cfg): Update.
28229         * mcf.c (create_fixup_graph): Update.
28230         (adjust_cfg_counts): Update.
28231         (sum_edge_counts): Update.
28232         * modulo-sched.c (sms_schedule): Update.
28233         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
28234         * predict.c (maybe_hot_count_p): Update.
28235         (probably_never_executed): Update.
28236         (dump_prediction): Update.
28237         (combine_predictions_for_bb): Update.
28238         (propagate_freq): Update.
28239         (handle_missing_profiles): Update.
28240         (counts_to_freqs): Update.
28241         (rebuild_frequencies): Update.
28242         (force_edge_cold): Update.
28243         * predict.h: Include profile-count.h
28244         (maybe_hot_count_p, counts_to_freqs): UPdate.
28245         * print-rtl-function.c: Do not include cfg.h
28246         * print-rtl.c: Include basic-block.h
28247         * profile-count.c: New file.
28248         * profile-count.h: New file.
28249         * profile.c (is_edge_inconsistent): Update.
28250         (correct_negative_edge_counts): Update.
28251         (is_inconsistent): Update.
28252         (set_bb_counts): Update.
28253         (read_profile_edge_counts): Update.
28254         (compute_frequency_overlap): Update.
28255         (compute_branch_probabilities): Update; Initialize and deinitialize
28256         gcov_count tables.
28257         (branch_prob): Update.
28258         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
28259         (edge_gcov_count): New.
28260         (bb_gcov_count): New.
28261         * shrink-wrap.c (try_shrink_wrapping): Update.
28262         * tracer.c (better_p): Update.
28263         * trans-mem.c (expand_transaction): Update.
28264         (ipa_tm_insert_irr_call): Update.
28265         (ipa_tm_insert_gettmclone_call): Update.
28266         * tree-call-cdce.c: Update.
28267         * tree-cfg.c (gimple_duplicate_sese_region): Update.
28268         (gimple_duplicate_sese_tail): Update.
28269         (gimple_account_profile_record): Update.
28270         (execute_fixup_cfg): Update.
28271         * tree-inline.c (copy_bb): Update.
28272         (copy_edges_for_bb): Update.
28273         (initialize_cfun): Update.
28274         (freqs_to_counts): Update.
28275         (copy_cfg_body): Update.
28276         (expand_call_inline): Update.
28277         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
28278         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
28279         (try_unroll_loop_completely): Update.
28280         (try_peel_loop): Update.
28281         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
28282         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
28283         * tree-ssa-loop-split.c (connect_loops): Update.
28284         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
28285         * tree-ssa-reassoc.c (branch_fixup): Update.
28286         * tree-ssa-tail-merge.c (replace_block_by): Update.
28287         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
28288         (compute_path_counts): Update.
28289         (update_profile): Update.
28290         (recompute_probabilities): Update.
28291         (update_joiner_offpath_counts): Update.
28292         (estimated_freqs_path): Update.
28293         (freqs_to_counts_path): Update.
28294         (clear_counts_path): Update.
28295         (ssa_fix_duplicate_block_edges): Update.
28296         (duplicate_thread_path): Update.
28297         * tree-switch-conversion.c (case_bit_test_cmp): Update.
28298         (struct switch_conv_info): Update.
28299         * tree-tailcall.c (decrease_profile): Update.
28300         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
28301         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
28302         * value-prof.c (check_counter): Update.
28303         (gimple_divmod_fixed_value): Update.
28304         (gimple_mod_pow2): Update.
28305         (gimple_mod_subtract): Update.
28306         (gimple_ic_transform): Update.
28307         (gimple_stringop_fixed_value): Update.
28308         * value-prof.h (gimple_ic): Update.
28309
28310 2017-06-02  Carl Love  <cel@us.ibm.com>
28311
28312         * config/rs6000/rs6000-c: Add support for built-in functions
28313         vector double vec_doublee (vector signed int);
28314         vector double vec_doublee (vector unsigned int);
28315         vector double vec_doublee (vector float);
28316         vector double vec_doubleh (vector signed int);
28317         vector double vec_doubleh (vector unsigned int);
28318         vector double vec_doubleh (vector float);
28319         vector double vec_doublel (vector signed int);
28320         vector double vec_doublel (vector unsigned int);
28321         vector double vec_doublel (vector float);
28322         vector double vec_doubleo (vector signed int);
28323         vector double vec_doubleo (vector unsigned int);
28324         vector double vec_doubleo (vector float);.
28325         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
28326         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
28327         UNS_DOUBLEL.
28328         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
28329         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
28330         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
28331         VS_sxwsp.
28332         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
28333         vec_doublel, vec_doubleh.
28334         * doc/extend.texi: Update the built-in documentation file for the
28335         new built-in functions.
28336
28337 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
28338
28339         PR jit/80954
28340         * ipa-inline-analysis.c (free_growth_caches): Set
28341         edge_removal_hook_holder to NULL after removing it.
28342
28343 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
28344
28345         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
28346         comparision with zero.
28347
28348 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28349         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28350         for early expansion of vec_min and vec_max builtins.
28351         (builtin_function_type): Add min/max unsigned variants to those
28352         identified as having unsigned arguments.
28353
28354 2017-06-02  Olivier Hainque  <hainque@adacore.com>
28355
28356         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
28357
28358 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28359
28360         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
28361         Use VALL_F16 iterator rather than VALL.
28362
28363 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28364
28365         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
28366         Emit CBNZ inside loop when doing a strong exchange and comparing
28367         against zero.  Generate the CC flags after the loop.
28368
28369 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
28370
28371         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
28372         (dl_section_ref): New.
28373         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
28374         On AIX, append an expression to subtract the size of the
28375         section length to dl_section_ref.
28376
28377 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28378
28379         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28380         for early expansion of vector absolute builtins.
28381
28382 2017-06-02  Richard Biener  <rguenther@suse.de>
28383
28384         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
28385         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
28386
28387 2017-06-02  Richard Biener  <rguenther@suse.de>
28388
28389         PR tree-optimization/80948
28390         * tree-tailcall.c (find_tail_calls): Track stmts to move in
28391         stmt order as well.
28392
28393 2017-06-02  Richard Biener  <rguenther@suse.de>
28394
28395         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
28396         PHIs are ok.
28397         * tree-vect-stmts.c (process_use): Do not mark backedge defs
28398         for inductions as relevant.
28399
28400 2017-06-02  Richard Biener  <rguenther@suse.de>
28401
28402         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
28403         (vectorizable_induction): ... this.  Remove dead code.
28404
28405 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
28406
28407         * builtins. (expand_builtin_alloca): Remove second parameter and
28408         infer its value from the first parameter instead.
28409         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
28410
28411 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
28412
28413         PR rtl-optimization/80903
28414         * loop-doloop.c (add_test): Unshare sequence.
28415
28416 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28417
28418         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
28419
28420 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28421
28422         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
28423         static.
28424         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
28425         xlogue_layout::get_instance, logue_layout::xlogue_layout,
28426         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
28427         (xlogue_layout::get_stub_rtx): Make static.
28428         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
28429         (xlogue_layout::compute_stub_managed_regs): Rename to...
28430         (xlogue_layout::count_stub_managed_regs): ...this.
28431         (xlogue_layout::is_stub_managed_reg): New function.
28432         (xlogue_layout::m_stub_names): Rename to...
28433         (xlogue_layout::s_stub_names): ...this, make static.
28434         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
28435         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
28436         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
28437         xlogue_layout::s_stub_names): Instantiate statics.
28438         (stub_managed_regs): Remove.
28439         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
28440         (disable_call_ms2sysv_xlogues): Rename to...
28441         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
28442         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
28443         warning logic.
28444         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
28445         change after reload_completed.
28446         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
28447         directly.
28448         (ix86_expand_prologue): Likewise.
28449         (ix86_expand_epilogue): Likewise.
28450         (ix86_expand_split_stack_prologue): Likewise.
28451         (ix86_compute_frame_layout): Remove frame parameter ...
28452         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
28453         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
28454         only if necessary.
28455         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
28456         (ix86_frame): Move from here ...
28457         * config/i386/i386.h (ix86_frame): ... to here.
28458         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
28459         complete ix86_frame data structure instead.  Remove some_ld_name.
28460
28461 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
28462
28463         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
28464         symbols that hold a DECL_VALUE_EXPR.
28465
28466 2017-06-01  Martin Jambor  <mjambor@suse.cz>
28467
28468         PR tree-optimization/80898
28469         * tree-sra.c (process_subtree_disqualification): Removed.
28470         (disqualify_candidate): Do not acll
28471         process_subtree_disqualification.
28472         (subtree_mark_written_and_enqueue): New function.
28473         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
28474         RHS has been disqualified and re-queue LHS if necessary.  Apart
28475         from that, ignore disqualified RHS.
28476
28477 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28478
28479         * config/s390/s390.c (s390_emit_epilogue): Disable early return
28480         address fetch for z10 or later.
28481
28482 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28483
28484         * config/arc/arc.md (tst_movb): Add guard when splitting.
28485
28486 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28487
28488         * config/arc/arc.c (arc_can_eliminate): Test against
28489         arc_frame_pointer_needed.
28490
28491 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28492
28493         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
28494         to prevent store reordering.
28495         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
28496         (type): Add block type.
28497         (stack_tie): Define special instruction to be used in
28498         expand_prologue.
28499
28500 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28501
28502         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
28503         constraint. It is not valid for the pattern.
28504         (noncommutative_binary_comparison): Likewise.
28505
28506 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28507
28508         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
28509         scaled addresses.
28510
28511 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28512
28513         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
28514         be used by the reg-alloc.
28515
28516 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28517
28518         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
28519         reg-alloc when having mul64 or mul32x16 instructions.
28520         (mulsidi3): Likewise.
28521         (umulsidi3): Likewise.
28522         (mulsi32x16): New pattern.
28523         (mulsi64): Likewise.
28524         (mulsidi64): Likewise.
28525         (umulsidi64): Likewise.
28526         (MUL32x16_REG): Define.
28527         (mul64_600): Use MUL32x16_REG.
28528         (mac64_600): Likewise.
28529         (umul64_600): Likewise.
28530         (umac64_600): Likewise.
28531
28532 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28533
28534         * config/arc/arc.md (mulsi3_700): Make it commutative.
28535
28536 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
28537
28538         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
28539         type for movstouw.
28540         (*sign_extendsidi2_insn): Likewise for movstosw.
28541
28542 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
28543
28544         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
28545         the type of the input discriminant value.  Convert the
28546         discriminant value of signedness vary.
28547
28548 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
28549
28550         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
28551         Add to -Wall section.
28552
28553 2017-06-01  Richard Biener  <rguenther@suse.de>
28554
28555         PR middle-end/66313
28556         * fold-const.c (fold_plusminus_mult_expr): If the factored
28557         factor may be zero use a wrapping type for the inner operation.
28558         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
28559         and handle moved defs.
28560         (process_assignment): Properly guard the unary op case.  Return a
28561         tri-state indicating that moving the stmt before the call may allow
28562         to continue.  Pass through to_move.
28563         (find_tail_calls): Handle moving unrelated defs before
28564         the call.
28565
28566 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
28567
28568         PR target/80618
28569         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
28570         splitter result in the canonical way.
28571
28572 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
28573
28574         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
28575         also for 32bit target.  Update insn attributes.
28576         (zero-extendsidi2 splitter): Allow all registers for operand 1.
28577
28578 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
28579
28580         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
28581         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
28582         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
28583         (_mm_maskz_min_ss): New intrinsics.
28584
28585 2017-05-31  Martin Liska  <mliska@suse.cz>
28586
28587         * tree-vect-loop.c (vect_create_epilog_for_reduction):
28588         Change comment style to one we normally use.
28589         (vectorizable_reduction): Likewise.
28590         (vectorizable_induction): Likewise.
28591         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
28592         (vectorizable_call): Likewise.
28593         (vectorizable_simd_clone_call): Likewise.
28594         (vectorizable_conversion): Likewise.
28595         (vectorizable_assignment): Likewise.
28596         (vectorizable_shift): Likewise.
28597         (vectorizable_operation): Likewise.
28598         (vectorizable_store): Likewise.
28599         (vectorizable_load): Likewise.
28600         * tree-vectorizer.h: Likewise.
28601
28602 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
28603
28604         * passes.c (emergency_dump_function): New.
28605         * tree-pass.h (emergency_dump_function): Declare.
28606         * plugin.c (plugins_internal_error_function): Remove.
28607         * plugin.h (plugins_internal_error_function): Remove declaration.
28608         * toplev.c (internal_error_function): New static function.  Use it...
28609         (general_init): ...here.
28610
28611 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
28612
28613         * config/arc/arc.c (arc_print_operand): Handle constant operands.
28614         (arc_rtx_costs): Add costs for new patterns.
28615         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
28616         * config/arc/predicates.md: Add _1_2_3_operand predicate.
28617
28618 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
28619
28620         * tree-ssa-strlen.c (get_next_strinfo): New function.
28621         (get_stridx_plus_constant): Use it.
28622         (zero_length_string): Likewise.
28623         (adjust_related_strinfos): Likewise.
28624         (adjust_last_stmt): Likewise.
28625
28626 2017-05-31  Richard Biener  <rguenther@suse.de>
28627
28628         PR target/80880
28629         * config/i386/i386.c (ix86_expand_builtin): Remove assert
28630         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
28631
28632 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
28633
28634         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
28635         loop_vinfo argument and use of dependence distance vectors.
28636         Check instead whether the two references differ only in their
28637         initial value and assume that they have the same alignment if the
28638         difference is a multiple of the vector alignment.
28639         (vect_analyze_data_refs_alignment): Update call accordingly.
28640
28641 2017-05-31  Martin Liska  <mliska@suse.cz>
28642
28643         PR target/79155
28644         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
28645
28646 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
28647
28648         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
28649         (create_intersect_range_checks): Move from ...
28650         * tree-data-ref.c (create_intersect_range_checks_index)
28651         (create_intersect_range_checks): ... to here.
28652         (create_runtime_alias_checks): New function factored from ...
28653         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
28654         here.  Call above function.
28655         * tree-data-ref.h (create_runtime_alias_checks): New function.
28656
28657 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
28658
28659         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
28660         segment length for dr_b and compute it in wide_int.
28661
28662 2017-05-31  Richard Biener  <rguenther@suse.de>
28663
28664         PR tree-optimization/80906
28665         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
28666         and pass through iv_map.
28667         (copy_bb_and_scalar_dependences): Adjust.
28668         (translate_pending_phi_nodes): Likewise.
28669         (copy_loop_close_phi_args): Handle code-generating IVs instead
28670         of ICEing.
28671
28672 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
28673
28674         * diagnostic-color.c (color_dict): Add "type-diff".
28675         (parse_gcc_colors): Update comment.
28676         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
28677         -fdiagnostics-show-template-tree and -fno-elide-type.
28678         (GCC_COLORS): Add type-diff to example.
28679         (type-diff=): New.
28680         (-fdiagnostics-show-template-tree): New.
28681         (-fno-elide-type): New.
28682         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
28683         the pp_format_decoder callback.  Call any m_format_postprocessor's
28684         "handle" method.
28685         (pretty_printer::pretty_printer): Initialize
28686         m_format_postprocessor.
28687         (pretty_printer::~pretty_printer): Delete any
28688         m_format_postprocessor.
28689         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
28690         (class format_postprocessor): New class.
28691         (struct pretty_printer::format_decoder): Document the new parameters.
28692         (struct pretty_printer::m_format_postprocessor): New field.
28693         * tree-diagnostic.c (default_tree_printer): Update for new
28694         bool and const char ** params.
28695         * tree-diagnostic.h (default_tree_printer): Likewise.
28696
28697 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
28698
28699         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
28700         (lwa_operand): Delete rs6000_gen_cell_microcode test.
28701         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
28702         rs6000_gen_cell_microcode code.
28703         (rs6000_final_prescan_insn): Delete.
28704         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
28705         "warn-cell-microcode" entries.
28706         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
28707         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
28708         throughout.  Change cc_reg_not_micro_cr0_operand to
28709         cc_reg_not_cr0_operand throughout.
28710         (*extendhi<mode>2_noload): Delete.
28711         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
28712         (mwarn-cell-microcode): Delete.
28713         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
28714         -mgen-cell-microcode and -mwarn-cell-microcode.
28715
28716 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
28717
28718         PR target/80833
28719         * config/i386/constraints.md (Yd): New constraint.
28720         (Ye): Ditto.
28721         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
28722         and (?Yd, r) alternatives.  Update insn attributes.
28723         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
28724         and (?*Yd, r) alternatives.  Update insn attributes.
28725         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
28726
28727 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
28728
28729         * gimplify.c (gimplify_modify_expr): Don't create a
28730         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
28731         function.
28732
28733 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
28734
28735         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
28736
28737 2017-05-30  Richard Biener  <rguenther@suse.de>
28738
28739         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
28740         and reduc_def fields.
28741         (STMT_VINFO_REDUC_TYPE): New define.
28742         (STMT_VINFO_REDUC_DEF): Likewise.
28743         (vect_force_simple_reduction): Adjust prototype.
28744         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
28745         (vect_is_simple_reduction): Remove check_reduction argument.
28746         (vect_force_simple_reduction): Adjust and set
28747         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
28748         (vectorizable_reduction): Do not re-do reduction analysis
28749         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
28750         * tree-parloops.c (gather_scalar_reductions): Adjust.
28751
28752 2017-05-30  Richard Biener  <rguenther@suse.de>
28753
28754         PR middle-end/80901
28755         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
28756         split_edge code.
28757
28758 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28759
28760         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
28761         Introduce unknown_misalignment parameter and remove vf.
28762         (vect_peeling_hash_get_lowest_cost):
28763         Pass unknown_misalignment parameter.
28764         (vect_enhance_data_refs_alignment):
28765         Fix unsupportable data ref treatment.
28766
28767 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28768
28769         * tree-vect-data-refs.c (vect_get_data_access_cost):
28770         Workaround for SLP handling.
28771         (vect_enhance_data_refs_alignment):
28772         Compute costs for doing no peeling at all, compare to the best
28773         peeling costs so far and avoid peeling if cheaper.
28774
28775 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28776
28777         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
28778         Return peeling info and set costs to zero for unlimited cost
28779         model.
28780         (vect_enhance_data_refs_alignment): Also inspect all datarefs
28781         with unknown misalignment. Compute and costs for unknown
28782         misalignment, compare them to the costs for known misalignment
28783         and choose the cheapest for peeling.
28784
28785 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28786
28787         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
28788         (vect_get_peeling_costs_all_drs): Create function.
28789         (vect_peeling_hash_get_lowest_cost):
28790         Use vect_get_peeling_costs_all_drs.
28791         (vect_peeling_supportable): Create function.
28792         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
28793
28794 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28795
28796         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
28797         DR_HAS_NEGATIVE_STEP.
28798         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
28799         (vect_enhance_data_refs_alignment): Use.
28800         (vect_duplicate_ssa_name_ptr_info): Use.
28801         * tree-vectorizer.h (dr_misalignment): Use.
28802         (known_alignment_for_access_p): Use.
28803
28804 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
28805
28806         PR target/78838
28807         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
28808         .lowtext.
28809         (has_section_name): New function.
28810
28811 2017-05-30  Martin Liska  <mliska@suse.cz>
28812
28813         PR other/80909
28814         * auto-profile.c (get_function_decl_from_block): Fix
28815         parenthesis.
28816
28817 2017-05-30  Richard Biener  <rguenther@suse.de>
28818
28819         PR middle-end/80876
28820         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
28821
28822 2017-05-30  Martin Liska  <mliska@suse.cz>
28823
28824         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
28825         * dumpfile.h (struct dump_file_info): Remove ctors.
28826
28827 2017-05-30  Martin Liska  <mliska@suse.cz>
28828
28829         * predict.def: Fix GNU coding style.
28830
28831 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
28832
28833         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
28834         Mark 'to' argument with ATTRIBUTE_UNUSED.
28835
28836 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
28837
28838         * config/xtensa/xtensa.c (xtensa_emit_call): Use
28839         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
28840         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
28841         format string.
28842
28843 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
28844
28845         * doc/install.texi (Options specification): Restore entry of
28846         --enable-sjlj-exceptions.
28847
28848 2017-05-27  Michael Eager  <eager@eagercon.com>
28849
28850         Revert:
28851         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
28852
28853         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
28854
28855         * config/microblaze/microblaze.h
28856         (FIXED_REGISTERS): Update in macro.
28857         (CALL_USED_REGISTERS): Update in macro.
28858
28859 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
28860
28861         * doc/install.texi: Add links to macOS binary distributions.
28862
28863 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
28864
28865         PR bootstrap/80887
28866         Revert:
28867         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28868
28869         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
28870
28871 2017-05-26  Martin Liska  <mliska@suse.cz>
28872
28873         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
28874
28875 2017-05-26  Martin Liska  <mliska@suse.cz>
28876
28877         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
28878         always leading ';; '.
28879         (dump_bb_info): Likewise.
28880         (brief_dump_cfg): Likewise.
28881         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
28882         * dumpfile.c: Remove usage of TDF_VERBOSE.
28883         * dumpfile.h (enum dump_kind): Likewise.
28884         (dump_gimple_bb_header): Do not use TDF_COMMENT.
28885         * print-tree.c (debug_verbose): Remove.
28886         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
28887         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
28888         * tree-diagnostic.c (default_tree_printer): Replace
28889         TDF_DIAGNOSTIC with TDF_SLIM.
28890
28891 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28892
28893         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
28894         in parameter loop, rather than loop_vinfo.
28895         (create_intersect_range_checks): Ditto.
28896         (vect_create_cond_for_alias_checks): Update call to above functions.
28897
28898 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28899
28900         PR tree-optimization/80815
28901         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
28902         for merging runtime alias checks.  Handle negative DR_STEPs.
28903
28904 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28905
28906         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
28907         Move from ...
28908         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
28909         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
28910         out code pruning runtime alias checks.
28911         * tree-data-ref.c (prune_runtime_alias_test_list): New function
28912         factored out from above.
28913         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
28914         Move from ...
28915         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
28916         ... to here.
28917         (prune_runtime_alias_test_list): New decalaration.
28918
28919 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28920
28921         * tree-vect-data-refs.c (compare_tree): Rename and move ...
28922         * tree-data-ref.c (data_ref_compare_tree): ... to here.
28923         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
28924         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
28925         (operator==, comp_dr_with_seg_len_pair): Ditto.
28926         (vect_prune_runtime_alias_test_list): Ditto.
28927
28928 2017-05-26  Martin Liska  <mliska@suse.cz>
28929
28930         PR ipa/80663
28931         * params.def: Bound partial-inlining-entry-probability param.
28932
28933 2017-05-26  Marek Polacek  <polacek@redhat.com>
28934
28935         PR sanitizer/80875
28936         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
28937         can be negated.
28938
28939 2017-05-26  Richard Biener  <rguenther@suse.de>
28940
28941         PR tree-optimization/80842
28942         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
28943         value.
28944
28945 2017-05-26  Richard Biener  <rguenther@suse.de>
28946
28947         PR tree-optimization/80844
28948         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
28949
28950 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
28951
28952         * doc/md.texi (Machine Constraints): Update x86 family
28953         machine constraints section to match 'config/i386/constraints.md'.
28954
28955 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
28956
28957         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
28958
28959 2017-05-25  Nathan Sidwell  <nathan@acm.org>
28960
28961         * doc/invoke.texi (--enable-languages): Update documentation.
28962
28963 2017-05-25  Martin Liska  <mliska@suse.cz>
28964
28965         * dumpfile.c: Add TDF_FOLDING.
28966         * dumpfile.h (enum dump_kind): Likewise.
28967         * genmatch.c (dt_simplify::gen_1): Use it.
28968
28969 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28970
28971         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
28972
28973 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28974
28975         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
28976         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
28977
28978 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28979
28980         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
28981         * match.pd (X == C): Rewrite it here.
28982         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
28983         with_certain_nonzero_bits2): New predicates.
28984         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
28985
28986 2017-05-24  Nathan Sidwell  <nathan@acm.org>
28987
28988         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
28989         avoid warning.
28990
28991         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
28992         warning.
28993
28994 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
28995
28996         * config/powerpcspe: New port.  Files are copied from the rs6000
28997         port, with "rs6000" in filenames replaced by "powerpcspe".
28998
28999 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
29000
29001         PR rtl-optimization/80754
29002         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
29003
29004 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
29005
29006         * config/sparc/sparc.md (length): Return the correct value for -mflat
29007         sibcalls to match output_sibcall.
29008
29009 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29010
29011         PR bootstrap/80860
29012         PR bootstrap/80843
29013         * config/rs6000/rs6000.c (struct machine_function): Add new field
29014         n_components.
29015         (rs6000_get_separate_components): Init that field, use it.
29016         (rs6000_components_for_bb): Use the field.
29017
29018 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29019
29020         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
29021
29022 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
29023
29024         PR middle-end/80823
29025         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
29026
29027 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29028
29029         PR target/80725
29030         * config/s390/s390.c (s390_check_qrst_address): Check incoming
29031         address against address_operand predicate.
29032         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
29033
29034 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
29035
29036         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
29037         parameters passed indirectly.
29038
29039 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
29040
29041         * config/i386/i386.md (*movdi_internal): Remove SSE4
29042         alternative 18 (?r, *v).  Update insn attributes.
29043         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
29044         Update insn attributes.
29045         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
29046         Update insn attributes.
29047         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
29048         alternative 1 (r, v). Remove isa attribute.
29049         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
29050         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
29051         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
29052
29053 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29054
29055         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
29056         dg-line directive.
29057
29058 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29059
29060         * cgraphunit.c (symbol_table::process_new_functions): Update.
29061         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
29062         (inline_generate_summary): Rename to ...
29063         (ipa_fn_summary_generate): ... this one.
29064         (inline_read_summary): Rename to ...
29065         (ipa_fn_summary_read): ... this one.
29066         (inline_write_summary): Rename to ...
29067         (ipa_fn_summary_write): ... this one.
29068         (inline_free_summary): Rename to ...
29069         (ipa_free_fn_summary): ... this one.
29070         (pass_data_local_fn_summary, pass_local_fn_summary,
29071         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
29072         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
29073         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
29074         make_pass_ipa_fn_summary): New.
29075         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
29076         inline_write_summary, inline_free_summary): Remove.
29077         (ipa_free_fn_summary) : New.
29078         * ipa-inline.c (ipa_inline): Update.
29079         (pass_ipa_inline): Do not generate summaries.
29080         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
29081         Remove.
29082         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
29083         and add pass_ipa_fn_summary.
29084         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
29085         New.
29086         (make_pass_inline_parameters): Remove.
29087
29088 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
29089
29090         * omp-low.c (struct omp_context): Remove "default_kind" member.
29091         Adjust all users.
29092
29093         * omp-offload.c (execute_oacc_device_lower): Remove the
29094         parallelism dimensions function attributes for unparallelized
29095         OpenACC kernels constructs.
29096
29097 2017-05-23  Martin Liska  <mliska@suse.cz>
29098
29099         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
29100         functions.
29101         (cgraph_edge::make_speculative): Likewise.
29102         (cgraph_edge::resolve_speculation): Likewise.
29103         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
29104         (cgraph_node::dump): Likewise.
29105         * cgraph.h: Likewise.
29106         * cgraphunit.c (analyze_functions): Likewise.
29107         (symbol_table::compile): Likewise.
29108         * ipa-cp.c (print_all_lattices): Likewise.
29109         (determine_versionability): Likewise.
29110         (initialize_node_lattices): Likewise.
29111         (ipcp_verify_propagated_values): Likewise.
29112         (estimate_local_effects): Likewise.
29113         (update_profiling_info): Likewise.
29114         (create_specialized_node): Likewise.
29115         (perhaps_add_new_callers): Likewise.
29116         (decide_about_value): Likewise.
29117         (decide_whether_version_node): Likewise.
29118         (identify_dead_nodes): Likewise.
29119         (ipcp_store_bits_results): Likewise.
29120         * ipa-devirt.c (dump_targets): Likewise.
29121         (ipa_devirt): Likewise.
29122         * ipa-icf.c (sem_item::dump): Likewise.
29123         (sem_function::equals): Likewise.
29124         (sem_variable::equals): Likewise.
29125         (sem_item_optimizer::read_section): Likewise.
29126         (sem_item_optimizer::execute): Likewise.
29127         (congruence_class::dump): Likewise.
29128         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
29129         (dump_inline_summary): Likewise.
29130         (estimate_node_size_and_time): Likewise.
29131         (inline_analyze_function): Likewise.
29132         * ipa-inline-transform.c (inline_call): Likewise.
29133         * ipa-inline.c (report_inline_failed_reason): Likewise.
29134         (want_early_inline_function_p): Likewise.
29135         (edge_badness): Likewise.
29136         (update_edge_key): Likewise.
29137         (inline_small_functions): Likewise.
29138         * ipa-profile.c (ipa_profile): Likewise.
29139         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
29140         (ipa_make_edge_direct_to_target): Likewise.
29141         (remove_described_reference): Likewise.
29142         (ipa_impossible_devirt_target): Likewise.
29143         (propagate_controlled_uses): Likewise.
29144         (ipa_print_node_params): Likewise.
29145         (ipcp_transform_function): Likewise.
29146         * ipa-pure-const.c (pure_const_read_summary): Likewise.
29147         (propagate_pure_const): Likewise.
29148         * ipa-reference.c (generate_summary): Likewise.
29149         (read_write_all_from_decl): Likewise.
29150         (propagate): Likewise.
29151         (ipa_reference_read_optimization_summary): Likewise.
29152         * ipa-utils.c (ipa_merge_profiles): Likewise.
29153         * ipa.c (walk_polymorphic_call_targets): Likewise.
29154         (symbol_table::remove_unreachable_nodes): Likewise.
29155         (ipa_single_use): Likewise.
29156         * passes.c (execute_todo): Likewise.
29157         * predict.c (drop_profile): Likewise.
29158         * symtab.c (symtab_node::get_dump_name): New function.
29159         (symtab_node::dump_name): Likewise.
29160         (symtab_node::dump_asm_name): Likewise.
29161         (symtab_node::dump_references): Likewise.
29162         (symtab_node::dump_referring): Likewise.
29163         (symtab_node::dump_base): Likewise.
29164         (symtab_node::debug_symtab): Likewise.
29165         * tree-sra.c (convert_callers_for_node): Likewise.
29166         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
29167         * value-prof.c (init_node_map): Likewise.
29168
29169 2017-05-23  Martin Liska  <mliska@suse.cz>
29170
29171         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
29172         and symtab_node::debug_symtab to symbol_table::debug.
29173         * cgraphunit.c (analyze_functions): Use the renamed function.
29174         (symbol_table::compile): Likewise.
29175         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
29176         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
29177         * passes.c (execute_todo): Likewise.
29178         * symtab.c (symbol_table::dump): New function.
29179         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
29180
29181 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29182
29183         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
29184         that nonconst implies exec.
29185
29186 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29187
29188         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29189         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29190         (inline_edge_summary_vec): Turn into ...
29191         (ipa_call_summaries): ... this one.
29192         (redirect_to_unreachable, edge_set_predicate,
29193         evaluate_properties_for_edge, inline_summary_alloc,
29194         reset_ipa_call_summary, reset_inline_summary,
29195         inline_summary_t::duplicate): Update.
29196         (inline_edge_duplication_hook): Turn to ...
29197         (ipa_call_summary_t::duplicate): ... this one.
29198         (inline_edge_removal_hook): Turn to ...
29199         (ipa_call_summary_t::remove): ... this one.
29200         (dump_inline_edge_summary): Turn to ...
29201         (dump_ipa_call_summary): ... this one.
29202         (estimate_function_body_sizes): Update.
29203         (inline_update_callee_summaries): Update.
29204         (remap_edge_change_prob): Update.
29205         (remap_edge_summaries): Update.
29206         (inline_merge_summary): Update.
29207         (do_estimate_edge_time): Update.
29208         (inline_generate_summary): Update.
29209         (inline_read_section): Update.
29210         (inline_read_summary): Update.
29211         (inline_free_summary): Update.
29212         * ipa-inline.c (can_inline_edge_p): Update.
29213         (compute_inlined_call_time): Update.
29214         (want_inline_small_function_p): Update.
29215         (edge_badness): Update.
29216         (early_inliner): Update.
29217         * ipa-inline.h (inline_edge_summary): Turn to ...
29218         (ipa_call_summary): ... this one.
29219         (ipa_call_summary_t): New class.
29220         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29221         (ipa_call_summaries): New.
29222         (inline_edge_summary): Remove.
29223         (estimate_edge_growth): Update.
29224         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29225         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29226         * ipa-split.c (execute_split_functions): Update.
29227         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29228
29229 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29230
29231         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29232         attributes): Document rdrand effective target.
29233
29234 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29235
29236         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29237         attributes): Sort alphabetically.
29238
29239 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
29240
29241         * config/avr/genmultilib.awk: Use gsub instead of gensub.
29242
29243 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
29244
29245         PR target/80718
29246         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
29247         V2DF/V2DI splat into two separate patterns, one that handles
29248         registers, and the other that only handles memory.  Drop support
29249         for splatting from a GPR on ISA 2.07 and then splitting the
29250         splat into direct move and splat.
29251         (vsx_splat_<mode>_reg): Likewise.
29252         (vsx_splat_<mode>_mem): Likewise.
29253
29254 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
29255
29256         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
29257
29258 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
29259
29260         PR middle-end/80809
29261         * omp-low.c (finish_taskreg_remap): New function.
29262         (finish_taskreg_scan): If unit size of ctx->record_type
29263         is non-constant, unshare the size expression and replace
29264         decls in it with possible outer var refs.
29265
29266         PR middle-end/80809
29267         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
29268         GOVD_SHARED rather than GOVD_PRIVATE with it.
29269         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
29270         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
29271
29272         PR middle-end/80853
29273         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
29274         as last argument to build_outer_var_ref for pointer bases of array
29275         section reductions.
29276
29277 2017-05-19  Martin Sebor  <msebor@redhat.com>
29278
29279         * print-tree.c (print_node): Print DECL_READ_P flag.
29280
29281 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29282
29283         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
29284         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
29285         * cgraph.c: Likewise.
29286         * cgraphunit.c: Likewise.
29287         * gengtype.c: Likewise.
29288         * ipa-cp.c: Likewise.
29289         * ipa-devirt.c: Likewise.
29290         * ipa-icf.c: Likewise.
29291         * ipa-predicate.c: Likewise.
29292         * ipa-profile.c: Likewise.
29293         * ipa-prop.c: Likewise.
29294         * ipa-split.c: Likewise.
29295         * ipa.c: Likewise.
29296         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
29297         edge_predicate_pool, dump_inline_hints,
29298         inline_summary::account_size_time, redirect_to_unreachable,
29299         edge_set_predicate, set_hint_predicate,
29300         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
29301         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
29302         inline_summary_t::remove, remap_hint_predicate_after_duplication,
29303         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
29304         ipa_call_summary_t::remove, initialize_growth_caches,
29305         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
29306         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
29307         mark_modified, unmodified_parm_1, unmodified_parm,
29308         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
29309         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
29310         compute_bb_predicates, will_be_nonconstant_expr_predicate,
29311         will_be_nonconstant_predicate, record_modified_bb_info,
29312         get_minimal_bb, record_modified, param_change_prob,
29313         phi_result_unknown_predicate, predicate_for_phi_result,
29314         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
29315         estimate_function_body_sizes, compute_inline_parameters,
29316         compute_inline_parameters_for_curren, pass_data_inline_parameters,
29317         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
29318         inline_update_callee_summaries, remap_edge_change_prob,
29319         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
29320         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
29321         inline_analyze_function, inline_summary_t::insert,
29322         inline_generate_summary, read_ipa_call_summary, inline_read_section,
29323         inline_read_summary, write_ipa_call_summary, inline_write_summary,
29324         inline_free_summary): Move to ipa-fnsummary.h
29325         (predicate_t): Remove.
29326         * ipa-fnsummary.c: New file.
29327         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
29328         (enum inline_hints_vals, inline_hints, agg_position_info,
29329         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
29330         inline_summaries, ipa_call_summary, ipa_call_summary_t,
29331         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
29332         dump_inline_summary, dump_inline_hints, inline_generate_summary,
29333         inline_read_summary, inline_write_summary, inline_free_summary,
29334         inline_analyze_function, initialize_inline_failed,
29335         inline_merge_summary, inline_update_overall_summary,
29336         compute_inline_parameters): Move to ipa-fnsummary.h
29337         * ipa-fnsummary.h: New file.
29338         * ipa-inline-transform.h: Include ipa-inline.h.
29339         * ipa-inline.c: LIkewise.
29340
29341 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29342
29343         * ipa-inline.c (edge_badness): Use inlined_time instead of
29344         inline_summaries->get.
29345
29346 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29347
29348         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
29349
29350 2017-05-22  Nathan Sidwell  <nathan@acm.org>
29351
29352         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
29353         (fdump-lang): Document 'raw' option.
29354         * dumpfile.h (TDI_tu): Delete.
29355         * dumpfile.c (dump_files): Remove translation-unit.
29356         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
29357
29358 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
29359
29360         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
29361         command option from $(AWK) call.
29362         * config/avr/genmultilib.awk: Simplify and rewrite so that it
29363         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
29364         [FORMAT]: Remove handling of variable.
29365         * config/avr/t-multilib: Regenerate.
29366
29367 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29368
29369         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
29370         self_time.
29371         (dump_inline_summary): Do not print self_time.
29372         (estimate_function_body_sizes): Do not set self_time.
29373         (compute_inline_parameters): Likewise.
29374         (inline_read_section, inline_write_summary): Do not stream self_time.
29375         * ipa-inline.h (inline_summary): Drop self_time.
29376
29377 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29378
29379         * ipa-inline-analysis.c (account_size_time): Rename to ...
29380         (inline_summary::account_size_time): ... this one.
29381         (reset_ipa_call_summary): Turn to ...
29382         (ipa_call_summary::reset): ... this one.
29383         (reset_inline_summary): Turn to ...
29384         (inline_summary::reset): ... this one.
29385         (inline_summary_t::remove): Update.
29386         (inline_summary_t::duplicate): Update.
29387         (ipa_call_summary_t::remove): Update.
29388         (dump_inline_summary): Update.
29389         (estimate_function_body_sizes): Update.
29390         (compute_inline_parameters): Update.
29391         (estimate_node_size_and_time): Update.
29392         (inline_merge_summary): Update.
29393         (inline_update_overall_summary): Update.
29394         (inline_read_section): Update.
29395         (inline_write_summary): Update.
29396         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
29397         add account_size_time and reset member functions.
29398         (ipa_call_summary): Add reset function.
29399         * ipa-predicate.h (predicate::operator &): Constify.
29400
29401 2017-05-22  Richard Biener  <rguenther@suse.de>
29402
29403         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
29404
29405 2017-05-19  Jason Merrill  <jason@redhat.com>
29406
29407         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
29408
29409 2017-05-19  Marek Polacek  <polacek@redhat.com>
29410
29411         PR sanitizer/80800
29412         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
29413         TYPE_OVERFLOW_WRAPS checks.
29414
29415 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
29416
29417         * tree-core.h (enum omp_clause_default_kind): Add
29418         "OMP_CLAUSE_DEFAULT_PRESENT".
29419         * tree-pretty-print.c (dump_omp_clause): Handle it.
29420         * gimplify.c (enum gimplify_omp_var_data): Add
29421         "GOVD_MAP_FORCE_PRESENT".
29422         (gimplify_adjust_omp_clauses_1): Map it to
29423         "GOMP_MAP_FORCE_PRESENT".
29424         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
29425
29426         * gimplify.c (oacc_default_clause): Clarify.
29427
29428 2017-05-19  Nathan Sidwell  <nathan@acm.org>
29429
29430         LANG_HOOK_REGISTER_DUMPS
29431         * toplev.c (general_init): Call register dump lang hook.
29432         * doc/invoke.texi: Document -fdump-lang option family.
29433         * dumpfile.c (dump_files): Remove class dump here.
29434         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
29435         * dumpfile.h (tree_dump_index): Remove TDI_class.
29436         * langhooks-def.h (lhd_register_dumps): Declare.
29437         (LANG_HOOKS_REGISTER_DUMPS): Define.
29438         (LANG_HOOKS_INITIALIZER): Add it.
29439         * langhooks.c (lhd_register_dumps): Define.
29440         * langhooks.h (struct lang_hooks): Add register_dumps.
29441
29442 2017-05-19  Nathan Sidwell  <nathan@acm.org>
29443
29444         * context.h (context::set_passes): New.
29445         * context.c (context::context): Do not create pass manager.
29446         * toplev.c (general_init): Create pass manager here.
29447
29448 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
29449
29450         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
29451         use this splitter if two add or or instructions would also work for
29452         the constant we want to generate.
29453
29454 2017-05-19  Richard Biener  <rguenther@suse.de>
29455
29456         PR build/80821
29457         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
29458         predicate evaluation.
29459
29460 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
29461
29462         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
29463         add ctor.
29464         * ipa-inline.c (want_inline_small_function_p): Do not cast to
29465         unsigned.
29466
29467 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
29468
29469         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29470         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29471         (inline_edge_summary_vec): Turn into ...
29472         (ipa_call_summaries): ... this one.
29473         (redirect_to_unreachable, edge_set_predicate,
29474         evaluate_properties_for_edge, inline_summary_alloc,
29475         reset_ipa_call_summary, reset_inline_summary,
29476         inline_summary_t::duplicate): Update.
29477         (inline_edge_duplication_hook): Turn to ...
29478         (ipa_call_summary_t::duplicate): ... this one.
29479         (inline_edge_removal_hook): Turn to ...
29480         (ipa_call_summary_t::remove): ... this one.
29481         (dump_inline_edge_summary): Turn to ...
29482         (dump_ipa_call_summary): ... this one.
29483         (estimate_function_body_sizes): Update.
29484         (inline_update_callee_summaries): Update.
29485         (remap_edge_change_prob): Update.
29486         (remap_edge_summaries): Update.
29487         (inline_merge_summary): Update.
29488         (do_estimate_edge_time): Update.
29489         (inline_generate_summary): Update.
29490         (inline_read_section): Update.
29491         (inline_read_summary): Update.
29492         (inline_free_summary): Update.
29493         * ipa-inline.c (can_inline_edge_p): Update.
29494         (compute_inlined_call_time): Update.
29495         (want_inline_small_function_p): Update.
29496         (edge_badness): Update.
29497         (early_inliner): Update.
29498         * ipa-inline.h (inline_edge_summary): Turn to ...
29499         (ipa_call_summary): ... this one.
29500         (ipa_call_summary_t): New class.
29501         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29502         (ipa_call_summaries): New.
29503         (inline_edge_summary): Remove.
29504         (estimate_edge_growth): Update.
29505         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29506         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29507         * ipa-split.c (execute_split_functions): Update.
29508         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29509
29510 2017-05-19  Richard Biener  <rguenther@suse.de>
29511
29512         PR middle-end/80764
29513         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
29514
29515 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
29516
29517         * config/rs6000/rs6000.c (struct machine_function): Add field
29518         fpr_is_wrapped_separately.
29519         (rs6000_get_separate_components): Use 64 components.  Handle the
29520         new FPR components.
29521         (rs6000_components_for_bb): Handle the FPR components.
29522         (rs6000_emit_prologue_components): Handle the FPR components.
29523         (rs6000_emit_epilogue_components): Handle the FPR components.
29524         (rs6000_set_handled_components): Handle the FPR components.
29525         (rs6000_emit_prologue): Don't output prologue code for those FPRs
29526         that are already separately shrink-wrapped.
29527         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
29528         that are already separately shrink-wrapped.
29529
29530 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
29531
29532         PR target/80510
29533         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
29534         New predicate.
29535
29536         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
29537         (define_peephole2 for Altivec d-form load): Add peepholes to catch
29538         cases where the register allocator uses a move and an offsettable
29539         memory operation to/from a FPR register on ISA 2.06/2.07.
29540         (define_peephole2 for Altivec d-form store): Likewise.
29541
29542 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
29543
29544         PR target/80799
29545         * config/i386/mmx.md (*mov<mode>_internal): Enable
29546         alternatives 11, 12, 13 and 14 also for 32bit targets.
29547         Remove alternatives 15, 16, 17 and 18.
29548         * config/i386/sse.md (vec_concatv2di): Change
29549         alternative (!x, *y) to (x, ?!*Yn).
29550
29551 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
29552
29553         * dumpfile.h (enum dump_kind): Remove stray comma.
29554
29555 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
29556
29557         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
29558         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
29559         predicate::num_conditions
29560         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
29561         (CHANGED): turn into predicate::changed.
29562         (agg_position_info): Move to ipa-predicate.h
29563         (add_condition, predicate::add_clause, predicate::operator &=,
29564         predicate::or_with, predicate::evaluate, predicate::probability,
29565         dump_condition, dump_clause, predicate::dump,
29566         predicate::remap_after_duplication, predicate::remap_after_inlining,
29567         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
29568         (evaluate_conditions_for_known_args): Update.
29569         (set_cond_stmt_execution_predicate): Update.
29570         * ipa-inline.h: Include ipa-predicate.h
29571         (condition, inline_param_summary, conditions, agg_position_info,
29572         predicate): Move to ipa-predicate.h
29573         * ipa-predicate.c: New file.
29574         * ipa-predicate.h: New file.
29575
29576 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
29577
29578         * final.c (leaf_function_p): Check we are not in a sequence.
29579
29580 2017-05-18  Martin Liska  <mliska@suse.cz>
29581
29582         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
29583         * dumpfile.c (dump_register): Use new enum dump_kind.
29584         (get_dump_file_name): Likewise.
29585         (dump_enable_all): Likewise.
29586         (dump_switch_p_1): Likewise.
29587         (enable_rtl_dump_file): Remove usage of TDF_RTL.
29588         * dumpfile.h (enum dump_kind): New enum type.
29589         (struct dump_file_info): Create constructor and
29590         format fields and comments.
29591         * passes.c (pass_manager::register_one_dump_file):
29592         Use num dump_kind.
29593         * statistics.c (statistics_early_init): Likewise.
29594         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
29595         TDF_TREE with TDF_SLIM.
29596         (gather_memory_references_ref): Likewise.
29597
29598 2017-05-18  Martin Liska  <mliska@suse.cz>
29599
29600         * vec.h (struct vnull): Use it.
29601
29602 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
29603
29604         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
29605         (true_predicate, false_predicate, true_predicate_p,
29606         false_predicate_p): Remove.
29607         (single_cond_predicate, not_inlined_predicate): Turn to member function
29608         in ipa-inline.h
29609         (add_condition): Update.
29610         (add_clause): Turn to...
29611         (predicate::add_clause): ... this one; update; allow passing NULL
29612         as parameter.
29613         (and_predicates): Turn to ...
29614         (predicate::operator &=): ... this one.
29615         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
29616         (or_predicates): Turn to ...
29617         (predicate::or_with): ... this one.
29618         (evaluate_predicate): Turn to ...
29619         (predicate::evaluate): ... this one.
29620         (predicate_probability): Turn to ...
29621         (predicate::probability): ... this one.
29622         (dump_condition): Update.
29623         (dump_predicate): Turn to ...
29624         (predicate::dump): ... this one.
29625         (account_size_time): Update.
29626         (edge_set_predicate): Update.
29627         (set_hint_predicate): UPdate.
29628         (evaluate_conditions_for_known_args): Update.
29629         (evaluate_properties_for_edge): Update.
29630         (remap_predicate_after_duplication): Turn to...
29631         (predicate::remap_after_duplication): ... this one.
29632         (remap_hint_predicate_after_duplication): Update.
29633         (inline_summary_t::duplicate): UPdate.
29634         (dump_inline_edge_summary): Update.
29635         (dump_inline_summary): Update.
29636         (set_cond_stmt_execution_predicate): Update.
29637         (set_switch_stmt_execution_predicate): Update.
29638         (compute_bb_predicates): Update.
29639         (will_be_nonconstant_expr_predicate): Update.
29640         (will_be_nonconstant_predicate): Update.
29641         (phi_result_unknown_predicate): Update.
29642         (predicate_for_phi_result): Update.
29643         (array_index_predicate): Update.
29644         (estimate_function_body_sizes): Update.
29645         (estimate_node_size_and_time): Update.
29646         (estimate_ipcp_clone_size_and_time): Update.
29647         (remap_predicate): Rename to ...
29648         (predicate::remap_after_inlining): ... this one.
29649         (remap_hint_predicate): Update.
29650         (inline_merge_summary): Update.
29651         (inline_update_overall_summary): Update.
29652         (estimate_size_after_inlining): Update.
29653         (read_predicate): Rename to ...
29654         (predicate::stream_in): ... this one.
29655         (read_inline_edge_summary): Update.
29656         (write_predicate): Rename to ...
29657         (predicate::stream_out): ... this one.
29658         (write_inline_edge_summary): Update.
29659         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
29660         (clause_t): Turn to uint32_t
29661         (predicate): Turn to class; implement constructor and operators
29662         ==, !=, &
29663         (size_time_entry): Update.
29664         (inline_summary): Update.
29665         (inline_edge_summary): Update.
29666
29667 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
29668
29669         * fold-const.c (fold_binary_loc): Move transformation...
29670         * match.pd (C - X CMP X): ... here.
29671
29672 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
29673
29674         * config/sparc/sparc.c (sparc_option_override): Set function
29675         alignment for -mcpu=niagara7 to 64 to match the I$ line.
29676         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
29677         latency to 1.
29678         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
29679         latency to 2.
29680         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
29681
29682 2017-05-18  Marek Polacek  <polacek@redhat.com>
29683
29684         PR sanitizer/80797
29685         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
29686         (pass_ubsan::execute): Call gimple_assign_single_p instead of
29687         gimple_assign_load_p.
29688
29689 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
29690
29691         PR middle-end/80692
29692         * real.c (do_compare): Give decimal_do_compare preference over
29693         comparing just the signs.
29694
29695 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
29696
29697         * doc/md.texi (Canonicalization of Instructions): Describe the
29698         canonical form of instructions that inherently set a condition
29699         code register.
29700
29701 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
29702
29703         PR middle-end/80775
29704         * tree-cfg.c: Move deletion of unreachable case statements to after
29705         the merging of consecutive case labels.
29706
29707 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29708
29709         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
29710         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
29711         restoring of callee-saved registers.
29712
29713 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
29714
29715         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
29716         * config/visium/visium.c (single_set_and_flags): Likewise.
29717         * config/visium/visium.md (Substitutions): Likewise.
29718
29719 2017-05-17  Martin Liska  <mliska@suse.cz>
29720
29721         * cfg.c: Introduce dump_flags_t type and
29722         use it instead of int type.
29723         * cfg.h: Likewise.
29724         * cfghooks.c: Likewise.
29725         * cfghooks.h (struct cfg_hooks): Likewise.
29726         * cfgrtl.c: Likewise.
29727         * cfgrtl.h: Likewise.
29728         * cgraph.c (cgraph_node::get_body): Likewise.
29729         * coretypes.h: Likewise.
29730         * domwalk.c: Likewise.
29731         * domwalk.h: Likewise.
29732         * dumpfile.c (struct dump_option_value_info): Likewise.
29733         (dump_enable_all): Likewise.
29734         (dump_switch_p_1): Likewise.
29735         (opt_info_switch_p): Likewise.
29736         * dumpfile.h (enum tree_dump_index): Likewise.
29737         (struct dump_file_info): Likewise.
29738         * genemit.c: Likewise.
29739         * generic-match-head.c: Likewise.
29740         * gengtype.c (open_base_files): Likewise.
29741         * gimple-pretty-print.c: Likewise.
29742         * gimple-pretty-print.h: Likewise.
29743         * graph.c (print_graph_cfg): Likewise.
29744         * graphite-scop-detection.c (dot_all_sese): Likewise.
29745         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
29746         * loop-unroll.c (report_unroll): Likewise.
29747         * passes.c (pass_manager::register_one_dump_file): Likewise.
29748         * print-tree.c: Likewise.
29749         * statistics.c: Likewise.
29750         * tree-cfg.c: Likewise.
29751         * tree-cfg.h: Likewise.
29752         * tree-dfa.c: Likewise.
29753         * tree-dfa.h: Likewise.
29754         * tree-dump.c (dump_function): Likewise.
29755         * tree-dump.h (struct dump_info): Likewise.
29756         * tree-pretty-print.c: Likewise.
29757         * tree-pretty-print.h: Likewise.
29758         * tree-ssa-live.c: Likewise.
29759         * tree-ssa-live.h: Likewise.
29760         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
29761         * tree-vect-loop.c: Likewise.
29762         * tree-vect-slp.c: Likewise.
29763
29764 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
29765             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29766
29767         PR tree-optimization/80457
29768         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
29769         of all arguments to a statement as scalar_to_vec operations.
29770         (vectorizable_call): Adjust call to vect_model_simple_cost for
29771         new parameter.
29772         (vectorizable_conversion): Likewise.
29773         (vectorizable_assignment): Likewise.
29774         (vectorizable_shift): Likewise.
29775         (vectorizable_operation): Likewise.
29776         (vectorizable_comparison): Likewise.
29777         (vect_is_simple_cond): Record the def types for operands.
29778         (vectorizable_condition): Likewise, call vect_model_simple_cost.
29779         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
29780         for statement argument count.
29781
29782 2017-05-16  Carl Love  <cel@us.ibm.com>
29783
29784         * config/rs6000/rs6000-c: Add support for built-in functions
29785         vector unsigned long long vec_bperm (vector unsigned long long,
29786                                              vector unsigned char)
29787         vector signed long long vec_mule (vector signed int,
29788                                           vector signed int)
29789         vector unsigned long long vec_mule (vector unsigned int,
29790                                             vector unsigned int)
29791         vector signed long long vec_mulo (vector signed int,
29792                                           vector signed int)
29793         vector unsigned long long vec_mulo (vector unsigned int,
29794                                             vector unsigned int)
29795         vector signed char vec_sldw (vector signed char,
29796                                      vector signed char,
29797                                      const int)
29798         vector unsigned char vec_sldw (vector unsigned char,
29799                                        vector unsigned char,
29800                                        const int)
29801         vector signed short vec_sldw (vector signed short,
29802                                       vector signed short,
29803                                       const int)
29804         vector unsigned short vec_sldw (vector unsigned short,
29805                                         vector unsigned short,
29806                                         const int)
29807         vector signed int vec_sldw (vector signed int,
29808                                     vector signed int,
29809                                     const int)
29810         vector unsigned int vec_sldw (vector unsigned int,
29811                                       vector unsigned int,
29812                                       const int)
29813         vector signed long long vec_sldw (vector signed long long,
29814                                           vector signed long long,
29815                                           const int)
29816         vector unsigned long long vec_sldw (vector unsigned long long,
29817                                             vector unsigned long long,
29818                                             const int)
29819         * config/rs6000/rs6000-c: Add support for built-in functions
29820         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
29821         * config/rs6000/altivec.h: Add defintion for vec_sldw.
29822         * doc/extend.texi: Update the built-in documentation for the
29823         new built-in functions.
29824
29825 2017-05-16  Marek Polacek  <polacek@redhat.com>
29826
29827         PR sanitizer/80536
29828         PR sanitizer/80386
29829         * tree.c (save_expr): Don't fold the expression.
29830
29831 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
29832
29833         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
29834         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
29835         and (?*y,m).  Update insn attributes.
29836
29837 2017-05-16  Martin Liska  <mliska@suse.cz>
29838
29839         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
29840         flags argument of print_gimple_stmt, print_gimple_expr,
29841         print_generic_stmt and print_generic_expr.
29842         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
29843         * coretypes.h: Likewise.
29844         * except.c (dump_eh_tree): Likewise.
29845         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
29846         * gimple-pretty-print.h: Likewise.
29847         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
29848         (backprop::push_to_worklist): Likewise.
29849         (backprop::pop_from_worklist): Likewise.
29850         (backprop::process_use): Likewise.
29851         (backprop::intersect_uses): Likewise.
29852         (note_replacement): Likewise.
29853         * gimple-ssa-store-merging.c
29854         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
29855         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
29856         (pass_store_merging::execute): Likewise.
29857         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
29858         (ssa_base_cand_dump_callback): Likewise.
29859         (dump_incr_vec): Likewise.
29860         (replace_refs): Likewise.
29861         (replace_mult_candidate): Likewise.
29862         (create_add_on_incoming_edge): Likewise.
29863         (create_phi_basis): Likewise.
29864         (insert_initializers): Likewise.
29865         (all_phi_incrs_profitable): Likewise.
29866         (introduce_cast_before_cand): Likewise.
29867         (replace_one_candidate): Likewise.
29868         * gimplify.c (gimplify_expr): Likewise.
29869         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
29870         (set_rename): Likewise.
29871         (rename_uses): Likewise.
29872         (copy_loop_phi_nodes): Likewise.
29873         (add_close_phis_to_merge_points): Likewise.
29874         (copy_loop_close_phi_args): Likewise.
29875         (copy_cond_phi_args): Likewise.
29876         (graphite_copy_stmts_from_block): Likewise.
29877         (translate_pending_phi_nodes): Likewise.
29878         * graphite-poly.c (print_pdr): Likewise.
29879         (dump_gbb_cases): Likewise.
29880         (dump_gbb_conditions): Likewise.
29881         (print_scop_params): Likewise.
29882         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
29883         (build_cross_bb_scalars_use): Likewise.
29884         (gather_bbs::before_dom_children): Likewise.
29885         * hsa-dump.c (dump_hsa_immed): Likewise.
29886         * ipa-cp.c (print_ipcp_constant_value): Likewise.
29887         (get_replacement_map): Likewise.
29888         * ipa-inline-analysis.c (dump_condition): Likewise.
29889         (estimate_function_body_sizes): Likewise.
29890         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
29891         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
29892         * ipa-prop.c (ipa_dump_param): Likewise.
29893         (ipa_print_node_jump_functions_for_edge): Likewise.
29894         (ipa_modify_call_arguments): Likewise.
29895         (ipa_modify_expr): Likewise.
29896         (ipa_dump_param_adjustments): Likewise.
29897         (ipa_dump_agg_replacement_values): Likewise.
29898         (ipcp_modif_dom_walker::before_dom_children): Likewise.
29899         * ipa-pure-const.c (check_stmt): Likewise.
29900         (pass_nothrow::execute): Likewise.
29901         * ipa-split.c (execute_split_functions): Likewise.
29902         * omp-offload.c (dump_oacc_loop_part): Likewise.
29903         (dump_oacc_loop): Likewise.
29904         * trans-mem.c (tm_log_emit): Likewise.
29905         (tm_memopt_accumulate_memops): Likewise.
29906         (dump_tm_memopt_set): Likewise.
29907         (dump_tm_memopt_transform): Likewise.
29908         * tree-cfg.c (gimple_verify_flow_info): Likewise.
29909         (print_loop): Likewise.
29910         * tree-chkp-opt.c (chkp_print_addr): Likewise.
29911         (chkp_gather_checks_info): Likewise.
29912         (chkp_get_check_result): Likewise.
29913         (chkp_remove_check_if_pass): Likewise.
29914         (chkp_use_outer_bounds_if_possible): Likewise.
29915         (chkp_reduce_bounds_lifetime): Likewise.
29916         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
29917         (chkp_mark_completed_bounds): Likewise.
29918         (chkp_register_incomplete_bounds): Likewise.
29919         (chkp_mark_invalid_bounds): Likewise.
29920         (chkp_maybe_copy_and_register_bounds): Likewise.
29921         (chkp_build_returned_bound): Likewise.
29922         (chkp_get_bound_for_parm): Likewise.
29923         (chkp_build_bndldx): Likewise.
29924         (chkp_get_bounds_by_definition): Likewise.
29925         (chkp_generate_extern_var_bounds): Likewise.
29926         (chkp_get_bounds_for_decl_addr): Likewise.
29927         * tree-chrec.c (chrec_apply): Likewise.
29928         * tree-data-ref.c (dump_data_reference): Likewise.
29929         (dump_subscript): Likewise.
29930         (dump_data_dependence_relation): Likewise.
29931         (analyze_overlapping_iterations): Likewise.
29932         * tree-inline.c (expand_call_inline): Likewise.
29933         (tree_function_versioning): Likewise.
29934         * tree-into-ssa.c (dump_defs_stack): Likewise.
29935         (dump_currdefs): Likewise.
29936         (dump_names_replaced_by): Likewise.
29937         (dump_update_ssa): Likewise.
29938         (update_ssa): Likewise.
29939         * tree-object-size.c (pass_object_sizes::execute): Likewise.
29940         * tree-parloops.c (build_new_reduction): Likewise.
29941         (try_create_reduction_list): Likewise.
29942         (ref_conflicts_with_region): Likewise.
29943         (oacc_entry_exit_ok_1): Likewise.
29944         (oacc_entry_exit_single_gang): Likewise.
29945         * tree-pretty-print.h: Likewise.
29946         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
29947         (get_scalar_evolution): Likewise.
29948         (add_to_evolution): Likewise.
29949         (get_loop_exit_condition): Likewise.
29950         (analyze_evolution_in_loop): Likewise.
29951         (analyze_initial_condition): Likewise.
29952         (analyze_scalar_evolution): Likewise.
29953         (instantiate_scev): Likewise.
29954         (number_of_latch_executions): Likewise.
29955         (gather_chrec_stats): Likewise.
29956         (final_value_replacement_loop): Likewise.
29957         (scev_const_prop): Likewise.
29958         * tree-sra.c (dump_access): Likewise.
29959         (disqualify_candidate): Likewise.
29960         (create_access): Likewise.
29961         (reject): Likewise.
29962         (maybe_add_sra_candidate): Likewise.
29963         (create_access_replacement): Likewise.
29964         (analyze_access_subtree): Likewise.
29965         (analyze_all_variable_accesses): Likewise.
29966         (sra_modify_assign): Likewise.
29967         (initialize_constant_pool_replacements): Likewise.
29968         (find_param_candidates): Likewise.
29969         (decide_one_param_reduction): Likewise.
29970         (replace_removed_params_ssa_names): Likewise.
29971         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
29972         * tree-ssa-copy.c (dump_copy_of): Likewise.
29973         (copy_prop_visit_cond_stmt): Likewise.
29974         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
29975         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
29976         (record_equivalences_from_stmt): Likewise.
29977         * tree-ssa-dse.c (compute_trims): Likewise.
29978         (delete_dead_call): Likewise.
29979         (delete_dead_assignment): Likewise.
29980         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
29981         (forward_propagate_into_cond): Likewise.
29982         (pass_forwprop::execute): Likewise.
29983         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29984         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
29985         Likewise.
29986         (move_computations_worker): Likewise.
29987         (execute_sm): Likewise.
29988         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
29989         (remove_exits_and_undefined_stmts): Likewise.
29990         (remove_redundant_iv_tests): Likewise.
29991         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
29992         (adjust_iv_update_pos): Likewise.
29993         * tree-ssa-math-opts.c (bswap_replace): Likewise.
29994         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
29995         (value_replacement): Likewise.
29996         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
29997         * tree-ssa-pre.c (print_pre_expr): Likewise.
29998         (get_representative_for): Likewise.
29999         (create_expression_by_pieces): Likewise.
30000         (insert_into_preds_of_block): Likewise.
30001         (eliminate_insert): Likewise.
30002         (eliminate_dom_walker::before_dom_children): Likewise.
30003         (eliminate): Likewise.
30004         (remove_dead_inserted_code): Likewise.
30005         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
30006         * tree-ssa-reassoc.c (get_rank): Likewise.
30007         (eliminate_duplicate_pair): Likewise.
30008         (eliminate_plus_minus_pair): Likewise.
30009         (eliminate_not_pairs): Likewise.
30010         (undistribute_ops_list): Likewise.
30011         (eliminate_redundant_comparison): Likewise.
30012         (update_range_test): Likewise.
30013         (optimize_range_tests_var_bound): Likewise.
30014         (optimize_vec_cond_expr): Likewise.
30015         (rewrite_expr_tree): Likewise.
30016         (rewrite_expr_tree_parallel): Likewise.
30017         (linearize_expr): Likewise.
30018         (break_up_subtract): Likewise.
30019         (linearize_expr_tree): Likewise.
30020         (attempt_builtin_powi): Likewise.
30021         (attempt_builtin_copysign): Likewise.
30022         (transform_stmt_to_copy): Likewise.
30023         (transform_stmt_to_multiply): Likewise.
30024         (dump_ops_vector): Likewise.
30025         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
30026         (print_scc): Likewise.
30027         (set_ssa_val_to): Likewise.
30028         (visit_reference_op_store): Likewise.
30029         (visit_use): Likewise.
30030         (sccvn_dom_walker::before_dom_children): Likewise.
30031         (run_scc_vn): Likewise.
30032         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
30033         Likewise.
30034         (expr_hash_elt::print): Likewise.
30035         (const_and_copies::pop_to_marker): Likewise.
30036         (const_and_copies::record_const_or_copy_raw): Likewise.
30037         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
30038         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
30039         (dump_predicates): Likewise.
30040         (find_uninit_use): Likewise.
30041         (warn_uninitialized_phi): Likewise.
30042         (pass_late_warn_uninitialized::execute): Likewise.
30043         * tree-ssa.c (verify_vssa): Likewise.
30044         (verify_ssa): Likewise.
30045         (maybe_optimize_var): Likewise.
30046         * tree-vrp.c (dump_value_range): Likewise.
30047         (dump_all_value_ranges): Likewise.
30048         (dump_asserts_for): Likewise.
30049         (register_edge_assert_for_2): Likewise.
30050         (vrp_visit_cond_stmt): Likewise.
30051         (vrp_visit_switch_stmt): Likewise.
30052         (vrp_visit_stmt): Likewise.
30053         (vrp_visit_phi_node): Likewise.
30054         (simplify_cond_using_ranges_1): Likewise.
30055         (fold_predicate_in): Likewise.
30056         (evrp_dom_walker::before_dom_children): Likewise.
30057         (evrp_dom_walker::push_value_range): Likewise.
30058         (evrp_dom_walker::pop_value_range): Likewise.
30059         (execute_early_vrp): Likewise.
30060
30061 2017-05-16  Richard Biener  <rguenther@suse.de>
30062
30063         * dwarf2out.c (loc_list_from_tree_1): Do not create
30064         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
30065
30066 2017-05-16  Richard Biener  <rguenther@suse.de>
30067
30068         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
30069         just generated.
30070         (note_variable_value_in_expr): If we resolved the decl ref
30071         do not push to the stack.
30072
30073 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
30074
30075         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
30076         operations in fast-math mode.
30077         (vaddq_f16): Likewise.
30078         (vmul_f16): Likewise.
30079         (vmulq_f16): Likewise.
30080         (vsub_f16): Likewise.
30081         (vsubq_f16): Likewise.
30082         * config/arm/neon.md (add<mode>3): New.
30083         (sub<mode>3): New.
30084         (fma:<VH:mode>3): New.  Also remove outdated comment.
30085         (mul<mode>3): New.
30086
30087 2017-05-16  Martin Liska  <mliska@suse.cz>
30088
30089         PR ipa/79849.
30090         PR ipa/79850.
30091         * ipa-devirt.c (warn_types_mismatch): Fix typo.
30092         (odr_types_equivalent_p): Likewise.
30093
30094 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
30095
30096         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
30097
30098 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
30099
30100         PR target/80425
30101         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
30102         non-interunit SSE move alternatives with '?'.
30103         (zero-extendsidi peephole2): New peephole to skip intermediate
30104         general register in SSE zero-extend sequence.
30105
30106 2017-05-15  Jeff Law  <law@redhat.com>
30107
30108         * reorg.c (relax_delay_slots): Create a new variable to hold
30109         the temporary target rather than clobbering TARGET_LABEL.
30110
30111         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
30112         missing argument to extract_bit_field call.
30113         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
30114
30115 2017-05-15  Martin Liska  <mliska@suse.cz>
30116
30117         PR driver/31468
30118         * gcc.c (process_command): Do not allow empty argument of -o option.
30119
30120 2017-05-15  Renlin Li  <renlin.li@arm.com>
30121
30122         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
30123         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
30124         * config/aarch64/constraints.md (Usf): Add long call check.
30125         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
30126         (call_value): Likewise.
30127         (sibcall): Likewise.
30128         (sibcall_value): Likewise.
30129         (call_insn): New.
30130         (call_value_insn): New.
30131         (sibcall_insn): Update rtx pattern.
30132         (sibcall_value_insn): Likewise.
30133         (call_internal): Remove.
30134         (call_value_internal): Likewise.
30135         (sibcall_internal): Likewise.
30136         (sibcall_value_internal): Likewise.
30137         (call_reg): Likewise.
30138         (call_symbol): Likewise.
30139         (call_value_reg): Likewise.
30140         (call_value_symbol): Likewise.
30141
30142 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
30143
30144         PR target/80600
30145         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
30146
30147 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
30148
30149         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
30150         compatible with CCGOCmode and with CCZmode.
30151
30152 2017-05-14  Martin Sebor  <msebor@redhat.com>
30153
30154         PR middle-end/77671
30155         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
30156         (gimple_fold_builtin_snprintf): Same.
30157         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
30158         (gimple_fold_builtin_snprintf): Same.
30159         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
30160         of character types.
30161         (is_call_safe): New function.
30162         (try_substitute_return_value): Call it.
30163         (try_simplify_call): New function.
30164         (pass_sprintf_length::handle_gimple_call): Call it.
30165
30166 2017-05-14  Martin Sebor  <msebor@redhat.com>
30167
30168         PR middle-end/80669
30169         * builtins.c (expand_builtin_stpncpy): Simplify.
30170
30171 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
30172
30173         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
30174         * config/i386/i386.h
30175         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
30176         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
30177         (struct machine_function): Add new members call_ms2sysv,
30178         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
30179         (struct machine_frame_state): New fields sp_realigned and
30180         sp_realigned_offset.
30181         * config/i386/i386.c
30182         (enum xlogue_stub): New enum.
30183         (enum xlogue_stub_sets): New enum.
30184         (class xlogue_layout): New class.
30185         (struct ix86_frame): New fields stack_realign_allocate_offset,
30186         stack_realign_offset and outlined_save_offset.  Modify comments to
30187         detail stack layout when using out-of-line stubs.
30188         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
30189         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
30190         -mcall-ms2sysv-xlogues.
30191         (stub_managed_regs): New static variable.
30192         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
30193         registers managed by out-of-line stub.
30194         (disable_call_ms2sysv_xlogues): New function.
30195         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
30196         m->call_ms2sysv when appropriate and compute frame layout for
30197         out-of-line stubs.
30198         (sp_valid_at, fp_valid_at): New inline functions.
30199         (choose_basereg): New function.
30200         (choose_baseaddr): Add align parameter, use choose_basereg and modify
30201         all callers.
30202         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
30203         Use align parameter of choose_baseaddr to generated aligned SSE movs
30204         when possible.
30205         (pro_epilogue_adjust_stack): Modify to track
30206         machine_frame_state::sp_realigned.
30207         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
30208         (ix86_nsaved_sseregs): Likewise.
30209         (ix86_emit_save_regs): Likewise.
30210         (ix86_emit_save_regs_using_mov): Likewise.
30211         (ix86_emit_save_sse_regs_using_mov): Likewise.
30212         (get_scratch_register_on_entry): Likewise.
30213         (gen_frame_set): New function.
30214         (gen_frame_load): Likewise.
30215         (gen_frame_store): Likewise.
30216         (emit_outlined_ms2sysv_save): Likewise.
30217         (emit_outlined_ms2sysv_restore): Likewise.
30218         (ix86_expand_prologue): Modify stack re-alignment code and call
30219         emit_outlined_ms2sysv_save when appropriate.
30220         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
30221         parameter rtx_insn *insn, which allows the function to be used to only
30222         generate the notes.
30223         (ix86_expand_epilogue): Modify validity checks of frame and stack
30224         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
30225         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
30226         * config/i386/predicates.md
30227         (save_multiple): New predicate.
30228         (restore_multiple): Likewise.
30229         * config/i386/sse.md
30230         (save_multiple<mode>): New pattern.
30231         (save_multiple_realign<mode>): Likewise.
30232         (restore_multiple<mode>): Likewise.
30233         (restore_multiple_and_return<mode>): Likewise.
30234         (restore_multiple_leave_return<mode>): Likewise.
30235         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
30236
30237 2017-05-14  Julia Koval  <julia.koval@intel.com>
30238
30239         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
30240         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
30241         (__builtin_ia32_xsetbv): New builtins.
30242         * config/i386/i386.c (ix86_expand_special_args_builtin):
30243         Process new types.
30244         (ix86_expand_builtin): Special expand for new intrinsics.
30245         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
30246         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
30247         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
30248
30249 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30250
30251         * cfganal.c (inverted_post_order_compute): Change argument type
30252         to vec *.
30253         * cfganal.h (inverted_post_order_compute): Adjust prototype.
30254         * df-core.c (rest_of_handle_df_initialize): Adjust.
30255         (rest_of_handle_df_finish): Likewise.
30256         (df_analyze_1): Likewise.
30257         (df_analyze): Likewise.
30258         (loop_inverted_post_order_compute): Change argument to be a vec *.
30259         (df_analyze_loop): Adjust.
30260         (df_get_n_blocks): Likewise.
30261         (df_get_postorder): Likewise.
30262         * df.h (struct df_d): Change field to be a vec.
30263         * lcm.c (compute_laterin): Adjust.
30264         (compute_available): Likewise.
30265         * lra-lives.c (lra_create_live_ranges_1): Likewise.
30266         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
30267         * tree-ssa-pre.c (compute_antic): Likewise.
30268
30269 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30270
30271         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
30272         (depth_first_search::depth_first_search): Change structure init
30273         function to this constructor.
30274         (depth_first_search::add_bb): Rename function to this member.
30275         (depth_first_search::execute): Likewise.
30276         (flow_dfs_compute_reverse_finish): Adjust.
30277
30278 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30279
30280         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
30281         (longest_simple_path): Likewise.
30282         * shrink-wrap.c (spread_components): Likewise.
30283         (disqualify_problematic_components): Likewise.
30284         (emit_common_heads_for_components): Likewise.
30285         (emit_common_tails_for_components): Likewise.
30286         (insert_prologue_epilogue_for_components): Likewise.
30287
30288 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30289
30290         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
30291         auto_sbitmap.
30292
30293 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30294
30295         * df-core.c (df_set_blocks): Start using auto_bitmap.
30296         (df_compact_blocks): Likewise.
30297         * df-problems.c (df_rd_confluence_n): Likewise.
30298         * df-scan.c (df_insn_rescan_all): Likewise.
30299         (df_process_deferred_rescans): Likewise.
30300         (df_update_entry_block_defs): Likewise.
30301         (df_update_exit_block_uses): Likewise.
30302         (df_entry_block_bitmap_verify): Likewise.
30303         (df_exit_block_bitmap_verify): Likewise.
30304         (df_scan_verify): Likewise.
30305         * lra-constraints.c (lra_constraints): Likewise.
30306         (undo_optional_reloads): Likewise.
30307         (lra_undo_inheritance): Likewise.
30308         * lra-remat.c (calculate_gen_cands): Likewise.
30309         (do_remat): Likewise.
30310         * lra-spills.c (assign_spill_hard_regs): Likewise.
30311         (spill_pseudos): Likewise.
30312         * tree-ssa-pre.c (bitmap_set_and): Likewise.
30313         (bitmap_set_subtract_values): Likewise.
30314
30315 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30316
30317         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
30318         management with auto_bitmap.
30319         (fix_inter_tick): Likewise.
30320         (fix_recovery_deps): Likewise.
30321         * ira.c (add_store_equivs): Likewise.
30322         (find_moveable_pseudos): Likewise.
30323         (split_live_ranges_for_shrink_wrap): Likewise.
30324         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
30325         (rtx_reuse_manager::seen_def_p): Likewise.
30326         (rtx_reuse_manager::set_seen_def): Likewise.
30327         * print-rtl.h (class rtx_reuse_manager): Likewise.
30328
30329 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30330
30331         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
30332         lifetime.
30333         (migrate_btr_def): Likewise.
30334         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
30335         * df-core.c (loop_post_order_compute): Likewise.
30336         (loop_inverted_post_order_compute): Likewise.
30337         * hsa-common.h: Likewise.
30338         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
30339         * init-regs.c (initialize_uninitialized_regs): Likewise.
30340         * ipa-inline.c (resolve_noninline_speculation): Likewise.
30341         (inline_small_functions): Likewise.
30342         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
30343         * ira.c (combine_and_move_insns): Likewise.
30344         (build_insn_chain): Likewise.
30345         * loop-invariant.c (find_invariants): Likewise.
30346         * lower-subreg.c (propagate_pseudo_copies): Likewise.
30347         * predict.c (tree_predict_by_opcode): Likewise.
30348         (predict_paths_leading_to): Likewise.
30349         (predict_paths_leading_to_edge): Likewise.
30350         (estimate_loops_at_level): Likewise.
30351         (estimate_loops): Likewise.
30352         * shrink-wrap.c (try_shrink_wrapping): Likewise.
30353         (spread_components): Likewise.
30354         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
30355         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
30356         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
30357         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
30358         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
30359         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
30360         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
30361         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
30362         (mark_threaded_blocks): Likewise.
30363         (thread_through_all_blocks): Likewise.
30364         * tree-ssa.c (verify_ssa): Likewise.
30365         (execute_update_addresses_taken): Likewise.
30366         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
30367
30368 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30369
30370         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
30371         auto_vec.
30372         (post_order_compute): Likewise.
30373         (inverted_post_order_compute): Likewise.
30374         (pre_and_rev_post_order_compute_fn): Likewise.
30375
30376 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30377
30378         * genrecog.c (int_set::int_set): Explicitly construct our
30379         auto_vec base class.
30380         * vec.h (auto_vec::auto_vec): New constructor.
30381
30382 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30383
30384         * bitmap.h (class auto_bitmap): New constructor taking
30385         bitmap_obstack * argument.
30386
30387 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30388
30389         * bitmap.h (class auto_bitmap): Change type of m_bits to
30390         bitmap_head, and adjust ctor / dtor and member operators.
30391
30392 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
30393
30394         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
30395         when returned register mode doesn't match original mode.
30396
30397 2017-05-12  Jeff Law  <law@redhat.com>
30398             Jakub Jelinek  <jakub@redhat.com>
30399
30400         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
30401         we look for cc setter after the compare-elim changes.
30402         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
30403         within the vector to match what compare-elim now expects.
30404         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
30405         (xorsi3_flags, one_cmplsi2_flags): Likewise.
30406
30407         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
30408         after the compare-elim changes.
30409         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
30410         the vector to match what compare-elim now expects.
30411         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
30412         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
30413         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
30414         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
30415         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
30416
30417         * config/visium/visium.c (single_set_and_flags): Fix where
30418         we look for cc setter after the compare-elim changes.
30419         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
30420         with the vector to match what compare-elim now expects.
30421         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
30422         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
30423         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
30424         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
30425         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
30426         (neg<mode>2_insn_set_overflow): Likewise.
30427
30428 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
30429
30430         PR middle-end/79794
30431         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
30432         maybe_expand_insn call, set ops[0].target.  If still set after call,
30433         set alt_rtl.  Add extra arg to recursive calls.
30434         (extract_bit_field): Add alt_rtl argument.  Pass to
30435         extract_bit_field.
30436         * expmed.h (extract_bit_field): Fix prototype.
30437         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
30438         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
30439         to extract_bit_field_calls.
30440         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
30441         Pass alt_rtl to extract_bit_field calls.
30442         * calls.c (store_unaligned_arguments_into_psuedos)
30443         load_register_parameters): Pass extra NULL to extract_bit_field calls.
30444         * optabs.c (maybe_legitimize_operand): Clear op->target when call
30445         gen_reg_rtx.
30446         * optabs.h (struct expand_operand): Add target bitfield.
30447
30448 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
30449
30450         * compare-elim.c (try_eliminate_compare): Canonicalize
30451         operation with embedded compare to
30452         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
30453          (set (reg) (operation)].
30454
30455         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
30456
30457 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
30458
30459         PR target/80723
30460         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
30461         cost of adding a carry flag for ADC instruction.
30462         [case MINUS]: Ignore the cost of subtracting a carry flag
30463         for SBB instruction.
30464
30465 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
30466
30467         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
30468         and x86intrin.h
30469         * config/rs6000/bmiintrin.h: New file.
30470         * config/rs6000/bmi2intrin.h: New file.
30471         * config/rs6000/x86intrin.h: New file.
30472
30473 2017-05-12  Jeff Law  <law@redhat.com>
30474
30475         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
30476         markers.
30477
30478 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
30479
30480         PR middle-end/80707
30481         * tree-cfg.c: Remove cfg edges of unreachable case statements.
30482
30483 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30484
30485         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
30486         early expansion of vector divide builtins.
30487         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
30488         builtins identified as having unsigned arguments.
30489
30490 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30491
30492         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
30493         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
30494         expansion of vector logical operations (and, andc, or, xor,
30495         nor, orc, nand).
30496
30497 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30498
30499         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
30500         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
30501
30502 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30503
30504         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
30505         early GIMPLE expansion of vector multiplies.
30506
30507 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30508
30509         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
30510         TARGET_HAVE_MOVT conditional.
30511         (movt splitter): Likewise.
30512
30513 2017-05-12  Richard Biener  <rguenther@suse.de>
30514
30515         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
30516         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30517         Fold all stmts not inplace.
30518
30519 2017-05-12  Richard Biener  <rguenther@suse.de>
30520
30521         PR tree-optimization/80713
30522         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
30523         inserted_exprs bit for not removed stmts.
30524
30525 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
30526
30527         PR middle-end/69921
30528         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
30529         parallelized" attribute for parallelized OpenACC kernels.
30530         * omp-offload.c (execute_oacc_device_lower): Use it.
30531
30532         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
30533         Set "oacc kernels" attribute.
30534         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
30535         parameter.  Adjust all users.
30536         (oacc_fn_attrib_kernels_p): Remove function.
30537         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
30538         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
30539         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
30540         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
30541         assert "oacc kernels" attribute is set.
30542
30543 2017-05-11  Carl Love  <cel@us.ibm.com>
30544
30545         * config/rs6000/rs6000-c: Add support for built-in functions
30546         vector unsigned char vec_popcnt (vector signed char)
30547         vector unsigned char vec_popcnt (vector unsigned char)
30548         vector unsigned short vec_popcnt (vector signed short)
30549         vector unsigned short vec_popcnt (vector unsigned short)
30550         vector unsigned int vec_popcnt (vector signed int)
30551         vector unsigned int vec_popcnt (vector unsigned int)
30552         vector unsigned long long vec_popcnt (vector signed long long)
30553         vector unsigned long long vec_popcnt (vector unsigned long long)
30554         vector signed long long vec_slo (vector signed long long,
30555                                          vector signed char)
30556         vector signed long long vec_slo (vector signed long long,
30557                                          vector unsigned char)
30558         vector unsigned long long vec_slo (vector unsigned long long,
30559                                            vector signed char)
30560         vector unsigned long long vec_slo (vector unsigned long long,
30561                                            vector unsigned char)
30562         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
30563         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
30564         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
30565         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
30566         * doc/extend.texi: Update the built-in documentation file for the
30567         new built-in functions.
30568
30569 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
30570
30571         * attribs.h (sorted_attr_string): Move machine independent
30572         functions for target clone support from the i386 port to common
30573         code.  Rename ix86_function_versions to common_function_versions.
30574         Rename make_name to make_unique_name.
30575         (common_function_versions): Likewise.
30576         (make_unique_name): Likewise.
30577         (make_dispatcher_decl): Likewise.
30578         (is_function_default_version): Likewise.
30579         * attribs.c (attr_strcmp): Likewise.
30580         (sorted_attr_string): Likewise.
30581         (common_function_versions): Likewise.
30582         (make_unique_name): Likewise.
30583         (make_dispatcher_decl): Likewise.
30584         (is_function_default_version): Likewise.
30585         * config/i386/i386.c (attr_strcmp): Likewise.
30586         (sorted_attr_string): Likewise.
30587         (ix86_function_versions): Likewise.
30588         (make_name): Likewise.
30589         (make_dispatcher_decl): Likewise.
30590         (is_function_default_version): Likewise.
30591         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
30592
30593 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30594
30595         PR target/80695
30596         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
30597         Account for direct move costs for vec_construct of integer
30598         vectors.
30599
30600 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
30601
30602         PR target/80706
30603         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
30604         (UNSPEC_STX_ATOMIC): Ditto.
30605         (loaddi_via_sse): New insn.
30606         (storedi_via_sse): Ditto.
30607         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
30608         Update corresponding peephole2 patterns.
30609         (atomic_storedi_fpu): Ditto.
30610
30611 2017-05-11  Julia Koval  <julia.koval@intel.com>
30612
30613         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
30614         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
30615         New intrinsics.
30616         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
30617         (__builtin_ia32_rsqrt14ss_mask): New builtins.
30618         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
30619
30620 2017-05-11  Nathan Sidwell  <nathan@acm.org>
30621
30622         * graphite-poly.c: Include dumpfile.h.
30623
30624         * dumpfle.h (dump_function): Declare here ...
30625         * tree-dump.h (dump_function): ... not here.
30626         * dumpfile.c: #include tree-cfg.h.
30627         (dump_function): Move here from ...
30628         * tree-dump.c (dump_function): ... here.
30629         * gimplify.c: #include splay-tree.h, not tree-dump.h.
30630         * graphite-poly.c: Don't include tree-dump.h.
30631         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
30632         * print-tree.c: Likewise.
30633         * stor-layout.c: Likewise.
30634         * tree-nested.c: Likewise.
30635
30636         * dumpfile.c (dump_start): Use TDF_FLAGS.
30637         (dump_enable_all): Fix TDF_KIND check thinko.
30638
30639 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30640
30641         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30642         array entries to represent two legal parameterizations of the
30643         overloaded __builtin_cmpb function, as represented by the
30644         P6_OV_BUILTIN_CMPB constant.
30645         (altivec_resolve_overloaded_builtin): Add special case handling
30646         for the __builtin_cmpb function, as represented by the
30647         P6_OV_BUILTIN_CMPB constant.
30648         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
30649         (BU_P6_64BIT_2): New macro.
30650         (BU_P6_OVERLOAD_2): New macro
30651         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
30652         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
30653         (CMPB): Add overload support to represent both 32-bit and 64-bit
30654         compare-bytes function.
30655         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
30656         support for TARGET_CMPB.
30657         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
30658         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
30659         documentation of the __builtin_cmpb overloaded built-in function.
30660
30661 2017-05-11  Richard Biener  <rguenther@suse.de>
30662
30663         PR tree-optimization/80705
30664         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
30665         bases are not vectorizable.
30666
30667 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30668
30669         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
30670         when counting register pressure.
30671
30672 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30673
30674         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
30675         (iv_ca_more_deps): Renamed to ...
30676         (iv_ca_compare_deps): ... this.
30677         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
30678
30679 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30680
30681         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
30682         to ...
30683         (determine_group_iv_costs): ... here.
30684         (find_inv_vars_cb): Record inv var if it's not recorded before.
30685
30686 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30687
30688         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
30689         (get_shiftadd_cost): Ditto.
30690
30691 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30692
30693         * tree-ssa-address.c: Include header file.
30694         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
30695         address.
30696         (add_to_parts): Refactor.
30697         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
30698         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
30699         in new order.
30700
30701 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30702
30703         PR tree-optimization/53090
30704         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
30705         COMP_IV_EXPR_2.
30706         (extract_cond_operands): Detect condition with IV on both sides
30707         and return COMP_IV_EXPR_2.
30708         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
30709         (rewrite_use_compare): Simplify by removing call to function
30710         extract_cond_operands.
30711
30712 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30713
30714         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
30715         (extract_cond_operands): Detect condition comparing against non-
30716         invariant bound and return appropriate enum value.
30717         (find_interesting_uses_cond): Update use of extract_cond_operands.
30718         Handle its return value accordingly.
30719         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
30720
30721 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30722
30723         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
30724         nonlinear iv_use computation in loop invariant sensitive way.
30725
30726 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30727
30728         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
30729         (find_iv_candidates): Call relate_compare_use_with_all_cands.
30730
30731 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30732
30733         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
30734         (dump_cand): Support iv_cand.inv_exprs.
30735         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
30736         for candidates.
30737         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
30738         iv_cand.inv_exprs.
30739
30740 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30741
30742         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
30743         from ...
30744         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
30745         as local function.  Include necessary header files.
30746         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
30747
30748 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30749
30750         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
30751
30752 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30753
30754         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
30755         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
30756         RSHIFT_EXPR and BIT_NOT_EXPR.
30757
30758 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30759
30760         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
30761         (adjust_setup_cost): New parameter supporting round up adjustment.
30762         (struct address_cost_data): Delete.
30763         (force_expr_to_var_cost): Don't bound cost with spill_cost.
30764         (split_address_cost, ptr_difference_cost): Delete.
30765         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
30766         (struct ainc_cost_data): New struct.
30767         (get_address_cost_ainc): New function.
30768         (get_address_cost, get_computation_cost): Reimplement.
30769         (determine_group_iv_cost_address): Record inv_expr for all uses of
30770         a group.
30771         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
30772         (iv_ca_has_deps): Reimplemented to ...
30773         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
30774         than OLD_CP.
30775         (iv_ca_extend): Call iv_ca_more_deps.
30776
30777 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30778
30779         * tree-ssa-address.c (struct mem_address): Move to header file.
30780         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
30781         * tree-ssa-address.h (struct mem_address): Move from C file.
30782         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
30783
30784 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30785
30786         * tree-affine.h (aff_combination_type): New interface.
30787         (aff_combination_zero_p): Remove static.
30788         (aff_combination_const_p): New interface.
30789         (aff_combination_singleton_var_p): New interfaces.
30790
30791 2017-05-11  Richard Biener  <rguenther@suse.de>
30792
30793         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30794         Skip unreachable blocks and destinations.
30795         (eliminate): Move stmt removal and fixup ...
30796         (fini_eliminate): ... here.  Skip inserted exprs.
30797         (pass_pre::execute): Move fini_pre after fini_eliminate.
30798         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
30799         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
30800         PRE to get rid of dead code that has invalid SSA form and
30801         split critical edges again.
30802
30803 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30804
30805         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
30806
30807 2017-05-11  Richard Biener  <rguenther@suse.de>
30808
30809         * passes.c (execute_function_todo): Verify loops if they are
30810         said to be up-to-date.
30811         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
30812         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
30813
30814 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
30815
30816         PR target/80090
30817         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
30818         handle calling assemble_external ourself.
30819
30820         PR target/79027
30821         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
30822         modes with zero size.  Enhance comment.
30823
30824 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30825
30826         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
30827         built-ins for vec_xl and vec_xst with short and char pointer
30828         arguments.
30829
30830 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
30831
30832         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
30833         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
30834         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
30835         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
30836         (_mm_maskz_min_round_ss): New intrinsics.
30837         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
30838         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
30839         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
30840         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
30841         (__builtin_ia32_minss_mask_round): New builtins.
30842         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30843         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
30844         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
30845         Rename to ...
30846         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
30847         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
30848         Change to ...
30849         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
30850         ... this.
30851
30852 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
30853
30854         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
30855         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
30856         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
30857         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
30858         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
30859         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
30860         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
30861         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30862         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
30863         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
30864         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
30865         (__builtin_ia32_mulss_mask_round): New builtins.
30866         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30867         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
30868         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
30869         Rename to ...
30870         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
30871         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
30872         Change to ...
30873         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
30874         ... this.
30875
30876 2017-05-10  Julia Koval  <julia.koval@intel.com>
30877
30878         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
30879         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
30880         (_mm256_setr_m128i): New intrinsics.
30881
30882 2017-05-10  Julia Koval  <julia.koval@intel.com>
30883
30884         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
30885         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
30886         (_mm_maskz_rcp14_ss): New intrinsics.
30887         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
30888         (__builtin_ia32_rcp14ss_mask): New builtins.
30889         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
30890
30891 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
30892
30893         PR tree-optimization/51513
30894         * tree-cfg.c (gimple_seq_unreachable_p): New function.
30895         (assert_unreachable_fallthru_edge_p): Use it.
30896         (group_case_labels_stmt): Likewise.
30897         * tree-cfg.h: Prototype it.
30898         * stmt.c: Include cfghooks.h and tree-cfg.h.
30899         (emit_case_dispatch_table) <gap_label>: New local variable.
30900         Use it to fill dispatch table gaps.
30901         Test for default_label before updating probabilities.
30902         (expand_case) <default_label>: Remove unneeded initialization.
30903         Test for unreachable default case statement and remove its edge.
30904         Set default_label accordingly.
30905         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
30906
30907 2017-05-10  Carl Love  <cel@us.ibm.com>
30908
30909         * config/rs6000/rs6000-c: Add support for built-in functions
30910         vector signed char      vec_neg (vector signed char)
30911         vector signed short int vec_neg (vector short int)
30912         vector signed int       vec_neg (vector signed int)
30913         vector signed long long vec_neg (vector signed long long)
30914         vector float            vec_neg (vector float)
30915         vector double           vec_neg (vector double)
30916         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
30917         overload.
30918         * config/rs6000/altivec.h: Add define for vec_neg
30919         * doc/extend.texi: Update the built-in documentation for the
30920         new built-in functions.
30921
30922 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30923
30924         PR tree-optimization/77644
30925         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
30926
30927 2017-05-10  Nathan Sidwell  <nathan@acm.org>
30928
30929         * dumpfile.h (TDI_lang_all): New.
30930         (TDF_KIND): New. Renumber others
30931         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
30932         than bits.
30933         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
30934         lang-all.
30935         (get_dump_file_name): Adjust suffix generation.
30936         (dump_enable_all): Use TDF_KIND.
30937         * doc/invoke.texi (-fdump-lang-all): Document.
30938
30939         * dumpfile.h: Tabify.
30940
30941 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
30942
30943         PR target/80671
30944         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
30945         Move member access before delete.
30946
30947 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
30948
30949         * tree-inline.c (expand_call_inline): Split block at stmt
30950         before the call.
30951
30952 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
30953
30954         PR target/68163
30955         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
30956         are now unused after splitting mov{sf,sd}_hardfloat.
30957         (f32_lr2): Likewise.
30958         (f32_lm): Likewise.
30959         (f32_lm2): Likewise.
30960         (f32_li): Likewise.
30961         (f32_li2): Likewise.
30962         (f32_lv): Likewise.
30963         (f32_sr): Likewise.
30964         (f32_sr2): Likewise.
30965         (f32_sm): Likewise.
30966         (f32_sm2): Likewise.
30967         (f32_si): Likewise.
30968         (f32_si2): Likewise.
30969         (f32_sv): Likewise.
30970         (f32_dm): Likewise.
30971         (f32_vsx): Likewise.
30972         (f32_av): Likewise.
30973         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
30974         For movsf, order stores so the VSX stores occur before the GPR
30975         store which encourages the register allocator to use a traditional
30976         FPR instead of a GPR.  For movsd, order the stores so that the GPR
30977         store comes before the VSX stores to allow the power6 to work.
30978         This is due to the power6 not having a 32-bit integer store
30979         instruction from a FPR.
30980         (movsf_hardfloat): Likewise.
30981         (movsd_hardfloat): Likewise.
30982
30983 2017-05-09  Martin Sebor  <msebor@redhat.com>
30984
30985         PR translation/80280
30986         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
30987         added in r247778.
30988
30989         PR translation/80280
30990         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
30991         data member added in r247778.
30992         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
30993
30994 2017-05-09  Nathan Sidwell  <nathan@acm.org>
30995
30996         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
30997
30998         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
30999         typedefs.
31000
31001 2017-05-09  Marek Polacek  <polacek@redhat.com>
31002
31003         * doc/invoke.texi: Fix typo.
31004
31005 2017-05-09  Richard Biener  <rguenther@suse.de>
31006
31007         * tree-vrp.c (vrp_val_is_max): Adjust comment.
31008         (vrp_val_is_min): Likewise.
31009         (set_value_range_to_value): Likewise.
31010         (set_value_range_to_nonnegative): Likewise.
31011         (gimple_assign_nonzero_p): Likewise.
31012         (gimple_stmt_nonzero_p): Likewise.
31013         (vrp_int_const_binop): Likewise.  Remove unreachable case.
31014         (adjust_range_with_scev): Adjust comments.
31015         (compare_range_with_value): Likewise.
31016         (extract_range_from_phi_node): Likewise.
31017         (test_for_singularity): Likewise.
31018
31019 2017-05-09  Richard Biener  <rguenther@suse.de>
31020
31021         * tree-vrp.c (get_single_symbol): Add assert that we don't
31022         get overflowed constants as invariant part.
31023         (compare_values_warnv): Add comment before the TREE_NO_WARNING
31024         checks.  Use wi::cmp instead of recursing for integer constants.
31025         (compare_values): Just ignore whether we assumed undefined
31026         overflow instead of failing the compare.
31027         (extract_range_for_var_from_comparison_expr): Add comment before the
31028         TREE_NO_WARNING sets.
31029         (test_for_singularity): Likewise.
31030         (extract_range_from_comparison): Do not disable optimization
31031         when we assumed undefined overflow.
31032         (extract_range_basic): Remove init of unused var.
31033
31034 2017-05-09  Richard Biener  <rguenther@suse.de>
31035
31036         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
31037         (extract_range_from_multiplicative_op_1): Adjust.
31038         (extract_range_from_binary_expr_1): Use int_const_binop.
31039
31040 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31041
31042         PR target/80101
31043         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
31044         rs6000_store_data_bypass_p in seven define_bypass directives and
31045         in several comments.
31046         * config/rs6000/rs6000-protos.h: Add prototype for
31047         rs6000_store_data_bypass_p function.
31048         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
31049         function implements slightly different (rs6000-specific) semantics
31050         than store_data_bypass_p, returning false rather than aborting
31051         with assertion error when arguments do not satisfy the
31052         requirements of store data bypass.
31053         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
31054         rs6000_store_data_bypass_p.
31055
31056 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
31057
31058         * config/xtensa/xtensa-protos.h
31059         (xtensa_initial_elimination_offset): New declaration.
31060         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
31061         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
31062         macro definition, add case for FRAME_POINTER_REGNUM when
31063         FRAME_GROWS_DOWNWARD.
31064         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
31065         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
31066         xtensa_initial_elimination_offset.
31067
31068 2017-05-08  Nathan Sidwell  <nathan@acm.org>
31069
31070         * doc/invoke.texi: Alphabetize -fdump options.
31071
31072 2017-05-08  Martin Sebor  <msebor@redhat.com>
31073
31074         PR translation/80280
31075         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
31076
31077 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31078
31079         * target.def (compute_frame_layout): New optional target hook.
31080         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
31081         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
31082         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
31083         target hook.
31084         * reload1.c (verify_initial_elim_offsets): Likewise.
31085         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
31086         (use_simple_return_p): Call arm_compute_frame_layout if needed.
31087         (arm_get_frame_offsets): Split up into this ...
31088         (arm_compute_frame_layout): ... and this function.
31089
31090 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
31091
31092         * config/aarch64/constraints.md (Usa): New constraint.
31093         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
31094
31095 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31096
31097         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
31098         with_multilib_list after it has been checked.
31099
31100 2017-05-08  Richard Biener  <rguenther@suse.de>
31101
31102         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
31103         (bitmap_set_subtract_values): Likewise.
31104
31105 2017-05-08  Richard Biener  <rguenther@suse.de>
31106
31107         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
31108         (gimple_assign_nonzero): ... this and remove strict_overflow_p
31109         argument.
31110         (gimple_stmt_nonzero_warnv_p): Rename to ...
31111         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
31112         argument.
31113         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
31114         (extract_range_basic): Adjust, do not disable propagation on
31115         strict overflow sensitive simplification.
31116         (vrp_visit_cond_stmt): Likewise.
31117
31118 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
31119
31120         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
31121         body size unconditionally.
31122
31123 2017-05-07  Jeff Law  <law@redhat.com>
31124
31125         Revert:
31126         2017-05-06  Jeff Law  <law@redhat.com>
31127         PR tree-optimization/78496
31128         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31129         code.
31130
31131         PR tree-optimization/78496
31132         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31133         (simplify_stmt_using_ranges): Call it.
31134         (vrp_dom_walker::before_dom_children): Extract equivalences
31135         from an ASSERT_EXPR with an equality comparison against a
31136         constant.
31137
31138 2017-05-06  Jeff Law  <law@redhat.com>
31139
31140         PR tree-optimization/78496
31141         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31142         code.
31143
31144         PR tree-optimization/78496
31145         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31146         (simplify_stmt_using_ranges): Call it.
31147         (vrp_dom_walker::before_dom_children): Extract equivalences
31148         from an ASSERT_EXPR with an equality comparison against a
31149         constant.
31150
31151 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31152
31153         * lra-constraints.c (lra_copy_reg_equiv): New function.
31154         (split_reg): Use it to copy equivalence information from the
31155         original register to the spill register.
31156
31157 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31158
31159         PR rtl-optimization/75964
31160         * simplify-rtx.c (simplify_const_relational_operation): Remove
31161         invalid handling of comparisons of integer ABS.
31162
31163 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
31164
31165         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
31166         initialize to zero.
31167         (init_regs): Remove declaration.
31168         (function_arg_advance_32): Initialize error_p as boolean variable.
31169
31170 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31171
31172         * store-motion.c (remove_reachable_equiv_notes): Reformat long
31173         lines.  Use for (;;).
31174
31175 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31176
31177         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
31178         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
31179         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
31180         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
31181         VF=2 that require versioning.
31182
31183 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31184
31185         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
31186         int.
31187
31188 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31189
31190         * diagnostic.h (diagnostic_override_option_index): Convert from
31191         macro to inline function.
31192
31193 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31194
31195         * diagnostic.c (last_module_changed_p): New function.
31196         (set_last_module): New function.
31197         (diagnostic_report_current_module): Convert macro usage to
31198         the above functions.
31199         * diagnostic.h (diagnostic_context::last_module): Strengthen
31200         from const line_map * to const line_map_ordinary *.
31201         (diagnostic_last_module_changed): Delete macro.
31202         (diagnostic_set_last_module): Delete macro.
31203
31204 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31205
31206         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
31207         with diagnostic_report_diagnostic.
31208         (diagnostic_n_impl_richloc): Likewise.
31209         * diagnostic.h (report_diagnostic): Delete macro.
31210         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
31211         with diagnostic_report_diagnostic.
31212         * substring-locations.c (format_warning_va): Likewise.
31213
31214 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31215
31216         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
31217         save/restor of format_spec.  Move option-printing code to...
31218         (print_option_information): ...this new function, and
31219         reimplement by simply printing to the pretty_printer,
31220         rather than appending to the format string.
31221
31222 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31223
31224         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
31225         handling logic into...
31226         (update_effective_level_from_pragmas): ...this new function.
31227
31228 2017-05-04  Andrew Waterman  <andrew@sifive.com>
31229
31230         * config/riscv/riscv.opt (mstrict-align): New option.
31231         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
31232         (SLOW_UNALIGNED_ACCESS): Define.
31233         (riscv_slow_unaligned_access): Declare.
31234         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
31235         field.
31236         (riscv_slow_unaligned_access): New variable.
31237         (rocket_tune_info): Set slow_unaligned_access to true.
31238         (optimize_size_tune_info): Set slow_unaligned_access to false.
31239         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
31240         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
31241         (riscv_option_override): Set riscv_slow_unaligned_access.
31242         * doc/invoke.texi: Add -mstrict-align to RISC-V.
31243
31244 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
31245
31246         * config/riscv/riscv.md: Unify indentation.
31247
31248 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
31249
31250         PR target/79038
31251         PR target/79202
31252         PR target/79203
31253         * config/rs6000/rs6000.md (u code attribute): Add FIX and
31254         UNSIGNED_FIX.
31255         (extendsi<mode>2): Add support for doing sign extension via
31256         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
31257         don't have ISA 3.0 instructions.
31258         (extendsi<mode>2 splitter): Likewise.
31259         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
31260         generate the normal insns since SImode can now go in vector
31261         registers.  Disallow the special UNSPECs needed for previous
31262         machines to hide SImode being used.  Add new insns
31263         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
31264         (fix_trunc<mode>si2_stfiwx): Likewise.
31265         (fix_trunc<mode>si2_internal): Likewise.
31266         (fixuns_trunc<mode>si2): Likewise.
31267         (fixuns_trunc<mode>si2_stfiwx): Likewise.
31268         (fctiw<u>z_<mode>_smallint): Likewise.
31269         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
31270         of floating point to 32-bit integer from doing a direct move to
31271         the GPR registers to do a store.
31272         (fctiwz_<mode>): Break long line.
31273
31274 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
31275
31276         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
31277         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
31278         (addr_list, addr_offset_valid_p): New.
31279         (split_address_groups): Check offset validity with above function.
31280         (gt-tree-ssa-loop-ivopts.h): Include header file.
31281
31282 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31283
31284         * config.gcc (arm*-*-*): Add missing 'fi'.
31285
31286 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
31287
31288         * doc/invoke.texi (-fopt-info): Explicitly say order of options
31289         included in -fopt-info does not matter.
31290         * doc/optinfo.texi (-fopt-info): Fix description of default
31291         behavour. Explicitly say order of options included in -fopt-info
31292         does not matter.
31293
31294 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31295
31296         * config.gcc: Allow combinations of aprofile and rmprofile values for
31297         --with-multilib-list.
31298         * config/arm/t-multilib: New file.
31299         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
31300         variables.  Remove setting of ISA and floating-point ABI in
31301         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
31302         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
31303         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
31304         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
31305         CPU options.
31306         * config/arm/t-rmprofile: Likewise except for the matches changes.
31307         * doc/install.texi (--with-multilib-list): Document the combination of
31308         aprofile and rmprofile values and warn about pitfalls in doing that.
31309
31310 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31311
31312         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
31313         (movdi_aarch64): Likewise.
31314
31315 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31316
31317         PR tree-optimization/80632
31318         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
31319         field.
31320         (build_arrays): Initialize it for virtual phis.
31321         (fix_phi_nodes): Use it for virtual phis.
31322
31323         PR tree-optimization/80558
31324         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
31325         [x, y] op z into [x op, y op z] for op & or | if conditions
31326         are met.
31327
31328 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
31329             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31330
31331         PR target/71607
31332         * config/arm/arm.md (use_literal_pool): Remove.
31333         (64-bit immediate split): No longer takes cost into consideration
31334         if arm_disable_literal_pool is enabled.
31335         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
31336         used when arm_disable_literal_pool is enabled.
31337         (arm_max_const_double_inline_cost): Remove use of
31338         arm_disable_literal_pool.
31339         (push_minipool_fix): Add assert.
31340         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
31341         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
31342         (no_literal_pool_sf_immediate): New.
31343
31344 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31345
31346         PR tree-optimization/80613
31347         * tree-ssa-dce.c (propagate_necessity): Remove cases for
31348         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
31349
31350 2017-05-05  Richard Biener  <rguenther@suse.de>
31351
31352         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
31353
31354 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
31355
31356         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
31357         of this flag from insn conditions due to removal from r247495.
31358
31359 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31360
31361         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
31362         New function.
31363         (arm_early_store_addr_dep_ptr): Likewise.
31364         * config/arm/aarch-common-protos.h
31365         (arm_early_load_addr_dep_ptr): Add prototype.
31366         (arm_early_store_addr_dep_ptr): Likewise.
31367         * config/arm/cortex-a53.md: Add new bypasses.
31368
31369 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31370
31371         * tree.c (next_type_uid): Change type to unsigned.
31372         (type_hash_canon): Decrement back next_type_uid if
31373         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
31374         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
31375         if possible.
31376
31377 2017-05-04  Martin Sebor  <msebor@redhat.com>
31378
31379         * builtins.c: Fix a trivial typo in a comment.
31380
31381         PR middle-end/79234
31382         * builtins.c (check_sizes): Adjust to handle reading past the end.
31383         Avoid printing excessive upper bound of ranges.  Use %E to print
31384         tree nodes instead of converting them to %wu.
31385         (expand_builtin_memchr): New function.
31386         (compute_dest_size): Rename...
31387         (compute_objsize): ...to this.
31388         (expand_builtin_memcpy): Adjust.
31389         (expand_builtin_mempcpy): Adjust.
31390         (expand_builtin_strcat): Adjust.
31391         (expand_builtin_strcpy): Adjust.
31392         (check_strncat_sizes): Adjust.
31393         (expand_builtin_strncat): Adjust.
31394         (expand_builtin_strncpy): Adjust and simplify.
31395         (expand_builtin_memset): Adjust.
31396         (expand_builtin_bzero): Adjust.
31397         (expand_builtin_memcmp): Adjust.
31398         (expand_builtin): Handle memcmp.
31399         (maybe_emit_chk_warning): Check strncat just once.
31400
31401 2017-05-04  Martin Sebor  <msebor@redhat.com>
31402
31403         PR preprocessor/79214
31404         PR middle-end/79222
31405         PR middle-end/79223
31406         * builtins.c (check_sizes): Add inlining context and issue
31407         warnings even when -Wno-system-headers is set.
31408         (check_strncat_sizes): Same.
31409         (expand_builtin_strncat): Same.
31410         (expand_builtin_memmove): New function.
31411         (expand_builtin_stpncpy): Same.
31412         (expand_builtin): Handle memmove and stpncpy.
31413
31414 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
31415
31416         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
31417         which is not used any more.
31418
31419 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31420
31421         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
31422
31423 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31424
31425         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
31426         (cortexa53_tunings): Likewise.
31427         (cortexa57_tunings): Likewise.
31428         (cortexa72_tunings): Likewise.
31429         (cortexa73_tunings): Likewise.
31430
31431 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31432
31433         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
31434         Set loop alignment to 8.
31435
31436 2017-05-04  Martin Sebor  <msebor@redhat.com>
31437
31438         PR translation/80280
31439         * builtins.c (expand_builtin_object_size): Add missing quoting to
31440         %D and like directives.
31441         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
31442         (hsa_type_for_tree_type): Same.
31443         (verify_function_arguments): Same.
31444         * symtab.c (symbol_table::change_decl_assembler_name): Same.
31445         * varasm.c (get_section): Same.
31446         (mark_weak): Same.
31447
31448 2017-05-04  Martin Sebor  <msebor@redhat.com>
31449
31450         PR translation/80280
31451         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
31452
31453 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31454
31455         * config/aarch64/aarch64.c (generic_addrcost_table):
31456         Change HI/TI mode setting.
31457
31458 2017-05-04  Martin Jambor  <mjambor@suse.cz>
31459
31460         PR tree-optimization/80622
31461         * tree-sra.c (comes_initialized_p): New function.
31462         (build_accesses_from_assign): Only set write lazily when
31463         comes_initialized_p is false.
31464         (analyze_access_subtree): Use comes_initialized_p.
31465         (propagate_subaccesses_across_link): Assert !comes_initialized_p
31466         instead of testing for PARM_DECL.
31467
31468 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31469
31470         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
31471         constraint on operand 0 to allow more general addressing modes.
31472         Adjust output template.
31473         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
31474         New function.
31475         * config/aarch64/aarch64-protos.h
31476         (aarch64_address_valid_for_prefetch_p): Declare prototype.
31477         * config/aarch64/constraints.md (Dp): New address constraint.
31478         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
31479         predicate.
31480
31481 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
31482
31483         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
31484         update use of estimate_ipcp_clone_size_and_time.
31485         (estimate_local_effects): Update use of
31486         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
31487         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
31488         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
31489         Return nonspecialized time.
31490
31491 2017-05-04  Richard Biener  <rguenther@suse.de>
31492
31493         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
31494         for the last VUSE which def dominates the PHI.  Directly call
31495         maybe_skip_until.
31496         (get_continuation_for_phi_1): Remove.
31497
31498 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
31499
31500         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
31501         to explain the use of truncating division.  Cap the number of
31502         iterations to the maximum given by nb_iterations_upper_bound,
31503         if defined.
31504
31505 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31506
31507         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
31508         * configure: Regenerate.
31509         * config.in: Regenerate.
31510         * config/i386/driver-mingw32.c: new file.
31511         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
31512         * config.host: Link driver-mingw32.o on MinGW host.
31513         * doc/install.texi: Document new --enable-mingw-wildcard configure
31514         option.
31515
31516 2017-05-04  Marek Polacek  <polacek@redhat.com>
31517
31518         PR tree-optimization/80612
31519         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
31520
31521 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31522             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
31523
31524         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
31525         (movt splitter): Likewise.
31526         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
31527         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
31528         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
31529         block for Thumb-1 with MOVT.
31530         (thumb2_legitimate_address_p): Move code block ...
31531         (can_avoid_literal_pool_for_label_p): ... into this new function.
31532         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
31533         literal pool.
31534         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
31535         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
31536         "M-profile targets with the MOVT instruction".
31537
31538 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31539
31540         * config/arm/arm-builtins.c (arm_init_builtins): Rename
31541         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
31542         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
31543
31544 2017-05-04  Martin Liska  <mliska@suse.cz>
31545
31546         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
31547         variable cond_code.
31548
31549 2017-05-04  Richard Biener  <rguenther@suse.de>
31550
31551         * tree.c (array_at_struct_end_p): Handle arrays at struct
31552         end with flexarrays more conservatively.  Refactor and treat
31553         arrays of arrays or aggregates more strict.  Fix
31554         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
31555         * tree.c (array_at_struct_end_p): Adjust prototype.
31556         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
31557         * gimple-fold.c (get_range_strlen): Likewise.
31558         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
31559
31560 2017-05-04  Richard Biener  <rguenther@suse.de>
31561
31562         PR tree-optimization/31130
31563         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
31564         false.
31565         (supports_overflow_infinity): Likewise.
31566         (is_negative_overflow_infinity): Likewise.
31567         (is_positive_overflow_infinity): Likewise.
31568         (is_overflow_infinity): Likewise.
31569         (stmt_overflow_infinity): Likewise.
31570         (overflow_infinity_range_p): Likewise.
31571         (usable_range_p): Remove as always returning true.
31572         (make_overflow_infinity): Remove.
31573         (negative_overflow_infinity): Likewise.
31574         (positive_overflow_infinity): Likewise.
31575         (avoid_overflow_infinity): Likewise.
31576         (set_value_range): Adjust accordingly.
31577         (set_value_range_to_nonnegative): Likewise, remove now unused
31578         overflow_infinity arg.
31579         (vrp_operand_equal_p): Adjust.
31580         (update_value_range): Likewise.
31581         (range_int_cst_singleton_p): Likewise.
31582         (operand_less_p): Likewise.
31583         (compare_values_warnv): Likewise.
31584         (extract_range_for_var_from_comparison_expr): Likewise.
31585         (vrp_int_const_binop): Likewise.
31586         (zero_nonzero_bits_from_vr): Likewise.
31587         (extract_range_from_multiplicative_op_1): Likewise.
31588         (extract_range_from_binary_expr_1): Likewise.
31589         (extract_range_from_unary_expr): Likewise.
31590         (extract_range_from_comparison): Likewise.
31591         (extract_range_basic): Likewise.
31592         (adjust_range_with_scev): Likewise.
31593         (compare_ranges): Likewise.
31594         (compare_range_with_value): Likewise.
31595         (dump_value_range): Likewise.
31596         (test_for_singularity): Likewise, remove strict_overflow_p parameter
31597         never used.
31598         (simplify_cond_using_ranges): Adjust.
31599
31600 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
31601
31602         * brig-builtins.def: Added a builtin for class_f64.
31603         * builtin-types.def: Added a builtin type needed by class_f64.
31604
31605 2017-05-03  Jason Merrill  <jason@redhat.com>
31606
31607         * timevar.def: Add TV_CONSTEXPR.
31608
31609 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
31610
31611         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
31612
31613 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31614
31615         * ipa-prop.c (ipa_update_after_lto_read): Removed.
31616         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
31617         * ipa-cp.c (ipcp_propagate_stage): Do not call
31618         ipa_update_after_lto_read.
31619         * ipa-inline.c (ipa_inline): Likewise.
31620
31621 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31622
31623         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
31624         tag.  Added a default constructor and a destructor.
31625         (ipa_edge_args_sum_t): New class;
31626         (ipa_edge_args_sum): Declare.
31627         (ipa_edge_args_vector): Remove declaration.
31628         (IPA_EDGE_REF): Use ipa_edge_args_sum.
31629         (ipa_free_edge_args_substructures): Remove declaration.
31630         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
31631         (ipa_edge_args_info_available_for_edge_p): Likewise.
31632         * ipa-prop.c (ipa_edge_args_vector): Removed.
31633         (edge_removal_hook_holder): Likewise.
31634         (edge_duplication_hook_holder): Likewise.
31635         (ipa_edge_args_sum): New variable.
31636         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
31637         ipa_edge_args_vector.
31638         (ipa_free_edge_args_substructures): Likewise.
31639         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
31640         ipa_edge_args_vector.
31641         (ipa_edge_removal_hook): Turned into method
31642         ipa_edge_args_sum_t::remove.
31643         (ipa_edge_duplication_hook): Turned into method
31644         ipa_edge_args_sum_t::duplicate.
31645         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
31646         registering edge hooks.
31647         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
31648         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
31649         ipa_edge_args_sum instead of ipa_edge_args_vector.
31650         * ipa-profile.c (ipa_profile): Likewise.
31651
31652 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31653
31654         * symbol-summary.h (function_summary): New method exists.
31655         (function_summary::symtab_removal): Deallocate through release.
31656         (call_summary): New class.
31657         (gt_ggc_mx): New overload.
31658         (gt_pch_nx): Likewise.
31659         (gt_pch_nx): Likewise.
31660
31661 2017-05-03  Jeff Law  <law@redhat.com>
31662
31663         PR tree-optimization/78496
31664         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
31665         from simplify_cond_using_ranges.  Split off code to walk
31666         backwards through casts into ...
31667         (simplify_cond_using_ranges_2): New function.
31668         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
31669         (execute_vrp): After identifying jump threads, call
31670         simplify_cond_using_ranges_2.
31671
31672 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
31673
31674         PR bootstrap/80609
31675         * ipa-inline.h (inline_summary): Add ctor.
31676         (create_ggc): Do not use ggc_cleared_alloc.
31677
31678 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
31679             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31680
31681         * gcc.c (handle_braces): Support escaping in switch matching
31682         text.
31683         * doc/invoke.texi (Spec Files): Document it.
31684         Remove superfluous @code markup in items.
31685
31686 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
31687
31688         * diagnostic-show-locus.c (struct column_range): New struct.
31689         (get_affected_columns): New function.
31690         (get_printed_columns): New function.
31691         (struct correction): New struct.
31692         (correction::ensure_capacity): New function.
31693         (correction::ensure_terminated): New function.
31694         (struct line_corrections): New struct.
31695         (line_corrections::~line_corrections): New dtor.
31696         (line_corrections::add_hint): New function.
31697         (layout::print_trailing_fixits): Reimplement in terms of the new
31698         classes.
31699         (selftest::test_overlapped_fixit_printing): New function.
31700         (selftest::diagnostic_show_locus_c_tests): Call it.
31701
31702 2017-05-03  Nathan Sidwell  <nathan@acm.org>
31703
31704         Canonicalize canonical type hashing
31705         * tree.h (type_hash_canon_hash): Declare.
31706         * tree.c (type_hash_list, attribute_hash_list): Move into
31707         type_hash_canon_hash.
31708         (build_type_attribute_qual_variant): Break out hash code calc into
31709         type_hash_canon_hash.
31710         (type_hash_canon_hash): New.  Generic type hash computation.
31711         (build_range_type_1, build_array_type_1, build_function_type,
31712         build_method_type_directly, build_offset_type, build_complex_type,
31713         make_vector_type): Call it.
31714
31715 2017-05-03  Richard Biener  <rguenther@suse.de>
31716
31717         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
31718         When all DRs have unknown misaligned do not always peel
31719         when there is a store but apply the same costing model as if
31720         there were only loads.
31721
31722 2017-05-03  Richard Biener  <rguenther@suse.de>
31723
31724         Revert
31725         PR tree-optimization/80492
31726         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
31727         compare_base_decls returning dont-know properly.
31728
31729 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31730
31731         * config/arm/iterators.md (CCSI): New mode iterator.
31732         (arch): New mode attribute.
31733         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
31734         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
31735         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
31736         code iterator for success result mode.
31737         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
31738         the corresponding new insn generators.
31739
31740 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
31741
31742         Revert r247509
31743         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31744         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31745
31746 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
31747
31748         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
31749         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
31750         (DDR_A): Wrap DDR argument in brackets.
31751         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
31752         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
31753         (DDR_REVERSED_P): Likewise.
31754
31755 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
31756
31757         PR tree-optimization/79472
31758         * tree-switch-conversion.c (struct switch_conv_info): Add
31759         contiguous_range and default_case_nonstandard fields.
31760         (collect_switch_conv_info): Compute contiguous_range and
31761         default_case_nonstandard fields, don't clear final_bb if
31762         contiguous_range and only the default case doesn't have the required
31763         structure.
31764         (check_all_empty_except_final): Set default_case_nonstandard instead
31765         of failing if contiguous_range and the default case doesn't have empty
31766         block.
31767         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
31768         and only the default case doesn't have the required constants.  Skip
31769         virtual phis.
31770         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
31771         if default_case_nonstandard.
31772         (build_constructors): Build constant 1 just once.  Assert that default
31773         values aren't inserted in between cases if contiguous_range.  Skip
31774         virtual phis.
31775         (build_arrays): Skip virtual phis.
31776         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
31777         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
31778         Handle virtual phis.
31779         (gen_inbound_check): Handle default_case_nonstandard case.
31780         (process_switch): Adjust check_final_bb caller.  Call
31781         gather_default_values with the first non-default case instead of
31782         default case if default_case_nonstandard.
31783
31784 2017-05-02  Nathan Sidwell  <nathan@acm.org>
31785
31786         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
31787         check.  Fix formatting.
31788
31789 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
31790
31791         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
31792         errors when comparing specialized and unspecialized times.
31793
31794 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
31795
31796         * diagnostic-show-locus.c
31797         (layout::should_print_annotation_line_p): Make private.
31798         (layout::print_annotation_line): Make private.
31799         (layout::annotation_line_showed_range_p): Make private.
31800         (layout::show_ruler): Make private.
31801         (layout::print_source_line): Make private.  Pass in line and
31802         line_width, rather than calling location_get_source_line.  Drop
31803         returned value.
31804         (layout::print_leading_fixits): New method.
31805         (layout::print_any_fixits): Rename to...
31806         (layout::print_trailing_fixits): ...this, and make private.
31807         Don't print newline fixits.
31808         (diagnostic_show_locus): Move logic for printing one row into...
31809         (layout::print_line): ...this new function.  Move the
31810         location_get_source_line call and error-handling from
31811         print_source_line to here.  Call print_leading_fixits, and rename
31812         print_any_fixits to print_trailing_fixits.
31813         (selftest::test_fixit_insert_containing_newline): Update now that
31814         newlines are partially supported.
31815         (selftest::test_fixit_insert_containing_newline_2): New test.
31816         (selftest::test_fixit_replace_containing_newline): Update comments.
31817         (selftest::diagnostic_show_locus_c_tests): Call the new test.
31818         * edit-context.c (class added_line): New class.
31819         (class edited_line): Describe newline handling in comment.
31820         (edited_line::actually_edited_p): New method.
31821         (edited_line::print_content): Delete redundant decl.
31822         (edited_line::m_predecessors): New field.
31823         (edited_file::print_content): Call edited_line::print_content.
31824         (edited_file::print_diff): Update to support newlines.
31825         (edited_file::print_diff_hunk): Likewise.
31826         (edited_file::print_run_of_changed_lines): New function.
31827         (edited_file::print_diff_line): Convert to...
31828         (print_diff_line): ...this.
31829         (edited_file::get_effective_line_count): New function.
31830         (edited_line::edited_line): Initialize new field m_predecessors.
31831         (edited_line::~edited_line): Clean up m_predecessors.
31832         (edited_line::apply_fixit): Handle newlines.
31833         (edited_line::get_effective_line_count): New function.
31834         (edited_line::print_content): New function.
31835         (edited_line::print_diff_lines): New function.
31836         (selftest::test_applying_fixits_insert_containing_newline): New
31837         test.
31838         (selftest::test_applying_fixits_replace_containing_newline): New
31839         test.
31840         (selftest::insert_line): New function.
31841         (selftest::test_applying_fixits_multiple_lines): Add example of
31842         inserting a line.
31843         (selftest::edit_context_c_tests): Call the new tests.
31844
31845 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31846
31847         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
31848         parameter cand.  Update dump information.
31849         (get_computation_cost): Update uses.
31850
31851 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31852
31853         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
31854         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
31855         (get_computation_at, rewrite_use_address): Update use of
31856         get_computation_aff.
31857
31858 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31859
31860         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
31861         (get_computation): Delete.
31862         (get_computation_cost): Implement like get_computation_cost_at.
31863         Use get_computation_at.
31864         (get_computation_cost_at): Delete.
31865         (rewrite_use_nonlinear_expr): Use get_computation_at.
31866         (rewrite_use_compare, remove_unused_ivs): Ditto.
31867
31868 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31869
31870         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
31871
31872 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31873
31874         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
31875         (ivopts_global_cost_for_size): Rename parameter and update uses.
31876         (iv_ca_recount_cost): Update uses.
31877         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
31878         candidates seperately in n_invs and n_cands.
31879         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
31880
31881 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31882
31883         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
31884         (find_inv_vars_cb): New.
31885         (find_depends): Renamed to ...
31886         (find_inv_vars): ... this.
31887         (add_candidate_1, force_var_cost): Call find_inv_vars.
31888         (split_address_cost, determine_group_iv_cost_cond): Ditto.
31889
31890 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31891
31892         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
31893         inv_vars.  Add inv_exprs.
31894         (struct iv_cand): Rename depends_on to inv_vars.
31895         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
31896         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
31897         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
31898         (dump_cand): Dump inv_vars.
31899         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
31900         (record_invariant, find_depends, add_candidate_1): Ditto.
31901         (set_group_iv_cost, force_var_cost): Ditto.
31902         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
31903         (get_computation_cost_at, get_computation_cost): Ditto.
31904         (determine_group_iv_cost_generic): Ditto.
31905         (determine_group_iv_cost_address): Ditto.
31906         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
31907         (determine_group_iv_costs): Ditto.
31908         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
31909         (iv_ca_set_remove_invariants): Renamed to ...
31910         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
31911         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
31912         (iv_ca_set_add_invariants):  Renamed to ...
31913         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
31914         (iv_ca_set_cp): Use iv_ca_set_add_invs.
31915         (iv_ca_has_deps): Support inv_vars and inv_exprs.
31916         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
31917         (create_new_ivs): Remove useless dump.
31918
31919 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31920
31921         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
31922         iv_cand code.
31923         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
31924         (iv_ca_set_no_cp, create_new_iv): Ditto.
31925
31926 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31927
31928         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31929
31930 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
31931
31932         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
31933         function tree_check2.
31934
31935 2017-05-02  Martin Liska  <mliska@suse.cz>
31936
31937         * doc/gcov.texi: Add missing preposition.
31938         * gcov.c (function_info::function_info): Properly fill up
31939         all member variables.
31940
31941 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
31942
31943         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
31944
31945 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
31946
31947         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
31948
31949 2017-05-02  Martin Liska  <mliska@suse.cz>
31950
31951         PR lto/77954.
31952         * lto-streamer-in.c (lto_read_tree_1): Remove
31953         LTO_STREAMER_DEBUG.
31954         * lto-streamer.c (struct tree_hash_entry): Likewise.
31955         (struct tree_entry_hasher): Likewise.
31956         (tree_entry_hasher::hash): Likewise.
31957         (tree_entry_hasher::equal): Likewise.
31958         (lto_streamer_init): Likewise.
31959         (lto_orig_address_map): Likewise.
31960         (lto_orig_address_get): Likewise.
31961         (lto_orig_address_remove): Likewise.
31962         * lto-streamer.h: Likewise.
31963         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
31964         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
31965
31966 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
31967
31968         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
31969         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
31970         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
31971         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
31972         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
31973         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
31974         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
31975         (mm_maskz_sub_ss): New intrinsics.
31976         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31977         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31978         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
31979         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
31980         (__builtin_ia32_subss_mask_round): New builtins.
31981         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31982         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31983         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
31984         Renamed to ...
31985         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
31986         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31987         Changed to ...
31988         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31989         ... this.
31990
31991 2017-05-02  Martin Jambor  <mjambor@suse.cz>
31992
31993         PR tree-optimization/78687
31994         * tree-sra.c (access): New field parent.
31995         (process_subtree_disqualification): New function.
31996         (disqualify_candidate): Call it.
31997         (build_accesses_from_assign): Reset write flag if creating an
31998         assighnment link.
31999         (build_access_subtree): Fill in parent field and also prpagate
32000         down grp_write flag.
32001         (create_artificial_child_access): New parameter set_grp_write, set
32002         grp_write to its value.
32003         (propagate_subaccesses_across_link): Also propagate grp_write flag
32004         values.
32005         (propagate_all_subaccesses): Push the closest parent back to work
32006         queue if add_access_to_work_queue returned true.
32007
32008 2017-05-02  Richard Biener  <rguenther@suse.de>
32009
32010         * common.opt (fstrict-overflow): Alias negative to fwrapv.
32011         * doc/invoke.texi (fstrict-overflow): Remove all traces of
32012         -fstrict-overflow documentation.
32013         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
32014         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
32015         flag_strict_overflow.
32016         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
32017         * lto-opts.c (lto_write_options): Do not stream it.
32018         * lto-wrapper.c (merge_and_complain): Do not handle it.
32019         * opts.c (default_options_table): Do not set -fstrict-overflow.
32020         (finish_options): Likewise do not clear it when sanitizing.
32021         * simplify-rtx.c (simplify_const_relational_operation): Do not
32022         test flag_strict_overflow.
32023
32024 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32025
32026         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
32027         using enabled attribute.
32028         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
32029         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
32030         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
32031         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
32032         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
32033         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
32034         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
32035         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
32036         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
32037         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
32038
32039 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32040
32041         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
32042
32043 2017-05-02  Richard Biener  <rguenther@suse.de>
32044
32045         PR tree-optimization/80591
32046         Revert
32047         2017-04-10  Richard Biener  <rguenther@suse.de>
32048
32049         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32050         asm inputs.
32051
32052 2017-05-02  Richard Biener  <rguenther@suse.de>
32053
32054         PR tree-optimization/80549
32055         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
32056         (cleanup_tree_cfg_noloop): Create forwarders to known loop
32057         headers if they do not have a preheader.
32058
32059 2017-05-02  Martin Liska  <mliska@suse.cz>
32060
32061         PR other/80589
32062         * common.opt: Fix typo.
32063         * doc/invoke.texi: Likewise.
32064
32065 2017-05-01  Jan Beulich  <jbeulich@suse.com>
32066
32067         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
32068         swapping, add (x,x,m,x,n) alternative.
32069
32070 2017-05-01  Nathan Sidwell  <nathan@acm.org>
32071
32072         * calls.c (combine_pending_stack_adjustment_and_call): Remove
32073         unnecessary unadjusted_alignment check.
32074
32075 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32076
32077         PR c++/80038
32078         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
32079         operations here.
32080         * gimplify.c (gimplify_cilk_detach): New function.
32081         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
32082         * tree-core.h: Document EXPR_CILK_SPAWN.
32083         * tree.h (EXPR_CILK_SPAWN): Define.
32084
32085 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
32086
32087         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
32088         to use new fixit_hint representation, using the "replace" logic.
32089         (get_line_span_for_fixit_hint): Likewise.
32090         (layout::print_any_fixits): Likewise.
32091         (selftest::test_one_liner_many_fixits): Rename to...
32092         (selftest::test_one_liner_many_fixits_1): ...this, and update
32093         comment and expected output to reflect that the multiple fix-it
32094         hints are now consolidated into one insertion.
32095         (selftest::test_one_liner_many_fixits_2): New test.
32096         (selftest::test_diagnostic_show_locus_one_liner): Update for
32097         above.
32098         (selftest::test_fixit_consolidation): Update for fix-it API
32099         change.
32100         * diagnostic.c (print_parseable_fixits): Likewise.
32101         * edit-context.c (edited_line::m_line_events): Convert from
32102         auto_vec <line_event *> to auto_vec <line_event>.
32103         (class line_event): Convert from abstract base class to a concrete
32104         class, taking over the role of replace_event.
32105         (class insert_event): Delete.
32106         (class replace_event): Rename to class line_event.  Convert to
32107         half-open range.
32108         (edit_context::add_fixits): Reimplement.
32109         (edit_context::apply_insert): Delete.
32110         (edit_context::apply_replace): Rename to...
32111         (edit_context::apply_fixit): ...this.  Convert to half-open range.
32112         (edited_file::apply_insert): Delete.
32113         (edited_file::apply_replace): Rename to...
32114         (edited_file::apply_fixit): ...this.
32115         (edited_line::~edited_line): Drop deletion of events.
32116         (edited_line::apply_insert): Delete.
32117         (edited_line::apply_replace): Rename to...
32118         (edited_line::apply_fixit): ...this.  Convert to half-open range.
32119         Update for change to type of m_line_events.
32120         * edit-context.h (edit_context::apply_insert): Delete.
32121         (edit_context::apply_replace): Rename to...
32122         (edit_context::apply_fixit): ...this.
32123
32124 2017-05-01  Martin Sebor  <msebor@redhat.com>
32125
32126         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
32127         known.
32128
32129 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
32130
32131         PR target/68491
32132         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
32133         __get_cpuid_max returns 0.
32134         (__get_cpuid_count): Ditto.
32135
32136 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
32137
32138         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
32139         replacement expression is another instance of one of its arguments.
32140
32141 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
32142
32143         PR target/79430
32144         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
32145         check for stack push/pop autoinc.
32146         * config/i386/i386.c (ix86_agi_dependent): Return false
32147         if the only reason why modified_in_p returned true is that
32148         addr is SP based and set_insn is a push or pop.
32149
32150 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32151
32152         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
32153         overflow check.
32154
32155 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32156
32157         PR ipa/79224
32158         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
32159         (account_size_time): Use two predicates - exec_pred and
32160         nonconst_pred_ptr.
32161         (evaluate_conditions_for_known_args): Compute both clause and
32162         nonspec_clause.
32163         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
32164         (inline_summary_t::duplicate): Update.
32165         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
32166         separately.
32167         (compute_inline_parameters): Likewise.
32168         (estimate_edge_size_and_time): Update caluclation of time.
32169         (estimate_node_size_and_time): Compute both time and nonspecialized
32170         time.
32171         (estimate_ipcp_clone_size_and_time): Update.
32172         (inline_merge_summary): Update.
32173         (do_estimate_edge_time): Update.
32174         (do_estimate_edge_size): Update.
32175         (do_estimate_edge_hints): Update.
32176         (inline_read_section, inline_write_summary): Stream both new predicates.
32177         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
32178         as argument.
32179         (compute_inlined_call_time): Cleanup.
32180         (big_speedup_p): Update.
32181         (edge_badness): Update.
32182         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
32183         (size_time_entry): Replace predicate by exec_predicate and
32184         nonconst_predicate.
32185         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
32186         (estimate_edge_time): Return also nonspec_time.
32187         (reset_edge_growth_cache): Update.
32188
32189 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
32190
32191         PR rtl-optimization/80491
32192         * ifcvt.c (noce_process_if_block): When looking for x setter
32193         with missing else_bb, don't check only the insn right before
32194         cond_earliest, but look for the last insn that x is modified in
32195         within the same bb.
32196
32197         PR rtl-optimization/80491
32198         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
32199
32200 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
32201
32202         PR tree-optimization/80487
32203         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
32204
32205 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32206
32207         PR tree-optimization/79697
32208         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
32209         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
32210         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
32211         BUILT_IN_STRNDUP.
32212         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
32213         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
32214
32215 2017-04-28  Martin Sebor  <msebor@redhat.com>
32216
32217         PR tree-optimization/80523
32218         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
32219         (init_target_to_host_charmap, target_to_host, target_strtol10): New
32220         functions.
32221         (maybe_warn, format_directive, parse_directive): Use new functions.
32222         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
32223
32224 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
32225
32226         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
32227
32228 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32229
32230         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
32231         target_header_dir): Set correctly.
32232         * configure: Regenerated.
32233         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32234         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32235         instead of SYSTEM_HEADER_DIR.
32236
32237 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
32238
32239         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
32240         (estimate_local_effects): Likewise.
32241         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
32242         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
32243         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
32244         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
32245         do_estimate_edge_time, estimate_edge_time): Likewise.
32246         * ipa-inline-analysis.c (estimate_node_size_and_time,
32247         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
32248         (estimate_time_after_inlining): Remove.
32249
32250 2017-04-28  Martin Liska  <mliska@suse.cz>
32251
32252         * doc/gcov.texi: Enhance documentation of gcov.
32253
32254 2017-04-28  Martin Liska  <mliska@suse.cz>
32255
32256         * doc/gcov.texi: Sort options in alphabetic order.
32257         * doc/gcov-dump.texi: Likewise.
32258         * doc/gcov-tool.texi: Likewise.
32259         * gcov.c (print_usage): Likewise.
32260         * gcov-dump.c (print_usage): Likewise.
32261         * gcov-tool.c (print_merge_usage_message): Likewise.
32262         (print_rewrite_usage_message): Likewise.
32263         (print_overlap_usage_message): Likewise.
32264
32265 2017-04-28  Martin Liska  <mliska@suse.cz>
32266
32267         PR gcov-profile/53915
32268         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
32269
32270 2017-04-28  Martin Liska  <mliska@suse.cz>
32271
32272         PR gcov-profile/79891
32273         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
32274         is marked by compiler as living on a line.
32275         (get_cycles_count): Remove usage of the union.
32276         (output_intermediate_file): Likewise.
32277         (find_source): Fix GNU coding style.
32278         (accumulate_line_counts): Remove old non-all block mode.
32279         (output_lines): Remove usage of the union.
32280         * profile.c (output_location): Include all BBs, even if
32281         belonging to a same line (and file) as a previous BB.
32282
32283 2017-04-28  Martin Liska  <mliska@suse.cz>
32284
32285         * gcov.c (process_args): Handle new argument 'w'.
32286         (read_graph_file): Assign ID to BBs.
32287         (output_branch_count): Display BB # if verbose flag is set.
32288         (output_lines): Likewise for arcs.
32289         (print_usage): Add '--verbose' option help.
32290         * doc/gcov.texi: Document --verbose (-w) option.
32291
32292 2017-04-28  Martin Liska  <mliska@suse.cz>
32293
32294         * gcov.c (struct block_location_info): New struct.
32295         (process_file): Fill up the new structure.
32296         (read_graph_file): Replace usage of encoding by the newly added
32297         struct.
32298         (add_line_counts): Likewise.
32299         (accumulate_line_counts): Remove usage of the union.
32300         (function_info::function_info): New function.
32301         (function_info::~function_info): Likewise.
32302         (process_file): Call delete instead of release_function.
32303         (release_function): Release the function.
32304         (release_structures): Call delete instead of release_function.
32305         (solve_flow_graph): Replace usage of num_blocks.
32306         (find_exception_blocks): Likewise.
32307         (output_lines): Fix GNU coding style.
32308
32309 2017-04-28  Martin Liska  <mliska@suse.cz>
32310
32311         PR driver/56469
32312         * coverage.c (coverage_remove_note_file): New function.
32313         * coverage.h: Declare the function.
32314         * toplev.c (finalize): Clean if an error has been seen.
32315
32316 2017-04-28  Martin Liska  <mliska@suse.cz>
32317
32318         PR gcov-profile/80031
32319         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
32320         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
32321         * gcov.c (read_graph_file): Read just number of blocks.
32322         * profile.c (branch_prob): Do not stream 0 flags per a basic
32323         block.
32324
32325 2017-04-28  Martin Liska  <mliska@suse.cz>
32326
32327         * gcov-dump.c (tag_*): Add new argument to declarations.
32328         (dump_gcov_file): Likewise.
32329         (tag_blocks): Add and use new argument depth.
32330         (tag_arcs): Likewise.
32331         (tag_lines): Likewise.
32332         (tag_counters): Likewise.
32333         (tag_summary): Likewise.
32334         (dump_working_sets): Use depth to do a proper indentation.
32335
32336 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
32337
32338         PR bootstrap/80531
32339         * cgraph.h (symtab_node::debug_symtab): No longer inline.
32340         * symtab.c (symtab_node::debug_symtab): Move definition here.
32341
32342 2017-04-28  Richard Biener  <rguenther@suse.de>
32343
32344         * lto-streamer.h (LTO_major_version): Bump to 7.
32345
32346 2017-04-28  Richard Biener  <rguenther@suse.de>
32347
32348         * tree-vrp.c (assert_info): New struct.
32349         (add_assert_info): New helper.
32350         (register_edge_assert_for_2): Refactor to add asserts to a vector
32351         of assert_info.
32352         (register_edge_assert_for_1): Likewise.
32353         (register_edge_assert_for): Likewise.
32354         (finish_register_edge_assert_for): New helper actually registering
32355         asserts where live on edge.
32356         (find_conditional_asserts): Adjust.
32357         (find_switch_asserts): Likewise.
32358         (evrp_dom_walker::try_find_new_range): Generalize.
32359         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
32360
32361 2017-04-27  Marek Polacek  <polacek@redhat.com>
32362
32363         PR sanitizer/80349
32364         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
32365         arg10 and arg11 to itype.
32366
32367 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
32368
32369         * doc/extend.texi (Object Size Checking): Improve grammar.
32370
32371 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
32372
32373         PR target/80530
32374         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
32375         that the logic for permitting reciprocal estimates matches that
32376         in use_rsqrt_p.
32377
32378 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
32379
32380         PR c++/80534
32381         * tree.c (type_cache_hasher::equal): Only compare
32382         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
32383         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
32384         non-aggregate element types.
32385         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
32386         about the flag on ARRAY_TYPEs in the comment, formatting fix.
32387
32388 2017-04-27  Richard Biener  <rguenther@suse.de>
32389
32390         PR middle-end/80533
32391         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
32392         stripping ARRAY_REFs from MEM_EXPR make sure we're not
32393         keeping a reference to a trailing array.
32394
32395 2017-04-27  Richard Biener  <rguenther@suse.de>
32396
32397         PR middle-end/80539
32398         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
32399         being in loop-closed SSA form conservatively.
32400         (chrec_fold_multiply_poly_poly): Likewise.
32401
32402 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
32403
32404         PR middle-end/79665
32405         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
32406         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
32407
32408 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
32409
32410         PR target/77728
32411         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
32412         (aarch64_function_arg_alignment): Return unsigned int again, but still
32413         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
32414         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
32415         Don't emit -Wpsabi note.
32416         (aarch64_function_arg_boundary): Likewise.
32417         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
32418         caller.
32419
32420 2017-04-26  Nathan Sidwell  <nathan@acm.org>
32421
32422         * tree.h (crc32_unsigned_n): Declare.
32423         (crc32_unsigned, crc32_unsigned): Make inline.
32424         * tree.c (crc32_unsigned_bits): Replace with ...
32425         (crc32_unsigned_n): ... this.
32426         (crc32_unsigned, crc32_byte): Remove.
32427         (crc32_string): Remove unnecessary braces.
32428
32429 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
32430
32431         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
32432         * ipa-inline-analysis.c (MAX_TIME): Remove.
32433         (account_size_time): Use sreal for time.
32434         (dump_inline_summary): Update.
32435         (estimate_function_body_sizes): Update.
32436         (estimate_edge_size_and_time): Update.
32437         (estimate_calls_size_and_time): Update.
32438         (estimate_node_size_and_time): Update.
32439         (inline_merge_summary): Update.
32440         (inline_update_overall_summary): Update.
32441         (estimate_time_after_inlining): Update.
32442         (inline_read_section): Update.
32443         (inline_write_summary): Update.
32444         * ipa-inline.c (compute_uninlined_call_time): Update.
32445         (compute_inlined_call_time): Update.
32446         (recursive_inlining): Update.
32447         (inline_small_functions): Update.
32448         (dump_overall_stats): Update.
32449         * ipa-inline.h: Include sreal.h.
32450         (size_time_entry): Turn time to sreal.
32451         (inline_summary): Turn self_time nad time to sreal.
32452
32453 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
32454
32455         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
32456         data-streamer.h
32457         (sreal::stream_out, sreal::stream_in): New.
32458         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
32459
32460 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
32461
32462         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
32463         environment.
32464
32465 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
32466
32467         PR target/70799
32468         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
32469         Handle ASHIFTRT.
32470         (dimode_scalar_chain::compute_convert_gain): Ditto.
32471         (dimode_scalar_chain::make_vector_copies): Ditto.
32472         (dimode_scalar_chain::convert_reg): Ditto.
32473         (dimode_scalar_chain::convert_insn): Ditto.
32474         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
32475         (VI248_AVX512BW_1): New mode iterator.
32476         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
32477         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
32478         mode iterator.
32479
32480 2017-04-25  Martin Sebor  <msebor@redhat.com>
32481
32482         PR tree-optimization/80497
32483         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
32484         constants are representable in HOST_WIDE_INT.
32485         (parse_directive): Ditto.
32486
32487 2017-04-25  Martin Sebor  <msebor@redhat.com>
32488
32489         PR bootstrap/80486
32490         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
32491         (new_zero_array): Adjust signature.
32492         (dom_info::dom_init): Used unsigned rather that size_t.
32493         (dom_info::dom_info): Same.
32494
32495 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32496             Jakub Jelinek  <jakub@redhat.com>
32497
32498         PR target/77728
32499         * config/arm/arm.c: Include gimple.h.
32500         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
32501         returns negative, increment ncrn only if it returned positive.
32502         (arm_needs_doubleword_align): Return int instead of bool,
32503         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
32504         members, but if there is any such non-FIELD_DECL
32505         > PARM_BOUNDARY aligned decl, return -1 instead of false.
32506         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
32507         returns negative, increment nregs only if it returned positive.
32508         (arm_setup_incoming_varargs): Likewise.
32509         (arm_function_arg_boundary): Emit -Wpsabi note if
32510         arm_needs_doubleword_align returns negative, return
32511         DOUBLEWORD_ALIGNMENT only if it returned positive.
32512
32513 2017-04-25  Marek Polacek  <polacek@redhat.com>
32514
32515         PR sanitizer/80349
32516         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
32517         first argument to type.
32518
32519 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
32520
32521         PR target/80482
32522         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
32523         type checks to test for compatibility instead of equality.
32524
32525 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32526             Jakub Jelinek  <jakub@redhat.com>
32527
32528         PR target/77728
32529         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
32530         type.
32531         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
32532         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
32533         the alignment computation, but return their maximum in warn_alignment.
32534         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
32535         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
32536         is smaller.
32537         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
32538         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
32539         caller.
32540
32541 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32542
32543         * config/arc/simdext.md (dmpyh): Fix typo.
32544
32545 2017-04-25  Richard Biener  <rguenther@suse.de>
32546
32547         PR tree-optimization/80492
32548         * alias.c (compare_base_decls): Handle registers with asm
32549         specification conservatively.
32550         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
32551         compare_base_decls returning dont-know properly.
32552
32553 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32554
32555         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
32556         (legitimate_offset_address_p): New function.
32557         (arc_legitimate_address_p): Use above function.
32558
32559 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32560
32561         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
32562
32563 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32564
32565         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
32566         ACCH registers whenever they are available.
32567
32568 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32569
32570         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
32571         double regs fix when not used.
32572
32573 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32574
32575         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
32576         core registers.
32577         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
32578         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
32579
32580 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32581
32582         * config/arc/arc.c (arc_output_addsi): Check for h-register class
32583         when emitting short ADD instructions.
32584
32585 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32586
32587         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
32588         constraint.
32589         (cmpsi_cc_c_insn): Likewise.
32590         (cbranchsi4_scratch): Compute proper instruction length using
32591         compact_hreg_operand.
32592         * config/arc/predicates.md (compact_hreg_operand): New predicate.
32593
32594 2017-04-25  Richard Biener  <rguenther@suse.de>
32595
32596         PR middle-end/80509
32597         * passes.c (pass_manager::pass_manager): Initialize
32598         m_name_to_pass_map.
32599
32600 2017-04-25  Richard Biener  <rguenther@suse.de>
32601
32602         PR tree-optimization/79201
32603         * tree-ssa-sink.c (statement_sink_location): Handle calls.
32604
32605 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32606
32607         PR target/80464
32608         * config/s390/vector.md: Split MEM->GPR vector moves for
32609         non-s_operand addresses.
32610
32611 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32612
32613         PR target/79895
32614         * config/s390/predicates.md (reload_const_wide_int_operand): New
32615         predicate.
32616         * config/s390/s390.md ("movti"): Remove d/P alternative.
32617         ("movti_bigconst"): New pattern definition.
32618
32619 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32620
32621         PR target/80080
32622         * s390-protos.h (s390_expand_cs_hqi): Removed.
32623         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
32624         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
32625         modes as well as CCZ1mode and CCZmode.
32626         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
32627         signature of s390_emit_compare_and_swap.
32628         (s390_expand_cs_hqi): Likewise, make static.
32629         (s390_expand_cs_tdsi): Generate an explicit compare before trying
32630         compare-and-swap, in some cases.
32631         (s390_expand_cs): Wrapper function.
32632         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
32633         atomic_exchange.
32634         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
32635         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
32636         patterns for small and large integers.  Forbid symref memory operands.
32637         Move expander to s390.c.  Require cc register.
32638         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
32639         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
32640         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
32641         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
32642         symref memory operands.  Remove CC mode and call s390_match_ccmode
32643         instead.
32644         ("atomic_exchange<mode>"): Allow and implement all integer modes.
32645
32646 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32647
32648         * config/s390/s390.md (define_peephole2): New peephole to help
32649         combining the load-and-test pattern with volatile memory.
32650
32651 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32652
32653         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
32654         with CCZmode for TARGET_Z196.
32655
32656 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
32657
32658         PR rtl-optimization/80501
32659         * combine.c (make_compound_operation_int): Set subreg_code to SET
32660         even for AND with mask of the sign bit of mode.
32661
32662         PR rtl-optimization/80500
32663         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
32664         sum's initial value.
32665
32666 2017-04-25  Julian Brown  <julian@codesourcery.com>
32667             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32668
32669         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
32670
32671 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
32672
32673         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
32674
32675 2017-04-25  Julian Brown  <julian@codesourcery.com>
32676             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32677
32678         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
32679         (thunderx2t99_sha): New Reservation.
32680
32681 2017-04-25  Julian Brown  <julian@codesourcery.com>
32682             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32683
32684         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
32685         type for 1-element load.
32686
32687 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
32688
32689         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
32690
32691 2017-04-24  Martin Jambor  <mjambor@suse.cz>
32692
32693         PR tree-optimization/80293
32694         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
32695         char arrays not totally scalarizable if it is false.
32696         (analyze_all_variable_accesses): Pass correct value in the new
32697         parameter.  Add a statistics counter.
32698
32699 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
32700
32701         PR middle-end/79931
32702         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
32703
32704 2017-04-24  Richard Biener  <rguenther@suse.de>
32705
32706         PR tree-optimization/80494
32707         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
32708         out for complex types.
32709
32710 2017-04-24  Richard Biener  <rguenther@suse.de>
32711
32712         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
32713         * tree-ssa-sccvn.c (print_scc): Print SCC size.
32714         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
32715         (DFS): Adjust and never fail.
32716         (sccvn_dom_walker::fail): Remove.
32717         (sccvn_dom_walker::before_dom_children): Adjust.
32718         (run_scc_vn): Likewise and never fail.
32719         * tree-ssa-pre.c (pass_pre::execute): Adjust.
32720         (pass_fre::execute): Likewise.
32721
32722 2017-04-24  Richard Biener  <rguenther@suse.de>
32723
32724         PR tree-optimization/79725
32725         * tree-ssa-sink.c (statement_sink_location): Return whether
32726         failure reason was zero uses.  Move that check later.
32727         (sink_code_in_bb): Deal with zero uses by removing the stmt
32728         if possible.
32729
32730 2017-04-24  Richard Biener  <rguenther@suse.de>
32731
32732         PR c++/2972
32733         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
32734         pointer-based references.
32735
32736 2017-04-24  Richard Biener  <rguenther@suse.de>
32737
32738         PR bootstrap/79814
32739         * pass_manager.h (pass_manager::operator new): Remove.
32740         (pass_manager::operator delete): Likewise.
32741         * passes.c (pass_manager::operator new): Remove.
32742         (pass_manager::operator delete): Likewise.
32743         (pass_manager::pass_manager): Zero individual pass members.
32744
32745 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
32746
32747         PR target/70799
32748         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
32749         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
32750         Check "XEXP (src, 1)" operand here.
32751         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
32752         Check "XEXP (src, 1)" operand here.
32753         (dimode_scalar_chain::make_vector_copies): Detect count register
32754         of a shift instruction.  Zero extend count register from QImode
32755         to DImode to satisfy vector shift pattern count operand predicate.
32756         Substitute vector shift count operand with a DImode copy.
32757         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
32758         vector register.
32759
32760 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
32761
32762         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
32763         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
32764         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
32765         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
32766         (UNSPEC_NOREX_MEM): Remove definition.
32767
32768 2017-04-21  Richard Biener  <rguenther@suse.de>
32769
32770         PR tree-optimization/79547
32771         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32772         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
32773         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
32774         without any constraints.
32775
32776 2017-04-21  Richard Biener  <rguenther@suse.de>
32777
32778         PR tree-optimization/78847
32779         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
32780
32781 2017-04-21  Richard Biener  <rguenther@suse.de>
32782
32783         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
32784         (build_distinct_type_copy): Likewise.
32785         (build_variant_type_copy): Likewise.
32786         * tree.c (build_qualified_type): Pass down mem-stat info.
32787         (build_distinct_type_copy): Likewise.
32788         (build_variant_type_copy): Likewise.
32789
32790 2017-04-21  Richard Biener  <rguenther@suse.de>
32791
32792         PR tree-optimization/80237
32793         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
32794         defaulted to NULL.
32795         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
32796         for a simplified result.
32797
32798 2016-04-21  Richard Biener  <rguenther@suse.de>
32799
32800         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
32801         sth as strict as a simple_iv but a chrec without symbols and an
32802         operand defined in the loop we are peeling (and not some subloop).
32803         (propagate_constants_for_unrolling): Propagate all constants.
32804
32805 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
32806
32807         PR target/79804
32808         * config/i386/i386.c (print_reg): Remove assert for disalowed
32809         regno values, call output_operand_lossage instead.
32810
32811 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
32812
32813         PR target/78090
32814         * config/i386/constraints.md (Yc): New register constraint.
32815         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
32816         Use Yc constraint for alternative 2 of operand 0.  Remove
32817         preferred_for_speed attribute.
32818
32819 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
32820
32821         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
32822         lastprivate clauses in SIMT case.
32823
32824 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
32825
32826         * doc/invoke.texi (-Wextra-semi): Document new warning option.
32827
32828 2017-04-20  Richard Biener  <rguenther@suse.de>
32829
32830         PR tree-optimization/57796
32831         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
32832         as N scalar stores.
32833         (vect_model_load_cost): Cost gathers as N scalar loads.
32834
32835 2017-04-20  Richard Biener  <rguenther@suse.de>
32836
32837         * ggc-page.c (ggc_allocated_p): Rename to ...
32838         (safe_lookup_page_table_entry): ... this and return the lookup
32839         result.
32840         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
32841
32842 2017-04-20  Richard Biener  <rguenther@suse.de>
32843
32844         PR tree-optimization/80453
32845         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
32846         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
32847         from the conditions.
32848         (vn_phi_eq): Pass them down.
32849         (vn_phi_lookup): Record them.
32850         (vn_phi_insert): Likewise.
32851
32852 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
32853
32854         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
32855         uninitialized variable warning to avoid buffer overrun.
32856
32857 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
32858
32859         PR other/71250
32860         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
32861         is suppressed for '{ 0 }' in C.
32862
32863 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
32864
32865         * BASE-VER: Set to 8.0.0.
32866
32867 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32868
32869         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
32870         priority .init_array and .fini_array section with SECTION_NOTYPE
32871         flag.
32872
32873 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
32874
32875         PR middle-end/80423
32876         * tree.h (build_array_type): Add typeless_storage default argument.
32877         * tree.c (type_cache_hasher::equal): Also compare
32878         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
32879         (build_array_type): Add typeless_storage argument, set
32880         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
32881         recursive call.
32882         (build_nonshared_array_type): Adjust build_array_type_1 caller.
32883         (build_array_type): Likewise.  Add typeless_storage argument.
32884
32885 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32886             Jakub Jelinek  <jakub@redhat.com>
32887
32888         PR tree-optimization/80426
32889         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
32890         operation on symbolic operands, also compute the overflow for the
32891         invariant part when the operation degenerates into a negation.
32892
32893 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
32894
32895         PR debug/80461
32896         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
32897         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
32898
32899         PR debug/80436
32900         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
32901
32902 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
32903
32904         PR target/80462
32905         * config/avr/avr.c (tree.h): Include it.
32906         (cgraph.h): Include it.
32907         (avr_encode_section_info): Don't warn for uninitialized progmem
32908         variable if it's just an alias.
32909
32910 2017-04-19  Richard Biener  <rguenther@suse.de>
32911
32912         PR ipa/65972
32913         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
32914         when needed by AutoPGO.
32915
32916 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
32917
32918         PR lto/50345
32919         * doc/lto.texi: Remove an extra 'that'.
32920
32921 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
32922
32923         PR rtl-optimization/80429
32924         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
32925         are only used in debug insns.
32926
32927 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32928             Vladimir Makarov  <vmakarov@redhat.com>
32929
32930         * config/sparc/predicates.md (input_operand): Add comment.  Return
32931         true for any memory operand when LRA is in progress.
32932         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
32933
32934 2017-04-18  Jeff Law  <law@redhat.com>
32935
32936         PR target/74563
32937         * mips.md ({return,simple_return}_internal): Do not overwrite
32938         operands[0].
32939
32940 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32941
32942         PR tree-optimization/80443
32943         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
32944         instead of adding 1, subtract -1 and similarly instead of subtracting
32945         1 add -1.
32946
32947 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
32948
32949         PR rtl-optimization/80357
32950         * haifa-sched.c (tmp_bitmap): New variable.
32951         (model_recompute): Handle duplicate use records.
32952         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
32953         (free_global_sched_pressure_data): Free it.
32954
32955 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32956
32957         Revert:
32958         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32959         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32960         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32961         instead of SYSTEM_HEADER_DIR.
32962
32963 2017-04-18  Jeff Law  <law@redhat.com>
32964
32965         PR middle-end/80422
32966         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
32967         predecessors after walking up the insn chain.
32968
32969 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32970
32971         PR debug/80263
32972         * dwarf2out.c (modified_type_die): Try harder not to emit internal
32973         sizetype type into debug info.
32974
32975 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32976
32977         PR target/80099
32978         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
32979         unneeded test for TARGET_UPPER_REGS_SF.
32980         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
32981
32982 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32983
32984         PR sanitizer/80444
32985         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
32986         instead of gsi_after_labels.
32987
32988 2017-04-18  Jeff Law  <law@redhat.com>
32989
32990         * regcprop.c (maybe_mode_change): Avoid creating copies of the
32991         stack pointer.
32992
32993         Revert:
32994         2017-04-13  Jeff Law  <law@redhat.com>
32995         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
32996         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
32997
32998 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
32999
33000         PR target/79453
33001         * config/avr/avr.c (intl.h): Include it.
33002         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
33003
33004 2017-04-18  Martin Liska  <mliska@suse.cz>
33005
33006         PR gcov-profile/78783
33007         * gcov-tool.c (gcov_output_files): Validate that destination
33008         file is either removed by the tool or by a user.
33009
33010 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33011             Guy Benyei  <guybe@mellanox.com>
33012
33013         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
33014         block, and do not negate it, the stored id is already negative.
33015
33016 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33017
33018         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
33019
33020 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33021
33022         PR target/80098
33023         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
33024         masks of options that should be turned off if the VSX vector
33025         options are turned off.
33026         (OTHER_P8_VECTOR_MASKS): Likewise.
33027         (OTHER_VSX_VECTOR_MASKS): Likewise.
33028         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
33029         rs6000_disable_incompatible_switches to validate no type switches
33030         like -mvsx.
33031         (rs6000_incompatible_switch): New function to disallow turning on
33032         other vector options if -mno-vsx, -mno-power8-vector, or
33033         -mno-power9-vector are specified.
33034
33035 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33036
33037         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
33038
33039 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33040
33041         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
33042         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
33043         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
33044         (ARG_POINTER_CFA_OFFSET): Likewise.
33045
33046 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33047
33048         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
33049         conditions to take advantage of various optimizations.
33050
33051 2017-04-13  Jeff Law  <law@redhat.com>
33052
33053         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33054         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33055         (zero_extendsidi2_dext): Likewise.
33056
33057 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33058
33059         PR sanitizer/80403
33060         * fold-const.c (fold_ternary_loc): Revert
33061         use op0 instead of fold_convert_loc (loc, type, arg0) part of
33062         2017-04-12 change.
33063
33064 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
33065
33066         PR rtl-optimization/80343
33067         * lra-remat.c (update_scratch_ops): Assign original hard reg to
33068         new scratch pseudo.
33069
33070 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
33071
33072         PR sanitizer/80414
33073         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
33074         to ubsan_encode_value.
33075
33076 2017-04-13  Jeff Law  <law@redhat.com>
33077
33078         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
33079         appearing in DEBUG_INSNs.
33080
33081 2017-04-13  Martin Liska  <mliska@suse.cz>
33082
33083         PR gcov-profile/80413
33084         * gcov-io.c (gcov_write_string): Copy to buffer just when
33085         allocated size is greater than zero.
33086
33087 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33088
33089         PR debug/80321
33090         * dwarf2out.c (decls_for_scope): Ignore declarations of
33091         current_function_decl in BLOCK_NONLOCALIZED_VARS.
33092
33093 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
33094
33095         PR lto/69953
33096         * ipa-visibility.c (non_local_p): Fix typos.
33097         (localize_node): When localizing symbol in same comdat group,
33098         dissolve the group only when we know external symbols are going
33099         to be privatized.
33100         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
33101
33102 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33103
33104         PR tree-optimization/79390
33105         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
33106         order does not result in usable sequence, retry with reversed operand
33107         order.
33108
33109         PR sanitizer/80403
33110         PR sanitizer/80404
33111         PR sanitizer/80405
33112         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
33113         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
33114         op0 instead of fold_convert_loc (loc, type, arg0).
33115
33116 2017-04-12  Jeff Law  <law@redhat.com>
33117
33118         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
33119         has a delay slot in the generated code.
33120
33121         * config/cris/cris.md (cris_preferred_reload_class): Return
33122         GENNONACR_REGS rather than GENERAL_REGS.
33123
33124 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33125
33126         PR c/80163
33127         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
33128         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
33129         signedness of the result type.
33130
33131 2017-04-12  Richard Biener  <rguenther@suse.de>
33132             Jeff Law  <law@redhat.com>
33133
33134         PR tree-optimization/80359
33135         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
33136         trim stores to TARGET_MEM_REFs.
33137
33138 2017-04-12  Richard Biener  <rguenther@suse.de>
33139
33140         PR tree-optimization/79390
33141         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
33142         threading case even more.
33143
33144 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
33145
33146         PR target/80382
33147         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
33148         for quad_address_p for TImode, instead of just not indexed_address.
33149
33150 2017-04-12  Richard Biener  <rguenther@suse.de>
33151             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33152
33153         PR middle-end/79671
33154         * alias.c (component_uses_parent_alias_set_from): Handle
33155         TYPE_TYPELESS_STORAGE.
33156         (get_alias_set): Likewise.
33157         * tree-core.h (tree_type_common): Add typeless_storage flag.
33158         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
33159         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
33160         for types containing members with TYPE_TYPELESS_STORAGE.
33161         (place_field): Likewise.
33162         (layout_type): Likewise for ARRAY_TYPE.
33163         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
33164         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
33165         TYPE_TYPELESS_STORAGE.
33166         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
33167
33168 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33169
33170         PR sanitizer/80349
33171         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33172         first argument to type.
33173
33174 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33175
33176         PR target/80376
33177         PR target/80315
33178         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
33179         CONST0_RTX (mode) rather than const0_rtx where appropriate.
33180         (rs6000_expand_binop_builtin): Likewise.
33181         (rs6000_expand_ternop_builtin): Likewise; also add missing
33182         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
33183         vshasigma built-ins.
33184         * doc/extend.texi: Document that vec_xxpermdi's third argument
33185         must be a constant.
33186
33187 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
33188
33189         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
33190         Use shift_const cost parameter when calculating gain of STV shifts.
33191
33192 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
33193
33194         PR rtl-optimization/70478
33195         * lra-constraints.c (process_alt_operands): Check memory for
33196         disfavoring memory insn operand.
33197
33198 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33199
33200         PR middle-end/80100
33201         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
33202         left shift in unsigned HOST_WIDE_INT type.
33203
33204         PR rtl-optimization/80385
33205         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
33206         (not (neg X)) into (plus X -1) for complex or non-integral modes.
33207
33208         PR libgomp/80394
33209         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
33210         if they have any depend clauses.
33211
33212 2017-04-11  Martin Liska  <mliska@suse.cz>
33213
33214         PR ipa/80212
33215         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
33216         * ipa-split.c (split_function): Create a local comdat symbol
33217         if caller is in a comdat group.
33218
33219 2017-04-11  Martin Liska  <mliska@suse.cz>
33220
33221         PR ipa/80212
33222         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
33223         flags.
33224
33225 2017-04-11  Martin Sebor  <msebor@redhat.com>
33226
33227         PR middle-end/80364
33228         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
33229         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
33230         for INTEGER_TYPE.
33231         (directive::set_width, directive::set_precision, format_character):
33232         Adjust.
33233         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
33234         INTEGER_TYPE.
33235
33236 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
33237
33238         PR target/80389
33239         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
33240         conflict, set target->arch_name instead of target->cpu_name.
33241
33242 2017-04-11  Richard Biener  <rguenther@suse.de>
33243
33244         PR tree-optimization/80374
33245         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
33246         build_zero_cst, remove fold_convertible_p check again.
33247
33248 2017-04-11  Martin Liska  <mliska@suse.cz>
33249
33250         PR sanitizer/70878
33251         * ubsan.c (instrument_object_size): Do not instrument register
33252         variables.
33253
33254 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33255
33256         PR target/80381
33257         * config/i386/i386-builtin-types.def
33258         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
33259         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
33260         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
33261         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
33262         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
33263         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
33264         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
33265         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
33266         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
33267         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
33268         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
33269         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
33270         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
33271         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
33272         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
33273         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
33274         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
33275         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
33276         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
33277         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
33278         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
33279         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
33280         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
33281         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
33282         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
33283         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
33284         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
33285         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
33286         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
33287         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
33288         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
33289         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
33290         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
33291         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
33292         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
33293         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
33294         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
33295         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
33296         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
33297         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
33298         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
33299         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
33300         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
33301         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
33302         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
33303         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
33304         aliases.
33305         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
33306         flag to second_arg_count, handle 4 argument function type _COUNT
33307         aliases, handle second_arg_count on second argument rather than last.
33308
33309 2017-04-10  Jeff Law  <law@redhat.com>
33310
33311         PR tree-optimization/80374
33312         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
33313         record anything if we can not convert integer_zero_node to the
33314         desired type.
33315
33316 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33317
33318         PR target/80108
33319         * config/rs6000/rs6000.c (rs6000_option_override_internal):
33320         Enhance special handling given to the TARGET_P9_MINMAX option in
33321         relation to certain other options.
33322
33323 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
33324
33325         PR tree-optimization/80153
33326         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
33327         remove POINTER_PLUS_EXPR's base part directly, rather than through
33328         aff_tree.
33329
33330 2017-04-10  Richard Biener  <rguenther@suse.de>
33331             Bin Cheng  <bin.cheng@arm.com>
33332
33333         PR tree-optimization/80153
33334         * tree-affine.c (aff_combination_to_tree): Get base pointer from
33335         the first element of pointer type aff_tree.  Build result expr in
33336         aff_tree's type.
33337         (add_elt_to_tree): Convert to type unconditionally.  Remove other
33338         fold_convert calls.
33339         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
33340         (rewrite_use_nonlinear_expr): Check invariant using iv information.
33341
33342 2017-04-10  Richard Biener  <rguenther@suse.de>
33343
33344         * tree-ssa-structalias.c (find_func_aliases): Properly handle
33345         asm inputs.
33346
33347 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33348
33349         PR rtl-optimization/70478
33350         * lra-constraints.c (curr_small_class_check): New.
33351         (update_and_check_small_class_inputs): New.
33352         (process_alt_operands): Update curr_small_class_check.  Disfavor
33353         alternative insn memory operands.  Check available regs for small
33354         class operands.
33355
33356 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33357
33358         PR target/80057
33359         * config/mips/mips.opt (-mvirt): Update description.
33360         * doc/invoke.texi (-mvirt): Likewise.
33361
33362 2017-04-10  Richard Biener  <rguenther@suse.de>
33363
33364         PR middle-end/80362
33365         * fold-const.c (fold_binary_loc): Look at unstripped ops when
33366         looking for NEGATE_EXPR in -A / -B to A / B folding.
33367
33368 2017-04-10  Martin Liska  <mliska@suse.cz>
33369
33370         PR gcov-profile/80224
33371         * gcov.c (print_usage): Fix usage string.
33372         (get_gcov_intermediate_filename): Remove.
33373         (output_gcov_file): Use both for normal and intermediate format.
33374         (generate_results): Do not initialize special file for
33375         intermediate format.
33376
33377 2017-04-10  Richard Biener  <rguenther@suse.de>
33378
33379         PR tree-optimization/80304
33380         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
33381         for safelen.
33382
33383 2017-04-10  Nathan Sidwell  <nathan@acm.org>
33384
33385         PR target/79905
33386         * config/rs6000/rs6000.c (rs6000_vector_type): New.
33387         (rs6000_init_builtins): Use it.
33388
33389 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33390
33391         * config/arm/arm.md (<mrc>): Add mode to SET source.
33392         (<mrrc>): Likewise.
33393
33394 2017-04-10  Richard Biener  <rguenther@suse.de>
33395
33396         PR middle-end/80344
33397         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
33398
33399 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
33400
33401         PR target/80324
33402         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
33403         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
33404         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
33405         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
33406         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
33407         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
33408         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
33409         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
33410         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
33411         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
33412         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
33413         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
33414         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
33415         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
33416         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
33417         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
33418         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
33419         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
33420         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
33421         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
33422         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
33423         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
33424         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
33425
33426 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
33427
33428         PR rtl-optimization/70478
33429         * lra-constraints.c: Reverse the last patch.
33430
33431 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
33432
33433         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
33434         Add comment for WCHAR_T.
33435
33436 2017-04-08  Martin Liska  <mliska@suse.cz>
33437
33438         Revert:
33439         2017-04-07  Martin Liska  <mliska@suse.cz>
33440
33441         PR ipa/80212
33442         * ipa-split.c (split_function): Add function part to a same comdat
33443         group.
33444
33445 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
33446
33447         PR target/80358
33448         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
33449
33450 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
33451
33452         * rs6000/rs6000.c (vec_load_pendulum): Rename...
33453         (vec_pairing): ...to this.
33454         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
33455         (rs6000_sched_init): Adjust for name change.
33456         (struct rs6000_sched_context): Likewise.
33457         (rs6000_init_sched_context): Likewise.
33458         (rs6000_set_sched_context): Likewise.
33459
33460 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
33461
33462         PR target/80322
33463         PR target/80323
33464         PR target/80325
33465         PR target/80326
33466         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
33467         intrinsics.
33468         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
33469         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
33470         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
33471
33472 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
33473
33474         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
33475
33476 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33477
33478         PR rtl-optimization/70703
33479         * ira-color.c (update_conflict_hard_regno_costs): Use
33480         int64_t instead of HOST_WIDE_INT.
33481
33482 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33483
33484         PR rtl-optimization/70478
33485         * lra-constraints.c (process_alt_operands): Disfavor alternative
33486         insn memory operands.
33487
33488 2017-04-07  Jeff Law  <law@redhat.com>
33489
33490         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
33491         CALL and NOTE_INSN_CALL_ARG_LOCATION.
33492
33493 2017-04-07  Martin Liska  <mliska@suse.cz>
33494
33495         PR target/79889
33496         * config/aarch64/aarch64.c (aarch64_process_target_attr):
33497         Show error message instead of an ICE.
33498
33499 2017-04-07  Martin Liska  <mliska@suse.cz>
33500
33501         PR ipa/80212
33502         * ipa-split.c (split_function): Add function part to a same comdat
33503         group.
33504
33505 2017-04-07  Richard Biener  <rguenther@suse.de>
33506
33507         PR middle-end/80341
33508         * tree.c (get_unwidened): Also handle ! for_type case for
33509         INTEGER_CSTs.
33510         * convert.c (do_narrow): Split out from ...
33511         (convert_to_integer_1): ... here.  Do not pass final truncation
33512         type to get_unwidened for TRUNC_DIV_EXPR.
33513
33514 2017-04-07  Richard Biener  <rguenther@suse.de>
33515
33516         * tree-affine.c (wide_int_ext_for_comb): Take type rather
33517         than aff_tree.
33518         (aff_combination_const): Adjust.
33519         (aff_combination_scale): Likewise.
33520         (aff_combination_add_elt): Likewise.
33521         (aff_combination_add_cst): Likewise.
33522         (aff_combination_convert): Likewise.
33523         (add_elt_to_tree): Likewise.  Remove unused argument.
33524         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
33525
33526 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33527
33528         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
33529         definition.
33530         * config/arm/arm.c (arm_default_short_enums): Use
33531         ARM_DEFAULT_SHORT_ENUMS.
33532         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
33533
33534 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
33535
33536         PR debug/80234
33537         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
33538         members with redundant out-of-class redeclaration.
33539
33540 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
33541
33542         PR target/80286
33543         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
33544         * config/i386/i386.md (*zero_extendsidi2):
33545         Add (?*x,*x) and (?*v,*v) alternatives.
33546
33547 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
33548
33549         PR target/79733
33550         * config/i386/i386.c (ix86_expand_builtin)
33551         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
33552         mode from insn data. Convert operands to insn operand mode.
33553         Copy operands that don't satisfy insn predicate to a register.
33554
33555 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
33556
33557         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
33558         Update comments.
33559
33560 2017-04-06  Richard Biener  <rguenther@suse.de>
33561
33562         PR tree-optimization/80334
33563         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
33564         preserve alignment of accesses.
33565
33566 2017-04-06  Richard Biener  <rguenther@suse.de>
33567
33568         PR tree-optimization/80262
33569         * tree-sra.c (build_ref_for_offset): Preserve address-space
33570         information.
33571         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
33572         Drop useless address-space information on MEM_REF offsets.
33573
33574 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
33575
33576         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
33577
33578 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
33579
33580         PR rtl-optimization/70703
33581         * ira-color.c (update_conflict_hard_regno_costs): Use
33582         HOST_WIDE_INT instead of long.
33583
33584 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
33585
33586         PR target/80298
33587         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
33588         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
33589         is not defined.
33590         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
33591         for x86_64 target.  Handle -m3dnowa option.
33592
33593 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
33594
33595         PR rtl-optimization/70703
33596         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
33597         (update_conflict_hard_regno_costs): Use long instead of unsigned
33598         arithmetic for cost calculation.
33599
33600 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
33601             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33602
33603         PR sanitizer/80308
33604         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
33605         for big endian.
33606
33607 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
33608
33609         PR target/78002
33610         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
33611         ptr_mode with Pmode throughout.
33612         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
33613         into probe_stack_range and use DImode.
33614
33615 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33616
33617         PR target/79890
33618         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
33619         call_eh_return is true.
33620
33621 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33622
33623         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
33624         Initialize last_match_fntype_index.
33625
33626 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
33627
33628         PR target/80310
33629         * tree-nvr.c: Include internal-fn.h.
33630         (pass_return_slot::execute): Ignore internal calls without
33631         direct optab.
33632
33633 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33634             Richard Biener  <rguenther@suse.de>
33635
33636         PR c++/80297
33637         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
33638         captures used multiple times, except for the last use.
33639         * generic-match-head.c: Include gimplify.h.
33640
33641 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33642
33643         PR tree-optimization/79390
33644         * target.h (struct noce_if_info): Declare.
33645         * targhooks.h (default_noce_conversion_profitable_p): Declare.
33646         * target.def (noce_conversion_profitable_p): New target hook.
33647         * ifcvt.h (struct noce_if_info): New type, moved from ...
33648         * ifcvt.c (struct noce_if_info): ... here.
33649         (noce_conversion_profitable_p): Renamed to ...
33650         (default_noce_conversion_profitable_p): ... this.  No longer
33651         static nor inline.
33652         (noce_try_store_flag_constants, noce_try_addcc,
33653         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
33654         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
33655         instead of noce_conversion_profitable_p.
33656         * config/i386/i386.c: Include ifcvt.h.
33657         (ix86_option_override_internal): Don't override
33658         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
33659         (ix86_noce_conversion_profitable_p): New function.
33660         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
33661         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
33662         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
33663         * doc/tm.texi: Regenerated.
33664
33665 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33666
33667         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
33668         correction.
33669
33670 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33671
33672         PR target/80307
33673         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
33674         instructions for small multiply cores.
33675
33676 2017-04-04  Jeff Law  <law@redhat.com>
33677
33678         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
33679         added member.
33680         (mips_expand_vec_perm_const): Initialize elements in orig_perm
33681         that are not set by the loop over the elements.
33682
33683 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33684
33685         PR target/80286
33686         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
33687         int mode, convert_modes it to mode as unsigned, otherwise use
33688         lowpart_subreg to mode rather than SImode.
33689         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
33690         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
33691         Use DImode instead of SImode for the shift count operand.
33692         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
33693         Likewise.
33694
33695 2017-04-04  Richard Biener  <rguenther@suse.de>
33696
33697         PR middle-end/80281
33698         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
33699         arithmetic done for the negate or the plus.  Simplify.
33700         (A - (-B) -> A + B): Likewise.
33701         * fold-const.c (split_tree): Make sure to not negate pointers.
33702
33703 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
33704
33705         PR rtl-optimization/60818
33706         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
33707         a compare of comparisons with the thing compared if this results
33708         in a different machine mode.
33709
33710 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
33711
33712         * alias.c (base_alias_check): Fix typo in comment.
33713         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
33714         * cgraphunit.c (symbol_table::compile): Likewise.
33715         * collect2.c (maybe_run_lto_and_relink): Likewise.
33716         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
33717         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
33718         * config/avr/avr.c (avr_map_op_t): Likewise.
33719         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
33720         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
33721         * config/epiphany/epiphany.md (movcc): Likewise.
33722         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
33723         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
33724         Likewise.
33725         * config/mips/mips.c (mips_save_restore_reg): Likewise.
33726         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
33727         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
33728         * config/sh/sh.c (sh_rtx_costs): Likewise.
33729         * fold-const.c (fold_truth_andor): Likewise.
33730         * genautomata.c (collapse_flag): Likewise.
33731         * gengtype.h (struct type::u::s): Likewise.
33732         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
33733         * input.c (FORMAT_AMOUNT): Likewise.
33734         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
33735         (known_aggs_to_agg_replacement_list): Likewise.
33736         * ipa-inline-analysis.c: Likewise.
33737         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
33738         * ipa-polymorphic-call.c
33739         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
33740         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
33741         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
33742         Likewise.
33743         * modulo-sched.c (apply_reg_moves): Likewise.
33744         * omp-expand.c (build_omp_regions_1): Likewise.
33745         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
33746         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
33747         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
33748         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
33749         * value-prof.c: Likewise.
33750         * var-tracking.c (val_reset): Likewise.
33751
33752 2017-04-03  Richard Biener  <rguenther@suse.de>
33753
33754         PR tree-optimization/80275
33755         * fold-const.c (split_address_to_core_and_offset): Handle
33756         POINTER_PLUS_EXPR.
33757
33758 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
33759
33760         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
33761         descriptors is at least equal to that of functions.
33762
33763 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
33764
33765         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
33766
33767 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
33768
33769         PR target/80250
33770         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
33771         (mov<IMOD4:mode>): New expander.
33772         (*mov<IMOD4:mode>_internal): New insn and split pattern.
33773
33774 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
33775
33776         PR rtl-optimization/79405
33777         * fwprop.c (propagations_left): New variable.
33778         (forward_propagate_into): Decrement it.
33779         (fwprop_init): Initialize it.
33780         (fw_prop): If the variable has reached zero, stop propagating.
33781         (fwprop_addr): Ditto.
33782
33783 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
33784
33785         PR debug/79255
33786         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
33787         a FUNCTION_DECL, pass it as decl instead of origin to
33788         process_scope_var.
33789
33790 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
33791
33792         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
33793         string.
33794
33795 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
33796
33797         PR target/80107
33798         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
33799         TARGET_VSX_SMALL_INTEGER.
33800
33801 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33802
33803         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
33804         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
33805
33806 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33807
33808         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
33809         extraction from odd-numbered MSA register.
33810
33811 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
33812
33813         PR middle-end/80173
33814         * expmed.c (store_bit_field_1): Don't attempt to create
33815         a word subreg out of hard registers wider than word if they
33816         have HARD_REGNO_NREGS of 1 for their mode.
33817
33818         PR middle-end/80163
33819         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
33820         conversions to integer types wider than word and pointer.
33821
33822         PR debug/80025
33823         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
33824         (rtx_equal_for_cselib_p): Pass 0 to it.
33825         * cselib.c (cselib_hasher::equal): Likewise.
33826         (rtx_equal_for_cselib_1): Add depth argument.  If depth
33827         is 128, don't look up VALUE locs and punt.  Increment
33828         depth in recursive calls when walking VALUE locs.
33829
33830 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33831
33832         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
33833         (make_gcov_file_name): Use the canonical path name for generating
33834         the MD5 value.
33835         (read_line): Fix handling of files with ascii null bytes.
33836
33837 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
33838
33839         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
33840         to initialise a vector register instead
33841         of using a const_int.
33842
33843 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
33844
33845         PR translation/80189
33846         * gimplify.c (omp_default_clause): Use %qs instead of %s in
33847         diagnostic messages.
33848
33849 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
33850
33851         PR target/80246
33852         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
33853         (dfp_diex_<mode>): Update mode of operand 1.
33854         * doc/extend.texi (dxex, dxexq): Document change to return type.
33855         (diex, diexq): Document change to argument type.
33856
33857 2017-03-30  Martin Jambor  <mjambor@suse.cz>
33858
33859         PR ipa/77333
33860         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
33861         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
33862         it reflects the signature changes performed at the callee side.
33863         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
33864         to cgraph_build_function_type_skip_args.
33865         (build_function_decl_skip_args): Adjust call to the above function.
33866
33867 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
33868
33869         PR target/80206
33870         * config/i386/sse.md
33871         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
33872         register as dest whenever it is a MEM not rtx_equal_p to the
33873         corresponding dup operand, and when forcing into reg move the
33874         reg into the memory afterwards.
33875         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
33876         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
33877         for the force_reg mode.
33878         (avx512vl_vextractf128<mode>): Use register as dest either
33879         always when a MEM, or when it is a MEM not rtx_equal_p to the
33880         corresponding dup operand, or even not when it is a CONST_VECTOR
33881         depending on the mode and lo vs. hi.
33882         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
33883         parens.
33884         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
33885         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
33886         Likewise.  Require that operands[2] is even.
33887         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
33888         Remove extraneous parens.  Require that operands[2] is a multiple
33889         of 4.
33890         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
33891         operands[0] is a MEM if <mask_applied>, the predicates/constraints
33892         disallow memory then.
33893
33894 2017-03-30  Richard Biener  <rguenther@suse.de>
33895
33896         PR tree-optimization/77498
33897         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
33898         to non-constants over backedges.
33899
33900 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
33901
33902         PR rtl-optimization/80233
33903         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
33904         as last_combined_insn.  Do not test for BARRIER_P separately.
33905
33906 2017-03-29  Andreas Schwab  <schwab@suse.de>
33907
33908         PR ada/80146
33909         * calls.c (prepare_call_address): Convert funexp to Pmode before
33910         copying to temp reg.
33911
33912 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33913
33914         PR tree-optimization/80158
33915         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
33916         Handle possible future case of more than one alternate
33917         interpretation.
33918         (replace_rhs_if_not_dup): Likewise.
33919         (replace_one_candidate): Likewise.
33920
33921 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
33922
33923         PR rtl-optimization/80193
33924         * ira.c (ira): Do not check allocation for LRA.
33925
33926 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
33927
33928         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
33929         (nvptx_output_simt_exit): Declare.
33930         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
33931         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
33932         (init_softstack_frame): Move initialization of crtl->is_leaf to...
33933         (nvptx_declare_function_name): ...here.  Emit declaration of local
33934         memory space buffer for omp_simt_enter insn.
33935         (nvptx_output_unisimt_switch): New.
33936         (nvptx_output_softstack_switch): New.
33937         (nvptx_output_simt_enter): New.
33938         (nvptx_output_simt_exit): New.
33939         * config/nvptx/nvptx.h (struct machine_function): New fields
33940         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
33941         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
33942         (UNSPECV_SIMT_EXIT): Ditto.
33943         (omp_simt_enter_insn): New insn.
33944         (omp_simt_enter): New expansion.
33945         (omp_simt_exit): New insn.
33946         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
33947
33948         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
33949         (expand_GOMP_SIMT_ENTER_ALLOC): New.
33950         (expand_GOMP_SIMT_EXIT): New.
33951         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
33952         (GOMP_SIMT_ENTER_ALLOC): Ditto.
33953         (GOMP_SIMT_EXIT): Ditto.
33954         * target-insns.def (omp_simt_enter): New insn.
33955         (omp_simt_exit): Ditto.
33956         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
33957         simt_dlist.
33958         (lower_rec_simd_input_clauses): Implement SIMT privatization.
33959         (lower_rec_input_clauses): Likewise.
33960         (lower_lastprivate_clauses): Handle SIMT privatization.
33961
33962         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
33963         (ompdevlow_adjust_simt_enter): New.
33964         (find_simtpriv_var_op): New.
33965         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
33966         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
33967
33968         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
33969         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
33970         (copy_decl_for_dup_finish): Ditto.
33971
33972         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
33973
33974 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
33975
33976         PR target/53383
33977         * config/i386/i386.c (ix86_option_override_internal): Always
33978         allow -mpreferred-stack-boundary=3 for 64-bit targets.
33979
33980 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
33981
33982         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
33983
33984 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
33985
33986         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
33987         mark new edge's irreducible flag accordign to it.
33988         (vect_do_peeling): Check loop preheader edge's irreducible flag
33989         and pass it to function slpeel_add_loop_guard.
33990
33991 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
33992
33993         PR tree-optimization/80218
33994         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
33995         Update block frequencies and counts.
33996
33997 2017-03-28  Richard Biener  <rguenther@suse.de>
33998
33999         PR tree-optimization/78644
34000         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
34001         of a simplification result we may not use it at all.
34002
34003 2017-03-28  Richard Biener  <rguenther@suse.de>
34004
34005         PR ipa/80205
34006         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
34007         without arguments, generate default definition of a SSA name.
34008
34009 2017-03-28  Richard Biener  <rguenther@suse.de>
34010
34011         PR middle-end/80222
34012         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
34013         TYPE_REF_CAN_ALIAS_ALL references.
34014         * fold-const.c (fold_indirect_ref_1): Likewise.
34015
34016 2017-03-28  Martin Liska  <mliska@suse.cz>
34017
34018         PR ipa/80104
34019         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
34020         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
34021
34022 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34023             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
34024
34025         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
34026         (EXTRA_SPECS): Define.
34027         (SUBTARGET_EXTRA_SPECS): Likewise.
34028         (SUBTARGET_CPP_SPEC): Likewise.
34029         * config/arc/elf.h (EXTRA_SPECS): Renamed to
34030         SUBTARGET_EXTRA_SPECS.
34031         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
34032
34033 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34034
34035         * config/arc/simdext.md (vst64_insn): Update pattern.
34036         (vld32wh_insn): Likewise.
34037         (vld32wl_insn): Likewise.
34038         (vld64_insn): Likewise.
34039         (vld32_insn): Likewise.
34040
34041 2017-03-28  Marek Polacek  <polacek@redhat.com>
34042
34043         PR sanitizer/80067
34044         * fold-const.c (fold_comparison): Use protected_set_expr_location
34045         instead of SET_EXPR_LOCATION.
34046
34047 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
34048
34049         * tree.c (add_expr): Avoid name lookup warning.
34050
34051 2017-03-27  Jeff Law  <law@redhat.com>
34052
34053         PR tree-optimization/80216
34054         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
34055         function name.  Limit recursion depth.
34056         (record_temporary_equivalences): Corresponding changes.
34057
34058 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
34059
34060         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
34061         covered first.
34062
34063 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34064
34065         PR target/80102
34066         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
34067         notes.
34068         * cfgcleanup.c (reg_note_cfa_p): New array.
34069         (insns_have_identical_cfa_notes): New function.
34070         (old_insns_match_p): Don't cross-jump in between /f
34071         and non-/f instructions.  If both i1 and i2 are frame related,
34072         verify all CFA notes, their order and content.
34073
34074 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
34075
34076         PR target/78543
34077         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
34078         HImode and SImode with zero extend to DImode to one insn.
34079         (bswap<mode>2_extenddi): Likewise.
34080         (bswapsi2_extenddi): Likewise.
34081         (bswaphi2_extendsi): Likewise.
34082         (bswaphi2): Combine bswap HImode and SImode into one insn.
34083         Separate memory insns from swapping register.
34084         (bswapsi2): Likewise.
34085         (bswap<mode>2): Likewise.
34086         (bswaphi2_internal): Delete, no longer used.
34087         (bswapsi2_internal): Likewise.
34088         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
34089         store, and gpr<-gpr swap insns.
34090         (bswap<mode>2_store): Likewise.
34091         (bswaphi2_reg): Register only splitter, combine with the splitter.
34092         (bswaphi2 splitter): Likewise.
34093         (bswapsi2_reg): Likewise.
34094         (bswapsi2 splitter): Likewise.
34095         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
34096         the insns into load, store, and register/register insns.
34097         (bswapdi2_ldbrx): Likewise.
34098         (bswapdi2_load): Likewise.
34099         (bswapdi2_store): Likewise.
34100         (bswapdi2_reg): Likewise.
34101
34102 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
34103
34104         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
34105         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
34106
34107 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34108
34109         PR target/80103
34110         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
34111         add comments.
34112         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34113         special handling for target option conflicts between dform
34114         options (-mpower9-dform, -mpower9-dform-vector,
34115         -mpower9-dform-scalar) and -mno-direct-move.
34116
34117 2017-03-27  Richard Biener  <rguenther@suse.de>
34118
34119         PR tree-optimization/80181
34120         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
34121
34122 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34123
34124         * config/arc/predicates.md (move_double_src_operand): Replace the
34125         call to move_double_src_operand with a call to address_operand.
34126
34127 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34128
34129         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
34130         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
34131         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
34132
34133 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34134
34135         * config/arc/predicates.md (long_immediate_loadstore_operand):
34136         Consider scaled addresses cases.
34137
34138 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34139
34140         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
34141         restored when in interrupt.
34142         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
34143         doesn't have delay slot.
34144
34145 2017-03-27  Richard Biener  <rguenther@suse.de>
34146
34147         PR ipa/79776
34148         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
34149         inlined thunk clones.
34150
34151 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34152
34153         PR sanitizer/80168
34154         * asan.c (instrument_derefs): Copy over last operand from
34155         original COMPONENT_REF to the new COMPONENT_REF with
34156         DECL_BIT_FIELD_REPRESENTATIVE.
34157         * ubsan.c (instrument_object_size): Likewise.
34158
34159 2017-03-27  Richard Biener  <rguenther@suse.de>
34160
34161         PR tree-optimization/80170
34162         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
34163         sure DR/SCEV didnt fold in constants we do not see when looking
34164         at the reference base alignment.
34165
34166 2017-03-27  Richard Biener  <rguenther@suse.de>
34167
34168         PR middle-end/80171
34169         * gimple-fold.c (fold_ctor_reference): Properly guard against
34170         NULL return value from canonicalize_constructor_val.
34171
34172 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
34173
34174         PR target/80180
34175         * config/i386/i386.c (ix86_expand_builtin)
34176         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
34177         flags reg setting and flags reg using instructions.
34178         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
34179         clobbering instructions to zero extend op2.
34180
34181 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
34182
34183         * doc/install.texi (Configuration) <--with-aix-soname>:
34184         Update link to AIX ld.
34185
34186 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
34187
34188         PR rtl-optimization/80160
34189         PR rtl-optimization/80159
34190         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
34191         reg_alternate_class into account.
34192
34193 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
34194
34195         PR target/80148
34196         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
34197         to consider in curr_insn_transform.
34198
34199 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34200
34201         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
34202         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
34203         and emit_mode_inner.
34204
34205 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34206
34207         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
34208         argument to the overloaded builtin variants.  Use the new flag to
34209         deprecate certain builtin variants.
34210         * config/s390/s390-builtin-types.def: Add new builtin types.
34211         * config/s390/s390-builtins.h: Support new flags field for
34212         overloaded builtins.
34213         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
34214         (s390_macro_to_expand): Enable vector float data type.
34215         (s390_cpu_cpp_builtins_internal): Indicate support of the new
34216         builtins by incrementing the __VEC__ version number.
34217         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
34218         vec_xst.
34219         (s390_resolve_overloaded_builtin): Emit error messages depending
34220         on the builtin flags.
34221         * config/s390/s390.c (s390_expand_builtin): Support additional
34222         flags argument.  Change error message to match the messages
34223         emitted in s390-c.c.
34224         * config/s390/s390.md: New UNSPEC_* constants.
34225         (op_type): Add new instruction types.
34226         * config/s390/vecintrin.h: Add new builtins and test data class
34227         constants.
34228         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
34229         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
34230         (VEC_INEXACT, VEC_NOINEXACT): New constants.
34231         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
34232         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
34233         ("vec_mergel<mode>"): V_HW -> VEC_HW.
34234
34235         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
34236         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
34237         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
34238         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
34239
34240         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
34241         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
34242         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
34243         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
34244
34245         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
34246         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
34247         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
34248         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
34249         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
34250         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
34251         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
34252
34253         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
34254         ("vec_scatter_element<V_HW_4:mode>_DI")
34255         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
34256         ("vec_fpint<mode>", "vflls")
34257         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
34258         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
34259         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
34260         ("*vec_cmphe<mode>_cc"): ... these.
34261
34262         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
34263         mode constant instead of magic value.
34264
34265 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34266
34267         * config/s390/s390.c (s390_expand_vec_compare): Support other
34268         vector floating point modes than just V2DF.
34269         (s390_expand_vcond): Likewise.
34270         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
34271         (s390_cannot_change_mode_class): Prevent mode changes between TF
34272         and V1TF in vector registers.
34273         * config/s390/s390.md (DF, SF): New mode attributes.
34274         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
34275         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
34276         SFmode support for VRs.
34277         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
34278         vector fp modes.
34279         (VFT, VF_HW): New mode iterators.
34280         (vw, sdx): New mode attributes.
34281         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
34282         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
34283         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
34284         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
34285         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
34286         also the new vector floating point modes.  Renaming to ...
34287
34288         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
34289         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
34290         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
34291         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
34292         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
34293         ("vec_unordered<mode>"): ... these.
34294
34295         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
34296         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
34297         ("*vec_extendv2df"): New insn definitions.
34298
34299 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34300
34301         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
34302         ("mulditi3_2", "*muldi3_sign"): New patterns.
34303         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
34304         rename the pattern definition.
34305
34306 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34307
34308         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
34309         expander.
34310         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
34311
34312 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34313
34314         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
34315         instruction if possible.
34316         * config/s390/vector.md (vec_halfnumelts): New mode
34317         attribute.
34318         ("*vec_vllezlf<mode>"): New pattern.
34319
34320 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34321
34322         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
34323         ("popcountv4si2", "popcountv2di2"): Rename to ...
34324         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
34325         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
34326         condition.
34327         ("popcount<mode>2_vxe"): New pattern.
34328
34329 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34330
34331         * common/config/s390/s390-common.c (processor_flags_table): Add
34332         arch12.
34333         * config.gcc: Add arch12.
34334         * config/s390/driver-native.c (s390_host_detect_local_cpu):
34335         Default to arch12 for unknown CPU model numbers.
34336         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
34337         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
34338         PROCESSOR_max sanity check.
34339         * config/s390/s390-opts.h (enum processor_type): Add
34340         PROCESSOR_ARCH12.
34341         * config/s390/s390.c (processor_table): Add arch12.
34342         (s390_expand_builtin): Add check for B_VXE flag.
34343         (s390_issue_rate): Add PROCESSOR_ARCH12.
34344         (s390_get_sched_attrmask): Likewise.
34345         (s390_get_unit_mask): Likewise.
34346         (s390_sched_score): Enable z13 scheduling for arch12.
34347         (s390_sched_reorder): Likewise.
34348         (s390_sched_variable_issue): Likewise.
34349         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
34350         PF_VXE.
34351         (s390_tune_attr): Use z13 scheduling also for arch12.
34352         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
34353         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
34354         (TARGET_VXE_P): New macros.
34355         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
34356         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
34357         * config/s390/s390.opt: Add arch12 as processor_type.
34358
34359 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34360
34361         * config/s390/s390.md
34362         ("fixuns_truncdddi2", "fixuns_trunctddi2")
34363         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
34364         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
34365
34366         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
34367         Rename expanders to ...
34368
34369         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
34370         ("fixuns_truncdddi2_emu"): ... these.
34371
34372         ("fixuns_trunc<mode>si2_emu"): New expander.
34373
34374         ("*fixuns_truncdfdi2_z13"): Rename to ...
34375         ("*fixuns_truncdfdi2_vx"): ... this.
34376
34377 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34378
34379         * config/s390/2964.md: Remove the single element vector compare
34380         instructions which are no longer used.
34381         * config/s390/s390.c (s390_select_ccmode): Remove handling of
34382         vector CCmodes.
34383         (s390_canonicalize_comparison): Remove handling of DFmode
34384         compares.
34385         (s390_expand_vec_compare_scalar): Remove function.
34386         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
34387         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
34388         pattern.
34389         ("*cmp<mode>_ccs"): Add wfcdb instruction.
34390
34391 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34392
34393         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
34394         FP zero.
34395         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
34396         will anyway by matched by mov<mode>_64dfp.
34397
34398 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34399
34400         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
34401         vlef/vstef.  Add missing operand to vleif.
34402
34403 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34404
34405         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
34406         pair for all vector types with 64 bit elements.
34407         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
34408         * config/s390/vector.md (V_HW_64): ... here.
34409         (V_128_NOSINGLE): New mode iterator.
34410         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
34411         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
34412         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
34413         ("*vec_load_pairv2di"): Change to ...
34414         ("*vec_load_pair<mode>"): ... this one.
34415
34416 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34417
34418         * config/s390/constraints.md: Add comments.
34419         (jKK): Reject element sizes > 8 bytes.
34420         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
34421         s_operands.
34422         * config/s390/s390.md: Add the s_operand checks formerly in
34423         s390_split_ok_p to various splitters where they are still
34424         required.
34425         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
34426         for 128 bit vectors.  Plus two splitters.
34427
34428 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34429
34430         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
34431         the file.
34432
34433 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34434
34435         PR target/79893
34436         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
34437         error if the boundary argument is not constant.
34438
34439 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34440
34441         PR rtl-optimization/80112
34442         * loop-doloop.c (doloop_condition_get): Don't check condition
34443         if cmp isn't SET with IF_THEN_ELSE src.
34444
34445 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34446
34447         PR tree-optimization/80158
34448         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
34449         replacing a candidate statement, also replace it for the
34450         candidate's alternate interpretation.
34451         (replace_rhs_if_not_dup): Likewise.
34452         (replace_one_candidate): Likewise.
34453
34454 2017-03-24  Richard Biener  <rguenther@suse.de>
34455
34456         PR tree-optimization/80167
34457         * graphite-isl-ast-to-gimple.c
34458         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
34459         properly.
34460         (translate_isl_ast_to_gimple::get_rename): Likewise.
34461
34462 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34463
34464         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
34465         handling of certain combinations of target options, including the
34466         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
34467         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
34468
34469 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34470
34471         PR target/71436
34472         * config/arm/arm.md (*load_multiple): Add reload_completed to
34473         matching condition.
34474
34475 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34476             Richard Biener  <rguenth@suse.de>
34477
34478         PR tree-optimization/79908
34479         PR tree-optimization/80136
34480         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
34481         been cast away, gimplify_and_add suffices.
34482
34483 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
34484
34485         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
34486
34487 2017-03-23  Richard Biener  <rguenther@suse.de>
34488
34489         PR tree-optimization/80032
34490         * gimplify.c (gimple_push_cleanup): Forced unconditional
34491         cleanups still have to go to the conditional_cleanups
34492         sequence.
34493
34494 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
34495
34496         PR tree-optimization/80072
34497         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
34498         to unsigned int.
34499         (next_operand_entry_id): Change type to unsigned int.
34500         (sort_by_operand_rank): Make sure to return the right return value
34501         even if unsigned fields are bigger than INT_MAX.
34502         (struct oecount): Change cnt and id type to unsigned int.
34503         (oecount_hasher::equal): Formatting fix.
34504         (oecount_cmp): Make sure to return the right return value
34505         even if unsigned fields are bigger than INT_MAX.
34506         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
34507
34508         PR c++/80129
34509         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
34510         TREE_READONLY on result if writing it more than once.
34511
34512         PR sanitizer/80110
34513         * doc/invoke.texi (-fsanitize=thread): Document that with
34514         -fnon-call-exceptions atomics are not able to throw
34515         exceptions.
34516
34517         PR sanitizer/80110
34518         * tsan.c: Include tree-eh.h.
34519         (instrument_builtin_call): Call maybe_clean_eh_stmt or
34520         maybe_clean_or_replace_eh_stmt where needed.
34521         (instrument_memory_accesses): Add cfg_changed argument.
34522         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
34523         if it returned true.
34524         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
34525
34526         PR rtl-optimization/63191
34527         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
34528         wrapper function, moved the whole old content into ...
34529         (ix86_delegitimize_address_1): ... this.  New inline function.
34530         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
34531         true as last argument instead of ix86_delegitimize_address.
34532
34533 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
34534
34535         * config/aarch64/aarch64.c (generic_branch_cost): Copy
34536         cortexa57_branch_cost.
34537
34538 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
34539
34540         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
34541
34542 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34543
34544         PR target/80123
34545         * doc/md.texi (Constraints): Document wA constraint.
34546         * config/rs6000/constraints.md (wA): New.
34547         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
34548         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
34549         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
34550         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
34551
34552 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
34553
34554         PR c++/80029
34555         * gimplify.c (is_oacc_declared): New function.
34556         (oacc_default_clause): Use it to set default flags for acc declared
34557         variables inside parallel regions.
34558         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
34559         declared variables.
34560         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
34561         declare attribute to any decl as necessary.
34562
34563 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34564
34565         PR target/80082
34566         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
34567         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
34568         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
34569         (arm_arch_lpae): This.
34570         * config/arm/arm.c (arm_arch7ve): Rename into ...
34571         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
34572         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
34573         arm_arch_lpae.
34574
34575 2017-03-22  Martin Liska  <mliska@suse.cz>
34576
34577         PR target/79906
34578         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
34579         error message instead of an ICE.
34580
34581 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34582
34583         * doc/extend.texi (6.11 Additional Floating Types): Revise.
34584
34585 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34586
34587         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
34588         comments.
34589         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34590         comments.
34591
34592 2017-03-21  Martin Sebor  <msebor@redhat.com>
34593
34594         * doc/extend.texi: Use "cannot" instead of "can't."
34595         * doc/hostconfig.texi: Same.
34596         * doc/install.texi: Same.
34597         * doc/invoke.texi: Same.
34598         * doc/loop.texi: Same.
34599         * doc/md.texi: Same.
34600         * doc/objc.texi: Same.
34601         * doc/rtl.texi: Same.
34602         * doc/tm.texi: Same.
34603         * doc/tm.texi.in: Same.
34604         * doc/trouble.texi: Same.
34605
34606 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
34607
34608         PR debug/63238
34609         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
34610         (collect_checksum_attributes): Set it.
34611         (die_checksum_ordered): Use it.
34612
34613 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34614
34615         PR tree-optimization/79908
34616         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
34617         change: For a VA_ARG whose LHS has been cast away, use
34618         force_gimple_operand to construct the side effects.
34619
34620 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
34621
34622         PR translation/80001
34623         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
34624         more amenable to translation.
34625         (oacc_loop_auto_partitions): Likewise.
34626
34627 2017-03-21  Marek Polacek  <polacek@redhat.com>
34628             Martin Sebor  <msebor@redhat.com>
34629
34630         PR tree-optimization/80109
34631         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
34632         on INTEGRAL_TYPE_P.
34633
34634 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
34635             Segher Boessenkool  <segher@kernel.crashing.org>
34636
34637         PR target/80125
34638         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
34639         check reg_used_between_p between insn and one of succ or succ2
34640         depending on if succ is artificial insn not inserted into insn
34641         stream.
34642
34643 2017-03-21  Martin Liska  <mliska@suse.cz>
34644
34645         PR gcov-profile/80081
34646         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
34647         * doc/gcc.texi: Include gcov-dump stuff.
34648         * doc/gcov-dump.texi: New file.
34649
34650 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
34651
34652         PR rtl-optimization/79150
34653         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
34654         conditional jump, if the jump is the last insn of the loop.
34655
34656 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34657             Richard Biener  <rguenth@suse.de>
34658
34659         PR tree-optimization/79908
34660         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
34661         been cast away, use force_gimple_operand to construct the side
34662         effects.
34663
34664 2017-03-21  Martin Liska  <mliska@suse.cz>
34665
34666         PR libfortran/79956
34667         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
34668         to NULL.
34669
34670 2017-03-21  Brad Spengler <spender@grsecurity.net>
34671
34672         PR plugins/80094
34673         * plugin.c (htab_hash_plugin): New function.
34674         (add_new_plugin): Use it and adjust.
34675         (parse_plugin_arg_opt): Adjust.
34676         (init_one_plugin): Likewise.
34677
34678 2017-03-21  Richard Biener  <rguenther@suse.de>
34679
34680         PR tree-optimization/80032
34681         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
34682         if set force the cleanup to happen unconditionally.
34683         (gimplify_target_expr): Push inserted clobbers with force_uncond
34684         to avoid them being removed by control-dependent DCE.
34685
34686 2017-03-21  Richard Biener  <rguenther@suse.de>
34687
34688         PR tree-optimization/80122
34689         * tree-inline.c (copy_bb): Do not expans va-arg packs or
34690         va_arg_pack_len when the inlined call stmt requires pack
34691         expansion itself.
34692         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
34693
34694 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
34695
34696         PR sanitizer/78158
34697         * tsan.c (instrument_builtin_call): If the memory model argument
34698         is not a constant, assume it is valid.
34699
34700         PR c/67338
34701         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
34702         avoid UB.
34703
34704 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
34705
34706         PR rtl-optimization/79910
34707         * combine.c (can_combine_p): Do not allow combining an I0 or I1
34708         if its dest is used by an insn before I2 (other than the combined
34709         insns themselves, which are properly handled already).
34710
34711 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
34712
34713         Revert:
34714         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
34715
34716         * combine.c (record_used_regs): New static function.
34717         (try_combine): Handle situations where there is an additional
34718         instruction between I2 and I3 which needs to have a LOG_LINK
34719         updated.
34720
34721         Revert:
34722         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
34723
34724         * combine.c (try_combine): Delete redundant i1 test.  Call
34725         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
34726
34727 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34728
34729         PR target/80083
34730         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
34731         alternatives 13/14.
34732
34733 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34734
34735         PR tree-optimization/80054
34736         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
34737         the optimization if a PHI or any of its arguments is not dominated
34738         by the candidate's basis.  Use gphi* rather than gimple* as
34739         appropriate.
34740         (replace_profitable_candidates): Clean up a gimple* variable that
34741         should be a gphi* variable.
34742
34743 2017-03-20  Martin Sebor  <msebor@redhat.com>
34744
34745         PR c++/52477
34746         * doc/extend.texi (attribute constructor): Document present limitation.
34747
34748 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34749
34750         PR target/79963
34751         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
34752         __POWER9_VECTOR__ #ifdef control, change template definition to
34753         use Power9-specific built-in function.
34754         (vec_any_eq): Likewise.
34755         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
34756         to control outcomes from this test.
34757         (vector_ae_<mode>p): For VEC_F modes, likewise.
34758
34759 2017-03-20  Ian Lance Taylor  <iant@google.com>
34760
34761         * config/i386/i386.c (ix86_function_regparm): Save an extra
34762         register for -fsplit-stack with DECL_STATIC_CHAIN.
34763
34764 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
34765
34766         PR target/79912
34767         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
34768         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
34769
34770 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
34771
34772         * config/riscv/riscv.c (riscv_print_operand): Use "fence
34773         iorw,ow".
34774         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
34775         iorw,iorw".
34776
34777 2017-03-20  Marek Polacek  <polacek@redhat.com>
34778
34779         PR sanitizer/80063
34780         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
34781
34782 2017-03-20  Richard Biener  <rguenther@suse.de>
34783
34784         PR tree-optimization/80113
34785         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
34786         allocate extra SSA name for PHI def.
34787         (add_close_phis_to_outer_loops): Likewise.
34788         (add_close_phis_to_merge_points): Likewise.
34789         (copy_loop_close_phi_args): Likewise.
34790         (copy_cond_phi_nodes): Likewise.
34791
34792 2017-03-20  Martin Liska  <mliska@suse.cz>
34793
34794         PR middle-end/79753
34795         * tree-chkp.c (chkp_build_returned_bound): Do not build
34796         returned bounds for a LHS that's not a BOUNDED_P type.
34797
34798 2017-03-20  Martin Liska  <mliska@suse.cz>
34799
34800         PR target/79769
34801         PR target/79770
34802         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
34803         COMPLEX_CST and VECTOR_CST.
34804
34805 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34806
34807         PR target/78857
34808         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
34809         target operand.  A new splitter adds the clobber statement in case
34810         the target operand is dead anyway.
34811
34812 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
34813
34814         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
34815         to age-old versions of binutils and glibc.
34816
34817 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
34818
34819         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
34820
34821 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34822
34823         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
34824
34825 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34826
34827         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
34828         requirement for binutils 2.13.
34829
34830 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
34831
34832         * combine.c (try_combine): Delete redundant i1 test.  Call
34833         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
34834
34835 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
34836
34837         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
34838         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
34839         contents.
34840         <riscv64-*-elf>: Re-arrange section
34841         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
34842         <riscv32-*-linux>: Likewise.
34843         <riscv64-*-elf>: Likewise
34844         <riscv64-*-linux>: Likewise.
34845
34846 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
34847
34848         PR target/80052
34849         * aarch64.opt(verbose-cost-dump): Fix typo.
34850
34851 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
34852
34853         PR target/79951
34854         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
34855         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
34856
34857 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
34858
34859         * reload.c (find_reloads): When reloading a nonoffsettable address,
34860         use RELOAD_OTHER for it and its address reloads.
34861
34862         PR rtl-optimization/79910
34863         * combine.c (record_used_regs): New static function.
34864         (try_combine): Handle situations where there is an additional
34865         instruction between I2 and I3 which needs to have a LOG_LINK
34866         updated.
34867
34868 2017-03-17  Jeff Law  <law@redhat.com>
34869
34870         PR tree-optimization/71437
34871         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
34872         conditional in the hash table first.
34873         (vrp_dom_walker::before_dom_children): Extract condition from
34874         ASSERT_EXPR.  Record condition, its inverion and any implied
34875         conditions as well.
34876
34877 2017-03-17  Marek Polacek  <polacek@redhat.com>
34878             Markus Trippelsdorf  <markus@trippelsdorf.de>
34879
34880         PR tree-optimization/80079
34881         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
34882         m_stores_head.
34883
34884 2017-03-17  Richard Biener  <rguenther@suse.de>
34885
34886         PR middle-end/80075
34887         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
34888         Properly verify the LHS before the RHS possibly claims to be
34889         handled.
34890         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
34891         do not throw.
34892
34893 2017-03-17  Martin Jambor  <mjambor@suse.cz>
34894
34895         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
34896         (List of -O2 options): Likewise.
34897         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
34898         (-fipa-vrp) New.
34899
34900 2017-03-17  Tom de Vries  <tom@codesourcery.com>
34901
34902         * gcov-dump.c (print_usage): Print bug_report_url.
34903
34904 2017-03-17  Richard Biener  <rguenther@suse.de>
34905
34906         PR middle-end/80050
34907         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
34908         (parser::peek): Likewise.
34909
34910 2017-03-17  Richard Biener  <rguenther@suse.de>
34911
34912         PR tree-optimization/80048
34913         * sese.c (free_sese_info): Properly release rename_map and
34914         copied_bb_map elements.
34915
34916 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
34917
34918         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
34919         Add linked-list forward and backlinks.  Insert on
34920         construction, remove on destruction.
34921         (class pass_store_merging): Add m_stores_head field.
34922         (pass_store_merging::terminate_and_process_all_chains):
34923         Iterate over m_stores_head list.
34924         (pass_store_merging::terminate_all_aliasing_chains):
34925         Likewise.
34926         (pass_store_merging::execute): Check for debug stmts first.
34927         Push new chains onto the m_stores_head stack.
34928
34929 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
34930
34931         PR target/71294
34932         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
34933         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
34934         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
34935
34936 2017-03-16  Jeff Law  <law@redhat.com>
34937
34938         PR tree-optimization/71437
34939         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
34940         member function.  Implementation moved into after_dom_children
34941         member function and into the threader's thread_outgoing_edges
34942         function.
34943         (dom_opt_dom_walker::after_dom_children): Simplify by moving
34944         some code into new thread_outgoing_edges.
34945         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
34946         definition.  Simplify marker handling (do it here).   Assume we always
34947         have the available expression and the const/copies tables.
34948         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
34949         and tree-vrp.c
34950         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
34951         * tree-vrp.c (equiv_stack): No longer file scoped.
34952         (vrp_dom_walker): New class.
34953         (vrp_dom_walker::before_dom_children): New member function.
34954         (vrp_dom_walker::after_dom_children): Likewise.
34955         (identify_jump_threads):  Setup domwalker.  Use it rather than
34956         walking edges in a random order by hand.  Simplify setup/finalization.
34957         (finalize_jump_threads): Remove.
34958         (vrp_finalize): Do not call identify_jump_threads here.
34959         (execute_vrp): Do it here instead and call thread_through_all_blocks
34960         here too.
34961
34962         PR tree-optimization/71437
34963         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
34964         callers changed.
34965         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
34966         callers changed.
34967         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
34968         (dom_opt_dom_walker::thread_across_edge): Remove
34969         handle_dominating_asserts argument.  All callers changed.
34970         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
34971         changes.  Remove calls to lhs_of_dominating_assert.  Other
34972         uses of handle_dominating_asserts turn into unconditional code
34973         (simplify_control_stmt_condition_1): Likewise.
34974         (simplify_control_stmt_condition): Likewise.
34975         (thread_through_normal_block, thread_across_edge): Likewise.
34976         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
34977         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
34978         object if it is not an SSA_NAME.
34979         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
34980         before calling into the VRP specific simplifiers.
34981         (identify_jump_threads): Remove handle_dominating_asserts
34982         argument.
34983
34984 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
34985
34986         PR fortran/79886
34987         * tree-diagnostic.c (default_tree_printer): No longer static.
34988         * tree-diagnostic.h (default_tree_printer): New prototype.
34989
34990 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
34991
34992         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
34993         Change ins into fmov.
34994
34995 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34996
34997         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
34998         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
34999         Use h_con constraint for operand 1.
35000         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
35001         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
35002
35003 2017-03-15  Jeff Law  <law@redhat.com>
35004
35005         PR tree-optimization/71437
35006         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
35007         (record_temporary_equivalences): Use it.
35008
35009         PR tree-optimization/71437
35010         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
35011         tree-ssa-scopedtables.
35012         (lookup_avail_expr, build_and_record_new_cond): Likewise.
35013         (record_conditions, record_cond, vuse_eq): Likewise.
35014         (record_edge_info): Adjust to API tweak of record_conditions.
35015         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
35016         (record_temporary_equivalences, optimize_stmt): Likewise.
35017         (eliminate_redundant_computations): Likewise.
35018         (record_equivalences_from_stmt): Likewise.
35019         * tree-ssa-scopedtables.c: Include options.h and params.h.
35020         (vuse_eq): New function, moved from tree-ssa-dom.c
35021         (build_and_record_new_cond): Likewise.
35022         (record_conditions): Likewise.  Accept vector of conditions rather
35023         than edge_equivalence structure for first argument.
35024         for the first argument.
35025         (avail_exprs_stack::lookup_avail_expr): New member function, moved
35026         from tree-ssa-dom.c.
35027         (avail_exprs_stack::record_cond): Likewise.
35028         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
35029         from tree-ssa-dom.c.
35030         (avail_exprs_stack): Add new member functions lookup_avail_expr
35031         and record_cond.
35032         (record_conditions): Declare.
35033
35034 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
35035
35036         PR target/80017
35037         * lra-constraints.c (process_alt_operands): Increase reject for
35038         reloading an input/output operand.
35039
35040 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
35041
35042         PR target/79038
35043         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
35044         insns to convert from signed/unsigned char/short to IEEE 128-bit
35045         floating point.
35046         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
35047
35048 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
35049
35050         PR target/80019
35051         * config/i386/i386.c (ix86_vector_duplicate_value): Create
35052         subreg of inner mode for values already in registers.
35053
35054 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
35055
35056         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
35057         iteration reg is used after the loop.
35058
35059 2017-03-14  Martin Sebor  <msebor@redhat.com>
35060
35061         PR tree-optimization/79800
35062         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
35063         precision in negative-positive range.
35064         (format_floating): Call non-const overload with adjusted precision.
35065
35066 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35067
35068         PR target/79947
35069         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
35070         -mpowerpc-gfxopt.
35071
35072 2017-03-14  Martin Sebor  <msebor@redhat.com>
35073
35074         PR middle-end/80020
35075         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
35076         * builtins.def (aligned_alloc): Use it.
35077
35078         PR c/79936
35079         * Makefile.in (GTFILES): Add calls.c.
35080         * calls.c: Include "gt-calls.h".
35081
35082 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
35083
35084         PR rtl-optimization/79728
35085         * regs.h (struct target_regs): New field
35086         x_contains_allocatable_regs_of_mode.
35087         (contains_allocatable_regs_of_mode): New macro.
35088         * reginfo.c (init_reg_sets_1): Initialize it, and change
35089         contains_reg_of_mode so it includes global regs as well.
35090         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
35091         rather than contains_regs_of_mode.
35092
35093 2017-03-14  Martin Liska  <mliska@suse.cz>
35094
35095         * doc/invoke.texi: Document options that can't be combined with
35096         -fcheck-pointer-bounds.
35097
35098 2017-03-14  Martin Liska  <mliska@suse.cz>
35099
35100         PR middle-end/79831
35101         * doc/invoke.texi (-Wchkp): Document the option.
35102
35103 2017-03-14  Martin Liska  <mliska@suse.cz>
35104
35105         * Makefile.in: Install gcov-dump.
35106
35107 2017-03-14  Martin Liska  <mliska@suse.cz>
35108
35109         * multiple_target.c (expand_target_clones): Bail out for
35110         an invalid attribute.
35111
35112 2017-03-14  Richard Biener  <rguenther@suse.de>
35113
35114         * alias.c (struct alias_set_entry): Pack properly.
35115         * cfgloop.h (struct loop): Likewise.
35116         * cse.c (struct set): Likewise.
35117         * ipa-utils.c (struct searchc_env): Likewise.
35118         * loop-invariant.c (struct invariant): Likewise.
35119         * lra-remat.c (struct cand): Likewise.
35120         * recog.c (struct change_t): Likewise.
35121         * rtl.h (struct address_info): Likewise.
35122         * symbol-summary.h (function_summary): Likewise.
35123         * tree-loop-distribution.c (struct partition): Likewise.
35124         * tree-object-size.c (struct object_size_info): Likewise.
35125         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
35126         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
35127         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
35128         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
35129         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
35130         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
35131         (struct _stmt_vec_info): Likewise.
35132
35133 2017-03-14  Martin Liska  <mliska@suse.cz>
35134
35135         PR target/79892
35136         * multiple_target.c (create_dispatcher_calls): Check that
35137         a target can create a function dispatcher.
35138
35139 2017-03-14  Martin Liska  <mliska@suse.cz>
35140
35141         PR lto/66295
35142         * multiple_target.c (expand_target_clones): Drop local.local
35143         flag for default implementation.
35144
35145 2017-03-14  Richard Biener  <rguenther@suse.de>
35146
35147         PR tree-optimization/80030
35148         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
35149
35150 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
35151
35152         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
35153         gcc_fallthrough() instead of __attribute__((fallthrough));
35154
35155 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35156
35157         * doc/gcc.texi: Remove "up" link to (DIR).
35158         * doc/gccint.texi: Ditto.
35159
35160 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35161
35162         * doc/install.texi (Specific) <avr>: Remove reference to
35163         binutils 2.13.
35164
35165 2017-03-13  Jeff Law  <law@redhat.com>
35166
35167         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
35168         attribute rather than comments.
35169
35170         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
35171         match_scratch operand is highest.
35172
35173 2017-03-13  Martin Liska  <mliska@suse.cz>
35174
35175         PR middle-end/78339
35176         * ipa-pure-const.c (warn_function_noreturn): If the declarations
35177         is a CHKP clone, use original declaration.
35178
35179 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35180
35181         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
35182         (arc_conditional_register_usage): Use a different allocation order
35183         when optimizing for size.
35184         * common/config/arc/arc-common.c (arc_option_optimization_table):
35185         Section anchors default on when optimizing for size.
35186
35187 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35188
35189         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
35190
35191 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35192
35193         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
35194         * config/arc/arc.md (cpu_facility): Add cd variant.
35195         (*movqi_insn): Add code density variant.
35196         (*movhi_insn): Likewise.
35197         (*movqi_insn): Likewise.
35198         (*addsi3_mixed): Likewise.
35199         (subsi3_insn): Likewise.
35200
35201 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35202
35203         * config/arc/arc.md (movsi_cond_exec): Update constraint.
35204
35205 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35206
35207         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
35208         expressions with MINUS and UNARY ops.
35209
35210 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35211
35212         PR target/79911
35213         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
35214         Rename to...
35215         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
35216         between vec_select and vector argument.
35217         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
35218         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
35219         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
35220         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
35221         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
35222         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
35223
35224 2017-03-13  Richard Biener  <rguenther@suse.de>
35225
35226         PR other/79991
35227         * params.def (vect-max-peeling-for-alignment): Fix typo.
35228
35229 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35230
35231         * doc/install.texi (Specific) <mips-*-*>: Remove description of
35232         issue that only occurred with binutils below 2.18.
35233
35234 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35235
35236         * doc/install.texi (Specific) <cris-axis-elf>: No longer
35237         refer to binutils 2.11/2.12 minimum.
35238
35239 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35240
35241         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
35242         ftp.kernel.org and simplify binutils requirement.
35243
35244 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
35245
35246         * doc/invoke.texi (Warning Options): Fix spelling of link-time
35247         optimization.
35248         (Optimize Options): Ditto.  Also remove redundancy.
35249
35250 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35251
35252         PR translation/79848
35253         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
35254         "%qs".
35255         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
35256         to G_ to avoid double translation.
35257
35258 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35259
35260         PR translation/79923
35261         * auto-profile.c (get_combined_location): Convert leading
35262         character of diagnostics to lower case and remove trailing period.
35263         (read_profile): Likewise for various diagnostics.
35264         * config/arm/arm.c (arm_option_override): Remove trailing period
35265         from various diagnostics.
35266         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
35267         (msp430_expand_delay_cycles): Likewise.
35268
35269 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35270
35271         PR target/79925
35272         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
35273         full command-line argument, rather than just "str".
35274         (aarch64_validate_march): Likewise.
35275         (aarch64_validate_mtune): Likewise.
35276
35277 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
35278
35279         PR rtl-optimization/78911
35280         * lra-assigns.c (must_not_spill_p): New function.
35281         (spill_for): Use it.
35282
35283 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35284
35285         PR tree-optimization/79981
35286         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
35287         ATOMIC_COMPARE_EXCHANGE ifn result.
35288         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
35289         IFN_ATOMIC_COMPARE_EXCHANGE.
35290
35291 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35292
35293         PR driver/79875
35294         * opts.c (parse_sanitizer_options): Add missing question mark to
35295         "did you mean" message.
35296
35297 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35298
35299         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
35300         built-in.
35301         (VMULEUH_UNS): Likewise.
35302         (VMULOUB_UNS): Likewise.
35303         (VMULOUH_UNS): Likewise.
35304         * config/rs6000/rs6000.c (builtin_function_type): Remove
35305         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
35306
35307 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35308
35309         PR bootstrap/79952
35310         * read-rtl-function.c (function_reader::read_rtx_operand): Update
35311         x with result of extra_parsing_for_operand_code_0.
35312         (function_reader::extra_parsing_for_operand_code_0): Convert
35313         return type from void to rtx, returning x.  When reading
35314         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
35315         larger size containing struct block_symbol.
35316
35317 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
35318
35319         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
35320         -mfloat128-hardware without -m64.
35321
35322 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
35323
35324         PR target/79941
35325         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
35326         entries to the case statement that marks unsigned arguments to
35327         overloaded functions.
35328
35329 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35330
35331         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
35332         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
35333
35334 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
35335
35336         PR target/79907
35337         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
35338         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
35339
35340 2017-03-10  Martin Liska  <mliska@suse.cz>
35341
35342         PR target/65705
35343         PR target/69804
35344         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
35345         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
35346         FIELD != NULL.
35347
35348 2017-03-10  Olivier Hainque  <hainque@adacore.com>
35349
35350         * tree-switch-conversion (array_value_type): Start by resetting
35351         candidate type to it's main variant.
35352
35353 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35354
35355         PR rtl-optimization/79909
35356         * combine.c (try_combine): Use simplify_replace_rtx on individual
35357         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
35358         of the whole CALL_INSN_FUNCTION_USAGE.
35359
35360         PR tree-optimization/79972
35361         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
35362         get_range_info on SSA_NAMEs.  Formatting fixes.
35363
35364 2017-03-10  Richard Biener  <rguenther@suse.de>
35365             Jakub Jelinek  <jakub@redhat.com>
35366
35367         PR tree-optimization/77975
35368         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
35369         edge to be constant.
35370         (get_val_for): For constant x return it.  Formatting fix.
35371         (loop_niter_by_eval): Avoid pointless looping if the next iteration
35372         would use the same bases as the current one.
35373
35374 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35375
35376         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
35377         instead of vec_select for V1TImode.
35378         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
35379         longer needed.
35380         (VSX_LE_128): Add V1TI to this mode iterator.
35381         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
35382         (*vsx_le_perm_store_<mode>): Likewise.
35383         (pre-reload splitter for VSX stores): Likewise.
35384         (post-reload splitter for VSX stores): Likewise.
35385         (*vsx_xxpermdi2_le_<mode>): Likewise.
35386         (*vsx_lxvd2x2_le_<mode>): Likewise.
35387         (*vsx_stxvd2x2_le_<mode>): Likewise.
35388
35389 2017-03-09  Michael Eager  <eager@eagercon.com>
35390
35391         Correct failures with --enable-checking=yes,rtl.
35392
35393         * config/microblaze/microblaze.c (microblaze_expand_shift):
35394         Replace GET_CODE test with CONST_INT_P and INTVAL test with
35395         test for const0_rtx.
35396         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
35397         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
35398
35399 2017-03-09  Richard Biener  <rguenther@suse.de>
35400
35401         PR tree-optimization/79977
35402         * graphite-scop-detection.c (scop_detection::merge_sese):
35403         Handle the case of extra exits to blocks dominating the entry.
35404
35405 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
35406
35407         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
35408         Document rdynamic.
35409
35410 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
35411
35412         PR rtl-optimization/79949
35413         * lra-constraints.c (process_alt_operands): Check memory when
35414         trying to predict a cycle.  Print about the overall increase.
35415
35416 2017-03-09  Richard Biener  <rguenther@suse.de>
35417
35418         PR middle-end/79971
35419         * gimple-expr.c (useless_type_conversion_p): Preserve
35420         TYPE_SATURATING for fixed-point types.
35421
35422 2017-03-09  Richard Biener  <rguenther@suse.de>
35423
35424         PR ipa/79970
35425         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
35426         alignment of BLKmode params.
35427
35428 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35429
35430         PR target/79913
35431         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
35432         (VALL_NO_V2Q): Likewise.
35433         (VDQF_DF): Delete.
35434         * config/aarch64/aarch64-simd.md
35435         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
35436         iterator.
35437         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
35438         VALL_NO_V2Q mode iterator.
35439         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
35440
35441 2017-03-09  Martin Liska  <mliska@suse.cz>
35442
35443         PR tree-optimization/79631
35444         * tree-chkp-opt.c (chkp_is_constant_addr): Call
35445         tree_int_cst_sign_bit just for INTEGER constants.
35446
35447 2017-03-09  Martin Liska  <mliska@suse.cz>
35448
35449         PR target/65705
35450         PR target/69804
35451         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
35452         sanitizers.
35453
35454 2017-03-09  Marek Polacek  <polacek@redhat.com>
35455
35456         PR c++/79672
35457         * tree.c (inchash::add_expr): Handle TREE_VEC.
35458
35459 2017-03-09  Martin Liska  <mliska@suse.cz>
35460
35461         PR ipa/79764
35462         (chkp_narrow_size_and_offset): New function.
35463         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
35464         (void chkp_parse_bit_field_ref): New function.
35465         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
35466         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
35467
35468 2017-03-09  Martin Liska  <mliska@suse.cz>
35469
35470         PR ipa/79761
35471         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
35472         (chkp_find_bounds_1): Remove gcc_unreachable.
35473
35474 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
35475
35476         PR sanitizer/79944
35477         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
35478         BUILT_IN_SYNC*, determine the access type from the size suffix and
35479         always build a MEM_REF with that type.  Handle forgotten
35480         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
35481
35482         PR target/79932
35483         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
35484         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
35485         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
35486         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
35487         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
35488         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
35489         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
35490         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
35491         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
35492         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
35493         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
35494         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
35495         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
35496         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
35497         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
35498         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
35499         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
35500         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
35501         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
35502         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
35503         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
35504         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
35505         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
35506         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
35507         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
35508         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
35509         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
35510         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
35511         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
35512         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
35513         definitions outside of __OPTIMIZE__ guarded section.
35514
35515         PR target/79932
35516         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
35517         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
35518         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
35519         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
35520         guarded section.
35521
35522 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35523
35524         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
35525         ("vfenez<mode>"): Add missing constraints.
35526
35527 2017-03-08  Martin Sebor  <msebor@redhat.com>
35528
35529         PR target/79928
35530         * config/nds32/nds32.c (nds32_option_override):
35531         Fix misspelled diagnostic.
35532
35533 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35534
35535         PR c/79940
35536         * gimplify.c (gimplify_omp_for): Replace index var in outer
35537         taskloop statement with an artificial variable and add
35538         OMP_CLAUSE_PRIVATE clause for it.
35539
35540 2017-03-08  Richard Biener  <rguenther@suse.de>
35541
35542         PR tree-optimization/79955
35543         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
35544         for accesses that are completely outside of the variable.
35545
35546 2017-03-08  Andrew Haley  <aph@redhat.com>
35547
35548         PR tree-optimization/79943
35549         * tree-ssa-loop-split.c (compute_new_first_bound): When
35550         calculating the new upper bound, (END-BEG) should be added, not
35551         subtracted.
35552
35553 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35554
35555         * config/avr/avr.md (setmemhi): Make sure match_dup
35556         operand number comes before match_scratch.
35557
35558 2017-03-08  Richard Biener  <rguenther@suse.de>
35559
35560         PR tree-optimization/79920
35561         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
35562         with ncopies == 1 to ...
35563         (vect_transform_slp_perm_load): ... here.  Properly compute
35564         all element loads by iterating VF times over the group.  Do
35565         not handle ncopies (computed in a broken way) in
35566         vect_create_mask_and_perm.
35567
35568 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35569
35570         PR sanitizer/79904
35571         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
35572         is a uniform vector, use uniform_vector_p return value instead of
35573         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
35574
35575 2017-03-07  Marek Polacek  <polacek@redhat.com>
35576
35577         PR middle-end/79809
35578         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
35579         (alloca_call_type): Likewise.
35580
35581 2017-03-07  Martin Liska  <mliska@suse.cz>
35582
35583         * gcov.c (process_args): Put comment to correct location.
35584
35585 2017-03-07  Martin Liska  <mliska@suse.cz>
35586
35587         PR middle-end/68270
35588         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
35589         Use array_at_struct_end_p instead of DECL_CHAIN (field).
35590         (chkp_narrow_bounds_for_field): Likewise.
35591         (chkp_parse_array_and_component_ref): Pass one more argument to
35592         call.
35593
35594 2017-03-07  Richard Biener  <rguenther@suse.de>
35595
35596         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
35597         preheaders.
35598
35599 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
35600
35601         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
35602         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
35603
35604 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35605
35606         PR c/79855
35607         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
35608         to end of description.
35609         (PARAM_MAX_STORES_TO_MERGE): Likewise.
35610
35611 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
35612
35613         PR rtl-optimization/79901
35614         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
35615         ...
35616         (*avx512f_<code><mode>3<mask_name>): ... this.
35617         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
35618         iterator instead of VI8_AVX2_AVX512BW.
35619
35620         PR rtl-optimization/79901
35621         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
35622         min/max expander, expand it using expand_vec_cond_expr.
35623
35624         PR sanitizer/79897
35625         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
35626         temporary.
35627
35628 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
35629
35630         PR c++/79821
35631         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
35632         to void * for PCH reasons.
35633         * dwarf2out.c (output_loc_operands, output_die): Cast
35634         v.val_vec.array to unsigned char *.
35635
35636 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
35637
35638         PR target/77850
35639         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
35640         vector types.
35641
35642 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
35643
35644         PR rtl-optimization/79571
35645         * lra-constraints.c (process_alt_operands): Calculate static
35646         reject and subtract it from overall when only addresses will be
35647         reloaded.
35648
35649 2017-03-06  Julia Koval  <julia.koval@intel.com>
35650
35651         PR target/79793
35652         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
35653         incoming stack boundary to 128 for 64-bit targets.
35654
35655 2017-03-06  Richard Biener  <rguenther@suse.de>
35656
35657         PR tree-optimization/79894
35658         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
35659         to NULL after folding it.
35660
35661 2017-03-06  Richard Biener  <rguenther@suse.de>
35662
35663         PR tree-optimization/79824
35664         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
35665         check disabling peeling for gaps.
35666
35667 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
35668
35669         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
35670         attributes): Document gettimeofday.
35671
35672 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
35673
35674         * config/s390/s390.c (s390_option_override_internal): Set
35675         PARAM_MIN_VECT_LOOP_BOUND
35676
35677 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
35678
35679         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
35680         * config/s390/s390.md: Likewise.
35681
35682 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
35683
35684         PR target/79812
35685         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
35686         (<avx2_avx512>_perm<mode>): Rename to ...
35687         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
35688         of VI8F_256_512.
35689         (<avx512>_perm<mode>_mask): Rename to ...
35690         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
35691         of VI8F_256_512.
35692         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
35693         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
35694         instead of VI8F_256_512.
35695         (avx512f_perm<mode>): New define_expand.
35696         (avx512f_perm<mode>_mask): Likewise.
35697         (avx512f_perm<mode>_1<mask_name>): New define_insn.
35698         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
35699
35700 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35701
35702         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
35703         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
35704         if_then_else.
35705         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
35706
35707 2017-03-06  Martin Liska  <mliska@suse.cz>
35708
35709         PR sanitize/79783
35710         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
35711         when having a SSA NAME w/o VAR_DECL assigned to it.
35712
35713 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35714
35715         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
35716         msa_dpsub_<su>_d): Fix MODE for vec_select.
35717
35718 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35719
35720         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
35721         argument.
35722         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
35723
35724 2017-03-06  Richard Biener  <rguenther@suse.de>
35725
35726         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
35727         * plugin.c (register_plugin_info): Likewise.
35728         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
35729
35730 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
35731
35732         * config/i386/sse.md (sse_storehps, sse_storelps,
35733         avx_<castmode><avxsizesuffix>_<castmode>,
35734         avx512f_<castmode><avxsizesuffix>_<castmode>,
35735         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
35736         in condition that at least one operand is not a MEM.
35737
35738 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
35739
35740         PR middle-end/79805
35741         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
35742         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
35743         ECF_NOTHROW.
35744         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
35745         gimple_call_nothrow_p flag based on whether original builtin can throw.
35746         If it can, emit following stmts on the fallthrough edge.
35747         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
35748         don't create new bb if inserting just debug stmts on the edge, try to
35749         insert them on the fallthru bb or just reset debug stmts.
35750
35751 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
35752
35753         PR target/43763
35754         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
35755         restore recog_data (including the operand rtxes inside it) around
35756         the call to get_insn_template.
35757
35758 2017-03-03  Martin Sebor  <msebor@redhat.com>
35759
35760         PR tree-optimization/79699
35761         * context.c (context::~context): Free MPFR caches to avoid
35762         a memory leak on program exit.
35763
35764 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35765
35766         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
35767         Use wide_int::ulow () instead of .elt (0).
35768
35769 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
35770
35771         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
35772         (*pushxf): Limit oF constraint to 32bit targets and add oC
35773         constraint for 64bit targets.
35774         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
35775         (*pushdf): Change rmF constraint to rmC.
35776
35777 2017-03-03  Martin Liska  <mliska@suse.cz>
35778
35779         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
35780         Remove unused variable.
35781
35782 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
35783
35784         PR target/79807
35785         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
35786         is a memory operand, increase num_memory.
35787         (ix86_expand_args_builtin): Likewise.
35788
35789 2017-03-03  Jan Hubicka  <jh@suse.cz>
35790
35791         PR lto/79760
35792         * ipa-devirt.c (maybe_record_node): Properly handle
35793         __cxa_pure_virtual visibility.
35794
35795 2017-03-03  Martin Liska  <mliska@suse.cz>
35796
35797         PR tree-optimization/79803
35798         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
35799         assert.
35800         (pass_loop_prefetch::execute): Disabled optimization if an
35801         assumption about L1 cache size is not met.
35802
35803 2017-03-03  Martin Liska  <mliska@suse.cz>
35804
35805         PR rtl-optimization/79574
35806         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
35807         (hash_scan_set): Likewise.
35808         (dump_hash_table): Likewise.
35809         (hoist_code): Likewise.
35810
35811 2017-03-03  Richard Biener  <rguenther@suse.de>
35812
35813         * fixed-value.c (fixed_from_string): Restore use of elt (1)
35814         in place of uhigh ().
35815         (fixed_convert_from_real): Likewise.
35816
35817 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
35818
35819         PR target/79514
35820         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
35821
35822 2017-03-03  Richard Biener  <rguenther@suse.de>
35823
35824         PR middle-end/79818
35825         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
35826         TYPE_OVERFLOW_UNDEFINED check.
35827
35828 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35829
35830         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
35831         numbers.
35832         (vector_ae_<mode>_p): Likewise.
35833         (vector_nez_<mode>_p): Likewise.
35834         (vector_ne_v2di_p): Likewise.
35835         (vector_ae_v2di_p): Likewise.
35836         (vector_ne_<mode>_p): Likewise.
35837         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
35838         numbers.
35839         (vsx_tsqrt<mode>2_fe): Likewise.
35840
35841 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
35842
35843         PR target/79514
35844         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
35845
35846 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
35847
35848         PR rtl-optimization/79780
35849         * cprop.c (one_cprop_pass): When second and further conditional trap
35850         in a single basic block is turned into an unconditional trap, turn it
35851         into a deleted note to avoid RTL verification failures.
35852
35853 2017-03-02  Richard Biener  <rguenther@suse.de>
35854
35855         * fold-const.c (const_binop): Use ulow () instead of elt (0).
35856
35857 2017-03-02  Richard Biener  <rguenther@suse.de>
35858
35859         PR tree-optimization/79345
35860         PR c++/42000
35861         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
35862         param and abort the walk, returning -1 if it is hit.
35863         (walk_aliased_vdefs): Take a limit param and pass it on.
35864         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
35865         defaulting to 0 and return a signed int.
35866         * tree-ssa-uninit.c (struct check_defs_data): New struct.
35867         (check_defs): New helper.
35868         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
35869         about uninitialized memory.
35870         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
35871         bogus uninitialized warning.
35872         (fixed_convert_from_real): Likewise.
35873
35874 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
35875
35876         PR tree-optimization/66768
35877         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
35878         iv_use if base object can't be determined.
35879
35880 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
35881
35882         PR tree-optimization/79345
35883         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
35884         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
35885         (get_pattern_stats): Initialize it.
35886         * genemit.c (gen_expand): Verify match_scratch numbers come after
35887         match_operand/match_dup numbers.
35888         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
35889         match_scratch numbers.
35890         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
35891         Likewise.
35892         * config/s390/s390.md (trunctdsd2): Likewise.
35893
35894 2017-03-02  Richard Biener  <rguenther@suse.de>
35895
35896         * wide-int.h (wide_int_storage::operator=): Implement in terms
35897         of wi::copy.
35898
35899 2017-03-02  Richard Biener  <rguenther@suse.de>
35900
35901         PR tree-optimization/79777
35902         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
35903         the to insert expression to sth existing.
35904
35905 2017-03-01  Martin Sebor  <msebor@redhat.com>
35906
35907         PR middle-end/79692
35908         * gimple-ssa-sprintf.c
35909         (directive::known_width_and_precision): New function.
35910         (format_integer): Use it.
35911         (get_mpfr_format_length): Consider the full range of precision
35912         when computing %g output with the # flag.  Set the likely byte
35913         count to 3 rather than 1 when precision is indeterminate.
35914         (format_floating): Correct the lower bound of precision.
35915
35916 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35917
35918         * doc/invoke.texi: Document default code model for 64-bit Linux.
35919
35920 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35921
35922         PR target/79752
35923         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
35924         udiv rather than div since input pattern is unsigned.
35925
35926 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
35927
35928         * config/i386/i386.c (print_reg): Warn for values of
35929         unsupported size in integer register.
35930
35931 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
35932
35933         PR target/79439
35934         * config/rs6000/predicates.md (current_file_function_operand): Do
35935         not allow self calls to be local if the function is replaceable.
35936
35937 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35938
35939         PR target/79395
35940         * config/rs6000/altivec.h (vec_ctz and others): Change the
35941         preprocessor macro that controls conditional compilation from
35942         _ARCH_PWR9 to __POWER9_VECTOR__.
35943         (vec_all_ne): Change parameterization of __altivec_scalar_pred
35944         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
35945         control (instead of _ARCH_PWR9 control) so that template
35946         definition uses power9-specific function.
35947         (vec_any_eq): Likewise.
35948         (vec_all_ne): Change macro definition to use a power9-specific
35949         expansion under #ifdef __POWER9_VECTOR__ control (instead of
35950         _ARCH_PWR9 control).
35951         (vec_any_eq) Likewise.
35952         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
35953         expansion for CMPNEF to remove support for xvcmpnesp instruction.
35954         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
35955         support for xvcmpnedp instruction.
35956         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
35957         macro expansion so that Power9 implementation of vec_all_ne does
35958         not use the AltiVec predicate framework.
35959         (VCMPNEH_P): Likewise.
35960         (VCMPNEW_P): Likewise.
35961         (VCMPNED_P): Likewise.
35962         (VCMPNEFP_P): Likewise.
35963         (VCMPNEDP_P): Likewise.
35964         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
35965         implementation of vec_any_eq to not use AltiVec predicate
35966         framework.
35967         (VCMPAEH_P): Likewise.
35968         (VCMPAEW_P): Likewise.
35969         (VCMPAED_P): Likewise.
35970         (VCMPAEFP_P): Likewise.
35971         (VCMPAEDP_P): Likewise.
35972         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
35973         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
35974         not use the AltiVec predicate framework.
35975         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
35976         of vec_any_eq to not use AltiVec predicate framework.
35977         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
35978         support for predefined __POWER9_VECTOR__ macro to indicate that
35979         Power9 instruction selection is enabled.
35980         (altivec_overloaded_builtins): Remove extraneous
35981         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
35982         function argument types RS6000_BTI_bool_V16QI and
35983         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
35984         entry for overloaded function argument types RS6000_BTI_bool_V4SI
35985         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
35986         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
35987         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
35988         Power9 for implementations of vec_cmpne.  Change the signature for
35989         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
35990         (representing vec_all_ne) to remove the previously described first
35991         argument of type RS6000_BTI_INTSI, as this was an artifact of
35992         reliance on the AltiVec predicate framework, which is no longer
35993         used in the implementation of these functions.  Add
35994         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
35995         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
35996         since, unlike the AltiVec predicate framework implementation, we
35997         do not share function descriptors between vec_alle and vec_anyeq.
35998         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
35999         set of modes that receive special treatment even when
36000         TARGET_P9_VECTOR is true.  The special treatment emits code that
36001         does not depend on Power9 instructions.
36002         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
36003         define_expand to not rely on AltiVec predicate framework.
36004         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36005         function.
36006         (vector_ne_v2di_p): Change this define_expand to not rely on
36007         AltiVec predicate framework.
36008         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
36009         function.
36010         (vector_ne_<mode>_p): Change this define_expand to not rely on
36011         AltiVec predicate framework.
36012         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36013         function.
36014         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
36015         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
36016         define_insn pattern.
36017         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
36018         define_insn pattern because the xvcmpne<VSs>. instruction is not
36019         supported.
36020         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
36021         instruction is not supported.
36022
36023 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36024
36025         * config/nvptx/nvptx.c: Include intl.h.
36026
36027 2017-03-01  Martin Jambor  <mjambor@suse.cz>
36028
36029         PR lto/78140
36030         * ipa-prop.h (ipa_bits): Removed field known.
36031         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
36032         to pointers.  Adjusted their comments to warn about their sharing.
36033         (ipcp_transformation_summary): Change bits to a vector of pointers.
36034         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
36035         (ipa_get_ipa_bits_for_value): Declare.
36036         * tree-vrp.h (value_range): Mark as GTY((for_user)).
36037         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
36038         (ipa_bits_hash_table): Likewise.
36039         (ipa_vr_ggc_hash_traits): Likewise.
36040         (ipa_vr_hash_table): Likewise.
36041         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
36042         being pointers and vr_known being removed.
36043         (ipa_set_jf_unknown): Likewise.
36044         (ipa_get_ipa_bits_for_value): New function.
36045         (ipa_set_jfunc_bits): Likewise.
36046         (ipa_get_value_range): New overloaded functions.
36047         (ipa_set_jfunc_vr): Likewise.
36048         (ipa_compute_jump_functions_for_edge): Use the above functions to
36049         construct bits and vr parts of jump functions.
36050         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
36051         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36052         exist.
36053         (ipcp_grow_transformations_if_necessary): Also allocate
36054         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36055         exist.
36056         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
36057         them.  Fix too long lines.
36058         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
36059         vr_known being removed.
36060         (ipa_read_jump_function): Use new setter functions to construct bits
36061         and vr parts of jump functions or set them to NULL.
36062         (write_ipcp_transformation_info): Adjust for bits being pointers.
36063         (read_ipcp_transformation_info): Likewise.
36064         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
36065         space.
36066         Include gt-ipa-prop.h.
36067         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
36068         being pointers.
36069         (ipcp_store_bits_results): Likewise.
36070         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
36071         Do not write to existing jump functions but use a temporary instead.
36072
36073 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36074
36075         PR c++/79681
36076         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
36077         attempt to use its first operand as BIT_FIELD_REF base.
36078
36079 2017-03-01  Richard Biener  <rguenther@suse.de>
36080
36081         PR middle-end/79721
36082         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
36083         interpolating formula in wrapping arithmetic.
36084         (chrec_apply): Convert chrec_evaluate return value to wanted type.
36085
36086 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36087
36088         PR tree-optimization/79734
36089         * tree-vect-generic.c (expand_vector_condition): Optimize
36090         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
36091         Handle VEC_COND_EXPR where comparison has different inner width from
36092         type's inner width.
36093
36094 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
36095
36096         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
36097         markup, and similar issues.  Remove @opindex entries for things
36098         that aren't options.  Add missing -mmpy-option entries.
36099
36100 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36101
36102         PR tree-optimization/79737
36103         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
36104         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
36105         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
36106         instead of byte_size.  Formatting fix.
36107         (shift_bytes_in_array_right): Formatting fix.
36108
36109 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
36110
36111         PR target/79749
36112         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
36113         condition on optimize for the leaf function test.
36114
36115 2017-02-28  Martin Liska  <mliska@suse.cz>
36116
36117         PR lto/79625
36118         * read-rtl-function.c (function_reader::handle_unknown_directive):
36119         Bail out when one uses -flto.
36120
36121 2017-02-28  Martin Liska  <mliska@suse.cz>
36122
36123         * common.opt: Replace space with tabular for options of <number>
36124         type.
36125         * config/i386/i386.opt: Show <number> value for
36126         -mlarge-data-threshold.
36127         * opts.c (print_filtered_help): Do not display number in hexadecimal
36128         format.
36129
36130 2017-02-28  Martin Liska  <mliska@suse.cz>
36131
36132         * common.opt: Fix --help=option -Q for options which are of
36133         an enum type.
36134
36135 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
36136
36137         * config/i386/i386.c (print_reg): Error out for values
36138         of 8-bit size in invalid integer register.
36139
36140 2017-02-28  Martin Sebor  <msebor@redhat.com>
36141
36142         PR tree-optimization/79691
36143         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
36144
36145 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36146
36147         PR target/79729
36148         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
36149         gcc_unreachable with output_operand_lossage.
36150
36151 2017-02-28  Richard Biener  <rguenther@suse.de>
36152
36153         PR tree-optimization/79740
36154         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
36155         inserts.
36156         (visit_nary_op): Insert the nary into the hashtable if we
36157         pattern-matched sth.
36158         * tree-ssa-pre.c (eliminate_insert): Robustify.
36159
36160 2017-02-28  Richard Biener  <rguenther@suse.de>
36161
36162         PR middle-end/79731
36163         * fold-const.c (decode_field_reference): Reject out-of-bound
36164         accesses.
36165
36166 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36167
36168         * config/i386/i386.c: Include intl.h.
36169         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
36170         instead of just cond ? "..." : "...".
36171         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
36172         * coverage.c (read_counts_file): Likewise.
36173         * omp-offload.c: Include intl.h.
36174         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
36175         of just cond ? "..." : "...".
36176         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
36177         of just cond ? "..." : "...".
36178
36179 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
36180
36181         PR target/79742
36182         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
36183         entry, if present.
36184         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
36185         'tune for' CPU name.
36186         * config/arm/arm-cpu-data.h: Regenerated.
36187
36188 2017-02-28  Richard Biener  <rguenther@suse.de>
36189
36190         PR tree-optimization/79732
36191         * tree-inline.c (expand_call_inline): Do not shadow var.
36192
36193 2017-02-28  Richard Biener  <rguenther@suse.de>
36194
36195         PR tree-optimization/79723
36196         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
36197         address-space properly.
36198
36199 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
36200
36201         * doc/optinfo.texi (Optimization groups): Fix option used for
36202         OPTGROUP_ALL.
36203         * doc/invoke.texi (-fopt-info): Document "omp".
36204         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
36205         (OPTGROUP_ALL): Add OPTGROUP_OMP.
36206         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
36207         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
36208         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
36209
36210         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
36211         all users.
36212         * dumpfile.c (optgroup_options): Instead of "openmp", associate
36213         OPTGROUP_OMP with "omp".
36214
36215 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
36216
36217         PR target/79544
36218         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
36219         for arithmetic shift of unsigned V2DI.
36220
36221 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
36222
36223         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
36224         arc/linux.h headers.
36225         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
36226         (LINK_SPEC): Likewise.
36227         (ARC_TLS_EXTRA_START_SPEC): Likewise.
36228         (EXTRA_SPECS): Likewise.
36229         (STARTFILE_SPEC): Likewise.
36230         (ENDFILE_SPEC): Likewise.
36231         (LIB_SPEC): Likewise.
36232         (TARGET_SDATA_DEFAULT): Likewise.
36233         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
36234         (MULTILIB_DEFAULTS): Likewise.
36235         (DWARF2_UNWIND_INFO): Likewise.
36236         * config/arc/big.h: New file.
36237         * config/arc/elf.h: Likewise.
36238         * config/arc/linux.h: Likewise.
36239         * config/arc/t-uClibc: Remove.
36240
36241 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
36242
36243         PR tree-optimization/77536
36244         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
36245         (tree_transform_and_unroll_loop): Use above function to compute the
36246         estimated niter of unrolled loop and use it when scaling profile.
36247         Also use count info rather than frequency if it's non-zero.
36248         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
36249         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
36250         (vect_transform_loop): Call above function.
36251
36252 2017-02-27  Richard Biener  <rguenther@suse.de>
36253
36254         PR tree-optimization/45397
36255         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
36256         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
36257         (visit_nary_op): Add pattern matching for CSEing sign-changed
36258         or truncated operations with wider ones.
36259
36260 2017-02-27  Richard Biener  <rguenther@suse.de>
36261
36262         PR tree-optimization/79690
36263         * tree-vect-stmts.c (vectorizable_store): Use vector type
36264         built from the DR with address-space.
36265
36266 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
36267
36268         * doc/invoke.texi (Optimize Options): Refine the description
36269         of asan-use-after-return.
36270
36271 2017-02-25  Alan Modra  <amodra@gmail.com>
36272
36273         PR rtl-optimization/79584
36274         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
36275         base, not ad->base_term, the reg within base.  Remove assertion
36276         that ad->base == ad->base_term.  Replace gen_int_mode using
36277         bogus mode with const0_rtx.
36278
36279 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
36280
36281         PR middle-end/79396
36282         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
36283         FMA_EXPR like tcc_binary or tcc_unary.
36284
36285         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
36286
36287         PR debug/77589
36288         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
36289         bitfield.
36290         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
36291         (output_loc_operands): Handle DW_OP_call_ref and
36292         DW_OP_GNU_variable_value.
36293         (struct variable_value_struct): New type.
36294         (struct variable_value_hasher): Likewise.
36295         (variable_value_hash): New variable.
36296         (string_types): Remove.
36297         (copy_loc_descr): New function.
36298         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
36299         (prepend_loc_descr_to_each): New function.
36300         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
36301         instead of add_loc_descr_to_each if the first argument is single
36302         location list and the second has multiple.
36303         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
36304         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
36305         when looking for variable value which doesn't have other location info.
36306         (loc_list_from_tree): Formatting fix.
36307         (gen_array_type_die): Simplify DW_AT_string_length handling.
36308         (adjust_string_types): Remove.
36309         (gen_subprogram_die): Don't call adjust_string_types nor test/set
36310         string_types.  Call resolve_variable_values.
36311         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
36312         (resolve_addr_in_expr): Likewise.  Add A argument.
36313         (copy_deref_exprloc): Remove deref argument.  Adjust for the
36314         original expression being DW_OP_GNU_variable_value with optionally
36315         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
36316         optionally after it.
36317         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
36318         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
36319         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
36320         (variable_value_hasher::hash, variable_value_hasher::equal): New
36321         methods.
36322         (resolve_variable_value_in_expr, resolve_variable_value,
36323         resolve_variable_values, note_variable_value_in_expr,
36324         note_variable_value): New functions.
36325         (dwarf2out_early_finish): Call note_variable_value on all toplevel
36326         DIEs.
36327
36328 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
36329
36330         PR c/79677
36331         * opts.h (handle_generated_option): Add GENERATED_P argument.
36332         * opts-common.c (handle_option): Adjust function comment.
36333         (handle_generated_option): Add GENERATED_P argument, pass it to
36334         handle_option.
36335         (control_warning_option): Pass false to handle_generated_option
36336         GENERATED_P.
36337         * opts.c (maybe_default_option): Pass true to handle_generated_option
36338         GENERATED_P.
36339         * optc-gen.awk: Likewise.
36340
36341 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36342
36343         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
36344         a REG, look at the REG it is a SUBREG of.
36345         (splitter for cmpeqsi_t): Ditto.
36346
36347 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36348
36349         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
36350         the special USEs with the pattern of the insn, not the insn itself.
36351
36352 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
36353
36354         PR target/79473
36355         * doc/invoke.texi: Document -mload-store-pairs.
36356
36357 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36358             Sandra Loosemore  <sandra@codesourcery.com>
36359
36360         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
36361         argument isn't a CONST_INT.
36362         (nios2_alternate_compare_const): Assert op is a CONST_INT.
36363         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
36364         (nios2_validate_compare): Bypass alternate compare logic if *op2
36365         is not a CONST_INT.
36366         (ldstwm_operation_p): Return false if first_base is not a REG or
36367         if first_offset is not a CONST_INT.
36368
36369 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36370
36371         * config/cris/cris.md: Use correct operand in a define_peephole2.
36372
36373 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36374
36375         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
36376
36377 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36378
36379         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
36380         this_insn if it is an INSN or JUMP_INSN.
36381         (force_offsettable): Look at base, not at addr.
36382         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
36383         on things that aren't necessarily CONST_INTs.
36384
36385 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
36386
36387         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
36388         -mfpmath=sse is the default also for x86-32 targets with SSE2
36389         instruction set when @option{-ffast-math} is enabled
36390
36391 2017-02-24  Jeff Law  <law@redhat.com>
36392
36393         PR rtl-optimizatoin/79286
36394         * ira.c (update_equiv_regs): Drop may_trap_p exception to
36395         dominance test.
36396
36397 2017-02-24  Richard Biener  <rguenther@suse.de>
36398
36399         PR tree-optimization/79389
36400         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
36401         debug insns.
36402
36403 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
36404
36405         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
36406         function comment to reflect reality.
36407         (loop_exits_before_overflow): Fix typo in function description.
36408
36409 2017-02-24  Richard Biener  <rguenther@suse.de>
36410
36411         PR tree-optimization/79389
36412         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
36413         properly that a threading opportunity exists.  Detect conditional
36414         copy/constant propagation opportunities.
36415
36416 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
36417
36418         * config/visium/visium.md (type): Add trap.
36419         (b): New mode attribute.
36420         (*btst): Rename into...
36421         (*btst<mode>): ...this and adjust.
36422         (*cbranchsi4_btst_insn): Rename into...
36423         (*cbranch<mode>4_btst_insn): ...this and adjust.
36424         (trap): New define_insn.
36425
36426 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
36427
36428         PR tree-optimization/79389
36429         * ifcvt.c (struct noce_if_info): Add rev_cond field.
36430         (noce_reversed_cond_code): New function.
36431         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
36432         reversed_comparison_code.  Formatting fix.
36433         (noce_try_store_flag): Test rev_cond != NULL in addition to
36434         reversed_comparison_code.
36435         (noce_try_store_flag_constants): Likewise.
36436         (noce_try_store_flag_mask): Likewise.
36437         (noce_try_addcc): Use rev_cond if non-NULL instead of
36438         reversed_comparison_code.
36439         (noce_try_cmove_arith): Likewise.  Formatting fixes.
36440         (noce_try_minmax, noce_try_abs): Clear rev_cond.
36441         (noce_find_if_block): Initialize rev_cond.
36442         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
36443         instead of false as last argument never attempt to reverse it
36444         afterwards.
36445
36446 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
36447
36448         PR tree-optimization/79663
36449         * tree-predcom.c (combine_chains): Process refs in reverse order
36450         only for ZERO length chains, and add explaining comment.
36451
36452 2017-02-23  Jeff Law  <law@redhat.com>
36453
36454         PR tree-optimization/79578
36455         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
36456         in call to operand_equal_p.
36457
36458 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
36459
36460         PR target/71017
36461         * config/i386/cpuid.h: Fix another undefined behavior.
36462
36463 2017-02-23  Richard Biener  <rguenther@suse.de>
36464
36465         PR tree-optimization/79683
36466         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
36467         vector types for data-refs.
36468
36469 2017-02-23  Martin Liska  <mliska@suse.cz>
36470
36471         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
36472
36473 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
36474
36475         PR middle-end/79665
36476         * internal-fn.c (get_range_pos_neg): Moved to ...
36477         * tree.c (get_range_pos_neg): ... here.  No longer static.
36478         * tree.h (get_range_pos_neg): New prototype.
36479         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
36480         are known to be in between 0 and signed maximum inclusive, try to
36481         expand both unsigned and signed divmod and use the cheaper one from
36482         those.
36483
36484 2017-02-22  Jeff Law  <law@redhat.com>
36485
36486         PR tree-optimization/79578
36487         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
36488         to compare base operands.
36489
36490 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
36491
36492         PR target/79211
36493         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
36494         gpc_reg_operand instead of fpr_reg_operand.
36495
36496 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
36497
36498         * config/mips/mips.c (mips_return_in_memory): Force FP
36499         vector types to be returned in memory for o32 ABI.
36500
36501 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
36502
36503         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
36504         instead of DW_TAG_member for static data member declarations and don't
36505         set no_linkage_name for static inline data members.
36506         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
36507         to DW_TAG_member.
36508
36509 2017-02-22  Martin Liska  <mliska@suse.cz>
36510
36511         * doc/invoke.texi: Replace inequality signs with square brackets
36512         for -Wnormalized.
36513
36514 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
36515
36516         PR target/78660
36517         * lra-constraints.c (simplify_operand_subreg): Handle
36518         WORD_REGISTER_OPERATIONS targets.
36519
36520 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
36521
36522         PR target/70465
36523         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
36524         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
36525         elimination by swapping fld*.
36526
36527 2017-02-22  Richard Biener  <rguenther@suse.de>
36528
36529         PR tree-optimization/79673
36530         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
36531         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
36532         irrelevant address-space qualifiers and avoiding a
36533         ADDR_SPACE_CONVERT_EXPR from fold_convert.
36534
36535 2017-02-22  Richard Biener  <rguenther@suse.de>
36536
36537         PR tree-optimization/79666
36538         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
36539         to not symbolically negate if that may introduce undefined
36540         overflow.
36541
36542 2017-02-22  Martin Liska  <mliska@suse.cz>
36543
36544         PR lto/79587
36545         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
36546         * data-streamer-out.c (streamer_write_gcov_count_stream):
36547         Likewise.
36548         * value-prof.c (stream_out_histogram_value): Make assert more
36549         precise based on type of counter.
36550
36551 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
36552
36553         PR target/79593
36554         * config/i386/i386.md (standard_x87sse_constant_load splitter):
36555         Use nonimmediate_operand instead of memory_operand for operand 1.
36556         (float-extend standard_x87sse_constant_load splitter): Ditto.
36557
36558 2017-02-21  Jeff Law  <law@redhat.com>
36559
36560         PR tree-optimization/79621
36561         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
36562         blocks with edges to themselves.
36563
36564 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36565
36566         PR target/79633
36567         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
36568         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
36569         Use gimple_call_builtin_p.
36570
36571         PR target/79570
36572         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
36573         on temporarily removed DEBUG_INSNs.
36574
36575         PR tree-optimization/79649
36576         * tree-loop-distribution.c (classify_partition): Give up on
36577         non-generic address space loads/stores.
36578
36579 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
36580
36581         * doc/loop.texi (Loop manipulation): Remove nonexistent
36582         tree_ssa_loop_version from the documentation.
36583         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
36584
36585 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36586
36587         PR target/79494
36588         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
36589         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
36590         * config/rs6000/rs6000.c: Include except.h.
36591         (rs6000_expand_split_stack_prologue): Call
36592         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
36593
36594 2017-02-21  Martin Jambor  <mjambor@suse.cz>
36595
36596         PR lto/79579
36597         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
36598         have been analyzed.
36599
36600 2017-02-21  Martin Jambor  <mjambor@suse.cz>
36601
36602         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
36603         for backward compatibility only.
36604         * doc/invoke.texi (Option Summary): Remove all references to
36605         -fipa-cp-alignment.
36606
36607 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
36608
36609         PR target/78660
36610         Revert:
36611         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36612
36613         * lra-constraints.c (curr_insn_transform): Handle
36614         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
36615
36616 2017-02-21  Martin Liska  <mliska@suse.cz>
36617
36618         * config/i386/i386.opt: Replace -masm-dialect with -masm.
36619
36620 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
36621
36622         PR translation/79638
36623         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
36624
36625 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
36626
36627         PR ada/67205
36628         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
36629         (arm_function_ok_for_sibcall): Return false for an indirect call by
36630         descriptor if all the argument registers are used.
36631         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
36632         alignment of the function.
36633
36634 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36635
36636         PR tree-optimization/61441
36637         * simplify-rtx.c (simplify_const_unary_operation): For
36638         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
36639         the sNaN unmodified.
36640
36641 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36642
36643         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
36644         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
36645         instead of SYSTEM_HEADER_DIR.
36646
36647 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
36648             Martin LiÅ¡ka  <mliska@suse.cz>
36649
36650         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
36651         Fix typos and grammar, use active voice, and clarify.
36652
36653 2017-02-20  Marek Polacek  <polacek@redhat.com>
36654
36655         PR middle-end/79537
36656         * gimplify.c (gimplify_expr): Handle unused *&&L;.
36657
36658         PR sanitizer/79558
36659         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
36660
36661 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
36662
36663         PR target/79568
36664         * config/i386/i386.c (ix86_expand_builtin): Handle
36665         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
36666         ix86_builtins_isa[fcode].isa as a requirement of those
36667         flags and any other flag in the bitmask.
36668         (ix86_init_mmx_sse_builtins): Use 0 instead of
36669         ~OPTION_MASK_ISA_64BIT as mask.
36670         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
36671         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
36672         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
36673         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
36674
36675 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36676
36677         PR target/78012
36678         * lra-constraints.c (split_reg): Check requested split mode
36679         is supported by the register.
36680
36681 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36682
36683         * lra-constraints.c (simplify_operand_subreg): Remove early
36684         return false.
36685
36686 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36687
36688         PR target/78660
36689         * lra-constraints.c (curr_insn_transform): Tighten condition
36690         for converting SUBREG reloads from OP_OUT to OP_INOUT.
36691
36692 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36693
36694         PR target/78660
36695         * lra-constraints.c (curr_insn_transform): Handle
36696         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
36697
36698 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
36699
36700         Revert:
36701         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
36702
36703         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
36704
36705 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
36706
36707         PR c++/69523
36708         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
36709         description.
36710
36711 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36712
36713         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
36714         for FMA_EXPR.
36715
36716 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
36717
36718         * final.c (last_columnnum, override_columnnum): New variables.
36719         (final_start_function): Set last_columnnum, pass it to begin_prologue
36720         hook and pass 0 to dwarf2out_begin_prologue.
36721         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
36722         to source_line debug hook.
36723         (notice_source_line): Compute last_columnnum and for debug_column_info
36724         return true on column changes.
36725         * debug.h (struct gcc_debug_hooks): Add column argument to
36726         source_line and begin_prologue hooks.
36727         (debug_nothing_int_charstar_int_bool): Remove prototype.
36728         (debug_nothing_int_int_charstar,
36729         debug_nothing_int_int_charstar_int_bool): New prototypes.
36730         (dwarf2out_begin_prologue): Add column argument.
36731         * debug.c (do_nothing_debug_hooks): Adjust source_line and
36732         begin_prologue hooks.
36733         (debug_nothing_int_charstar_int_bool): Remove.
36734         (debug_nothing_int_int_charstar,
36735         debug_nothing_int_int_charstar_int_bool): New functions.
36736         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
36737         through to dwarf2out_source_line.
36738         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
36739         (dwarf2out_source_line): Add column argument, emit it if requested.
36740         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
36741         arguments.
36742         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
36743         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
36744         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
36745         through to dwarf2out_begin_prologue.
36746         (vmsdbgout_source_line): Add column argument, pass it through to
36747         dwarf2out_source_line.
36748         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
36749         dbxout_source_line caller.
36750         (dbxout_source_line): Add column argument.
36751
36752         * common.opt (gno-column-info, gcolumn-info): New options.
36753         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
36754         (check_die): Also test for multiple DW_AT_decl_column attributes.
36755         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
36756         DW_AT_decl_column if requested.
36757         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
36758         if requested.
36759         (gen_variable_die): Likewise.
36760         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
36761         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
36762
36763         PR target/79569
36764         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
36765         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
36766         (ix86_handle_option): Handle OPT_m3dnowa.
36767         * doc/invoke.texi (-m3dnowa): Document.
36768         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
36769         -m3dnowa instead of -m3dnow -march=athlon.
36770
36771         PR target/79559
36772         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
36773         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
36774
36775 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36776
36777         PR target/79261
36778         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
36779         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
36780         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
36781         generator for vsx_xxpermdi_<mode>_be.
36782         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
36783         force big-endian semantics.
36784         (vsx_xxpermdi_<mode>_be): New define_expand with same
36785         implementation as previous version of vsx_xxpermdi_<mode>.
36786
36787 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
36788
36789         PR tree-optimization/79327
36790         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
36791         variable, its initialization and use.
36792
36793 2017-02-17  Julia Koval  <julia.koval@intel.com>
36794
36795         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
36796         (OPTION_MASK_ISA_PKU_UNSET): New.
36797         (ix86_handle_option): Handle -mrdpid.
36798         * config/i386/cpuid.h (bit_RDPID): New.
36799         * config/i386/driver-i386.c (host_detect_local_cpu):
36800         Detect RDPID feature.
36801         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
36802         * config/i386/i386-c.c (ix86_target_macros_internal):
36803         Handle RDPID flag.
36804         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
36805         (ix86_valid_target_attribute_inner_p): Add "rdpid".
36806         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
36807         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
36808         * config/i386/i386.md (define_insn "rdpid"): New.
36809         * config/i386/i386.opt Add -mrdpid.
36810         * config/i386/immintrin.h (_rdpid_u32): New.
36811
36812 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
36813
36814         PR rtl-optimization/79541
36815         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
36816         instead of transforming it into USE.
36817
36818 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
36819
36820         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
36821         If HONOR_SNANS (SFmode) force the input to a register.
36822         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
36823         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
36824         an frsp or similar insn.
36825
36826 2017-02-17  Martin Liska  <mliska@suse.cz>
36827
36828         PR rtl-optimization/79577
36829         * params.def (selsched-max-sched-times): Increase minimum to 1.
36830
36831 2017-02-17  Martin Liska  <mliska@suse.cz>
36832
36833         PR rtl-optimization/79574
36834         * gcse.c (want_to_gcse_p): Prevent integer overflow.
36835
36836 2017-02-17  Martin Liska  <mliska@suse.cz>
36837
36838         PR tree-optimization/79529
36839         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
36840         ssa_defined_default_def_p to handle cases which are implicitly
36841         defined.
36842         * tree-ssa.c (ssa_defined_default_def_p): New function.
36843         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
36844         which are implicitly defined.
36845         * tree-ssa.h (ssa_defined_default_def_p): Declare.
36846
36847 2017-02-17  Richard Biener  <rguenther@suse.de>
36848
36849         PR middle-end/79576
36850         * params.def (max-ssa-name-query-depth): Limit to 10.
36851
36852 2017-02-17  Richard Biener  <rguenther@suse.de>
36853
36854         PR tree-optimization/79552
36855         * tree-ssa-structalias.c (visit_loadstore): Properly verify
36856         default defs.
36857
36858 2017-02-17  Richard Biener  <rguenther@suse.de>
36859
36860         PR bootstrap/79567
36861         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
36862
36863 2017-02-17  Marek Polacek  <polacek@redhat.com>
36864
36865         PR middle-end/79536
36866         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
36867         (fold_negate_expr): New wrapper.
36868
36869 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
36870
36871         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
36872         Correct terminology and de-emphasize pre-standard behavior.
36873
36874 2017-02-16  Alan Modra  <amodra@gmail.com>
36875
36876         PR rtl-optimization/79286
36877         * ira.c (def_dominates_uses): New function.
36878         (update_equiv_regs): Don't create an equivalence for insns that
36879         may trap where the register def does not dominate the use.
36880
36881 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
36882
36883         PR rtl-optimization/78127
36884         * lra.c (lra): Call lra_eliminate before finish the loop after
36885         lra_constraint.
36886
36887 2017-02-16  Richard Biener  <rguenther@suse.de>
36888
36889         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
36890         isl/isl_val.h.
36891         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
36892         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
36893         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
36894         (isl_val_int_from_wi): New function.
36895         (extract_affine_gmp): Rename to ...
36896         (extract_affine_wi): ... this, take a widest_int.
36897         (extract_affine_int): Just wrap extract_affine_wi.
36898         (add_param_constraints): Use isl_val_int_from_wi.
36899         (add_loop_constraints): Likewise, and extract_affine_wi.
36900
36901 2017-02-15  Jeff Law  <law@redhat.com>
36902
36903         PR middle-end/79521
36904         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
36905         ira_init_register_move_cost_if_necessary.
36906
36907 2017-02-15  Martin Sebor  <msebor@redhat.com>
36908
36909         PR middle-end/32003
36910         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
36911         removed in a prior commit.
36912
36913 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
36914
36915         PR tree-optimization/79347
36916         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
36917         counters during peeling.
36918
36919 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
36920
36921         * Makefile.in (site.exp): Remove "set ISLVER".
36922
36923 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
36924
36925         PR target/79487
36926         * real.c (real_from_integer): Call real_convert even for decimal.
36927
36928 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
36929
36930         PR target/79421
36931         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
36932
36933 2017-02-14  Andrew Pinski  <apinski@cavium.com>
36934
36935         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
36936         cores and change the partno/implementer to be correct.
36937         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
36938         the 'B" as the implementer.
36939         * config/aarch64/aarch64-tune.md: Regenerate.
36940
36941 2017-02-14  Carl Love  <cel@us.ibm.com>
36942
36943         * config/rs6000/rs6000.c: Add case statement entry to make the
36944         xvcvuxdsp built-in argument unsigned.
36945         * config/rs6000/vsx.md: Fix the source and return operand types so they
36946         match the instruction definitions from the ISA document.  Fix typo
36947         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
36948         statement.
36949
36950 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
36951
36952         PR target/79282
36953         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
36954         member early_clobber_alts.
36955         * lra-lives.c (reg_early_clobber_p): New.
36956         (process_bb_lives): Use it.
36957         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
36958         (debug_operand_data): Initialize early_clobber_alts.
36959         (setup_operand_alternative): Set up early_clobber_alts.
36960         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
36961         alternatives to new_insn_reg.
36962         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
36963         it.
36964         (lra_update_insn_regno_info): Pass the new arg.
36965
36966 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
36967
36968         PR middle-end/79505
36969         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
36970         (new_oacc_loop_raw): Don't clear already cleared fields.
36971
36972         PR target/79481
36973         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
36974         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
36975         _mm512_prefetch_i64gather_ps): New inline functions and macros.
36976
36977 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
36978
36979         PR target/79495
36980         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
36981
36982 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
36983
36984         PR target/79498
36985         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
36986         the extra instruction to the right place to store 128-bit constant
36987         when needed.
36988
36989 2017-02-14  Martin Sebor  <msebor@redhat.com>
36990
36991         PR middle-end/79448
36992         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
36993           warning for strings of unknown length.
36994
36995 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
36996
36997         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
36998
36999 2017-02-14  Jeff Law  <law@redhat.com>
37000
37001         PR target/79404
37002         * ira-costs.c (scan_one_insn): Initialize register move costs
37003         for pseudos seen in USE/CLOBBER insns.
37004
37005         PR tree-optimization/79095
37006         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
37007         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
37008         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
37009         if the operands are known to be not equal, then the resulting range
37010         is ~[0,0].
37011         (intersect_ranges): If the new range is ~[0,0] and the old range is
37012         wide, then prefer ~[0,0].
37013         * tree-vrp.c (overflow_comparison_p_1): New function.
37014         (overflow_comparison_p): New function.
37015         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
37016         if NAME is used in an overflow test.
37017         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
37018         overflow check that can be expressed as an equality test, then adjust
37019         ops to be that equality test.
37020
37021 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37022
37023         * config/s390/s390-builtin-types.def: Remove flags argument.
37024         * config/s390/s390.c (s390_init_builtins): Likewise.
37025
37026 2017-02-14  Martin Liska  <mliska@suse.cz>
37027
37028         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
37029         vector.  Fix trailing white spaces.
37030
37031 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
37032
37033         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
37034         HFmode.
37035
37036 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37037
37038         PR rtl-optimization/68664
37039         * config/arm/arm.c (arm_sched_can_speculate_insn):
37040         New function.  Declare prototype.
37041         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37042
37043 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37044
37045         PR rtl-optimization/68664
37046         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
37047         New function.
37048         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37049
37050 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
37051
37052         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
37053         max skip bytes for function, loop and jump.
37054
37055 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37056
37057         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
37058         ABS_EXPR for gimple dump.
37059
37060 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37061
37062         PR target/79462
37063         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
37064
37065         PR tree-optimization/79408
37066         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
37067         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
37068         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
37069         also if rhs1 is INTEGER_CST.
37070
37071 2017-02-14  Richard Biener  <rguenther@suse.de>
37072
37073         PR middle-end/79432
37074         * tree-into-ssa.c (insert_phi_nodes): When the function can
37075         have abnormal edges rewrite SSA names with broken use-def
37076         dominance out of SSA and register them for PHI insertion.
37077
37078 2017-02-13  Martin Sebor  <msebor@redhat.com>
37079
37080         PR middle-end/79496
37081         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
37082         clearing info.nowrite flag when snprintf size argument is a range.
37083
37084 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37085
37086         * cprop.c (cprop_jump): Add missing space in string literal.
37087         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
37088         (get_constraint_for_component_ref): Likewise.
37089         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
37090         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
37091         * lra-constraints.c (process_alt_operands): Likewise.
37092         * ipa-inline.c (inline_small_functions): Likewise.
37093         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
37094         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
37095         * trans-mem.c (diagnose_tm_1_op): Likewise.
37096         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
37097         (grid_parallel_clauses_gridifiable): Likewise.
37098
37099         * config/nvptx/mkoffload.c (process): Add space in between
37100         , and %d.
37101
37102         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
37103         "MOD4_SSE_REGS" and "ALL_REGS".
37104
37105         * spellcheck.c (test_data): Add , in between "foo" and "food".
37106
37107 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37108
37109         PR target/79449
37110         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
37111         boundary crossing check and subsequent code generation agree.
37112
37113 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37114
37115         * config/aarch64/aarch64.c (has_memory_op): Delete.
37116         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
37117         has_memory_op.
37118
37119 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37120
37121         PR rtl-optimization/79388
37122         PR rtl-optimization/79450
37123         * combine.c (distribute_notes): When removing TEM_INSN for which
37124         corresponding dest has last value recorded, invalidate that last
37125         value.
37126
37127 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37128
37129         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
37130         of explicit '@'.  Add missing assembly comment marker on branch costs
37131         printout.
37132
37133 2017-02-13  Nathan Sidwell  <nathan@acm.org>
37134
37135         * gengtype-lex.l (<in_struct>): Add '/'.
37136
37137 2017-02-13  Martin Liska  <mliska@suse.cz>
37138
37139         PR c/79471
37140         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
37141
37142 2017-02-13  Richard Biener  <rguenther@suse.de>
37143
37144         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
37145         Remove.
37146         * configure: Re-generate.
37147         * config.in: Likewise.
37148         * graphite-dependences.c: Simplify as if
37149         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
37150         * graphite-isl-ast-to-gimple.c: Likewise.
37151         * graphite-optimize-isl.c: Likewise.
37152         * graphite-poly.c: Likewise.
37153         * graphite-sese-to-poly.c: Likewise.
37154         * graphite.h: Likewise.
37155         * toplev.c: Include isl/version.h and use isl_version () for
37156         printing the ISL version.
37157         * doc/install.texi: Update ISL requirement.
37158
37159 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37160
37161         * doc/standards.texi (Standards): Update reference to
37162         Objective-C 2.0.
37163
37164 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37165
37166         * doc/extend.texi (Named Address Spaces): sourceware.org now
37167         defaults to https.
37168         * doc/install.texi (Binaries): Ditto.
37169         (Specific): Ditto.
37170
37171 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37172
37173         * doc/cpp.texi: Replace "stringify"/"stringification" with C
37174         standard terminology "stringize"/"stringizing" throughout.
37175         * doc/cppinternals.texi: Likewise.
37176
37177 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37178
37179         * doc/extend.texi: Fix some spelling mistakes and typos.
37180         * doc/invoke.texi: Likewise.
37181
37182 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37183
37184         PR ipa/79224
37185         * params.def (inline-min-speedup) Change from 10 to 8.
37186
37187 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37188
37189         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
37190         4.5.
37191
37192 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37193
37194         PR ipa/79224
37195         * ipa-inline-analysis.c (get_minimal_bb): New function.
37196         (record_modified): Use it.
37197         (remap_edge_change_prob): Handle also ancestor functions.
37198
37199 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
37200
37201         * doc/contrib.texi (Contributors): Remove broken link into
37202         the Mauve CVS repository.
37203
37204 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37205
37206         PR middle-end/79454
37207         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
37208         result computation whenever lhs doesn't have vector mode, not
37209         just when it has BLKmode.
37210
37211 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37212
37213         * doc/makefile.texi (profiledbootstrap): Refer to the
37214         installation instructions only in textual form.
37215
37216 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37217
37218         PR target/79295
37219         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
37220
37221 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37222
37223         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
37224         (Specific): Update mingw-w64 reference.
37225         (Binaries): Ditto.
37226         (Specific): Remove broken link to Renesas RX processor.
37227
37228 2017-02-10  Richard Biener  <rguenther@suse.de>
37229
37230         * toplev.c (process_options): Do not mention obsolete graphite
37231         options when printing sorry message about missing graphite support.
37232         Mention -floop-nest-optimize.
37233
37234 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
37235
37236         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
37237         (vtst_p16): Likewise.
37238         (vtstq_p8): Likewise.
37239         (vtstq_p16): Likewise.
37240         (vtst_p64): New.
37241         (vtstq_p64): Likewise.
37242         * config/arm/arm_neon.h (vgetq_lane_p64): New.
37243         (vset_lane_p64): New.
37244         (vsetq_lane_p64): New.
37245
37246 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
37247
37248         PR tree-optimization/79411
37249         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
37250         stmt operands are SSA_NAMEs used in abnormal phis.
37251         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
37252         phis.
37253
37254 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37255
37256         PR ipa/70795
37257         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
37258         flag if needed.
37259
37260 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37261
37262         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
37263
37264 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
37265
37266         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
37267         to avoid warning.
37268
37269         PR c/79413
37270         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
37271         not arbitrary TREE_CONSTANT.
37272
37273         PR c/79431
37274         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
37275         "omp declare target link" attribute unless is_global_var.
37276         * omp-offload.c (find_link_var_op): Likewise.
37277
37278 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
37279             Chung-Lin Tang  <cltang@codesourcery.com>
37280
37281         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
37282         OMP_CLAUSE_TILE.
37283         (gimplify_adjust_omp_clauses): Don't delete TILE.
37284         (gimplify_omp_for): Deal with TILE.
37285         * internal-fn.c (expand_GOACC_TILE): New function.
37286         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
37287         (GOACC_TILE): New.
37288         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
37289         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
37290         element fields.
37291         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
37292         avoid DIV for outermost collapse var.
37293         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
37294         Remove out of date comments, fix whitespace.
37295         * omp-general.c (omp_extract_for_data): Deal with tiling.
37296         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
37297         adjust OLF_DIM_BASE value.
37298         (struct omp_for_data): Add tiling field.
37299         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
37300         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
37301         for auto loops.  Remove default auto determining, moved to
37302         oacc_loop_fixed_partitions.
37303         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
37304         stmts, add e_mask field.
37305         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
37306         (oacc_thread_numbers): Use oacc_dim_call.
37307         (oacc_xform_tile): New.
37308         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
37309         (finish_oacc_loop): Adjust for ifns vector.
37310         (oacc_loop_discover_walk): Append loop abstraction sites to list,
37311         add case for GOACC_TILE fns.
37312         (oacc_loop_xform_loop): Delete.
37313         (oacc_loop_process): Iterate over call list directly, and add
37314         handling for GOACC_TILE fns.
37315         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
37316         dump partitioning.
37317         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
37318         vector partitioning to outer loops.  Assign 2 partitions to loops
37319         when available. Add TILE handling.
37320         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
37321         (execite_oacc_device_lower): Process GOACC_TILE fns,
37322         ignore unknown specs.
37323         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
37324         * tree.c (omp_clause_num_ops): Adjust TILE ops.
37325         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
37326
37327 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
37328
37329         * configure.ac (ACX_BUGURL): Update.
37330         * configure: Regenerate.
37331
37332 2017-02-09  Richard Biener  <rguenther@suse.de>
37333
37334         PR tree-optimization/69823
37335         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
37336         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
37337
37338 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37339
37340         * config/arc/arc-c.def: Add __NPS400__ definition.
37341         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
37342         (TARGET_NPS400): Define.
37343
37344 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37345
37346         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
37347         file.
37348         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
37349         pointer, arch_info.
37350         (arc_cpu_types): Fill the arch_info field with a pointer into the
37351         arc_arch_types table.
37352         (arc_selected_cpu): Declare.
37353         * config/arc/arc.c (arc_selected_cpu): Make global.
37354         (arc_selected_arch): Delete.
37355         (arc_base_cpu): Delete.
37356         (arc_override_options): Remove references to deleted variables,
37357         update access to arch information.
37358         (ARC_OPT): Update access to arch information.
37359         (ARC_OPTX): Likewise.
37360         * config/arc/arc.h (arc_base_cpu): Remove declaration.
37361         (TARGET_ARC600): Update access to arch information.
37362         (TARGET_ARC601): Likewise.
37363         (TARGET_ARC700): Likewise.
37364         (TARGET_EM): Likewise.
37365         (TARGET_HS): Likewise.
37366         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
37367         information.
37368
37369 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
37370
37371         PR target/78604
37372         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
37373         condition/operands for integer GE/LE/GEU/LEU operations.
37374
37375 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
37376
37377         PR translation/79397
37378         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
37379         of AltiVec.
37380
37381 2017-02-08  Martin Jambor  <mjambor@suse.cz>
37382
37383         PR ipa/79375
37384         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
37385         whether allocation happened.
37386         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
37387         nothing was allocated.
37388
37389 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
37390
37391         PR tree-optimization/79408
37392         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
37393         constant, but SSA_NAME with a known integer range, use the minimum
37394         of that range instead of op1 to determine if modulo can be replaced
37395         with its first operand.
37396
37397 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37398
37399         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
37400
37401 2017-02-08  Richard Biener  <rguenther@suse.de>
37402
37403         PR tree-optimization/71824
37404         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
37405         Check all loops contained in the merged region.
37406
37407 2017-02-07  Andrew Pinski  <apinski@cavium.com>
37408
37409         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
37410
37411 2017-02-07  Andrew Pinski  <apinski@cavium.com>
37412
37413         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
37414         (thunderxt88): Likewise.
37415         (thunderxt81): Disable LSE and change v8.1 to v8.
37416         (thunderxt83): Likewise.
37417
37418 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
37419             Richard Biener  <rguenther@suse.de>
37420
37421         PR middle-end/79399
37422         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
37423         type from int to size_t.
37424         * ira-costs.c (struct_costs_size): Change type from int to size_t.
37425
37426 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
37427
37428         PR rtl-optimization/79386
37429         * cprop.c (bypass_conditional_jumps): Initialize
37430         bypass_last_basic_block already before splitting bbs after
37431         unconditional traps...
37432         (bypass_conditional_jumps): ... rather than here.
37433
37434         PR target/79299
37435         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
37436         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
37437         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
37438         fix -masm=intel patterns.
37439
37440 2017-02-07  Richard Biener  <rguenther@suse.de>
37441
37442         PR tree-optimization/79256
37443         PR middle-end/79278
37444         * builtins.c (get_object_alignment_2): Use min_align_of_type
37445         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
37446         and ADJUST_FIELD_ALIGN.
37447
37448         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
37449         type parameter.
37450         * doc/tm.texi: Regenerate.
37451         * stor-layout.c (layout_decl): Adjust.
37452         (update_alignment_for_field): Likewise.
37453         (place_field): Likewise.
37454         (min_align_of_type): Likewise.
37455         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
37456         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
37457         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
37458         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
37459         * config/frv/frv.c (frv_adjust_field_align): Likewise.
37460         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
37461         * config/i386/i386.c (x86_field_alignment): Likewise.
37462         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
37463         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
37464         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
37465         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
37466         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
37467         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
37468          Likewise.
37469
37470         Revert
37471         2017-01-30  Richard Biener  <rguenther@suse.de>
37472
37473         PR tree-optimization/79256
37474         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
37475         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
37476         alignment on TYPE.
37477
37478 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
37479
37480         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
37481         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
37482         builtins to SImode and emit a zero-extend, if necessary.
37483
37484 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37485
37486         * docs/invoke.texi (RISC-V Options): Alphabetize.
37487
37488 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37489
37490         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
37491         options.
37492
37493 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37494
37495         * config/riscv/riscv.c: New file.
37496         * common/config/riscv/riscv-common.c: Likewise.
37497         * config.gcc: Likewise.
37498         * config/riscv/constraints.md: Likewise.
37499         * config/riscv/elf.h: Likewise.
37500         * config/riscv/generic.md: Likewise.
37501         * config/riscv/linux.h: Likewise.
37502         * config/riscv/multilib-generator: Likewise.
37503         * config/riscv/peephole.md: Likewise.
37504         * config/riscv/pic.md: Likewise.
37505         * config/riscv/predicates.md: Likewise.
37506         * config/riscv/riscv-builtins.c: Likewise.
37507         * config/riscv/riscv-c.c: Likewise.
37508         * config/riscv/riscv-ftypes.def: Likewise.
37509         * config/riscv/riscv-modes.def: Likewise.
37510         * config/riscv/riscv-opts.h: Likewise.
37511         * config/riscv/riscv-protos.h: Likewise.
37512         * config/riscv/riscv.h: Likewise.
37513         * config/riscv/riscv.md: Likewise.
37514         * config/riscv/riscv.opt: Likewise.
37515         * config/riscv/sync.md: Likewise.
37516         * config/riscv/t-elf-multilib: Likewise.
37517         * config/riscv/t-linux: Likewise.
37518         * config/riscv/t-linux-multilib: Likewise.
37519         * config/riscv/t-riscv: Likewise.
37520         * configure.ac: Likewise.
37521         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
37522         Waterman as RISC-V maintainers.
37523         * doc/install.texi: Add RISC-V entries.
37524         * doc/invoke.texi: Add RISC-V options section.
37525         * doc/md.texi: Add RISC-V constraints section.
37526         * configure: Regenerated.
37527
37528 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37529
37530         PR target/66144
37531         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
37532         false values to be constant vectors with all 0 or all 1 bits set.
37533         (vcondu<mode><mode>): Likewise.
37534         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
37535         predicate.
37536         (fpmask_comparison_operator): Update comment.
37537         (vecint_comparison_operator): New predicate.
37538         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
37539         vector conditionals when the true and false values are constant
37540         vectors with all 0 bits or all 1 bits set.
37541
37542 2017-02-06  Martin Sebor  <msebor@redhat.com>
37543
37544         PR  tree-optimization/79376
37545         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
37546
37547 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
37548
37549         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
37550         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
37551         to simplify split condition.
37552
37553 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
37554
37555         * omp-expand.c (oxpand_omp_atomic_fetch_op,
37556         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
37557         false.
37558
37559 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
37560
37561         PR rtl-optimization/68664
37562         * target.def (can_speculate_insn): New hook.
37563         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
37564         * doc/tm.texi: Regenerate.
37565         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
37566         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
37567         (rs6000_sched_can_speculate_insn): New function.
37568
37569 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
37570
37571         PR tree-optimization/79284
37572         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
37573         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
37574         vectorizable_mask_load_store, vectorizable_operation,
37575         vect_is_simple_cond, get_same_sized_vectype): Use it instead
37576         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
37577         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
37578         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
37579         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
37580         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
37581         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
37582         is_gimple_assign (stmt).  Replace another such test with
37583         is_gimple_assign (stmt).
37584
37585 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
37586
37587         PR target/78883
37588         * config/avr/avr.c (rtl-iter.h): Include it.
37589         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
37590         (avr_legitimate_combined_insn): ...and implementation.
37591
37592 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37593
37594         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
37595         * config/s390/s390.c (s390_const_operand_ok)
37596         (s390_canonicalize_comparison, s390_extract_part)
37597         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
37598         (s390_contiguous_bitmask_p, s390_rtx_costs)
37599         (legitimize_pic_address): Likewise.
37600         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
37601         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
37602         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
37603         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
37604         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
37605
37606 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
37607
37608         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
37609         REGNO($0) == REGNO($1).
37610
37611 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37612
37613         * config/s390/linux.h(SIZE_TYPE): Add comment.
37614
37615 2017-02-06  Julian Brown  <julian@codesourcery.com>
37616             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
37617             Virendra Pathak  <virendra.pathak@broadcom.com>
37618
37619         * config/aarch64/aarch64-cores.def: Change the scheduler
37620         to Thunderx2t99.
37621         * config/aarch64/aarch64.md: Include thunderx2t99.md.
37622         * config/aarch64/thunderx2t99.md: New file.
37623
37624 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37625
37626         * doc/standards.texi (Go Language): Update link to language
37627         standard.
37628
37629 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
37630
37631         * tree-eh.c (lower_resx): Sanitize profile.
37632         (cleanup_empty_eh_move_lp): Likewise.
37633
37634 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
37635
37636         PR tree-ssa/79347
37637         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
37638         ELSE_PROB.
37639         * cfgloopmanip.h (loop_version): Update prototype.
37640         * modulo-sched.c (sms_schedule): Update call of loop_version.
37641         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
37642         * tree-parloops.c (gen_parallel_loop): Likewise.
37643         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
37644         * tree-ssa-loop-split.c (split_loop): Likewise.
37645         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
37646         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
37647
37648 2017-02-05  Martin Liska  <mliska@suse.cz>
37649
37650         PR bootstrap/78985
37651         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
37652         variable to NULL.
37653         (print_operand_address): Initialize a struct to zero.
37654
37655 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37656
37657         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
37658         garbage collector only in textual form.
37659
37660 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37661
37662         * doc/extend.texi (x86 specific memory model extensions for
37663         transactional memory): Simplify a phrase.
37664
37665 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
37666
37667         PR target/79353
37668         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
37669         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
37670         (atomic_storedi_1): Likewise.
37671
37672 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
37673
37674         PR tree-optimization/79338
37675         * tree-parloops.c (gather_scalar_reductions): Don't call
37676         vect_analyze_loop_form for loop->inner before destroying loop's
37677         loop_vinfo.
37678
37679 2017-02-03  Martin Sebor  <msebor@redhat.com>
37680
37681         PR tree-optimization/79327
37682         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
37683         when precision has resulted in leading zeros.
37684         (format_integer): Adjust the likely counter to assume an unknown
37685         argument that may be zero is non-zero.
37686
37687 2017-02-03  Jason Merrill  <jason@redhat.com>
37688
37689         PR c++/78689
37690         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
37691         avoid copying non-taken branch.
37692
37693 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
37694
37695         PR tree-optimization/79340
37696         * tree-vect-loop.c (vectorizable_reduction): Release
37697         vec_defs elements after safe_splicing them into other vectors.
37698         Formatting fixes.
37699
37700         PR tree-optimization/79327
37701         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
37702         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
37703         dirtype.
37704         (format_integer): Use wide_int_to_tree instead of build_int_cst
37705         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
37706         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
37707         of shortest and longest sequence.
37708
37709 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
37710
37711         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
37712         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
37713
37714 2017-02-03  Walter Lee  <walt@tilera.com>
37715
37716         PR target/78862
37717         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
37718         after initial stackframe link reg save.
37719         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
37720
37721 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
37722
37723         PR target/79354
37724         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
37725         wu for stxssp alternative.
37726
37727 2017-02-03  Martin Sebor  <msebor@redhat.com>
37728
37729         PR tree-optimization/79352
37730         * gimple-fold.c (get_range_strlen): Add argument.
37731         (get_range_strlen): Change return type to bool.
37732         (get_maxval_strlen): Pass in a dummy argument.
37733         * gimple-fold.h (get_range_strlen): Change return type to bool.
37734         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
37735         * tree.h (array_at_struct_end_p): Add argument.
37736         * tree.c (array_at_struct_end_p): Handle it.
37737
37738 2017-02-03  Martin Liska  <mliska@suse.cz>
37739
37740         PR lto/66295
37741         * multiple_target.c (create_dispatcher_calls): Redirect edge
37742         from a caller of a dispatcher.
37743         (expand_target_clones): Make the clones local.
37744         (ipa_target_clone): Do both target clones and resolvers.
37745         (ipa_dispatcher_calls): Remove the pass.
37746         (pass_dispatcher_calls::gate): Likewise.
37747         (make_pass_dispatcher_calls): Likewise.
37748         * passes.def (pass_target_clone): Put as very first IPA early
37749         pass.
37750
37751 2017-02-03  Martin Liska  <mliska@suse.cz>
37752
37753         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
37754         in case of a function with ifunc attribute.
37755
37756 2017-02-03  Martin Liska  <mliska@suse.cz>
37757
37758         * cgraph.c (cgraph_node::dump): Dump function version info.
37759         * symtab.c (symtab_node::dump_base): Add missing new line.
37760
37761 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
37762
37763         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
37764         (ifcombine_ifandif): Use it.
37765
37766 2017-02-03  Martin Liska  <mliska@suse.cz>
37767
37768         * doc/invoke.texi: Document default value for
37769         use-after-scope-direct-emission-threshold.
37770
37771 2017-02-03  Martin Liska  <mliska@suse.cz>
37772
37773         PR tree-optimization/79339
37774         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
37775         (format_floating): Likewise.
37776
37777 2017-02-03  Martin Liska  <mliska@suse.cz>
37778
37779         PR ipa/79337
37780         * ipa-prop.c (ipa_node_params_t::insert): Remove current
37781         implementation.
37782         (ipa_node_params_t::remove): Likewise.
37783         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
37784         initialization from removed ipa_node_params_t::insert.
37785         (ipa_node_params::~ipa_node_params): Move from removed
37786         ipa_node_params_t::release.
37787         * symbol-summary.h (symbol_summary::m_released): New member.
37788         Do not release a summary twice.  Do not allow to call finalizer
37789         for types of a summary that live in GGC memory.
37790
37791 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
37792
37793         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
37794         cmp_branch fusion.
37795
37796 2017-02-02  Martin Sebor  <msebor@redhat.com>
37797
37798         PR middle-end/79275
37799         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
37800         (format_string): Tighten up the range of output for non-constant
37801         strings and correct the expected range for wide non-constant strings.
37802
37803 2017-02-02  Martin Sebor  <msebor@redhat.com>
37804
37805         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
37806
37807         PR middle-end/32003
37808         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
37809         index.
37810         (-fdump-tree-@var): Add to index and document how to come up
37811         with pass-specific option and dump file names.
37812         (-fdump-passes): Clarify where to look for output.
37813
37814 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
37815
37816         PR middle-end/77445
37817         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
37818         statistics of the analyzed path; allow threading for speed when
37819         any of BBs along the path are optimized for speed.
37820
37821 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
37822
37823         PR middle-end/78468
37824         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
37825         settings of the virtual registers.
37826
37827         Revert again
37828         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37829
37830         * explow.c (get_dynamic_stack_size): Take known alignment of stack
37831         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
37832         needed.
37833
37834 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37835
37836         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
37837         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
37838
37839 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37840
37841         * config/s390/s390.md: Add missing comments with the expanded
37842         mnemonics.
37843         * config/s390/vector.md: Likewise.
37844         * config/s390/vx-builtins.md: Likewise.
37845
37846 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
37847
37848         PR target/79197
37849         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
37850         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
37851         conditions on a single line.
37852
37853 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37854
37855         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
37856         __S390_VX__ to __VX__.
37857
37858 2017-02-01  Andrew Pinski  <apinski@cavium.com>
37859
37860         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
37861         stmt_info to record_stmt_cost.
37862         (vect_get_known_peeling_cost): Pass stmt_info if known to
37863         record_stmt_cost.
37864         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
37865         cpu_vector_cost field into
37866         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
37867         field into vec_int_stmt_cost and vec_fp_stmt_cost.
37868         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
37869         splitting of scalar_stmt_cost and vec_stmt_cost.
37870         (thunderx_vector_cost): Likewise.
37871         (cortexa57_vector_cost): LIkewise.
37872         (exynosm1_vector_cost): Likewise.
37873         (xgene1_vector_cost): Likewise.
37874         (thunderx2t99_vector_cost): Improve after the splitting of the two
37875         fields.
37876         (aarch64_builtin_vectorization_cost): Update for the splitting of
37877         scalar_stmt_cost and vec_stmt_cost.
37878
37879 2017-02-01  Torvald Riegel  <triegel@redhat.com>
37880             Richard Henderson  <rth@redhat.com>
37881
37882         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
37883         conditional on existance of a fast atomic load.
37884         * optabs-query.c (can_atomic_load_p): New function.
37885         * optabs-query.h (can_atomic_load_p): Declare it.
37886         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
37887         no fast atomic load is available for the particular size of access.
37888         (expand_atomic_compare_and_swap): Likewise.
37889         (expand_atomic_load): Likewise.
37890         (expand_atomic_store): Likewise.
37891         (expand_atomic_fetch_op): Likewise.
37892         * testsuite/lib/target-supports.exp
37893         (check_effective_target_sync_int_128): Remove x86 because it provides
37894         no fast atomic load.
37895         (check_effective_target_sync_int_128_runtime): Likewise.
37896
37897 2017-02-01  Richard Biener  <rguenther@suse.de>
37898
37899         * graphite.c: Include tree-vectorizer.h for find_loop_location.
37900         (graphite_transform_loops): Provide opt-info for optimized nests.
37901         * tree-parloop.c (parallelize_loops): Provide opt-info for
37902         parallelized loops.
37903
37904 2017-02-01  Richard Biener  <rguenther@suse.de>
37905
37906         PR middle-end/79315
37907         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
37908         was not set before.
37909
37910 2017-02-01  Richard Biener  <rguenther@suse.de>
37911
37912         PR tree-optimization/71824
37913         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
37914         Verify the loops are valid in the merged SESE region.
37915         (scop_detection::can_represent_loop_1): Check analyzing the
37916         evolution of the number of iterations in the region succeeds.
37917
37918 2017-01-31  Ian Lance Taylor  <iant@golang.org>
37919
37920         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
37921         REG_ARGS_SIZE note to 32-bit push insns and call insn.
37922
37923 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
37924
37925         PR preprocessor/79210
37926         * input.c (get_substring_ranges_for_loc): Replace line_width
37927         assertion with error-handling.
37928
37929 2017-01-31  Richard Biener  <rguenther@suse.de>
37930
37931         PR tree-optimization/77318
37932         * graphite-sese-to-poly.c (extract_affine): Fix assert.
37933         (create_pw_aff_from_tree): Take loop parameter.
37934         (add_condition_to_pbb): Pass loop of the condition to
37935         create_pw_aff_from_tree.
37936
37937 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
37938
37939         * config/s390/s390.c (s390_asan_shadow_offset): New function.
37940         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
37941
37942 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
37943
37944         PR target/78597
37945         PR target/79038
37946         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
37947         no longer used.
37948         (convert_int_to_float128): Likewise.
37949         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
37950         (convert_int_to_float128): Likewise.
37951         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
37952         (UNSPEC_IEEE128_CONVERT): Likewise.
37953         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
37954         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
37955         Use local variables for IBM extended format.
37956         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
37957         (fix_trunc<mode>si2_fprs): Likewise.
37958         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
37959         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
37960         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
37961         to know that we can now have integers of all sizes in vector
37962         registers.
37963         (fix<uns>_<mode>di2_hw): Likewise.
37964         (float<uns>_<mode>si2_hw): Likewise.
37965         (fix_<mode>si2_hw): Likewise.
37966         (fixuns_<mode>si2_hw): Likewise.
37967         (float<uns>_<mode>di2_hw): Likewise.
37968         (float_<mode>di2_hw): Likewise.
37969         (float_<mode>si2_hw): Likewise.
37970         (floatuns_<mode>di2_hw): Likewise.
37971         (floatuns_<mode>si2_hw): Likewise.
37972         (xscvqp<su>wz_<mode>): Delete, no longer used.
37973         (xscvqp<su>dz_<mode>): Likewise.
37974         (xscv<su>dqp_<mode>): Likewise.
37975         (ieee128_mfvsrd_64bit): Likewise.
37976         (ieee128_mfvsrd_32bit): Likewise.
37977         (ieee128_mfvsrwz): Likewise.
37978         (ieee128_mtvsrw): Likewise.
37979         (ieee128_mtvsrd_64bit): Likewise.
37980         (ieee128_mtvsrd_32bit): Likewise.
37981
37982 2017-01-31  Martin Liska  <mliska@suse.cz>
37983
37984         PR ipa/79285
37985         * ipa-prop.c (ipa_free_all_node_params): Call release method
37986         instead of ~sumbol_summary to not to trigger double times
37987         dtor of hash_map.
37988
37989 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
37990
37991         PR tree-optimization/71691
37992         * bitmap.h (class auto_bitmap): New.
37993         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
37994         is_maybe_undefined instead of ssa_undefined_value_p.
37995
37996 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37997
37998         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
37999         __S390_ARCH_LEVEL__ to __ARCH__.
38000
38001 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38002
38003         PR tree-optimization/79267
38004         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
38005         if should_remove_lhs_p is true.
38006
38007 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
38008
38009         PR debug/63238
38010         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
38011         (add_alignment_attribute): New.
38012         (base_type_die): Add alignment attribute.
38013         (subrange_type_die): Likewise.
38014         (modified_type_die): Likewise.
38015         (gen_array_type_die): Likewise.
38016         (gen_descr_array_type_die: Likewise.
38017         (gen_enumeration_type_die): Likewise.
38018         (gen_subprogram_die): Likewise.
38019         (gen_variable_die): Likewise.
38020         (gen_field_die): Likewise.
38021         (gen_ptr_to_mbr_type_die): Likewise.
38022         (gen_struct_or_union_type_die): Likewise.
38023         (gen_subroutine_type_die): Likewise.
38024         (gen_typedef_die): Likewise.
38025         (base_type_cmp): Compare alignment attribute.
38026
38027 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38028
38029         PR target/79170
38030         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
38031         (setb_unsigned) New pattern for setb with CCUNS.
38032         * config/rs6000/rs6000.c (expand_block_compare): Use a different
38033         subfc./subfe sequence to avoid overflow problems.  Generate a
38034         shorter sequence with cmpld/setb for power9.
38035         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
38036         for generating subfc. instruction.
38037         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
38038         now uses this instruction.
38039
38040 2017-01-30  Ian Lance Taylor  <iant@google.com>
38041
38042         PR debug/79289
38043         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
38044         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
38045
38046 2017-01-30  Martin Sebor  <msebor@redhat.com>
38047
38048         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
38049         Move constant to the right of a relational operator.
38050         (get_mpfr_format_length, format_character, format_string): Ditto.
38051         (should_warn_p, maybe_warn): Same.
38052
38053         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
38054
38055 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
38056
38057         PR lto/79061
38058         * asan.c (get_translation_unit_decl): Remove function.
38059         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
38060
38061 2017-01-30  Martin Liska  <mliska@suse.cz>
38062
38063         PR gcov-profile/79259
38064         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
38065         -fprofile-generate.
38066
38067 2017-01-30  Martin Liska  <mliska@suse.cz>
38068
38069         PR bootstrap/78985
38070         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
38071         Initialize variables with NULL value.
38072
38073 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
38074
38075         PR target/79260
38076         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
38077         tm_p_file.
38078         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
38079
38080 2017-01-30  Richard Biener  <rguenther@suse.de>
38081
38082         PR tree-optimization/79276
38083         * tree-vrp.c (process_assert_insertions): Properly adjust common
38084         when removing a duplicate.
38085
38086 2017-01-30  Richard Biener  <rguenther@suse.de>
38087
38088         PR tree-optimization/79256
38089         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38090         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38091         alignment on TYPE.
38092         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
38093
38094 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38095
38096         PR target/79240
38097         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
38098         ("*r<noxa>sbg_<mode>_sll_bitmask")
38099         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
38100         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
38101         Use contiguous_bitmask_nowrap_operand.
38102
38103 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38104
38105         PR target/79268
38106         * config/rs6000/altivec.h (vec_xl): Revise #define.
38107         (vec_xst): Likewise.
38108
38109 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
38110
38111         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
38112
38113 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
38114
38115         PR rtl-optimization/79194
38116         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
38117         traps before call to bypass_conditional_jumps.
38118
38119 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38120
38121         PR tree-optimization/71374
38122         * lra-constraints.c (check_conflict_input_operands): New.
38123         (match_reload): Use it.
38124
38125 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38126
38127         PR target/79131
38128         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
38129         account to calculate conflict_set.
38130
38131 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
38132
38133         PR rtl-optimization/78559
38134         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
38135         other_insn in combine.
38136
38137 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
38138
38139         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
38140         uint16_type_node for BT_UINT16.
38141
38142 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
38143
38144         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
38145         "RTL Tests" to menu.
38146         (GIMPLE Tests): New node.
38147         (RTL Tests): New node.
38148
38149 2017-01-27  Richard Biener  <rguenther@suse.de>
38150
38151         PR tree-optimization/79245
38152         * tree-loop-distribution.c (distribute_loop): Apply cost
38153         modeling also to detected patterns.
38154
38155 2017-01-27  Richard Biener  <rguenther@suse.de>
38156
38157         PR tree-optimization/71433
38158         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
38159         (compare_assert_loc): New function.
38160         (process_assert_insertions): Sort and optimize assert locations
38161         to remove duplicates and push down identical assertions on
38162         edges to their destination block.
38163
38164 2017-01-27  Richard Biener  <rguenther@suse.de>
38165
38166         PR tree-optimization/79244
38167         * tree-vrp.c (remove_range_assertions): Forcefully propagate
38168         out SSA names even if abnormal.
38169
38170 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
38171
38172         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
38173         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
38174         instead of MPFR_RNDN.
38175
38176 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
38177
38178         PR target/79239
38179         * arm.c (arm_option_override): Don't call build_target_option_node
38180         until after doing all option overrides.
38181         (arm_valid_target_attribute_tree): Likewise.
38182
38183 2017-01-27  Martin Liska  <mliska@suse.cz>
38184
38185         * doc/invoke.texi (-fprofile-arcs): Document profiling support
38186         for {cd}tors and C++ {cd}tors.
38187
38188 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38189
38190         * config/s390/s390.md ("*setmem_long_and")
38191         ("*setmem_long_and_31z"): Use zero_extend instead of and.
38192
38193 2017-01-26  Martin Sebor  <msebor@redhat.com>
38194
38195         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
38196         of precision.
38197
38198 2017-01-26  Martin Sebor  <msebor@redhat.com>
38199
38200         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
38201         HAVE_DFmode before using XFmode or DFmode.
38202         (parse_directive): Avoid using the z length modifier to avoid
38203         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
38204
38205         PR middle-end/78703
38206         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
38207         to accept adjustment as an array.
38208         (get_int_range): New function.
38209         (struct directive): Make width and prec arrays.
38210         (directive::set_width, directive::set_precision): Call get_int_range.
38211         (format_integer, format_floating): Handle width and precision ranges.
38212         (format_string, parse_directive): Same.
38213
38214 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38215
38216         PR debug/79129
38217         * dwarf2out.c (generate_skeleton_bottom_up): For children with
38218         comdat_type_p set, just clone them, but keep the children in the
38219         original DIE.
38220
38221         PR debug/78835
38222         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
38223         which have direct callers with -fvar-tracking-assignments enabled
38224         in the current TU.
38225         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
38226         inside of type units.
38227
38228 2017-01-26  Martin Sebor  <msebor@redhat.com>
38229
38230         PR middle-end/78703
38231         * gimple-ssa-sprintf.c (struct result_range): Add likely and
38232         unlikely counters.
38233         (struct format_result): Replace number_chars, number_chars_min,
38234         and number_chars_max with a single member of struct result_range.
38235         Remove bounded.
38236         (format_result::operator+=): Adjust.
38237         (struct fmtresult): Remove bounded.  Handle likely and unlikely
38238         counters.
38239         (fmtresult::adjust_for_width_or_precision): New function.
38240         (fmtresult:type_max_digits): New function.
38241         (bytes_remaining): Handle likely and unlikely counters.
38242         (min_bytes_remaining): Remove.
38243         (format_percent): Simplify.
38244         (format_integer, format_floating): Set likely and unlikely counters.
38245         (get_string_length, format_character, format_string): Same.
38246         (format_plain, should_warn_p): New function.
38247         (maybe_warn): Call should_warn_p.  Update diagnostic messages
38248         and handle those for all directives, including plain strings.
38249         (format_directive): Handle likely and unlikely counters.
38250         Remove unnecessary quoting from diagnostics.  Add an informational
38251         note.
38252         (add_bytes): Remove.
38253         (pass_sprintf_length::compute_format_length): Simplify.
38254         (try_substitute_return_value): Handle likely and unlikely counters.
38255
38256 2017-01-26  Carl Love  <cel@us.ibm.com>
38257
38258         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
38259         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
38260
38261 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
38262
38263         PR target/79131
38264         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
38265         endianess for subregs into account.
38266         * lra-constraints.c (lra_constraints): Do risky transformations
38267         always on the first iteration.
38268         * lra-lives.c (check_pseudos_live_through_calls): Add arg
38269         last_call_used_reg_set.
38270         (process_bb_lives): Define and use last_call_used_reg_set.
38271         * lra.c (lra): Always continue after lra_constraints on the first
38272         iteration.
38273
38274 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
38275
38276         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
38277         constant.
38278         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
38279
38280 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38281
38282         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
38283         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
38284         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
38285         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
38286         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
38287         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
38288         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
38289         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
38290         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
38291
38292 2017-01-26  Marek Polacek  <polacek@redhat.com>
38293
38294         PR c/79199
38295         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
38296         for the third operand.
38297
38298 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38299
38300         PR middle-end/79236
38301         * omp-low.c (struct omp_context): Add simt_stmt field.
38302         (scan_omp_for): Return omp_context *.
38303         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
38304         context to the _simt_ SIMD stmt.
38305         (lower_omp_for): For combined SIMD with sibling _simt_
38306         SIMD, make sure to use the same decls in _looptemp_
38307         clauses as in the sibling.
38308
38309 2017-01-26  David Sherwood  <david.sherwood@arm.com>
38310
38311         PR middle-end/79212
38312         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
38313         all contexts.
38314
38315 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38316
38317         PR target/70465
38318         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
38319         emit fld b; fld a; if possible.
38320
38321         * brig-builtins.def: Update copyright years.
38322         * config/arm/arm_acle_builtins.def: Update copyright years.
38323
38324 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
38325
38326         PR target/79179
38327         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
38328         constraint instead of o for the stxsd instruction.
38329
38330 2017-01-25  Carl Love  <cel@us.ibm.com>
38331
38332         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
38333         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
38334
38335 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
38336
38337         * doc/invoke.texi (C++ Dialect Options): Fix typo.
38338
38339 2017-01-25  Richard Biener  <rguenther@suse.de>
38340
38341         PR tree-optimization/69264
38342         * target.def (vector_alignment_reachable): Improve documentation.
38343         * doc/tm.texi: Regenerate.
38344         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
38345         and add a comment.
38346         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
38347         earlier changes with respect to TYPE_USER_ALIGN.
38348         (vector_alignment_reachable_p): Likewise.  Improve dumping.
38349
38350 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38351
38352         PR target/79145
38353         * config/arm/arm.md (xordi3): Force constant operand into a register
38354         for TARGET_IWMMXT.
38355
38356 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38357
38358         * doc/invoke.texi (-fstore-merging): Correct default optimization
38359         levels at which it is enabled.
38360         (-O): Move -fstore-merging from list to...
38361         (-O2): ... Here.
38362
38363 2017-01-25  Richard Biener  <rguenther@suse.de>
38364
38365         PR debug/78363
38366         * omp-expand.c: Include debug.h.
38367         (expand_omp_taskreg): Make sure to generate early debug before
38368         outlining anything from a function.
38369         (expand_omp_target): Likewise.
38370         (grid_expand_target_grid_body): Likewise.
38371
38372 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
38373
38374         PR lto/79061
38375         * asan.c (get_translation_unit_decl): New function.
38376         (asan_add_global): Extract modules file name from globals
38377         TRANSLATION_UNIT_DECL name.
38378
38379 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
38380
38381         PR target/77439
38382         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
38383         for long calls with APCS frame and VFP.
38384
38385 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
38386
38387         * cfg.c (original_copy_tables_initialized_p): New function.
38388         * cfg.h (original_copy_tables_initialized_p): New decl.
38389         * cfgrtl.c (relink_block_chain): Guard the call to
38390         free_original_copy_tables with a call to
38391         original_copy_tables_initialized_p.
38392         * cgraph.h (symtab_node::native_rtl_p): New decl.
38393         * cgraphunit.c (symtab_node::native_rtl_p): New function.
38394         (symtab_node::needed_p): Don't assert for early assembly output
38395         for __RTL functions.
38396         (cgraph_node::finalize_function): Set "force_output" for __RTL
38397         functions.
38398         (cgraph_node::analyze): Bail out early for __RTL functions.
38399         (analyze_functions): Update assertion to support __RTL functions.
38400         (cgraph_node::expand): Bail out early for __RTL functions.
38401         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
38402         __RTL functions.
38403         * function.h (struct function): Update comment for field
38404         "pass_startwith".
38405         * gimple-expr.c: Include "tree-pass.h".
38406         (gimple_has_body_p): Return false for __RTL functions.
38407         * Makefile.in (OBJS): Add run-rtl-passes.o.
38408         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
38409         accessor.
38410         (gcc::pass_manager::get_clean_slate): New accessor.
38411         * passes.c: Include "insn-addr.h".
38412         (should_skip_pass_p): Add logging.  Update logic for running
38413         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
38414         property-provider override so it is only done for gimple passes.
38415         Don't skip dfinit.
38416         (skip_pass): New function.
38417         (execute_one_pass): Call skip_pass when skipping passes.
38418         * read-md.c (md_reader::read_char): Support filtering
38419         the input to a subset of line numbers.
38420         (md_reader::md_reader): Initialize fields
38421         m_first_line and m_last_line.
38422         (md_reader::read_file_fragment): New function.
38423         * read-md.h (md_reader::read_file_fragment): New decl.
38424         (md_reader::m_first_line): New field.
38425         (md_reader::m_last_line): New field.
38426         * read-rtl-function.c (function_reader::create_function): Only
38427         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
38428         curr_properties.  Set DECL_INITIAL to a dummy block.
38429         (read_rtl_function_body_from_file_range): New function.
38430         * read-rtl-function.h (read_rtl_function_body_from_file_range):
38431         New decl.
38432         * run-rtl-passes.c: New file.
38433         * run-rtl-passes.h: New file.
38434
38435 2017-01-24  Jeff Law  <law@redhat.com>
38436
38437         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
38438         buffer size.
38439
38440 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
38441
38442         PR tree-optimization/79159
38443         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
38444         (record_nonwrapping_iv): Improve boundary using above function if no
38445         value range information.
38446
38447 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
38448             Martin Jambor  <mjambor@suse.cz>
38449
38450         * brig-builtins.def: New file.
38451         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
38452         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
38453         (DEF_HSAIL_SAT_BUILTIN): Likewise.
38454         (DEF_HSAIL_INTR_BUILTIN): Likewise.
38455         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
38456         * builtin-types.def (BT_INT8): New.
38457         (BT_INT16): Likewise.
38458         (BT_UINT8): Likewise.
38459         (BT_UINT16): Likewise.
38460         (BT_FN_ULONG): Likewise.
38461         (BT_FN_UINT_INT): Likewise.
38462         (BT_FN_UINT_ULONG): Likewise.
38463         (BT_FN_UINT_LONG): Likewise.
38464         (BT_FN_UINT_PTR): Likewise.
38465         (BT_FN_ULONG_PTR): Likewise.
38466         (BT_FN_INT8_FLOAT): Likewise.
38467         (BT_FN_INT16_FLOAT): Likewise.
38468         (BT_FN_UINT32_FLOAT): Likewise.
38469         (BT_FN_UINT16_FLOAT): Likewise.
38470         (BT_FN_UINT8_FLOAT): Likewise.
38471         (BT_FN_UINT64_FLOAT): Likewise.
38472         (BT_FN_UINT16_UINT32): Likewise.
38473         (BT_FN_UINT32_UINT16): Likewise.
38474         (BT_FN_UINT16_UINT16_UINT16): Likewise.
38475         (BT_FN_INT_PTR_INT): Likewise.
38476         (BT_FN_UINT_PTR_UINT): Likewise.
38477         (BT_FN_LONG_PTR_LONG): Likewise.
38478         (BT_FN_ULONG_PTR_ULONG): Likewise.
38479         (BT_FN_VOID_UINT64_UINT64): Likewise.
38480         (BT_FN_UINT8_UINT8_UINT8): Likewise.
38481         (BT_FN_INT8_INT8_INT8): Likewise.
38482         (BT_FN_INT16_INT16_INT16): Likewise.
38483         (BT_FN_INT_INT_INT): Likewise.
38484         (BT_FN_UINT_FLOAT_UINT): Likewise.
38485         (BT_FN_FLOAT_UINT_UINT): Likewise.
38486         (BT_FN_ULONG_UINT_UINT): Likewise.
38487         (BT_FN_ULONG_UINT_PTR): Likewise.
38488         (BT_FN_ULONG_ULONG_ULONG): Likewise.
38489         (BT_FN_UINT_UINT_UINT): Likewise.
38490         (BT_FN_VOID_UINT_PTR): Likewise.
38491         (BT_FN_UINT_UINT_PTR: Likewise.
38492         (BT_FN_UINT32_UINT64_PTR): Likewise.
38493         (BT_FN_INT_INT_UINT_UINT): Likewise.
38494         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
38495         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
38496         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
38497         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
38498         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
38499         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
38500         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
38501         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
38502         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
38503         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
38504         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
38505         * doc/frontends.texi: List BRIG FE.
38506         * doc/install.texi (Testing): Add BRIG tesring requirements.
38507         * doc/invoke.texi (Overall Options): Mention BRIG.
38508         * doc/standards.texi (Standards): Doucment BRIG HSA version.
38509
38510 2017-01-24  Richard Biener  <rguenther@suse.de>
38511
38512         PR translation/79208
38513         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
38514
38515 2017-01-24  Martin Jambor  <mjambor@suse.cz>
38516
38517         PR bootstrap/79198
38518         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
38519         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
38520         and known_contexts.
38521
38522 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
38523
38524         PR middle-end/79123
38525         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
38526         casts from signed to unsigned really don't have a range.
38527
38528 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
38529
38530         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
38531         GMP_RNDx for compatiblity.
38532
38533 2017-01-24  Martin Liska  <mliska@suse.cz>
38534
38535         PR bootstrap/79132
38536         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
38537         that would prevent us to call alloca with -1 as argument.
38538
38539 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
38540
38541         * dwarf2out.c (output_compilation_unit_header, output_file_names):
38542         Avoid -Wformat-security warning.
38543
38544 2017-01-23  Andrew Pinski  <apinski@cavium.com>
38545
38546         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
38547         cost table.
38548
38549 2017-01-23  Martin Sebor  <msebor@redhat.com>
38550
38551         PR middle-end/78703
38552         * gimple-ssa-sprintf.c (warn_level): New global.
38553         (format_integer): Use it here and throughout the rest of the file.
38554         Use the same switch to compute sign as base.
38555         (maybe_warn): New function.
38556         (format_directive): Factor out warnings into maybe_warn.
38557         Add debugging output.  Use warn_level.
38558         (add_bytes): Use warn_level.
38559         (pass_sprintf_length::compute_format_length): Add debugging output.
38560         (try_substitute_return_value): Same.
38561         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
38562
38563         PR middle-end/78703
38564         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
38565         (struct fmtresult, format_integer, format_floating): Adjust.
38566         (fmtresult::fmtresult): Set max correctly in two argument ctor.
38567         (get_string_length, format_string,format_directive): Same.
38568         (pass_sprintf_length::compute_format_length): Same.
38569         (try_substitute_return_value): Simplify slightly.
38570
38571         PR middle-end/78703
38572         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
38573         (fmtresult::operator+=): Outlined.
38574         (struct fmtresult): Add ctors.
38575         (struct conversion_spec): Rename...
38576         (struct directive): ...to this.  Add and remove data members.
38577         (directive::set_width, directive::set_precision): New functions.
38578         (format_percent): Use fmtresult ctor.
38579         (get_width_and_precision): Remove.
38580         (format_integer): Make naming changes.  Avoid computing width and
38581         precision.
38582         (format_floating): Same.  Adjust indentation.
38583         (format_character, format_none): New functions.
38584         (format_string): Moved character handling to format_character.
38585         (format_directive): Remove arguments, change return type.
38586         (parse_directive): New function.
38587         (pass_sprintf_length::compute_format_length): Move directive
38588         parsing to parse_directive.
38589
38590 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
38591
38592         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
38593         (assign_assembler_name_if_needed): ... this.
38594         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
38595         (assign_assembler_name_if_needed): ... this.
38596         (free_lang_data_in_cgraph): Adjust callers.
38597         * cgraphunit.c (cgraph_node::analyze): Likewise.
38598         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
38599         Likewise.
38600
38601 2017-01-23  Richard Biener  <rguenther@suse.de>
38602
38603         PR tree-optimization/79088
38604         PR tree-optimization/79188
38605         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
38606         resetting loop bounds after last path deletion.  Reset loop
38607         bounds of the target loop, make code match the comments.
38608         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
38609         Make sure loops need no fixups.
38610
38611 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
38612
38613         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
38614         exponent support with double type for first argument.
38615         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
38616         type returned by __builtin_vec_extract_sig,
38617         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
38618         functions from "vector int" to "vector unsigned int" or from
38619         "vector long long int" to "vector unsigned long long int".
38620         Changed type returned by __builtin_vec_extract_exp,
38621         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
38622         functions from "vector int" to "vector unsigned int" or from
38623         "vector long long int" to "vector unsigned long long int".
38624         Changed return type of __builtin_vec_test_data_class,
38625         __builtin_vec_test_data_class_sp, and
38626         __builtin_vec_test_data_class_dp from "vector int" to
38627         "vector bool int" or from "vector long long int" to "vector bool
38628         long long int" and changed second argument type from "unsigned
38629         int" to "int".  Added new overloaded function forms "vector float
38630         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
38631         "vector float __builtin_vec_insert_exp_sp (vector float, vector
38632         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
38633         double, vector unsigned long long int)" and "vector double
38634         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
38635         long int)".  Changed return type of
38636         __builtin_scalar_test_data_class and
38637         __builtin_scalar_test_data_class_sp and
38638         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
38639         int" and changed second argument from "unsigned int" to "int".
38640         Changed type returned by __builtin_scalar_test_neg,
38641         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
38642         from "int" to "bool int".  Added new overloaded function form
38643         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
38644         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
38645         exponent double-precision with floating point first argument.
38646         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
38647         documentation of scalar_test_data_class, scalar_test_neg,
38648         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
38649         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
38650         vec_test_data_class built-in functions to reflect refinements in
38651         their type signatures.
38652
38653 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
38654
38655         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
38656         size of buf.
38657         (aarch64_elf_asm_destructor): Likewise.
38658
38659 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
38660
38661         PR rtl-optimization/78634
38662         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
38663         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
38664         * ifcvt.c (noce_try_cmove): Add missing cost check.
38665
38666         PR rtl-optimization/71724
38667         * combine.c (if_then_else_cond): Look for situations where it is
38668         beneficial to undo the work of one of the recursive calls.
38669
38670 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
38671
38672         PR tree-optimization/70754
38673         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
38674         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
38675         combined stmt before it if not NULL.
38676         (combine_chains): Process refs reversely and compute dominance point
38677         for root ref.
38678
38679 2017-01-23  Martin Liska  <mliska@suse.cz>
38680
38681         PR tree-optimization/79196
38682         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
38683         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
38684         instead of memcmp.
38685         (strlen_optimize_stmt): Call the renamed function.
38686
38687 2017-01-23  Michael Matz  <matz@suse.de>
38688
38689         PR tree-optimization/78384
38690         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
38691
38692 2017-01-23  Richard Biener  <rguenther@suse.de>
38693
38694         PR tree-optimization/79186
38695         * tree-vrp.c (register_new_assert_for): Make sure we've seen
38696         both incoming edges before moving an assert.
38697
38698 2017-01-23  Martin Jambor  <mjambor@suse.cz>
38699
38700         * ipa-prop.c (load_from_param_1): Removed.
38701         (load_from_unmodified_param): Bits from load_from_param_1 put back
38702         here.
38703         (load_from_param): Removed.
38704         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
38705         with stmt.  Reverted back to use of load_from_unmodified_param.
38706
38707 2017-01-23  Martin Jambor  <mjambor@suse.cz>
38708
38709         PR ipa/79108
38710         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
38711         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
38712         field a pointer to garbage collected vector, mark lattices and
38713         ipcp_orig_node with GTY((skip)).
38714         (ipa_get_param_count): Adjust to descriptors being a pointer.
38715         (ipa_get_param): Likewise.
38716         (ipa_get_type): Likewise.
38717         (ipa_get_param_move_cost): Likewise.
38718         (ipa_set_param_used): Likewise.
38719         (ipa_get_controlled_uses): Likewise.
38720         (ipa_set_controlled_uses): Likewise.
38721         (ipa_is_param_used): Likewise.
38722         (ipa_node_params_t): Move into garbage collector.  New methods insert
38723         and remove.
38724         (ipa_node_params_sum): Annotate wth GTY(()).
38725         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
38726         garbage collected.
38727         (ipa_load_from_parm_agg): Adjust declaration.
38728         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
38729         * ipa-profile.c (ipa_profile): Likewise.
38730         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
38731         (ipa_populate_param_decls): Make descriptors parameter garbage
38732         collected.
38733         (ipa_dump_param): Adjust to descriptors being a pointer.
38734         (ipa_alloc_node_params): Likewise.
38735         (ipa_initialize_node_params): Likewise.
38736         (load_from_param_1): Make descriptors parameter garbage collected.
38737         (load_from_unmodified_param): Likewise.
38738         (load_from_param): Likewise.
38739         (ipa_load_from_parm_agg): Likewise.
38740         (ipa_node_params::~ipa_node_params): Removed.
38741         (ipa_free_all_node_params): Remove call to delete operator.
38742         (ipa_node_params_t::insert): New.
38743         (ipa_node_params_t::remove): Likewise.
38744         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
38745         copy known_csts and known_contexts vectors.
38746         (ipa_read_node_info): Adjust to descriptors being a pointer.
38747         (ipcp_modif_dom_walker): Make m_descriptors field garbage
38748         collected.
38749         (ipcp_transform_function): Make descriptors variable garbage
38750         collected.
38751
38752 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
38753
38754         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
38755         * config/i386/avx512dqintrin.h: Ditto.
38756         * config/i386/avx512fintrin.h: Ditto.
38757         * config/i386/i386.c: Handle new builtins.
38758         * config/i386/i386-builtin.def: Add new builtins.
38759         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
38760         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
38761
38762 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
38763             Martin Liska  <mliska@suse.cz>
38764
38765         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
38766         * asan.c (asan_expand_poison_ifn): Support stores and use
38767         appropriate ASAN report function.
38768         * internal-fn.c (expand_ASAN_POISON_USE): New function.
38769         * internal-fn.def (ASAN_POISON_USE): Declare.
38770         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
38771         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
38772         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
38773         ASAN_POISON calls w/o LHS.
38774         * tree-ssa.c (execute_update_addresses_taken): Create clobber
38775         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
38776         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
38777         * gimplify.c (asan_poison_variables): Add attribute
38778         use_after_scope_memory to variables that really needs to live
38779         in memory.
38780         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
38781         having the attribute.
38782
38783 2017-01-23  Martin Liska  <mliska@suse.cz>
38784
38785         * asan.c (create_asan_shadow_var): New function.
38786         (asan_expand_poison_ifn): Likewise.
38787         * asan.h (asan_expand_poison_ifn): New declaration.
38788         * internal-fn.c (expand_ASAN_POISON): Likewise.
38789         * internal-fn.def (ASAN_POISON): New builtin.
38790         * sanopt.c (pass_sanopt::execute): Expand
38791         asan_expand_poison_ifn.
38792         * tree-inline.c (copy_decl_for_dup_finish): Make function
38793         external.
38794         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
38795         * tree-ssa.c (is_asan_mark_p): New function.
38796         (execute_update_addresses_taken): Rewrite local variables
38797         (identified just by use-after-scope as addressable) into SSA.
38798
38799 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
38800
38801         * doc/install.texi (Specific): opensource.apple.com uses https
38802         now. Remove trailing slash.
38803
38804 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
38805
38806         * README.Portability: Remove note on an Irix compatibility issue.
38807
38808 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
38809
38810         * gcov.c (INCLUDE_ALGORITHM): Define.
38811         (INCLUDE_VECTOR): Define.
38812         No longer include <vector> and <algorithm> directly.
38813
38814 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
38815
38816         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
38817         to https.
38818         * doc/invoke.texi (Code Gen Options): Ditto.
38819
38820 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
38821
38822         PR lto/78407
38823         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
38824
38825 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
38826
38827         rtl-optimization/79125
38828         * cprop.c (local_cprop_pass): Handle cases where we make an
38829         unconditional trap.
38830
38831 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
38832
38833         PR target/61729
38834         PR target/77850
38835         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
38836         read from, for big endian.
38837
38838 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
38839
38840         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
38841         register pauth builtins for LP64 only.
38842
38843 2017-01-20  Marek Polacek  <polacek@redhat.com>
38844
38845         PR c/79152
38846         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
38847         non-case labels.
38848
38849 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
38850
38851         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
38852         of safelen status.
38853         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
38854         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
38855         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
38856
38857 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38858
38859         PR target/71270
38860         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
38861         in big-endian mode when they are not a single duplicated value.
38862
38863 2017-01-20  Richard Biener  <rguenther@suse.de>
38864
38865         * BASE-VER: Bump to 7.0.1.
38866
38867 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
38868
38869         * omp-low.c (omplow_simd_context): New struct.  Use it...
38870         (lower_rec_simd_input_clauses): ...here and...
38871         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
38872         references to idx, lane, max_vf, is_simt.
38873
38874 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
38875
38876         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
38877         mcpu=nps400.
38878
38879 2017-01-20  Martin Jambor  <mjambor@suse.cz>
38880
38881         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
38882         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
38883         gt-hsa-common.h.
38884         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
38885         (GTFILES): Rename hsa.c to hsa-common.c.
38886         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
38887         * hsa-dump.c: Likewise.
38888         * hsa-gen.c: Likewise.
38889         * hsa-regalloc.c: Likewise.
38890         * ipa-hsa.c: Likewise.
38891         * omp-expand.c: Likewise.
38892         * omp-low.c: Likewise.
38893         * toplev.c: Likewise.
38894
38895 2017-01-20  Marek Polacek  <polacek@redhat.com>
38896
38897         PR c/64279
38898         * doc/invoke.texi: Document -Wduplicated-branches.
38899         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
38900         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
38901         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
38902         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
38903         return 0 only when not OEP_LEXICOGRAPHIC.
38904         (fold_build_cleanup_point_expr): Use the expression
38905         location when building CLEANUP_POINT_EXPR.
38906         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
38907         * tree.c (add_expr): Handle error_mark_node.
38908
38909 2017-01-20  Martin Liska  <mliska@suse.cz>
38910
38911         PR lto/69188
38912         * tree-profile.c (init_ic_make_global_vars): Do not call
38913         finalize_decl.
38914         (gimple_init_gcov_profiler): Likewise.
38915
38916 2017-01-20  Martin Liska  <mliska@suse.cz>
38917
38918         PR ipa/71190
38919         * cgraph.h (maybe_create_reference): Remove argument and
38920         update comment.
38921         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
38922         argument.
38923         * ipa-cp.c (create_specialized_node): Likewise.
38924         * symtab.c (symtab_node::maybe_create_reference): Handle
38925         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
38926
38927 2017-01-20  Martin Liska  <mliska@suse.cz>
38928
38929         * read-rtl-function.c (function_reader::create_function): Use
38930         build_decl instread of build_decl_stat.
38931
38932 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
38933
38934         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
38935         * config/i386/avx512dqintrin.h: Ditto.
38936         * config/i386/avx512fintrin.h: Ditto.
38937         * config/i386/i386-builtin-types.def: Add new types.
38938         * config/i386/i386.c: Handle new types.
38939         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
38940         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
38941         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
38942         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
38943         (__builtin_ia32_kshiftridi): New.
38944         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
38945
38946 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
38947
38948         PR target/78875
38949         PR target/79140
38950         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
38951         define to rs6000_init_stack_protect_guard.
38952         (rs6000_init_stack_protect_guard): New function.
38953
38954 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38955             Yunqiang Su  <yunqiang.su@imgtec.com>
38956
38957         * config.gcc (supported_defaults): Add madd4.
38958         (with_madd4): Add validation.
38959         (all_defaults): Add madd4.
38960         * config/mips/mips.opt (mmadd4): New option.
38961         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
38962         mmadd4.
38963         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
38964         __mips_no_madd4.
38965         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
38966         (ISA_HAS_FUSED_MADD4): Likewise.
38967         * doc/invoke.texi (-mmadd4): Document the new option.
38968         * doc/install.texi (--with-madd4): Document the new option.
38969
38970 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38971
38972         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
38973         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
38974         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
38975         (aarch64_init_pauth_hint_builtins): New.
38976         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
38977         (aarch64_expand_builtin): Expand new builtins.
38978
38979 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38980
38981         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
38982         * combine-stack-adj.c (no_unhandled_cfa): Handle
38983         REG_CFA_TOGGLE_RA_MANGLE.
38984         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
38985         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
38986         info for return address signing.
38987         (aarch64_expand_epilogue): Likewise.
38988
38989 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38990
38991         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
38992         * config/aarch64/aarch64-protos.h
38993         (aarch64_return_address_signing_enabled): New declaration.
38994         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
38995         New function.
38996         (aarch64_expand_prologue): Sign return address before it's pushed onto
38997         stack.
38998         (aarch64_expand_epilogue): Authenticate return address fetched from
38999         stack.
39000         (aarch64_override_options): Sanity check for ILP32 and ISA level.
39001         (aarch64_attributes): New function attributes for "sign-return-address".
39002         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
39003         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
39004         ("*do_return"): Generate combined instructions according to key index.
39005         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
39006         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
39007         iterators.
39008         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
39009         * config/aarch64/aarch64.opt (msign-return-address=): New.
39010         * doc/extend.texi (AArch64 Function Attributes): Documents
39011         "sign-return-address=".
39012         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
39013
39014 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39015
39016         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
39017         overall option summary.
39018
39019 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39020
39021         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
39022         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
39023         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
39024         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
39025
39026 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
39027
39028         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
39029         -mpower9-minmax by default for -mcpu=power9.
39030         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
39031         128-bit floating point.
39032
39033 2017-01-20  Alan Modra  <amodra@gmail.com>
39034
39035         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
39036         optimizing for size.
39037
39038 2017-01-20  Alan Modra  <amodra@gmail.com>
39039
39040         PR target/79144
39041         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
39042         for strcmp and strncmp from corresponding builtin decl.
39043
39044 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39045
39046         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
39047         instead of i386/rtems-64.h.
39048         * config/i386/rtems-64.h: Remove.
39049
39050 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39051
39052         PR target/78478
39053         Revert:
39054         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
39055
39056         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
39057
39058 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
39059
39060         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
39061         Change int to HOST_WIDE_INT.
39062         * config/aarch64/aarch64-protos.h
39063         (aarch64_simd_gen_const_vector_dup): Likewise.
39064         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
39065
39066 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
39067
39068         * langhooks-def.h (lhd_type_for_size): New decl.
39069         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
39070         * langhooks.c (lhd_type_for_size): New function, taken from
39071         lto_type_for_size.
39072
39073 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
39074
39075         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
39076         define_bypass for CR latency.
39077         (power9-cracked-alu): Update bypass latency and remove power9-branch.
39078         (power9-alu2): Add define_bypass for CR latency.
39079         (power9-cmp): New.
39080         (power9-mul): Update insn latency.
39081         (power9-mul-compare): Update insn latency, bypass latency and remove
39082         power9-branch.
39083
39084 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39085
39086         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
39087         Delete.
39088         * config/aarch64/aarch64.md
39089         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
39090         aarch64_nopcrelative_literal_loads.
39091         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
39092
39093 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
39094
39095         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
39096         TARGET_LOONGSON_3A.
39097         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
39098
39099 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
39100
39101         PR target/78176
39102         * config.gcc (supported_defaults): Add lxc1-sxc1.
39103         (with_lxc1_sxc1): Add validation.
39104         (all_defaults): Add lxc1-sxc1.
39105         * config/mips/mips.opt (mlxc1-sxc1): New option.
39106         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39107         mlxc1-sxc1.
39108         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39109         __mips_no_lxc1_sxc1.
39110         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
39111         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
39112         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
39113
39114 2017-01-19  Richard Biener  <rguenther@suse.de>
39115
39116         PR tree-optimization/72488
39117         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
39118         sure to restore SSA info.
39119         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
39120
39121 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
39122
39123         PR rtl-optimization/79121
39124         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
39125         of the inner type when shifting an extended value.
39126
39127 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39128
39129         PR lto/78407
39130         * symtab.c (symtab_node::equal_address_to): Fix comparing of
39131         interposable aliases.
39132
39133 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
39134
39135         PR target/78516
39136         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
39137         Use the evmergelohi instruction.
39138         (mov_si<mode>_e500_subreg4_2_le): Likewise.
39139         (mov_sitf_e500_subreg8_2_be): Likewise.
39140         (mov_sitf_e500_subreg12_2_le): Likewise.
39141         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
39142         (mov_si<mode>_e500_subreg4_2_be): Likewise.
39143         (mov_sitf_e500_subreg8_2_le): Likewise.
39144         (mov_sitf_e500_subreg12_2_be): Likewise.
39145
39146 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39147
39148         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
39149         attribute from vecsimple to vecperm.
39150         (altivec_vbpermq2): Likewise.
39151
39152 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39153
39154         PR target/79040
39155         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
39156
39157 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
39158         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
39159         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
39160         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
39161         case where N arg is SIZE_MAX.
39162         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
39163         (cmpstrsi): Add pattern.
39164
39165 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
39166
39167         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
39168         __builtin_vec_revb builtins.
39169         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
39170         built-in functions to support generation of the ISA 3.0 XXBR<x>
39171         vector byte reverse instructions.
39172         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
39173         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
39174         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
39175         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
39176         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
39177         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
39178         (P9V_BUILTIN_VEC_REVB): Likewise.
39179         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
39180         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
39181         (p9_xxbrq_v16qi): Likewise.
39182         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
39183         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
39184         (p9_xxbrh_v8hi): Likewise.
39185         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
39186         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
39187         vec_revb built-in functions.
39188
39189 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
39190
39191         PR rtl-optimization/78952
39192         * config/i386/i386.md (any_extract): New code iterator.
39193         (*insvqi_2): Use any_extract for source operand.
39194         (*insvqi_3): Use any_shiftrt for source operand.
39195
39196 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
39197
39198         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
39199         New function.
39200         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
39201
39202 2017-01-18  Matthias Klose  <doko@ubuntu.com>
39203
39204         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
39205
39206 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39207
39208         * config/rs6000/altivec.h (vec_bperm): Change #define.
39209         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
39210         (altivec_vbpermq2): New define_insn.
39211         (altivec_vbpermd): Likewise.
39212         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
39213         function interface.
39214         (VBPERMD): Likewise.
39215         (VBPERM): New polymorphic function interface.
39216         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
39217         Add entries for P9V_BUILTIN_VEC_VBPERM.
39218         * doc/extend.texi: Add interfaces for vec_bperm.
39219
39220 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39221
39222         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
39223         first letter of error messages.
39224         (s390_resolve_overloaded_builtin): Likewise.
39225         * config/s390/s390.c (s390_expand_builtin): Likewise.
39226         (s390_invalid_arg_for_unprototyped_fn): Likewise.
39227         (s390_valid_target_attribute_inner_p): Likewise.
39228         * config/s390/s390.md ("tabort"): Likewise.
39229
39230 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
39231
39232         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
39233         (ISA_AVOID_DIV_HILO): New macro.
39234         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
39235         (ISA_HAS_DDIV): Likewise.
39236
39237 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39238
39239         * doc/invoke.texi (fabi-version): Correct number of occurrences.
39240
39241 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39242
39243         * doc/invoke.texi (fabi-version): Spelling fix.
39244
39245 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39246
39247         PR c++/70182
39248         * doc/invoke.texi (fabi-version): Mention mangling fix for
39249         operator names.
39250
39251 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39252
39253         PR c++/77489
39254         * doc/invoke.texi (fabi-version): Document discriminator mangling.
39255
39256 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39257
39258         PR target/78875
39259         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
39260         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
39261         the new options.
39262         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
39263         flexible settings.
39264         (stack_protect_test): Ditto.
39265         * config/rs6000/rs6000.opt (mstack-protector-guard=,
39266         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
39267         options.
39268         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
39269         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
39270         -mstack-protector-guard-offset=.
39271         (RS/6000 and PowerPC Options): Ditto.
39272
39273 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39274
39275         * config/i386/i386.h (MASK_CLASS_P): New define.
39276         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
39277         there are no registers from different register sets also when
39278         mask registers are used.  Update function comment.
39279         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
39280         to (*k/*r) and (*k/*km) alternatives.
39281
39282 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
39283
39284         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
39285         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
39286         (EH_RETURN_HANDLER_RTX): New define.
39287         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
39288         Force frame pointer in EH return functions.
39289         (aarch64_expand_epilogue): Add barrier for eh_return.
39290         (aarch64_final_eh_return_addr): Remove.
39291         (aarch64_eh_return_handler_rtx): New function.
39292         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
39293         Remove.
39294         (aarch64_eh_return_handler_rtx): New prototype.
39295
39296 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39297
39298         * config/rs6000/altivec.h (vec_rlmi): New #define.
39299         (vec_vrlnm): Likewise.
39300         (vec_rlnm): Likewise.
39301         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
39302         (UNSPEC_VRLNM): Likewise.
39303         (VIlong): New mode iterator.
39304         (altivec_vrl<VI_char>mi): New define_insn.
39305         (altivec_vrl<VI_char>nm): Likewise.
39306         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
39307         function entry.
39308         (VRLDNM): Likewise.
39309         (RLNM): New polymorphic function entry.
39310         (VRLWMI): New monomorphic function entry.
39311         (VRLDMI): Likewise.
39312         (RLMI): New polymorphic function entry.
39313         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
39314         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
39315         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
39316         vec_vrlnm.
39317
39318 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39319
39320         PR debug/78839
39321         * dwarf2out.c (field_byte_offset): Restore the
39322         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
39323         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
39324         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
39325         of build2 + fold.
39326
39327 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39328
39329         PR ada/67205
39330         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
39331
39332 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39333
39334         PR debug/71669
39335         * dwarf2out.c (add_data_member_location_attribute): For constant
39336         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
39337         instead of DW_AT_data_member_location, DW_AT_bit_offset and
39338         DW_AT_byte_size attributes.
39339
39340 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39341
39342         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
39343         after forcing to constant memory when the code model is medium.
39344
39345 2017-01-17  Julia Koval  <julia.koval@intel.com>
39346
39347         PR target/76731
39348         * config/i386/avx512fintrin.h
39349         (_mm512_i32gather_ps): Change __addr type to void const*.
39350         (_mm512_mask_i32gather_ps): Ditto.
39351         (_mm512_i32gather_pd): Ditto.
39352         (_mm512_mask_i32gather_pd): Ditto.
39353         (_mm512_i64gather_ps): Ditto.
39354         (_mm512_mask_i64gather_ps): Ditto.
39355         (_mm512_i64gather_pd): Ditto.
39356         (_mm512_mask_i64gather_pd): Ditto.
39357         (_mm512_i32gather_epi32): Ditto.
39358         (_mm512_mask_i32gather_epi32): Ditto.
39359         (_mm512_i32gather_epi64): Ditto.
39360         (_mm512_mask_i32gather_epi64): Ditto.
39361         (_mm512_i64gather_epi32): Ditto.
39362         (_mm512_mask_i64gather_epi32): Ditto.
39363         (_mm512_i64gather_epi64): Ditto.
39364         (_mm512_mask_i64gather_epi64): Ditto.
39365         (_mm512_i32scatter_ps): Change __addr type to void*.
39366         (_mm512_mask_i32scatter_ps): Ditto.
39367         (_mm512_i32scatter_pd): Ditto.
39368         (_mm512_mask_i32scatter_pd): Ditto.
39369         (_mm512_i64scatter_ps): Ditto.
39370         (_mm512_mask_i64scatter_ps): Ditto.
39371         (_mm512_i64scatter_pd): Ditto.
39372         (_mm512_mask_i64scatter_pd): Ditto.
39373         (_mm512_i32scatter_epi32): Ditto.
39374         (_mm512_mask_i32scatter_epi32): Ditto.
39375         (_mm512_i32scatter_epi64): Ditto.
39376         (_mm512_mask_i32scatter_epi64): Ditto.
39377         (_mm512_i64scatter_epi32): Ditto.
39378         (_mm512_mask_i64scatter_epi32): Ditto.
39379         (_mm512_i64scatter_epi64): Ditto.
39380         (_mm512_mask_i64scatter_epi64): Ditto.
39381         * config/i386/avx512pfintrin.h
39382         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
39383         (_mm512_mask_prefetch_i32gather_ps): Ditto.
39384         (_mm512_mask_prefetch_i64gather_pd): Ditto.
39385         (_mm512_mask_prefetch_i64gather_ps): Ditto.
39386         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
39387         (_mm512_prefetch_i32scatter_ps): Ditto.
39388         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
39389         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
39390         (_mm512_prefetch_i64scatter_pd): Ditto.
39391         (_mm512_prefetch_i64scatter_ps): Ditto.
39392         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
39393         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
39394         * config/i386/avx512vlintrin.h
39395         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
39396         (_mm_mmask_i32gather_ps): Ditto.
39397         (_mm256_mmask_i32gather_pd): Ditto.
39398         (_mm_mmask_i32gather_pd): Ditto.
39399         (_mm256_mmask_i64gather_ps): Ditto.
39400         (_mm_mmask_i64gather_ps): Ditto.
39401         (_mm256_mmask_i64gather_pd): Ditto.
39402         (_mm_mmask_i64gather_pd): Ditto.
39403         (_mm256_mmask_i32gather_epi32): Ditto.
39404         (_mm_mmask_i32gather_epi32): Ditto.
39405         (_mm256_mmask_i32gather_epi64): Ditto.
39406         (_mm_mmask_i32gather_epi64): Ditto.
39407         (_mm256_mmask_i64gather_epi32): Ditto.
39408         (_mm_mmask_i64gather_epi32): Ditto.
39409         (_mm256_mmask_i64gather_epi64): Ditto.
39410         (_mm_mmask_i64gather_epi64): Ditto.
39411         (_mm256_i32scatter_ps): Change __addr type to void*.
39412         (_mm256_mask_i32scatter_ps): Ditto.
39413         (_mm_i32scatter_ps): Ditto.
39414         (_mm_mask_i32scatter_ps): Ditto.
39415         (_mm256_i32scatter_pd): Ditto.
39416         (_mm256_mask_i32scatter_pd): Ditto.
39417         (_mm_i32scatter_pd): Ditto.
39418         (_mm_mask_i32scatter_pd): Ditto.
39419         (_mm256_i64scatter_ps): Ditto.
39420         (_mm256_mask_i64scatter_ps): Ditto.
39421         (_mm_i64scatter_ps): Ditto.
39422         (_mm_mask_i64scatter_ps): Ditto.
39423         (_mm256_i64scatter_pd): Ditto.
39424         (_mm256_mask_i64scatter_pd): Ditto.
39425         (_mm_i64scatter_pd): Ditto.
39426         (_mm_mask_i64scatter_pd): Ditto.
39427         (_mm256_i32scatter_epi32): Ditto.
39428         (_mm256_mask_i32scatter_epi32): Ditto.
39429         (_mm_i32scatter_epi32): Ditto.
39430         (_mm_mask_i32scatter_epi32): Ditto.
39431         (_mm256_i32scatter_epi64): Ditto.
39432         (_mm256_mask_i32scatter_epi64): Ditto.
39433         (_mm_i32scatter_epi64): Ditto.
39434         (_mm_mask_i32scatter_epi64): Ditto.
39435         (_mm256_i64scatter_epi32): Ditto.
39436         (_mm256_mask_i64scatter_epi32): Ditto.
39437         (_mm_i64scatter_epi32): Ditto.
39438         (_mm_mask_i64scatter_epi32): Ditto.
39439         (_mm256_i64scatter_epi64): Ditto.
39440         (_mm256_mask_i64scatter_epi64): Ditto.
39441         (_mm_i64scatter_epi64): Ditto.
39442         (_mm_mask_i64scatter_epi64): Ditto.
39443         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
39444         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
39445         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
39446         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
39447         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
39448         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
39449         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
39450         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
39451         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
39452         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
39453         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
39454         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
39455         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
39456         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
39457         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
39458         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
39459         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
39460         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
39461         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
39462         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
39463         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
39464         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
39465         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
39466         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
39467         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
39468         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
39469         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
39470         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
39471         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
39472         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
39473         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
39474         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
39475         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
39476         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
39477         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
39478         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
39479         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
39480         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
39481         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
39482         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
39483         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
39484         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
39485         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
39486         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
39487         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
39488         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
39489         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
39490         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
39491         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
39492         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
39493         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
39494         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
39495         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
39496         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
39497         definitions accordingly.
39498
39499 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
39500             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
39501
39502         PR target/79079
39503         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
39504         gen_lowpart.
39505
39506 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
39507
39508         PR target/79058
39509         * ira-conflicts.c (ira_build_conflicts): Update total conflict
39510         hard regs for inner regno.
39511
39512 2017-01-17  Martin Liska  <mliska@suse.cz>
39513
39514         PR ipa/71207
39515         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
39516         assumption and add comment.
39517
39518 2017-01-17  Nathan Sidwell  <nathan@acm.org>
39519
39520         * ipa-visibility.c (localize_node): New function, broken out of ...
39521         (function_and_variable_visibility): ... here. Call it.
39522
39523 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39524
39525         PR middle-end/77445
39526         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
39527         correctly set frequency of oudgoing edge.
39528         (duplicate_thread_path): Fix profile updating.
39529
39530 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39531
39532         PR other/79046
39533         * configure.ac: Add GCC_BASE_VER.
39534         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
39535         version from BASE-VER file.
39536         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
39537         (gcc.o): Depend on $(BASEVER).
39538         * common.opt (dumpfullversion): New option.
39539         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
39540         * doc/invoke.texi: Document -dumpfullversion.
39541         * doc/install.texi: Document --with-gcc-major-version-only.
39542         * configure: Regenerated.
39543
39544 2017-01-17  Richard Biener  <rguenther@suse.de>
39545
39546         PR tree-optimization/71433
39547         * tree-vrp.c (register_new_assert_for): Merge same asserts
39548         on all incoming edges.
39549         (process_assert_insertions_for): Handle insertions at the
39550         beginning of BBs.
39551
39552 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
39553
39554         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
39555         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
39556
39557 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
39558
39559         PR target/78633
39560         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
39561         RTL sharing.
39562
39563 2017-01-17  Alan Modra  <amodra@gmail.com>
39564
39565         PR target/79066
39566         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
39567         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
39568         symbolic stack limit when pic.
39569
39570 2017-01-16  Martin Sebor  <msebor@redhat.com>
39571
39572         PR tree-optimization/78608
39573         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
39574
39575 2017-01-16  Jeff Law  <law@redhat.com>
39576
39577         Revert:
39578         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
39579         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
39580         for several include directories that may be relative to sysroot.
39581         * config/i386/x-mingw32 (gplus_includedir): Define.
39582         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
39583         (native_system_includedir): Likewise.
39584         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
39585         override if TARGET_SYSTEM_ROOT is defined.
39586         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
39587
39588         PR tree-optimization/79090
39589         PR tree-optimization/33562
39590         PR tree-optimization/61912
39591         PR tree-optimization/77485
39592         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
39593         and computed trims into the dump file.
39594
39595 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39596
39597         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
39598
39599 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
39600
39601         PR c/79089
39602         * gimplify.c (gimplify_init_constructor): If want_value and
39603         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
39604         fix.
39605
39606         PR target/79080
39607         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
39608         sequence.  Formatting fixes.
39609         (doloop_optimize): Formatting fixes.
39610
39611         PR driver/49726
39612         * gcc.c (debug_level_greater_than_spec_func): New function.
39613         (static_spec_functions): Add debug-level-gt spec function.
39614         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
39615         !g0.
39616         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
39617         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
39618         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
39619         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
39620         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
39621         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
39622
39623 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
39624
39625         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
39626         QImode fixups to general and mask registers only.
39627
39628 2017-01-16  Carl Love  <cel@us.ibm.com>
39629
39630         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
39631         for built-in functions
39632         vector signed char vec_nabs (vector signed char)
39633         vector signed short vec_nabs (vector signed short)
39634         vector signed int vec_nabs (vector signed int)
39635         vector signed long long vec_nabs (vector signed long long)
39636         vector float vec_nabs (vector float)
39637         vector double vec_nabs (vector double)
39638         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
39639         and NABS overload.
39640         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
39641         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
39642         * doc/extend.texi: Update the documentation file for the new built-in
39643         functions.
39644
39645 2017-01-16  Martin Sebor  <msebor@redhat.com>
39646
39647         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
39648         message.
39649
39650 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39651
39652         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
39653         UNSPEC_VSX__XXSPLTD to require special splat handling.
39654
39655 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
39656
39657         PR bootstrap/78616
39658         * system.h: Poison strndup.
39659
39660 2017-01-16  Alan Modra  <amodra@gmail.com>
39661
39662         PR target/79098
39663         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
39664         use a switch.
39665
39666 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
39667
39668         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
39669
39670 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
39671
39672         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
39673         call recog here.  Assert that INSN_CODE (insn) is non-negative.
39674
39675 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
39676
39677         PR target/72749
39678         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
39679         fallthrough.
39680         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
39681         in the currently scheduled RTL fragment.
39682
39683 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
39684
39685         PR rtl-optimization/78751
39686         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
39687         give up.
39688
39689 2017-01-14  Jeff Law  <law@redhat.com>
39690
39691         PR tree-optimization/79090
39692         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
39693         variable length stores.
39694         (compute_trims): Delete dead assignment to *trim_tail.
39695         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
39696         zero length.
39697
39698 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
39699
39700         PR rtl-optimization/78626
39701         PR rtl-optimization/78727
39702         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
39703         of a block, and split such blocks after everything else is finished.
39704
39705 2017-01-14  Alan Modra  <amodra@gmail.com>
39706
39707         PR target/72749
39708         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
39709         target legitimate_combined_insn.
39710         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
39711         (rs6000_legitimate_combined_insn): New function.
39712         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
39713         all uses.
39714         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
39715         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
39716         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
39717
39718 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
39719
39720         * doc/frontends.texi (G++ and GCC): Remove references to Java.
39721
39722 2017-01-13  Jeff Law  <law@redhat.com>
39723
39724         PR tree-optimization/33562
39725         PR tree-optimization/61912
39726         PR tree-optimization/77485
39727         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
39728         a statement.
39729         (delete_dead_assignment): Likewise.
39730         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
39731         statement to delete_dead_call and delete_dead_assignment.
39732
39733 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
39734
39735         PR c/78304
39736         * substring-locations.c (format_warning_va): Strengthen case 1 so
39737         that both endpoints of the substring must be within the format
39738         range for just the substring to be printed.
39739
39740 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
39741
39742         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
39743         * config/i386/i386.c (ix86_target_string): Add missing options
39744         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
39745         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
39746         flags_other and ix86_target_other to flags2_other.  Display unknown
39747         isa2 options.
39748         (ix86_valid_target_attribute_inner_p): Add missing options and
39749         reorder options by implied ISAs, as in ix86_target_string.
39750
39751 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39752
39753         * hash-table.h (hash_table::too_empty_p): New function.
39754         (hash_table::expand): Use it.
39755         (hash_table::traverse): Likewise.
39756         (hash_table::empty_slot): Use sizeof (value_type) instead of
39757         sizeof (PTR) to convert bytes to elements.  Shrink the table
39758         if the current size is excessive for the current number of
39759         elements.
39760
39761 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39762
39763         * ira-costs.c (record_reg_classes): Break from the inner loop
39764         early once alt_fail is known to be true.  Update outer loop
39765         handling accordingly.
39766
39767 2017-01-13  Jeff Law  <law@redhat.com>
39768
39769         * tree-ssa-dse.c (decrement_count): New function.
39770         (increment_start_addr, maybe_trim_memstar_call): Likewise.
39771         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
39772         when we know the partially dead statement is a mem* function.
39773
39774         PR tree-optimization/61912
39775         PR tree-optimization/77485
39776         * tree-ssa-dse.c: Include expr.h.
39777         (maybe_trim_constructor_store): New function.
39778         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
39779
39780         PR tree-optimization/33562
39781         PR tree-optimization/61912
39782         PR tree-optimization/77485
39783         * doc/invoke.texi: Document new dse-max-object-size param.
39784         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
39785         * tree-ssa-dse.c: Include params.h.
39786         (dse_store_status): New enum.
39787         (initialize_ao_ref_for_dse): New, partially extracted from
39788         dse_optimize_stmt.
39789         (valid_ao_ref_for_dse, normalize_ref): New.
39790         (setup_live_bytes_from_ref, compute_trims): Likewise.
39791         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
39792         (maybe_trim_partially_dead_store): Likewise.
39793         (maybe_trim_complex_store): Likewise.
39794         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
39795         Track what bytes live from the original store.  Return tri-state
39796         for dead, partially dead or live.
39797         (dse_dom_walker): Add constructor, destructor and new private members.
39798         (delete_dead_call, delete_dead_assignment): New extracted from
39799         dse_optimize_stmt.
39800         (dse_optimize_stmt): Make a member of dse_dom_walker.
39801         Use initialize_ao_ref_for_dse.
39802
39803         PR tree-optimization/33562
39804         PR tree-optimization/61912
39805         PR tree-optimization/77485
39806         * sbitmap.h (bitmap_count_bits): Prototype.
39807         (bitmap_clear_range, bitmap_set_range): Likewise.
39808         * sbitmap.c (bitmap_clear_range): New function.
39809         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
39810
39811 2017-01-13  Martin Liska  <mliska@suse.cz>
39812
39813         PR ipa/79043
39814         * function.c (set_cfun): Add new argument force.
39815         * function.h (set_cfun): Likewise.
39816         * ipa-inline-transform.c (inline_call): Use the function when
39817         strict alising from is dropped for function we inline to.
39818
39819 2017-01-13  Richard Biener  <rguenther@suse.de>
39820
39821         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
39822         for dumping GIMPLE INTEGER_CSTs.
39823
39824 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39825
39826         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
39827         to 201112L since C++17.
39828
39829 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
39830
39831         PR sanitizer/78887
39832         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
39833         if -fsanitize=kernel-address is present.
39834
39835 2017-01-13  Richard Biener  <rguenther@suse.de>
39836
39837         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
39838         as _Literal ( type ) number in case usual suffixes do not
39839         preserve all information.
39840
39841 2017-01-13  Richard Biener  <rguenther@suse.de>
39842
39843         PR tree-optimization/77283
39844         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
39845         and ssa-iterators.h.
39846         (is_feasible_trace): Implement a cost model based on joiner
39847         PHI node uses.
39848
39849 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
39850
39851         PR target/79004
39852         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
39853         char or short to __float128/_Float128 directly.
39854
39855 2017-01-12  Martin Sebor  <msebor@redhat.com>
39856
39857         to -Wformat-overflow.
39858         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
39859         (min_bytes_remaining): Same.
39860         (get_string_length): Same.
39861         (format_string): Same.
39862         (format_directive): Same.
39863         (add_bytes): Same.
39864         (pass_sprintf_length::handle_gimple_call): Same.
39865
39866 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
39867
39868         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
39869         info.nowrite calls with no lhs that can't throw.  Return bool
39870         whether gsi_remove has been called or not.
39871         (pass_sprintf_length::handle_gimple_call): Return bool whether
39872         try_substitute_return_value called gsi_remove.  Formatting fix.
39873         (pass_sprintf_length::execute): Don't use gsi_remove if
39874         handle_gimple_call returned true.
39875
39876         PR bootstrap/79069
39877         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
39878         be removed due to side-effects, don't remove following barrier nor
39879         turn the successor edge into fallthru edge.
39880
39881 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39882
39883         PR target/79044
39884         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
39885         element-reversing loads and stores as not swappable.
39886
39887 2017-01-12  Nathan Sidwell  <nathan@acm.org>
39888             Nicolai Stange  <nicstange@gmail.com>
39889
39890         * combine.c (try_combine): Don't ignore result of overlap checking
39891         loop.  Combine overlap & asm check into single loop.
39892
39893 2017-01-12  Richard Biener  <rguenther@suse.de>
39894
39895         * tree-pretty-print.c (dump_generic_node): Provide -gimple
39896         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
39897
39898 2017-01-12  Richard Biener  <rguenther@suse.de>
39899
39900         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
39901         and TS_TARGET_OPTION directly derive from TS_BASE.
39902         * tree-core.h (tree_optimization_option): Derive from tree_base.
39903         (tree_target_option): Likewise.
39904
39905 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
39906
39907         * config/i386/i386.c (memory_address_length): Increase len
39908         only when rip_relative_addr_p returns false.
39909
39910 2017-01-11  Julia Koval  <julia.koval@intel.com>
39911
39912         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
39913         (OPTION_MASK_ISA_SGX_SET): New.
39914         (ix86_handle_option): Handle OPT_msgx.
39915         * config.gcc: Added sgxintrin.h.
39916         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
39917         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
39918         * config/i386/i386.c (ix86_target_string): Add -msgx.
39919         (PTA_SGX): New.
39920         (ix86_option_override_internal): Handle new options.
39921         (ix86_valid_target_attribute_inner_p): Add sgx.
39922         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
39923         * config/i386/i386.opt: Add msgx.
39924         * config/i386/sgxintrin.h: New file.
39925         * config/i386/x86intrin.h: Add sgxintrin.h.
39926
39927 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
39928
39929         PR c++/71537
39930         * fold-const.c (maybe_nonzero_address): Return 1 for function
39931         local objects.
39932         (tree_single_nonzero_warnv_p): Don't handle function local objects
39933         here.
39934
39935         PR c++/72813
39936         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
39937         of c-header.
39938
39939 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
39940
39941         PR driver/78877
39942         * opts.c: Include "spellcheck.h"
39943         (struct string_fragment): New struct.
39944         (struct edit_distance_traits<const string_fragment &>): New
39945         struct.
39946         (get_closest_sanitizer_option): New function.
39947         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
39948
39949 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
39950
39951         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
39952         by 12.
39953         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
39954         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
39955         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
39956         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
39957         for initial die_offset if dwarf_split_debug_info.
39958         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
39959         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
39960         fields.
39961         (output_skeleton_debug_sections): Formatting fix.  Use
39962         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
39963         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
39964
39965 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
39966
39967         * config/arm/cortex-a53.md: Add bypasses for
39968         cortex_a53_r2f_cvt.
39969         (cortex_a53_r2f): Only use for transfers.
39970         (cortex_a53_f2r): Likewise.
39971         (cortex_a53_r2f_cvt): Add reservation for conversions.
39972         (cortex_a53_f2r_cvt): Likewise.
39973
39974 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
39975
39976         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
39977         to all inlined functions, change static to extern.
39978
39979 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
39980
39981         PR target/78253
39982         * config/arm/arm.c (legitimize_pic_address): Handle reference to
39983         weak symbol.
39984         (arm_assemble_integer): Likewise.
39985
39986 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
39987
39988         * config.gcc: Use new awk script to check CPU, FPU and architecture
39989         parameters for --with-... options.
39990         * config/arm/parsecpu.awk: New file
39991         * config/arm/arm-cpus.in: New file.
39992         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
39993         files.
39994         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
39995         files.
39996         * config/arm/t-arm: Update dependency rules.
39997         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
39998         of processing .def files.
39999         * config/arm/genopt.sh: Deleted.
40000         * config/arm/gentune.sh: Deleted.
40001         * config/arm/arm-cores.def: Deleted.
40002         * config/arm/arm-arches.def: Deleted.
40003         * config/arm/arm-fpus.def: Deleted.
40004         * config/arm/arm-tune.md: Regenerated.
40005         * config/arm/arm-tables.opt: Regenerated.
40006         * config/arm/arm-cpu.h: New generated file.
40007         * config/arm/arm-cpu-data.h: New generated file.
40008         * config/arm/arm-cpu-cdata.h: New generated file.
40009
40010 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
40011
40012         PR lto/79042
40013         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
40014         bit.
40015         (input_varpool_node): Unpack dynamically_initialized bit.
40016
40017 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
40018
40019         PR rtl-optimization/79032
40020         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
40021         the alignment of the adjusted memory reference against that of MODE,
40022         instead of the alignment of the original memory reference.
40023
40024 2017-01-11  Martin Jambor  <mjambor@suse.cz>
40025
40026         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
40027         test.
40028         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
40029         decorated functions.
40030
40031 2017-01-11  Richard Biener  <rguenther@suse.de>
40032
40033         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
40034         set range/nonnull info for PHI results.  Do not set it on
40035         stmts marked for removal.
40036
40037 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
40038
40039         * expr.c (store_field): In the bitfield case, fetch the return value
40040         from the registers before applying a single big-endian adjustment.
40041         Always do a final load for a BLKmode value not larger than a word.
40042
40043 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
40044
40045         PR c++/77949
40046         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40047         that we correctly handle column numbers greater than
40048         LINE_MAP_MAX_COLUMN_NUMBER.
40049
40050 2017-01-10  Martin Sebor  <msebor@redhat.com>
40051
40052         PR middle-end/78245
40053         * gimple-ssa-sprintf.c (get_destination_size): Call
40054         {init,fini}object_sizes.
40055         * tree-object-size.c (addr_object_size): Adjust.
40056         (pass_through_call): Adjust.
40057         (pass_object_sizes::execute): Adjust.
40058         * tree-object-size.h (fini_object_sizes): Declare.
40059
40060 2017-01-10  Martin Sebor  <msebor@redhat.com>
40061
40062         PR tree-optimization/78775
40063         * builtins.c (get_size_range): Move...
40064         * calls.c: ...to here.
40065         (alloc_max_size): Accept zero argument.
40066         (operand_signed_p): Remove.
40067         (maybe_warn_alloc_args_overflow): Call get_size_range.
40068         * calls.h (get_size_range): Declare.
40069
40070 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
40071
40072         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
40073         from TI's devices.csv file as of September 2016.
40074         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
40075
40076 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40077
40078         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
40079         * doc/invoke.texi: Likewise.
40080         * doc/md.texi: Likewise.
40081         * doc/objc.texi: Likewise.
40082
40083 2017-01-10  Joshua Conner  <joshconner@google.com>
40084
40085         * config/arm/fuchsia-elf.h: New file.
40086         * config/fuchsia.h: New file.
40087         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
40088         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
40089         targets.
40090         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
40091
40092 2016-01-10  Richard Biener  <rguenther@suse.de>
40093
40094         PR tree-optimization/79034
40095         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
40096         Propagate out degenerate PHIs in the joiner.
40097
40098 2017-01-10  Martin Liska  <mliska@suse.cz>
40099
40100         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
40101         (sort_congruence_classes_by_decl_uid): Likewise.
40102         (sort_congruence_class_groups_by_decl_uid): Likewise.
40103         (sem_item_optimizer::merge_classes): Sort class, groups in these
40104         classes and members in the groups by DECL_UID of declarations.
40105         This would make merge operations stable.
40106
40107 2017-01-10  Martin Liska  <mliska@suse.cz>
40108
40109         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
40110         usage of m_classes_vec.
40111         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
40112         (sem_item_optimizer::get_group_by_hash): Likewise.
40113         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
40114         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
40115         (sem_item_optimizer::verify_classes): Likewise.
40116         (sem_item_optimizer::process_cong_reduction): Likewise.
40117         (sem_item_optimizer::dump_cong_classes): Likewise.
40118         (sem_item_optimizer::merge_classes): Likewise.
40119         * ipa-icf.h (congruence_class_hash): Rename from
40120         congruence_class_group_hash.  Remove declaration of m_classes_vec.
40121
40122 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
40123
40124         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
40125         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
40126         * config.gcc: Add avx512vpopcntdqintrin.h.
40127         * config/i386/avx512vpopcntdqintrin.h: New.
40128         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
40129         * config/i386/i386-builtin-types.def: Add new types.
40130         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
40131         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
40132         __builtin_ia32_vpopcountq_v8di_mask): New.
40133         * config/i386/i386-c.c (ix86_target_macros_internal): Define
40134         __AVX512VPOPCNTDQ__.
40135         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
40136         (PTA_AVX512VPOPCNTDQ): Define.
40137         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
40138         TARGET_AVX512VPOPCNTDQ_P): Define.
40139         * config/i386/i386.opt: Add mavx512vpopcntdq.
40140         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
40141         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
40142
40143 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40144
40145         PR middle-end/77484
40146         * predict.def (PRED_CALL): Set to 67.
40147
40148 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
40149
40150         * expr.c (store_field): In the bitfield case, if the value comes from
40151         a function call and is of an aggregate type returned in registers, do
40152         not modify the field mode; extract the value in all cases if the mode
40153         is BLKmode and the size is not larger than a word.
40154
40155 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
40156
40157         PR target/71017
40158         * config/i386/cpuid.h: Fix undefined behavior.
40159
40160 2017-01-04  Jeff Law  <law@redhat.com>
40161
40162         PR tree-optimization/79007
40163         PR tree-optimization/67955
40164         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
40165         conservative for pt.null when flag_non_call_exceptions is on.
40166
40167 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40168
40169         PR translation/79019
40170         PR translation/79020
40171         * params.def (PARAM_INLINE_MIN_SPEEDUP,
40172         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
40173         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
40174         in descriptions.
40175         * config/avr/avr.opt (maccumulate-args): Likewise.
40176         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
40177         * common.opt (freport-bug): Likewise.
40178         * cif-code.def (CIF_FINAL_ERROR): Likewise.
40179         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
40180         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
40181         translatable string.
40182         * config/i386/i386.c (function_value_32): Likewise.
40183         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
40184         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
40185         Likewise.
40186         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
40187         * common/config/msp430/msp430-common.c (msp430_handle_option):
40188         Likewise.
40189         * symtab.c (symtab_node::verify_base): Likewise.
40190         * opts.c (set_debug_level): Likewise.
40191         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
40192         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
40193         missing whitespace to translatable strings.
40194         * config/avr/avr.md (bswapsi2): Fix typo in comment.
40195         * config/sh/superh.h: Likewise.
40196         * config/i386/xopintrin.h: Likewise.
40197         * config/i386/znver1.md: Likewise.
40198         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
40199         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
40200         * double-int.h (struct double_int): Likewise.
40201         * double-int.c (div_and_round_double): Likewise.
40202         * wide-int.cc: Likewise.
40203         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
40204         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
40205         * cfgcleanup.c (crossjumps_occured): Renamed to ...
40206         (crossjumps_occurred): ... this.
40207         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
40208         Adjust all uses.
40209
40210         PR tree-optimization/78899
40211         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
40212         returning bool return struct loop *, NULL for failure and the new
40213         loop on success.
40214         (versionable_outer_loop_p): Don't version outer loop if it has
40215         dont_vectorized bit set.
40216         (tree_if_conversion): When versioning outer loop, ensure
40217         tree_if_conversion is performed also on the inner loop of the
40218         non-vectorizable outer loop copy.
40219         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
40220         LOOP_VECTORIZED in inner loop of the scalar outer loop and
40221         prevent vectorization of it.
40222         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
40223         the outer loop vectorization of the non-scalar version is attempted
40224         before vectorization of the inner loop in scalar version.  If
40225         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
40226         vectorization of its inner loop.
40227         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
40228         has 2 inner loops, rename also on edges from bb whose single pred
40229         is outer_loop->header.  Fix typo in function comment.
40230
40231 2017-01-09  Martin Sebor  <msebor@redhat.com>
40232
40233         PR bootstrap/79033
40234         * asan.c (asan_emit_stack_protection): Increase local buffer size
40235         to avoid snprintf truncation warning.
40236
40237 2017-01-09  Andrew Pinski  <apinski@cavium.com>
40238
40239         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
40240         to reference thunderx2t99 for the tuning structure
40241         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
40242         Rename to ...
40243         (thunderx2t99_extra_costs): This.
40244         * config/aarch64/aarch64-tune.md: Regenerate.
40245         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
40246         (vulcan_addrcost_table): This.
40247         (vulcan_regmove_cost): Rename to ...
40248         (thunderx2t99_regmove_cost): This.
40249         (vulcan_vector_cost): Rename to ...
40250         (thunderx2t99_vector_cost): this.
40251         (vulcan_branch_cost): Rename to ...
40252         (thunderx2t99_branch_cost): This.
40253         (vulcan_tunings): Rename to ...
40254         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
40255         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
40256
40257 2017-01-09  Martin Jambor  <mjambor@suse.cz>
40258
40259         PR ipa/78365
40260         PR ipa/78599
40261         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
40262         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
40263         (propagate_vr_accross_jump_function): Use the above function for all
40264         value range computations for pass-through jump functions and type
40265         converasion from explicit value range values.
40266         (ipcp_propagate_stage): Do not attempt to deduce types of formal
40267         parameters from TYPE_ARG_TYPES.
40268         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
40269         (ipa_write_node_info): Stream type of the actual argument.
40270         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
40271
40272 2017-01-09  Martin Liska  <mliska@suse.cz>
40273
40274         PR pch/78970
40275         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
40276         (lookup_compiler): Do not show error message with have_E.
40277
40278 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40279
40280         PR tree-optimization/78938
40281         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
40282         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
40283         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
40284         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
40285         fixes.
40286
40287 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40288
40289         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
40290         is const0_rtx.
40291
40292 2017-01-09  Richard Biener  <rguenther@suse.de>
40293
40294         PR tree-optimization/78997
40295         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
40296         name condition properly.
40297
40298 2017-01-09  Richard Biener  <rguenther@suse.de>
40299
40300         PR debug/79000
40301         * dwarf2out.c (is_cxx): New overload with context.
40302         (is_naming_typedef_decl): Use it.
40303
40304 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40305
40306         * invoke.texi (Option Summary): Correct spacing in option lists
40307         and add line breaks to fix over-long lines.
40308
40309 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40310
40311         PR middle-end/17660
40312
40313         * extend.texi (Common Variable Attributes): Add xref to GCC
40314         Internals manual to explain mode attribute keywords.
40315
40316 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40317
40318         PR other/16519
40319         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
40320         and Preprocessor Options.
40321         (Options for Linking): Document -pthread here....
40322         (RS/6000 and PowerPC Options): ...not here.
40323         (Solaris 2 Options): ...or here.
40324         * doc/cppopts.texi: Document -pthread.
40325
40326 2017-01-08  Martin Sebor  <msebor@redhat.com>
40327
40328         PR middle-end/77708
40329         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
40330         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
40331         New member functions.
40332         (format_directive): Used them.
40333         (add_bytes): Same.
40334         (pass_sprintf_length::handle_gimple_call): Same.
40335         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
40336         to avoid truncation for any argument.
40337         (extract_affine_mul): Same.
40338         * tree.c (get_file_function_name): Same.
40339
40340 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40341
40342         PR middle-end/77484
40343         * predict.def (PRED_INDIR_CALL): Set to 86.
40344
40345 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40346
40347         PR preprocessor/54124
40348         * doc/cppopts.texi: Reformat -d subtable to list the full name
40349         of the options.  Add cross-reference to the docs for the general
40350         compiler -d options.
40351         * doc/invoke.texi (Developer Options): Add cross-reference to the
40352         preprocessor-specific -d option documentation.
40353
40354 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40355
40356         PR preprocessor/13498
40357         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
40358         redudant material, and reflect new command-line options.
40359         (System Headers): Likewise.
40360
40361 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40362
40363         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
40364         -isystem, and -idirafter.  Copy-edit.
40365         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
40366         default for -ftrack-macro-expansion.  Delete obsolete and
40367         badly-formatted implementation details about -fdebug-cpp output.
40368         * doc/cppwarnopts.texi: Copy-edit.
40369
40370 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
40371
40372         PR c++/72803
40373         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40374         that the transition from a max line width >= 1<<10 to narrower
40375         lines works correctly.
40376
40377 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
40378
40379         * doc/options.texi (PerFunction): New.
40380         * opt-functions.awk (switch_flags): Map both Optimization and
40381         PerFunction to CL_OPTIMIZATION.
40382         * opth-gen.awk: Test for PerFunction flag along with
40383         Optimization.
40384         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
40385         it only when the latter is present.  Skip those that don't in
40386         the hash function generator.
40387         * common.opt (fvar-tracking): Mark as PerFunction instead of
40388         Optimization.
40389         (fvar-tracking-assignments): Likewise.
40390         (fvar-tracking-assignments-toggle): Likewise.
40391         (fvar-tracking-uninit): Likewise.
40392
40393 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
40394
40395         PR translation/79018
40396         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
40397         the and store.
40398
40399 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
40400
40401         PR target/57583
40402         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
40403         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
40404         TARGET_LONG_JUMP_TABLE_OFFSETS.
40405         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
40406         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
40407         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
40408         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
40409         * config/m68k/m68k.md (tablejump expander): Likewise.
40410         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
40411         TARGET_LONG_JUMP_TABLE_OFFSETS.
40412         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
40413         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
40414
40415 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
40416             David Holsgrove <david.holsgrove@xilinx.com>
40417
40418         * common/config/microblaze/microblaze-common.c
40419         (TARGET_EXCEPT_UNWIND_INFO): Remove.
40420         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
40421         New prototype.
40422         * config/microblaze/microblaze.c (microblaze_must_save_register)
40423         (microblaze_expand_epilogue, microblaze_return_addr): Handle
40424         calls_eh_return.
40425         (microblaze_eh_return): New function.
40426         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
40427         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
40428         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
40429         * config/microblaze/microblaze.md (eh_return): New pattern.
40430
40431 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
40432
40433         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
40434         GCC_DIAGNOSTIC_STRINGIFY): Define.
40435
40436         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
40437
40438 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40439
40440         * config/arm/arm.md (<mcrr>): New.
40441         (<mrrc>): New.
40442         * config/arm/arm.c (arm_arch5te): New.
40443         (arm_option_override): Set arm_arch5te.
40444         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
40445         and mrrc2.
40446         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
40447         (arm_mcrr_qualifiers): ... this. New.
40448         (MRRC_QUALIFIERS): Define to...
40449         (arm_mrrc_qualifiers): ... this. New.
40450         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
40451         __arm_mrrc2): New.
40452         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
40453         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
40454         (MRRCI, mrrc, MRRC): New.
40455         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
40456         VUNSPEC_MRRC2): New.
40457
40458 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40459
40460         * config/arm/arm.md (<mcr>): New.
40461         (<mrc>): New.
40462         * config/arm/arm.c (arm_coproc_builtin_available): Add
40463         support for mcr, mrc, mcr2 and mrc2.
40464         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
40465         (arm_mcr_qualifiers): ... this. New.
40466         (MRC_QUALIFIERS): Define to ...
40467         (arm_mrc_qualifiers): ... this. New.
40468         (MCR_QUALIFIERS): Define to ...
40469         (arm_mcr_qualifiers): ... this. New.
40470         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
40471         __arm_mrc2): New.
40472         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
40473         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
40474         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
40475         VUNSPEC_MRC2): New.
40476
40477 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40478
40479         * config/arm/arm.md (*ldc): New.
40480         (*stc): New.
40481         (<ldc>): New.
40482         (<stc>): New.
40483         * config/arm/arm.c (arm_coproc_builtin_available): Add
40484         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
40485         (arm_coproc_ldc_stc_legitimate_address): New.
40486         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
40487         'qualifier_const_pointer'.
40488         (LDC_QUALIFIERS): Define to...
40489         (arm_ldc_qualifiers): ... this. New.
40490         (STC_QUALIFIERS): Define to...
40491         (arm_stc_qualifiers): ... this. New.
40492         * config/arm/arm-protos.h
40493         (arm_coproc_ldc_stc_legitimate_address): New.
40494         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
40495         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
40496         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
40497         stc2, stcl, stc2l): New.
40498         * config/arm/constraints.md (Uz): New.
40499         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
40500         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
40501         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
40502         VUNSPEC_STC2L): New.
40503
40504 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40505
40506         * config/arm/arm.md (<cdp>): New.
40507         * config/arm/arm.c (neon_const_bounds): Rename this ...
40508         (arm_const_bounds): ... this.
40509         (arm_coproc_builtin_available): New.
40510         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
40511         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
40512         (CDP_QUALIFIERS): Define to...
40513         (arm_cdp_qualifiers): ... this. New.
40514         (void_UP): Define.
40515         (arm_expand_builtin_args): Add case for 6 arguments.
40516         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
40517         (arm_const_bounds): ... this.
40518         (arm_coproc_builtin_available): New.
40519         * config/arm/arm_acle.h (__arm_cdp): New.
40520         (__arm_cdp2): New.
40521         * config/arm/arm_acle_builtins.def (cdp): New.
40522         (cdp2): New.
40523         * config/arm/iterators.md (CDPI,CDP,cdp): New.
40524         * config/arm/neon.md: Rename all 'neon_const_bounds' to
40525         'arm_const_bounds'.
40526         * config/arm/types.md (coproc): New.
40527         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
40528         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
40529         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
40530         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
40531
40532 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40533
40534         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
40535         (UBINOP_QUALIFIERS): New.
40536         (si_UP): Define.
40537         (acle_builtin_data): New. Change comment.
40538         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
40539         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
40540         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
40541         arm_acle_builtins.def.
40542         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
40543         (arm_init_acle_builtins): New.
40544         (CRC32_BUILTIN): Remove.
40545         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
40546         crc32cb, crc32ch and crc32cw.
40547         (arm_init_crc32_builtins): Remove.
40548         (arm_init_builtins): Use arm_init_acle_builtins rather
40549         than arm_init_crc32_builtins.
40550         (arm_expand_acle_builtin): New.
40551         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
40552         * config/arm/arm_acle_builtins.def: New.
40553
40554 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40555
40556         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
40557         (arm_builtin_datum): ... this.
40558         (arm_init_neon_builtin): Rename to ...
40559         (arm_init_builtin): ... this. Add a new parameters PREFIX
40560         and USE_SIG_IN_NAME.
40561         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
40562         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
40563         'arm_builtin_datum'.
40564         (arm_init_vfp_builtins): Likewise.
40565         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
40566         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
40567         (arm_expand_neon_args): Rename to ...
40568         (arm_expand_builtin_args): ... this. Rename builtin_arg
40569         enum values and differentiate between ARG_BUILTIN_MEMORY
40570         and ARG_BUILTIN_NEON_MEMORY.
40571         (arm_expand_neon_builtin_1): Rename to ...
40572         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
40573         values, arm_expand_builtin_args and add bool parameter NEON.
40574         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
40575         (arm_expand_vfp_builtin): Likewise.
40576         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
40577
40578 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40579
40580         PR middle-end/77484
40581         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
40582         * predict.c (tree_estimate_probability_bb): Reverse direction of
40583         polymorphic call predictor.
40584
40585 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
40586
40587         * passes.c (execute_one_pass): Split out pass-skipping logic into...
40588         (determine_pass_name_match): ...this new function and...
40589         (should_skip_pass_p): ...this new function.
40590
40591 2017-01-06  Nathan Sidwell  <nathan@acm.org>
40592
40593         * ipa-visibility.c (function_and_variable_visibility): Reformat
40594         comments and long lines.  Remove extrneous if.
40595         * symtab.c (symtab_node::make_decl_local): Fix code format.
40596         (symtab_node::set_section_for_node): Fix comment typo.
40597
40598 2017-01-06  Martin Liska  <mliska@suse.cz>
40599
40600         PR bootstrap/79003
40601         * lra-constraints.c: Rename invariant to lra_invariant.
40602         * predict.c (set_even_probabilities): Initialize e to NULL.
40603
40604 2017-01-05  Martin Sebor  <msebor@redhat.com>
40605
40606         PR tree-optimization/78910
40607         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
40608         (format_integer): Correct off-by-one error in the handling
40609         of precision with negative numbers in signed conversions..
40610
40611 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40612
40613         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
40614
40615 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
40616
40617         PR tree-optimization/71016
40618         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
40619         factor_out_conditional_conversion.  Formatting fix.
40620         (factor_out_conditional_conversion): Add cond_stmt argument.
40621         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
40622         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
40623         Formatting fix.
40624
40625 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
40626
40627         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
40628         read-rtl-function.o, and selftest-rtl.o.
40629         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
40630         (selftest::aarch64_test_loading_full_dump): New function.
40631         (selftest::aarch64_run_selftests): New function.
40632         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
40633         selftest::aarch64_run_selftests.
40634         * config/i386/i386.c
40635         (selftest::ix86_test_loading_dump_fragment_1): New function.
40636         (selftest::ix86_test_loading_call_insn): New function.
40637         (selftest::ix86_test_loading_full_dump): New function.
40638         (selftest::ix86_test_loading_unspec): New function.
40639         (selftest::ix86_run_selftests): Call the new functions.
40640         * emit-rtl.c (maybe_set_max_label_num): New function.
40641         * emit-rtl.h (maybe_set_max_label_num): New decl.
40642         * function.c (instantiate_decls): Guard call to
40643         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
40644         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
40645         "static".
40646         * gensupport.c (gen_reader::gen_reader): Pass "false"
40647         for new "compact" param of rtx_reader.
40648         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
40649         rather than an empty string for NULL strings.
40650         * read-md.c: Potentially include config.h rather than bconfig.h.
40651         Wrap include of errors.h with #ifdef GENERATOR_FILE.
40652         (have_error): New global, copied from errors.c.
40653         (md_reader::read_name): Rename to...
40654         (md_reader::read_name_1): ...this, adding "out_loc" param,
40655         and converting "missing name or number" to returning false, rather
40656         than failing.
40657         (md_reader::read_name): Reimplement in terms of read_name_1.
40658         (md_reader::read_name_or_nil): New function.
40659         (md_reader::read_string): Handle "(nil)" by returning NULL.
40660         (md_reader::md_reader): Add new param "compact".
40661         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
40662         (md_reader::read_file): New method.
40663         * read-md.h (md_reader::md_reader): Add new param "compact".
40664         (md_reader::read_file): New method.
40665         (md_reader::is_compact): New accessor.
40666         (md_reader::read_name): Convert return type from void to file_location.
40667         (md_reader::read_name_or_nil): New decl.
40668         (md_reader::read_name_1): New decl.
40669         (md_reader::m_compact): New field.
40670         (noop_reader::noop_reader): Pass "false" for new "compact" param
40671         of rtx_reader.
40672         (rtx_reader::rtx_reader): Add new "compact" param.
40673         (rtx_reader::read_rtx_operand): Make virtual and convert return
40674         type from void to rtx.
40675         (rtx_reader::read_until): New decl.
40676         (rtx_reader::handle_any_trailing_information): New virtual function.
40677         (rtx_reader::postprocess): New virtual function.
40678         (rtx_reader::finalize_string): New virtual function.
40679         (rtx_reader::m_in_call_function_usage): New field.
40680         (rtx_reader::m_reuse_rtx_by_id): New field.
40681         * read-rtl-function.c: New file.
40682         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
40683         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
40684         (selftest::verify_three_block_rtl_cfg): New decl.
40685         * read-rtl-function.h: New file.
40686         * read-rtl.c: Potentially include config.h rather than bconfig.h.
40687         For host, include function.h, memmodel.h, and emit-rtl.h.
40688         (one_time_initialization): New function.
40689         (struct compact_insn_name): New struct.
40690         (compact_insn_names): New array.
40691         (find_code): Handle insn codes in compact dumps.
40692         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
40693         (bind_subst_iter_and_attr): Likewise.
40694         (add_condition_to_string): Likewise.
40695         (add_condition_to_rtx): Likewise.
40696         (apply_attribute_uses): Likewise.
40697         (add_current_iterators): Likewise.
40698         (apply_iterators): Likewise.
40699         (initialize_iterators): Guard usage of apply_subst_iterator with
40700         #ifdef GENERATOR_FILE.
40701         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
40702         (md_reader::read_mapping): Likewise.
40703         (add_define_attr_for_define_subst): Likewise.
40704         (add_define_subst_attr): Likewise.
40705         (read_subst_mapping): Likewise.
40706         (check_code_iterator): Likewise.
40707         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
40708         logic to...
40709         (one_time_initialization): New function.
40710         (rtx_reader::read_until): New method.
40711         (read_flags): New function.
40712         (parse_reg_note_name): New function.
40713         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
40714         Handle reuse_rtx ids.
40715         Wrap iterator lookup within #ifdef GENERATOR_FILE.
40716         Add parsing support for RTL dumps, mirroring the special-cases in
40717         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
40718         values, and calling handle_any_trailing_information.
40719         (rtx_reader::read_rtx_operand): Convert return type from void
40720         to rtx, returning return_rtx.  Handle case 'e'.  Call
40721         finalize_string on XSTR and XTMPL fields.
40722         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
40723          "(nil)" values were omitted.  Call the postprocess vfunc on the
40724         return_rtx.
40725         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
40726         class ctor.  Initialize m_in_call_function_usage.  Call
40727         one_time_initialization.
40728         * rtl-tests.c (selftest::test_uncond_jump): Call
40729         set_new_first_and_last_insn.
40730         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
40731         * selftest-rtl.c: New file.
40732         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
40733         (selftest::get_insn_by_uid): New decl.
40734         * selftest-run-tests.c (selftest::run_tests): Call
40735         read_rtl_function_c_tests.
40736         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
40737         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
40738         dumps.
40739
40740 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
40741
40742         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
40743         operands in a special way.  Assert that pos+len <= mode precision.
40744
40745 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
40746
40747         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
40748         3 argument Alias with unlimited for the negative form.
40749         (fno-vect-cost-model): Removed.
40750
40751 2017-01-05  Martin Liska  <mliska@suse.cz>
40752
40753         * hsa-gen.c (gen_hsa_divmod): New function.
40754         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
40755
40756 2017-01-05  Martin Liska  <mliska@suse.cz>
40757
40758         PR pch/78970
40759         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
40760         header.
40761
40762 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
40763
40764         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
40765         small constant length operands.
40766
40767 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
40768
40769         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
40770         between loop iterations.
40771
40772 2017-01-05  Martin Liska  <mliska@suse.cz>
40773
40774         PR sanitizer/78815
40775         * gimplify.c (gimplify_decl_expr): Compare to
40776         asan_poisoned_variables instread of checking flags.
40777         (gimplify_target_expr): Likewise.
40778         (gimplify_expr): Likewise.
40779         (gimplify_function_tree): Conditionally initialize
40780         asan_poisoned_variables.
40781
40782 2017-01-04  Jeff Law  <law@redhat.com>
40783
40784         PR tree-optimizatin/78812
40785         * rtl.h (contains_mem_rtx_p): Prototype.
40786         * ifcvt.c (containts_mem_rtx_p): Move from here to...
40787         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
40788         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
40789         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
40790         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
40791
40792 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40793
40794         * input.c (assert_char_at_range): Default-initialize actual_range.
40795
40796 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40797
40798         * df-scan.c (df_ref_create_structure): Make regno unsigned,
40799         to match the caller.
40800
40801 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40802
40803         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
40804         insns after final jump in test to emit dummy move.
40805
40806 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40807
40808         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
40809         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
40810
40811 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40812
40813         * multiple_target.c (create_dispatcher_calls): Init e_next.
40814         * tree-ssa-loop-split.c (split_loop): Init border.
40815         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
40816         scalar_type.
40817
40818 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
40819
40820         PR target/71977
40821         PR target/70568
40822         PR target/78823
40823         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
40824         (altivec_register_operand): Do not return true if the operand
40825         contains a SUBREG mixing SImode and SFmode.
40826         (vsx_register_operand): Likewise.
40827         (vsx_reg_sfsubreg_ok): New predicate.
40828         (vfloat_operand): Do not return true if the operand contains a
40829         SUBREG mixing SImode and SFmode.
40830         (vint_operand): Likewise.
40831         (vlogical_operand): Likewise.
40832         (gpc_reg_operand): Likewise.
40833         (int_reg_operand): Likewise.
40834         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
40835         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
40836         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
40837         SImode and SFmode.
40838         (rs6000_emit_move_si_sf_subreg): New helper function.
40839         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
40840         fixup SUBREGs involving SImode and SFmode.
40841         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
40842         numbers for the new peephole2 optimization.
40843         (peephole2 for SFmode unions): New peephole2 to optimize cases in
40844         the GLIBC math library that do AND/IOR/XOR operations on single
40845         precision floating point.
40846         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
40847         target macros to say whether we need to avoid SUBREGs mixing
40848         SImode and SFmode.
40849         (TARGET_ALLOW_SF_SUBREG): Likewise.
40850         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
40851         (UNSPEC_SI_FROM_SF): Likewise.
40852         (iorxor): Change spacing.
40853         (and_ior_xor): New iterator for AND, IOR, and XOR.
40854         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
40855         (movdi_from_sf_zero_ext): Likewise.
40856         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
40857         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
40858         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
40859         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
40860         (fms<mode>4): Likewise.
40861         (fnma<mode>4): Likewise.
40862         (fnms<mode>4): Likewise.
40863         (nfma<mode>4): Likewise.
40864         (nfms<mode>4): Likewise.
40865
40866 2017-01-04  Marek Polacek  <polacek@redhat.com>
40867
40868         PR c++/64767
40869         * doc/invoke.texi: Document -Wpointer-compare.
40870
40871 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40872
40873         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
40874         RejectNegative.
40875
40876         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
40877         descriptions for -gdwarf-5 and emit them as uleb128 instead of
40878         2-byte data.
40879
40880 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
40881
40882         PR target/78056
40883         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
40884         documentation of the powerpc_popcntb_ok attribute.
40885         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
40886         code to issue warning messages if a requested CPU configuration is
40887         not supported by the binary (assembler and loader) toolchain.
40888         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
40889         made to define a built-in function that has been disabled.
40890         (paired_init_builtins): Add assertion to prevent ICE if attempt is
40891         made to define a built-in function that has been disabled.
40892         (altivec_init_builtins): Add comment explaining why definition
40893         of the DST built-in functions is not preceded by an assertion
40894         check.  Add assertions to prevent ICE if attempts are made to
40895         define an altivec predicate or an abs* built-in function that has
40896         been disabled.
40897         (htm_init_builtins): Add comment explaining why definition of the
40898         htm built-in functions is not preceded by an assertion check.
40899
40900 2017-01-04  Jeff Law  <law@redhat.com>
40901
40902         PR tree-optimizatin/67955
40903         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
40904         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
40905         the points-to solution does not include pt_null.  Use DECL_PT_UID
40906         unconditionally.
40907
40908 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
40909
40910         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
40911         Use gen_int_mode instead of gen_lopwart for const_int operands.
40912
40913 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40914
40915         PR tree-optimization/71563
40916         * match.pd: Simplify X << Y into X if Y is known to be 0 or
40917         out of range value - has low bits known to be zero.
40918
40919 2017-01-04  Alan Modra  <amodra@gmail.com>
40920
40921         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
40922         * configure: Regenerate.
40923         * config.in: Regenerate.
40924
40925 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40926
40927         PR bootstrap/77569
40928         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
40929         a substring of the message, but strcmp with the whole message.  Ifdef
40930         ENABLE_NLS, translate the message first using dgettext.
40931
40932 2017-01-03  Jeff Law  <law@redhat.com>
40933
40934         PR tree-optimizatin/78856
40935         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
40936         (mark_threaded_blocks): Remove code to truncate thread paths that
40937         cross multiple loop headers.  Instead invalidate the cached loop
40938         iteration information and handle case of a thread path walking
40939         into an irreducible region.
40940
40941 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
40942
40943         PR target/78900
40944         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
40945         assertions.  Add support for doing the signbit if the IEEE 128-bit
40946         floating point value is in a GPR.
40947         * config/rs6000/rs6000.md (Fsignbit): Delete.
40948         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
40949         Update the length attribute if the value is in a GPR.
40950         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
40951         the sign or zero extension instruction, since the value is always 0/1.
40952         (signbit<mode>2_dm2): Delete using <Fsignbit>.
40953
40954         PR target/78953
40955         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
40956         extracting SImode to a GPR register so that we can generate a
40957         store, limit the vector to be in a traditional Altivec register
40958         for the vextuwrx instruction.
40959
40960 2017-01-03  Ian Lance Taylor  <iant@google.com>
40961
40962         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
40963
40964 2017-01-03  Martin Sebor  <msebor@redhat.com>
40965
40966         PR tree-optimization/78696
40967         * gimple-ssa-sprintf.c (format_floating): Correct handling of
40968         precision.  Use MPFR for %f for greater fidelity.  Correct handling
40969         of %g.
40970         (pass_sprintf_length::compute_format_length): Set width and precision
40971         specified by asrerisk to void_node for vararg functions.
40972         (try_substitute_return_value): Adjust dump output.
40973
40974 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
40975
40976         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
40977
40978 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40979
40980         * doc/invoke.texi (SPARC options): Document -mlra as the default.
40981         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
40982         -mlra/-mno-lra was passed to the compiler.
40983
40984 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
40985
40986         PR rtl-optimization/65618
40987         * emit-rtl.c (try_split): Move initialization of "before" and
40988         "after" to just before the call to emit_insn_after_setloc.
40989
40990 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40991
40992         * doc/md.texi (Standard Names): Remove reference to Java frontend.
40993
40994 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
40995
40996         * dwarf2out.c (gen_enumeration_type_die): When
40997         -gno-strict-dwarf, add a DW_AT_encoding attribute.
40998
40999 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
41000
41001         PR tree-optimization/78965
41002         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
41003         Change first argument from const call_info & to call_info &.  For %n
41004         set info.nowrite to false.
41005
41006         PR middle-end/78901
41007         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
41008         possibly throwing calls.
41009
41010         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
41011         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
41012         and fns handling, rather than in a separate case SSA_NAME.
41013
41014 2017-01-02  Jeff Law  <law@redhat.com>
41015
41016         * config/darwin-driver.c (darwin_driver_init): Const-correctness
41017         fixes for first_period and second_period variables.
41018
41019 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
41020
41021         PR target/78967
41022         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
41023         (*insvqi_1): New insn pattern.
41024         (*insvqi_1_mem_rex64): Ditto.
41025         (*insvqi_2): Ditto.
41026         (*insvqi_3): Rename from *insvqi.
41027
41028         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
41029
41030 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
41031
41032         * doc/cfg.texi (Edges): Remove reference to Java.
41033         (Maintaining the CFG): Ditto.
41034
41035 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41036
41037         PR middle-end/77674
41038         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
41039         transparent aliases.
41040
41041 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41042
41043         PR middle-end/77484
41044         * predict.def (PRED_CALL): Update hitrate.
41045         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
41046         * predict.c (tree_estimate_probability_bb): Split CALL predictor
41047         into direct/indirect/polymorphic variants.
41048
41049 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
41050
41051         Update copyright years.
41052
41053         * gcc.c (process_command): Update copyright notice dates.
41054         * gcov-dump.c (print_version): Ditto.
41055         * gcov.c (print_version): Ditto.
41056         * gcov-tool.c (print_version): Ditto.
41057         * gengtype.c (create_file): Ditto.
41058         * doc/cpp.texi: Bump @copying's copyright year.
41059         * doc/cppinternals.texi: Ditto.
41060         * doc/gcc.texi: Ditto.
41061         * doc/gccint.texi: Ditto.
41062         * doc/gcov.texi: Ditto.
41063         * doc/install.texi: Ditto.
41064         * doc/invoke.texi: Ditto.
41065 \f
41066 Copyright (C) 2017 Free Software Foundation, Inc.
41067
41068 Copying and distribution of this file, with or without modification,
41069 are permitted in any medium without royalty provided the copyright
41070 notice and this notice are preserved.