re PR middle-end/91603 (Unaligned access in expand_assignment)
[official-gcc.git] / gcc / ChangeLog
blob9c8800670401e03d2295ab39a84ea39cc612d7e6
1 2019-09-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3         PR middle-end/91603
4         PR middle-end/91612
5         PR middle-end/91613
6         * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
7         and SSA_NAME referring to CONSTANT_P correctly.
9 2019-09-03  Richard Biener  <rguenther@suse.de>
11         * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
12         (vn_nary_op_insert): Likewise.
13         * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
14         (vn_nary_op_lookup): Likewise.
15         (vn_nary_op_insert): Likewise.
17 2019-09-03  Ilya Leoshkevich  <iii@linux.ibm.com>
19         * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
20         (*op0, 1) instead of XEXP (*op1, 0).
22 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24         * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
25         (aarch64_fjcvtzs): New define_insn.
26         * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
27         * config/aarch64/aarch64-builtins.c (aarch64_builtins):
28         Add AARCH64_JSCVT.
29         (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
30         (aarch64_expand_builtin): Handle AARCH64_JSCVT.
31         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
32         __ARM_FEATURE_JCVT where appropriate.
33         * config/aarch64/arm_acle.h (__jcvt): Define.
35 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37         * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
38         UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
39         (aarch64_<frintnzs_op><mode>): New define_insn.
40         * config/aarch64/aarch64.h (TARGET_FRINT): Define.
41         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
42         __ARM_FEATURE_FRINT when appropriate.
43         * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
44         frint32x, frint64z, frint64x.
45         * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
46         __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
47         * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
48         vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
49         vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
50         vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
51         * config/aarch64/iterators.md (VSFDF): Define.
52         (FRINTNZX): Likewise.
53         (frintnzs_op): Likewise.
55 2019-09-03  Dennis Zhang  <dennis.zhang@arm.com>
57         * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
58         for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
59         Cortex-A34.
60         * config/aarch64/aarch64-tune.md: Regenerated.
61         * doc/invoke.texi: Document the new processors.
63 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
65         * config/aarch64/aarch64-option-extensions.def (sb): Add feature
66         string.
67         (ssbs): Likewise.
68         (sve2): Likewise.
69         (sve2-sm4): Likewise.
70         (sveaes): Likewise.
71         (svesha3): Likewise.
72         (svebitperm): Likewise.
74 2019-09-03  Jakub Jelinek  <jakub@redhat.com>
75             Richard Biener  <rguenther@suse.de>
77         PR tree-optimization/91597
78         * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
79         BIT_AND_EXPR optimization for pointers, even if both operand
80         ranges don't include NULL, the result can be NULL.
82 2019-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
84         PR middle-end/91605
85         * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
86         (non_mem_decl_p): ...this.
87         (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
88         (expand_assignment): Call mem_ref_referes_to_non_mem_p
89         unconditionally as before.
91 2019-09-02  Eric Botcazou  <ebotcazou@adacore.com>
93         PR target/91323
94         * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
95         * rtl.def (LTGT): Likewise.  Add note about floating-point exceptions.
96         * tree.def (LTGT_EXPR): Likewise.
97         * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
99 2019-09-02  Jakub Jelinek  <jakub@redhat.com>
101         PR go/91617
102         * fold-const.c (range_check_type): For enumeral and boolean
103         type, pass 1 to type_for_size langhook instead of
104         TYPE_UNSIGNED (etype).  Return unsigned_type_for result whenever
105         etype isn't TYPE_UNSIGNED INTEGER_TYPE.
106         (build_range_check): Don't call unsigned_type_for for pointer types.
107         * match.pd (X / C1 op C2): Don't call unsigned_type_for on
108         range_check_type result.
110 2019-09-02  Eric Botcazou  <ebotcazou@adacore.com>
112         * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
113         (replace_ref): Do not replace a chain of only two candidates which are
114         valid memory references.
116 2019-09-02  Martin Liska  <mliska@suse.cz>
118         * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
119         Bail out when we'll end up with the same number of clusters as
120         at the beginning.
121         (bit_test_cluster::find_bit_tests): Likewise for bit tests.
122         (jump_table_cluster::can_be_handled): Remove the guard
123         as it's already handled in ::is_enabled.  Allocate output
124         after early bail out.
126 2019-09-02  Martin Liska  <mliska@suse.cz>
128         PR gcov-profile/91601
129         * gcov.c (path_contains_zero_cycle_arc): Rename to ...
130         (path_contains_zero_or_negative_cycle_arc): ... this and handle
131         also negative edges.
132         (circuit): Handle also negative edges as they can happen
133         in some situations.
135 2019-09-01  Eric Botcazou  <ebotcazou@adacore.com>
137         PR target/91472
138         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
139         during LRA/reload in PIC mode if the PIC register hasn't been used yet.
140         (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
142 2019-09-01  Jakub Jelinek  <jakub@redhat.com>
144         PR middle-end/91623
145         * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
146         EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
147         zeros or negative elements and use NE_EXPR instead of LT_EXPR against
148         zero vector.
150         PR lto/91572
151         * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
152         GIMPLE_ASM TREE_LIST operands.
154 2019-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
156         * doc/generic.texi (Unary and Binary Expressions): Mark up
157         an instance of TYPE_MIN.
159 2019-08-31  Stafford Horne  <shorne@gmail.com>
161         * config/or1k/constraints.md (t): New constraint.
162         * config/or1k/or1k.h (GOT_REGS): New register class.
163         * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
165 2019-08-30  Jim Wilson  <jimw@sifive.com>
167         * config/riscv/riscv.c (riscv_option_override): If -msave-restore
168         and -fpic and -mplt then disable -msave-restore and warn.
170 2019-08-30  Martin Sebor  <msebor@redhat.com>
172         PR middle-end/91599
173         * tree-ssa-strlen.c (handle_store): Use a fallback location if
174         the statement doesn't have one.
175         * gimple-pretty-print.c (percent_G_format): Same.
177         PR middle-end/91584
178         * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
179         before using them to validate MEM_REF offset.
181 2019-08-30  Marek Polacek  <polacek@redhat.com>
183         * doc/invoke.texi (-Wvolatile): Use @code for volatile.
185 2019-08-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
187         * config/arm/arm.md (unaligned_loaddi,
188         unaligned_storedi): New unspec insn patterns.
189         * config/arm/neon.md (unaligned_storev8qi): Likewise.
190         * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
191         and unaligned_storedi for 4-byte aligned memory.
192         (arm_block_set_aligned_vect): Use unaligned_storev8qi for
193         4-byte aligned memory.
195 2019-08-30  Martin Jambor  <mjambor@suse.cz>
197         tree-optimization/91579
198         * tree-tailcall.c (tailr_arg_needs_copy): New variable.
199         (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
200         appropriate.
201         (arg_needs_copy_p): Removed.
202         (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
203         arg_needs_copy_p.
204         (tree_optimize_tail_calls_1): Likewise.  Free tailr_arg_needs_copy.
206 2019-08-29  Uroš Bizjak  <ubizjak@gmail.com>
208         * config/i386/i386-features.c
209         (general_scalar_chain::compute_convert_gain):
210         Correct cost for double-word shifts.
211         (general_scalar_to_vector_candidate_p): Reject count operands
212         greater or equal to mode bitsize.
214 2019-08-29  Uroš Bizjak  <ubizjak@gmail.com>
216         * config/i386/i386.c (inline_secondary_memory_needed): Return true
217         for moves between SSE and non-general registers and between
218         mask and non-general registers.
219         (ix86_register_move_cost): Remove stalled comment.
221 2019-08-29  Richard Biener  <rguenther@suse.de>
223         * config/i386/i386-features.c (general_scalar_chain::convert_insn):
224         Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
226 2019-08-29  Richard Biener  <rguenther@suse.de>
228         PR bootstrap/91580
229         * config/i386/i386-features.c (general_scalar_chain::convert_insn):
230         Do not emit scalar copies for debug-insns, instead replace
231         their uses with the reg copy used in the chain or reset them
232         if there is a reaching definition outside of the chain as well.
234 2019-08-29  Jakub Jelinek  <jakub@redhat.com>
236         PR target/91560
237         * config/i386/i386-expand.c (expand_vec_perm_movs,
238         expand_vec_perm_blend, expand_vec_perm_vpermil,
239         expand_vec_perm_pshufb, expand_vec_perm_1,
240         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
241         expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
242         expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
243         expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
244         expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
245         comments - replace ix86_expand_vec_perm_builtin_1 with
246         ix86_expand_vec_perm_const_1.
247         (expand_vec_perm2_vperm2f128_vblend): New function.
248         (ix86_expand_vec_perm_const_1): New forward declaration.  Call
249         expand_vec_perm2_vperm2f128_vblend as last resort.
250         (canonicalize_perm): Formatting fix.
252         PR tree-optimization/91351
253         * tree-cfg.c (generate_range_test): Use range_check_type instead of
254         unsigned_type_for.
255         * tree-cfgcleanup.c (convert_single_case_switch): Punt if
256         range_check_type returns NULL.
257         * tree-switch-conversion.c (switch_conversion::build_one_array):
258         Use range_check_type instead of unsigned_type_for, don't perform
259         linear opt if it returns NULL.
260         (bit_test_cluster::find_bit_tests): Formatting fix.
261         (bit_test_cluster::emit): Use range_check_type instead of
262         unsigned_type_for.
263         (switch_decision_tree::try_switch_expansion): Punt if range_check_type
264         returns NULL.
266 2019-08-29  Richard Biener  <rguenther@suse.de>
268         PR tree-optimization/91568
269         * tree-vectorizer.h (_slp_tree::max_nunits): Add.
270         (vect_update_max_nunits): Add overload for poly_uint64.
271         * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
272         (vect_build_slp_tree): Record max_nunits into the subtree
273         and merge it upwards.
274         (vect_print_slp_tree): Print max_nunits.
276 2019-08-28  Marek Polacek  <polacek@redhat.com>
278         Implement P1152R4: Deprecating some uses of volatile.
279         PR c++/91361
280         * doc/invoke.texi: Document -Wvolatile.
282 2019-08-28  Marek Polacek  <polacek@redhat.com>
284         PR c++/91360 - Implement C++20 P1143R2: constinit.
285         * doc/invoke.texi: Document -Wc++20-compat.
287 2019-08-28  Martin Sebor  <msebor@redhat.com>
289         PR tree-optimization/91457
290         * builtins.c (component_size): New function.
291         (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
292         * builtins.h (compute_objsize): Add argument.
293         * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
294         * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
295         (vrp_prop::check_mem_ref): Same.
296         (vrp_prop::search_for_addr_array): Set no-warning bit.
297         (check_array_bounds): Same.
299 2019-08-28  Martin Sebor  <msebor@redhat.com>
301         PR driver/80545
302         * opts-common.c (option_enabled): Correct checking for language
303         options.
305 2019-08-28  Uroš Bizjak  <ubizjak@gmail.com>
307         * config/i386/i386.c (ix86_register_move_cost): Do not
308         limit the cost of moves to/from XMM register to minimum 8.
310 2019-08-28  Martin Jambor  <mjambor@suse.cz>
312         PR ipa/91468
313         * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
314         checking assert a normal assert to test it really is redundant.
315         * ipa-prop.c (compute_complex_assign_jump_func): Removed
316         redundant test.
317         (update_jump_functions_after_inlining): Removed combining unary
318         arithmetic operations with an ancestor jump function.
319         (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
320         instead of t.
322 2019-08-28  Richard Biener  <rguenther@suse.de>
324         * config/i386/i386-features.c (convert_scalars_to_vector): Do not
325         add the MD problem.
327 2019-08-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
328             Richard Biener  <rguenther@suse.de>
330         * expr.c (expand_assignment): Handle misaligned DECLs.
331         (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
332         * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
333         too.
334         (assign_parm_setup_stack): Allocate properly aligned stack slots.
335         * varasm.c (build_constant_desc): Align constants of misaligned types.
336         * config/arm/predicates.md (aligned_operand): New predicate.
337         * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
338         aligned_operand to check restrictions on memory addresses.
339         * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
340         * config/arm/vec-common.md (mov<VALL>): Likewise.
342 2019-08-28  Jakub Jelinek  <jakub@redhat.com>
344         PR libgomp/91530
345         * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
346         V_128 iterator instead of VI_128.
348 2019-08-28  Martin Liska  <mliska@suse.cz>
350         PR tree-optimization/90970
351         * builtins.c (check_access): Remove assignment to maxread
352         as it hasn't been used since when it was introduced in r255755.
354 2019-08-27  Martin Sebor  <msebor@redhat.com>
356         PR tree-optimization/91567
357         * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
358         of unknown strings.
359         * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
360         to PTRDIFF_MAX - 2.
362 2019-08-27  Jeff Law  <law@redhat.com>
364         * tree-ssa-strlen.c (printf_strlen_execute): Initialize
365         the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
367 2019-08-27  Uroš Bizjak  <ubizjak@gmail.com>
369         PR target/91528
370         * config/i386/i386-features.c (convert_scalars_to_vector):
371         Update crtl->stack_realign_needed, crtl->stack_realign_tried and
372         crtl->stack_realign_processed.  Update crtl->drap_reg by calling
373         targetm.calls.get_drap_rtx.  If drap_rtx is non-null then
374         Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
376 2019-08-27  Richard Biener  <rguenther@suse.de>
378         * config/i386/i386-features.h
379         (general_scalar_chain::~general_scalar_chain): Add.
380         (general_scalar_chain::insns_conv): New bitmap.
381         (general_scalar_chain::n_sse_to_integer): New.
382         (general_scalar_chain::n_integer_to_sse): Likewise.
383         (general_scalar_chain::make_vector_copies): Adjust signature.
384         * config/i386/i386-features.c
385         (general_scalar_chain::general_scalar_chain): Outline,
386         initialize new members.
387         (general_scalar_chain::~general_scalar_chain): New.
388         (general_scalar_chain::mark_dual_mode_def): Record insns
389         we need to insert conversions at and count them.
390         (general_scalar_chain::compute_convert_gain): Account
391         for conversion instructions at chain boundary.
392         (general_scalar_chain::make_vector_copies): Generate a single
393         copy for a def by a specific insn.
394         (general_scalar_chain::convert_registers): First populate
395         defs_map, then make copies at out-of chain insns.
397 2019-08-27  Richard Earnshaw  <rearnsha@arm.com>
399         * config/arm/arm.md (stack_protect_set_insn): Add security-related
400         comment.
401         * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
403 2019-08-27  Martin Liska  <mliska@suse.cz>
405         * cgraph.c (cgraph_node::remove): Remove dead assignment before
406         loop.
407         * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
408         Enclose in anonymous namespace.
409         * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
410         hard_register initialization in braces.
411         * tree-vrp.h (value_range_base::supports_type_p): Return false
412         for function with boolean return type.
414 2019-08-26  Uroš Bizjak  <ubizjak@gmail.com>
416         * config/i386/i386.c (emit_i387_cw_initialization)
417         <case I387_CW_ROUNDEVEN>: Fix masking operand value.
419 2019-08-26  Martin Sebor  <msebor@redhat.com>
421         PR c++/83431
422         * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
423         (sprintf_dom_walker): Remove class.
424         (get_int_range): Make argument const.
425         (directive::fmtfunc, directive::set_precision): Same.
426         (format_none): Same.
427         (build_intmax_type_nodes): Same.
428         (adjust_range_for_overflow): Same.
429         (format_floating): Same.
430         (format_character): Same.
431         (format_string): Same.
432         (format_plain): Same.
433         (get_int_range): Cast away constness.
434         (format_integer): Same.
435         (get_string_length): Call get_range_strlen_dynamic.  Handle
436         null lendata.maxbound.
437         (should_warn_p): Adjust argument scope qualifier.
438         (maybe_warn): Same.
439         (format_directive): Same.
440         (parse_directive): Same.
441         (is_call_safe): Same.
442         (try_substitute_return_value): Same.
443         (sprintf_dom_walker::handle_printf_call): Rename...
444         (handle_printf_call): ...to this.  Initialize target to host charmap
445         here instead of in pass_sprintf_length::execute.
446         (struct call_info): Make global.
447         (sprintf_dom_walker::compute_format_length): Make global.
448         (sprintf_dom_walker::handle_gimple_call): Same.
449         * passes.def (pass_sprintf_length): Replace with pass_strlen.
450         * print-rtl.c (print_pattern): Reduce the number of spaces to
451         avoid -Wformat-truncation.
452         * tree-pass.h (make_pass_warn_printf): New function.
453         * tree-ssa-strlen.c (strlen_optimize): New variable.
454         (get_string_length): Add comments.
455         (get_range_strlen_dynamic): New function.
456         (check_and_optimize_call): New function.
457         (handle_integral_assign): New function.
458         (strlen_check_and_optimize_stmt): Factor code out into
459         strlen_check_and_optimize_call and handle_integral_assign.
460         (strlen_dom_walker::evrp): New member.
461         (strlen_dom_walker::before_dom_children): Use evrp member.
462         (strlen_dom_walker::after_dom_children): Use evrp member.
463         (printf_strlen_execute): New function.
464         (pass_strlen::gate): Update to handle printf calls.
465         (dump_strlen_info): New function.
466         (pass_data_warn_printf): New variable.
467         (pass_warn_printf): New class.
468         * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
469         (handle_printf_call): Same.
470         * tree-vrp.c (value_range_base::type): Adjust assertion.
471         * vr-values.c (vr_values::update_value_range): Use type of the first
472         argument rather than the second.
474 2019-08-26  Richard Biener  <rguenther@suse.de>
476         * config/i386/i386-features.c (general_remove_non_convertible_regs):
477         Remove.
478         (convert_scalars_to_vector): Do not call it.
480 2019-08-26  Tejas Joshi  <tejasjoshi9673@gmail.com>
481             Uros Bizjak  <ubizjak@gmail.com>
483         * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
484         CASE_MATHFN_FLOATN for roundeven.
485         * config/i386/i386.c (ix86_i387_mode_needed): Add case
486         I387_ROUNDEVEN.
487         (ix86_mode_needed): Likewise.
488         (ix86_mode_after): Likewise.
489         (ix86_mode_entry): Likewise.
490         (ix86_mode_exit): Likewise.
491         (ix86_emit_mode_set): Likewise.
492         (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
493         * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
494         (ix86_entity): Add I387_ROUNDEVEN.
495         (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
496         * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
497         (define_int_iterator): Likewise.
498         (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
499         (define_constant): Define ROUND_ROUNDEVEN mode.
500         (define_attr): Add roundeven mode for i387_cw.
501         (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
502         * internal-fn.def (ROUNDEVEN): New builtin function.
503         * optabs.def (roundeven_optab): New optab.
505 2019-08-26  Tejas Joshi  <tejasjoshi9673@gmail.com>
507         * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
508         for ROUNDEVEN.
509         * builtins.def: Added function definitions for roundeven function
510         variants.
511         * fold-const-call.c (fold_const_call_ss): Added case for roundeven
512         function call.  Adjust condition for floor, ceil, trunc and round.
513         * fold-const.c (negate_mathfn_p): Added case for roundeven function.
514         (tree_call_nonnegative_warnv_p): Added case for roundeven function.
515         (integer_valued_real_call_p): Added case for roundeven function.
516         * real.c (is_even): New function. Returns true if real number is even,
517         otherwise returns false.
518         (is_halfway_below): New function. Returns true if real number is
519         halfway between two integers, else return false.
520         (real_roundeven): New function. Round real number to nearest integer,
521         rounding halfway cases towards even.
522         * real.h (real_value): Added descriptive comments.  Added function
523         declaration for roundeven function.
524         * doc/extend.texi (Other Builtins): List roundeven variants among
525         functions which can be handled as builtins.
527 2019-08-26  Richard Biener  <rguenther@suse.de>
529         PR target/91522
530         PR target/91527
531         * config/i386/i386-features.h (general_scalar_chain::defs_map):
532         New member.
533         (general_scalar_chain::replace_with_subreg): Remove.
534         (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
535         (general_scalar_chain::convert_reg): Adjust signature.
536         * config/i386/i386-features.c (scalar_chain::add_insn): Do not
537         iterate over all defs of a reg.
538         (general_scalar_chain::replace_with_subreg): Remove.
539         (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
540         (general_scalar_chain::make_vector_copies): Populate defs_map,
541         place copy only after defs that are used as vectors in the chain.
542         (general_scalar_chain::convert_reg): Emit a copy for a specific
543         def in a specific instruction.
544         (general_scalar_chain::convert_op): All reg uses are converted here.
545         (general_scalar_chain::convert_insn): Emit copies for scalar
546         uses of defs here.  Replace uses with the copies we created.
547         Replace and convert the def.  Adjust REG_DEAD notes, remove
548         REG_EQUIV/EQUAL notes.
549         (general_scalar_chain::convert_registers): Only handle copies
550         into the chain here.
552 2019-08-26  Robin Dapp  <rdapp@linux.ibm.com>
554         * match.pd: Add (T)(A) + CST -> (T)(A + CST).
556 2019-08-26  Robin Dapp  <rdapp@linux.ibm.com>
558         * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
559         Add nop_convert case.
560         * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
561         Fold all statements if requested.
562         * tree-ssa-propagate.h (class substitute_and_fold_engine):
563         Allow to fold all statements.
564         * tree-vrp.c (class vrp_folder):
565         Let substitute_and_fold_engine fold all statements.
567 2019-08-26  Richard Biener  <rguenther@suse.de>
569         PR tree-optimization/91526
570         * passes.def: Note that after late FRE we do TODO_update_address_taken.
571         * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
572         TODO_update_address_taken.
574 2019-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
576         * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
577         __STDC_HOSTED__.
579 2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
581         * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
582         machine mode for unspec_volatile operand.
584 2019-08-23  Wilco Dijkstra  <wdijkstr@arm.com>
586         * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option.
587         * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option.
588         * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
589         (prefer_neon_for_64bits): Remove.
590         * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove.
591         (tune_params): Remove PREF_NEON_64_FALSE uses.
592         (arm_option_override): Remove prefer_neon selection code.
593         (arm_print_tune_info): Remove prefer_neon_for_64bits.
594         * gcc/config/arm/arm-protos.h (tune_params): Remove
595         prefer_neon_for_64bits.
596         (prefer_neon_for_64bits): Remove.
598 2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
600         PR pch/61250
601         * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
602         and issue any diagnostics needed before collecting the pre-PCH
603         state.
605 2019-08-23  Jakub Jelinek  <jakub@redhat.com>
607         PR middle-end/91283
608         * common.opt (fexcess-precision=): Add Optimization flag.  Use
609         flag_excess_precision variable instead of
610         flag_excess_precision_cmdline.
611         * flags.h (class target_flag_state): Remove x_flag_excess_precision
612         member.
613         (flag_excess_precision): Don't define.
614         * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
615         flag_excess_precision_cmdline.  Remove comment.
616         * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
617         and x_flag_excess_precision instead of
618         frontend_set_flag_excess_precision_cmdline and
619         x_flag_excess_precision_cmdline.
620         (fast_math_flags_set_p): Use x_flag_excess_precision instead of
621         x_flag_excess_precision_cmdline.
622         * toplev.c (init_excess_precision): Remove.
623         (lang_dependent_init_target): Don't call it.
625 2019-08-23  Martin Liska  <mliska@suse.cz>
627         * lto-wrapper.c (run_gcc): When setting jobserver
628         set also parallel to 1.  This was done so before r273908.
630 2019-08-23  Dennis Zhang  <dennis.zhang@arm.com>
632         * config/arm/arm-cpus.in (cortex-m35p): New entry.
633         (cortex-a76ae): Likewise.
634         (cortex-a77): Likewise
635         * config/arm/arm-tables.opt: Regenerate.
636         * config/arm/arm-tune.md: Likewise.
637         * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
638         cortex-a77 CPU options.
640 2019-08-23  Martin Liska  <mliska@suse.cz>
642         * profile.c (instrument_values): Do not set
643         0 as last argument.
644         * tree-profile.c (gimple_gen_interval_profiler): Remove
645         last argument.
646         (gimple_gen_pow2_profiler): Likewise.
647         (gimple_gen_topn_values_profiler): Likewise.
648         (gimple_gen_ic_profiler): Likewise.
649         (gimple_gen_time_profiler): Likewise.
650         (gimple_gen_average_profiler): Likewise.
651         (gimple_gen_ior_profiler): Likewise.
652         * value-prof.c (dump_histogram_value): Use default
653         in switch statement instead of HIST_TYPE_MAX.
654         (stream_in_histogram_value): Likewise.
655         (gimple_duplicate_stmt_histograms): Do not
656         use NULL for implicitly set arguments.
657         (gimple_divmod_values_to_profile): Do not use
658         reserve+quick_push.
659         (gimple_indirect_call_to_profile): Likewise.
660         (gimple_find_values_to_profile): Use implicit
661         function call arguments.
662         * value-prof.h (gimple_alloc_histogram_value):
663         Set default values.
664         (gimple_gen_interval_profiler): Remove last argument.
665         (gimple_gen_pow2_profiler): Likewise.
666         (gimple_gen_topn_values_profiler): Likewise.
667         (gimple_gen_ic_profiler): Likewise.
668         (gimple_gen_time_profiler): Likewise.
669         (gimple_gen_average_profiler): Likewise.
670         (gimple_gen_ior_profiler): Likewise.
672 2019-08-22  Martin Sebor  <msebor@redhat.com>
674         PR middle-end/91490
675         * builtins.c (c_strlen): Rename argument and introduce new local.
676         Set no-warning bit on original argument.
677         * expr.c (string_constant): Pass argument type to fold_ctor_reference.
678         Fold empty and zero constructors into empty strings.
679         * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
680         for missing initializers.
681         * tree.c (build_string_literal): Handle optional argument.
682         * tree.h (build_string_literal): Add defaulted argument.
683         * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
684         no-warning bit on original expression.
686 2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
688         PR target/91481
689         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
690         and UNSPEC_DARN_RAW.
691         (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
692         UNSPECV_DARN_RAW.
693         (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
694         (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
695         (darn): Use an unspec_volatile, and UNSPECV_DARN.
697 2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
699         * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
700         UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
701         * config/rs6000/rs6000.md (unspec): ... here.
702         * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
703         *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
704         cmpeqb, *cmpeqb_internal): Delete, move to...
705         * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
706         *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
707         cmpeqb, *cmpeqb_internal): ... here.
709 2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
711         * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
712         intrinsics if __ARM_FP.
713         Use __ARM_FEATURE_CRC32 ifdef guard.
715 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
717         * config/arm/arm.md (neon_for_64bits): Remove.
718         (avoid_neon_for_64bits): Remove.
719         (arm_adddi3): Always split early.
720         (arm_subdi3): Always split early.
721         (negdi2): Remove Neon expansion.
722         (split zero_extend): Split before reload.
723         (split sign_extend): Split before reload.
725 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
727         * config/arm/iterators.md (qhs_extenddi_cstr): Update.
728         (qhs_extenddi_cstr): Likewise.
729         * config/arm/arm.md (ashldi3): Always expand early.
730         (ashlsi3): Likewise.
731         (ashrsi3): Likewise.
732         (zero_extend<mode>di2): Remove Neon variants.
733         (extend<mode>di2): Likewise.
734         * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
735         (signed_shift_di3_neon): Likewise.
736         (unsigned_shift_di3_neon): Likewise.
737         (ashrdi3_neon_imm_noclobber): Likewise.
738         (lshrdi3_neon_imm_noclobber): Likewise.
739         (<shift>di3_neon): Likewise.
740         (split extend): Remove DI extend split patterns.
742 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
744         * config/arm/arm.md (split and/eor/ior): Remove Neon check.
745         (split not): Add DImode not splitter.
746         (anddi3): Remove pattern.
747         (anddi3_insn): Likewise.
748         (anddi_zesidi_di): Likewise.
749         (anddi_sesdi_di): Likewise.
750         (anddi_notdi_di): Likewise.
751         (anddi_notzesidi_di): Likewise.
752         (anddi_notsesidi_di): Likewise.
753         (iordi3): Likewise.
754         (iordi3_insn): Likewise.
755         (iordi_zesidi_di): Likewise.
756         (iordi_sesidi_di): Likewise.
757         (xordi3): Likewise.
758         (xordi3_insn): Likewise.
759         (xordi_sesidi_di): Likewise.
760         (xordi_zesidi_di): Likewise.
761         (one_cmpldi2): Likewise.
762         (one_cmpldi2_insn): Likewise.
763         * config/arm/constraints.md: Remove De, Df, Dg constraints.
764         * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
765         alternative.
766         (iwmmxt_xordi3): Likewise.
767         (iwmmxt_anddi3): Likewise.
768         * config/arm/neon.md (orndi3_neon): Remove pattern.
769         (anddi_notdi_di): Likewise.
770         * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
771         (arm_iordi_operand_neon): Likewise.
772         (arm_xordi_operand_neon): Likewise.
773         * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
774         (iordi_notzesidi_di): Likewise.
775         (iordi_notdi_zesidi): Likewise.
776         (iordi_notsesidi_di): Likewise.
778 2019-08-22  Richard Earnshaw  <rearnsha@arm.com>
780         * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
781         insn.
782         (iorsi3_compare0_scratch): Likewise.
784 2019-08-22  Sylvia Taylor  <sylvia.taylor@arm.com>
786         * config/aarch64/aarch64-simd-builtins.def:
787         (ld1x4): New.
788         (st1x4): Likewise.
789         * config/aarch64/aarch64-simd.md:
790         (aarch64_ld1x4<VALLDIF:mode>): New pattern.
791         (aarch64_st1x4<VALLDIF:mode>): Likewise.
792         (aarch64_ld1_x4_<mode>): Likewise.
793         (aarch64_st1_x4_<mode>): Likewise.
794         * config/aarch64/arm_neon.h:
795         (vld1_s8_x4): New function.
796         (vld1q_s8_x4): Likewise.
797         (vld1_s16_x4): Likewise.
798         (vld1q_s16_x4): Likewise.
799         (vld1_s32_x4): Likewise.
800         (vld1q_s32_x4): Likewise.
801         (vld1_u8_x4): Likewise.
802         (vld1q_u8_x4): Likewise.
803         (vld1_u16_x4): Likewise.
804         (vld1q_u16_x4): Likewise.
805         (vld1_u32_x4): Likewise.
806         (vld1q_u32_x4): Likewise.
807         (vld1_f16_x4): Likewise.
808         (vld1q_f16_x4): Likewise.
809         (vld1_f32_x4): Likewise.
810         (vld1q_f32_x4): Likewise.
811         (vld1_p8_x4): Likewise.
812         (vld1q_p8_x4): Likewise.
813         (vld1_p16_x4): Likewise.
814         (vld1q_p16_x4): Likewise.
815         (vld1_s64_x4): Likewise.
816         (vld1_u64_x4): Likewise.
817         (vld1_p64_x4): Likewise.
818         (vld1q_s64_x4): Likewise.
819         (vld1q_u64_x4): Likewise.
820         (vld1q_p64_x4): Likewise.
821         (vld1_f64_x4): Likewise.
822         (vld1q_f64_x4): Likewise.
823         (vst1_s8_x4): Likewise.
824         (vst1q_s8_x4): Likewise.
825         (vst1_s16_x4): Likewise.
826         (vst1q_s16_x4): Likewise.
827         (vst1_s32_x4): Likewise.
828         (vst1q_s32_x4): Likewise.
829         (vst1_u8_x4): Likewise.
830         (vst1q_u8_x4): Likewise.
831         (vst1_u16_x4): Likewise.
832         (vst1q_u16_x4): Likewise.
833         (vst1_u32_x4): Likewise.
834         (vst1q_u32_x4): Likewise.
835         (vst1_f16_x4): Likewise.
836         (vst1q_f16_x4): Likewise.
837         (vst1_f32_x4): Likewise.
838         (vst1q_f32_x4): Likewise.
839         (vst1_p8_x4): Likewise.
840         (vst1q_p8_x4): Likewise.
841         (vst1_p16_x4): Likewise.
842         (vst1q_p16_x4): Likewise.
843         (vst1_s64_x4): Likewise.
844         (vst1_u64_x4): Likewise.
845         (vst1_p64_x4): Likewise.
846         (vst1q_s64_x4): Likewise.
847         (vst1q_u64_x4): Likewise.
848         (vst1q_p64_x4): Likewise.
849         (vst1_f64_x4): Likewise.
850         (vst1q_f64_x4): Likewise.
852 2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
854         * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
856 2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
857             Richard Sandiford  <richard.sandiford@arm.com>
859         PR target/88839
860         * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
861         (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
863 2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
865         PR target/90724
866         * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
867         in reg if it fails aarch64_plus_operand predicate.
869 2019-08-21  Richard Biener  <rguenther@suse.de>
871         PR tree-optimization/91482
872         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
873         BUILT_IN_ASSUME_ALIGNED calls.
875 2019-08-21  Richard Biener  <rguenther@suse.de>
877         PR target/91498
878         PR target/91503
879         * config/i386/i386-features.c
880         (general_scalar_chain::make_vector_copies): Copy stack temporary
881         rtx when using it multiple times.
882         (general_scalar_chain::convert_reg): Likewise.
884 2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
886         * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
888 2019-08-20  Matthew Beliveau  <mbelivea@redhat.com>
890         * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
891         catch more redundant zero initialization cases.
892         (dse_dom_walker::dse_optimize_stmt): Likewise.
894 2019-08-20  Richard Biener  <rguenther@suse.de>
896         PR lto/91307
897         * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
898         by collect2 when targetm.have_ctors_dtors which avoids dragging
899         in temporary filenames from LTO input objects.
901 2019-08-20  Richard Biener  <rguenther@suse.de>
903         PR tree-optimization/37242
904         * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
905         to (T)a + (T)b if we know that a + b does not overflow.
907 2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
909         PR rtl-optimization/91347
910         * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
911         before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
913 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
915         * calls.h (function_arg_info): Add a pass_by_reference field,
916         defaulting to false.
917         * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
918         when applying pass-by-reference semantics.
919         (initialize_argument_information): Likewise.
920         (emit_library_call_value_1): Likewise.
921         * function.c (assign_parm_data_one): Remove passed_pointer field.
922         (assign_parm_find_data_types): Don't set it.
923         (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
924         (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
925         arg.pass_by_reference instead of passed_pointer.
927 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
929         * calls.c (emit_library_call_value_1): Merge arg and orig_arg
930         into a single function_arg_info, updating its fields when we
931         apply pass-by-reference and promotion semantics.  Use the
932         function_arg_info to track the mode rather than keeping it in
933         a separate local variable.
934         (initialize_argument_information): Likewise.  Base the final
935         arg_to_skip on this new function_arg_info rather than creating
936         a new one from scratch.
938 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
940         * function.c (assign_parm_data_one): Replace passed_type,
941         promoted_mode and named_arg with a function_arg_info field.
942         (assign_parm_find_data_types): Remove local variables and
943         assign directly to "data".  Make data->passed_mode shadow
944         data->arg.mode until promotion, then assign the promoted
945         mode to data->arg.mode.
946         (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
947         (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
948         (assign_parm_remove_parallels, assign_parm_setup_block_p)
949         (assign_parm_setup_block, assign_parm_setup_reg)
950         (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
951         arg.mode instead of promoted_mode, arg.type instead of passed_type
952         and arg.named instead of named_arg.  Use data->arg for
953         function_arg_info structures that had the field values passed_type,
954         promoted_mode and named_arg.  Base other function_arg_infos on
955         data->arg, changing the necessary properties.
957 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
959         * calls.h (apply_pass_by_reference_rules): Declare.
960         * calls.c (apply_pass_by_reference_rules): New function.
961         * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
962         * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
963         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
964         * function.c (assign_parm_find_data_types): Likewise.
965         * var-tracking.c (prepare_call_arguments): Likewise.
967 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
969         * target.def (must_pass_in_stack): Take a function_arg_info instead
970         of a mode and a type.
971         * doc/tm.texi: Regenerate.
972         * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
973         instead of a mode and a type.
974         (must_pass_in_stack_var_size_or_pad): Likewise.
975         * calls.c (must_pass_in_stack_var_size): Likewise.
976         (must_pass_in_stack_var_size_or_pad): Likewise.
977         (initialize_argument_information): Update call to
978         targetm.calls.must_pass_in_stack.
979         (must_pass_va_arg_on_stack): Likewise.
980         * function.c (assign_parm_find_entry_rtl): Likewise.
981         * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
982         * config/alpha/alpha.c (alpha_function_arg): Likewise.
983         (alpha_function_arg_advance): Likewise.
984         * config/cr16/cr16.c (cr16_function_arg): Likewise.
985         (cr16_function_arg_advance): Likewise.
986         * config/cris/cris.c (cris_pass_by_reference): Likewise.
987         (cris_arg_partial_bytes): Likewise.
988         * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
989         * config/lm32/lm32.c (lm32_function_arg): Likewise.
990         * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
991         (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
992         * config/mips/mips.c (mips_pass_by_reference): Likewise.
993         * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
994         (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
995         * config/sh/sh.c (sh_pass_by_reference): Likewise.
996         * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
997         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
998         * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
999         instead of a mode and a type.
1000         * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
1001         (fr30_num_arg_regs): Likewise.
1002         (fr30_setup_incoming_varargs): Update calls accordingly.
1003         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
1004         (fr30_function_arg_advance): Likewise.
1005         * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
1006         instead of a mode and a type.
1007         * config/gcn/gcn.c (num_arg_regs): Likewise.
1008         (gcn_function_arg, gcn_function_arg_advance): Update calls to
1009         num_arg_regs and targetm.calls.must_pass_in_stack.
1010         (gcn_arg_partial_bytes): Likewise.
1011         * config/i386/i386.c (ix86_must_pass_in_stack): Take a
1012         function_arg_info instead of a mode and a type.
1013         (classify_argument): Update call accordingly.
1014         * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
1015         function_arg_info instead of a mode and a type.
1016         * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
1017         Likewise.
1018         * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
1019         (rs6000_parm_needs_stack): Update call accordingly.
1020         (setup_incoming_varargs): Likewise.
1022 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1024         * target.def (callee_copies): Take a function_arg_info instead
1025         of a mode, type and named flag.
1026         * doc/tm.texi: Regenerate.
1027         * targhooks.h (hook_callee_copies_named): Take a function_arg_info
1028         instead of a mode, type and named flag.
1029         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
1030         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1031         (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
1032         * targhooks.c (hook_callee_copies_named): Take a function_arg_info
1033         instead of a mode, type and named flag.
1034         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
1035         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1036         (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
1037         * calls.h (reference_callee_copied): Take a function_arg_info
1038         instead of a mode, type and named flag.
1039         * calls.c (reference_callee_copied): Likewise.
1040         (initialize_argument_information): Update call accordingly.
1041         (emit_library_call_value_1): Likewise.
1042         * function.c (gimplify_parameters): Likewise.
1043         * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
1044         hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
1045         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
1046         * config/c6x/c6x.c (c6x_callee_copies): Delete.
1047         (TARGET_CALLEE_COPIES): Define to
1048         hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
1049         * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
1050         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
1051         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
1052         * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
1053         instead of a mode, type and named flag.
1054         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
1055         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
1056         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
1057         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
1058         * config/msp430/msp430.c (msp430_callee_copies): Delete.
1059         (TARGET_CALLEE_COPIES): Define to
1060         hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
1061         * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
1062         instead of a mode, type and named flag.
1063         * config/sh/sh.c (sh_callee_copies): Likewise.
1064         * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
1065         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
1066         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
1068 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1070         * target.def (function_arg_advance): Take a function_arg_info instead
1071         of a mode, type and named flag.
1072         * doc/tm.texi: Regenerate.
1073         * targhooks.h (default_function_arg_advance): Take a function_arg_info
1074         instead of a mode, type and named flag.
1075         * targhooks.c (default_function_arg_advance): Likewise.
1076         * calls.c (initialize_argument_information): Update call to
1077         targetm.calls.function_arg_advance.
1078         (emit_library_call_value_1): Likewise.
1079         * dse.c (get_call_args): Likewise.
1080         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1081         * function.c (assign_parms, gimplify_parameters): Likewise.
1082         * var-tracking.c (prepare_call_arguments): Likewise.
1083         * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
1084         function_arg_info instead of a mode, type and named flag.
1085         (aarch64_setup_incoming_varargs): Update call accordingly.
1086         * config/alpha/alpha.c (alpha_function_arg_advance): Take a
1087         function_arg_info instead of a mode, type and named flag.
1088         (alpha_setup_incoming_varargs): Update call accordingly.
1089         * config/arc/arc.c (arc_function_arg_advance): Take a
1090         function_arg_info instead of a mode, type and named flag.
1091         (arc_setup_incoming_varargs): Update call accordingly.
1092         * config/arm/arm.c (arm_function_arg_advance): Take a
1093         function_arg_info instead of a mode, type and named flag.
1094         (cmse_func_args_or_return_in_stack): Update call accordingly.
1095         (arm_function_ok_for_sibcall): Likewise.
1096         (cmse_nonsecure_call_clear_caller_saved): Likewise.
1097         * config/avr/avr.c (avr_function_arg_advance): Take a
1098         function_arg_info instead of a mode, type and named flag.
1099         * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
1100         * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
1101         (c6x_call_saved_register_used): Update call accordingly.
1102         * config/cr16/cr16.c (cr16_function_arg_advance): Take a
1103         function_arg_info instead of a mode, type and named flag.
1104         * config/cris/cris.c (cris_function_arg_advance): Likewise.
1105         * config/csky/csky.c (csky_function_arg_advance): Likewise.
1106         (csky_setup_incoming_varargs): Update call accordingly.
1107         * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
1108         function_arg_info instead of a mode, type and named flag.
1109         * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
1110         * config/frv/frv.c (frv_function_arg_advance): Likewise.
1111         * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
1112         * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
1113         * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
1114         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
1115         (ix86_setup_incoming_varargs): Update call accordingly.
1116         * config/ia64/ia64.c (ia64_function_arg_advance): Take a
1117         function_arg_info instead of a mode, type and named flag.
1118         (ia64_setup_incoming_varargs): Update call accordingly.
1119         * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
1120         function_arg_info instead of a mode, type and named flag.
1121         (iq2000_expand_prologue): Update call accordingly.
1122         * config/lm32/lm32.c (lm32_function_arg_advance): Take a
1123         function_arg_info instead of a mode, type and named flag.
1124         * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
1125         * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
1126         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
1127         * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
1128         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
1129         Likewise.
1130         (microblaze_expand_prologue): Update call accordingly.
1131         * config/mips/mips.c (mips_function_arg_advance): Take a
1132         function_arg_info instead of a mode, type and named flag.
1133         (mips_setup_incoming_varargs): Update call accordingly.
1134         (mips_output_args_xfer): Likewise.
1135         * config/mmix/mmix.c (mmix_function_arg_advance): Take a
1136         function_arg_info instead of a mode, type and named flag.
1137         * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
1138         * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
1139         * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
1140         * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
1141         * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
1142         (nios2_setup_incoming_varargs): Update call accordingly.
1143         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
1144         function_arg_info instead of a mode, type and named flag.
1145         * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
1146         * config/pa/pa.c (pa_function_arg_advance): Likewise.
1147         * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
1148         * config/pru/pru.c (pru_function_arg_advance): Likewise.
1149         * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
1150         (riscv_setup_incoming_varargs): Update call accordingly.
1151         * config/rl78/rl78.c (rl78_function_arg_advance): Take a
1152         function_arg_info instead of a mode, type and named flag.
1153         * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
1154         Likewise.
1155         * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
1156         (rs6000_parm_needs_stack): Update call accordingly.
1157         * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
1158         instead of a mode, type and named flag.
1159         * config/s390/s390.c (s390_function_arg_advance): Likewise.
1160         (s390_call_saved_register_used): Update call accordingly.
1161         * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
1162         instead of a mode, type and named flag.
1163         (sh_output_mi_thunk): Update call accordingly.
1164         * config/sparc/sparc.c (sparc_function_arg_advance): Take a
1165         function_arg_info instead of a mode, type and named flag.
1166         * config/spu/spu.c (spu_function_arg_advance): Likewise.
1167         (spu_setup_incoming_varargs): Update call accordingly.
1168         * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
1169         function_arg_info instead of a mode, type and named flag.
1170         * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
1171         (tilegx_setup_incoming_varargs): Update call accordingly.
1172         * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
1173         function_arg_info instead of a mode, type and named flag.
1174         (tilegx_setup_incoming_varargs): Update call accordingly.
1175         * config/v850/v850.c (v850_function_arg_advance): Take a
1176         function_arg_info instead of a mode, type and named flag.
1177         * config/vax/vax.c (vax_function_arg_advance): Likewise.
1178         * config/visium/visium.c (visium_function_arg_advance): Likewise.
1179         (visium_setup_incoming_varargs): Update call accordingly.
1180         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
1181         function_arg_info instead of a mode, type and named flag.
1183 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1185         * target.def (function_arg, function_incoming_arg): Take a
1186         function_arg_info instead of a mode, tree and named flag.
1187         * doc/tm.texi: Regenerate.
1188         * targhooks.h (default_function_arg): Take a function_arg_info
1189         instead of a mode, tree and named flag.
1190         (default_function_incoming_arg): Likewise.
1191         * targhooks.c (default_function_arg): Likewise.
1192         (default_function_incoming_arg): Likewise.
1193         * calls.h (function_arg_info::end_marker_p): New function.
1194         (function_arg_info::end_marker): Likewise.
1195         * calls.c (prepare_call_address, initialize_argument_information)
1196         (expand_call, emit_library_call_value_1): Update calls to
1197         targetm.calls.function_arg and targetm.calls.function_incoming_arg.
1198         * dse.c: Include calls.h.
1199         (get_call_args): Update call to targetm.calls.function_arg.
1200         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1201         * var-tracking.c (prepare_call_arguments): Likewise.
1202         * function.c (assign_parm_find_entry_rtl): Update call to
1203         targetm.calls.function_incoming_arg.
1204         * config/aarch64/aarch64.c (aarch64_function_arg): Take a
1205         function_arg_info instead of a mode, tree and named flag.
1206         * config/alpha/alpha.c (alpha_function_arg): Likewise.
1207         * config/arc/arc.c (arc_function_arg): Likewise.
1208         * config/arm/arm.c (arm_function_arg): Likewise.
1209         (cmse_func_args_or_return_in_stack): Update call accordingly.
1210         (arm_function_ok_for_sibcall): Likewise.
1211         (cmse_nonsecure_call_clear_caller_saved): Likewise.
1212         * config/avr/avr.c (avr_function_arg): Take a function_arg_info
1213         instead of a mode, tree and named flag.
1214         * config/bfin/bfin.c (bfin_function_arg): Likewise.
1215         * config/c6x/c6x.c (c6x_function_arg): Likewise.
1216         (c6x_call_saved_register_used): Update call accordingly.
1217         * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
1218         instead of a mode, tree and named flag.
1219         * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
1220         (cris_function_arg_1): Likewise.
1221         * config/csky/csky.c (csky_function_arg): Likewise.
1222         * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
1223         * config/fr30/fr30.c (fr30_function_arg): Likewise.
1224         * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
1225         (frv_function_arg_1): Likewise.
1226         * config/ft32/ft32.c (ft32_function_arg): Likewise.
1227         * config/gcn/gcn.c (gcn_function_arg): Likewise.
1228         * config/h8300/h8300.c (h8300_function_arg): Likewise.
1229         * config/i386/i386.c (ix86_function_arg): Likewise.
1230         * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
1231         (ia64_function_arg_1): Likewise.
1232         * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
1233         (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
1234         accordingly.
1235         * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
1236         instead of a mode, tree and named flag.
1237         * config/m32c/m32c.c (m32c_function_arg): Likewise.
1238         * config/m32r/m32r.c (m32r_function_arg): Likewise.
1239         * config/m68k/m68k.c (m68k_function_arg): Likewise.
1240         * config/mcore/mcore.c (mcore_function_arg): Likewise.
1241         * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
1242         (microblaze_expand_prologue): Update call accordingly.
1243         * config/mips/mips.c (mips_function_arg): Take a function_arg_info
1244         instead of a mode, tree and named flag.
1245         * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
1246         (mmix_function_arg_1): Likewise.
1247         * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
1248         * config/moxie/moxie.c (moxie_function_arg): Likewise.
1249         * config/msp430/msp430.c (msp430_function_arg): Likewise.
1250         * config/nds32/nds32.c (nds32_function_arg): Likewise.
1251         * config/nios2/nios2.c (nios2_function_arg): Likewise.
1252         * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
1253         (nvptx_function_incoming_arg): Likewise.
1254         * config/or1k/or1k.c (or1k_function_arg): Likewise.
1255         * config/pa/pa.c (pa_function_arg): Likewise.
1256         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
1257         * config/pru/pru.c (pru_function_arg): Likewise.
1258         * config/riscv/riscv.c (riscv_function_arg): Likewise.
1259         * config/rl78/rl78.c (rl78_function_arg): Likewise.
1260         * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
1261         * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
1262         (rs6000_parm_needs_stack): Update call accordingly.
1263         * config/rx/rx.c (rx_function_arg): Take a function_arg_info
1264         instead of a mode, tree and named flag.
1265         * config/s390/s390.c (s390_function_arg): Likewise.
1266         (s390_call_saved_register_used): Update call accordingly.
1267         * config/sh/sh.c (sh_function_arg): Take a function_arg_info
1268         instead of a mode, tree and named flag.
1269         (sh_output_mi_thunk): Update call accordingly.
1270         * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
1271         (sparc_function_incoming_arg): Take a function_arg_info instead of
1272         a mode, tree and named flag.
1273         * config/spu/spu.c (spu_function_arg): Likewise.
1274         * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
1275         * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
1276         * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
1277         * config/v850/v850.c (v850_function_arg): Likewise.
1278         * config/vax/vax.c (vax_function_arg): Likewise.
1279         * config/visium/visium.c (visium_function_arg): Likewise.
1280         * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
1281         (xtensa_function_incoming_arg): Likewise.
1283 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1285         * target.def (setup_incoming_varargs): Take a function_arg_info
1286         instead of a mode and tree.
1287         * doc/tm.texi: Regenerate.
1288         * targhooks.h (default_setup_incoming_varargs): Take a
1289         function_arg_info instead of a mode and tree.
1290         * targhooks.c (default_setup_incoming_varargs): Likewise.
1291         * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
1292         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
1293         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
1294         * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
1295         * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
1296         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
1297         * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
1298         * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
1299         Likewise.
1300         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
1301         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
1302         * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
1303         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
1304         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
1305         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
1306         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
1307         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
1308         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
1309         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
1310         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
1311         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
1312         * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
1313         * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
1314         * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
1315         * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
1316         * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
1317         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
1318         * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
1319         * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
1320         * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
1321         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
1322         * function.c (assign_parms_setup_varargs): Update call to
1323         targetm.calls.setup_incoming_varargs.
1325 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1327         * target.def (pass_by_reference): Take a function_arg_info instead
1328         of a mode, type and named flag.
1329         * doc/tm.texi: Regenerate.
1330         * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
1331         accordingly.
1332         (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
1333         * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
1334         function_arg_info instead of a mode, type and named flag.
1335         (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
1336         * calls.h (pass_by_reference): Take a function_arg_info instead of a
1337         mode, type and named flag.
1338         * calls.c (pass_by_reference): Likewise.
1339         (pass_va_arg_by_reference): Update call accordingly.
1340         (initialize_argument_information): Likewise.
1341         (emit_library_call_value_1): Likewise.
1342         * function.c (assign_parm_find_data_types): Likewise.
1343         * var-tracking.c (prepare_call_arguments): Likewise.
1344         * stor-layout.c: Include calls.h.
1345         (compute_record_mode): Update call to targetm.calls.pass_by_reference.
1346         * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
1347         function_arg_info instead of a mode, type and named flag.
1348         * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
1349         * config/arc/arc.c (arc_pass_by_reference): Likewise.
1350         * config/arm/arm.c (arm_pass_by_reference): Likewise.
1351         * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
1352         * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
1353         (c6x_call_saved_register_used): Update call to pass_by_reference.
1354         * config/cris/cris.c (cris_pass_by_reference): Take a
1355         function_arg_info instead of a mode, type and named flag.
1356         * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
1357         function_arg_info instead of a mode, type and named flag.
1358         (epiphany_arg_partial_bytes): Update call accordingly.
1359         * config/ft32/ft32.c (ft32_pass_by_reference): Take a
1360         function_arg_info instead of a mode, type and named flag.
1361         (ft32_arg_partial_bytes): Update call accordingly.
1362         * config/i386/i386.c (ix86_pass_by_reference): Take a
1363         function_arg_info instead of a mode, type and named flag.
1364         * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
1365         * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
1366         * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
1367         (m32r_return_in_memory): Update call accordingly.
1368         * config/mips/mips.c (mips_pass_by_reference): Take a
1369         function_arg_info instead of a mode, type and named flag.
1370         * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
1371         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
1372         * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
1373         (moxie_arg_partial_bytes): Update call accordingly.
1374         * config/msp430/msp430.c (msp430_pass_by_reference): Take a
1375         function_arg_info instead of a mode, type and named flag.
1376         * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
1377         * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
1378         * config/pa/pa.c (pa_pass_by_reference): Likewise.
1379         * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
1380         (riscv_return_in_memory): Update call accordingly.
1381         * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
1382         function_arg_info instead of a mode, type and named flag.
1383         * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
1384         (rs6000_parm_needs_stack): Update call to pass_by_reference.
1385         * config/s390/s390.c (s390_pass_by_reference): Take a
1386         function_arg_info instead of a mode, type and named flag.
1387         (s390_call_saved_register_used): Update call accordingly.
1388         * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
1389         instead of a mode, type and named flag.
1390         * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
1391         * config/spu/spu.c (spu_pass_by_reference): Likewise.
1392         * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
1393         * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
1394         * config/v850/v850.c (v850_pass_by_reference): Likewise.
1395         * config/visium/visium.c (visium_pass_by_reference): Likewise.
1397 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1399         * target.def (arg_partial_bytes): Take a function_arg_info instead
1400         of a mode, type and named flag.
1401         * doc/tm.texi: Regenerate.
1402         * target.h (function_arg_info): Declare.
1403         * calls.h (function_arg_info): New class.
1404         * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
1405         (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
1406         * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
1407         (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
1408         * calls.c (initialize_argument_information): Update call to
1409         targetm.calls.partial_bytes.
1410         (emit_library_call_value_1): Likewise.
1411         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1412         * function.c (assign_parm_find_entry_rtl): Likewise.
1413         * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
1414         function_arg_info instead of a mode, type and named flag.
1415         * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
1416         * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
1417         (cmse_func_args_or_return_in_stack): Update accordingly.
1418         * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
1419         function_arg_info instead of a mode, type and named flag.
1420         * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
1421         * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
1422         * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
1423         * config/fr30/fr30.c: Include calls.h.
1424         (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
1425         type and named flag.
1426         * config/frv/frv.c: Include calls.h.
1427         (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
1428         type and named flag.
1429         * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
1430         * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
1431         * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
1432         * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
1433         * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
1434         * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
1435         * config/microblaze/microblaze.c (function_arg_partial_bytes):
1436         Likewise.
1437         * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
1438         * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
1439         * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
1440         * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
1441         * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
1442         * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
1443         * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
1444         * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
1445         * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
1446         * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
1447         * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
1448         (rs6000_parm_needs_stack): Update call accordingly.
1449         * config/sh/sh.c (sh_arg_partial_bytes): Take a
1450         function_arg_info instead of a mode, type and named flag.
1451         * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
1452         * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
1454 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1456         * calls.h (must_pass_va_arg_in_stack): Declare.
1457         * calls.c (must_pass_va_arg_in_stack): New function.
1458         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
1459         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1460         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1461         Likewise.
1462         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1464 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1466         * calls.h (pass_va_arg_by_reference): Declare.
1467         * calls.c (pass_va_arg_by_reference): New function.
1468         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
1469         * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
1470         * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
1471         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1472         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1473         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
1474         (mips_gimplify_va_arg_expr): Likewise.
1475         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
1476         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1477         * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
1478         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1479         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1480         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1481         * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
1482         * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
1483         * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
1484         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1485         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
1487 2019-08-20  Richard Biener  <rguenther@suse.de>
1489         PR target/91498
1490         * config/i386/i386-features.c (general_scalar_chain::convert_op):
1491         Use (vec_merge (vec_duplicate..)) style vector from scalar move.
1492         (convert_scalars_to_vector): Add timode_p parameter and use it
1493         to guard TImode-only operation.
1494         (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
1495         (pass_stv::execute): Pass down timode_p.
1497 2019-08-20  Lili Cui  <lili.cui@intel.com>
1499         * common/config/i386/i386-common.c
1500         (processor_names): Add tigerlake and cooperlake.
1501         (processor_alias_table): Add tigerlake and cooperlake.
1502         * config.gcc: Add -march=tigerlake and cooperlake.
1503         * config/i386/driver-i386.c
1504         (host_detect_local_cpu): Detect tigerlake and cooperlake.
1505         Add "has_avx" to classify processor.
1506         * config/i386/i386-builtins.c (processor_model) :
1507         Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
1508         (arch_names_table): Add tigerlake and cooperlake.
1509         (get_builtin_code_for_version) : Handle PROCESSOR_TIGERLAKE
1510         and PROCESSOR_COOPERLAKE.
1511         * config/i386/i386-c.c
1512         (ix86_target_macros_internal): Handle tigerlake and cooperlake.
1513         * config/i386/i386-options.c
1514         (m_TIGERLAKE)  : Define.
1515         (m_COOPERLAKE) : Ditto.
1516         (m_CORE_AVX512): Ditto.
1517         (processor_cost_table): Add cascadelake.
1518         (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
1519         * config/i386/i386.h
1520         (ix86_size_cost) : Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
1521         (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
1522         (PTA_MOVDIRI): Ditto.
1523         (PTA_MOVDIR64B): Ditto.
1524         (PTA_COOPERLAKE) : Ditto.
1525         (PTA_TIGERLAKE)  : Ditto.
1526         (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
1527         * doc/extend.texi: Add tigerlake and cooperlake.
1528         * doc/invoke.texi: Add tigerlake and cooperlake.
1530 2019-08-20  Gerald Pfeifer  <gerald@pfeifer.com>
1532         * doc/install.texi (Specific, alpha): Remove note to use
1533         binutils 2.11.2 or later.
1535 2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1537         PR middle-end/89544
1538         * function.c (assign_parm_find_stack_rtl): Use larger alignment
1539         when possible.
1541 2019-08-19  Joel Hutton  <Joel.Hutton@arm.com>
1543         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
1544         * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
1545         * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
1546         (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
1547         * config/aarch64/constraints.md (Dt): New constraint
1548         * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
1550 2019-08-19  Richard Biener  <rguenther@suse.de>
1552         PR tree-optimization/91403
1553         * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
1554         cases we can handle with tail-recursion...
1555         (follow_ssa_edge_expr): ... here.  Do so.
1557 2019-08-19  Kito Cheng  <kito.cheng@sifive.com>
1559         PR target/91441
1560         * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
1561         implemented for -fsanitize=kernel-address, and merge check logic
1562         with -fsanitize=address.
1564 2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>
1566         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
1567         for cpu and machine.  Factor 64/32b builtins.
1569 2019-08-18  Gerald Pfeifer  <gerald@pfeifer.com>
1571         * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
1572         gone, point to sourceforge.net.
1574 2019-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
1575         
1576         * doc/ux.texi (User Experience Guidelines): Update reference.
1578 2019-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
1579         
1580         * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
1581         not LGPL".
1583 2019-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1585         * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
1586         of NULL.  Add guard for broken VIEW_CONVERT_EXPRs.
1588 2019-08-16  Martin Sebor  <msebor@redhat.com>
1590         * tree.def (TYPE_SIZE): Clarify.
1591         * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
1593 2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1595         PR tree-optimization/91109
1596         * lra-int.h (lra_need_for_scratch_reg_p): Declare.
1597         * lra.c (lra): Use lra_need_for_scratch_reg_p.
1598         * lra-spills.c (lra_need_for_scratch_reg_p): New function.
1600 2019-08-16  Uroš Bizjak  <ubizjak@gmail.com>
1602         * config/i386/mmx.md (mmxdoublemode): New mode attribute.
1603         (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
1604         mmx_uavgv4hi3 using MMXMODE12 mode iterator.
1605         (uavg<mode>3_ceil): New expander.
1606         * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
1607         mode iterator when creating CONST1_RTX.
1608         (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
1609         (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
1610         mode iterator for const1_operand predicate.
1612 2019-08-16  Richard Biener  <rguenther@suse.de>
1614         * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
1615         (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
1616         follow_ssa_edge.
1617         (follow_ssa_edge_in_condition_phi_branch): Likewise.
1618         (analyze_evolution_in_loop): Likewise.
1619         (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
1620         (follow_ssa_edge_expr): ... here.  Refactor code.
1622 2019-08-16  Richard Biener  <rguenther@suse.de>
1624         PR target/91469
1625         * config/i386/i386-features.c
1626         (general_scalar_chain::replace_with_subreg): Stop at memory operands.
1628 2019-08-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1630         PR other/91255
1631         * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
1632         only if subst_name matches curr_attr string.
1634 2019-08-16  Richard Biener  <rguenther@suse.de>
1636         * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
1637         stmt at gsi_p, instead replace it with a NOP removed later.
1638         (pass_forwprop::execute): Fully propagate lattice, DCE stmts
1639         that became dead because of that.
1641 2019-08-16  Aldy Hernandez  <aldyh@redhat.com>
1643         * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
1644         for which we can't represent a range.
1645         * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
1646         set_varying.
1647         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
1648         Set VR_UNDEFINED if type is not supported.
1649         * tree-ssanames.c (get_range_info): Pass type to set_varying.
1650         * tree-vrp.c (value_range_base::check): Assert that a varying has
1651         min/max set.
1652         (value_range_base::equal_p): Early bail for undefines.
1653         (value_range_base::set_varying): Accept a type.
1654         (value_range::set_varying): Same.
1655         (value_range_base::type): VARYING can have a type, while UNDEFINE
1656         is typeless.
1657         (value_range_base::dump): Print type for VARYING nodes.
1658         (value_range_base::set): Add type to VARYING.
1659         (extract_range_from_multiplicative_op): Pass type to set_varying.
1660         (extract_range_from_binary_expr): Same.
1661         (value_range_base::intersect_helper): Same.
1662         (value_range_base::union_helper): Same.
1663         (value_range_base::normalize_symbolics): Same.
1664         (determine_value_range_1): Same.
1665         * tree-vrp.h (class value_range_base): Add type to set_varying.
1666         Add prototype for dump(void).
1667         Add prototype for supports_type_p.
1668         (class value_range): Add type to set_varying.
1669         Add prototype for dump(void).
1670         * vr-values.c (set_value_range_to_truthvalue): Pass type to
1671         set_varying.
1672         (vr_values::get_lattice_entry): Set varying even if propagation
1673         finished.
1674         Pass type to set_varying.
1675         (vr_values::get_value_range): Remove vr_const_varying.
1676         Reallocate the lattice if needed.
1677         (vr_values::update_value_range): Pass type to set_varying.
1678         (vr_values::extract_range_for_var_from_comparison_expr): Same.
1679         (vr_values::extract_range_from_binary_expr): Same.
1680         (vr_values::extract_range_from_unary_expr): Same.
1681         (vr_values::extract_range_from_cond_expr): Same.
1682         (vr_values::check_for_binary_op_overflow): Same.
1683         (vr_values::extract_range_basic): Same.
1684         (vr_values::extract_range_from_assignment): Same.
1685         (vr_values::vr_values): Increase size of num_vr_values.
1686         (vr_values::extract_range_from_phi_node): Pass type to
1687         set_varying.
1689 2019-08-15  H.J. Lu  <hongjiu.lu@intel.com>
1691         PR target/90878
1692         * config/i386/i386.c (inline_memory_move_cost): Use hard_register
1693         for costs of hard register moves.
1694         (ix86_register_move_cost): Likewise.
1695         * config/i386/i386.h (processor_costs): Move costs of hard
1696         register moves to hard_register.  Add int_load, int_store,
1697         xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
1698         sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
1699         for costs of RTL expressions.
1700         * config/i386/x86-tune-costs.h: Move costs of hard register
1701         moves to hard_register.  Duplicate int_load, int_store,
1702         xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
1703         sse_load, sse_store for costs of RTL expressions.
1705 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1707         * target.def (setup_incoming_vararg_bounds): Remove.
1708         * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
1709         * doc/tm.texi: Regenerate.
1710         * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
1711         * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
1712         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
1713         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
1715 2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1717         MSP430: Fix lines over 80 characters long in
1718         config/msp430/*.{c,h} files
1720         * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
1721         specifier in string.
1722         (msp430_select_hwmult_lib): Split line more than 80 characters long.
1723         * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
1724         redundant old comment.
1725         * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
1726         Split line more than 80 characters long.
1727         * config/msp430/msp430.c (msp430_option_override): Likewise.
1728         (msp430_return_in_memory): Likewise.
1729         (msp430_gimplify_va_arg_expr): Likewise.
1730         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
1731         (msp430_legitimate_constant): Likewise.
1732         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
1733         (msp430_attr): Likewise.
1734         (msp430_data_attr): Likewise.
1735         (msp430_start_function): Likewise.
1736         (gen_prefix): Likewise.
1737         (msp430_init_sections): Likewise.
1738         (msp430_select_section): Likewise.
1739         (msp430_function_section): Likewise.
1740         (msp430_unique_section): Likewise.
1741         (msp430_output_aligned_decl_common): Likewise.
1742         (msp430_do_not_relax_short_jumps): Likewise.
1743         (msp430_init_builtins): Likewise.
1744         (msp430_expand_delay_cycles): Likewise.
1745         (msp430_expand_prologue): Likewise.
1746         (msp430_expand_epilogue): Likewise.
1747         (msp430_expand_helper): Likewise.
1748         (msp430_split_movsi): Likewise.
1749         (msp430_print_operand): Likewise.
1750         (msp430_return_addr_rtx): Likewise.
1751         (msp430x_extendhisi): Likewise.
1752         * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
1753         (ASM_SPEC): Likewise.
1754         Remove very obvious comments.
1755         (LIB_SPEC): Split line more than 80 characters long.
1756         (EH_RETURN_HANDLER_RTX): Likewise.
1757         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
1759 2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1761         MSP430: Fix whitespace errors and incorrect indentation in
1762         config/msp430/*.{c,h} files
1764         * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
1765         (msp430_select_hwmult_lib): Likewise.
1766         * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
1767         (msp430_extract_mcu_data): Likewise.
1768         (struct t_msp430_mcu_data): Likewise.
1769         * config/msp430/msp430.c (struct machine_function): Remove whitespace
1770         before left square bracket.
1771         (msp430_option_override): Fix indentation.
1772         (msp430_hard_regno_nregs_with_padding): Likewise.
1773         (msp430_initial_elimination_offset): Likewise.
1774         (msp430_special_register_convention_p): Remove whitespace before left
1775         square bracket and after exclamation mark.
1776         (msp430_evaluate_arg): Likewise.
1777         (msp430_callee_copies): Fix indentation.
1778         (msp430_gimplify_va_arg_expr): Likewise.
1779         (msp430_function_arg_advance): Remove whitespace before left square
1780         bracket.
1781         (reg_ok_for_addr): Likewise.
1782         (msp430_preserve_reg_p): Likewise.
1783         (msp430_compute_frame_info): Likewise.
1784         (msp430_asm_output_addr_const_extra): Add space between function name
1785         and open parenthesis.
1786         (has_section_name): Fix indentation.
1787         (msp430_attr): Remove trailing whitespace.
1788         (msp430_section_attr): Likewise.
1789         (msp430_data_attr): Likewise.
1790         (struct msp430_attribute_table): Fix comment and whitespace.
1791         (msp430_start_function): Remove whitespace before left square bracket.
1792         Add space between function name and open parenthesis.
1793         (msp430_select_section): Remove trailing whitespace.
1794         (msp430_section_type_flags): Remove trailing whitespace.
1795         (msp430_unique_section): Remove space before closing parenthesis.
1796         (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
1797         (msp430_builtins): Remove whitespace before left square bracket.
1798         (msp430_init_builtins): Fix indentation.
1799         (msp430_expand_prologue): Remove whitespace before left square bracket.
1800         Remove space before closing parenthesis.
1801         (msp430_expand_epilogue): Remove whitespace before left square bracket.
1802         (msp430_split_movsi): Remove space before closing parenthesis.
1803         (helper_function_name_mappings): Fix indentation.
1804         (msp430_use_f5_series_hwmult): Fix whitespace.
1805         (use_32bit_hwmult): Likewise.
1806         (msp430_no_hwmult): Likewise.
1807         (msp430_output_labelref): Remove whitespace before left square bracket.
1808         (msp430_print_operand_raw): Likewise.
1809         (msp430_print_operand_addr): Likewise.
1810         (msp430_print_operand): Add two spaces after '.' in comment.
1811         Fix trailing whitespace.
1812         (msp430x_extendhisi): Fix indentation.
1813         * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
1814         tab.
1815         (PC_REGNUM): Likewise.
1816         (STACK_POINTER_REGNUM): Likewise.
1817         (CC_REGNUM): Likewise.
1819 2019-08-15  Richard Biener  <rguenther@suse.de>
1821         PR target/91454
1822         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
1823         helper.
1824         (general_scalar_chain::make_vector_copies): Use it.
1826 2019-08-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1828         * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
1830 2019-08-15  Martin Liska  <mliska@suse.cz>
1832         * tree-ssa-dce.c (propagate_necessity): We can't reach now
1833         operators with no arguments.
1834         (eliminate_unnecessary_stmts): Likewise here.
1836 2019-08-15  Uroš Bizjak  <ubizjak@gmail.com>
1838         * config/i386/i386-features.c (general_scalar_chain::convert_insn)
1839         <case COMPARE>: Revert 2019-08-14 change.
1840         (convertible_comparison_p): Revert 2019-08-14 change.  Return false
1841         for (TARGET_64BIT || mode != DImode).
1843 2019-08-15  Aldy Hernandez  <aldyh@redhat.com>
1845         * tree-vrp.c (value_range_base::set): Merge in code from
1846         value_range_base::set_and_canonicalize.
1847         Enforce canonicalization at set time.
1848         Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
1849         (value_range_base::set_undefined): Inline call to set().
1850         (value_range_base::set_varying): Same.
1851         (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
1852         (vrp_val_max): New argument handle_pointers.
1853         (vrp_val_min): Same.
1854         (ranges_from_anti_range): Same.
1855         (extract_range_into_wide_ints): Use tree argument instead of sign
1856         and precision.
1857         (extract_range_from_multiplicative_op): Take in tree type instead
1858         of precision and sign.  Adapt function for canonicalized ranges.
1859         (extract_range_from_binary_expr): Pass type to
1860         extract_range_from_multiplicative_op.
1861         Adapt for canonicalized ranges.
1862         (extract_range_from_unary_expr): Same.
1863         (value_range_base::intersect_helper): Adjust for canonicalized
1864         ranges.
1865         (value_range_base::union_helper): Same.
1866         (value_range_base::normalize_symbolics): New.
1867         * tree-vrp.h (class value_range_base): Remove
1868         set_and_canonicalize.
1869         New prototype for normalize_symbolics.
1870         (class value_range): Remove set_and_canonicalize.
1871         (vrp_val_min): Adjust prototype.
1872         (vrp_val_max): Same.
1873         * vr-values.c
1874         (vr_values::extract_range_for_var_from_comparison_expr):  Call set
1875         instead of set_and_canonicalize.
1877 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1879         PR middle-end/91444
1880         * tree-vect-stmts.c (vectorizable_call): Check that the function
1881         is a BUILT_IN_MD function before passing it to
1882         targetm.vectorize.builtin_md_vectorized_function.
1884 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1886         * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
1887         * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
1888         (aarch64_select_early_remat_modes): Use it.
1890 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1892         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
1893         16 for SVE predicates even if they are fixed-length.
1895 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1897         * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
1898         operand order match the MOV /Z alias.
1900 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1902         * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
1903         the vector pattern as an aarch64_svpattern argument.  Update the
1904         overloaded caller accordingly.
1905         (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
1906         (aarch64_output_sve_vector_inc_dec): Likewise.
1908 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1910         * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
1911         multiplication case, try to compute VG * (lowest set bit) directly
1912         rather than always basing the multiplication on VG.  Use
1913         expand_mult for the multiplication if we can.
1915 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1917         * config/aarch64/aarch64-protos.h
1918         (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
1919         (aarch64_sve_inc_dec_immediate_p): Rename to...
1920         (aarch64_sve_vector_inc_dec_immediate_p): ...this.
1921         (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
1922         (aarch64_output_sve_scalar_inc_dec): Declare.
1923         (aarch64_output_sve_inc_dec_immediate): Rename to...
1924         (aarch64_output_sve_vector_inc_dec): ...this.
1925         * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
1926         (aarch64_output_sve_scalar_inc_dec): New functions.
1927         (aarch64_output_sve_addvl_addpl): Remove the base and offset
1928         arguments.  Only handle true ADDVL and ADDPL instructions;
1929         don't emit an INC or DEC.
1930         (aarch64_sve_inc_dec_immediate_p): Rename to...
1931         (aarch64_sve_vector_inc_dec_immediate_p): ...this.
1932         (aarch64_output_sve_inc_dec_immediate): Rename to...
1933         (aarch64_output_sve_vector_inc_dec): ...this.  Update call to
1934         aarch64_sve_vector_inc_dec_immediate_p.
1935         * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
1936         (aarch64_sve_plus_immediate): New predicates.
1937         (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
1938         rather than aarch64_sve_addvl_addpl_immediate.
1939         (aarch64_sve_inc_dec_immediate): Rename to...
1940         (aarch64_sve_vector_inc_dec_immediate): ...this.  Update call to
1941         aarch64_sve_vector_inc_dec_immediate_p.
1942         (aarch64_sve_add_operand): Update accordingly.
1943         * config/aarch64/constraints.md (Uai): New constraint.
1944         (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
1945         * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
1946         operand into a register if it satisfies aarch64_sve_plus_immediate.
1947         (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
1948         for Uai.  Update calls to aarch64_output_sve_addvl_addpl.
1949         * config/aarch64/aarch64-sve.md (add<mode>3): Call
1950         aarch64_output_sve_vector_inc_dec instead of
1951         aarch64_output_sve_inc_dec_immediate.
1953 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1955         * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
1956         (UNSPEC_REVW): New constants.
1957         (elem_bits): New mode attribute.
1958         (SVE_INT_UNARY): New int iterator.
1959         (optab): Handle UNSPEC_REV[BHW].
1960         (sve_int_op): New int attribute.
1961         (min_elem_bits): Handle VNx16QI and the predicate modes.
1962         * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
1963         (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
1964         (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
1965         * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
1966         (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
1967         (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
1968         unspecs based on the total width of the reversed data.
1969         (aarch64_evpc_rev_local): Likewise (for SVE only).  Use a
1970         reinterpret followed by a subreg on big-endian targets.
1972 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1973             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
1975         * config/aarch64/aarch64-sve.md
1976         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
1977         alternatives in which one of the inputs is in the same register
1978         as the output.
1980 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1982         * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
1983         (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
1985 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1987         * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
1988         FADD and FSUB alternatives.  Add a MOVPRFX alternative for FSUBR.
1990 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1991             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
1993         * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
1994         (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
1995         (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
1997 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
1998             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2000         * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
2001         Add an alternative that uses reversed shifts.
2003 2019-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2005         * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
2006         struct.
2008 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
2010         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
2011         a commutativity marker.
2013 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
2014             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2016         * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
2017         (aarch64_prepare_sve_cond_int_fma): Declare.
2018         * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
2019         (aarch64_prepare_sve_int_fma): New functions.
2020         (aarch64_prepare_sve_cond_int_fma): Likewise.
2021         * config/aarch64/aarch64-sve.md
2022         (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
2023         (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
2024         (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
2025         (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
2026         (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
2027         (*madd<mode>): Rename to...
2028         (*fma<mode>4): ...this.
2029         (*msub<mode>): Rename to...
2030         (*fnma<mode>4): ...this.
2032 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
2033             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2035         * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
2036         Print 2.0 naturally.
2037         (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
2038         * config/aarch64/predicates.md
2039         (aarch64_sve_float_negated_arith_immediate): New predicate,
2040         renamed from aarch64_sve_float_arith_with_sub_immediate.
2041         (aarch64_sve_float_arith_with_sub_immediate): Test for both
2042         positive and negative constants.
2043         (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
2044         or an aarch64_sve_float_arith_with_sub_immediate.
2045         * config/aarch64/constraints.md (vsN): Use
2046         aarch64_sve_float_negated_arith_immediate.
2047         * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
2048         iterator.
2049         (sve_pred_fp_rhs2_immediate): New int attribute.
2050         * config/aarch64/aarch64-sve.md
2051         (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
2052         sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
2053         (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
2054         (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
2055         (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
2056         (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
2058 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
2059             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2061         * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
2062         (*aarch64_cond_abd<SVE_F:mode>_3)
2063         (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
2065 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
2066             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2068         * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
2069         (*aarch64_cond_<su>abd<mode>_any): New patterns.
2071 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
2072             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2074         * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
2075         * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
2076         * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
2077         * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
2078         optabs.
2079         * optabs.h (create_convert_operand_from): Expand comment.
2080         * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
2081         when mapping scalar rtxes to vector operands.
2082         * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
2083         ashiftrt and lshiftrt.
2084         (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
2085         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
2086         (*cond_<optab><mode>_any_const): New patterns.
2088 2019-08-15  Martin Liska  <mliska@suse.cz>
2090         PR ipa/91438
2091         * cgraph.c (cgraph_node::remove): When setting
2092         n->origin = NULL for all nested functions, reset
2093         also next_nested.
2095 2019-08-15  Martin Liska  <mliska@suse.cz>
2097         * cgraph.c (cgraph_node::verify_node): Verify origin, nested
2098         and next_nested.
2100 2019-08-15  Martin Liska  <mliska@suse.cz>
2102         PR ipa/91404
2103         * passes.c (order): Remove.
2104         (uid_hash_t): Likewise).
2105         (remove_cgraph_node_from_order): Remove from set
2106         of pointers (cgraph_node *).
2107         (insert_cgraph_node_to_order): New.
2108         (duplicate_cgraph_node_to_order): New.
2109         (do_per_function_toporder): Register all 3 cgraph hooks.
2110         Skip removed_nodes now as we know about all of them.
2112 2019-08-14  Uroš Bizjak  <ubizjak@gmail.com>
2114         * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
2115         <case E_V8QImode>: Use vector_set path for
2116         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
2117         (ix86_expand_vector_init_one_var) <case E_V8QImode>:
2118         Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
2120 2019-08-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2122         * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
2124 2019-08-14  Martin Sebor  <msebor@redhat.com>
2126         PR tree-optimization/91294
2127         * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
2128         source length as exact.
2130 2019-08-14  Christophe Lyon  <christophe.lyon@linaro.org>
2132         * doc/extend.texi: Add "noinit" attribute documentation.
2133         * doc/sourcebuild.texi: Add noinit effective target documentation.
2134         * varasm.c (default_section_type_flags): Add support for "noinit"
2135         section.
2136         (default_elf_select_section): Add support for "noinit" attribute.
2137         * config/msp430/msp430.c (msp430_attribute_table): Remove
2138         "noinit" entry.
2140 2019-08-14  Richard Biener  <rguenther@suse.de>
2141             Uroš Bizjak  <ubizjak@gmail.com>
2143         PR target/91154
2144         * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
2145         mode arguments.
2146         (scalar_chain::smode): New member.
2147         (scalar_chain::vmode): Likewise.
2148         (dimode_scalar_chain): Rename to...
2149         (general_scalar_chain): ... this.
2150         (general_scalar_chain::general_scalar_chain): Take mode arguments.
2151         (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
2152         base with TImode and V1TImode.
2153         * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
2154         (general_scalar_chain::vector_const_cost): Adjust for SImode
2155         chains.
2156         (general_scalar_chain::compute_convert_gain): Likewise.  Add
2157         {S,U}{MIN,MAX} support.
2158         (general_scalar_chain::replace_with_subreg): Use vmode/smode.
2159         (general_scalar_chain::make_vector_copies): Likewise.  Handle
2160         non-DImode chains appropriately.
2161         (general_scalar_chain::convert_reg): Likewise.
2162         (general_scalar_chain::convert_op): Likewise.
2163         (general_scalar_chain::convert_insn): Likewise.  Add
2164         fatal_insn_not_found if the result is not recognized.
2165         (convertible_comparison_p): Pass in the scalar mode and use that.
2166         (general_scalar_to_vector_candidate_p): Likewise.  Rename from
2167         dimode_scalar_to_vector_candidate_p.  Add {S,U}{MIN,MAX} support.
2168         (scalar_to_vector_candidate_p): Remove by inlining into single
2169         caller.
2170         (general_remove_non_convertible_regs): Rename from
2171         dimode_remove_non_convertible_regs.
2172         (remove_non_convertible_regs): Remove by inlining into single caller.
2173         (convert_scalars_to_vector): Handle SImode and DImode chains
2174         in addition to TImode chains.
2175         * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
2176         (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
2177         (*<maxmin>di3_doubleword): Likewise.
2179 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2180             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2182         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
2183         (*cond_bic<mode>_any): New patterns.
2185 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2187         * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
2188         take the equivalent mask, as well as a bit count.
2189         * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
2190         (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
2191         (aarch64_sve_pred_and_operand): New predicates.
2192         * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
2193         code attribute.
2194         * config/aarch64/aarch64-sve.md
2195         (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
2196         (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
2198 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2200         * config/aarch64/aarch64-sve.md
2201         (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
2202         (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
2203         New patterns.
2205 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2206             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2208         * config/aarch64/aarch64-sve.md
2209         (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
2210         (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
2212 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2213             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2215         * config/aarch64/aarch64-sve.md
2216         (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
2217         (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
2219 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2221         * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
2222         * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
2223         New pattern.
2225 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2226             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2228         * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
2230 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2231             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2233         * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
2234         (aarch64_print_vector_float_operand): Also handle 8-bit floats.
2235         (aarch64_print_operand): Add support for %I.
2236         (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
2237         Bitcast floating-point constants to the corresponding integer constant.
2238         (aarch64_float_const_representable_p): Handle vectors as well
2239         as scalars.
2240         (aarch64_expand_sve_vcond): Make sure that the operands are valid
2241         for the new vcond_mask_<mode><vpred> expander.
2242         * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
2243         test aarch64_float_const_representable_p.
2244         (aarch64_sve_reg_or_dup_imm): New predicate.
2245         * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
2246         gen_vcond_mask_<mode><vpred> instead of
2247         gen_aarch64_sve_dup<mode>_const.
2248         (vcond_mask_<mode><vpred>): Turn into a define_expand that
2249         accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
2250         for operands 1 and 2 respectively.  Force operand 2 into a
2251         register if operand 1 is a register.  Fold old define_insn...
2252         (aarch64_sve_dup<mode>_const): ...and this define_insn...
2253         (*vcond_mask_<mode><vpred>): ...into this new pattern.  Handle
2254         floating-point constants that can be moved as integers.  Add
2255         alternatives for MOV /M and FMOV /M.
2256         (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
2257         (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
2258         1 and 2 respectively.
2259         * config/aarch64/constraints.md (Ufc): Handle vectors as well
2260         as scalars.
2261         (vss): New constraint.
2263 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2265         * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
2266         (aarch64_sve_float_maxmin_operand): New predicates.
2267         * config/aarch64/constraints.md (vsB): New constraint.
2268         (vsM): Fix typo.
2269         * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
2270         aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
2271         UNSPEC_COND_FMINNM.
2272         * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
2273         Use aarch64_sve_float_maxmin_operand for operand 2.
2274         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
2275         Add alternatives for the constant forms.
2277 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2279         * config/aarch64/constraints.md (vsb): New constraint.
2280         (vsm): Generalize description.
2281         * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
2282         iterator.
2283         (sve_imm_con): Handle smax, smin, umax and umin.
2284         (sve_imm_prefix): New code attribute.
2285         * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
2286         (aarch64_sve_vsb_operand): New predicates.
2287         (aarch64_sve_mul_immediate): Rename to...
2288         (aarch64_sve_vsm_immediate): ...this.
2289         (aarch64_sve_mul_operand): Rename to...
2290         (aarch64_sve_vsm_operand): ...this.
2291         * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
2292         (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
2293         (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
2294         (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
2295         (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
2296         add movprfx support for the immediate alternatives.
2297         (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
2298         of the above.
2299         (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
2300         for operand 3.
2302 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2304         * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
2305         * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
2306         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
2308 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2310         * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
2311         (optab, sve_int_op): Handle them.
2312         * config/aarch64/aarch64-sve.md: Expand comment.
2314 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2316         * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
2317         * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
2318         (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
2320 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2322         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
2323         (aarch64_expand_sve_const_pred_trn): New functions.
2324         (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
2325         use the above functions when the parameter is true.
2326         (aarch64_expand_sve_const_pred): Update call accordingly.
2327         * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
2328         Rename to...
2329         (@aarch64_sve_<perm_insn><mode>): ...this.
2331 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2333         * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
2334         Declare.
2335         * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
2336         (aarch64_sve_emit_int_cmp): New functions.
2337         (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
2338         (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
2339         (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
2340         * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
2341         (UNSPEC_PRED_Z): New unspec.
2342         (set_clobber_cc_nzc): Delete.
2343         * config/aarch64/aarch64-sve.md: Add a block comment about
2344         UNSPEC_PRED_Z.
2345         (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
2346         (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
2347         the old pattern with that name.  Use UNSPEC_PRED_Z instead of
2348         UNSPEC_MERGE_PTRUE.
2349         (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
2350         UNSPEC_MERGE_PTRUE.  Use aarch64_sve_same_pred_for_ptest_p to
2351         check for compatible predicates.
2352         (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
2353         (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
2354         of UNSPEC_MERGE_PTRUE.  Split into the new form of predicated
2355         comparisons above.
2357 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2359         * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
2360         * config/aarch64/aarch64-sve.md: Add a section describing it.
2361         (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
2362         (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
2363         (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
2364         (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
2365         (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
2366         (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
2367         (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
2368         (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
2369         (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
2370         UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
2371         * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
2372         (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
2373         * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
2374         (aarch64_evpc_rev_local): Update accordingly.
2376 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2378         * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
2379         iterators.
2380         (SVE_BHSI, SVE_SDI): Tweak comment.
2381         (SVE_HSDI): Likewise.  Fix definition.
2382         (SVE_SDF): New mode iterator.
2383         (elem_bits): New mode attribute.
2384         (SVE_COND_FCVT): New int iterator.
2385         * config/aarch64/aarch64-sve.md
2386         (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
2387         (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
2388         (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
2389         (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
2390         (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
2391         ...these new patterns.
2392         (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
2393         (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
2394         (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
2395         Merge into...
2396         (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
2397         (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
2398         ...these new patterns.
2399         (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
2400         (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
2401         (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
2402         ...this new pattern.
2403         (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
2404         (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
2405         ...this new pattern.
2406         (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
2408 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2410         * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
2411         * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
2412         (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
2413         unspecs.
2414         (optab, su): Handle them.
2415         (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
2416         * config/aarch64/aarch64-sve.md
2417         (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
2418         (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
2419         (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
2420         (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
2421         (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
2422         (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
2423         (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
2424         (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
2425         (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
2426         FIXUORS.
2427         (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
2428         (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
2429         (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
2430         (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
2431         (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
2432         (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
2433         (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
2434         (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
2435         (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
2436         operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
2437         (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
2438         (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
2439         of UNSPEC_FLOAT_CONVERT.
2440         (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
2441         aarch64_sve_extend<mode><Vwide>2.
2443 2019-08-14  Richard Biener  <rguenther@suse.de>
2445         PR target/91154
2446         * config/i386/i386-features.c
2447         (dimode_scalar_chain::compute_convert_gain): Compute and dump
2448         individual instruction gain.  Fix reg-reg copy GRP cost.  Use
2449         ix86_cost->sse_op for vector instruction costs.
2451 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2453         * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
2454         (cmp_op): Handle it.
2455         (SVE_COND_FP_CMP): Rename to...
2456         (SVE_COND_FP_CMP_I0): ...this.
2457         (SVE_FP_CMP): Remove.
2458         * config/aarch64/aarch64-sve.md
2459         (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
2460         (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
2461         using unspecs to represent the comparison.
2462         (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
2463         (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
2464         accordingly.
2465         * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
2466         (aarch64_unspec_cond_code): Move after integer code.  Handle
2467         UNORDERED.
2468         (aarch64_emit_sve_predicated_cond): Replace with...
2469         (aarch64_emit_sve_fp_cond): ...this new function.
2470         (aarch64_emit_sve_or_conds): Replace with...
2471         (aarch64_emit_sve_or_fp_conds): ...this new function.
2472         (aarch64_emit_sve_inverted_cond): Replace with...
2473         (aarch64_emit_sve_invert_fp_cond): ...this new function.
2474         (aarch64_expand_sve_vec_cmp_float): Update accordingly.
2476 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2478         * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
2479         (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
2480         * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
2481         SVE_HSD instead of SVE_SD.
2483 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2484             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2486         * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
2487         iterator.
2488         (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
2489         attributes.
2490         * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
2491         (mul<SVE_F:mode>3, div<SVE_F:mode>3)
2492         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
2493         (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
2494         (*div<SVE_F:mode>3): Generalize to...
2495         (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
2497 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2498             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2500         * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
2501         constants.
2502         * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
2503         predicate.
2504         * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
2505         Declare.
2506         * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
2507         function.
2508         * config/aarch64/aarch64-sve.md: Add a block comment about the
2509         handling of predicated FP operations.
2510         (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
2511         (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
2512         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
2513         (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
2514         (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
2515         operand.
2516         (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
2517         (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
2518         operand.
2519         (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
2520         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
2521         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
2522         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
2523         (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
2524         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
2525         (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
2526         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
2527         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
2528         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
2529         strictness operands.  Use aarch64_sve_pred_dominates_p to check
2530         whether the predicate on the conditional operation is suitable
2531         for merging.  Split patterns into the canonical equal-predicate form.
2532         (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
2533         Restrict the unpredicated alternatives to SVE_RELAXED_GP.
2535 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2536             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2538         * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
2539         (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
2540         (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
2541         rtx codes.
2542         (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
2543         (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
2544         unspecs.
2546 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2547             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2549         * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
2550         (*bic<SVE_I:mode>3): ...this.  Match the form that an SVE inverse
2551         actually has, rather than relying on REG_EQUAL notes.
2552         Make the insn operand order match the SVE operand order.
2553         (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
2554         the SVE operand order.
2556 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2558         * config/aarch64/aarch64.c (aarch64_target_reg): New function.
2559         (aarch64_emit_set_immediate): Likewise.
2560         (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
2561         (aarch64_pfalse_reg): Likewise.
2562         (aarch64_convert_sve_data_to_pred): New function.
2563         (aarch64_sve_move_pred_via_while): Take an optional target register
2564         and the required register mode.
2565         (aarch64_expand_sve_const_pred_1): New function.
2566         (aarch64_expand_sve_const_pred): Likewise.
2567         (aarch64_expand_mov_immediate): Build an all-true predicate
2568         if the significant bits of the immediate are all true.  Use
2569         aarch64_expand_sve_const_pred for all compile-time predicate constants.
2570         (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
2571         before register allocation.
2572         * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
2573         a VNx16BI PTRUE when splitting the memory alternative.
2574         (vec_duplicate<mode>): Update accordingly.
2575         (*pred_cmp<cmp_op><mode>): Rename to...
2576         (@aarch64_pred_cmp<cmp_op><mode>): ...this.
2578 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
2580         * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
2581         * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
2582         * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
2583         (UNSPEC_PTEST): New unspec.
2584         (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
2585         * config/aarch64/iterators.md (data_bytes): New mode attribute.
2586         * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
2587         * config/aarch64/aarch64-sve.md: Add a new section describing the
2588         handling of UNSPEC_PTEST.
2589         (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
2590         (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
2591         (ptest_ptrue<mode>): Replace with...
2592         (aarch64_ptest<mode>): ...this new pattern.
2593         (cbranch<mode>4): Update after above changes.
2594         (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
2595         UNSPEC_PTEST_PTRUE.
2596         (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
2597         (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
2598         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
2600 2019-08-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
2602         PR lto/91287
2603         * builtins.c (builtin_with_linkage_p): New function.
2604         * builtins.h (builtin_with_linkage_p): New function.
2605         * symtab.c (write_symbol): Remove redundant assert.
2606         * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
2607         Remove FIXME and use builtin_with_linkage_p.
2609 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2611         PR middle-end/91421
2612         * tree-core.h (function_decl::function_code): Change type to
2613         unsigned int.
2614         * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
2615         (DECL_UNCHECKED_FUNCTION_CODE): ...this.
2616         (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
2617         (DECL_FUNCTION_CODE): New function.  Assert that the built-in class
2618         is BUILT_IN_NORMAL.
2619         (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
2620         (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
2621         (fndecl_built_in_p): Change the type of the "name" argument to
2622         unsigned int.
2623         * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
2624         after check for DECL_BUILT_IN_CLASS.
2625         * cgraphclones.c (build_function_decl_skip_args): Use
2626         set_decl_built_in_function.
2627         * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
2628         * ipa-split.c (split_function): Likewise.
2629         * langhooks.c (add_builtin_function_common): Likewise.
2630         * omp-simd-clone.c (simd_clone_create): Likewise.
2631         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
2632         * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
2633         (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
2634         DECL_FUNCTION_CODE.
2635         * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
2636         instead of DECL_FUNCTION_CODE.
2637         * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
2638         instead of DECL_FUNCTION_CODE.
2639         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
2640         * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
2641         printing DECL_BUILT_IN_MD.  Handle DECL_BUILT_IN_FRONTEND.
2642         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
2643         (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
2644         DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
2645         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
2646         * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
2647         (alpha_gimple_fold_builtin): Likewise.
2648         * config/arc/arc.c (arc_expand_builtin): Likewise.
2649         * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
2650         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
2651         * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
2652         * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
2653         * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
2654         * config/frv/frv.c (frv_expand_builtin): Likewise.
2655         * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
2656         (gcn_expand_builtin): Likewise.
2657         * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
2658         (fold_builtin_cpu): Likewise.
2659         * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
2660         * config/i386/i386.c (ix86_fold_builtin): Likewise.
2661         (ix86_gimple_fold_builtin): Likewise.
2662         * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
2663         (ia64_expand_builtin): Likewise.
2664         * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
2665         * config/mips/mips.c (mips_expand_builtin): Likewise.
2666         * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
2667         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
2668         * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
2669         * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
2670         * config/pa/pa.c (pa_expand_builtin): Likewise.
2671         * config/pru/pru.c (pru_expand_builtin): Likewise.
2672         * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
2673         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2674         Likewise.
2675         * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
2676         (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
2677         (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
2678         * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
2679         (rs6000_builtin_reciprocal): Likewise.
2680         * config/rx/rx.c (rx_expand_builtin): Likewise.
2681         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
2682         * config/s390/s390.c (s390_expand_builtin): Likewise.
2683         * config/sh/sh.c (sh_expand_builtin): Likewise.
2684         * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
2685         (sparc_fold_builtin): Likewise.
2686         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2687         * config/spu/spu.c (spu_expand_builtin): Likewise.
2688         * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
2689         * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
2690         * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
2691         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
2692         (xtensa_expand_builtin): Likewise.
2694 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2696         PR middle-end/91421
2697         * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
2698         before the DECL_FUNCTION_CODE.
2699         * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
2700         to check for a BUILT_IN_ALLOCA call.
2701         * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
2702         BUILT_IN_UNREACHABLE.  Don't check for a FUNCTION_TYPE.
2703         * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
2704         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2705         * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
2706         for BUILT_IN_NORMAL functions.
2707         * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
2708         test for BUILT_IN_TM_ABORT.
2709         * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
2710         to check for a BUILT_IN_STACK_RESTORE call.
2711         (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
2712         * tree-ssa-threadedge.c
2713         (record_temporary_equivalences_from_stmts_at_dest): Check for a
2714         BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
2715         * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
2716         test for a BUILT_IN_NORMAL call instead of a negative test for
2717         an internal function call.
2719 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2721         * tree.h (build_vector_a_then_b): Declare.
2722         * tree.c (build_vector_a_then_b): New function.
2723         * fold-const-call.c (fold_while_ult): Likewise.
2724         (fold_const_call): Use it to handle IFN_WHILE_ULT.
2725         * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
2726         (aarch64_svpattern): New enum.
2727         * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
2728         constants through aarch64_expand_mov_immediate.
2729         (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
2730         than general_operand as the predicate for operand 1.
2731         (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
2732         * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
2733         insn_type.
2734         (simd_immediate_info::simd_immediate_info): New overload that
2735         takes a scalar_int_mode and an svpattern.
2736         (simd_immediate_info::u): Add a "pattern" field.
2737         (svpattern_token): New function.
2738         (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
2739         (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
2740         (aarch64_sve_move_pred_via_while): New functions.
2741         (aarch64_expand_mov_immediate): Try using
2742         aarch64_sve_move_pred_via_while for predicates that contain N ones
2743         followed by M zeros but that do not correspond to a VLnnn pattern.
2744         (aarch64_sve_pred_valid_immediate): New function.
2745         (aarch64_simd_valid_immediate): Use it instead of dealing directly
2746         with PTRUE and PFALSE.
2747         (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
2748         forms.
2750 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
2752         * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
2753         flag.
2754         (darwin_override_options): Likewise.
2755         * config/darwin.h: Likewise.
2756         * config/darwin.opt: Likewise.
2757         * config/i386/i386.c (output_pic_addr_const): Likewise.
2758         * config/rs6000/darwin.h: Likewise.
2759         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
2760         * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
2761         ... this TARGET_MACHO_SYMBOL_STUBS.
2762         (FUNCTION_PROFILER):Likewise.
2763         * config/i386/i386.h: Likewise.
2765 2019-08-13  Uroš Bizjak  <ubizjak@gmail.com>
2767         * config/i386/i386-expand.c (ix86_expand_vector_extract)
2768         <case E_V2SImode>: Use vec_extr path for
2769         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
2770         <case E_V8QImode>: Ditto.
2771         * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
2772         Use SWI48 mode iterator.  Use %k to output operand 0.
2773         (*mmx_pextrw): New insn pattern.
2774         (*mmx_pextrb): Ditto.
2775         (*mmx_pextrb_zext): Ditto.
2777 2019-08-13  Jonathan Wakely  <jwakely@redhat.com>
2779         * target.def (libc_has_function, libc_has_fast_function): Improve
2780         documentation strings.
2781         * doc/tm.texi: Regenerate.
2783 2019-08-13  Caroline Tice  <cmtice@google.com>
2785         PR other/91396
2786         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
2787         vtv_end.o or vtv_end_preinit.o files if !static.
2789 2019-08-13  Olivier Hainque  <hainque@adacore.com>
2791         * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
2793 2019-08-13  Olivier Hainque  <hainque@adacore.com>
2795         * rtlanal.c (tablejump_casesi_pattern): New function, to
2796         determine if a tablejump insn is a casesi dispatcher. Extracted
2797         from patch_jump_insn.
2798         * rtl.h (tablejump_casesi_pattern): Declare.
2799         * cfgrtl.c (patch_jump_insn): Use it.
2800         * dwarf2cfi.c (create_trace_edges): Use it.
2802 2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
2804         PR target/81800
2805         * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
2806         operand is larger than a long int.
2808 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2810         * machmode.h (opt_mode::else_mode): New function.
2811         (opt_mode::else_blk): Use it.
2812         * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
2813         (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
2814         (aarch64_gen_stepped_int_parallel): Likewise.
2815         (aarch64_stepped_int_parallel_p): Likewise.
2816         (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
2817         argument.
2818         * config/aarch64/aarch64.c
2819         (aarch64_expand_sve_widened_duplicate): Delete.
2820         (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
2821         (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
2822         (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
2823         argument.  Use early returns in the !CONST_INT_P handling.
2824         Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
2825         than handling some inline.
2826         (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
2827         from...
2828         (aarch64_simd_container_mode): ...here.
2829         (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
2830         (aarch64_sve_ld1rq_operand_p): New functions.
2831         * config/aarch64/predicates.md (descending_int_parallel)
2832         (aarch64_sve_ld1rq_operand): New predicates.
2833         * config/aarch64/constraints.md (UtQ): New constraint.
2834         * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
2835         * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
2836         gen_vec_duplicate from call to aarch64_expand_mov_immediate.
2837         (@aarch64_sve_reinterpret<mode>): New expander.
2838         (*aarch64_sve_reinterpret<mode>): New pattern.
2839         (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
2840         (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
2841         (*sve_ld1rq<Vesize>): Replace with...
2842         (@aarch64_sve_ld1rq<mode>): ...this new pattern.
2844 2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
2846         * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
2847         16:12.
2849 2019-08-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2851         * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
2852         * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
2853         (msp430_check_path_for_devices): New.
2854         (parse_devices_csv_1): New.
2855         (parse_devices_csv): New.
2856         (msp430_extract_mcu_data): Try to find devices.csv and search for the
2857         MCU data in devices.csv before using the hard-coded data.
2858         Warn if devices.csv isn't found and the MCU wasn't found in the
2859         hard-coded data either.
2860         * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
2861         msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
2862         Search for devices.csv on -I and -L paths.
2863         (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
2864         msp430_set_driver_var.
2865         * config/msp430/msp430.opt: Add -mwarn-devices-csv and
2866         -mdevices-csv-loc=.
2867         * doc/invoke.texi (-mmcu): Document that -I and -L paths are
2868         searched for devices.csv.
2869         (mwarn-devices-csv): Document option.
2871 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2873         * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
2874         * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
2875         Use a single Dn alternative instead of separate Dz and Dm
2876         alternatives.  Use aarch64_output_sve_move_immediate.
2877         * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
2878         function.
2879         (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
2880         for predicates too.
2881         (aarch64_output_sve_mov_immediate): Handle predicate modes.
2882         (aarch64_output_ptrue): Delete.
2884 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2886         * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
2887         INDEX.
2888         (simd_immediate_info::value, simd_immediate_info::step)
2889         (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
2890         with...
2891         (simd_immediate_info::u): ...this new union.
2892         (simd_immediate_info::simd_immediate_info): Update accordingly.
2893         (aarch64_output_simd_mov_immediate): Likewise.
2894         (aarch64_output_sve_mov_immediate): Likewise.
2896 2019-08-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2898         * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
2899         extra_gcc_objs.
2900         * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
2901         (msp430_select_cpu): New spec function.
2902         (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
2903         MCU data.
2904         * config/msp430/msp430-devices.c: New file.
2905         * config/msp430/msp430-devices.h: New file.
2906         * config/msp430/msp430.c: Remove msp430_mcu_data.
2907         (msp430_option_override): Use msp430_extract_mcu_data to extract
2908         MCU data.
2909         (msp430_use_f5_series_hwmult): Likewise.
2910         (use_32bit_hwmult): Likewise.
2911         (msp430_no_hwmult): Likewise.
2912         * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
2913         assembler.
2914         (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
2915         and -mcpu option.
2916         (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
2917         * config/msp430/t-msp430: Add rule to build msp430-devices.o.
2918         Remove hard-coded MCU multilib data.
2920 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2922         * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
2923         based on the mode instead of testing properties of it.
2925 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2927         * doc/md.texi: Document the x and y constraints for AArch64.
2928         * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
2929         (FP_LO8_REGS): New reg_class.
2930         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
2931         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
2932         (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
2933         * config/aarch64/predicates.md (aarch64_simd_register): Use
2934         FP_REGNUM_P instead of checking the classes manually.
2935         * config/aarch64/constraints.md (y): New constraint.
2937 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2939         * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
2940         (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
2941         * config/aarch64/aarch64-simd.md
2942         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
2943         (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
2944         from the asm template.
2945         * config/aarch64/aarch64-sve.md
2946         (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
2947         (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
2948         from the asm template.
2949         (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
2950         (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
2951         from the asm template.
2952         * config/aarch64/aarch64-simd-builtins.def: Update comment.
2954 2019-08-13  Martin Liska  <mliska@suse.cz>
2956         * value-prof.c (gimple_ic_transform): Add new line.
2957         Print details with MSG_NOTE.
2959 2019-08-13  Martin Liska  <mliska@suse.cz>
2961         * doc/invoke.texi: Document automatic detection of jobserver.
2962         * lto-wrapper.c (run_gcc): Detect jobserver always.
2964 2019-08-13  Uroš Bizjak  <ubizjak@gmail.com>
2966         * config/i386/i386-expand.c (ix86_expand_vector_set)
2967         <case E_V2SImode>: Use vec_merge path for
2968         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
2969         <case E_V8QImode>: Ditto.
2970         * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
2971         (*mmx_pinsrb): Ditto.
2973 2019-08-12  Jakub Jelinek  <jakub@redhat.com>
2975         PR target/83250
2976         PR target/91340
2977         * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
2978         _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
2979         * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
2980         _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
2981         _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
2983 2019-08-12  Richard Biener  <rguenther@suse.de>
2985         PR lto/91375
2986         * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
2987         flag_devirtualize.
2989 2019-08-12  Richard Biener  <rguenther@suse.de>
2991         PR driver/91130
2992         * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
2993         lang_mask option, always use CL_DRIVER.
2994         (get_options_from_collect_gcc_options): Adjust.
2995         (find_and_merge_options): Likewise.
2996         (run_gcc): Likewise.
2998 2019-08-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3000         * ipa-predicate.c (add_condition): Restore inverted test.
3002 2019-08-10  Jakub Jelinek  <jakub@redhat.com>
3004         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
3005         (enum omp_clause_device_type_kind): New enum.
3006         (struct tree_omp_clause): Add subcode.device_type_kind.
3007         * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
3008         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
3009         for device_type clause.
3010         (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
3011         * tree-pretty-print.c (dump_omp_clause): Likewise.
3013         PR target/91408
3014         * config/i386/mmx.md (usadv8qi): Use register_operand instead of
3015         vector_operand.
3017 2019-08-09  Vladimir Makarov  <vmakarov@redhat.com>
3019         * reload1.c (finish_spills): Do not check ira_conflicts_p when
3020         handling spilled pseudos.
3022 2019-08-09  Richard Earnshaw  <rearnsha@arm.com>
3024         PR target/91386
3025         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
3026         to preserve the contents of the original insns.
3028 2019-08-09  Richard Earnshaw  <rearnsha@arm.com>
3030         * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
3031         (addsi3_compare_op2): Likewise.
3033 2019-08-09  Martin Liska  <mliska@suse.cz>
3035         * alias.c (alias_ptr_types_compatible_p): Strengten
3036         type comparison in LTO mode.
3038 2019-08-09  Richard Sandiford  <richard.sandiford@arm.com>
3040         PR middle-end/90313
3041         * tree-tailcall.c (find_tail_calls): Reject calls that might
3042         read from an escaped RESULT_DECL.
3044 2019-08-09  Martin Liska  <mliska@suse.cz>
3046         * doc/invoke.texi: Document the option value.
3047         * lto-wrapper.c (run_gcc): Set auto_parallel
3048         only with -flto=auto.
3050 2019-08-09  Martin Liska  <mliska@suse.cz>
3052         * opts.c (common_handle_option): Error for an invalid argument
3053         to -flto=.
3055 2019-08-09  Martin Liska  <mliska@suse.cz>
3057         * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
3058         use dump_printf to report optimization.
3059         (sem_variable::merge): Likwise.
3060         (sem_item_optimizer::merge_classes): Use dump_printf to report
3061         ICF hits.
3063 2019-08-09  Martin Liska  <mliska@suse.cz>
3065         * value-prof.c (gimple_divmod_fixed_value_transform):
3066         Use dump_printf_loc.
3067         (gimple_mod_pow2_value_transform): Likewise.
3068         (gimple_mod_subtract_transform): Likewise.
3069         (init_node_map): Likewise.
3070         (gimple_ic_transform): Likewise.
3071         (gimple_stringops_transform): Likewise.
3073 2019-08-08  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
3075         * doc/extend.texi: Add const qualifier to ld intrinsics.
3077 2019-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
3079         * config/rs6000/dfp.md (D64_D128): Rename to ...
3080         (DDTD): ... this, throughout.
3081         (dfp_suffix): Rename to ...
3082         (q): ... this, throughout.
3084 2019-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
3086         * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
3087         (dfp_suffix): Ditto.
3088         (adddd3, addtd3): Merge to ...
3089         (add<mode>3 for D64_D128): ... this.
3090         (subdd3, subtd3): Merge to ...
3091         (sub<mode>3 for D64_D128): ... this.
3092         (muldd3, multd3): Merge to ...
3093         (mul<mode>3 for D64_D128): ... this.
3094         (divdd3, divtd3): Merge to ...
3095         (div<mode>3 for D64_D128): ... this.
3096         (*cmpdd_internal1, *cmptd_internal1): Merge to ...
3097         (*cmp<mode>_internal1 for D64_D128): ... this.
3098         (ftruncdd2, ftrunctd2): Merge to ...
3099         (ftrunc<mode>2 for D64_D128): ... this.
3100         (fixdddi2, fixtddi2): Merge to ...
3101         (fix<mode>di2 for D64_D128): ... this.
3103 2019-08-08  Jim Wilson  <jimw@sifive.com>
3105         PR target/91229
3106         * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
3107         ignore_zero_width_bit_field_p.  Skip zero size bitfields when true.
3108         Pass into recursive call.
3109         (riscv_flatten_aggregate_argument): New arg.  Pass to
3110         riscv_flatten_aggregate_field.
3111         (riscv_pass_aggregate_in_fpr_pair_p): New local warned.  Call
3112         riscv_flatten_aggregate_argument twice, with false and true as last
3113         arg.  Process result twice.  Compare results and warn if different.
3114         (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
3116 2019-08-08  Martin Liska  <mliska@suse.cz>
3118         PR bootstrap/91352
3119         * gcc.c (driver::detect_jobserver): Use is_valid_fd.
3120         * lto-wrapper.c (jobserver_active_p): Likewise.
3122 2019-08-08  Martin Liska  <mliska@suse.cz>
3124         * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
3125         IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
3126         (create_version_clone_with_body): Likewise.
3128 2019-08-08  Jakub Jelinek  <jakub@redhat.com>
3130         * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
3131         for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
3132         (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
3133         GOVD_EXPLICIT flags.
3134         (gimplify_omp_workshare): For OMP_TARGET_DATA move all
3135         OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
3136         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
3137         call install_var_field with mask 11 instead of 3.
3138         (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
3139         (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
3141 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3143         * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
3144         * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
3146 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3148         * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
3149         MOVPRFX alternatives.  Make the GPR alternatives more expensive
3150         than the FPR ones.
3152 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3154         * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
3155         Disparage the GPR alternative relative to the FPR one.
3156         Fix handling of 8-bit and 16-bit FPR values.
3158 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3160         * config/aarch64/iterators.md (BITWISEV): Delete.
3161         (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
3162         (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
3163         UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
3164         UNSPEC_FMINNMV, UNSPEC_FMINV.
3165         (bit_reduc_op): Delete.
3166         (sve_int_op): New int attribute.
3167         (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
3168         UNSPEC_FMINNMV, UNSPEC_FMINV.
3169         * config/aarch64/aarch64-sve.md
3170         (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
3171         (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
3172         (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
3173         (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
3174         (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
3175         (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
3176         new patterns.
3177         (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
3178         (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
3179         (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
3180         (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
3181         (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
3182         new patterns.
3184 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3186         * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
3187         (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
3188         (fms<mode>4, *fms<mode>4): Replace with...
3189         (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
3190         (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
3191         Use unspecs instead of rtx codes.
3192         (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
3193         (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
3195 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3197         * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
3198         int iterator.
3199         (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
3200         * config/aarch64/aarch64-sve.md
3201         (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
3202         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
3203         use a single unspec for the rhs.
3204         (*<su><maxmin><mode>3): Delete.
3205         (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
3207 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3209         * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
3210         (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
3211         (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
3212         (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
3213         (optab, sve_fp_op): Handle them.
3214         (SVE_FP_UNARY): Delete.
3215         (optab): Remove sqrt entry.
3216         (sve_fp_op): Remove neg, abs and sqrt entries.
3217         (SVE_COND_FP_UNARY): New int iterator.
3218         * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
3219         (*<frint_pattern><mode>2): Delete.
3220         (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
3221         (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
3222         (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
3223         (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
3225 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3227         * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
3229 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3231         * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
3232         (UNSPEC_COND_FADD): ...this.
3233         (UNSPEC_COND_SUB): Rename to...
3234         (UNSPEC_COND_FSUB): ...this.
3235         (UNSPEC_COND_MUL): Rename to...
3236         (UNSPEC_COND_FMUL): ...this.
3237         (UNSPEC_COND_DIV): Rename to...
3238         (UNSPEC_COND_FDIV): ...this.
3239         (UNSPEC_COND_MAX): Rename to...
3240         (UNSPEC_COND_FMAXNM): ...this.
3241         (UNSPEC_COND_MIN): Rename to...
3242         (UNSPEC_COND_FMINNM): ...this.
3243         (UNSPEC_COND_LT): Rename to...
3244         (UNSPEC_COND_FCMLT): ...this.
3245         (UNSPEC_COND_LE): Rename to...
3246         (UNSPEC_COND_FCMLE): ...this.
3247         (UNSPEC_COND_EQ): Rename to...
3248         (UNSPEC_COND_FCMEQ): ...this.
3249         (UNSPEC_COND_NE): Rename to...
3250         (UNSPEC_COND_FCMNE): ...this.
3251         (UNSPEC_COND_GE): Rename to...
3252         (UNSPEC_COND_FCMGE): ...this.
3253         (UNSPEC_COND_GT): Rename to...
3254         (UNSPEC_COND_FCMGT): ...this.
3255         (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
3256         (sve_fp_op_rev): Update accordingly.
3257         * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
3259 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3261         * config/aarch64/aarch64-sve.md: Reorganize contents and add
3262         banner comments.
3263         * config/aarch64/check-sve-md.awk: New file.
3264         * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
3265         (insn-conditions.md): Depend on it.
3267 2019-08-07  Uroš Bizjak  <ubizjak@gmail.com>
3269         PR target/91385
3270         * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
3271         (*negsi2_cmpz_zext): Ditto.
3273 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3275         * config/aarch64/iterators.md (commutative): Remove.
3277 2019-08-07  Richard Earnshaw  <rearnsha@arm.com>
3279         PR driver/91130
3280         * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
3281         processing COLLECT_GCC_OPTIONS.
3282         (run_gcc): Likewise.
3284 2019-08-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3286         PR tree-optimization/91109
3287         * lra-remat.c (update_scratch_ops): Remove assignment of the
3288         hard register.
3290 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
3292         * data-streamer.h (streamer_write_poly_uint64): Declare.
3293         (streamer_read_poly_uint64): Likewise.
3294         * data-streamer-in.c (streamer_read_poly_uint64): New function.
3295         * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
3296         * ipa-predicate.h (condition::size): Turn into a poly_int64.
3297         (add_condition): Take a poly_int64 size.
3298         * ipa-predicate.c (add_condition): Likewise.
3299         * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
3300         * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
3301         (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
3302         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
3303         condition::size as a poly_int64.
3304         (unmodified_parm_1): Take a poly_int64 size pointer.
3305         (unmodified_parm): Likewise.
3306         (unmodified_parm_or_parm_agg_item): Likewise.
3307         (set_cond_stmt_execution_predicate): Update accordingly.
3308         (set_switch_stmt_execution_predicate): Likewise.
3309         (will_be_nonconstant_expr_predicate): Likewise.
3310         (will_be_nonconstant_predicate): Likewise.
3311         (inline_read_section): Stream condition::size as a poly_int.
3312         (ipa_fn_summary_write): Likewise.
3314 2019-08-07  Martin Liska  <mliska@suse.cz>
3316         * fold-const.c (twoval_comparison_p): Replace int
3317         with bool as a return type.
3318         (simple_operand_p): Likewise.
3319         (operand_equal_p): Replace int with bool as a return type.
3320         * fold-const.h (operand_equal_p): Likewise.
3322 2019-08-07  Jakub Jelinek  <jakub@redhat.com>
3324         * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
3325         OpenMP description.  Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
3326         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
3327         for OMP_CLAUSE_USE_DEVICE_ADDR clause.
3328         (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
3329         * tree-pretty-print.c (dump_omp_clause): Likewise.
3330         * tree-nested.c (convert_nonlocal_omp_clauses,
3331         convert_local_omp_clauses): Likewise.
3332         * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
3333         Likewise.
3334         * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
3335         Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
3336         clause with array or reference to array types, no matter what type
3337         except for reference it has.
3339 2019-08-07  Kewen Lin  <linkw@gcc.gnu.org>
3341         * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
3343 2019-08-07  Kito Cheng  <kito.cheng@sifive.com>
3345         * config/riscv/multilib-generator: (canonical_order): Add 'g'.
3346         (arch_canonicalize): Support rv32g and rv64g and fix error
3347         handling.
3349 2019-08-06  Martin Liska  <mliska@suse.cz>
3351         * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
3352         and DECL_IS_OPERATOR_DELETE_P.
3354 2019-08-06  Jakub Jelinek  <jakub@redhat.com>
3356         * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
3357         (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this.  Adjust comment.
3358         * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
3359         new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
3360         (gimplify_omp_for): Don't do C++ random access iterator clause
3361         adjustments on combined constructs from OMP_LOOP.  For OMP_LOOP,
3362         don't predetermine the artificial iterator in case of C++ random
3363         access iterators as lastprivate, but private.  For OMP_LOOP, force
3364         bind expr around simd body and force for_pre_body before the
3365         construct.  Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
3366         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
3367         (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
3368         diff var of C++ random access iterators.  Handle
3369         OMP_CLAUSE_FIRSTPRIVATE.  For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
3370         not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
3371         clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
3372         on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
3373         * omp-low.c (lower_rec_input_clauses): For
3374         OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
3375         variables instead of default constructing them.
3376         (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
3377         instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
3378         is_taskloop_ctx check from the assert to the guarding condition.
3380 2019-08-06  Kito Cheng  <kito.cheng@sifive.com>
3382         * config/riscv/multilib-generator: (canonical_order): New.
3383         (arch_canonicalize): Dito.
3384         Apply arch_canonicalize for alts.
3386 2019-08-05  Martin Sebor  <msebor@redhat.com>
3388         * doc/extend.texi (Common Variable Attributes): Document alias
3389         attribute.
3391 2019-08-05  Marek Polacek  <polacek@redhat.com>
3393         PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
3394         * doc/invoke.texi: Document -Wcomma-subscript.
3396 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
3398         * tree-core.h (tree_function_decl): Make function_code an
3399         independent field.  Group the remaining bitfields into bytes
3400         and move decl_type so that it contines to be at a byte boundary.
3401         Leave 12 bits for future expansion.
3403 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
3405         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
3406         (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
3407         (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
3408         IFN_MASK_STORE.
3410 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
3412         * gimple.h (gimple_move_vops): Declare.
3413         * gimple.c (gimple_move_vops): New function
3414         * gimple-fold.c (replace_call_with_call_and_fold)
3415         (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
3416         (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
3417         (gimple_fold_call): Use it.
3418         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
3419         * tree-call-cdce.c (use_internal_fn): Likewise.
3420         * tree-if-conv.c (predicate_load_or_store): Likewise.
3421         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
3422         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
3423         * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
3424         (update_call_from_tree): Likewise.
3425         * tree-vect-stmts.c (vectorizable_load): Likewise.
3426         * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
3428 2019-08-05  Martin Liska  <mliska@suse.cz>
3430         PR c++/91334
3431         * tree-ssa-dce.c (propagate_necessity): Handle new operators
3432         with not arguments.
3433         (eliminate_unnecessary_stmts): Likewise.
3435 2019-08-05  Richard Biener  <rguenther@suse.de>
3437         PR middle-end/91169
3438         * fold-const.c (get_array_ctor_element_at_index): Create
3439         offset_ints according to the sign of the index type and treat
3440         that as signed if it is obviously so.
3442 2019-08-05  Jakub Jelinek  <jakub@redhat.com>
3444         PR target/91341
3445         * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
3446         _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
3447         _mm256_storeu2_m128i): New function.
3449 2019-08-05  Kito Cheng  <kito.cheng@sifive.com>
3451         * config/riscv/riscv.c (riscv_promote_function_mode): New.
3452         (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
3454 2019-08-05  Alan Modra  <amodra@gmail.com>
3456         PR target/91349
3457         * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
3458         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
3460 2019-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
3462         * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
3463         bug that was fixed in Tcl 8.6.1.
3465 2019-08-02  Michael Meissner  <meissner@linux.ibm.com>
3467         * config/rs6000/future.md: New file.
3468         * config/rs6000/rs6000.md: Include future.md.
3469         * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
3471 2019-08-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3473         * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
3474         check to use targetm.slow_unaligned_access instead.
3476         * function.c (assign_param_data_one): Remove unused data members.
3478 2019-08-02  Steve Ellcey  <sellcey@marvell.com>
3480         * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
3481         build_distinct_type_copy.
3482         (simd_clone_adjust_argument_types): Ditto.
3483         (simd_clone_adjust): Call build_distinct_type_copy here.
3484         (expand_simd_clones): Ditto.
3486 2019-08-02  Uroš Bizjak  <ubizjak@gmail.com>
3488         PR target/91201
3489         * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
3491 2019-08-02  Alexander Monakov  <amonakov@ispras.ru>
3493         * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
3494         from 'const void *'.
3495         (sort_locs_in_loop_postorder_cmp): Likewise.
3497 2019-08-02  Eric Botcazou  <ebotcazou@adacore.com>
3499         * doc/invoke.texi (hot-bb-count-fraction): Rework description.
3500         (hot-bb-count-ws-permille): Likewise.
3501         (hot-bb-frequency-fraction): Likewise.
3502         (unlikely-bb-count-fraction): Likewise.
3503         * params.def (hot-bb-count-fraction): Rework description.
3504         (hot-bb-count-ws-permille): Likewise.
3505         (hot-bb-frequency-fraction): Likewise.
3506         (unlikely-bb-count-fraction): Likewise.  Remove min and max values.
3507         * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
3509 2019-08-02  Uroš Bizjak  <ubizjak@gmail.com>
3511         PR target/91323
3512         * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
3513         Return false.
3515 2019-08-02  Richard Biener  <rguenther@suse.de>
3517         * vec.h (vec::sort): Add gcc_qsort_r support.
3518         (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
3519         * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
3520         to gcc_qsort_r style callback.
3521         (sort_locs_in_loop_postorder_cmp): Likewise.
3522         (analyze_memory_references): Use gcc_sort_r interfaces.
3523         (find_ref_loc_in_loop_cmp): Use new bsearch overload.
3525 2019-08-02  Martin Liska  <mliska@suse.cz>
3527         PR lto/91313
3528         * gcc.c (driver::maybe_run_linker): Call detect_jobserver
3529         to detect working job server.
3530         (driver::detect_jobserver): Test whether jobserver
3531         is active from GCC driver. That will prevent situation where
3532         GCC is invoked from a LD plugin and the linker already uses
3533         file descriptors suggested by make.  That leads to a wrong
3534         detection.
3535         * gcc.h (driver): Add detect_jobserver.
3536         * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
3537         not scanning for --jobserver-auth prefix.
3539 2019-08-02  Jakub Jelinek  <jakub@redhat.com>
3541         PR tree-optimization/91201
3542         * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
3543         V16QImode extraction without sse4.1 try to use V4SImode lowpart
3544         extraction.
3546 2019-08-01  Martin Sebor  <msebor@redhat.com>
3548         PR c++/90947
3549         * tree.c (type_initializer_zero_p): Define.
3550         * tree.h (type_initializer_zero_p): New function.
3552 2019-08-01  Eric Botcazou  <ebotcazou@adacore.com>
3554         * cfgrtl.c (relink_block_chain): Add line returns in dump file.
3556 2019-08-01  Eric Botcazou  <ebotcazou@adacore.com>
3558         * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
3559         * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.  Remove useless test.
3560         * predict.c (maybe_hot_count_p): Likewise.
3561         (maybe_hot_bb_p): Tweak comment.
3562         (maybe_hot_edge_p): Likewise.
3563         (probably_never_executed): Likewise.  Minor tweak.
3564         (probably_never_executed_bb_p): Likewise.
3565         (unlikely_executed_edge_p): Likewise.
3566         (probably_never_executed_edge_p): Likewise.
3567         (optimize_function_for_size_p): Likewise.
3568         (optimize_function_for_speed_p): Likewise.
3569         (function_optimization_type): Likewise.
3570         (optimize_bb_for_size_p): Likewise.
3571         (optimize_bb_for_speed_p): Likewise.
3572         (bb_optimization_type): Likewise.
3573         (optimize_edge_for_size_p): Likewise.
3574         (optimize_edge_for_speed_p): Likewise.
3575         (optimize_insn_for_size_p): Likewise.
3576         (optimize_insn_for_speed_p): Likewise.
3577         (optimize_loop_for_size_p): Likewise.
3578         (optimize_loop_for_speed_p): Likewise.
3579         (optimize_loop_nest_for_speed_p): Likewise.
3580         (optimize_loop_nest_for_size_p): Likewise.
3581         (predictable_edge_p): Likewise.
3582         (handle_missing_profiles): Minor tweak.
3584 2019-08-01  Michael Meissner  <meissner@linux.ibm.com>
3586         * config/rs6000/predicates.md (pcrel_external_address): Update
3587         comment.
3589 2019-08-01  Uroš Bizjak  <ubizjak@gmail.com>
3591         PR target/85693
3592         * config/i386/mmx.md (usadv8qi): New expander.
3594 2019-08-01  Matthew Beliveau  <mbelivea@redhat.com>
3596         PR c++/90590
3597         * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
3598         with reserved names that are in a system header.
3600 2019-08-01  Uroš Bizjak  <ubizjak@gmail.com>
3602         * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
3603         (*vec_extractv2si_0_zext_sse4): New insn pattern.
3604         (*vec_extractv2si_0_zext): Ditto.
3605         (*vec_extractv2si_1): Add (rm,x) alternative.
3606         (*vec_extractv2si_1_zext): New insn pattern.
3607         (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
3608         insn constraint.
3610 2019-08-01  Richard Biener  <rguenther@suse.de>
3612         * domwalk.c (bb_postorder): Remove static variable.
3613         (cmp_bb_postorder): Adjust.
3614         (sort_bbs_postorder): Adjust and use gcc_sort_r.
3615         (dom_walker::walk): Adjust.
3617 2019-08-01  Alexander Monakov  <amonakov@ispras.ru>
3619         * sort.cc (sort_r_ctx): New struct.
3620         (reorder23): Make templated on context type.
3621         (reorder45): Ditto.
3622         (cmp1): Ditto.  Adjust signature.
3623         (netsort): Ditto.
3624         (mergesort): Ditto.
3625         [CHECKING_P] (cmp2to3): New static function.  Use it...
3626         (gcc_qsort) [CHECKING_P]: ...here.
3627         (gcc_sort_r): New function.
3628         * system.h (sort_r_cmp_fn): New function typedef.
3629         (qsort_chk): Adjust signature.
3630         (gcc_sort_r): Declare.
3631         * vec.c (qsort_chk_error): Adjust.
3632         (qsort_chk): Adjust.
3634 2019-08-01  Richard Biener  <rguenther@suse.de>
3636         * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
3637         (compute_antic): Localize it here.
3639 2019-07-31  Maxim Blinov  <maxim.blinov@embecosm.com>
3641         * common/config/riscv/riscv-common.c: Check -march string ends
3642         with null.
3644 2019-07-31  Alexander Monakov  <amonakov@ispras.ru>
3646         * ipa-devirt.c (type_warning_cmp): Make static.
3647         (decl_warning_cmp): Ditto.
3649 2019-07-31  Peter Bergner  <bergner@linux.ibm.com>
3651         PR target/91050
3652         * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
3653         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
3654         use of deleted rs6000_dejagnu_cpu_index variable.
3655         * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
3656         (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
3657         * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
3658         (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
3659         * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
3660         (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
3662 2019-07-31  Richard Biener  <rguenther@suse.de>
3664         PR tree-optimization/91280
3665         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3666         Decompose MEM_REF manually for offset handling.
3668 2019-07-31  Richard Biener  <rguenther@suse.de>
3670         PR tree-optimization/91293
3671         * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
3672         of reduction stmts.
3674 2019-07-31  Matt Thomas  <matt@3am-software.com>
3675             Nick Hudson  <nick@nthcliff.demon.co.uk>
3676             Matthew Green  <mrg@eterna.com.au>
3677             Maya Rashish  <coypu@sdf.org>
3679         * config.gcc (hppa*-*-netbsd*): New target.
3680         * config/pa/pa-netbsd.h: New file.
3681         * config/pa/pa32-netbsd.h: New file.
3683 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
3685         PR tree-optimization/91201
3686         * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
3688 2019-07-31  Andrew Stubbs  <ams@codesourcery.com>
3690         * config/gcn/gcn-valu.md
3691         (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
3692         (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
3693         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
3694         * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
3695         struct ilist. Add nops for delayeduse insns.
3696         * config/gcn/gcn.md (delayeduse): New attribute.
3697         (*movbi): Remove s_waitcnt from stores.
3698         (*mov<mode>_insn): Likewise.
3699         (*movti_insn): Likewise. Add delayeduse attribute.
3700         (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
3701         (atomic_store<mode>): Remove or adjust s_waitcnt.
3703 2019-07-31  Richard Biener  <rguenther@suse.de>
3705         * vr-values.h (vr_values::swap_vr_value): New.
3706         (vr_values::free_value_range): likewise.
3707         * vr-values.c (vr_values::swap_vr_value): Implement.
3708         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
3709         Do not return a range or take a var.
3710         (evrp_range_analyzer::stack): Change back to recording a non-const
3711         value_range *.
3712         * gimple-ssa-evrp-analyze.c
3713         (evrp_range_analyzer::record_ranges_from_stmt): Free unused
3714         value-range.
3715         (evrp_range_analyzer::pop_to_marker): Adjust.
3716         (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
3717         (evrp_range_analyzer::pop_value_range): Likewise.  Free the
3718         no longer needed value-range.
3720 2019-07-31  Martin Liska  <mliska@suse.cz>
3722         * tree-ssa-dce.c (propagate_necessity): Delete operator can
3723         have size and (or) alignment as 2nd and later arguments.
3724         Mark all of them as necessary.
3726 2019-07-31  Richard Biener  <rguenther@suse.de>
3728         PR tree-optimization/91178
3729         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
3730         Use tail-recursion.
3732 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
3734         PR tree-optimization/91201
3735         * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
3736         (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
3737         TARGET_AVX512F.
3738         (reduc_plus_scal_<mode>): Improve formatting by introducing
3739         a temporary.
3741 2019-07-31  Sudakshina Das  <sudi.das@arm.com>
3743         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
3744         AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
3745         AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
3746         (aarch64_init_tme_builtins): New.
3747         (aarch64_init_builtins): Call aarch64_init_tme_builtins.
3748         (aarch64_expand_builtin_tme): New.
3749         (aarch64_expand_builtin): Handle TME builtins.
3750         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
3751         __ARM_FEATURE_TME when enabled.
3752         * config/aarch64/aarch64-option-extensions.def: Add "tme".
3753         * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
3754         (TARGET_TME): New.
3755         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
3756         (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
3757         UNSPECV_TCANCEL.
3758         (tstart, ttest, tcommit, tcancel): New instructions.
3759         * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
3760         (__tcancel, __ttest): New.
3761         (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
3762         (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
3763         (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
3764         (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
3765         * config/arm/types.md: Add new tme type attr.
3766         * doc/invoke.texi: Document "tme".
3768 2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>
3770         * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
3771         warn_unused_result attribute.
3772         (cmse_check_address_range): Add warn_unused_result attribute.
3774 2019-07-31  Richard Biener  <rguenther@suse.de>
3776         PR tree-optimization/91257
3777         * tree-vrp.c (union_ranges): Unify equality and less tests
3778         by using compare_values.  Re-order cheap tests first.
3780 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
3782         PR middle-end/91301
3783         * gimplify.c (gimplify_omp_for): If for class iterator on
3784         distribute parallel for there is no data sharing clause
3785         on inner_for_stmt, look for private clause on combined
3786         parallel too and if found, move it to inner_for_stmt.
3788 2019-07-31  Richard Sandiford  <richard.sandiford@arm.com>
3790         * lra-int.h (lra_operand_data): Remove early_clobber field.
3791         (lra_insn_reg): Likewise.
3792         * lra.c (debug_operand_data): Update accordingly.
3793         (setup_operand_alternative): Likewise.
3794         (new_insn_reg): Likewise.  Remove early_clobber parameter.
3795         (collect_non_operand_hard_regs): Update call accordingly.
3796         Don't assign to lra_insn_reg::early_clobber.
3797         (add_regs_to_insn_regno_info): Remove early_clobber parameter
3798         and update calls to new_insn_reg.
3799         (lra_update_insn_regno_info): Update calls accordingly.
3800         * lra-constraints.c (update_and_check_small_class_inputs): Take the
3801         alternative number as a parameter and test whether the operand
3802         is earlyclobbered in that particular alternative.
3803         (process_alt_operands): Update call accordingly.  Use per-alternative
3804         checks for earyclobber here too.
3805         * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
3806         against zero for IRA_UNKNOWN_ALT.
3808 2019-07-30  Uroš Bizjak  <ubizjak@gmail.com>
3810         * config/alpha/alpha.c (alpha_option_override): Quote a C type.
3812 2019-07-30  Wilco Dijkstra  <wdijkstr@arm.com>
3814         * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
3815         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
3817 2019-07-30  Martin Liska  <mliska@suse.cz>
3819         PR ipa/89330
3820         * cgraph.c (cgraph_edge::make_direct): Use
3821         edge->indirect_unknown_callee as edge->resolve_speculation can
3822         deallocate edge which is this pointer.
3824 2019-07-30  Richard Biener  <rguenther@suse.de>
3826         PR tree-optimization/91257
3827         * bitmap.c (bitmap_ior_and_compl_into): Open-code.
3829 2019-07-30  Martin Liska  <mliska@suse.cz>
3831         * doc/invoke.texi: Document new behavior.
3832         * lto-wrapper.c (cpuset_popcount): New function
3833         is a copy of libgomp/config/linux/proc.c.
3834         (init_num_threads): Likewise.
3835         (run_gcc): Automatically detect core count for -flto.
3836         (jobserver_active_p): New function.
3838 2019-07-30  Richard Biener  <rguenther@suse.de>
3840         PR tree-optimization/91257
3841         * bitmap.h (bitmap_ior_into_and_free): Declare.
3842         * bitmap.c (bitmap_list_unlink_element): Add defaulted param
3843         whether to add the unliked element to the freelist.
3844         (bitmap_list_insert_element_after): Add defaulted param for
3845         an already allocated element.
3846         (bitmap_ior_into_and_free): New function.
3847         * tree-ssa-structalias.c (condense_visit): Reduce the
3848         ponts-to and edge bitmaps of the SCC members in a
3849         logarithmic fashion rather than all to one.
3851 2019-07-30  Richard Sandiford  <richard.sandiford@arm.com>
3853         * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
3854         parameter.  When nonnull, make sure that the addition or subtraction
3855         has the same condition.
3856         (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
3857         for CFN_COND_MUL too.
3859 2019-07-30  Richard Biener  <rguenther@suse.de>
3861         PR tree-optimization/91291
3862         * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
3863         constant values.
3865 2019-07-30  Jakub Jelinek  <jakub@redhat.com>
3867         PR middle-end/91216
3868         * omp-low.c (global_nonaddressable_vars): New variable.
3869         (use_pointer_for_field): For global decls, if they are non-addressable,
3870         remember it in the global_nonaddressable_vars bitmap, if they are
3871         addressable and in the global_nonaddressable_vars bitmap, ignore their
3872         TREE_ADDRESSABLE bit.
3873         (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
3874         vars in global_nonaddressable_vars bitmap.
3875         (execute_lower_omp): Free global_nonaddressable_vars bitmap.
3877         PR target/91150
3878         * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
3879         from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
3880         comparison to unsigned HOST_WIDE_INT before shifting it left.
3882 2019-07-30  Uroš Bizjak  <ubizjak@gmail.com>
3884         * config/i386/i386.md (movstrict<mode>): Use register_operand
3885         predicate for operand 0.  Add expander condition.  Assert that
3886         operand 0 is a SUBREG RTX.
3887         (*movstrict<mode>_1): Use register_operand predicate for operand 0.
3888         Update operand constraints and insn condition.
3889         (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
3890         (zero_extendqihi2_and): Do not call gen_movstrictqi.
3891         (*setcc_qi_slp): Use register_operand predicate for operand 0.
3892         Update operand 0 constraints.
3893         (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
3895 2019-07-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3897         * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
3898         when -m{code,data}-region are used without -mlarge.
3899         * config/msp430/msp430.c (msp430_option_override): Error when a
3900         non-default code or data region is used without -mlarge.
3901         (msp430_section_attr): Emit a warning and do not add upper/lower/either
3902         attributes when they are used without -mlarge.
3904 2019-07-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3906         PR target/70320
3907         * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
3909 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
3911         PR middle-end/91242
3912         * wide-int.h (generic_wide_int::sext_elt): New function.
3913         * inchash.h (hash::add_wide_int): Use it instead of elt.
3915 2019-07-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3917         * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
3918         CODE_FOR_arm_##.
3919         * config/arm/arm.md (<crc_variant>): Rename to...
3920         (arm_<crc_variant>): ... This.
3921         (<cdp>): Rename to...
3922         (arm_<cdp>): ... This.
3923         (<ldc>): Rename to...
3924         (arm_<ldc>): ... This.
3925         (<stc>): Rename to...
3926         (arm_<stc>): ... This.
3927         (<mcr>): Rename to...
3928         (arm_<mcr>): ... This.
3929         (<mrc>): Rename to...
3930         (arm_<mrc>): ... This.
3931         (<mcrr>): Rename to...
3932         (arm_<mcrr>): ... This.
3933         (<mrrc>): Rename to...
3934         (arm_<mrrc>): ... This.
3936 2019-07-29  Richard Biener  <rguenther@suse.de>
3938         PR tree-optimization/91257
3939         * tree-ssa-sccvn.h (struct vn_avail): New.
3940         (struct vn_ssa_aux): Add avail member.
3941         * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
3942         member, add m_avail_freelist one.
3943         (rpo_elim::~rpo_elim): Remove.
3944         (rpo_elim::eliminate_avail): Adjust to new avail tracking
3945         data structure.
3946         (rpo_elim::eliminate_push_avail): Likewise.
3947         (do_unwind): Likewise.
3948         (do_rpo_vn): Likewise.
3950 2019-07-29  Richard Biener  <rguenther@suse.de>
3952         PR tree-optimization/91257
3953         * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
3954         most cases, instead call compare_values which handles the
3955         symbolic ranges we handle specially.
3956         (compare_values_warnv): Do not call operand_less_p but open-code
3957         the effective fold calls.  Avoid converting so much.
3959 2019-07-29  Martin Liska  <mliska@suse.cz>
3961         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
3962         remove LHS of operator new call.  It's handled latter.
3964 2019-07-29  Richard Biener  <rguenther@suse.de>
3966         PR tree-optimization/91267
3967         * vr-values.c (vr_values::update_value_range): Add early return
3968         for effectively VARYING lattice entry.
3970 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
3972         PR debug/86638
3973         * tree-ssa-dce.c (keep_all_vdefs_p): New function.
3974         (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
3975         necessary if keep_all_vdefs_p is true.
3976         (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
3977         that keep_all_vdefs_p is false.
3978         (mark_all_reaching_defs_necessary): Likewise.
3979         (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
3981 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
3983         * common.opt (Og): Change the initial value of flag_dse to 0.
3984         * opts.c (default_options_table): Move OPT_ftree_dse from
3985         OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG.  Also add
3986         OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG.  Put the OPT_ftree_pta
3987         entry before the OPT_ftree_sra entry.
3988         * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
3989         of flags disabled by Og.
3991 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
3993         * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
3994         variables for -Og.
3996 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
3998         * doc/sourcebuild.texi (check-function-bodies): Document.
4000 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
4002         * simplify-rtx.c (simplify_const_unary_operation): Fold a
4003         VEC_DUPLICATE of a fixed-length vector even if the result
4004         is variable-length.  Likewise fold a duplicate of a
4005         variable-length vector if the variable-length vector is
4006         itself a duplicate of a fixed-length sequence.
4007         (test_vector_ops_duplicate): Test more cases.
4009 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
4011         * vector-builder.h (vector_builder): Add a shape template parameter.
4012         (vector_builder::new_unary_operation): New function, generalizing
4013         the old tree_vector_builder function.
4014         (vector_builder::new_binary_operation): Likewise.
4015         (vector_builder::binary_encoded_nelts): Likewise.
4016         * int-vector-builder.h (int_vector_builder): Update template
4017         parameters to vector_builder.
4018         (int_vector_builder::shape_nelts): New function.
4019         * rtx-vector-builder.h (rtx_vector_builder): Update template
4020         parameters to vector_builder.
4021         (rtx_vector_builder::shape_nelts): New function.
4022         (rtx_vector_builder::nelts_of): Likewise.
4023         (rtx_vector_builder::npatterns_of): Likewise.
4024         (rtx_vector_builder::nelts_per_pattern_of): Likewise.
4025         * tree-vector-builder.h (tree_vector_builder): Update template
4026         parameters to vector_builder.
4027         (tree_vector_builder::shape_nelts): New function.
4028         (tree_vector_builder::nelts_of): Likewise.
4029         (tree_vector_builder::npatterns_of): Likewise.
4030         (tree_vector_builder::nelts_per_pattern_of): Likewise.
4031         * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
4032         (tree_vector_builder::new_binary_operation): Delete.
4033         (tree_vector_builder::binary_encoded_nelts): Likewise.
4034         * simplify-rtx.c: Include rtx-vector-builder.h.
4035         (distributes_over_addition_p): New function.
4036         (simplify_const_unary_operation)
4037         (simplify_const_binary_operation): Generalize handling of vector
4038         constants to include variable-length vectors.
4039         (test_vector_ops_series): Add more tests.
4041 2019-07-28  Jan Hubicka  <hubicka@ucw.cz>
4043         PR lto/91222
4044         * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
4045         than INDENTIFIER_POINTER.
4047 2019-07-28  Martin Liska  <mliska@suse.cz>
4049         PR ipa/89330
4050         * cgraph.c (symbol_table::create_edge): Always allocate
4051         a cgraph_edge.
4052         (symbol_table::free_edge): Store summary_id to
4053         edge_released_summary_ids if != -1;
4054         * cgraph.h (NEXT_FREE_NODE): Remove.
4055         (SET_NEXT_FREE_NODE): Likewise.
4056         (NEXT_FREE_EDGE): Likewise.
4057         (symbol_table::release_symbol): Store summary_id to
4058         cgraph_released_summary_ids if != -1;
4059         (symbol_table::allocate_cgraph_symbol): Always allocate
4060         a cgraph_node.
4062 2019-07-28  Alan Modra  <amodra@gmail.com>
4064         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
4065         gen_sibcall.
4067 2019-07-28  Alan Modra  <amodra@gmail.com>
4069         PR target/91135
4070         * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
4071         define.
4072         * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
4073         GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
4074         (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
4076 2019-07-28  Alan Modra  <amodra@gmail.com>
4078         PR target/91050
4079         * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
4080         * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
4081         * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
4082         * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
4083         * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
4084         * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
4085         in asm_default spec.
4086         * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
4087         * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
4089 2019-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
4091         * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
4093 2019-07-26  Tamar Christina  <tamar.christina@arm.com>
4095         PR target/89517
4096         * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
4097         * config/aarch64/aarch64-option-extensions.def: Add new comments
4098         and restore easier to read options.
4100 2019-07-26  Tamar Christina  <tamar.christina@arm.com>
4102         * convert.c (convert_to_real_1): Move part of conversion code...
4103         * match.pd: ...To here.
4105 2019-07-26  Martin Jambor  <mjambor@suse.cz>
4107         PR ipa/89330
4108         * ipa-inline-transform.c (check_speculations_1): New function.
4109         (push_all_edges_in_set_to_vec): Likewise.
4110         (check_speculations): Use check_speculations_1, new parameter
4111         new_edges.
4112         (inline_call): Pass new_edges to check_speculations.
4113         * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
4114         NULL.
4115         (speculation_useful_p): Early return true if edge is inlined, remove
4116         later checks for inline_failed.
4118 2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>
4120         PR rtl-optimization/91223
4121         * lra-constraints.c (process_alt_operands): Fail for unsuccessful
4122         matching with INOUT operand.
4124 2019-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4126         * stmt.c (expand_case): Try to narrow the index type if it's larger
4127         than a word.  Tidy up.
4129 2019-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4131         * cif-code.def (NEVER_CALL): New code.
4132         * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
4133         Set the failure to CIF_NEVER_CALL if the IPA count is zero.
4135 2019-07-25  Wilco Dijkstra  <wdijkstr@arm.com>
4137         * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
4138         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4140 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
4142         * ipa-devirt.c (add_type_duplicate): Fix return value.
4144 2019-07-25  Richard Biener  <rguenther@suse.de>
4146         * tree-vrp.c (extract_range_from_multiplicative_op): Add
4147         type parameter and use it instead of guessing expression
4148         type from the first operand.
4149         (extract_range_from_binary_expr): Pass expr_type down.
4151 2019-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4153         * config/arm/arm.md (SATrev): Change to code attribute.
4154         (*satsi_<SAT:code>): Adjust for the above.
4155         (*satsi_<SAT:code>_shift): Likewise.
4157 2019-07-25  Richard Biener  <rguenther@suse.de>
4159         * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
4160         Make value_range * temporary const.
4161         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
4162         Likewise.
4163         (evrp_range_analyzer::record_ranges_from_): Likewise.
4164         (evrp_range_analyzer::pop_value_range): Return a const value_range *,
4165         deal with having recorded a const one.
4166         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
4167         Return a const value_range *.
4168         (evrp_range_analyzer::pop_value_range): Likewise.
4169         (evrp_range_analyzer::stack): Record const value_range *s.
4170         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
4171         Adjust.
4172         * gimple-ssa-sprintf.c (get_int_range): Likewise.
4173         (format_integer): Likewise.
4174         (sprintf_dom_walker::handle_gimple_call): Likewise.
4175         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
4176         * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
4177         (vrp_prop::get_value_range): Adjust.
4178         (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
4179         modifying the lattice in-place.
4180         (vrp_prop::visit_stmt): Likewise.
4181         * vr-values.c (vr_values::get_lattice_entry): New private method.
4182         (vr_values::get_value_range): Wrap it and return a const
4183         value_range *.
4184         (vr_values::set_def_to_varying): New.
4185         (vr_values::set_defs_to_varying): Use it.
4186         (vr_values::update_value_range): Likewise.
4187         (vr_values::vrp_stmt_computes_nonzero): Adjust.
4188         (values::op_with_constant_singleton_va): Likewise.
4189         (vr_values::extract_range_for_var_from_co): Likewise.
4190         (vr_values::extract_range_from_ssa_name): Likewise.
4191         (vr_values::extract_range_from_cond_expr): Likewise.
4192         (vr_values::extract_range_basic): Likewise.
4193         (compare_ranges): Take const value_range *, adjust.
4194         (compare_range_with_value): Likewise.
4195         (vrp_valueize): Adjust.
4196         (vrp_valueize_1): Likewise.
4197         (vr_values::get_vr_for_comparison): Return a const value_range *.
4198         (vr_values::compare_name_with_value): Adjust.
4199         (vr_values::compare_names): Likewise.
4200         (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
4201         Likewise.
4202         (vr_values::vrp_evaluate_conditional): Likewise.
4203         (find_case_label_ranges): Take a const value_range *.
4204         (vr_values::vrp_visit_switch_stmt): Adjust.
4205         (vr_values::extract_range_from_phi_node): Likewise.
4206         (vr_values::simplify_div_or_mod_using_ran): Likewise.
4207         (vr_values::simplify_abs_using_ranges): Likewise.
4208         (test_for_singularity): Take a const value_range *.
4209         (range_fits_type_p): Likewise.
4210         (vr_values::simplify_cond_using_ranges_1): Adjust.
4211         (vr_values::simplify_cond_using_ranges_2): Likewise.
4212         (vr_values::simplify_switch_using_ranges): Likewise.
4213         (vr_values::simplify_float_conversion_usi): Likewise.
4214         (vr_values::two_valued_val_range_p): Likewise.
4215         * vr-values.h (vr_values::get_value_range): Return a const
4216         value_range *.
4217         (vr_values::set_def_to_varying): New.
4218         (vr_values::get_lattice_entry): New private method.
4219         (vr_values::get_vr_for_comparison): Return a const value_range *.
4221 2019-07-25  Martin Liska  <mliska@suse.cz>
4222             Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
4224         PR c++/23383
4225         * common.opt: Add -fallocation-dce
4226         * gimple.c (gimple_call_operator_delete_p): New.
4227         * gimple.h (gimple_call_operator_delete_p): Likewise.
4228         * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
4229         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
4230         DECL_IS_OPERATOR_DELETE_P.
4231         (mark_all_reaching_defs_necessary_1): Likewise.
4232         (propagate_necessity): Likewise.
4233         (eliminate_unnecessary_stmts): Handle
4234         gimple_call_operator_delete_p.
4235         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
4236         Add packing of OPERATOR_DELETE.
4237         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
4238         Similarly here.
4239         * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
4240         (DECL_SET_IS_OPERATOR_DELETE): New.
4241         (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
4243 2019-07-25  Martin Liska  <mliska@suse.cz>
4245         * calls.c (maybe_warn_alloc_args_overflow): Use new macros
4246         (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
4247         * coverage.c (coverage_begin_function): Likewise.
4248         * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
4249         * gimple.c (gimple_call_nonnull_result_p): Likewise.
4250         * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
4251         (sem_item::hash_referenced_symbol_properties): Likewise.
4252         * lto-streamer-out.c (hash_tree): Likewise.
4253         * predict.c (expr_expected_value_1): Likewise.
4254         * tree-inline.c (expand_call_inline): Likewise.
4255         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
4256         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
4257         * tree-core.h (enum function_decl_type): New enum.
4258         (struct tree_function_decl): Remove operator_new_flag and lambda_function.
4259         * tree.h (FUNCTION_DECL_DECL_TYPE): New.
4260         (set_function_decl_type): Likewise.
4261         (DECL_IS_OPERATOR_NEW_P): New.
4262         (DECL_SET_IS_OPERATOR_NEW): Likewise.
4263         (DECL_LAMBDA_FUNCTION): Likewise.
4264         (DECL_LAMBDA_FUNCTION_P): Likewise.
4265         (DECL_IS_OPERATOR_NEW): Remove.
4266         (DECL_SET_LAMBDA_FUNCTION): Likewise.
4268 2019-07-25  Xiong Hu Luo  <luoxhu@linux.ibm.com>
4270         * ipa-profile.c (get_most_common_single_value): Use
4271         get_nth_most_common_value.
4272         * profile.c (sort_hist_value): New function.
4273         (compute_value_histograms): Call sort_hist_value to sort the
4274         values after loading from disk.
4275         * value-prof.c (get_most_common_single_value): Rename to ...
4276         get_nth_most_common_value.  Add input params n, return
4277         the n_th value and count.
4278         (gimple_divmod_fixed_value_transform): Use
4279         get_nth_most_common_value.
4280         (gimple_ic_transform): Likewise.
4281         (gimple_stringops_transform): Likewise.
4282         * value-prof.h (get_most_common_single_value): Add input params
4283         n, default to 0.
4285 2019-07-25  Richard Biener  <rguenther@suse.de>
4287         PR tree-optimization/91236
4288         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
4289         size of CONSTRUCTOR write.  Fix buffer size we pass to
4290         native_encode_expr.
4292 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4294         * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
4295         * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
4296         r273773.
4298 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4300         * config.gcc (msp430*-*-*): Enable initfini_array by default unless
4301         explicitly disabled with --disable-initfini-array.
4303 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4305         * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
4306         if-exists.
4308 2019-07-24  Martin Sebor  <msebor@redhat.com>
4310         PR tree-optimization/91183
4311         PR tree-optimization/86688
4312         * builtins.c (compute_objsize): Handle MEM_REF.
4313         * tree-ssa-strlen.c (class ssa_name_limit_t): New.
4314         (get_min_string_length): Remove.
4315         (count_nonzero_bytes): New function.
4316         (handle_char_store): Rename...
4317         (handle_store): to this.  Handle multibyte stores via integer types.
4318         (strlen_check_and_optimize_stmt): Adjust conditional and the called
4319         function name.
4321 2019-07-24  Martin Sebor  <msebor@redhat.com>
4323         PR driver/80545
4324         * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
4325         (diagnostic_report_diagnostic): Same.
4326         * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
4327         (diagnostic_context::lang_mask): New data member.
4328         * ipa-pure-const.c (suggest_attribute): Use
4329         lang_hooks.option_lang_mask ().
4330         * opts-common.c (option_enabled): Handle new argument.
4331         (get_option_state): Pass an additional argument.
4332         * opts.c (print_filtered_help): Print supported languages for
4333         unsupported options.  Adjust printing of current state.
4334         * opts.h (option_enabled): Add argument.
4335         * toplev.c (print_switch_values): Use lang_mask.
4336         (general_init): Set global_dc->lang_mask.
4338 2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
4340         PR bootstrap/87030
4341         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
4343 2019-07-24  Giuliano Belinassi  <giuliano.belinassi@usp.br>
4345         * cgraphunit.c (symbol_table::compile): Start and stop
4346         TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
4347         * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
4349 2019-07-24  Oliver Browne  <oliverbrowne62@gmail.com>
4351         * gimplify.c (flag_instrument_functions_exclude_p): Include
4352         namespace/class information in the printable name.
4353         * opts.c (add_comma_separated_to_vector): Add NUL terminator
4354         to tokens entered into the vector.
4356 2019-07-24  Eric Botcazou  <ebotcazou@adacore.com>
4358         * tree-nested.c (build_simple_mem_ref_notrap): New function.
4359         (get_static_chain): Call it instead of build_simple_mem_ref.
4360         (get_frame_field): Likewise.
4361         (get_nonlocal_debug_decl): Likewise.
4362         (convert_nonlocal_reference_op): Likewise.
4364 2019-07-24  Claudiu Zissulescu  <claziss@synopsys.com>
4366         * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
4367         declaration.
4368         (arc_compute_frame_size): Millicode is disabled when compiling
4369         ISR.
4370         (arc_return_address_register): Likewise.
4371         (arc_compute_function_type): Likewise.
4372         (arc_compute_frame_size): Likewise.
4373         (secondary_reload_info): Likewise.
4374         (arc_get_unalign): Likewise.
4375         (arc_can_use_return_insn): Declare.
4376         * config/arc/arc.c (AUX_LP_START): Define
4377         (AUX_LP_END): Likewise.
4378         (arc_frame_info): Update gmask member to 64-bit datum.
4379         (GMASK_LEN): Update.
4380         (arc_compute_function_type): Make it static, move it forward.
4381         (arc_must_save_register): Update, consider the extra regs.
4382         (arc_compute_millicode_save_restore_regs): Update to use the 64
4383         bit gmask.
4384         (arc_compute_frame_size): Likewise.
4385         (arc_enter_leave_p): Likewise.
4386         (arc_save_callee_saves): Likewise.
4387         (arc_restore_callee_saves): Likewise.
4388         (arc_save_callee_enter): Likewise.
4389         (arc_restore_callee_leave): Likewise.
4390         (arc_save_callee_milli): Likewise.
4391         (arc_restore_callee_milli): Likewise.
4392         (arc_expand_prologue): Add new interrupt handling.
4393         (arc_return_address_register): Make it static, move it forward.
4394         (arc_expand_epilogue): Add new interrupt handling.
4395         (arc_get_unalign): Delete.
4396         (arc_epilogue_uses): Make sure we do not remove the extra
4397         saved/restored registers when interrupt.
4398         (arc_can_use_return_insn): New function.
4399         (push_reg): Likewise.
4400         (pop_reg): Likewise.
4401         (arc_save_callee_saves): Add ZOL and FPX aux registers saving
4402         procedures.
4403         (arc_restore_callee_saves): Likewise, but restoring.
4404         * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
4405         (R33_REG): Likewise.
4406         (R34_REG): Likewise.
4407         (R35_REG): Likewise.
4408         (R36_REG): Likewise.
4409         (R37_REG): Likewise.
4410         (R38_REG): Likewise.
4411         (R39_REG): Likewise.
4412         (R45_REG): Likewise.
4413         (R46_REG): Likewise.
4414         (R47_REG): Likewise.
4415         (R48_REG): Likewise.
4416         (R49_REG): Likewise.
4417         (R50_REG): Likewise.
4418         (R51_REG): Likewise.
4419         (R52_REG): Likewise.
4420         (R53_REG): Likewise.
4421         (R54_REG): Likewise.
4422         (R55_REG): Likewise.
4423         (R56_REG): Likewise.
4424         (R58_REG): Likewise.
4425         (type): Add rtie attribute.
4426         (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
4427         (movsi_insn): Accept moves to lp_count.
4428         (rtie): Update pattern.
4429         (simple_return): Simplify it, don't use this pattern as a return
4430         from an interrupt.
4431         (arc600_rtie): New pattern.
4432         (p_return_i): Clean up.
4433         (return): Likewise.
4434         * config/arc/builtins.def (rtie): Only available for non ARC6xx
4435         family CPUs.
4436         * config/arc/predicates.md (move_src_operand): Consider lp_count
4437         as a register.
4439 2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>
4441         * config/s390/predicates.md (addv_const_operand): New predicate.
4442         * config/s390/s390-modes.def (CCO): New condition code mode.
4443         * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
4444         (s390_branch_condition_mask): Likewise.
4445         * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
4446         ("mulv<mode>4"): New expanders.
4447         ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
4448         ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
4449         pattern definitions.
4451 2019-07-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4453         PR middle-end/91166
4454         * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
4455         (define_predicates): Add entry for uniform_vector_p.
4456         (vec_same_elem_p): New match pattern.
4458 2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
4460         PR bootstrap/87030
4461         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
4462         * config/i386/darwin32-biarch.h .. to here.
4463         * config/i386/darwin64-biarch.h: Adjust comments.
4464         * config/rs6000/darwin32-biarch.h: Likewise.
4465         * config/rs6000/darwin64-biarch.h: Likewise.
4466         * config.gcc: Missed commit from r273746
4467         (*-*-darwin*): Don't include CPU t-darwin here.
4468         (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
4469         an error message if i686-darwin configuration is attempted for
4470         Darwin >= 18.
4472 2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>
4474         PR bootstrap/87030
4475         * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
4476         (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
4477         an error message if i686-darwin configuration is attempted for
4478         Darwin >= 18.
4479         (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
4480         (powerpc-*-darwin*): Use biarch files where needed.
4481         (powerpc64-*-darwin*): Likewise.
4482         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
4483         (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
4484         arch case.
4485         * config/i386/darwin32-biarch.h: New.
4486         * config/i386/darwin64.h: Rename.
4487         * config/i386/darwin64-biarch.h: To this.
4488         * config/i386/t-darwin: Rename.
4489         * config/i386/t-darwin32-biarch: To this.
4490         * config/i386/t-darwin64: Rename.
4491         * config/i386/t-darwin64-biarch: To this.
4492         * config/rs6000/darwin32-biarch.h: New.
4493         * config/rs6000/darwin64.h: Rename.
4494         * config/rs6000/darwin64-biarch.h: To this.
4495         (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
4496         arch case.
4497         * config/rs6000/t-darwin8: Rename.
4498         * config/rs6000/t-darwin32-biarch: To this.
4499         * config/rs6000/t-darwin64 Rename.
4500         * config/rs6000/t-darwin64-biarch: To this.
4502 2019-07-23  Martin Sebor  <msebor@redhat.com>
4504         * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
4506 2019-07-23  Vladislav Ivanishin  <vlad@ispras.ru>
4508         * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
4509         (rh): New alias for it.
4511 2019-07-23  Vladislav Ivanishin  <vlad@ispras.ru>
4513         * gdbhooks.py: Pass replace=True to
4514         gdb.printing.register_pretty_printer.
4516 2019-07-23  Richard Biener  <rguenther@suse.de>
4518         PR debug/91231
4519         * lto-streamer-in.c (input_function): Drop inline-entry markers
4520         that ended up with an unknown location block.
4522 2019-07-23  Richard Biener  <rguenther@suse.de>
4524         PR tree-optimization/83518
4525         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
4526         init from a constant even when partial defs are already recorded.
4528 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
4530         * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
4531         * config/i386/znver1.md: Enable patterns for znver2 and add store
4532         variants which use extra AGU unit.
4534 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
4536         * config/i386/i386-options.c (ix86_option_override_internal): Default
4537         PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
4538         * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
4539         for ZNVER2.
4541 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
4543         * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
4544         (znver2_costs): Update 256 bit SSE costs and multiplication.
4546 2019-07-23  Jan Beulich  <jbeulich@suse.com>
4548         * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
4549         Require only AVX512F.
4550         (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise.  Add
4551         alternative expanding to vpternlog.
4553 2019-07-23  Martin Liska  <mliska@suse.cz>
4555         * dwarf2out.c (gen_producer_string): Canonize -flto=N
4556         to -flto in dwarf producer string.
4558 2019-07-23  Richard Biener  <rguenther@suse.de>
4560         * tree-cfg.c (label_for_bb): Remove global var.
4561         (main_block_label): Take label_for_bb as argument.
4562         (cleanup_dead_labels_eh): Likewise, adjust.
4563         (cleanup_dead_labels): Adjust.
4565 2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
4567         * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
4568         Configurations): Add documentation for __builtin_mtfsf.
4570 2019-07-22  Ilia Diachkov  <ilia.diachkov@optimitech.com>
4572         * config/riscv/riscv-opts.h (struct riscv_align_data): New.
4573         * config/riscv/riscv.c (riscv_constant_alignment): Use
4574         riscv_align_data_type.
4575         * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
4576         (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
4577         (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
4578         * config/riscv/riscv.opt (malign-data): New.
4579         * doc/invoke.texi (RISC-V Options): Document -malign-data=.
4581 2019-07-02  Giuliano Belinassi  <giuliano.belinassi@usp.br>
4583         * cgraph.c (dump_graphviz): New function.
4584         * cgraph.h (dump_graphviz): New function.
4585         * symtab.c (dump_graphviz): New function.
4587 2019-07-22  Sylvia Taylor  <sylvia.taylor@arm.com>
4589         * config/aarch64/aarch64-simd.md
4590         (*aarch64_simd_sra<mode>): New.
4591         * config/aarch64/iterators.md
4592         (SHIFTRT): New iterator.
4593         (sra_op): New attribute.
4595 2019-07-22  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4597         * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
4598         callee-saved regs R4->R10 in an interrupt function that calls another
4599         function.
4601 2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
4603         * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
4604         (_mm_blendv_epi8): New.
4606 2019-07-22  Richard Biener  <rguenther@suse.de>
4608         PR tree-optimization/91221
4609         * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
4610         restrict partial-def handling of empty constructors and
4611         memset to refs with known offset.
4613 2019-07-22  Jan Beulich  <jbeulich@suse.com>
4615         * config/i386/sse.md (ternlogsuffix): New.
4616         (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
4617         AVX512F is in use.
4618         (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
4620 2019-07-22  Martin Liska  <mliska@suse.cz>
4622         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
4623         comment.
4624         * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
4626 2019-07-22  Martin Liska  <mliska@suse.cz>
4628         * lto-section-in.c (lto_get_section_data):
4629         Use new function get_compression.
4630         * lto-streamer-out.c (produce_lto_section): Use
4631         set_compression to encode compression algorithm.
4632         * lto-streamer.h (struct lto_section): Do not
4633         use bitfields in the format.
4635 2019-07-22  Martin Liska  <mliska@suse.cz>
4637         PR driver/91172
4638         * opts-common.c (decode_cmdline_option): Decode
4639         argument of -Werror and check it for a wrong language.
4640         * opts-global.c (complain_wrong_lang): Remove such case.
4642 2019-07-22  Claudiu Zissulescu  <claziss@synopsys.com>
4644         * config/arc/arc.c (prepare_move_operands): Always use an
4645         intermediate register when storing a TLS symbols.
4647 2019-07-22  Stafford Horne  <shorne@gmail.com>
4649         * config/or1k/or1k.c (or1k_expand_compare): Check for int before
4650         force_reg.
4652 2019-07-22  Stafford Horne  <shorne@gmail.com>
4654         * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
4655         and munordered-float validations.
4656         * config/or1k/constraints.md (d): New register constraint.
4657         * config/or1k/predicates.md (fp_comparison_operator): New.
4658         * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
4659         operands.
4660         (or1k_expand_compare): Normalize unordered comparisons.
4661         * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
4662         (REG_CLASS_NAMES): Add "DOUBLE_REGS".
4663         (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
4664         * config/or1k/or1k.md (type): Add fpu.
4665         (fpu): New instruction reservation.
4666         (F, f, fr, fi, FI, FOP, fop): New.
4667         (<fop><F:mode>3): New ALU instruction definition.
4668         (float<fi><F:mode>2): New conversion instruction definition.
4669         (fix_trunc<F:mode><fi>2): New conversion instruction definition.
4670         (fpcmpcc): New code iterator.
4671         (*sf_fp_insn): New instruction definition.
4672         (cstore<F:mode>4): New expand definition.
4673         (cbranch<F:mode>4): New expand definition.
4674         * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
4675         munordered-float): New options.
4676         * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
4677         munordered-float.
4679 2019-07-22  Stafford Horne  <shorne@gmail.com>
4681         * config.gcc (or1k*-*-*): Add mrori and mror to validation.
4682         * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
4683         documenation to be more clear.
4684         * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
4685         more clear.
4686         * config/or1k/or1k.opt (mrori): New option.
4687         (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
4688         msfimm, mshftimm): Rewrite documentation to be more clear.
4689         * config/or1k/or1k.md (insn_support): Add ror and rori.
4690         (enabled): Add conditions for ror and rori.
4691         (rotrsi3): Replace condition for shftimm with ror and rori.
4693 2019-07-22  Stafford Horne  <shorne@gmail.com>
4695         PR target/90363
4696         * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
4697         (extend<mode>si2): Update predicate.
4698         * config/or1k/predicates.md (volatile_mem_operand): New.
4699         (reg_or_mem_operand): New.
4701 2019-07-21  Iain Sandoe  <iain@sandoe.co.uk>
4703         * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
4704         * config/rs6000/rs6000-call.c: ... to here.
4706 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
4708         * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
4709         memory.
4711 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
4713         * config/rs6000/predicates.md (input_operand): Allow volatile memory.
4715 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
4717         * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
4719 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
4721         * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
4722         (any_memory_operand): New predicate.
4723         (reg_or_mem_operand): Use it.
4725 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
4727         PR target/91204
4728         * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
4730 2019-07-20  John David Anglin  <danglin@gcc.gnu.org>
4732         * config/pa/pa.h (hppa_profile_hook): Delete declaration.
4733         * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
4735 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
4737         * tree.def (OMP_LOOP): New tree code.
4738         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
4739         (enum omp_clause_bind_kind): New enum.
4740         (struct tree_omp_clause): Add subcode.bind_kind.
4741         * tree.h (OMP_LOOP_CHECK): Rename to ...
4742         (OMP_LOOPING_CHECK): ... this.
4743         (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
4744         OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
4745         OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
4746         (OMP_CLAUSE_BIND_KIND): Define.
4747         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
4748         bind clause entries.
4749         (walk_tree_1): Handle OMP_CLAUSE_BIND.
4750         * tree-pretty-print.c (dump_omp_clause): Likewise.
4751         (dump_generic_node): Handle OMP_LOOP.
4752         * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
4753         (in_omp_construct): New variable.
4754         (is_gimple_stmt): Handle OMP_LOOP.
4755         (gimplify_scan_omp_clauses): For lastprivate don't set
4756         check_non_private if code == OMP_LOOP.  For reduction clause
4757         on OMP_LOOP combined with parallel or teams propagate as shared
4758         on the combined construct.  Handle OMP_CLAUSE_BIND.
4759         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
4760         (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
4761         for constructs from a loop construct to gimplify_scan_omp_clauses.
4762         Don't predetermine iterator linear on OMP_SIMD from loop construct.
4763         (replace_reduction_placeholders, gimplify_omp_loop): New functions.
4764         (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
4765         to match the implicit ORT_TARGET construct around whole body.
4766         Temporarily clear in_omp_construct when processing body.
4767         (gimplify_expr): Handle OMP_LOOP.  For OMP_MASTER, OMP_TASKGROUP
4768         etc. temporarily set in_omp_construct when processing body.
4769         (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
4770         * omp-low.c (struct omp_context): Add loop_p.
4771         (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
4772         in that the original var might be private.
4773         (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
4774         (check_omp_nesting_restrictions): Adjust nesting restrictions for
4775         addition of loop construct.
4776         (scan_omp_1_stmt): Allow setjmp inside of loop construct.
4778         * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
4779         lastprivate non-addressable iterator of a collapse(1) simd.
4781 2019-07-17  Bill Seurer  <seurer@linux.vnet.ibm.com>
4783         * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
4784         as in rs6000.c.
4786 2019-07-19  Iain Sandoe  <iain@sandoe.co.uk>
4788         * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
4789         refer to default conditions.  Warn for the 'y' spec which is ignored
4790         by current linkers.
4792 2019-07-19  Bill Seurer  <seurer@linux.vnet.ibm.com>
4794         * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
4795         cpu_supports_info, builtin_hash_struct, builtin_hasher,
4796         builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
4797         rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
4798         rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
4799         init_cumulative_args, rs6000_promote_function_mode,
4800         rs6000_must_pass_in_stack, is_complex_IBM_long_double,
4801         abi_v4_pass_in_fpr, rs6000_function_arg_padding,
4802         rs6000_function_arg_boundary, rs6000_parm_offset,
4803         rs6000_parm_start, rs6000_arg_size,
4804         rs6000_darwin64_record_arg_advance_flush,
4805         rs6000_darwin64_record_arg_advance_recurse,
4806         rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
4807         rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
4808         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
4809         rs6000_mixed_function_arg, rs6000_psave_function_arg,
4810         rs6000_finish_function_arg, rs6000_function_arg,
4811         rs6000_arg_partial_bytes, rs6000_pass_by_reference,
4812         rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
4813         rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
4814         setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
4815         rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
4816         bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
4817         bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
4818         rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
4819         rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
4820         rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
4821         altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
4822         altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
4823         altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
4824         altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
4825         htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
4826         altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
4827         get_element_number, altivec_expand_vec_set_builtin,
4828         altivec_expand_vec_ext_builtin, altivec_expand_builtin,
4829         rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
4830         rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
4831         fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
4832         fold_mergeeo_helper, rs6000_gimple_fold_builtin,
4833         rs6000_expand_builtin, rs6000_vector_type,
4834         rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
4835         htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
4836         rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
4837         to rs6000-call.c.
4838         * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
4839         cpu_supports_info, builtin_hash_struct, builtin_hasher,
4840         builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
4841         rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
4842         rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
4843         init_cumulative_args, rs6000_promote_function_mode,
4844         rs6000_must_pass_in_stack, is_complex_IBM_long_double,
4845         abi_v4_pass_in_fpr, rs6000_function_arg_padding,
4846         rs6000_function_arg_boundary, rs6000_parm_offset,
4847         rs6000_parm_start, rs6000_arg_size,
4848         rs6000_darwin64_record_arg_advance_flush,
4849         rs6000_darwin64_record_arg_advance_recurse,
4850         rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
4851         rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
4852         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
4853         rs6000_mixed_function_arg, rs6000_psave_function_arg,
4854         rs6000_finish_function_arg, rs6000_function_arg,
4855         rs6000_arg_partial_bytes, rs6000_pass_by_reference,
4856         rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
4857         rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
4858         setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
4859         rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
4860         bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
4861         bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
4862         rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
4863         rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
4864         rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
4865         altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
4866         altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
4867         altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
4868         altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
4869         htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
4870         altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
4871         get_element_number, altivec_expand_vec_set_builtin,
4872         altivec_expand_vec_ext_builtin, altivec_expand_builtin,
4873         rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
4874         rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
4875         fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
4876         fold_mergeeo_helper, rs6000_gimple_fold_builtin,
4877         rs6000_expand_builtin, rs6000_vector_type,
4878         rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
4879         htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
4880         rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
4881         to here from rs6000.c.
4882         * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
4883         rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
4884         rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
4885         rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
4886         rs6000_gimplify_va_arg, rs6000_promote_function_mode,
4887         rs6000_return_in_memory, rs6000_return_in_msb,
4888         rs6000_pass_by_reference, setup_incoming_varargs,
4889         rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
4890         rs6000_arg_partial_bytes, rs6000_function_arg_advance,
4891         rs6000_function_arg_padding, rs6000_function_arg,
4892         rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
4893         rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
4894         rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
4895         rs6000_passes_long_double, rs6000_passes_vector,
4896         rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
4897         altivec_builtin_mask_for_load) Add declarations.
4898         * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
4899         * config/config.gcc: Add new source file rs6000-call.c to garbage
4900         collector and extra_objs.
4902 2019-07-19  Jeff Law  <law@redhat.com>
4904         PR tree-optimization/86061
4905         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
4906         strncpy.  Drop some trivial dead code.
4907         (maybe_trim_memstar_call): Handle strncpy.
4909 2019-07-19  Richard Biener  <rguenther@suse.de>
4911         PR tree-optimization/91211
4912         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
4913         memset encoding size.
4915 2019-07-19  Uroš Bizjak  <ubizjak@gmail.com>
4917         PR target/91204
4918         * config/i386/mmx.md (one_cmpl<mode>2): New expander.
4920 2019-07-19  Jan Hubicka  <hubicka@ucw.cz>
4922         PR ipa/91194
4923         * ipa-inline.c (recursive_inlining): Fix limits check.
4925 2019-07-19  Richard Biener  <rguenther@suse.de>
4927         PR tree-optimization/91200
4928         * tree-ssa-phiopt.c (cond_store_replacement): Check we have
4929         no PHI nodes in middle-bb.
4931 2019-07-19  Richard Sandiford  <richard.sandiford@arm.com>
4933         * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
4934         to +sve-bitperm.
4935         * config/aarch64/aarch64-option-extensions.def: Likewise.
4937 2019-07-19  Jakub Jelinek  <jakub@redhat.com>
4939         PR middle-end/91190
4940         * function.c (insert_temp_slot_address): Store into the hash table
4941         a copy of address to avoid RTL sharing issues.
4943 2019-07-19  Richard Biener  <rguenther@suse.de>
4945         PR tree-optimization/91207
4946         Revert
4947         2019-07-17  Richard Biener  <rguenther@suse.de>
4949         PR tree-optimization/91178
4950         * tree-vect-stmts.c (get_group_load_store_type): For SLP
4951         loads with a gap larger than the vector size always use
4952         VMAT_STRIDED_SLP.
4953         (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
4954         avoid loading vectors that are only contained in the gap
4955         and thus are not needed.
4957 2019-07-18  Uroš Bizjak  <ubizjak@gmail.com>
4959         * config/i386/i386.md (*addqi_2_slp): Remove.
4960         (*<code>qi_2_slp): Ditto.
4962 2019-07-18  Michael Meissner  <meissner@linux.ibm.com>
4964         * config/rs6000/predicates.md (prefixed_mem_operand): Call
4965         rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
4966         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
4967         Rename function from rs6000_prefixed_address.
4968         * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
4969         TARGET_HAS_TOC.
4970         (TARGET_TOC): Likewise.
4971         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
4972         rs6000.h.
4973         * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
4974         TARGET_HAS_TOC.
4975         (TARGET_TOC): Likewise.
4976         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
4977         rs6000.h.
4978         * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
4979         TARGET_HAS_TOC.
4980         (TARGET_TOC): Likewise.
4981         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
4982         check to require -mcmodel=medium for pc-relative addressing.
4983         (create_TOC_reference): Add assertion for TARGET_TOC.
4984         (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
4985         TARGET_NO_TOC.
4986         (rs6000_emit_move): Likewise.
4987         (TOC_alias_set): Rename TOC alias set static variable from 'set'
4988         to 'TOC_alias_set'.
4989         (get_TOC_alias_set): Likewise.
4990         (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
4991         TARGET_NO_TOC.
4992         (rs6000_can_eliminate): Likewise.
4993         (rs6000_prefixed_address_mode_p): Rename function from
4994         rs6000_prefixed_address.
4995         * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
4996         TARGET_HAS_TOC and not pc-relative.
4997         (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
4998         * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
4999         TARGET_HAS_TOC.
5000         (TARGET_TOC): Likewise.
5001         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5002         rs6000.h.
5004 2019-07-18  Uroš Bizjak  <ubizjak@gmail.com>
5006         PR target/91188
5007         * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
5008         for operand 0.  Do not use (match_dup) to match operand 1 with
5009         operand 0.  Add check in insn constraint that either input operand
5010         matches operand 0.  Use SWI12 mode iterator to also handle
5011         HImode operands.
5012         (*and<mode>_1_slp): Ditto.
5013         (*<code>qi_1_slp): Ditto.
5014         (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
5015         Do not use (match_dup) to match operand 1 with operand 0.  Add
5016         check in insn constraint that operand 1 matches operand 0.
5017         Use SWI12 mode iterator to also handle HImode operands.
5018         (*ashl<mode>3_1_slp): Ditto.
5019         (*<shift_insn><mode>3_1_slp): Ditto.
5020         (*<rotate_insn><mode>3_1_slp): Ditto.
5022 2019-07-18  Sylvia Taylor  <sylvia.taylor@arm.com>
5024         * config/arm/arm-builtins.c
5025         (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
5026         (arm_expand_unop_builtin): Likewise.
5027         * config/arm/crypto.md
5028         (crypto_sha1h): Convert from define_insn to define_expand.
5029         (crypto_<crypto_pattern>): Likewise.
5030         (crypto_sha1h_lb): New define_insn.
5031         (crypto_<crypto_pattern>_lb): Likewise.
5033 2019-07-18  Sylvia Taylor  <sylvia.taylor@arm.com>
5035         PR target/90317
5036         * config/arm/arm_neon.h (vsha1h_u32): Refactor.
5037         (vsha1cq_u32): Likewise.
5038         (vsha1pq_u32): Likewise.
5039         (vsha1mq_u32): Likewise.
5040         * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
5041         vec select.
5042         (crypto_sha1c): Correct vec select.
5043         (crypto_sha1m): Likewise.
5044         (crypto_sha1p): Likewise.
5046 2019-07-18  Richard Earnshaw  <rearnsha@arm.com>
5048         * config/arm/predicates.md (arm_borrow_operation): New predicate.
5049         * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
5050         (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
5051         (subdi_zesidi_zesidi): Likewise.
5052         (negdi2_compare, negdi2_insn): Likewise.
5053         (negdi_extensidi): Likewise.
5054         (negdi_zero_extendsidi): Likewise.
5055         (arm_cmpdi_insn): Likewise.
5056         (subsi3_carryin): Use arm_borrow_operation.
5057         (subsi3_carryin_const): Likewise.
5058         (subsi3_carryin_const0): Likewise.
5059         (subsi3_carryin_compare): Likewise.
5060         (subsi3_carryin_compare_const): Likewise.
5061         (subsi3_carryin_compare_const0): Likewise.
5062         (subsi3_carryin_shift): Likewise.
5063         (rsbsi3_carryin_shift): Likewise.
5064         (negsi2_carryin_compare): Likewise.
5066 2019-07-18  Bin Cheng  <bin.cheng@linux.alibaba.com>
5068         PR tree-optimization/91137
5069         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
5070         (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
5071         Init, use and fini the above new field.
5072         (determine_base_object_1): New function.
5073         (determine_base_object): Reimplement using walk_tree.
5075 2019-07-18  Richard Sandiford  <richard.sandiford@arm.com>
5077         * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
5078         * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
5079         CLEANUP_FORCE_FAST_DCE is set.
5080         * ifcvt.c (rest_of_handle_if_conversion): Pass
5081         CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
5082         if-conversion succeeded.
5084 2019-07-18  Richard Biener  <rguenther@suse.de>
5086         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
5087         branches to make code less indented.
5089 2019-07-17  Alexandre Oliva  <oliva@adacore.com>
5091         PR middle-end/81824
5092         * attribs.c (decls_mismatched_attributes): Simplify the logic
5093         that avoids duplicates and false positives.
5095 2019-07-17  John David Anglin  <danglin@gcc.gnu.org>
5097         * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
5098         data into data section when generating PIC code.
5099         (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
5100         (pa_reloc_rw_mask): Return 3 when generating PIC code and when
5101         generating code for SOM targets earlier than HP-UX 11.  Otherwise,
5102         return 2 for SOM and 0 for other targets.
5104 2019-07-17  Jeff Law  <law@redhat.com>
5106         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
5107         (dse_walker::dse_optimize_stmt): Likewise.  Add missing return to
5108         avoid unexpected switch statement fallthru.
5110 2019-07-17  Uroš Bizjak  <ubizjak@gmail.com>
5112         * config/i386/i386.md (*add<dwi>3_doubleword):
5113         Remove redundant constraints.
5114         (*add<mode>_1): Ditto.
5115         (*addhi_1): Ditto.
5116         (*addqi_1): Ditto.
5117         (*addqi_1_slp): Ditto.
5118         (*add<mode>_2): Ditto.
5119         (*addv<mode>4): Ditto.
5120         (*sub<dwi>3_doubleword): Ditto.
5121         (*sub<mode>_1): Ditto.
5122         (*subqi_1_slp): Ditto.
5123         (*sub<mode>_2): Ditto.
5124         (*subv<mode>4): Ditto.
5125         (*sub<mode>_3): Ditto.
5126         (@add<mode>3_carry): Ditto.
5127         (@sub<mode>3_carry): Ditto.
5128         (*add<mode>3_cc_overflow_1): Ditto.
5129         (*add<mode>3_zext_cc_overflow_2): Ditto.
5130         (*anddi_1): Ditto.
5131         (*and<mode>_1): Ditto.
5132         (*andqi_1): Ditto.
5133         (*andqi_1_slp): Ditto.
5134         (*anddi_2): Ditto.
5135         (*andqi_2_maybe_si): Ditto.
5136         (*and<mode>_2): Ditto.
5137         (*andqi_2_slp): Ditto.
5138         (*<code><mode>_1): Ditto.
5139         (*<code>qi_1): Ditto.
5140         (*<code>qi_1_slp): Ditto.
5141         (*<code><mode>_2): Ditto.
5142         (*<code>qi_2_slp): Ditto.
5144 2019-07-17  Jan Hubicka  <hubicka@ucw.cz>
5146         * alias.c (record_component_aliases): Do not simplify pointed-to
5147         types of ODR types.
5149 2019-07-17  Uroš Bizjak  <ubizjak@gmail.com>
5151         * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
5152         partial reg stall on alternative 2.
5154 2019-07-17  Richard Biener  <rguenther@suse.de>
5156         PR tree-optimization/91178
5157         * tree-ssa.c (release_defs_bitset): Iterate from higher to
5158         lower SSA names to avoid quadratic behavior in the common case.
5159         * tree-data-ref.c (split_constant_offset): Add limit argument
5160         and pass it down.  Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
5161         (split_constant_offset_1): Add limit argument and use it to
5162         limit SSA def walking.  Optimize the common plus/minus case.
5164 2019-07-17  Richard Biener  <rguenther@suse.de>
5166         PR tree-optimization/91178
5167         * tree-vect-stmts.c (get_group_load_store_type): For SLP
5168         loads with a gap larger than the vector size always use
5169         VMAT_STRIDED_SLP.
5170         (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
5171         avoid loading vectors that are only contained in the gap
5172         and thus are not needed.
5174 2019-07-17  Richard Biener  <rguenther@suse.de>
5176         PR tree-optimization/91180
5177         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
5178         computation for memset partial defs.
5180 2019-07-17  Jakub Jelinek  <jakub@redhat.com>
5182         * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
5183         GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
5184         divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
5185         GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
5186         GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
5187         * omp-grid.c (grid_process_grid_body,
5188         grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
5189         of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
5190         == GF_OMP_FOR_KIND_SIMD.
5191         * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
5192         check_omp_nesting_restrictions, scan_omp_1_stmt,
5193         lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
5194         lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
5195         omp_find_scan): Likewise.
5196         * omp-expand.c (expand_omp_for): Likewise.
5197         * omp-general.c (omp_extract_for_data): Likewise.
5199         PR tree-optimization/91157
5200         * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
5201         a vector boolean with scalar mode.
5202         (expand_vector_condition): Handle first operand being a vector boolean
5203         with scalar mode.
5204         (expand_vector_operations_1): For comparisons, don't bail out early
5205         if the return type is vector boolean with scalar mode, but comparison
5206         operand type is not.
5208 2019-07-17  Richard Biener  <rguenther@suse.de>
5210         PR tree-optimization/91181
5211         * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
5212         IFN_LOADs as calls.
5214 2019-07-16  Uroš Bizjak  <ubizjak@gmail.com>
5216         * config/i386/i386.md (*testdi_1): Match CCZmode for
5217         constants that might have the SImode sign bit set.
5218         (*testqi_1_maybe_si): Remove "!" constraint modifier.
5219         Use correct constraints for pentium pairing.
5220         (*test<mode>_1): Ditto.
5222 2019-07-16  Jeff Law  <law@redhat.com>
5224         PR rtl-optimization/91173
5225         * tree-ssa-address.c (addr_for_mem_ref): If the base is an
5226         SSA_NAME with a constant value, fold its value into the offset
5227         and clear the base before calling gen_addr_rtx.
5229 2019-07-16  Jakub Jelinek  <jakub@redhat.com>
5231         PR rtl-optimization/91164
5232         * dse.c (rest_of_handle_dse): If dead edges have been purged,
5233         invalidate dominance info.
5235 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5237         * read-md.h (md_reader::record_potential_iterator_use): Add a
5238         file_location parameter.
5239         * read-rtl.c (attribute_use::loc): New field.
5240         (map_attr_string): Take a file_location parameter.  Report cases
5241         in which attributes map to multiple distinct values.
5242         (apply_attribute_uses): Update call accordingly.
5243         (md_reader::handle_overloaded_name): Likewise.
5244         (md_reader::apply_iterator_to_string): Likewise.  Skip empty
5245         nonnull strings.
5246         (record_attribute_use): Take a file_location parameter.
5247         Initialize attribute_use::loc.
5248         (md_reader::record_potential_iterator_use): Take a file_location
5249         parameter.  Update call to record_attribute_use.
5250         (rtx_reader::rtx_alloc_for_name): Update call accordingly.
5251         (rtx_reader::read_rtx_code): Likewise.
5252         (rtx_reader::read_rtx_operand): Likewise.  Record a location
5253         for implicitly-expanded empty strings.
5255 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5257         * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
5258         Use file_location instead of separate fields.
5259         (md_reader::set_md_ptr_loc): Take a file_location instead of a
5260         separate filename and line number.
5261         * read-md.c (ptr_loc): As above.
5262         (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
5263         (md_reader::fprint_md_ptr_loc): Likewise.
5264         (md_reader::set_md_ptr_loc): Likewise.  Take a file_location
5265         instead of a separate filename and line number.
5266         (md_reader::read_string): Update call accordingly.
5268 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5270         * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
5271         use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
5272         leaving the choice between SFDF and P implicit.
5273         (*mov<mode>_update2): Likewise.
5274         (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
5275         rather than leaving the choice betweem IBM128 and GPR implicit.
5276         (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
5277         <IEEE128:MODE> rather than leaving the choice between IEEE128 and
5278         QHSI implicit.
5279         (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
5280         rather than leaving the choice between ALTIVEC_DFORM and P implicit.
5281         * config/rs6000/vsx.md
5282         (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
5283         (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
5284         use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
5285         and VSX_EXTRACT_I implicit.
5287 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5289         * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
5290         Explicitly use <MOVEP1:MODE> for the mode attribute.
5292 2019-07-16  Jan Hubicka  <hubicka@ucw.cz>
5294         PR bootstrap/91176
5295         * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
5297 2019-07-15  Segher Boessenkool  <segher@kernel.crashing.org>
5299         PR target/91050
5300         * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
5301         .machine directive.
5303 2019-07-15  Uroš Bizjak  <ubizjak@gmail.com>
5305         * config/i386/i386.md (@test<mode>_ccno_1):
5306         Rename from test<mode>_ccno_1.
5307         (*testdi_1): Remove redundant alternatives.  Remove modrm attribute.
5308         (*testqi_1_maybe_si): Remove modrm attribute.
5309         (*test<mode>_1): Ditto.
5310         * config/i386/i386-expand.c (ix86_split_idivmod): Use
5311         gen_test_ccno_1 and gen_extend_insn.
5313 2019-07-15  Jan Hubicka  <hubicka@ucw.cz>
5315         * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
5316         to 0.
5318 2019-07-15  Richard Biener  <rguenther@suse.de>
5320         PR middle-end/91162
5321         * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
5322         node make sure to replace all uses with something valid.
5324 2019-07-15  Kewen Lin  <linkw@gcc.gnu.org>
5326         PR tree-optimization/88497
5327         * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
5328         GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
5329         function undistribute_bitref_for_vector.
5330         (undistribute_bitref_for_vector): New function.
5331         (cleanup_vinfo_map): Likewise.
5332         (sort_by_mach_mode): Likewise.
5334 2019-07-14  Uroš Bizjak  <ubizjak@gmail.com>
5336         * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
5337         (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
5338         and testdi_ccno_1 using SWI48 mode attribute.
5339         (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
5340         x86_64_szext_general_operand.
5341         (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
5342         (*test<mode>_1): Use nonmemory_szext_operand mode attribute
5343         instead of genera_operand mode attribute.
5345 2019-07-14  Vladislav Ivanishin  <vlad@ispras.ru>
5347         * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
5348         fopen and fclose to their respective types.
5349         (DotFn.invoke): Ditto.
5351 2019-07-14  Jan Hubicka  <hubicka@ucw.cz>
5353         * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
5354         (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
5355         (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
5356         (array_index_predicate): Remove.
5357         (analyze_function_body): Account cost for variable ofsetted array
5358         indexing.
5359         (estimate_node_size_and_time): Do not compute array index hint.
5360         (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
5361         (inline_read_section): Do not read array index hint.
5362         (ipa_fn_summary_write): Do not write array index hint.
5363         * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
5364         * ipa-cp.c (hint_time_bonus): Remove.
5365         * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
5366         (ipa_fnsummary): Remove array_index.
5367         * ipa-inline.c (want_inline_small_function_p): Do not use
5368         array_index.
5369         (edge_badness): Likewise.
5370         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
5372 2019-07-14  Segher Boessenkool  <segher@kernel.crashing.org>
5374         PR target/91148
5375         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
5376         superfluous "builtin function" phrasing.
5378 2019-07-13  Jan Hubicka  <hubicka@ucw.cz>
5380         * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
5381         Break out from ...
5382         (aliasing_component_refs_walk): Break out from ...
5383         (aliasing_component_refs_p): ... here.
5385 2019-07-13  Segher Boessenkool  <segher@kernel.crashing.org>
5387         PR target/91148
5388         * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
5389         "builtin function" phrasing.
5391 2019-07-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5393         PR target/90723
5394         * recog.h (temporary_volatile_ok): New class.
5395         * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
5396         volatile_ok temporarily to true using temporary_volatile_ok.
5397         * expr.c (emit_block_move_via_cpymem): Likewise.
5398         * optabs.c (maybe_legitimize_operand): Likewise.
5400 2019-07-13  Jakub Jelinek  <jakub@redhat.com>
5402         * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
5403         (omp_notice_threadprivate_variable): Diagnose threadprivate variable
5404         uses inside of order(concurrent) constructs.
5405         (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
5406         OMP_CLAUSE_ORDER is seen.
5407         * omp-low.c (struct omp_context): Add order_concurrent member.
5408         (scan_sharing_clauses): Set ctx->order_concurrent if
5409         OMP_CLAUSE_ORDER is seen.
5410         (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
5411         of simd order(concurrent).  Diagnose constructs not allowed inside of
5412         for order(concurrent).
5413         (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
5414         complaining about static double setjmp (double); or class static
5415         methods or non-global namespace setjmps.
5416         (omp_runtime_api_call): New function.
5417         (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
5418         order(concurrent) loops.
5420 2019-07-12  Martin Sebor  <msebor@redhat.com>
5422         * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
5423         * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
5424         * tree-vrp.c (vrp_prop::check_mem_ref): Use
5425         PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
5427 2019-07-12  Jan Hubicka  <jh@suse.cz>
5429         * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
5430         (indirect_refs_may_alias_p): ... here.
5431         (nonoverlapping_component_refs_since_match_p): Support also non-trivial
5432         mem refs in the access paths.
5434 2019-07-12  Jiangning Liu  <jiangning.liu@amperecomputing.com>
5436         PR tree-optimization/89430
5437         * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
5438         store elimination for local variable without address escape.
5440 2019-07-12  Jeff Law  <law@redhat.com>
5442         * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
5443         for the ".far" section.
5445 2019-07-12  Richard Biener  <rguenther@suse.de>
5447         PR tree-optimization/91145
5448         * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
5449         chain check.
5451 2019-07-12  Alexandre Oliva  <oliva@adacore.com>
5453         * tree-eh.c (honor_protect_cleanup_actions): Use outer_
5454         rather than this_state as the lowering context for the ELSE
5455         seq in a GIMPLE_EH_ELSE.
5457 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
5459         * vector-builder.h (vector_builder::elt): Allow already-supplied
5460         elements to be read back before building is complete.
5462 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
5464         PR rtl-optimization/91136
5465         * df-core.c (ACCESSING REFS): Fix typos in comment.
5466         * resource.c (mark_target_live_reg): Add artificial defs that occur at
5467         the beginning of the block to the initial set of live registers.
5469 2019-07-12  Richard Biener  <rguenther@suse.de>
5471         * fold-const.h (get_array_ctor_element_at_index): Adjust.
5472         * fold-const.c (get_array_ctor_element_at_index): Add
5473         ctor_idx output parameter informing the caller where in
5474         the constructor the element was (not) found.  Add early exit
5475         for when the ctor is sorted.
5476         * gimple-fold.c (fold_array_ctor_reference): Support constant
5477         folding across multiple array elements.
5479 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
5481         * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
5482         doesn't have location, set the current location to the function's end.
5484 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
5486         * config/aarch64/aarch64.md (*compare_condjump<mode>)
5487         (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
5488         (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
5489         (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
5490         * config/aarch64/aarch64-simd.md
5491         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
5492         (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
5493         * config/aarch64/aarch64-sve.md
5494         (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
5495         (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
5497 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
5499         * doc/md.texi: Document that @ patterns can have different
5500         numbers of operands.
5501         * genemit.c (handle_overloaded_gen): Handle this case.
5502         * genopinit.c (handle_overloaded_gen): Likewise.
5503         * gensupport.c (replace_operands_with_dups): Iterate over
5504         the new rtx's format rather than the old one's.
5506 2019-07-12  Jakub Jelinek  <jakub@redhat.com>
5508         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
5509         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
5510         order clause entries.
5511         (walk_tree_1): Handle OMP_CLAUSE_ORDER.
5512         * tree-pretty-print.c (dump_omp_clause): Likewise.
5513         * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
5514         Likewise.
5515         * omp-low.c (scan_sharing_clauses): Likewise.
5516         * tree-nested.c (convert_nonlocal_omp_clauses,
5517         convert_local_omp_clauses): Likewise.
5519 2019-07-12  Kewen Lin  <linkw@gcc.gnu.org>
5521         * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
5522         fallthrough target of current basic block isn't the placed
5523         right next.
5525 2019-07-11  Sunil K Pandey  <sunil.k.pandey@intel.com>
5527         PR target/90980
5528         * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
5529         (_mm512_storeu_epi64): Likewise.
5530         (_mm512_loadu_epi32): Likewise.
5531         (_mm512_storeu_epi32): Likewise.
5532         * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
5533         (_mm_storeu_epi64): Likewise.
5534         (_mm256_storeu_epi32): Likewise.
5535         (_mm_storeu_epi32): Likewise.
5537 2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>
5539         * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
5541 2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>
5543         * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
5544         Handle Modula-2.
5546 2019-07-11  Jakub Jelinek  <jakub@redhat.com>
5548         PR target/91124
5549         * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
5550         (sse2_cvtpd2dq): ... this.  Remove mask substitution macros.
5551         (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
5552         (ufix_notruncv2dfv2si2<mask_name>): Change into ...
5553         (ufix_notruncv2dfv2si2): ... this.  Remove mask substitution macros.
5554         (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
5555         define_insns.
5556         (ufix_truncv2dfv2si2<mask_name>): Change into ...
5557         (ufix_truncv2dfv2si2): ... this.  Remove mask substitution macros.
5558         (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
5559         define_insns.
5560         (sse2_cvttpd2dq<mask_name>): Change into ...
5561         (sse2_cvttpd2dq): ... this.  Remove mask substitution macros.
5562         (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
5563         (*sse2_cvtpd2dq<mask_name>): Change into ...
5564         (*sse2_cvtpd2dq): ... this.  Remove mask substitution macros.
5565         Add "C" constraint to const0_operand.
5566         (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
5567         (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
5568         changes.
5570         PR target/91124
5571         * config/i386/i386-builtin-types.def
5572         (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
5573         V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
5574         V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
5575         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
5576         V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
5577         * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
5578         __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
5579         __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
5580         __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
5581         __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
5582         __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
5583         __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
5584         __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
5585         __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
5586         __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
5587         __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
5588         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
5589         __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
5590         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
5591         __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
5592         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
5593         __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
5594         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
5595         __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
5596         __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
5597         __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
5598         __builtin_ia32_vpdpbusd_v4si_maskz,
5599         __builtin_ia32_vpdpbusds_v16si_mask,
5600         __builtin_ia32_vpdpbusds_v16si_maskz,
5601         __builtin_ia32_vpdpbusds_v8si_mask,
5602         __builtin_ia32_vpdpbusds_v8si_maskz,
5603         __builtin_ia32_vpdpbusds_v4si_mask,
5604         __builtin_ia32_vpdpbusds_v4si_maskz,
5605         __builtin_ia32_vpdpwssd_v16si_mask,
5606         __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
5607         __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
5608         __builtin_ia32_vpdpwssd_v4si_maskz,
5609         __builtin_ia32_vpdpwssds_v16si_mask,
5610         __builtin_ia32_vpdpwssds_v16si_maskz,
5611         __builtin_ia32_vpdpwssds_v8si_mask,
5612         __builtin_ia32_vpdpwssds_v8si_maskz,
5613         __builtin_ia32_vpdpwssds_v4si_mask,
5614         __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
5615         suffixed types rather than *_INT.
5616         * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
5617         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
5618         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
5619         V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
5620         V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
5621         and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
5623 2019-07-11  Aldy Hernandez  <aldyh@redhat.com>
5625         * tree-vrp.c (intersect_ranges): If we know the intersection is
5626         empty, there is no need to conservatively add anything else to
5627         the set.
5629 2019-07-11  Richard Biener  <rguenther@suse.de>
5631         PR middle-end/91131
5632         * gimplify.c (gimplify_compound_literal_expr): Force a temporary
5633         when the object is volatile and we have not cleared it even though
5634         there are no nonzero elements.
5636 2019-07-10  Michael Meissner  <meissner@linux.ibm.com>
5638         * config/rs6000/predicates.md (cint34_operand): Update
5639         SIGNED_34BIT_OFFSET_P call.
5640         (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
5641         (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
5642         * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
5643         SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
5644         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
5645         argument.
5646         (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
5647         (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
5648         SIGNED_16BIT_OFFSET_P with an EXTRA argument.
5649         (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
5650         SIGNED_34BIT_OFFSET_P with an EXTRA argument.
5652 2019-07-10  Iain Sandoe  <iain@sandoe.co.uk>
5654         * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
5655         * config/rs6000/darwin7.h (LIB_SPEC): Remove.
5656         * config/rs6000/darwin8.h (LIB_SPEC): Remove.
5657         (DEF_MIN_OSX_VERSION): New.
5659 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
5661         * fold-const.c (fold_relational_const): Fix folding of
5662         vector-to-scalar NE_EXPRs.
5663         (test_vector_folding): Add more tests.
5665 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
5667         PR target/91060
5668         * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
5669         * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
5670         (vec_setv2di_internal): Reexpress as...
5671         (@vec_set<V2DI_ONLY:mode>_internal): ...this.
5672         * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
5673         rather than gen_neon_vset_lane<mode>.
5675 2019-07-10  Vladimir Makarov  <vmakarov@redhat.com>
5677         PR target/91102
5678         * lra-constraints.c (process_alt_operands): Don't match user
5679         defined regs only if they are early clobbers.
5681 2019-07-10  Marc Glisse  <marc.glisse@inria.fr>
5683         * wide-int.h (wi::lshift): Reject negative values for the fast path.
5685 2019-07-10  Richard Biener  <rguenther@suse.de>
5687         PR tree-optimization/91126
5688         * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
5689         native encoding offset for BYTES_BIG_ENDIAN.
5690         (vn_reference_lookup_3): Likewise.
5692 2019-07-10  Richard Biener  <rguenther@suse.de>
5694         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
5695         LHS whenever possible.
5697 2019-07-09  Jan Hubicka  <hubicka@ucw.cz>
5699         * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
5700         from ...; work also on duplicated types.
5701         (nonoverlapping_component_refs_since_match): ... here
5702         (ncr_type_uid): Break out from ...
5703         (ncr_compar): ... here; look for TYPE_UID of canonical type if
5704         available.
5705         (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
5706         the types and nonoverlapping_component_refs_p_1 to disambiguate.
5708 2019-07-09  Martin Sebor  <msebor@redhat.com>
5710         PR tree-optimization/90989
5711         * tree-ssa-strlen.c (handle_char_store): Constrain a single character
5712         optimization to just single character stores.
5714 2019-07-09  Joern Rennecke  <joern.rennecke@riscy-ip.com>
5716         * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
5717         Swap operands only once.
5719 2019-07-09  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
5721         * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
5722         for both call instructions.
5724 2019-07-09  John Darrington  <john@darrington.wattle.id.au>
5726         * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
5727         rather than GET_MODE_BITSIZE to better handle partial integer modes.
5729 2019-07-09  Michael Meissner  <meissner@linux.ibm.com>
5731         * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
5732         * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
5733         function from rs6000-logue.c back to rs6000.c.
5734         * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
5736 2019-07-09  Martin Sebor  <msebor@redhat.com>
5738         PR c++/61339
5739         * auto-profile.c: Change class-key of PODs to struct and others
5740         to class.
5741         * basic-block.h: Same.
5742         * bitmap.c (bitmap_alloc): Same.
5743         * bitmap.h: Same.
5744         * builtins.c (expand_builtin_prefetch): Same.
5745         (expand_builtin_interclass_mathfn): Same.
5746         (expand_builtin_strlen): Same.
5747         (expand_builtin_mempcpy_args): Same.
5748         (expand_cmpstr): Same.
5749         (expand_builtin___clear_cache): Same.
5750         (expand_ifn_atomic_bit_test_and): Same.
5751         (expand_builtin_thread_pointer): Same.
5752         (expand_builtin_set_thread_pointer): Same.
5753         * caller-save.c (setup_save_areas): Same.
5754         (replace_reg_with_saved_mem): Same.
5755         (insert_restore): Same.
5756         (insert_save): Same.
5757         (add_used_regs): Same.
5758         * cfg.c (get_bb_copy): Same.
5759         (set_loop_copy): Same.
5760         * cfg.h: Same.
5761         * cfganal.h: Same.
5762         * cfgexpand.c (alloc_stack_frame_space): Same.
5763         (add_stack_var): Same.
5764         (add_stack_var_conflict): Same.
5765         (add_scope_conflicts_1): Same.
5766         (update_alias_info_with_stack_vars): Same.
5767         (expand_used_vars): Same.
5768         * cfghooks.c (redirect_edge_and_branch_force): Same.
5769         (delete_basic_block): Same.
5770         (split_edge): Same.
5771         (make_forwarder_block): Same.
5772         (force_nonfallthru): Same.
5773         (duplicate_block): Same.
5774         (lv_flush_pending_stmts): Same.
5775         * cfghooks.h: Same.
5776         * cfgloop.c (flow_loops_cfg_dump): Same.
5777         (flow_loop_nested_p): Same.
5778         (superloop_at_depth): Same.
5779         (get_loop_latch_edges): Same.
5780         (flow_loop_dump): Same.
5781         (flow_loops_dump): Same.
5782         (flow_loops_free): Same.
5783         (flow_loop_nodes_find): Same.
5784         (establish_preds): Same.
5785         (flow_loop_tree_node_add): Same.
5786         (flow_loop_tree_node_remove): Same.
5787         (flow_loops_find): Same.
5788         (find_subloop_latch_edge_by_profile): Same.
5789         (find_subloop_latch_edge_by_ivs): Same.
5790         (mfb_redirect_edges_in_set): Same.
5791         (form_subloop): Same.
5792         (merge_latch_edges): Same.
5793         (disambiguate_multiple_latches): Same.
5794         (disambiguate_loops_with_multiple_latches): Same.
5795         (flow_bb_inside_loop_p): Same.
5796         (glb_enum_p): Same.
5797         (get_loop_body_with_size): Same.
5798         (get_loop_body): Same.
5799         (fill_sons_in_loop): Same.
5800         (get_loop_body_in_dom_order): Same.
5801         (get_loop_body_in_custom_order): Same.
5802         (release_recorded_exits): Same.
5803         (get_loop_exit_edges): Same.
5804         (num_loop_branches): Same.
5805         (remove_bb_from_loops): Same.
5806         (find_common_loop): Same.
5807         (delete_loop): Same.
5808         (cancel_loop): Same.
5809         (verify_loop_structure): Same.
5810         (loop_preheader_edge): Same.
5811         (loop_exit_edge_p): Same.
5812         (single_exit): Same.
5813         (loop_exits_to_bb_p): Same.
5814         (loop_exits_from_bb_p): Same.
5815         (get_loop_location): Same.
5816         (record_niter_bound): Same.
5817         (get_estimated_loop_iterations_int): Same.
5818         (max_stmt_executions_int): Same.
5819         (likely_max_stmt_executions_int): Same.
5820         (get_estimated_loop_iterations): Same.
5821         (get_max_loop_iterations): Same.
5822         (get_max_loop_iterations_int): Same.
5823         (get_likely_max_loop_iterations): Same.
5824         * cfgloop.h (simple_loop_desc): Same.
5825         (get_loop): Same.
5826         (loop_depth): Same.
5827         (loop_outer): Same.
5828         (loop_iterator::next): Same.
5829         (loop_outermost): Same.
5830         * cfgloopanal.c (mark_irreducible_loops): Same.
5831         (num_loop_insns): Same.
5832         (average_num_loop_insns): Same.
5833         (expected_loop_iterations_unbounded): Same.
5834         (expected_loop_iterations): Same.
5835         (mark_loop_exit_edges): Same.
5836         (single_likely_exit): Same.
5837         * cfgloopmanip.c (fix_bb_placement): Same.
5838         (fix_bb_placements): Same.
5839         (remove_path): Same.
5840         (place_new_loop): Same.
5841         (add_loop): Same.
5842         (scale_loop_frequencies): Same.
5843         (scale_loop_profile): Same.
5844         (create_empty_if_region_on_edge): Same.
5845         (create_empty_loop_on_edge): Same.
5846         (loopify): Same.
5847         (unloop): Same.
5848         (fix_loop_placements): Same.
5849         (copy_loop_info): Same.
5850         (duplicate_loop): Same.
5851         (duplicate_subloops): Same.
5852         (loop_redirect_edge): Same.
5853         (can_duplicate_loop_p): Same.
5854         (duplicate_loop_to_header_edge): Same.
5855         (mfb_keep_just): Same.
5856         (has_preds_from_loop): Same.
5857         (create_preheader): Same.
5858         (create_preheaders): Same.
5859         (lv_adjust_loop_entry_edge): Same.
5860         (loop_version): Same.
5861         * cfgloopmanip.h: Same.
5862         * cgraph.h: Same.
5863         * cgraphbuild.c: Same.
5864         * combine.c (make_extraction): Same.
5865         * config/i386/i386-features.c: Same.
5866         * config/i386/i386-features.h: Same.
5867         * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
5868         (ix86_emit_outlined_ms2sysv_restore): Same.
5869         (ix86_noce_conversion_profitable_p): Same.
5870         (ix86_init_cost): Same.
5871         (ix86_simd_clone_usable): Same.
5872         * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
5873         Wstruct-not-pod.
5874         * coretypes.h: Same.
5875         * data-streamer-in.c (string_for_index): Change class-key of PODs
5876         to struct and others to class.
5877         (streamer_read_indexed_string): Same.
5878         (streamer_read_string): Same.
5879         (bp_unpack_indexed_string): Same.
5880         (bp_unpack_string): Same.
5881         (streamer_read_uhwi): Same.
5882         (streamer_read_hwi): Same.
5883         (streamer_read_gcov_count): Same.
5884         (streamer_read_wide_int): Same.
5885         * data-streamer.h (streamer_write_bitpack): Same.
5886         (bp_unpack_value): Same.
5887         (streamer_write_char_stream): Same.
5888         (streamer_write_hwi_in_range): Same.
5889         (streamer_write_record_start): Same.
5890         * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
5891         (add_cross_iteration_register_deps): Same.
5892         (build_intra_loop_deps): Same.
5893         * df-core.c (df_analyze): Same.
5894         (loop_post_order_compute): Same.
5895         (loop_inverted_post_order_compute): Same.
5896         * df-problems.c (df_rd_alloc): Same.
5897         (df_rd_simulate_one_insn): Same.
5898         (df_rd_local_compute): Same.
5899         (df_rd_init_solution): Same.
5900         (df_rd_confluence_n): Same.
5901         (df_rd_transfer_function): Same.
5902         (df_rd_free): Same.
5903         (df_rd_dump_defs_set): Same.
5904         (df_rd_top_dump): Same.
5905         (df_lr_alloc): Same.
5906         (df_lr_reset): Same.
5907         (df_lr_local_compute): Same.
5908         (df_lr_init): Same.
5909         (df_lr_confluence_n): Same.
5910         (df_lr_free): Same.
5911         (df_lr_top_dump): Same.
5912         (df_lr_verify_transfer_functions): Same.
5913         (df_live_alloc): Same.
5914         (df_live_reset): Same.
5915         (df_live_init): Same.
5916         (df_live_confluence_n): Same.
5917         (df_live_finalize): Same.
5918         (df_live_free): Same.
5919         (df_live_top_dump): Same.
5920         (df_live_verify_transfer_functions): Same.
5921         (df_mir_alloc): Same.
5922         (df_mir_reset): Same.
5923         (df_mir_init): Same.
5924         (df_mir_confluence_n): Same.
5925         (df_mir_free): Same.
5926         (df_mir_top_dump): Same.
5927         (df_word_lr_alloc): Same.
5928         (df_word_lr_reset): Same.
5929         (df_word_lr_init): Same.
5930         (df_word_lr_confluence_n): Same.
5931         (df_word_lr_free): Same.
5932         (df_word_lr_top_dump): Same.
5933         (df_md_alloc): Same.
5934         (df_md_simulate_one_insn): Same.
5935         (df_md_reset): Same.
5936         (df_md_init): Same.
5937         (df_md_free): Same.
5938         (df_md_top_dump): Same.
5939         * df-scan.c (df_insn_delete): Same.
5940         (df_insn_rescan): Same.
5941         (df_notes_rescan): Same.
5942         (df_sort_and_compress_mws): Same.
5943         (df_install_mws): Same.
5944         (df_refs_add_to_chains): Same.
5945         (df_ref_create_structure): Same.
5946         (df_ref_record): Same.
5947         (df_def_record_1): Same.
5948         (df_find_hard_reg_defs): Same.
5949         (df_uses_record): Same.
5950         (df_get_conditional_uses): Same.
5951         (df_get_call_refs): Same.
5952         (df_recompute_luids): Same.
5953         (df_get_entry_block_def_set): Same.
5954         (df_entry_block_defs_collect): Same.
5955         (df_get_exit_block_use_set): Same.
5956         (df_exit_block_uses_collect): Same.
5957         (df_mws_verify): Same.
5958         (df_bb_verify): Same.
5959         * df.h (df_scan_get_bb_info): Same.
5960         * doc/tm.texi: Same.
5961         * dse.c (record_store): Same.
5962         * dumpfile.h: Same.
5963         * emit-rtl.c (const_fixed_hasher::equal): Same.
5964         (set_mem_attributes_minus_bitpos): Same.
5965         (change_address): Same.
5966         (adjust_address_1): Same.
5967         (offset_address): Same.
5968         * emit-rtl.h: Same.
5969         * except.c (dw2_build_landing_pads): Same.
5970         (sjlj_emit_dispatch_table): Same.
5971         * explow.c (allocate_dynamic_stack_space): Same.
5972         (emit_stack_probe): Same.
5973         (probe_stack_range): Same.
5974         * expmed.c (store_bit_field_using_insv): Same.
5975         (store_bit_field_1): Same.
5976         (store_integral_bit_field): Same.
5977         (extract_bit_field_using_extv): Same.
5978         (extract_bit_field_1): Same.
5979         (emit_cstore): Same.
5980         * expr.c (emit_block_move_via_cpymem): Same.
5981         (expand_cmpstrn_or_cmpmem): Same.
5982         (set_storage_via_setmem): Same.
5983         (emit_single_push_insn_1): Same.
5984         (expand_assignment): Same.
5985         (store_constructor): Same.
5986         (expand_expr_real_2): Same.
5987         (expand_expr_real_1): Same.
5988         (try_casesi): Same.
5989         * flags.h: Same.
5990         * function.c (try_fit_stack_local): Same.
5991         (assign_stack_local_1): Same.
5992         (assign_stack_local): Same.
5993         (cut_slot_from_list): Same.
5994         (insert_slot_to_list): Same.
5995         (max_slot_level): Same.
5996         (move_slot_to_level): Same.
5997         (temp_address_hasher::equal): Same.
5998         (remove_unused_temp_slot_addresses): Same.
5999         (assign_temp): Same.
6000         (combine_temp_slots): Same.
6001         (update_temp_slot_address): Same.
6002         (preserve_temp_slots): Same.
6003         * function.h: Same.
6004         * fwprop.c: Same.
6005         * gcc-rich-location.h: Same.
6006         * gcov.c: Same.
6007         * genattrtab.c (check_attr_test): Same.
6008         (check_attr_value): Same.
6009         (convert_set_attr_alternative): Same.
6010         (convert_set_attr): Same.
6011         (check_defs): Same.
6012         (copy_boolean): Same.
6013         (get_attr_value): Same.
6014         (expand_delays): Same.
6015         (make_length_attrs): Same.
6016         (min_fn): Same.
6017         (make_alternative_compare): Same.
6018         (simplify_test_exp): Same.
6019         (tests_attr_p): Same.
6020         (get_attr_order): Same.
6021         (clear_struct_flag): Same.
6022         (gen_attr): Same.
6023         (compares_alternatives_p): Same.
6024         (gen_insn): Same.
6025         (gen_delay): Same.
6026         (find_attrs_to_cache): Same.
6027         (write_test_expr): Same.
6028         (walk_attr_value): Same.
6029         (write_attr_get): Same.
6030         (eliminate_known_true): Same.
6031         (write_insn_cases): Same.
6032         (write_attr_case): Same.
6033         (write_attr_valueq): Same.
6034         (write_attr_value): Same.
6035         (write_dummy_eligible_delay): Same.
6036         (next_comma_elt): Same.
6037         (find_attr): Same.
6038         (make_internal_attr): Same.
6039         (copy_rtx_unchanging): Same.
6040         (gen_insn_reserv): Same.
6041         (check_tune_attr): Same.
6042         (make_automaton_attrs): Same.
6043         (handle_arg): Same.
6044         * genextract.c (gen_insn): Same.
6045         (VEC_char_to_string): Same.
6046         * genmatch.c (print_operand): Same.
6047         (lower): Same.
6048         (parser::parse_operation): Same.
6049         (parser::parse_capture): Same.
6050         (parser::parse_c_expr): Same.
6051         (parser::parse_simplify): Same.
6052         (main): Same.
6053         * genoutput.c (output_operand_data): Same.
6054         (output_get_insn_name): Same.
6055         (compare_operands): Same.
6056         (place_operands): Same.
6057         (process_template): Same.
6058         (validate_insn_alternatives): Same.
6059         (validate_insn_operands): Same.
6060         (gen_expand): Same.
6061         (note_constraint): Same.
6062         * genpreds.c (write_one_predicate_function): Same.
6063         (add_constraint): Same.
6064         (process_define_register_constraint): Same.
6065         (write_lookup_constraint_1): Same.
6066         (write_lookup_constraint_array): Same.
6067         (write_insn_constraint_len): Same.
6068         (write_reg_class_for_constraint_1): Same.
6069         (write_constraint_satisfied_p_array): Same.
6070         * genrecog.c (optimize_subroutine_group): Same.
6071         * gensupport.c (process_define_predicate): Same.
6072         (queue_pattern): Same.
6073         (remove_from_queue): Same.
6074         (process_rtx): Same.
6075         (is_predicable): Same.
6076         (change_subst_attribute): Same.
6077         (subst_pattern_match): Same.
6078         (alter_constraints): Same.
6079         (alter_attrs_for_insn): Same.
6080         (shift_output_template): Same.
6081         (alter_output_for_subst_insn): Same.
6082         (process_one_cond_exec): Same.
6083         (subst_dup): Same.
6084         (process_define_cond_exec): Same.
6085         (mnemonic_htab_callback): Same.
6086         (gen_mnemonic_attr): Same.
6087         (read_md_rtx): Same.
6088         * ggc-page.c: Same.
6089         * gimple-loop-interchange.cc (dump_reduction): Same.
6090         (dump_induction): Same.
6091         (loop_cand::~loop_cand): Same.
6092         (free_data_refs_with_aux): Same.
6093         (tree_loop_interchange::interchange_loops): Same.
6094         (tree_loop_interchange::map_inductions_to_loop): Same.
6095         (tree_loop_interchange::move_code_to_inner_loop): Same.
6096         (compute_access_stride): Same.
6097         (compute_access_strides): Same.
6098         (proper_loop_form_for_interchange): Same.
6099         (tree_loop_interchange_compute_ddrs): Same.
6100         (prune_datarefs_not_in_loop): Same.
6101         (prepare_data_references): Same.
6102         (pass_linterchange::execute): Same.
6103         * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
6104         (unroll_jam_possible_p): Same.
6105         (fuse_loops): Same.
6106         (adjust_unroll_factor): Same.
6107         (tree_loop_unroll_and_jam): Same.
6108         * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
6109         (loop_versioning::expensive_stmt_p): Same.
6110         (loop_versioning::version_for_unity): Same.
6111         (loop_versioning::dump_inner_likelihood): Same.
6112         (loop_versioning::find_per_loop_multiplication): Same.
6113         (loop_versioning::analyze_term_using_scevs): Same.
6114         (loop_versioning::record_address_fragment): Same.
6115         (loop_versioning::analyze_expr): Same.
6116         (loop_versioning::analyze_blocks): Same.
6117         (loop_versioning::prune_conditions): Same.
6118         (loop_versioning::merge_loop_info): Same.
6119         (loop_versioning::add_loop_to_queue): Same.
6120         (loop_versioning::decide_whether_loop_is_versionable): Same.
6121         (loop_versioning::make_versioning_decisions): Same.
6122         (loop_versioning::implement_versioning_decisions): Same.
6123         * gimple-ssa-evrp-analyze.c
6124         (evrp_range_analyzer::record_ranges_from_phis): Same.
6125         * gimple-ssa-store-merging.c (split_store::split_store): Same.
6126         (count_multiple_uses): Same.
6127         (split_group): Same.
6128         (imm_store_chain_info::output_merged_store): Same.
6129         (pass_store_merging::process_store): Same.
6130         * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
6131         * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
6132         (is_max): Same.
6133         (alloca_call_type): Same.
6134         (pass_walloca::execute): Same.
6135         * gimple-streamer-in.c (input_phi): Same.
6136         (input_gimple_stmt): Same.
6137         * gimple-streamer.h: Same.
6138         * godump.c (go_force_record_alignment): Same.
6139         (go_format_type): Same.
6140         (go_output_type): Same.
6141         (go_output_fndecl): Same.
6142         (go_output_typedef): Same.
6143         (keyword_hash_init): Same.
6144         (find_dummy_types): Same.
6145         * graph.c (draw_cfg_nodes_no_loops): Same.
6146         (draw_cfg_nodes_for_loop): Same.
6147         * hard-reg-set.h (hard_reg_set_iter_next): Same.
6148         * hsa-brig.c: Same.
6149         * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
6150         * hsa-dump.c (dump_hsa_cfun): Same.
6151         * hsa-gen.c (gen_function_def_parameters): Same.
6152         * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
6153         * input.c (dump_line_table_statistics): Same.
6154         (test_lexer): Same.
6155         * input.h: Same.
6156         * internal-fn.c (get_multi_vector_move): Same.
6157         (expand_load_lanes_optab_fn): Same.
6158         (expand_GOMP_SIMT_ENTER_ALLOC): Same.
6159         (expand_GOMP_SIMT_EXIT): Same.
6160         (expand_GOMP_SIMT_LAST_LANE): Same.
6161         (expand_GOMP_SIMT_ORDERED_PRED): Same.
6162         (expand_GOMP_SIMT_VOTE_ANY): Same.
6163         (expand_GOMP_SIMT_XCHG_BFLY): Same.
6164         (expand_GOMP_SIMT_XCHG_IDX): Same.
6165         (expand_addsub_overflow): Same.
6166         (expand_neg_overflow): Same.
6167         (expand_mul_overflow): Same.
6168         (expand_call_mem_ref): Same.
6169         (expand_mask_load_optab_fn): Same.
6170         (expand_scatter_store_optab_fn): Same.
6171         (expand_gather_load_optab_fn): Same.
6172         * ipa-cp.c (ipa_get_parm_lattices): Same.
6173         (print_all_lattices): Same.
6174         (ignore_edge_p): Same.
6175         (build_toporder_info): Same.
6176         (free_toporder_info): Same.
6177         (push_node_to_stack): Same.
6178         (ipcp_lattice<valtype>::set_contains_variable): Same.
6179         (set_agg_lats_to_bottom): Same.
6180         (ipcp_bits_lattice::meet_with): Same.
6181         (set_single_call_flag): Same.
6182         (initialize_node_lattices): Same.
6183         (ipa_get_jf_ancestor_result): Same.
6184         (ipcp_verify_propagated_values): Same.
6185         (propagate_scalar_across_jump_function): Same.
6186         (propagate_context_across_jump_function): Same.
6187         (propagate_bits_across_jump_function): Same.
6188         (ipa_vr_operation_and_type_effects): Same.
6189         (propagate_vr_across_jump_function): Same.
6190         (set_check_aggs_by_ref): Same.
6191         (set_chain_of_aglats_contains_variable): Same.
6192         (merge_aggregate_lattices): Same.
6193         (agg_pass_through_permissible_p): Same.
6194         (propagate_aggs_across_jump_function): Same.
6195         (call_passes_through_thunk_p): Same.
6196         (propagate_constants_across_call): Same.
6197         (devirtualization_time_bonus): Same.
6198         (good_cloning_opportunity_p): Same.
6199         (context_independent_aggregate_values): Same.
6200         (gather_context_independent_values): Same.
6201         (perform_estimation_of_a_value): Same.
6202         (estimate_local_effects): Same.
6203         (value_topo_info<valtype>::add_val): Same.
6204         (add_all_node_vals_to_toposort): Same.
6205         (value_topo_info<valtype>::propagate_effects): Same.
6206         (ipcp_propagate_stage): Same.
6207         (ipcp_discover_new_direct_edges): Same.
6208         (same_node_or_its_all_contexts_clone_p): Same.
6209         (cgraph_edge_brings_value_p): Same.
6210         (gather_edges_for_value): Same.
6211         (create_specialized_node): Same.
6212         (find_more_scalar_values_for_callers_subset): Same.
6213         (find_more_contexts_for_caller_subset): Same.
6214         (copy_plats_to_inter): Same.
6215         (intersect_aggregates_with_edge): Same.
6216         (find_aggregate_values_for_callers_subset): Same.
6217         (cgraph_edge_brings_all_agg_vals_for_node): Same.
6218         (decide_about_value): Same.
6219         (decide_whether_version_node): Same.
6220         (spread_undeadness): Same.
6221         (identify_dead_nodes): Same.
6222         (ipcp_store_vr_results): Same.
6223         * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
6224         * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
6225         (redirect_to_unreachable): Same.
6226         (edge_set_predicate): Same.
6227         (evaluate_conditions_for_known_args): Same.
6228         (evaluate_properties_for_edge): Same.
6229         (ipa_fn_summary_t::duplicate): Same.
6230         (ipa_call_summary_t::duplicate): Same.
6231         (dump_ipa_call_summary): Same.
6232         (ipa_dump_fn_summary): Same.
6233         (eliminated_by_inlining_prob): Same.
6234         (set_cond_stmt_execution_predicate): Same.
6235         (set_switch_stmt_execution_predicate): Same.
6236         (compute_bb_predicates): Same.
6237         (will_be_nonconstant_expr_predicate): Same.
6238         (phi_result_unknown_predicate): Same.
6239         (analyze_function_body): Same.
6240         (compute_fn_summary): Same.
6241         (estimate_edge_devirt_benefit): Same.
6242         (estimate_edge_size_and_time): Same.
6243         (estimate_calls_size_and_time): Same.
6244         (estimate_node_size_and_time): Same.
6245         (remap_edge_change_prob): Same.
6246         (remap_edge_summaries): Same.
6247         (ipa_merge_fn_summary_after_inlining): Same.
6248         (ipa_fn_summary_generate): Same.
6249         (inline_read_section): Same.
6250         (ipa_fn_summary_read): Same.
6251         (ipa_fn_summary_write): Same.
6252         * ipa-fnsummary.h: Same.
6253         * ipa-hsa.c (ipa_hsa_read_section): Same.
6254         * ipa-icf-gimple.c (func_checker::compare_loops): Same.
6255         * ipa-icf.c (sem_function::param_used_p): Same.
6256         * ipa-inline-analysis.c (do_estimate_edge_time): Same.
6257         * ipa-inline.c (edge_badness): Same.
6258         (inline_small_functions): Same.
6259         * ipa-polymorphic-call.c
6260         (ipa_polymorphic_call_context::stream_out): Same.
6261         * ipa-predicate.c (predicate::remap_after_duplication): Same.
6262         (predicate::remap_after_inlining): Same.
6263         (predicate::stream_out): Same.
6264         * ipa-predicate.h: Same.
6265         * ipa-profile.c (ipa_profile_read_summary): Same.
6266         * ipa-prop.c (ipa_get_param_decl_index_1): Same.
6267         (count_formal_params): Same.
6268         (ipa_dump_param): Same.
6269         (ipa_alloc_node_params): Same.
6270         (ipa_print_node_jump_functions_for_edge): Same.
6271         (ipa_print_node_jump_functions): Same.
6272         (ipa_load_from_parm_agg): Same.
6273         (get_ancestor_addr_info): Same.
6274         (ipa_compute_jump_functions_for_edge): Same.
6275         (ipa_analyze_virtual_call_uses): Same.
6276         (ipa_analyze_stmt_uses): Same.
6277         (ipa_analyze_params_uses_in_bb): Same.
6278         (update_jump_functions_after_inlining): Same.
6279         (try_decrement_rdesc_refcount): Same.
6280         (ipa_impossible_devirt_target): Same.
6281         (update_indirect_edges_after_inlining): Same.
6282         (combine_controlled_uses_counters): Same.
6283         (ipa_edge_args_sum_t::duplicate): Same.
6284         (ipa_write_jump_function): Same.
6285         (ipa_write_indirect_edge_info): Same.
6286         (ipa_write_node_info): Same.
6287         (ipa_read_edge_info): Same.
6288         (ipa_prop_read_section): Same.
6289         (read_replacements_section): Same.
6290         * ipa-prop.h (ipa_get_param_count): Same.
6291         (ipa_get_param): Same.
6292         (ipa_get_type): Same.
6293         (ipa_get_param_move_cost): Same.
6294         (ipa_set_param_used): Same.
6295         (ipa_get_controlled_uses): Same.
6296         (ipa_set_controlled_uses): Same.
6297         (ipa_get_cs_argument_count): Same.
6298         * ipa-pure-const.c (analyze_function): Same.
6299         (pure_const_read_summary): Same.
6300         * ipa-ref.h: Same.
6301         * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
6302         * ipa-split.c (test_nonssa_use): Same.
6303         (dump_split_point): Same.
6304         (dominated_by_forbidden): Same.
6305         (split_part_set_ssa_name_p): Same.
6306         (find_split_points): Same.
6307         * ira-build.c (finish_loop_tree_nodes): Same.
6308         (low_pressure_loop_node_p): Same.
6309         * ira-color.c (ira_reuse_stack_slot): Same.
6310         * ira-int.h: Same.
6311         * ira.c (setup_reg_equiv): Same.
6312         (print_insn_chain): Same.
6313         (ira): Same.
6314         * loop-doloop.c (doloop_condition_get): Same.
6315         (add_test): Same.
6316         (record_reg_sets): Same.
6317         (doloop_optimize): Same.
6318         * loop-init.c (loop_optimizer_init): Same.
6319         (fix_loop_structure): Same.
6320         * loop-invariant.c (merge_identical_invariants): Same.
6321         (compute_always_reached): Same.
6322         (find_exits): Same.
6323         (may_assign_reg_p): Same.
6324         (find_invariants_bb): Same.
6325         (find_invariants_body): Same.
6326         (replace_uses): Same.
6327         (can_move_invariant_reg): Same.
6328         (free_inv_motion_data): Same.
6329         (move_single_loop_invariants): Same.
6330         (change_pressure): Same.
6331         (mark_ref_regs): Same.
6332         (calculate_loop_reg_pressure): Same.
6333         * loop-iv.c (biv_entry_hasher::equal): Same.
6334         (iv_extend_to_rtx_code): Same.
6335         (check_iv_ref_table_size): Same.
6336         (clear_iv_info): Same.
6337         (latch_dominating_def): Same.
6338         (iv_get_reaching_def): Same.
6339         (iv_constant): Same.
6340         (iv_subreg): Same.
6341         (iv_extend): Same.
6342         (iv_neg): Same.
6343         (iv_add): Same.
6344         (iv_mult): Same.
6345         (get_biv_step): Same.
6346         (record_iv): Same.
6347         (analyzed_for_bivness_p): Same.
6348         (record_biv): Same.
6349         (iv_analyze_biv): Same.
6350         (iv_analyze_expr): Same.
6351         (iv_analyze_def): Same.
6352         (iv_analyze_op): Same.
6353         (iv_analyze): Same.
6354         (iv_analyze_result): Same.
6355         (biv_p): Same.
6356         (eliminate_implied_conditions): Same.
6357         (simplify_using_initial_values): Same.
6358         (shorten_into_mode): Same.
6359         (canonicalize_iv_subregs): Same.
6360         (determine_max_iter): Same.
6361         (check_simple_exit): Same.
6362         (find_simple_exit): Same.
6363         (get_simple_loop_desc): Same.
6364         * loop-unroll.c (report_unroll): Same.
6365         (decide_unrolling): Same.
6366         (unroll_loops): Same.
6367         (loop_exit_at_end_p): Same.
6368         (decide_unroll_constant_iterations): Same.
6369         (unroll_loop_constant_iterations): Same.
6370         (compare_and_jump_seq): Same.
6371         (unroll_loop_runtime_iterations): Same.
6372         (decide_unroll_stupid): Same.
6373         (unroll_loop_stupid): Same.
6374         (referenced_in_one_insn_in_loop_p): Same.
6375         (reset_debug_uses_in_loop): Same.
6376         (analyze_iv_to_split_insn): Same.
6377         * lra-eliminations.c (lra_debug_elim_table): Same.
6378         (setup_can_eliminate): Same.
6379         (form_sum): Same.
6380         (lra_get_elimination_hard_regno): Same.
6381         (lra_eliminate_regs_1): Same.
6382         (eliminate_regs_in_insn): Same.
6383         (update_reg_eliminate): Same.
6384         (init_elimination): Same.
6385         (lra_eliminate): Same.
6386         * lra-int.h: Same.
6387         * lra-lives.c (initiate_live_solver): Same.
6388         * lra-remat.c (create_remat_bb_data): Same.
6389         * lra-spills.c (lra_spill): Same.
6390         * lra.c (lra_set_insn_recog_data): Same.
6391         (lra_set_used_insn_alternative_by_uid): Same.
6392         (init_reg_info): Same.
6393         (expand_reg_info): Same.
6394         * lto-cgraph.c (output_symtab): Same.
6395         (read_identifier): Same.
6396         (get_alias_symbol): Same.
6397         (input_node): Same.
6398         (input_varpool_node): Same.
6399         (input_ref): Same.
6400         (input_edge): Same.
6401         (input_cgraph_1): Same.
6402         (input_refs): Same.
6403         (input_symtab): Same.
6404         (input_offload_tables): Same.
6405         (output_cgraph_opt_summary): Same.
6406         (input_edge_opt_summary): Same.
6407         (input_cgraph_opt_section): Same.
6408         * lto-section-in.c (lto_free_raw_section_data): Same.
6409         (lto_create_simple_input_block): Same.
6410         (lto_free_function_in_decl_state_for_node): Same.
6411         * lto-streamer-in.c (lto_tag_check_set): Same.
6412         (lto_location_cache::revert_location_cache): Same.
6413         (lto_location_cache::input_location): Same.
6414         (lto_input_location): Same.
6415         (stream_input_location_now): Same.
6416         (lto_input_tree_ref): Same.
6417         (lto_input_eh_catch_list): Same.
6418         (input_eh_region): Same.
6419         (lto_init_eh): Same.
6420         (make_new_block): Same.
6421         (input_cfg): Same.
6422         (fixup_call_stmt_edges): Same.
6423         (input_struct_function_base): Same.
6424         (input_function): Same.
6425         (lto_read_body_or_constructor): Same.
6426         (lto_read_tree_1): Same.
6427         (lto_read_tree): Same.
6428         (lto_input_scc): Same.
6429         (lto_input_tree_1): Same.
6430         (lto_input_toplevel_asms): Same.
6431         (lto_input_mode_table): Same.
6432         (lto_reader_init): Same.
6433         (lto_data_in_create): Same.
6434         * lto-streamer-out.c (output_cfg): Same.
6435         * lto-streamer.h: Same.
6436         * modulo-sched.c (duplicate_insns_of_cycles): Same.
6437         (generate_prolog_epilog): Same.
6438         (mark_loop_unsched): Same.
6439         (dump_insn_location): Same.
6440         (loop_canon_p): Same.
6441         (sms_schedule): Same.
6442         * omp-expand.c (expand_omp_for_ordered_loops): Same.
6443         (expand_omp_for_generic): Same.
6444         (expand_omp_for_static_nochunk): Same.
6445         (expand_omp_for_static_chunk): Same.
6446         (expand_omp_simd): Same.
6447         (expand_omp_taskloop_for_inner): Same.
6448         (expand_oacc_for): Same.
6449         (expand_omp_atomic_pipeline): Same.
6450         (mark_loops_in_oacc_kernels_region): Same.
6451         * omp-offload.c (oacc_xform_loop): Same.
6452         * omp-simd-clone.c (simd_clone_adjust): Same.
6453         * optabs-query.c (get_traditional_extraction_insn): Same.
6454         * optabs.c (expand_vector_broadcast): Same.
6455         (expand_binop_directly): Same.
6456         (expand_twoval_unop): Same.
6457         (expand_twoval_binop): Same.
6458         (expand_unop_direct): Same.
6459         (emit_indirect_jump): Same.
6460         (emit_conditional_move): Same.
6461         (emit_conditional_neg_or_complement): Same.
6462         (emit_conditional_add): Same.
6463         (vector_compare_rtx): Same.
6464         (expand_vec_perm_1): Same.
6465         (expand_vec_perm_const): Same.
6466         (expand_vec_cond_expr): Same.
6467         (expand_vec_series_expr): Same.
6468         (maybe_emit_atomic_exchange): Same.
6469         (maybe_emit_sync_lock_test_and_set): Same.
6470         (expand_atomic_compare_and_swap): Same.
6471         (expand_atomic_load): Same.
6472         (expand_atomic_store): Same.
6473         (maybe_emit_op): Same.
6474         (valid_multiword_target_p): Same.
6475         (create_integer_operand): Same.
6476         (maybe_legitimize_operand_same_code): Same.
6477         (maybe_legitimize_operand): Same.
6478         (create_convert_operand_from_type): Same.
6479         (can_reuse_operands_p): Same.
6480         (maybe_legitimize_operands): Same.
6481         (maybe_gen_insn): Same.
6482         (maybe_expand_insn): Same.
6483         (maybe_expand_jump_insn): Same.
6484         (expand_insn): Same.
6485         * optabs.h (create_expand_operand): Same.
6486         (create_fixed_operand): Same.
6487         (create_output_operand): Same.
6488         (create_input_operand): Same.
6489         (create_convert_operand_to): Same.
6490         (create_convert_operand_from): Same.
6491         * optinfo.h: Same.
6492         * poly-int.h: Same.
6493         * predict.c (optimize_insn_for_speed_p): Same.
6494         (optimize_loop_for_size_p): Same.
6495         (optimize_loop_for_speed_p): Same.
6496         (optimize_loop_nest_for_speed_p): Same.
6497         (get_base_value): Same.
6498         (predicted_by_loop_heuristics_p): Same.
6499         (predict_extra_loop_exits): Same.
6500         (predict_loops): Same.
6501         (predict_paths_for_bb): Same.
6502         (predict_paths_leading_to): Same.
6503         (propagate_freq): Same.
6504         (pass_profile::execute): Same.
6505         * predict.h: Same.
6506         * profile-count.c (profile_count::differs_from_p): Same.
6507         (profile_probability::differs_lot_from_p): Same.
6508         * profile-count.h: Same.
6509         * profile.c (branch_prob): Same.
6510         * regrename.c (free_chain_data): Same.
6511         (mark_conflict): Same.
6512         (create_new_chain): Same.
6513         (merge_overlapping_regs): Same.
6514         (init_rename_info): Same.
6515         (merge_chains): Same.
6516         (regrename_analyze): Same.
6517         (regrename_do_replace): Same.
6518         (scan_rtx_reg): Same.
6519         (record_out_operands): Same.
6520         (build_def_use): Same.
6521         * regrename.h: Same.
6522         * reload.h: Same.
6523         * reload1.c (init_reload): Same.
6524         (maybe_fix_stack_asms): Same.
6525         (copy_reloads): Same.
6526         (count_pseudo): Same.
6527         (count_spilled_pseudo): Same.
6528         (find_reg): Same.
6529         (find_reload_regs): Same.
6530         (select_reload_regs): Same.
6531         (spill_hard_reg): Same.
6532         (fixup_eh_region_note): Same.
6533         (set_reload_reg): Same.
6534         (allocate_reload_reg): Same.
6535         (compute_reload_subreg_offset): Same.
6536         (reload_adjust_reg_for_icode): Same.
6537         (emit_input_reload_insns): Same.
6538         (emit_output_reload_insns): Same.
6539         (do_input_reload): Same.
6540         (inherit_piecemeal_p): Same.
6541         * rtl.h: Same.
6542         * sanopt.c (maybe_get_dominating_check): Same.
6543         (maybe_optimize_ubsan_ptr_ifn): Same.
6544         (can_remove_asan_check): Same.
6545         (maybe_optimize_asan_check_ifn): Same.
6546         (sanopt_optimize_walker): Same.
6547         * sched-deps.c (add_dependence_list): Same.
6548         (chain_to_prev_insn): Same.
6549         (add_insn_mem_dependence): Same.
6550         (create_insn_reg_set): Same.
6551         (maybe_extend_reg_info_p): Same.
6552         (sched_analyze_reg): Same.
6553         (sched_analyze_1): Same.
6554         (get_implicit_reg_pending_clobbers): Same.
6555         (chain_to_prev_insn_p): Same.
6556         (deps_analyze_insn): Same.
6557         (deps_start_bb): Same.
6558         (sched_free_deps): Same.
6559         (init_deps): Same.
6560         (init_deps_reg_last): Same.
6561         (free_deps): Same.
6562         * sched-ebb.c: Same.
6563         * sched-int.h: Same.
6564         * sched-rgn.c (add_branch_dependences): Same.
6565         (concat_insn_mem_list): Same.
6566         (deps_join): Same.
6567         (sched_rgn_compute_dependencies): Same.
6568         * sel-sched-ir.c (reset_target_context): Same.
6569         (copy_deps_context): Same.
6570         (init_id_from_df): Same.
6571         (has_dependence_p): Same.
6572         (change_loops_latches): Same.
6573         (bb_top_order_comparator): Same.
6574         (make_region_from_loop_preheader): Same.
6575         (sel_init_pipelining): Same.
6576         (get_loop_nest_for_rgn): Same.
6577         (make_regions_from_the_rest): Same.
6578         (sel_is_loop_preheader_p): Same.
6579         * sel-sched-ir.h (inner_loop_header_p): Same.
6580         (get_all_loop_exits): Same.
6581         * selftest.h: Same.
6582         * sese.c (sese_build_liveouts): Same.
6583         (sese_insert_phis_for_liveouts): Same.
6584         * sese.h (defined_in_sese_p): Same.
6585         * sreal.c (sreal::stream_out): Same.
6586         * sreal.h: Same.
6587         * streamer-hooks.h: Same.
6588         * target-globals.c (save_target_globals): Same.
6589         * target-globals.h: Same.
6590         * target.def: Same.
6591         * target.h: Same.
6592         * targhooks.c (default_has_ifunc_p): Same.
6593         (default_empty_mask_is_expensive): Same.
6594         (default_init_cost): Same.
6595         * targhooks.h: Same.
6596         * toplev.c: Same.
6597         * tree-affine.c (aff_combination_mult): Same.
6598         (aff_combination_expand): Same.
6599         (aff_combination_constant_multiple_p): Same.
6600         * tree-affine.h: Same.
6601         * tree-cfg.c (build_gimple_cfg): Same.
6602         (replace_loop_annotate_in_block): Same.
6603         (replace_uses_by): Same.
6604         (remove_bb): Same.
6605         (dump_cfg_stats): Same.
6606         (gimple_duplicate_sese_region): Same.
6607         (gimple_duplicate_sese_tail): Same.
6608         (move_block_to_fn): Same.
6609         (replace_block_vars_by_duplicates): Same.
6610         (move_sese_region_to_fn): Same.
6611         (print_loops_bb): Same.
6612         (print_loop): Same.
6613         (print_loops): Same.
6614         (debug): Same.
6615         (debug_loops): Same.
6616         * tree-cfg.h: Same.
6617         * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
6618         (chrec_fold_multiply_poly_poly): Same.
6619         (chrec_evaluate): Same.
6620         (chrec_component_in_loop_num): Same.
6621         (reset_evolution_in_loop): Same.
6622         (is_multivariate_chrec): Same.
6623         (chrec_contains_symbols): Same.
6624         (nb_vars_in_chrec): Same.
6625         (chrec_convert_1): Same.
6626         (chrec_convert_aggressive): Same.
6627         * tree-chrec.h: Same.
6628         * tree-core.h: Same.
6629         * tree-data-ref.c (dump_data_dependence_relation): Same.
6630         (canonicalize_base_object_address): Same.
6631         (data_ref_compare_tree): Same.
6632         (prune_runtime_alias_test_list): Same.
6633         (get_segment_min_max): Same.
6634         (create_intersect_range_checks): Same.
6635         (conflict_fn_no_dependence): Same.
6636         (object_address_invariant_in_loop_p): Same.
6637         (analyze_ziv_subscript): Same.
6638         (analyze_siv_subscript_cst_affine): Same.
6639         (analyze_miv_subscript): Same.
6640         (analyze_overlapping_iterations): Same.
6641         (build_classic_dist_vector_1): Same.
6642         (add_other_self_distances): Same.
6643         (same_access_functions): Same.
6644         (build_classic_dir_vector): Same.
6645         (subscript_dependence_tester_1): Same.
6646         (subscript_dependence_tester): Same.
6647         (access_functions_are_affine_or_constant_p): Same.
6648         (get_references_in_stmt): Same.
6649         (loop_nest_has_data_refs): Same.
6650         (graphite_find_data_references_in_stmt): Same.
6651         (find_data_references_in_bb): Same.
6652         (get_base_for_alignment): Same.
6653         (find_loop_nest_1): Same.
6654         (find_loop_nest): Same.
6655         * tree-data-ref.h (dr_alignment): Same.
6656         (ddr_dependence_level): Same.
6657         * tree-if-conv.c (fold_build_cond_expr): Same.
6658         (add_to_predicate_list): Same.
6659         (add_to_dst_predicate_list): Same.
6660         (phi_convertible_by_degenerating_args): Same.
6661         (idx_within_array_bound): Same.
6662         (all_preds_critical_p): Same.
6663         (pred_blocks_visited_p): Same.
6664         (predicate_bbs): Same.
6665         (build_region): Same.
6666         (if_convertible_loop_p_1): Same.
6667         (is_cond_scalar_reduction): Same.
6668         (predicate_scalar_phi): Same.
6669         (remove_conditions_and_labels): Same.
6670         (combine_blocks): Same.
6671         (version_loop_for_if_conversion): Same.
6672         (versionable_outer_loop_p): Same.
6673         (ifcvt_local_dce): Same.
6674         (tree_if_conversion): Same.
6675         (pass_if_conversion::gate): Same.
6676         * tree-if-conv.h: Same.
6677         * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
6678         * tree-loop-distribution.c (bb_top_order_cmp): Same.
6679         (free_rdg): Same.
6680         (stmt_has_scalar_dependences_outside_loop): Same.
6681         (copy_loop_before): Same.
6682         (create_bb_after_loop): Same.
6683         (const_with_all_bytes_same): Same.
6684         (generate_memset_builtin): Same.
6685         (generate_memcpy_builtin): Same.
6686         (destroy_loop): Same.
6687         (build_rdg_partition_for_vertex): Same.
6688         (compute_access_range): Same.
6689         (data_ref_segment_size): Same.
6690         (latch_dominated_by_data_ref): Same.
6691         (compute_alias_check_pairs): Same.
6692         (fuse_memset_builtins): Same.
6693         (finalize_partitions): Same.
6694         (find_seed_stmts_for_distribution): Same.
6695         (prepare_perfect_loop_nest): Same.
6696         * tree-parloops.c (lambda_transform_legal_p): Same.
6697         (loop_parallel_p): Same.
6698         (reduc_stmt_res): Same.
6699         (add_field_for_name): Same.
6700         (create_call_for_reduction_1): Same.
6701         (replace_uses_in_bb_by): Same.
6702         (transform_to_exit_first_loop_alt): Same.
6703         (try_transform_to_exit_first_loop_alt): Same.
6704         (transform_to_exit_first_loop): Same.
6705         (num_phis): Same.
6706         (gen_parallel_loop): Same.
6707         (gather_scalar_reductions): Same.
6708         (get_omp_data_i_param): Same.
6709         (try_create_reduction_list): Same.
6710         (oacc_entry_exit_single_gang): Same.
6711         (parallelize_loops): Same.
6712         * tree-pass.h: Same.
6713         * tree-predcom.c (determine_offset): Same.
6714         (last_always_executed_block): Same.
6715         (split_data_refs_to_components): Same.
6716         (suitable_component_p): Same.
6717         (valid_initializer_p): Same.
6718         (find_looparound_phi): Same.
6719         (insert_looparound_copy): Same.
6720         (add_looparound_copies): Same.
6721         (determine_roots_comp): Same.
6722         (predcom_tmp_var): Same.
6723         (initialize_root_vars): Same.
6724         (initialize_root_vars_store_elim_1): Same.
6725         (initialize_root_vars_store_elim_2): Same.
6726         (finalize_eliminated_stores): Same.
6727         (initialize_root_vars_lm): Same.
6728         (remove_stmt): Same.
6729         (determine_unroll_factor): Same.
6730         (execute_pred_commoning_cbck): Same.
6731         (base_names_in_chain_on): Same.
6732         (combine_chains): Same.
6733         (pcom_stmt_dominates_stmt_p): Same.
6734         (try_combine_chains): Same.
6735         (prepare_initializers_chain_store_elim): Same.
6736         (prepare_initializers_chain): Same.
6737         (prepare_initializers): Same.
6738         (prepare_finalizers_chain): Same.
6739         (prepare_finalizers): Same.
6740         (insert_init_seqs): Same.
6741         * tree-scalar-evolution.c (loop_phi_node_p): Same.
6742         (compute_overall_effect_of_inner_loop): Same.
6743         (add_to_evolution_1): Same.
6744         (add_to_evolution): Same.
6745         (follow_ssa_edge_binary): Same.
6746         (follow_ssa_edge_expr): Same.
6747         (backedge_phi_arg_p): Same.
6748         (follow_ssa_edge_in_condition_phi_branch): Same.
6749         (follow_ssa_edge_in_condition_phi): Same.
6750         (follow_ssa_edge_inner_loop_phi): Same.
6751         (follow_ssa_edge): Same.
6752         (analyze_evolution_in_loop): Same.
6753         (analyze_initial_condition): Same.
6754         (interpret_loop_phi): Same.
6755         (interpret_condition_phi): Same.
6756         (interpret_rhs_expr): Same.
6757         (interpret_expr): Same.
6758         (interpret_gimple_assign): Same.
6759         (analyze_scalar_evolution_1): Same.
6760         (analyze_scalar_evolution): Same.
6761         (analyze_scalar_evolution_for_address_of): Same.
6762         (get_instantiated_value_entry): Same.
6763         (loop_closed_phi_def): Same.
6764         (instantiate_scev_name): Same.
6765         (instantiate_scev_poly): Same.
6766         (instantiate_scev_binary): Same.
6767         (instantiate_scev_convert): Same.
6768         (instantiate_scev_not): Same.
6769         (instantiate_scev_r): Same.
6770         (instantiate_scev): Same.
6771         (resolve_mixers): Same.
6772         (initialize_scalar_evolutions_analyzer): Same.
6773         (scev_reset_htab): Same.
6774         (scev_reset): Same.
6775         (derive_simple_iv_with_niters): Same.
6776         (simple_iv_with_niters): Same.
6777         (expression_expensive_p): Same.
6778         (final_value_replacement_loop): Same.
6779         * tree-scalar-evolution.h (block_before_loop): Same.
6780         * tree-ssa-address.h: Same.
6781         * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
6782         * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
6783         (record_edge_info): Same.
6784         * tree-ssa-live.c (var_map_base_fini): Same.
6785         (remove_unused_locals): Same.
6786         * tree-ssa-live.h: Same.
6787         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
6788         (pass_ch_vect::execute): Same.
6789         (pass_ch::process_loop_p): Same.
6790         * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
6791         (movement_possibility): Same.
6792         (outermost_invariant_loop): Same.
6793         (stmt_cost): Same.
6794         (determine_max_movement): Same.
6795         (invariantness_dom_walker::before_dom_children): Same.
6796         (move_computations): Same.
6797         (may_move_till): Same.
6798         (force_move_till_op): Same.
6799         (force_move_till): Same.
6800         (memref_free): Same.
6801         (record_mem_ref_loc): Same.
6802         (set_ref_stored_in_loop): Same.
6803         (mark_ref_stored): Same.
6804         (sort_bbs_in_loop_postorder_cmp): Same.
6805         (sort_locs_in_loop_postorder_cmp): Same.
6806         (analyze_memory_references): Same.
6807         (mem_refs_may_alias_p): Same.
6808         (find_ref_loc_in_loop_cmp): Same.
6809         (rewrite_mem_ref_loc::operator): Same.
6810         (first_mem_ref_loc_1::operator): Same.
6811         (sm_set_flag_if_changed::operator): Same.
6812         (execute_sm_if_changed_flag_set): Same.
6813         (execute_sm): Same.
6814         (hoist_memory_references): Same.
6815         (ref_always_accessed::operator): Same.
6816         (refs_independent_p): Same.
6817         (record_dep_loop): Same.
6818         (ref_indep_loop_p_1): Same.
6819         (ref_indep_loop_p): Same.
6820         (can_sm_ref_p): Same.
6821         (find_refs_for_sm): Same.
6822         (loop_suitable_for_sm): Same.
6823         (store_motion_loop): Same.
6824         (store_motion): Same.
6825         (fill_always_executed_in): Same.
6826         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
6827         (estimated_unrolled_size): Same.
6828         (loop_edge_to_cancel): Same.
6829         (remove_exits_and_undefined_stmts): Same.
6830         (remove_redundant_iv_tests): Same.
6831         (unloop_loops): Same.
6832         (estimated_peeled_sequence_size): Same.
6833         (try_peel_loop): Same.
6834         (canonicalize_loop_induction_variables): Same.
6835         (canonicalize_induction_variables): Same.
6836         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
6837         (name_info): Same.
6838         (stmt_after_inc_pos): Same.
6839         (contains_abnormal_ssa_name_p): Same.
6840         (niter_for_exit): Same.
6841         (find_bivs): Same.
6842         (mark_bivs): Same.
6843         (find_givs_in_bb): Same.
6844         (find_induction_variables): Same.
6845         (find_interesting_uses_cond): Same.
6846         (outermost_invariant_loop_for_expr): Same.
6847         (idx_find_step): Same.
6848         (add_candidate_1): Same.
6849         (add_iv_candidate_derived_from_uses): Same.
6850         (alloc_use_cost_map): Same.
6851         (prepare_decl_rtl): Same.
6852         (generic_predict_doloop_p): Same.
6853         (computation_cost): Same.
6854         (determine_common_wider_type): Same.
6855         (get_computation_aff_1): Same.
6856         (get_use_type): Same.
6857         (determine_group_iv_cost_address): Same.
6858         (iv_period): Same.
6859         (difference_cannot_overflow_p): Same.
6860         (may_eliminate_iv): Same.
6861         (determine_set_costs): Same.
6862         (cheaper_cost_pair): Same.
6863         (compare_cost_pair): Same.
6864         (iv_ca_cand_for_group): Same.
6865         (iv_ca_recount_cost): Same.
6866         (iv_ca_set_remove_invs): Same.
6867         (iv_ca_set_no_cp): Same.
6868         (iv_ca_set_add_invs): Same.
6869         (iv_ca_set_cp): Same.
6870         (iv_ca_add_group): Same.
6871         (iv_ca_cost): Same.
6872         (iv_ca_compare_deps): Same.
6873         (iv_ca_delta_reverse): Same.
6874         (iv_ca_delta_commit): Same.
6875         (iv_ca_cand_used_p): Same.
6876         (iv_ca_delta_free): Same.
6877         (iv_ca_new): Same.
6878         (iv_ca_free): Same.
6879         (iv_ca_dump): Same.
6880         (iv_ca_extend): Same.
6881         (iv_ca_narrow): Same.
6882         (iv_ca_prune): Same.
6883         (cheaper_cost_with_cand): Same.
6884         (iv_ca_replace): Same.
6885         (try_add_cand_for): Same.
6886         (get_initial_solution): Same.
6887         (try_improve_iv_set): Same.
6888         (find_optimal_iv_set_1): Same.
6889         (create_new_iv): Same.
6890         (rewrite_use_compare): Same.
6891         (remove_unused_ivs): Same.
6892         (determine_scaling_factor): Same.
6893         * tree-ssa-loop-ivopts.h: Same.
6894         * tree-ssa-loop-manip.c (create_iv): Same.
6895         (compute_live_loop_exits): Same.
6896         (add_exit_phi): Same.
6897         (add_exit_phis): Same.
6898         (find_uses_to_rename_use): Same.
6899         (find_uses_to_rename_def): Same.
6900         (find_uses_to_rename_in_loop): Same.
6901         (rewrite_into_loop_closed_ssa): Same.
6902         (check_loop_closed_ssa_bb): Same.
6903         (split_loop_exit_edge): Same.
6904         (ip_end_pos): Same.
6905         (ip_normal_pos): Same.
6906         (copy_phi_node_args): Same.
6907         (gimple_duplicate_loop_to_header_edge): Same.
6908         (can_unroll_loop_p): Same.
6909         (determine_exit_conditions): Same.
6910         (scale_dominated_blocks_in_loop): Same.
6911         (niter_for_unrolled_loop): Same.
6912         (tree_transform_and_unroll_loop): Same.
6913         (rewrite_all_phi_nodes_with_iv): Same.
6914         * tree-ssa-loop-manip.h: Same.
6915         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
6916         (number_of_iterations_ne): Same.
6917         (assert_no_overflow_lt): Same.
6918         (assert_loop_rolls_lt): Same.
6919         (number_of_iterations_lt): Same.
6920         (adjust_cond_for_loop_until_wrap): Same.
6921         (tree_simplify_using_condition): Same.
6922         (simplify_using_initial_conditions): Same.
6923         (simplify_using_outer_evolutions): Same.
6924         (loop_only_exit_p): Same.
6925         (ssa_defined_by_minus_one_stmt_p): Same.
6926         (number_of_iterations_popcount): Same.
6927         (number_of_iterations_exit): Same.
6928         (find_loop_niter): Same.
6929         (finite_loop_p): Same.
6930         (chain_of_csts_start): Same.
6931         (get_val_for): Same.
6932         (loop_niter_by_eval): Same.
6933         (derive_constant_upper_bound_ops): Same.
6934         (do_warn_aggressive_loop_optimizations): Same.
6935         (record_estimate): Same.
6936         (get_cst_init_from_scev): Same.
6937         (record_nonwrapping_iv): Same.
6938         (idx_infer_loop_bounds): Same.
6939         (infer_loop_bounds_from_ref): Same.
6940         (infer_loop_bounds_from_array): Same.
6941         (infer_loop_bounds_from_pointer_arith): Same.
6942         (infer_loop_bounds_from_signedness): Same.
6943         (bound_index): Same.
6944         (discover_iteration_bound_by_body_walk): Same.
6945         (maybe_lower_iteration_bound): Same.
6946         (estimate_numbers_of_iterations): Same.
6947         (estimated_loop_iterations): Same.
6948         (estimated_loop_iterations_int): Same.
6949         (max_loop_iterations): Same.
6950         (max_loop_iterations_int): Same.
6951         (likely_max_loop_iterations): Same.
6952         (likely_max_loop_iterations_int): Same.
6953         (estimated_stmt_executions_int): Same.
6954         (max_stmt_executions): Same.
6955         (likely_max_stmt_executions): Same.
6956         (estimated_stmt_executions): Same.
6957         (stmt_dominates_stmt_p): Same.
6958         (nowrap_type_p): Same.
6959         (loop_exits_before_overflow): Same.
6960         (scev_var_range_cant_overflow): Same.
6961         (scev_probably_wraps_p): Same.
6962         (free_numbers_of_iterations_estimates): Same.
6963         * tree-ssa-loop-niter.h: Same.
6964         * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
6965         (idx_analyze_ref): Same.
6966         (analyze_ref): Same.
6967         (gather_memory_references_ref): Same.
6968         (mark_nontemporal_store): Same.
6969         (emit_mfence_after_loop): Same.
6970         (may_use_storent_in_loop_p): Same.
6971         (mark_nontemporal_stores): Same.
6972         (should_unroll_loop_p): Same.
6973         (volume_of_dist_vector): Same.
6974         (add_subscript_strides): Same.
6975         (self_reuse_distance): Same.
6976         (insn_to_prefetch_ratio_too_small_p): Same.
6977         * tree-ssa-loop-split.c (split_at_bb_p): Same.
6978         (patch_loop_exit): Same.
6979         (find_or_create_guard_phi): Same.
6980         (easy_exit_values): Same.
6981         (connect_loop_phis): Same.
6982         (connect_loops): Same.
6983         (compute_new_first_bound): Same.
6984         (split_loop): Same.
6985         (tree_ssa_split_loops): Same.
6986         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
6987         (is_maybe_undefined): Same.
6988         (tree_may_unswitch_on): Same.
6989         (simplify_using_entry_checks): Same.
6990         (tree_unswitch_single_loop): Same.
6991         (tree_unswitch_loop): Same.
6992         (tree_unswitch_outer_loop): Same.
6993         (empty_bb_without_guard_p): Same.
6994         (used_outside_loop_p): Same.
6995         (get_vop_from_header): Same.
6996         (hoist_guard): Same.
6997         * tree-ssa-loop.c (gate_oacc_kernels): Same.
6998         (get_lsm_tmp_name): Same.
6999         * tree-ssa-loop.h: Same.
7000         * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
7001         (build_and_add_sum): Same.
7002         (no_side_effect_bb): Same.
7003         (get_ops): Same.
7004         (linearize_expr): Same.
7005         (should_break_up_subtract): Same.
7006         (linearize_expr_tree): Same.
7007         * tree-ssa-scopedtables.c: Same.
7008         * tree-ssa-scopedtables.h: Same.
7009         * tree-ssa-structalias.c (condense_visit): Same.
7010         (label_visit): Same.
7011         (dump_pred_graph): Same.
7012         (perform_var_substitution): Same.
7013         (move_complex_constraints): Same.
7014         (remove_preds_and_fake_succs): Same.
7015         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
7016         (determine_bb_domination_status): Same.
7017         (duplicate_thread_path): Same.
7018         (thread_through_all_blocks): Same.
7019         * tree-ssa-threadupdate.h: Same.
7020         * tree-streamer-in.c (streamer_read_string_cst): Same.
7021         (input_identifier): Same.
7022         (unpack_ts_type_common_value_fields): Same.
7023         (unpack_ts_block_value_fields): Same.
7024         (unpack_ts_translation_unit_decl_value_fields): Same.
7025         (unpack_ts_omp_clause_value_fields): Same.
7026         (streamer_read_tree_bitfields): Same.
7027         (streamer_alloc_tree): Same.
7028         (lto_input_ts_common_tree_pointers): Same.
7029         (lto_input_ts_vector_tree_pointers): Same.
7030         (lto_input_ts_poly_tree_pointers): Same.
7031         (lto_input_ts_complex_tree_pointers): Same.
7032         (lto_input_ts_decl_minimal_tree_pointers): Same.
7033         (lto_input_ts_decl_common_tree_pointers): Same.
7034         (lto_input_ts_decl_non_common_tree_pointers): Same.
7035         (lto_input_ts_decl_with_vis_tree_pointers): Same.
7036         (lto_input_ts_field_decl_tree_pointers): Same.
7037         (lto_input_ts_function_decl_tree_pointers): Same.
7038         (lto_input_ts_type_common_tree_pointers): Same.
7039         (lto_input_ts_type_non_common_tree_pointers): Same.
7040         (lto_input_ts_list_tree_pointers): Same.
7041         (lto_input_ts_vec_tree_pointers): Same.
7042         (lto_input_ts_exp_tree_pointers): Same.
7043         (lto_input_ts_block_tree_pointers): Same.
7044         (lto_input_ts_binfo_tree_pointers): Same.
7045         (lto_input_ts_constructor_tree_pointers): Same.
7046         (lto_input_ts_omp_clause_tree_pointers): Same.
7047         (streamer_read_tree_body): Same.
7048         * tree-streamer.h: Same.
7049         * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
7050         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
7051         (vect_analyze_possibly_independent_ddr): Same.
7052         (vect_analyze_data_ref_dependence): Same.
7053         (vect_compute_data_ref_alignment): Same.
7054         (vect_enhance_data_refs_alignment): Same.
7055         (vect_analyze_data_ref_access): Same.
7056         (vect_check_gather_scatter): Same.
7057         (vect_find_stmt_data_reference): Same.
7058         (vect_create_addr_base_for_vector_ref): Same.
7059         (vect_setup_realignment): Same.
7060         (vect_supportable_dr_alignment): Same.
7061         * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
7062         (adjust_phi_and_debug_stmts): Same.
7063         (vect_set_loop_mask): Same.
7064         (add_preheader_seq): Same.
7065         (vect_maybe_permute_loop_masks): Same.
7066         (vect_set_loop_masks_directly): Same.
7067         (vect_set_loop_condition_masked): Same.
7068         (vect_set_loop_condition_unmasked): Same.
7069         (slpeel_duplicate_current_defs_from_edges): Same.
7070         (slpeel_add_loop_guard): Same.
7071         (slpeel_can_duplicate_loop_p): Same.
7072         (create_lcssa_for_virtual_phi): Same.
7073         (iv_phi_p): Same.
7074         (vect_update_ivs_after_vectorizer): Same.
7075         (vect_gen_vector_loop_niters_mult_vf): Same.
7076         (slpeel_update_phi_nodes_for_loops): Same.
7077         (slpeel_update_phi_nodes_for_guard1): Same.
7078         (find_guard_arg): Same.
7079         (slpeel_update_phi_nodes_for_guard2): Same.
7080         (slpeel_update_phi_nodes_for_lcssa): Same.
7081         (vect_do_peeling): Same.
7082         (vect_create_cond_for_alias_checks): Same.
7083         (vect_loop_versioning): Same.
7084         * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
7085         (vect_inner_phi_in_double_reduction_p): Same.
7086         (vect_analyze_scalar_cycles_1): Same.
7087         (vect_fixup_scalar_cycles_with_patterns): Same.
7088         (vect_get_loop_niters): Same.
7089         (bb_in_loop_p): Same.
7090         (vect_get_max_nscalars_per_iter): Same.
7091         (vect_verify_full_masking): Same.
7092         (vect_compute_single_scalar_iteration_cost): Same.
7093         (vect_analyze_loop_form_1): Same.
7094         (vect_analyze_loop_form): Same.
7095         (vect_active_double_reduction_p): Same.
7096         (vect_analyze_loop_operations): Same.
7097         (neutral_op_for_slp_reduction): Same.
7098         (vect_is_simple_reduction): Same.
7099         (vect_model_reduction_cost): Same.
7100         (get_initial_def_for_reduction): Same.
7101         (get_initial_defs_for_reduction): Same.
7102         (vect_create_epilog_for_reduction): Same.
7103         (vectorize_fold_left_reduction): Same.
7104         (vectorizable_reduction): Same.
7105         (vectorizable_induction): Same.
7106         (vectorizable_live_operation): Same.
7107         (loop_niters_no_overflow): Same.
7108         (vect_get_loop_mask): Same.
7109         (vect_transform_loop_stmt): Same.
7110         (vect_transform_loop): Same.
7111         * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
7112         (vect_determine_precisions): Same.
7113         (vect_pattern_recog_1): Same.
7114         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
7115         * tree-vect-stmts.c (stmt_vectype): Same.
7116         (process_use): Same.
7117         (vect_init_vector_1): Same.
7118         (vect_truncate_gather_scatter_offset): Same.
7119         (get_group_load_store_type): Same.
7120         (vect_build_gather_load_calls): Same.
7121         (vect_get_strided_load_store_ops): Same.
7122         (vectorizable_simd_clone_call): Same.
7123         (vectorizable_store): Same.
7124         (permute_vec_elements): Same.
7125         (vectorizable_load): Same.
7126         (vect_transform_stmt): Same.
7127         (supportable_widening_operation): Same.
7128         * tree-vectorizer.c (vec_info::replace_stmt): Same.
7129         (vec_info::free_stmt_vec_info): Same.
7130         (vect_free_loop_info_assumptions): Same.
7131         (vect_loop_vectorized_call): Same.
7132         (set_uid_loop_bbs): Same.
7133         (vectorize_loops): Same.
7134         * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
7135         * tree.c (add_tree_to_fld_list): Same.
7136         (fld_type_variant_equal_p): Same.
7137         (fld_decl_context): Same.
7138         (fld_incomplete_type_of): Same.
7139         (free_lang_data_in_binfo): Same.
7140         (need_assembler_name_p): Same.
7141         (find_decls_types_r): Same.
7142         (get_eh_types_for_runtime): Same.
7143         (find_decls_types_in_eh_region): Same.
7144         (find_decls_types_in_node): Same.
7145         (assign_assembler_name_if_needed): Same.
7146         * value-prof.c (stream_out_histogram_value): Same.
7147         * value-prof.h: Same.
7148         * var-tracking.c (use_narrower_mode): Same.
7149         (prepare_call_arguments): Same.
7150         (vt_expand_loc_callback): Same.
7151         (resolve_expansions_pending_recursion): Same.
7152         (vt_expand_loc): Same.
7153         * varasm.c (const_hash_1): Same.
7154         (compare_constant): Same.
7155         (tree_output_constant_def): Same.
7156         (simplify_subtraction): Same.
7157         (get_pool_constant): Same.
7158         (output_constant_pool_2): Same.
7159         (output_constant_pool_1): Same.
7160         (mark_constants_in_pattern): Same.
7161         (mark_constant_pool): Same.
7162         (get_section_anchor): Same.
7163         * vr-values.c (compare_range_with_value): Same.
7164         (vr_values::extract_range_from_phi_node): Same.
7165         * vr-values.h: Same.
7166         * web.c (unionfind_union): Same.
7167         * wide-int.h: Same.
7169 2019-07-09  Martin Sebor  <msebor@redhat.com>
7171         PR c++/61339
7172         * align.h: Change class-key from class to struct and vice versa
7173         to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
7174         * alloc-pool.h: Same.
7175         * asan.c (shadow_mem_size): Same.
7176         * auto-profile.c: Same.
7177         * basic-block.h: Same.
7178         * bitmap.h: Same.
7179         * cfgexpand.c (set_rtl): Same.
7180         (expand_one_stack_var_at): Same.
7181         * cfghooks.h: Same.
7182         * cfgloop.h: Same.
7183         * cgraph.h: Same.
7184         * config/i386/i386.h: Same.
7185         * df-problems.c (df_print_bb_index): Same.
7186         * df-scan.c: Same.
7187         * df.h (df_single_use): Same.
7188         * diagnostic-show-locus.c (layout::print_annotation_line): Same.
7189         (layout::annotation_line_showed_range_p): Same.
7190         (get_printed_columns): Same.
7191         (correction::ensure_terminated): Same.
7192         (line_corrections::~line_corrections): Same.
7193         * dojump.h: Same.
7194         * dse.c: Same.
7195         * dump-context.h: Same.
7196         * dumpfile.h: Same.
7197         * dwarf2out.c: Same.
7198         * edit-context.c: Same.
7199         * fibonacci_heap.c (test_union_of_equal_heaps): Same.
7200         * flags.h: Same.
7201         * function.c (assign_stack_local): Same.
7202         * function.h: Same.
7203         * gcc.c: Same.
7204         * gcov.c (block_info::block_info): Same.
7205         * genattrtab.c: Same.
7206         * genextract.c: Same.
7207         * genmatch.c (comparison_code_p): Same.
7208         (id_base::id_base): Same.
7209         (decision_tree::print): Same.
7210         * genoutput.c: Same.
7211         * genpreds.c (write_one_predicate_function): Same.
7212         * genrecog.c (validate_pattern): Same.
7213         (find_operand_positions): Same.
7214         (optimize_subroutine_group): Same.
7215         (merge_pattern_transition::merge_pattern_transition): Same.
7216         (merge_pattern_info::merge_pattern_info): Same.
7217         (merge_state_result::merge_state_result): Same.
7218         (merge_into_state): Same.
7219         * gensupport.c: Same.
7220         * gensupport.h: Same.
7221         * ggc-common.c (init_ggc_heuristics): Same.
7222         * ggc-tests.c (test_union): Same.
7223         * gimple-loop-interchange.cc (dump_induction): Same.
7224         * gimple-loop-versioning.cc: Same.
7225         * gimple-match.h (gimple_match_cond::any_else): Same.
7226         * gimple-ssa-backprop.c: Same.
7227         * gimple-ssa-sprintf.c: Same.
7228         * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
7229         Same.
7230         (store_immediate_info::store_immediate_info): Same.
7231         (merged_store_group::apply_stores): Same.
7232         (get_location_for_stmts): Same.
7233         * gimple-ssa-strength-reduction.c: Same.
7234         * gimple-ssa-warn-alloca.c: Same.
7235         * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
7236         * godump.c (go_type_decl): Same.
7237         * hash-map-tests.c (test_map_of_strings_to_int): Same.
7238         * hash-map.h: Same.
7239         * hash-set-tests.c (test_set_of_strings): Same.
7240         * hsa-brig.c: Same.
7241         * hsa-common.h: Same.
7242         * hsa-gen.c (transformable_switch_to_sbr_p): Same.
7243         * input.c (assert_loceq): Same.
7244         * input.h: Same.
7245         * ipa-cp.c: Same.
7246         * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
7247         * ipa-fnsummary.h: Same.
7248         * ipa-inline.h: Same.
7249         * ipa-prop.h: Same.
7250         * ipa-split.c (visit_bb): Same.
7251         * ira-int.h (minmax_set_iter_next): Same.
7252         * loop-invariant.c: Same.
7253         * loop-iv.c: Same.
7254         * lra-eliminations.c: Same.
7255         * lra-int.h: Same.
7256         * lra-lives.c (mark_regno_dead): Same.
7257         * lra-remat.c: Same.
7258         * lra-spills.c: Same.
7259         * lto-streamer.h: Same.
7260         * mem-stats.h: Same.
7261         * omp-grid.c (omp_grid_lastprivate_predicate): Same.
7262         * omp-low.c (omp_clause_aligned_alignment): Same.
7263         * optabs-query.h (get_vcond_eq_icode): Same.
7264         * optabs.h: Same.
7265         * opts.c (wrap_help): Same.
7266         * poly-int.h: Same.
7267         * predict.c (predict_paths_leading_to_edge): Same.
7268         * pretty-print.h: Same.
7269         * profile-count.h: Same.
7270         * read-md.h: Same.
7271         * read-rtl-function.c: Same.
7272         * ree.c: Same.
7273         * reginfo.c: Same.
7274         * regrename.c: Same.
7275         * regrename.h: Same.
7276         * reload.h: Same.
7277         * rtl-iter.h: Same.
7278         * rtl.h (costs_add_n_insns): Same.
7279         * sanopt.c: Same.
7280         * sched-int.h: Same.
7281         * sel-sched-ir.h: Same.
7282         * selftest.h: Same.
7283         * sese.h (vec_find): Same.
7284         * stmt.c: Same.
7285         * target-globals.h: Same.
7286         * tree-affine.c (aff_combination_find_elt): Same.
7287         * tree-affine.h: Same.
7288         * tree-data-ref.h: Same.
7289         * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
7290         * tree-predcom.c: Same.
7291         * tree-scalar-evolution.c (find_var_scev_info): Same.
7292         * tree-ssa-alias.h: Same.
7293         * tree-ssa-ccp.c: Same.
7294         * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
7295         * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
7296         (rewrite_mem_refs): Same.
7297         (execute_sm_if_changed): Same.
7298         (hoist_memory_references): Same.
7299         * tree-ssa-loop-ivopts.c (operator<=): Same.
7300         * tree-ssa-loop.h: Same.
7301         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
7302         * tree-ssa-structalias.c: Same.
7303         * tree-switch-conversion.h (cluster::cluster): Same.
7304         (simple_cluster::simple_cluster): Same.
7305         * tree-vect-patterns.c (type_conversion_p): Same.
7306         * tree-vectorizer.c (dump_stmt_cost): Same.
7307         * tree-vectorizer.h (loop_vec_info_for_loop): Same.
7308         * tree.c (protected_set_expr_location): Same.
7309         * tree.h (desired_pro_or_demotion_p): Same.
7310         (fndecl_built_in_p): Same.
7311         * unique-ptr-tests.cc: Same.
7312         * var-tracking.c (delete_variable_part): Same.
7313         * varasm.c (assemble_real): Same.
7314         (tree_output_constant_def): Same.
7315         * vec.c: Same.
7316         * wide-int-bitmask.h: Same.
7317         * wide-int.h (decompose): Same.
7319 2019-07-09  Richard Biener  <rguenther@suse.de>
7321         PR tree-optimization/91114
7322         * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
7323         find a vector type isn't fatal.
7325 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
7327         * config/aarch64/aarch64-simd.md
7328         (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
7329         (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
7330         (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
7331         (*aarch64_crypto_aese_fused,
7332         *aarch64_crypto_aesd_fused): Update to new definition.
7333         * config/aarch64/aarch64.c
7334         (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
7336 2019-07-09  Richard Biener  <rguenther@suse.de>
7338         * gimple-match.h (gimple_match_op::resimplify): New.
7339         (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
7340         gimple_resimplify4, gimple_resimplify5): Remove.
7341         * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
7342         gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
7343         Make static.
7344         (gimple_match_op::resimplify): New.
7345         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
7346         according to availability.  Use gimple_match_op::resimplify.
7348 2019-07-09  Eric Botcazou  <ebotcazou@adacore.com>
7350         * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
7352 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
7354         * config/arm/crypto.md:
7355         (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
7356         (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
7357         (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
7358         (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
7359         * config/arm/arm.c
7360         (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
7361         * config/arm/aarch-common-protos.h
7362         (aarch_crypto_can_dual_issue): Remove.
7363         * config/arm/aarch-common.c
7364         (aarch_crypto_can_dual_issue): Likewise.
7365         * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
7366         * config/arm/cortex-a53.md: Likewise.
7367         * config/arm/cortex-a57.md: Likewise.
7368         * config/arm/iterators.md:
7369         (CRYPTO_BINARY): Redefine.
7370         (CRYPTO_UNARY): Removed.
7371         (CRYPTO_AES, CRYPTO_AESMC): New.
7373 2019-07-09  Richard Biener  <rguenther@suse.de>
7375         * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
7376         (vn_reference_lookup_3): If the main ref has no access path recorded
7377         but orig_ref has use it to do access-path based disambiguation.
7378         (vn_reference_lookup_pieces): Adjust.
7379         (vn_reference_lookup): Pass down original ref if we valueized.
7381 2019-07-09  Martin Liska  <mliska@suse.cz>
7383         * doc/extend.texi: Document influence on loop
7384         optimizers.
7386 2019-07-09  Martin Liska  <mliska@suse.cz>
7388         * lto-compress.c (lto_normalized_zstd_level): Do not use
7389         ZSTD_CLEVEL_DEFAULT as it is not default in old releases
7390         of libzstd.  One can use 0 as a default compression level.
7392 2019-07-09  Martin Liska  <mliska@suse.cz>
7394         * doc/invoke.texi: Add link from -fprofile-dir option.
7395         Use better wording for 'gcno filename'.
7397 2019-07-08  Martin Sebor  <msebor@redhat.com>
7399         PR middle-end/71924
7400         PR middle-end/90549
7401         * gimple-ssa-isolate-paths.c (isolate_path): Add attribute.  Update
7402         comment.
7403         (args_loc_t): New type.
7404         (args_loc_t, locmap_t): same.
7405         (diag_returned_locals): New function.
7406         (is_addr_local): Same.
7407         (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
7408         (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
7409         (find_explicit_erroneous_behavior): Call warn_return_addr_local.
7411 2019-07-08  Jakub Jelinek  <jakub@redhat.com>
7413         * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
7414         with SSA_NAME address of POINTER_PLUS_EXPR.  Handle MULT_EXPR
7415         and casts in offset when different, both through gimple stmts
7416         and through trees.  Rewritten using loops to minimize code duplication
7417         for each operand.
7419 2019-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7421         * emit-rtl.c (set_insn_locations): New function moved from...
7422         * function.c (set_insn_locations): ...here.
7423         * ira-emit.c (emit_moves): Propagate location of the first instruction
7424         to the inserted move instructions.
7425         * reg-stack.c (compensate_edge): Set the location if the sequence is
7426         inserted on the edge.
7427         * rtl.h (set_insn_locations): Declare.
7429 2019-07-08  Segher Boessenkool  <segher@kernel.crashing.org>
7431         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
7432         OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
7433         .machine string.
7435 2019-07-08  Segher Boessenkool  <segher@kernel.crashing.org>
7437         PR rtl-optimization/88233
7438         * common.opt (fsplit-wide-types-early): New option.
7439         * common/config/rs6000/rs6000-common.c
7440         (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
7441         OPT_LEVELS_ALL.
7442         * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
7443         * lower-subreg.c (pass_lower_subreg2::gate): Add test for
7444         flag_split_wide_types_early.
7445         (pass_data_lower_subreg3): New.
7446         (pass_lower_subreg3): New.
7447         (make_pass_lower_subreg3): New.
7448         * passes.def (pass_lower_subreg2): Move after the loop passes.
7449         (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
7450         * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
7451         the pass pipeline; its previous place is taken by ...
7452         (make_pass_lower_subreg3): ... this.
7454 2019-07-08  Robin Dapp  <rdapp@linux.ibm.com>
7456         * config/s390/s390.c (s390_shift_truncation_mask): Define.
7457         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7459 2019-07-08  Robin Dapp  <rdapp@linux.ibm.com>
7461         * config/s390/constraints.md: Add new jsc constraint.
7462         * config/s390/predicates.md: New predicates.
7463         * config/s390/s390-protos.h (s390_valid_shift_count): New function.
7464         * config/s390/s390.c (s390_valid_shift_count): New function.
7465         (print_shift_count_operand): Use s390_valid_shift_count.
7466         (print_operand): Likewise.
7467         * config/s390/s390.md: Use new predicate.
7468         * config/s390/subst.md: Remove addr_style_op and masked_op substs.
7469         * config/s390/vector.md: Use new predicate.
7471 2019-07-08  Andrew Waterman  <andrew@sifive.com>
7472             Jim Wilson  <jimw@sifive.com>
7474         * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
7475         bitsize instead of BITS_PER_WORD.
7477 2019-07-08  Martin Liska  <mliska@suse.cz>
7479         * collect2.c (defined): Revert to before r254460.
7480         (scan_prog_file): Revert to before r254460.
7482 2019-07-08  Richard Biener  <rguenther@suse.de>
7484         PR tree-optimization/83518
7485         * tree-ssa-sccvn.c: Include splay-tree.h.
7486         (struct pd_range, struct pd_data): New.
7487         (struct vn_walk_cb_data): Add data to track partial definitions.
7488         (vn_walk_cb_data::~vn_walk_cb_data): New.
7489         (vn_walk_cb_data::push_partial_def): New.
7490         (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
7491         (vn_reference_lookup_2): When partial defs are registered give up.
7492         (vn_reference_lookup_3): Track partial defs for memset and
7493         constructor zeroing and for defs from constants.
7495 2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
7497         * doc/install.texi (bootstrap-Og): Document.
7499 2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
7501         * config/riscv/pic.md (*local_pic_load_s<mode>)
7502         (*local_pic_load_u<mode>): Explicitly specify the mode iterator
7503         referenced by <mode>, giving...
7504         (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
7505         * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
7506         (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
7507         use <X:MODE> for the mode attribute.
7509 2019-07-07  Jeff Law  <law@redhat.com>
7511         PR tree-optimization/91090
7512         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
7513         in handling of ranges to simplify switch statements.
7515 2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
7517         * config/darwin.c (darwin_override_options): Make a final check on PIC
7518         options.
7520 2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
7522         * config/darwin.c (darwin_override_options): Don't jam symbol stubs
7523         on for kernel code.
7525 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>
7527         PR target/91068
7528         * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
7529         (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
7530         instead of matching them to "l" output operands.
7532 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>
7534         * config/mips/mips.c (mips_split_move): Zero-initialize addr
7535         and check whether addr.reg is nonnull before using it.
7537 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
7539         * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
7540         ctx->for_simd_scan_phase simd copy the outer var to the privatized
7541         variable(s).  For conditional lastprivate look through outer
7542         GIMPLE_OMP_SCAN context.
7543         (lower_omp_1): For conditional lastprivate look through outer
7544         GIMPLE_OMP_SCAN context.
7546         * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
7547         member to combined_into_simd_safelen1.
7548         (lower_rec_input_clauses, lower_omp_1): Adjust uses.
7549         (lower_lastprivate_clauses): Likewise.  For conditional lastprivate
7550         clauses if ctx->combined_into_simd_safelen1 put statements after the
7551         predicate conditionalized block rather than into it.
7553 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7555         * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
7556         operand 1.
7557         * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
7558         Make the choice of <mode> explicit, giving...
7559         (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
7561 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7563         * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
7564         (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
7565         of .md attributes.
7566         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
7567         (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
7568         (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
7569         (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
7570         (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
7571         (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
7572         (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
7573         (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
7574         (*avx512f_scatterdi<mode>): Likewise.
7575         (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
7577 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7579         * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
7580         specify the mode iterator referenced by <mode>, giving...
7581         (*push1_h8300hs_<QHI:mode>): ...this.
7583 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7585         * config/gcn/gcn-valu.md
7586         (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
7587         gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
7588         gen_vec_cmp<VEC_1REG_MODE:mode>di.  Explicitly use
7589         gen_vcond_mask_<VEC_1REG_MODE:mode>di.
7590         (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
7591         but using the _exec comparison patterns.
7592         (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
7593         gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
7594         gen_vec_cmp<VEC_1REG_INT_MODE:mode>di.  Explicitly use
7595         gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
7596         (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
7597         but using the _exec comparison patterns.
7599 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7601         * config/arm/sync.md
7602         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
7603         <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
7604         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
7605         <SIDI:sync_predtab>.  Use <SIDI:cas_cmp_operand> and
7606         <SIDI:cas_cmp_str>.
7608 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
7610         * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
7611         (maybe_lookup_ctx): Add forward declaration.
7612         (omp_find_scan): Likewise.  Walk into body of simd if composited
7613         with worksharing loop.
7614         (scan_omp_simd_scan): New function.
7615         (scan_omp_1_stmt): Call it.
7616         (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
7617         ctx->for_simd_scan_phase.
7618         (lower_rec_input_clauses): Do much less work for inscan reductions
7619         in ctx->for_simd_scan_phase is_simd regions.
7620         (lower_omp_scan): Set is_simd also on simd constructs composited
7621         with worksharing loop, unless ctx->for_simd_scan_phase.  Never emit
7622         a sorry message.  Don't change GIMPLE_OMP_SCAN stmts into nops and
7623         emit their body after in simd constructs composited with worksharing
7624         loop.
7625         (lower_omp_for_scan): Handle worksharing loop composited with simd.
7627         * omp-low.c (omp_find_scan): Make static.
7628         (lower_omp_for_scan): Fix order of merge arguments in input phase of
7629         the second loop, var2 represents the first partial sum and so needs
7630         to go before rprivb[ivar].
7632 2019-07-05  Iain Sandoe  <iain@sandoe.co.uk>
7634         * config/rs6000/rs6000-logue.c: Remove unused code.
7636 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
7638         * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
7640 2019-07-05  Sam Tebbs  <sam.tebbs@arm.com>
7642         PR target/90712
7643         * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
7644         check with a frame laid out check.
7646 2019-07-05  Richard Biener  <rguenther@suse.de>
7648         * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
7649         when comparing against a store with possibly the same value.
7651 2019-07-05  Richard Biener  <rguenther@suse.de>
7653         PR tree-optimization/91091
7654         * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
7655         (walk_non_aliased_vuses): Likewise.
7656         * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
7657         (get_continuation_for_phi): New tbaa_p parameter and pass
7658         it down.
7659         (walk_non_aliased_vuses): Likewise.
7660         * ipa-prop.c (determine_known_aggregate_parts): Adjust.
7661         * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
7662         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
7663         Likewise.
7664         * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
7665         (adjust_offsets_for_equal_base_address): New function.
7666         (vn_reference_lookup_3): Use it to catch more base equivalences.
7667         Handle and pass down tbaa_p flag.
7668         (vn_reference_lookup_pieces): Adjust.
7669         (vn_reference_lookup): Remove alias-set altering, instead pass
7670         down false as tbaa_p.
7672 2019-07-05  Richard Biener  <rguenther@suse.de>
7674         PR tree-optimization/91091
7675         * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
7676         accesses can happen with -fno-strict-aliasing.
7678 2019-07-05  Jan Hubicka  <hubicka@ucw.cz>
7680         * tree-ssa-alias.c (alias_stats): Add
7681         nonoverlapping_component_refs_since_match_p_must_overlap.
7682         (dump_alias_stats): Print it.
7683         (nonoverlapping_component_refs_since_match_p): Add early exit.
7684         (nonoverlapping_component_refs_p): Do not account early exit.
7686 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
7688         * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
7689         * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
7690         (emit_eh_dispatch): Delete.
7691         (lower_catch): Emit the eh_dispatch manually and set the location of
7692         the first catch statement onto it.
7693         (lower_eh_filter): Emit the eh_dispatch manually and set location.
7694         (lower_eh_dispatch): Propagate location.
7695         * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
7696         (eliminate_build): Likewise.
7698 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
7700         * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
7701         phi nodes if possible.
7702         * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
7703         location info on the newly created statement.
7704         * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
7705         newly created increment if needed.
7707 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
7709         PR middle-end/78884
7710         * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
7711         (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
7712         loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
7713         (gimplify_adjust_omp_clauses): Add safelen (1) clause if
7714         ctx->add_safelen1 is set.
7716         * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
7717         GOMP_loop_start at the start of second worksharing loop in a scan.
7718         For nowait, don't emit GOMP_loop_end_nowait at the end of first
7719         worksharing loop in a scan even if there are conditional lastprivates,
7720         and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
7722 2019-07-04  Jan Hubicka  <jh@suse.cz>
7724         * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
7725         Fix check for match in the ref walk.
7727 2019-07-04  Martin Liska  <mliska@suse.cz>
7729         * tree-ssa-loop-niter.c
7730         (get_upper_bound_based_on_builtin_expr_with_prob): New function.
7731         (estimate_numbers_of_iterations):
7732         Support __builtin_expect_with_probability for analysis
7733         of # of loop iterations.
7735 2019-07-04  Alexandre Oliva  <oliva@adacore.com>
7737         * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
7738         * except.c: Likewise.
7739         * expr.c (expand_expr_real_1): Reject it.
7740         * gimplify.c (gimplify_expr): Gimplify it, within
7741         TRY_FINALLY_EXPR.
7742         * tree-dump.c (dequeue_and_dump): Dump it.
7743         * tree-pretty-print.c (dump_generic_node): Likewise.
7744         * tree.c (block_may_fallthru): Handle it.
7745         * tree.def (EH_ELSE_EXPR): Introduce it.
7746         * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
7747         with GIMPLE_EH_ELSE as try/finally/else.
7749 2019-07-04  Richard Biener  <rguenther@suse.de>
7751         PR ipa/91062
7752         * tree-pass.h (execute_all_ipa_transforms): Add a flag
7753         parameter whether to disable GC collection.
7754         * passes.c (execute_one_ipa_transform_pass): Likewise, and
7755         honor it.
7756         (execute_all_ipa_transforms): Likewise and pass it down.
7757         * cgraph.c (cgraph_node::get_body): Do not invoke garbage
7758         collection from applying IPA transforms.
7759         * cgraphunit.c (cgraph_node::expand): Allow garbage collection
7760         from applying IPA transforms.
7762 2019-07-04  Richard Biener  <rguenther@suse.de>
7764         PR tree-optimization/90911
7765         * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
7766         (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
7767         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
7768         scalar_loop_scaling.
7769         (vect_transform_loop): Scale scalar loop profile if needed.
7770         * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
7771         the loop copy from if-conversion adjust edge probabilities
7772         and scale the vectorized loop body profile, queue the scalar
7773         profile for updating after peeling.
7775 2019-07-04  Jan Hubicka  <jh@suse.cz>
7777         * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
7778         parameters; return early for must-alias.
7779         (indirect_ref_may_alias_decl_p): Likewise; when establishing
7780         outer types match, try nonoverlapping_component_refs
7781         if must-alias is not obvious.
7782         (indirect_refs_may_alias_p): Likewise.
7783         (refs_may_alias_p_2): Likewise.
7785 2019-07-04  Richard Biener  <rguenther@suse.de>
7787         * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
7788         argument.
7789         * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
7790         globals into...
7791         (struct vn_walk_cb_data): New callback data struct.
7792         (vn_reference_lookup_2): Adjust.
7793         (vn_reference_lookup_3): Likewise.
7794         (vn_reference_lookup_pieces): Likewise.
7795         (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
7796         (visit_reference_op_load): Adjust.
7798 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
7800         PR tree-optimization/91063
7801         * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
7802         stmt from stmts sequence before calling vect_init_vector_1.
7803         Formatting fix.
7805 2019-07-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7807         PR target/88833
7808         * fwprop.c (reg_single_def_p): New function.
7809         (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
7810         (forward_propagate_into): New parameter reg_prop_only
7811         with default value false.
7812         Propagate def's src into loop only if SET_SRC and SET_DEST
7813         of def_set have single definitions.
7814         Likewise if reg_prop_only is set to true.
7815         (fwprop): New param fwprop_addr_p.
7816         Integrate fwprop_addr into fwprop.
7817         (fwprop_addr): Remove.
7818         (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
7819         to true.
7820         (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
7821         * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
7822         * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
7824 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
7826         * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
7827         in worksharing loop scans.
7829         PR tree-optimization/91074
7830         * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
7831         temporary.
7833         PR rtl-optimization/90756
7834         * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
7835         for VECTOR_TYPE_P.
7837 2019-07-03  Dennis Zhang  <dennis.zhang@arm.com>
7839         * config/aarch64/aarch64.md: Remove redundant constraints from
7840         define_expand but keep some patterns untouched if they are
7841         specially selected by TARGET_SECONDARY_RELOAD hook.
7842         * config/aarch64/aarch64-sve.md: Likewise.
7843         * config/aarch64/atomics.md: Remove redundant constraints from
7844         define_expand.
7845         * config/aarch64/aarch64-simd.md: Likewise.
7847 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
7849         * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
7850         (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
7851         (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
7852         clauses.
7853         (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
7854         DARWIN_NOPIE_SPEC.
7856 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
7858         * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
7859         (STARTFILE_SPEC): Split crt3 into a separate spec.
7860         (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
7861         (DARWIN_CRT2_SPEC): New.
7862         (DARWIN_CRT3_SPEC): New.
7863         (MIN_LD64_OMIT_STUBS): Revise to 62.1.
7864         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
7865         (DARWIN_CRT3_SPEC): New.
7867 2019-07-03  Michael Meissner  <meissner@linux.ibm.com>
7869         * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
7870         Change the RTL attribute "length" from "4" to "*" to allow the
7871         length attribute to be adjusted automatically for prefixed load,
7872         store, and add immediate instructions.
7873         * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
7874         Likewise.
7875         (extendsi<mode>2, EXTSI iterator): Likewise.
7876         (movsi_internal1): Likewise.
7877         (movsi_from_sf): Likewise.
7878         (movdi_from_sf_zero_ext): Likewise.
7879         (mov<mode>_internal): Likewise.
7880         (movcc_internal1, QHI iterator): Likewise.
7881         (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
7882         (movsf_from_si): Likewise.
7883         (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
7884         (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
7885         (mov<mode>, FMOVE128 iterator): Likewise.
7886         (movdi_internal64): Likewise.
7887         * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
7888         Likewise.
7889         (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
7890         (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
7891         (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
7892         (vsx_splat_v4sf): Likewise.
7894 2019-07-03  Mark Wielaard  <mark@klomp.org>
7896         PR debug/90981
7897         * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
7898         DW_AT_addr_base if there is actually a .debug_addr section with
7899         addresses.
7900         (output_addr_table): Add DWARF5 table header generation here after
7901         checking there are actually any addresses from...
7902         (dwarf2out_finish): ...here.
7904 2019-07-03  Richard Biener  <rguenther@suse.de>
7906         PR middle-end/91069
7907         * match.pd (vec_perm -> bit_insert): Fix element read from
7908         first vector.
7910 2019-07-03  Martin Liska  <mliska@suse.cz>
7912         * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
7913         * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
7914         condition.
7915         * generic-match-head.c: Include dbgcnt.h.
7916         * gimple-match-head.c: Likewise.
7918 2019-07-03  Martin Liska  <mliska@suse.cz>
7920         * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
7921         (GCOV_COUNTER_V_TOPN): New.
7922         (GCOV_COUNTER_V_INDIR): Use _topn.
7923         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
7924         (GCOV_TOPN_VALUES): New.
7925         (GCOV_SINGLE_VALUE_COUNTERS): Remove.
7926         (GCOV_TOPN_VALUES_COUNTERS): New.
7927         * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
7928         * tree-profile.c:
7929         (gimple_init_gcov_profiler): Rename variables from one_value
7930         to topn_values.
7931         (gimple_gen_one_value_profiler): Remove.
7932         (gimple_gen_topn_values_profiler): New function.
7933         * value-prof.c (dump_histogram_value): Use TOPN_VALUES
7934         names instead of SINGLE_VALUE.
7935         (stream_out_histogram_value): Likewise.
7936         (stream_in_histogram_value): Likewise.
7937         (get_most_common_single_value): Likewise.
7938         (gimple_divmod_fixed_value_transform): Likewise.
7939         (gimple_stringops_transform): Likewise.
7940         (gimple_divmod_values_to_profile): Likewise.
7941         (gimple_stringops_values_to_profile): Likewise.
7942         (gimple_find_values_to_profile): Likewise.
7943         * value-prof.h (enum hist_type): Rename to TOPN.
7944         (gimple_gen_one_value_profiler): Remove.
7945         (gimple_gen_topn_values_profiler): New.
7947 2019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
7949         * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
7950         if it has the DW_AT_data_member_location attribute.
7952 2019-07-03  Richard Biener  <rguenther@suse.de>
7954         * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
7955         dumping.
7957 2019-07-03  Sylvia Taylor  <sylvia.taylor@arm.com>
7959         * config/aarch64/aarch64.md (FP_REGNUM): New constant.
7960         (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
7961         (tlsdesc_small_sve_<mode>): Likewise.
7963 2019-07-03  Martin Liska  <mliska@suse.cz>
7965         * Makefile.in: Define ZSTD_LIB.
7966         * common.opt: Adjust compression level
7967         to support also zstd levels.
7968         * config.in: Regenerate.
7969         * configure: Likewise.
7970         * configure.ac: Add --with-zstd and --with-zstd-include options
7971         and detect ZSTD.
7972         * doc/install.texi: Mention zstd dependency.
7973         * gcc.c: Print supported LTO compression algorithms.
7974         * lto-compress.c (lto_normalized_zstd_level): Likewise.
7975         (lto_compression_zstd): Likewise.
7976         (lto_uncompression_zstd): Likewise.
7977         (lto_end_compression): Dispatch in between zlib and zstd.
7978         (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
7979         (lto_uncompression_zlib): Make it static.
7980         * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
7981         * lto-section-in.c (lto_get_section_data): Pass info
7982         about used compression.
7983         * lto-streamer-out.c: By default use zstd when possible.
7984         * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
7985         (TV_IPA_LTO_COMPRESS): Likewise for compression.
7987 2019-07-03  Martin Liska  <mliska@suse.cz>
7989         * lto-section-in.c (lto_get_section_data): Add "lto" section.
7990         * lto-section-out.c (lto_destroy_simple_output_block): Never
7991         compress LTO_section_lto section.
7992         * lto-streamer-out.c (produce_asm): Do not set major_version
7993         and minor_version.
7994         (lto_output_toplevel_asms): Likewise.
7995         (produce_lto_section): New function.
7996         (lto_output): Call produce_lto_section.
7997         (lto_write_mode_table): Do not set major_version and
7998         minor_version.
7999         (produce_asm_for_decls): Likewise.
8000         * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
8001         type.
8002         (struct lto_header): Remove.
8003         (struct lto_section): New struct.
8004         (struct lto_simple_header): Do not inherit from lto_header.
8005         (struct lto_file_decl_data): Add lto_section_header field.
8007 2019-07-03  Martin Liska  <mliska@suse.cz>
8009         * lra-eliminations.c (eliminate_regs_in_insn): Remove
8010         dead assignemts.
8011         * reg-stack.c (check_asm_stack_operands): Likewise.
8012         * tree-ssa-structalias.c (create_function_info_for): Likewise.
8013         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
8014         * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
8015         force_expand_binop.
8017 2019-07-03  Martin Liska  <mliska@suse.cz>
8019         PR tree-optimization/90892
8020         * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
8021         in string constants.
8023 2019-07-03  Martin Liska  <mliska@suse.cz>
8025         PR middle-end/90899
8026         * multiple_target.c (create_dispatcher_calls): Add to comdat
8027         group only if set for ifunc.
8029 2019-07-03  Martin Liska  <mliska@suse.cz>
8031         PR target/88056
8032         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
8033         Define local_object_name in outer scope in order to handle
8034         use-after-scope issue.
8036 2019-07-03  Martin Liska  <mliska@suse.cz>
8038         * common.opt: Add fprofile-note.
8039         * coverage.c (coverage_init): Append the option
8040         to bbg_file_name.
8041         * doc/invoke.texi: Document -fprofile-note.
8043 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
8045         PR tree-optimization/91033
8046         * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
8047         vect_analyze_data_refs): Add bool * arguments.
8048         * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
8049         if failure is due to scatter/gather, set *fatal to false if non-NULL.
8050         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
8051         * tree-vect-loop.c (vect_analyze_loop_2): Adjust
8052         vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
8053         * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
8054         vect_analyze_data_refs caller.
8056         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
8057         clause.
8058         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
8059         OMP_CLAUSE__CONDTEMP_ as range's upper bound.
8060         (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
8061         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
8062         OMP_CLAUSE__SCANTEMP_ entry.
8063         (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
8064         * tree-pretty-print.c (dump_omp_clause): Likewise.
8065         * tree-nested.c (convert_nonlocal_omp_clauses,
8066         convert_local_omp_clauses): Likewise.
8067         * omp-general.h (struct omp_for_data): Add have_scantemp and
8068         have_nonctrl_scantemp members.
8069         * omp-general.c (omp_extract_for_data): Initialize them.
8070         * omp-low.c (struct omp_context): Add scan_exclusive member.
8071         (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
8072         result again with GF_OMP_FOR_KIND_MASK.  Initialize also
8073         ctx->scan_exclusive.
8074         (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
8075         of !ctx->scan_inclusive.
8076         (lower_rec_input_clauses): Simplify gimplification of dtors using
8077         gimplify_and_add.  For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
8078         rather than rvarp.  Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
8079         loops.  Don't add barrier for reduction_omp_orig_ref if
8080         ctx->scan_??xclusive.
8081         (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
8082         (lower_omp_scan): Use ctx->scan_exclusive instead
8083         of !ctx->scan_inclusive.  Handle worksharing loops with inscan
8084         reductions.  Use new_vard != new_var instead of repeated
8085         omp_is_reference calls.
8086         (omp_find_scan, lower_omp_for_scan): New functions.
8087         (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
8088         inscan reductions.
8089         * omp-expand.c (expand_omp_scantemp_alloc): New function.
8090         (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
8091         and fd->have_scantemp.
8093         * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
8094         on worksharing loop propagate it as shared clause to containing
8095         combined parallel.
8097         * omp-expand.c (expand_omp_for_static_nochunk,
8098         expand_omp_for_static_chunk): For nowait worksharing loop with
8099         conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
8100         at the end.
8102 2019-07-02  qing zhao  <qing.zhao@oracle.com>
8104         PR preprocessor/90581
8105         * doc/cppopts.texi: Add document for -fmax-include-depth.
8106         * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
8108 2019-07-02  Uroš Bizjak  <ubizjak@gmail.com>
8110         * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
8111         Use TARGET_SSE2 && SSE_REGNO_P in split condition.
8112         (mmx_packssdw): Ditto.
8113         (mmx_punpckhbw): Ditto.
8114         (mmx_punpcklbw): Ditto.
8115         (mmx_punpckhwd): Ditto.
8116         (mmx_punpcklwd): Ditto.
8117         (mmx_punpckhdq): Ditto.
8118         (mmx_punpckldq): Ditto.
8119         (*vec_dupv4hi): Ditto.
8120         (*vec_dupv2si): Ditto.
8121         (mmx_pmovmskb): Ditto.
8122         * config/i386/sse.md (sse_cvtpi2ps): Use
8123         TARGET_SSE2 && SSE_REG_P in split condition.
8124         (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
8125         TARGET_SSSE3 && SSE_REGNO_P in split condition.
8126         (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
8127         (ssse3_pshufbv8qi3): Ditto.
8128         (ssse3_palignrdi): Ditto.
8130 2019-07-02  Andrew Stubbs  <ams@codesourcery.com>
8132         * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
8133         with inlined save and restore.
8135 2019-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8137         * cfgexpand.c (pass_expand::execute): Deal specially with instructions
8138         to be inserted on single successor edge of the entry block.  Then call
8139         commit_edge_insertions instead of inserting the instructions manually.
8140         * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
8141         RTL expansion and rebuild jump labels chain.
8143 2019-07-02  Richard Biener  <rguenther@suse.de>
8145         * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
8146         TI_CHREC_KNOWN.
8147         * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
8148         Define here.
8149         * tree.c (build_common_tree_nodes): Initialize them.
8150         * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
8151         Make declarations comments.
8152         * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
8153         chrec_known): Remove definitions.
8154         (initialize_scalar_evolutions_analyzer): Remove.
8155         (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
8156         * tree-streamer.c (preload_common_nodes): Do not preload
8157         TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
8159 2019-07-02  Jan Hubicka  <jh@suse.cz>
8161         * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
8162         sanity check.
8164 2019-07-02  Jan Hubicka  <jh@suse.cz>
8166         * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
8167         to ..
8168         (nonoverlapping_component_refs_since_match_p): ... this one;
8169         handle also non-decl bases; return -1 if search gave up.
8170         (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
8171         nonoverlapping_component_refs_of_decl_p_no_alias to
8172         nonoverlapping_component_refs_since_match_p_may_alias,
8173         nonoverlapping_component_refs_since_match_p_no_alias.
8174         (dump_alias_stats): Update dumping.
8175         (aliasing_matching_component_refs_p): Break out from ...;
8176         dispatch to nonoverlapping_component_refs_for_decl_p
8177         and nonoverlapping_component_refs_since_match_p.
8178         (aliasing_component_refs_p): ... here; call
8179         nonoverlapping_component_refs_p in scenarios where we can not
8180         precisely determine base match.
8181         (decl_refs_may_alias_p): Use
8182         nonoverlapping_component_refs_since_match_p.
8183         (indirect_ref_may_alias_decl_p): Do not call
8184         nonoverlapping_component_refs_p.
8185         (indirect_refs_may_alias_p): Likewise.
8187 2019-07-02  Jan Hubicka  <jh@suse.cz>
8189         * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
8190         to clobber of return value.
8192 2019-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8194         * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
8195         for is_neon_type instructions that have not already been categorized.
8197 2019-07-02  Richard Biener  <rguenther@suse.de>
8199         PR tree-optimization/58483
8200         * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
8201         for MEM_REF base hashing.
8202         (equal_mem_array_ref_p): Likewise for base comparison.
8204 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8206         * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
8207         parameterized name.
8208         (signbit<mode>2): Use that name.  Simplify.
8210 2019-07-01  Joern Rennecke  <joern.rennecke@riscy-ip.com>
8212         PR middle-end/66726
8213         * tree-ssa-phiopt.c (factor_out_conditional_conversion):
8214         Tune heuristic from PR71016 to allow MIN / MAX.
8216 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8218         * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
8219         parameterized name.
8220         (abs<mode>2): Use that name.  Simplify.
8222 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8224         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
8225         parameterized name.
8226         (neg<mode>2): Use that name.  Simplify.
8228 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8230         * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
8231         name.
8232         (abs<mode>2): Use that name.  Simplify.
8234 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8236         * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
8237         name.
8238         (neg<mode>2): Use that name.  Simplify.
8240 2019-07-01  Uroš Bizjak  <ubizjak@gmail.com>
8242         * config/i386/i386.md ("isa" attribute): Add sse_noavx.
8243         ("enabled" attribute): Handle sse_noavx isa attribute.
8244         * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
8245         Use TARGET_SSE && SSE_REGNO_P in split condition.
8246         (*vec_dupv2sf): Ditto.
8248 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8250         * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
8251         name.
8252         (floatsi<mode>2): Use that name.  Simplify.
8254 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8256         * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
8257         parameterized name.
8258         (extenddf<mode>2_vsx): Make this a parameterized name.
8259         (extenddf<mode>2): Use those names.  Simplify.
8261 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8263         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
8264         name.
8265         (eh_return): Use that name.  Simplify.
8267 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8269         * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
8270         (doloop_end): Use that name.  Simplify.
8272 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8274         * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
8275         parameterized name.
8276         (indirect_jump): Use that name.  Simplify.
8278 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8280         * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
8281         parameterized name.
8282         (abs<mode>2): Use that name.  Simplify.
8284 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8286         * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
8287         parameterized name.
8288         (fix_trunc<mode>si2): Use that name.  Simplify.
8290 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8292         * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
8293         (allocate_stack): Use that name.  Simplify.
8295 2019-07-01  Martin Sebor  <msebor@redhat.com>
8297         PR middle-end/90923
8298         * hash-map.h (hash_map::put): On insertion invoke element ctor.
8299         (hash_map::get_or_insert): Same.  Reformat comment.
8300         * hash-set.h (hash_set::add): On insertion invoke element ctor.
8301         * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
8302         * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
8303         * hash-table.h (hash_table::operator=): Prevent copy assignment.
8304          (hash_table::hash_table (const hash_table&)): Use copy ctor
8305          instead of assignment to copy elements.
8307 2019-07-01  Wilco Dijkstra  <wdijkstr@arm.com>
8308             John David Anglin  <danglin@gcc.gnu.org>
8310         PR target/90963
8311         * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
8312         using saved frame pointer.
8314 2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>
8316         PR middle-end/64242
8317         * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
8318         Add frame clobber and schedule blockage.
8320 2019-07-01  Sandra Loosemore  <sandra@codesourcery.com>
8322         * doc/invoke.texi (Link Options): Further editorial changes to
8323         -flinker-output docs.
8325 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
8327         * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
8328         Load both operands of a PLUS into registers separately.
8330 2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
8332         * config/s390/vector.md: Fix shift count operand printing.
8334 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8336         * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
8338 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8340         * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
8341         Use recog_data to test for an output operand.
8343 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8345         * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
8346         exclude any others that are disparaged or that are bound to need
8347         a reload or spill.
8348         (ira_get_dup_out_num): Expand comment.
8350 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8352         * ira.c (ira_setup_alts): Use preprocess_constraints to get the
8353         constraint string for each operand/alternative combo.  Only handle
8354         '%' at the start of constraint strings, and look for it outside
8355         the main loop.
8357 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8359         * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
8360         alternative_mask instead of HARD_REG_SET to represent a
8361         bitmask of alternatives.
8362         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
8363         * ira-conflicts.c (add_insn_allocno_copies): Likewise.
8365 2019-07-01  Martin Liska  <mliska@suse.cz>
8367         * edit-context.c (test_applying_fixits_unreadable_file): Do not
8368         use () for a constructor call.
8369         (test_applying_fixits_line_out_of_range): Likewise.
8370         * ggc-page.c (alloc_page): Use (void *) for %p printf format
8371         argument.
8372         (free_page): Likewise.
8374 2019-07-01  Vladislav Ivanishin  <vlad@ispras.ru>
8376         * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
8377         parameter names to match usage (no functional change).
8378         (GdbPrettyPrinters.add_printer_for_regex): Ditto.
8380 2019-07-01  Richard Biener  <rguenther@suse.de>
8382         * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
8383         pass parameter.
8384         (pass_fre::execute): Honor it.
8385         * passes.def: Adjust pass_fre invocations to allow iterating,
8386         add non-iterating pass_fre before late threading/dom.
8388 2019-07-01  Richard Biener  <rguenther@suse.de>
8390         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
8391         TARGET_MEM_REF handling to also handle address-taken ones.
8393 2019-07-01  Hongtao Liu  <hongtao.liu@intel.com>
8395         * doc/sourcebuild.texi (Effective-Target Keywords, Other
8396         hardware attributes): Document avx512vp2intersect.
8398 2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>
8400         * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
8401         (abs<mode>2): New expander.
8402         * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
8403         Use CODE_FOR_ssse3_absv8qi2.
8404         (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
8405         (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
8407 2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>
8409         * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
8410         to sse, sse_noavx and avx.  Update all uses.
8412 2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>
8414         * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
8415         (*mmx_<plusminus_insn><mode>3): Ditto.
8416         (*mmx_mulv4hi3"): Ditto.
8417         (*mmx_smulv4hi3_highpart): Ditto.
8418         (*mmx_umulv4hi3_highpart): Ditto.
8419         (*mmx_pmaddwd): Ditto.
8420         (*sse2_umulv1siv1di3): Ditto.
8421         (*mmx_<code>v4hi3): Ditto.
8422         (*mmx_<code>v8qi3): Ditto.
8423         (mmx_ashr<mode>3): Ditto.
8424         ("mmx_<shift_insn><mode>3): Ditto.
8425         (*mmx_eq<mode>3): Ditto.
8426         (mmx_gt<mode>3): Ditto.
8427         (mmx_andnot<mode>3): Ditto.
8428         (*mmx_<code><mode>3): Ditto.
8429         (*mmx_pinsrw): Ditto.
8430         (*mmx_pextrw): Ditto.
8431         (mmx_pshufw_1): Ditto.
8432         (*mmx_uavgv8qi3): Ditto.
8433         (*mmx_uavgv4hi3): Ditto.
8434         ("mmx_psadbw): Ditto.
8435         * config/i386/sse.md (sse_cvtps2pi): Ditto.
8436         (sse_cvttps2pi): Ditto.
8437         (ssse3_pmaddubsw): Ditto.
8438         (*ssse3_pmulhrswv4hi3): Ditto.
8439         (ssse3_psign<mode>3): Ditto.
8441 2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
8443         * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
8444         adjustment for bit-fields to all aggregate types.
8446 2019-06-28   Michael Meissner  <meissner@linux.ibm.com>
8448         * config/rs6000/predicates.md (pcrel_address): Use
8449         SYMBOL_REF_LOCAL_P to determine if a label is local.
8450         (pcrel_external_address): New predicate.
8451         (non_prefixed_mem_operand): Delete, predicate not used.
8452         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
8453         SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
8454         addressing.
8455         (SYMBOL_REF_PCREL_P): Likewise.
8457         PR target/91009
8458         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
8459         alternative.
8460         (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
8461         (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
8462         (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
8464 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
8466         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
8467         override on extra_headers.
8469 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
8471         * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
8472         * config/darwin-driver.c (darwin_default_min_version): Remove newline
8473         from warning.
8474         (darwin_driver_init): Likewise.
8476 2019-06-28  Jan Beulich  <jbeulich@suse.com>
8478         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
8479         vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
8480         Eliminate redundant alternative.
8482 2019-06-28  Jan Beulich  <jbeulich@suse.com>
8484         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
8485         vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
8486         Use vector_operand.
8488 2019-06-28  Claudiu Zissulescu  <claziss@synopsys.com>
8490         * config/arc/arc.c (arc_rtx_costs): All short instructions are
8491         having a lower cost regardless of the speed option.
8493 2019-06-28  Jan Beulich  <jbeulich@suse.com>
8495         * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
8496         vector_operand plus, on both alternatives, "Bm" constraint.
8498 2019-06-28  Dennis Zhang  <dennis.zhang@arm.com>
8500         * config/arm/arm.md: Remove redundant constraints from
8501         define_expand but leave reload_inm and reload_outm patterns
8502         untouched since they need special constraints to work.
8503         * config/arm/arm-fixed.md: Remove redundant constraints from
8504         define_expand.
8505         * config/arm/iwmmxt.md: Likewise.
8506         * config/arm/neon.md: Likewise.
8507         * config/arm/sync.md: Likewise.
8508         * config/arm/thumb1.md: Likewise.
8509         * config/arm/vec-common.md: Likewise.
8511 2019-06-27  Ilia Diachkov  <ilia.diachkov@optimitech.com>
8513         * doc/install.texi: Document --disable-tm-clone-registry.
8515 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
8517         PR c++/91024
8518         * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
8519         statements.
8521         PR tree-optimization/91010
8522         * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
8523         return true.  Otherwise, don't call operand_equal_p if offset1 or
8524         offset2 is NULL and just return false.
8526 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
8528         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
8529         user-specified float mode choice for kernel mode code.
8531 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
8533         * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
8534         spec.
8536 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
8538         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
8539         use longcall for 64b code.
8541 2019-06-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
8543         * builtins.c (get_memory_rtx): Fix comment.
8544         * optabs.def (movmem_optab): Change to cpymem_optab.
8545         * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
8546         (emit_block_move_hints): Change movmem to cpymem.
8547         * defaults.h: Change movmem to cpymem.
8548         * targhooks.c (get_move_ratio): Change movmem to cpymem.
8549         (default_use_by_pieces_infrastructure_p): Ditto.
8550         * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
8551         * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
8552         to cpymem.
8553         * config/aarch64/aarch64.h: Change movmem to cpymem.
8554         * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
8555         * config/alpha/alpha.h: Change movmem to cpymem in comment.
8556         * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
8557         movmem to cpymem.
8558         * config/arc/arc-protos.h: Change movmem to cpymem.
8559         * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
8560         * config/arc/arc.h: Change movmem to cpymem in comment.
8561         * config/arc/arc.md (movmemsi): Change movmem to cpymem.
8562         * config/arm/arm-protos.h: Change movmem to cpymem in names.
8563         * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
8564         gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
8565         * config/arm/arm.md (movmemqi): Change movmem to cpymem.
8566         * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
8567         * config/avr/avr-protos.h: Change movmem to cpymem.
8568         * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
8569         avr_out_movmem): Change movmem to cpymem.
8570         * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
8571         Change movmem to cpymem.
8572         * config/bfin/bfin-protos.h: Change movmem to cpymem.
8573         * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
8574         Change movmem to cpymem.
8575         * config/bfin/bfin.h: Change movmem to cpymem in comment.
8576         * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
8577         * config/c6x/c6x-protos.h: Change movmem to cpymem.
8578         * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
8579         * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
8580         * config/frv/frv.md (movmemsi): Change name to cpymemsi.
8581         * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
8582         * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
8583         * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
8584         expand_set_or_movmem_via_rep, expand_movmem_epilogue,
8585         expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
8586         expand_small_cpymem_or_setmem,
8587         expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
8588         expand_set_or_cpymem_constant_prologue,
8589         ix86_expand_set_or_cpymem): Change movmem to cpymem.
8590         * config/i386/i386-protos.h: Change movmem to cpymem.
8591         * config/i386/i386.h: Change movmem to cpymem in comment.
8592         * config/i386/i386.md (movmem<mode>): Change name to cpymem.
8593         (setmem<mode>): Change expansion function name.
8594         * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
8595         * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
8596         movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
8597         * config/m32c/m32c-protos.h: Change movmem to cpymem.
8598         * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
8599         * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
8600         * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
8601         to cpymem.
8602         * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
8603         * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
8604         * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
8605         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
8606         Change movmem to cpymem.
8607         * config/mips/mips.h: Change movmem to cpymem.
8608         * config/mips/mips.md (movmemsi): Change name to cpymemsi.
8609         * config/nds32/nds32-memory-manipulation.c
8610         (nds32_expand_movmemsi_loop_unknown_size,
8611         nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
8612         nds32_expand_movmemsi_unroll,
8613         nds32_expand_movmemsi): Change movmem to cpymem.
8614         * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
8615         * config/nds32/nds32-protos.h: Change movmem to cpymem.
8616         * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
8617         (pa_adjust_insn_length): Change call to compute_movmem_length.
8618         * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
8619         movmemdi, movmemdi_prereload,
8620         movmemdi_postreload): Change movmem to cpymem.
8621         * config/pdp11/pdp11.md (movmemhi, movmemhi1,
8622         movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
8623         * config/riscv/riscv.c: Change movmem to cpymem in comment.
8624         * config/riscv/riscv.h: Change movmem to cpymem.
8625         * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
8626         * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
8627         * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
8628         movmem to cpymem.
8629         * config/s390/s390-protos.h: Change movmem to cpymem.
8630         * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
8631         s390_expand_insv): Change movmem to cpymem.
8632         * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
8633         movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
8634         * config/sh/sh.md (movmemsi): Change name to cpymemsi.
8635         * config/sparc/sparc.h: Change movmem to cpymem in comment.
8636         * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
8637         for nonexistent function.
8638         * config/vax/vax.h: Change movmem to cpymem in comment.
8639         * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
8640         * config/visium/visium.h: Change movmem to cpymem in comment.
8641         * config/visium/visium.md (movmemsi): Change name to cpymemsi.
8642         * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
8643         * doc/md.texi: Change movmem to cpymem and update description to match.
8644         * doc/rtl.texi: Change movmem to cpymem.
8645         * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
8646         * doc/tm.texi: Regenerate.
8648 2019-06-27  Bill Schmidt  <wschmidt@linux.ibm.com>
8650         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
8651         -fvariable-expansion-in-unroller by default.
8652         * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
8653         default for Power.
8655 2019-06-27  David Edelsohn  <dje.gcc@gmail.com>
8657         Revert
8658         2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
8659         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
8661         * config.gcc(rs6000-*-*): Define target_gtfiles.
8663 2019-06-27  Jan Hubicka  <jh@suse.cz>
8665         * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
8666         (add_type_duplicate): When odr hash is not allocated, to nothing.
8667         (odr_based_tbaa_p): New function.
8668         (set_type_canonical_for_odr_type): New function.
8669         * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
8670         set_type_canonical_for_odr_type): New.
8671         * tree.c (gimple_canonical_types_compatible_p): ODR types with
8672         ODR based TBAA are not equivalent to non-ODR types.
8674 2019-06-27  Martin Liska  <mliska@suse.cz>
8676         PR tree-optimization/90974
8677         PR rtl-optimization/90975
8678         PR rtl-optimization/90976
8679         PR target/91016
8680         PR tree-optimization/91017
8681         * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
8682         unused tmp.
8683         * lra.c (lra_set_insn_recog_data): Remove a leftover from
8684         initial commit of IRA.
8685         * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
8686         of op0 and op1.
8687         * tree-vect-loop.c (vect_create_epilog_for_reduction):
8688         Remove unused mode1.
8689         * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
8690         to new_stmt_info.
8692 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
8694         PR target/90991
8695         * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
8696         instead of register_operand for operands[1], add m to its constraints
8697         if operands[2] uses "C" constraint.  Ensure in condition that if
8698         operands[2] is not 0, then operands[1] is not a MEM.  For last two
8699         alternatives, use unaligned loads instead of aligned if operands[1] is
8700         misaligned_operand.
8702 2019-06-27  Martin Liska  <mliska@suse.cz>
8704         * asan.c (asan_emit_allocas_unpoison): Remove obviously
8705         dead assignments.
8706         * bt-load.c (move_btr_def): Likewise.
8707         * builtins.c (expand_builtin_apply_args_1): Likewise.
8708         (expand_builtin_apply): Likewise.
8709         * cfgexpand.c (expand_asm_stmt): Likewise.
8710         (construct_init_block): Likewise.
8711         * cfghooks.c (verify_flow_info): Likewise.
8712         * cfgloopmanip.c (remove_path): Likewise.
8713         * cfgrtl.c (rtl_verify_bb_layout): Likewise.
8714         * cgraph.c (cgraph_node::set_pure_flag): Likewise.
8715         * combine.c (simplify_if_then_else): Likewise.
8716         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
8717         (choose_basereg): Likewise.
8718         (ix86_expand_prologue): Likewise.
8719         (ix86_preferred_output_reload_class): Likewise.
8720         * cselib.c (cselib_record_sets): Likewise.
8721         * df-scan.c (df_scan_alloc): Likewise.
8722         * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
8723         * early-remat.c (early_remat::record_equiv_candidates): Likewise.
8724         * emit-rtl.c (try_split): Likewise.
8725         * graphite-scop-detection.c (assign_parameter_index_in_region):
8726         Likewise.
8727         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
8728         * ira-color.c (setup_profitable_hard_regs): Likewise.
8729         * ira.c (rtx_moveable_p): Likewise.
8730         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
8731         * read-rtl.c (read_subst_mapping): Likewise.
8732         * regrename.c (scan_rtx): Likewise.
8733         * reorg.c (fill_slots_from_thread): Likewise.
8734         * tree-inline.c (tree_function_versioning): Likewise.
8735         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
8736         * tree-ssa-sink.c (statement_sink_location): Likewise.
8737         * tree-ssa-threadedge.c (thread_across_edge): Likewise.
8738         * tree-vect-loop.c (vect_get_loop_niters): Likewise.
8739         (vect_create_epilog_for_reduction): Likewise.
8740         * tree.c (build_nonstandard_integer_type): Likewise.
8742 2019-06-27  Richard Biener  <rguenther@suse.de>
8744         * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
8746 2019-06-27  Jun Ma  <JunMa@linux.alibaba.com>
8748         PR tree-optimization/89772
8749         * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
8750         out-of-bound accesses checking.
8752 2019-06-27  Martin Liska  <mliska@suse.cz>
8754         PR tree-optimization/91014
8755         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
8756         when LHS is NULL_TREE.
8758 2019-06-27  Martin Liska  <mliska@suse.cz>
8760         * symbol-summary.h (traverse): Pass
8761         argument a to the call of callback.
8762         (gt_ggc_mx): Mark arguments as unused.
8763         (gt_pch_nx): Likewise.
8765 2019-06-27  Kewen Lin  <linkw@gcc.gnu.org>
8767         PR target/62147
8768         * loop-iv.c (find_simple_exit): Call finite_loop_p to update
8769         finiteness.
8771 2019-06-26  Jeff Law  <law@redhat.com>
8773         PR tree-optimization/90883
8774         * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
8775         (delete_dead_or_redundant_assignment): Likewise.
8777         PR tree-optimization/90883
8778         * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
8779         * tree-ssa-dse.c: Update various comments to distinguish between
8780         dead and redundant stores.
8781         (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
8782         (dse_optimize_redundant_stores): New function.
8783         (delete_dead_or_redundant_call): Renamed from delete_dead_call.
8784         Distinguish between dead and redundant calls in dump output.  All
8785         callers updated.
8786         (delete_dead_or_redundant_assignment): Similarly for assignments.
8787         (dse_optimize_stmt): Handle _CHK variants.  For statements which
8788         store 0 into multiple memory locations, try to prove a subsequent
8789         store is redundant.
8791 2019-06-26  Uroš Bizjak  <ubizjak@gmail.com>
8793         PR target/89021
8794         * config/i386/i386.c (ix86_autovectorize_vector_sizes):
8795         Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
8797 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
8799         * config/rs6000/rs6000-internal.h (branch_island): New typedef.
8800         (branch_islands): New extern.
8801         * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
8802         * config/rs6000/rs6000.c: .. here.
8804 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
8806         * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
8807         (powerpc*-*-*) ... to here.
8809 2019-06-26  Jeff Law  <law@redhat.com>
8811         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
8812         memcpy, memmove and memset builtins.
8813         (maybe_trim_memstar_call): Likewise.
8815 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
8817         * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
8819 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
8821         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
8823 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
8825         * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
8826         declaration.
8827         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
8828         "static".
8829         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
8830         declaration.
8832 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
8834         * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
8836 2019-06-26  Richard Biener  <rguenther@suse.de>
8838         PR ipa/90982
8839         * tree-inline.c (remap_ssa_name): Copy SSA range info.
8841 2019-06-26  Richard Biener  <rguenther@suse.de>
8843         * lto-streamer.h (lto_bitmap_alloc): Remove.
8844         (lto_bitmap_free): Likewise.
8845         * lto-streamer.c (lto_bitmap_alloc): Remove.
8846         (lto_bitmap_free): Likewise.
8847         (lto_obstack): Likewise.
8848         (lto_obstack_initialized): Likewise.
8849         * lto-streamer-out.c (lto_output): Use own obstack for local
8850         bitmap, free it consistently.
8852 2019-06-26  Jakub Jelinek  <jakub@redhat.com>
8854         PR target/90991
8855         * config/i386/sse.md
8856         (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
8857         vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
8858         insns if operands[2] is misaligned_operand.
8860 2019-06-26  Li Jia He  <helijia@linux.ibm.com>
8862         * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
8863         TARGET_POWERPC64.
8864         * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
8865         to GPR.
8867 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
8869         * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
8871 2019-06-26  Martin Liska  <mliska@suse.cz>
8873         PR tree-optimization/90973
8874         * tree-vect-loop.c (vect_get_known_peeling_cost): Use
8875         epilogue_cost_vec instead of prologue_cost_vec for
8876         a epilogue cost.
8878 2019-06-26  Martin Liska  <mliska@suse.cz>
8880         * bb-reorder.c (connect_better_edge_p): Add missing else
8881         statement in the middle of if-else statements.
8883 2019-06-25  Hongtao Liu  <hongtao.liu@intel.com>
8884             H.J. Lu  <hongjiu.lu@intel.com>
8885             Olga Makhotina  <olga.makhotina@intel.com>
8887         * common/config/i386/i386-common.c
8888         (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
8889         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
8890         (OPTION_MASK_ISA2_AVX512F_UNSET): Add
8891         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
8892         (ix86_handle_option): Handle -mavx512vp2intersect.
8893         * config/i386/avx512vp2intersectintrin.h: New.
8894         * config/i386/avx512vp2intersectvlintrin.h: New.
8895         * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
8896         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8897         AVX512VP2INTERSECT.
8898         * config/i386/i386-builtin-types.def: Add new types.
8899         * config/i386/i386-builtin.def: Add new builtins.
8900         * config/i386/i386-builtins.c: (enum processor_features): Add
8901         F_AVX512VP2INTERSECT.
8902         (static const _isa_names_table isa_names_table): Ditto.
8903         * config/i386/i386-c.c (ix86_target_macros_internal): Define
8904         __AVX512VP2INTERSECT__.
8905         * config/i386/i386-expand.c (ix86_expand_builtin): Expand
8906         IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
8907         IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
8908         IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
8909         * config/i386/i386-modes.def (P2QI, P2HI): New modes.
8910         * config/i386/i386-options.c (ix86_target_string): Add
8911         -mavx512vp2intersect.
8912         (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
8913         * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
8914         P2HImode and P2QImode.
8915         (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
8916         number for P2QImode and P2HImode.
8917         (ix86_regmode_natural_size): New function.
8918         * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
8919         TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
8920         REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
8921         * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
8922         * config/i386/i386.opt: Add -mavx512vp2intersect.
8923         * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
8924         avx512vp2intersectvlintrin.h.
8925         * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
8926         (define_mode_iterator VI48_AVX512VP2VL): New.
8927         (avx512vp2intersect_2intersect<mode>,
8928         avx512vp2intersect_2intersectv16si): New define_insn patterns.
8929         * config.gcc: Add avx512vp2intersectvlintrin.h and
8930         avx512vp2intersectintrin.h to extra_headers.
8931         * doc/invoke.texi: Document -mavx512vp2intersect.
8933 2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
8935         * config/rs6000/darwin.h (ENDFILE_SPEC): New.
8937 2019-06-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
8939         * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
8940         savres_routine_syms, savres_routine_name, morestack_ref,
8941         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
8942         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
8943         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
8944         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
8945         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
8946         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
8947         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
8948         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
8949         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
8950         get_stack_clash_protection_probe_interval,
8951         get_stack_clash_protection_guard_size,
8952         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
8953         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
8954         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
8955         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
8956         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
8957         gen_frame_mem_offset, rs6000_savres_routine_name,
8958         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
8959         ptr_regno_for_savres, rs6000_emit_savres_rtx,
8960         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
8961         rs6000_global_entry_point_prologue_needed_p,
8962         rs6000_get_separate_components, rs6000_components_for_bb,
8963         rs6000_disqualify_components, rs6000_emit_prologue_components,
8964         rs6000_emit_epilogue_components, rs6000_set_handled_components,
8965         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
8966         rs6000_output_savres_externs, rs6000_output_function_prologue,
8967         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
8968         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
8969         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
8970         rs6000_output_function_epilogue, gen_add3_const,
8971         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
8972         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
8973         to rs6000-logue.c.
8974         (machine_function): Moved to rs6000.h.
8975         (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
8976         rs6000-internal.h.
8977         * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
8978         savres_routine_syms, savres_routine_name, morestack_ref,
8979         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
8980         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
8981         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
8982         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
8983         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
8984         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
8985         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
8986         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
8987         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
8988         get_stack_clash_protection_probe_interval,
8989         get_stack_clash_protection_guard_size,
8990         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
8991         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
8992         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
8993         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
8994         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
8995         gen_frame_mem_offset, rs6000_savres_routine_name,
8996         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
8997         ptr_regno_for_savres, rs6000_emit_savres_rtx,
8998         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
8999         rs6000_global_entry_point_prologue_needed_p,
9000         rs6000_get_separate_components, rs6000_components_for_bb,
9001         rs6000_disqualify_components, rs6000_emit_prologue_components,
9002         rs6000_emit_epilogue_components, rs6000_set_handled_components,
9003         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
9004         rs6000_output_savres_externs, rs6000_output_function_prologue,
9005         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
9006         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
9007         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
9008         rs6000_output_function_epilogue, gen_add3_const,
9009         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
9010         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
9011         to here from rs6000.c.
9012         * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
9013         * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
9014         quad_address_offset_p) Moved to here from rs6000.c.
9015         * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
9016         * config/config.gcc: Add new source file rs6000-logue.c to garbage
9017         collector.
9019 2019-06-25  Martin Liska  <mliska@suse.cz>
9021         * hash-table.c (hashtab_chk_error): Move here from ...
9022         * hash-table.h (hashtab_chk_error): ... here.
9024 2019-06-25  Martin Liska  <mliska@suse.cz>
9026         PR tree-optimization/90978
9027         * df-scan.c (df_update_entry_block_defs): Remove dead else
9028         branch.
9029         (df_update_exit_block_uses): Likewise.
9031 2019-06-25  Kwok Cheung Yeung  <kcy@codesourcery.com>
9032             Andrew Stubbs  <ams@codesourcery.com>
9034         * config.gcc (thread_file): Set to gcn for AMD GCN.
9035         * config/gcn/gcn.c (gcn_emutls_var_init): New function.
9036         (TARGET_EMUTLS_VAR_INIT): New hook.
9038 2019-06-25  Martin Jambor  <mjambor@suse.cz>
9040         PR ipa/90939
9041         * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
9043 2019-06-25  Richard Biener  <rguenther@suse.de>
9045         PR tree-optimization/90930
9046         * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
9047         into parallel form in the last pass instance.
9049 2019-06-25  Claudiu Zissulescu  <claziss@synopsys.com>
9051         * config/arc/arc.c (arc_symbol_binds_local_p): New function.
9052         (arc_legitimize_pic_address): Simplify and cleanup the function.
9053         (SYMBOLIC_CONST): Remove.
9054         (prepare_pic_move): Likewise.
9055         (prepare_move_operands): Handle complex mov cases here.
9056         (arc_legitimize_address_0): Remove call to
9057         arc_legitimize_pic_address.
9058         (arc_legitimize_address): Remove call to
9059         arc_legitimize_tls_address.
9060         * config/arc/arc.md (movqi_insn): Allow Cm3 match.
9061         (movhi_insn): Likewise.
9063 2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
9065         * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
9066         PTRDIFF_TYPE.
9067         * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
9068         format of "__intN" types for UINTMAX_TYPE.
9069         * stor-layout.c (initialize_sizetypes): Accept "__intN__"
9070         format of "__intN" types for SIZETYPE.
9071         * tree.c (build_common_tree_nodes): Accept "__intN__"
9072         format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
9073         * doc/invoke.texi: Document that __intN__ disables pedantic
9074         warnings.
9076 2019-06-25  Jan Hubicka  <jh@suse.cz>
9078         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
9079         base2_alias_set is non-zero before doing TBAA based disambiguation.
9081 2019-06-25  Martin Liska  <mliska@suse.cz>
9083         PR tree-optimization/90973
9084         * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
9085         of prologue and epilogue.
9087 2019-06-24  Jan Hubicka  <jh@suse.cz>
9089         * ipa-utils.h (type_with_linkage_p): Verify that type is
9090         CXX_ODR_P.
9091         (odr_type_p): Remove extra return.
9092         * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
9093         hash STRING_FLAG only for arrays and integers.
9094         * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
9095         Update analogously.
9096         * tree-streamer-out.c (pack_ts_type_common_value_fields):
9097         Likewise.
9098         * print-tree.c (print_node): Print cxx-odr-p
9099         and string-flag.
9100         * tree.c (need_assembler_name_p): Also check that type
9101         is CXX_ODR_TYPE_P
9102         (verify_type_variant): Update verification of SRING_FLAG;
9103         also check CXX_ODR_P.
9104         * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
9105         (TYPE_STRING_FLAG): Use it.
9106         (TYPE_CXX_ODR_P): New macro.
9107         * dwarf2out.c (gen_array_type_die): First check that type
9108         is an array and then test string flag.
9110 2019-06-24  Richard Biener  <rguenther@suse.de>
9112         PR tree-optimization/90972
9113         * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
9114         in common code, dealing with STRING_CST properly.
9116 2019-06-24  Richard Biener  <rguenther@suse.de>
9118         PR tree-optimization/90930
9119         PR tree-optimization/90316
9120         * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
9121         decrement of limit.
9123 2019-06-24  Martin Sebor  <msebor@redhat.com>
9125         * tree-pretty-print.h: Remove unnecessary punctuation characters
9126         from a diagnostic.
9127         * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
9129 2019-06-24  Jonathan Wakely  <jwakely@redhat.com>
9131         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
9132         (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
9133         (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
9135 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
9137         * config/rs6000/darwin.h: Handle GCC target pragma.
9139 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
9141         * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
9143 2019-06-22  Jeff Law  <law@redhat.com>
9145         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9147 2019-06-22  Jan Hubicka  <jh@suse.cz>
9149         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
9150         give up on bitfields; continue searching for different refs
9151         appearing later.
9153 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
9155         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
9156         even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
9157         containing the offset as possible simd lane access.  Look through
9158         widening conversion.  Move the
9159         TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
9161 2019-06-21  Richard Biener  <rguenther@suse.de>
9163         PR tree-optimization/90930
9164         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
9165         flag on new stmts to avoid re-processing them.
9167 2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>
9169         PR c++/90875 - added -Wswitch-outside-range option
9170         * doc/invoke.texi (Wswitch-outside-range): Document.
9172 2019-06-21  Jeff Law  <law@redhat.com>
9174         PR tree-optimization/90949
9175         * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
9176         * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
9178 2019-06-21  Richard Biener  <rguenther@suse.de>
9180         PR debug/90914
9181         * dwarf2out.c (prune_unused_types_walk): Always consider
9182         function-local extern declarations as used.
9184 2019-06-21  Richard Biener  <rguenther@suse.de>
9186         PR tree-optimization/90913
9187         * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
9188         the scalar variant of if-conversion versioning.
9190 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
9192         * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
9193         create another "omp scan inscan exclusive" array if
9194         !ctx->scan_inclusive.
9195         (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
9196         (lower_omp_scan): Likewise.
9197         * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
9198         2-bit bitfield for simd_lane_access_p member.
9199         * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
9200         aux == (void *)-4 as simd lane access.
9201         * tree-vect-stmts.c (check_scan_store): Handle exclusive scan.  Update
9202         comment with permutations to show the canonical permutation order.
9203         (vectorizable_scan_store): Handle exclusive scan.
9204         (vectorizable_store): Call vectorizable_scan_store even for
9205         STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
9207         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
9208         "omp simd array" arrays with one byte elements.
9210 2019-06-20  Uroš Bizjak  <ubizjak@gmail.com>
9212         * config/alpha/alpha.md (@unaligned_store<mode>):
9213         Rename from unaligned_store<mode>.
9214         (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
9215         * config/alpha/sync.md (@load_locked_<mode>): Rename
9216         from load_locked_<mode>.
9217         (@store_conditional_<mode>): Rename from store_conditional_<mode>.
9218         (@atomic_compare_and_swap<mode>_1): Rename
9219         from atomic_compare_and_swap<mode>_1.
9220         (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
9221         * config/alpha/alpha.c (alpha_expand_mov_nobwx):
9222         Use gen_reload_in_aligned and gen_unaligned_store.
9223         (emit_load_locked): Remove.
9224         (emit_store_conditional): Ditto.
9225         (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
9226         (alpha_split_compare_and_swap): Ditto.
9227         (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
9228         (alpha_split_compare_and_swap_12): Use gen_load_locked
9229         and gen_store_conditional.
9230         (alpha_split_atomic_exchange): Ditto.
9231         (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
9232         (alpha_split_atomic_exchange_12): Use gen_load_locked
9233         and gen_store_conditional.
9235 2019-06-20  Richard Earnshaw  <rearnsha@arm.com>
9237         * config/aarch64/aarch64-errata.h: New file.
9238         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
9239         (CA53_ERR_843419_SPEC): Delete.
9240         (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
9241         * config/aarch64/aarch64-linux.h: Likewise.
9242         * config/aarch64/aarch64-netbsd.h: Likewise.
9243         * config/aarch64/aarch64-freebsd.h: Likewise.
9245 2019-06-20  Marek Polacek  <polacek@redhat.com>
9247         * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
9249 2019-06-20  Michael Meissner  <meissner@linux.ibm.com>
9251         * config/rs6000/rs6000.md (isa attribute): Add support for
9252         for a future processor.
9254 2019-06-20  H.J. Lu  <hongjiu.lu@intel.com>
9256         PR target/54855
9257         * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
9258         standard scalar operation pattern for V2DF.
9259         * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
9260         (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
9261         (*ieee_<ieee_maxmin><mode>3): Likewise.
9262         (vec_setv2df_0): Likewise.
9264 2019-06-20  Jan Hubicka  <jh@suse.cz>
9266         * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
9267         parameter; it has no use in gimple memory model.
9268         (indirect_ref_may_alias_decl_p): Update.
9270 2019-06-20  Martin Liska  <mliska@suse.cz>
9272         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
9273         to 10.
9275 2019-06-20  Jakub Jelinek  <jakub@redhat.com>
9277         * tree-vect-stmts.c (enum scan_store_kind): New type.
9278         (scan_store_can_perm_p): Change last argument from int * to
9279         vec<enum scan_store_kind> *, record precisely which permutations
9280         need whole vector left shift or that plus VEC_COND_EXPR.
9281         (vectorizable_scan_store): Adjust caller, use whole vector left shift
9282         and additional VEC_COND_EXPR only for those iterations that need it.
9284 2019-06-20  Alexandre Oliva  <oliva@adacore.com>
9286         * config.gcc: Fix ARM --with-fpu checking and error message.
9288 2019-06-19  Marek Polacek  <polacek@redhat.com>
9290         PR c++/60364 - noreturn after first decl not diagnosed.
9291         * attribs.c (get_attribute_namespace): No longer static.
9292         (decl_attributes): Avoid shadowing.  Preserve the C++11 form for C++11
9293         attributes.
9294         (attr_noreturn_exclusions): Make it extern.
9295         * attribs.h (get_attribute_namespace): Declare.
9296         * tree-inline.c (function_attribute_inlinable_p): Use
9297         get_attribute_name.
9299 2019-06-19  Martin Sebor  <msebor@redhat.com>
9301         PR tree-optimization/90626
9302         * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
9304         PR tree-optimization/90626
9305         * tree-ssa-strlen.c (strxcmp_unequal): New function.
9306         (handle_builtin_string_cmp): Call it.
9308 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
9310         * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
9311         and DARWIN_NOPIE_SPEC.
9312         (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
9313         (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
9314         (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
9315         (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
9316         (DARWIN_EXPORT_DYNAMIC): Delete.
9317         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
9318         and pie options processing to  darwin.h.
9319         * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
9321 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
9323         * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
9324         in computing the number of options to be moved.
9326 2019-06-19  Maya Rashish  <coypu@sdf.org>
9328         *  config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
9329         (CLEAR_INSN_CACHE) Use it.
9331 2019-06-19  Uroš Bizjak  <ubizjak@gmail.com>
9333         * config/i386/i386.md (cmpstrnsi): Remove dead code.
9335 2019-06-19  Wilco Dijkstra  <wdijkstr@arm.com>
9337         PR middle-end/84521
9338         * builtins.c (expand_builtin_setjmp_setup): Save
9339         hard_frame_pointer_rtx.
9340         (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
9341         restore fp.
9342         * function.c (expand_function_start): Save hard_frame_pointer_rtx for
9343         non-local goto.
9344         * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
9345         elimination code.
9346         (remove_reg_equal_offset_note): Remove unused function.
9347         * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
9348         code.
9349         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9350         (arc_builtin_setjmp_frame_value): Remove function.
9351         * config/avr/avr.c  (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9352         (avr_builtin_setjmp_frame_value): Remove function.
9353         * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9354         (ix86_builtin_setjmp_frame_value): Remove function.
9355         * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
9356         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9357         (sparc_builtin_setjmp_frame_value): Remove function.
9358         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9359         (vax_builtin_setjmp_frame_value): Remove function.
9360         * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
9361         pointer if has_nonlocal_label.
9363 2019-06-19  Jakub Jelinek  <jakub@redhat.com>
9365         * doc/md.texi: Document vec_shl_<mode> pattern.
9366         * optabs.def (vec_shl_optab): New optab.
9367         * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
9368         argument, if == vec_shl_optab, check for left whole vector shift
9369         pattern rather than right shift.
9370         (expand_vec_perm_const): Add vec_shl_optab support.
9371         * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
9372         in the comment.
9373         * tree-vect-generic.c (lower_vec_perm): Support permutations which
9374         can be handled by vec_shl_optab.
9375         * tree-vect-stmts.c (scan_store_can_perm_p): New function.
9376         (check_scan_store): Use it.
9377         (vectorizable_scan_store): If target can't do normal permutations,
9378         try to use whole vector left shifts and if needed a VEC_COND_EXPR
9379         after it.
9380         * config/i386/sse.md (vec_shl_<mode>): New expander.
9382         * omp-low.c (lower_rec_input_clauses): Handle references properly
9383         in inscan clauses.
9384         (lower_omp_scan): Likewise.
9386 2019-06-19  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
9388         * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
9389         mem_mode is BLKmode.
9391 2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
9393         PR target/90922
9394         * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
9395         pointer adjustment for the case of no callee-saved registers and
9396         stack frame bigger than 128 bytes.
9398 2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
9400         PR middle-end/90862
9401         * omp-low.c (check_omp_nesting_restrictions): Handle
9402         GF_OMP_TARGET_KIND_OACC_DECLARE.
9404 2019-06-18  Uroš Bizjak  <ubizjak@gmail.com>
9406         * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
9407         (@add<mode>3_carry): Rename from add<mode>3_carry.
9408         (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
9409         (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
9410         (@copysign<mode>3_const): Rename from copysign<mode>3_const.
9411         (@copysign<mode>3_var): Rename from copysign<mode>3_var.
9412         (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
9413         (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
9414         (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
9415         (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
9416         (cmpstrnsi): Use gen_cmp_1.
9417         (lwp_slwpcb): Use gen_lwp_slwpcb_1.
9418         (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
9419         (@umonitor_<mode>): Rename from umonitor_<mode>.
9420         * config/i386/i386-expand.c (ix86_expand_copysign):
9421         Use gen_copysign3_const and gen_copysign3_var.
9422         (ix86_expand_xorsign): Use gen_xorsign3_1.
9423         (ix86_expand_branch): Use gen_sub3_carry_ccc,
9424         gen_sub3_carry_ccgz and gen_cmp1.
9425         (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
9426         (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
9427         (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
9428         (ix86_split_lshr): Ditto.
9429         (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
9431 2019-06-18  Jason Merrill  <jason@redhat.com>
9433         * tree.c (build_constructor): Add MEM_STAT_DECL.
9435 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
9437         * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
9438         * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
9439         (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
9440         (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
9441         (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
9442         (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
9443         (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
9444         Use CC_NZC instead of CC.
9445         * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
9446         * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
9447         (aarch64_print_operand): Handle E_CC_NZCmode.
9448         (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
9449         of gen_set_clobber_cc.
9451 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
9453         * config/aarch64/aarch64-sve.md: Tabify file.
9455 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
9457         * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
9458         * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
9459         * config/aarch64/aarch64-sve.md: Use it.
9461 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
9463         * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
9464         * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
9465         (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
9466         (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
9467         (aarch64_expand_sve_vec_cmp_int): Use it.
9468         (aarch64_expand_sve_vec_cmp_float): Likewise.
9469         * config/aarch64/aarch64-sve.md: Likewise throughout.
9471 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
9472             Kugan Vivekanandarajah  <kuganv@linaro.org>
9474         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
9475         (*cond_<optab><mode>_z): Fold into...
9476         (*cond_<optab><mode>_any): ...here.  Also handle cases in which
9477         operand 4 can be tied to operand 0 (either inherently or via RA).
9479 2019-06-18  Richard Biener  <rguenther@suse.de>
9481         PR debug/90900
9482         * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
9483         as if optimized away.
9485 2019-06-18  Tom de Vries  <tdevries@suse.de>
9487         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
9488         * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
9489         * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
9490         Rename to ...
9491         (define_insn "@set_softstack_<mode>"): ... this.
9492         (define_insn "omp_simt_enter_<mode>"): Rename to ...
9493         (define_insn "@omp_simt_enter_<mode>"): ... this.
9494         (define_insn "omp_simt_exit_<mode>"): Rename to ...
9495         (define_insn "@omp_simt_exit_<mode>"): ... this.
9497 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
9499         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
9500         vf parameter.  Restore the previous iv step of nscalars_step,
9501         but give it iv_type rather than compare_type.  Tweak code order
9502         to match the comments.
9503         (vect_set_loop_condition_masked): Update accordingly.
9504         * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
9505         for iv_precision.  Tweak comment formatting.
9507 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
9509         * config/darwin.c: Strip trailing whitespace.
9511 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
9513         * config/darwin.c (darwin_emit_unwind_label): New default to false.
9514         (darwin_override_options): Set darwin_emit_unwind_label as needed.
9516 2019-06-18  Martin Jambor  <mjambor@suse.cz>
9518         PR ipa/90889
9519         * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
9520         caller does not have flag_ipa_cp set.
9522 2019-06-18  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
9524         * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
9525         from "*fold_left_plus_<mode>", updated operands order.
9526         * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
9527         * internal-fn.c (mask_fold_left_direct): New define.
9528         (expand_mask_fold_left_optab_fn): Likewise.
9529         (direct_mask_fold_left_optab_supported_p): Likewise.
9530         * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
9531         * optabs.def (mask_fold_left_plus_optab): New optab.
9532         * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
9533         masked internal_fn for a reduction ifn.
9534         (vectorize_fold_left_reduction): Add support for masking reductions.
9536 2019-06-18  Kewen Lin  <linkw@gcc.gnu.org>
9538         PR middle-end/80791
9539         * target.def (predict_doloop_p): New hook.
9540         * targhooks.h (default_predict_doloop_p): New declaration.
9541         * targhooks.c (default_predict_doloop_p): New function.
9542         * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
9543         * doc/tm.texi: Regenerate.
9544         * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
9545         (TARGET_PREDICT_DOLOOP_P): New macro.
9546         * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
9548 2019-06-17  Jakub Jelinek  <jakub@redhat.com>
9550         * omp-low.c (struct omp_context): Add scan_inclusive field.
9551         (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
9552         if inclusive scan.
9553         (struct omplow_simd_context): Add lastlane member.
9554         (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
9555         reductions.  Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
9556         1 or 2 argument.
9557         (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
9558         (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
9559         (lower_omp_scan): New function.
9560         (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
9561         * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
9562         check 3rd argument if present rather than 2nd.
9563         * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
9564         (struct _stmt_vec_info): Change simd_lane_access_p from bool into
9565         2-bit bitfield.
9566         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
9567         scan_map.  For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
9568         than 2nd.
9569         (_loop_vec_info::~_loop_vec_info): Delete scan_map.
9570         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
9571         different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
9572         init.
9573         (vect_find_stmt_data_reference): Encode in ->aux the 2nd
9574         IFN_GOMP_SIMD_LANE argument.
9575         (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
9576         encoded ->aux value.
9577         * tree-vect-stmts.c: Include attribs.h.
9578         (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
9579         (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
9580         functions.
9581         (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
9582         (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
9584 2019-06-17  Uroš Bizjak  <ubizjak@gmail.com>
9586         PR target/62055
9587         * config/i386/i386.md (*nabstf2_1): New insn pattern.
9588         (*nabs<mode>2_1): Ditto.
9589         (nabs sse-reg splitter): New splitter.
9590         * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
9592 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
9594         PR bootstrap/90873.
9595         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
9596         TMR index check.
9598 2019-06-17  Tom de Vries  <tdevries@suse.de>
9600         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
9601         * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
9602         * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
9603         ...
9604         (define_insn "set_softstack_<mode>"): ... this.  Use P iterator on
9605         match_operand 0.
9606         (define_insn "omp_simt_enter_insn"): Rename to ...
9607         (define_insn "omp_simt_enter_<mode>"): ... this.  Use P iterator on
9608         match_operand 0, 1 and 2, as well as the unspec_volatile result.
9609         (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
9610         gen_omp_simt_enter_si.
9611         (define_expand "omp_simt_exit"): New.
9612         (define_insn "omp_simt_exit"): Rename to ...
9613         (define_insn "omp_simt_exit_<mode>"): ... this.  Use P iterator on
9614         match_operand 0.
9616 2019-06-17  Matthew Green  <mrg@eterna.com.au>
9617             Maya Rashish  <coypu@sdf.org>
9619         * config.gcc (aarch64*-*-netbsd*): New target.
9620         * config/aarch64/aarch64-netbsd.h: New file.
9621         * config/aarch64/t-aarch64-netbsd: Likewise.
9623 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
9625         * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
9626         the access path from base to first VIEW_CONVERT_EXPR or
9627         BIT_FIELD_REF.
9629 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
9631         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
9632         access path on BIT_FIELD_REFs.
9634 2019-06-17  Martin Liska  <mliska@suse.cz>
9636         PR ipa/90874
9637         * ipa-utils.h (odr_type_p): Remove dead code.
9639 2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9641         * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
9642         alternative Solaris 11.4 format.
9643         * configure: Regenerate.
9645 2019-06-17  Tom de Vries  <tdevries@suse.de>
9647         * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
9648         (define_insn "call_insn_<mode>"): ... this.  Use P iterator on
9649         match_operand 0.
9650         (define_insn "call_value_insn"): Rename to ...
9651         (define_insn "call_value_insn_<mode>"): this.  Use P iterator on
9652         match_operand 0.
9653         (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
9654         DI.
9656 2019-06-16  John David Anglin  <danglin@gcc.gnu.org>
9658         PR middle-end/64242
9659         * config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
9660         frame clobbers and schedule block.
9661         (builtin_longjmp): Likewise.
9663 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
9665         * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
9666         describe how to perform MSPABI compliant 64-bit shift.
9667         * config/msp430/msp430.md (ashldi3): New define_expand.
9668         (ashrdi3): New define_expand.
9669         (lshrdi3): New define_expand.
9671 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
9673         * doc/sourcebuild.texi: Document new effective target keyword
9674         longlong64.
9676 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
9678         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
9679         indirect_refs_may_alias_p): Revert accidental commits.
9681         * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
9682         at the end of structures.
9684 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
9686         * config/darwin.c (machopic_indirect_call_target): Use renamed
9687         darwin_picsymbol_stubs to decide on output.
9688         (darwin_override_options): Handle darwin_picsymbol_stubs.
9689         * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
9690         (LD64_VERSION): Revise default.
9691         * config/darwin.opt: (mpic-symbol-stubs): New option.
9692         (darwin_picsymbol_stubs): New variable.
9693         * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
9694         rename to TARGET_MACHO_PICSYM_STUBS.
9695         * config/i386/i386.c (output_pic_addr_const): Likewise.
9696         * config/i386/i386.h Likewise.
9697         * config/rs6000/darwin.h: Likewise.
9698         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
9699         darwin_picsymbol_stubs.
9701 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
9703         * config/darwin.opt (prebind, noprebind, seglinkedit,
9704         noseglinkedit): Add RejectNegative.
9706 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
9708         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
9709         in my previous patch.
9711 2019-06-16  Tom de Vries  <tdevries@suse.de>
9713         PR tree-optimization/89376
9714         * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
9716 2019-06-15  Maya Rashish  <coypu@sdf.org>
9718         * doc/invoke.texi (Spec Files): Update location of the
9719         Fortran spec file.
9721 2019-06-15  Gerald Pfeifer  <gerald@pfeifer.com>
9723         * doc/extend.texi (Common Function Attributes): Clarify
9724         no_sanitize.  Fix grammar.
9726 2019-06-15  Jan Hubicka  <hubicka@ucw.cz>
9728         * tree-ssa-alias.c (alias_stats): Add
9729         nonoverlapping_component_refs_p_may_alias,
9730         nonoverlapping_component_refs_p_no_alias,
9731         nonoverlapping_component_refs_of_decl_p_may_alias,
9732         nonoverlapping_component_refs_of_decl_p_no_alias.
9733         (dump_alias_stats): Dump them.
9734         (nonoverlapping_component_refs_of_decl_p): Add stats.
9735         (nonoverlapping_component_refs_p): Add stats; do not stop on first
9736         ARRAY_REF.
9738 2019-06-15  Uroš Bizjak  <ubizjak@gmail.com>
9740         * config/i386/i386.md (and<mode>3): Generate zero-extends for
9741         TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
9742         only.
9743         (*anddi3_doubleword): Split before reload. Merge with
9744         anddi->zext pre-reload splitter.
9745         (*andndi3_doubleword): Split before reload.
9746         (*<code>di3_doubleword): Ditto.
9747         (*one_cmpldi2_doubleword): Ditto.
9749 2019-06-15  Jakub Jelinek  <jakub@redhat.com>
9751         PR middle-end/90779
9752         * gimplify.c: Include omp-offload.h and context.h.
9753         (gimplify_bind_expr): Add "omp declare target" attributes
9754         to static block scope variables inside of target region or target
9755         functions.
9757 2019-06-15  Tom de Vries  <tdevries@suse.de>
9759         PR tree-optimization/90009
9760         * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
9761         Return NULL if bb contains IFN_UNIQUE.
9763 2019-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
9765         * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
9766         (un): New define_mode_attr.
9767         (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
9768         (isel_<un>signed_<GPR:mode>): ... this.  New define_insn.
9769         (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
9770         merge into ...
9771         (isel_reversed_<un>signed_<GPR:mode>): ... this.  New define_insn.
9773 2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
9775         * config/darwin.opt: Add RejectNegative where needed, reorder
9776         and add minimal functional descriptions.
9778 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
9780         PR rtl-optimization/90765
9781         * calls.c (update_stack_alignment_for_call): New function.
9782         (expand_call): Call update_stack_alignment_for_call when
9783         outgoing parameter is passed in the stack.
9784         (emit_library_call_value_1): Likewise.
9785         * function.c (locate_and_pad_parm): Don't update
9786         stack_alignment_needed and preferred_stack_boundary.
9788 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
9790         PR target/90877
9791         * config/i386/i386-features.c
9792         (dimode_scalar_chain::compute_convert_gain): Replace
9793         mmxsse_to_integer with sse_to_integer.
9794         * config/i386/i386.c (ix86_register_move_cost): Verify that
9795         moves between MMX and non-MMX units require secondary memory.
9796         Correct costs of moves between SSE and integer units.
9797         * config/i386/i386.h (processor_costs): Rename cost of moving
9798         SSE register to integer to sse_to_integer.  Rename cost of
9800 2019-06-14  Matt Thomas  <matt@3am-software.com>
9801             Matthew Green  <mrg@eterna.com.au>
9802             Nick Hudson  <skrll@netbsd.org>
9803             Maya Rashish  <coypu@sdf.org>
9804             Richard Earnshaw  <rearnsha@arm.com>
9806         * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
9807         * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
9808         * config/arm/netbsd-eabi.h: New file.
9809         * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
9810         redefining.
9811         (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
9812         * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
9813         (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
9814         (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
9816 2019-06-14  Richard Biener  <rguenther@suse.de>
9818         * tree-loop-distribution.c (classify_partition): Return
9819         whether a reduction appeared in all partitions and do not
9820         stop builtin detection because of this.
9821         (distribute_loop): Sort a non-builtin partition last if
9822         there's a reduction in all partitions and make sure the
9823         partition prevailing as last is not a builtin.
9825 2019-06-14  Feng Xue  <fxue@os.amperecomputing.com>
9827         PR ipa/90401
9828         * ipa-prop.c (add_to_agg_contents_list): New function.
9829         (clobber_by_agg_contents_list_p): Likewise.
9830         (extract_mem_content): Likewise.
9831         (get_place_in_agg_contents_list): Delete.
9832         (determine_known_aggregate_parts): Renamed from
9833         determine_locally_known_aggregate_parts.  New parameter
9834         aa_walk_budget_p.
9836 2019-06-13  Martin Sebor  <msebor@redhat.com>
9838         PR tree-optimization/90662
9839         * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
9840         to the same type.
9842 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
9844         PR bootstrap/90873
9845         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
9846         dbase is not TARGET_MEM_REF.
9848 2019-06-13  Uroš Bizjak  <ubizjak@gmail.com>
9850         * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
9851         Update all uses.
9852         (and<mode>3): Use gen_extend_insn instead of indirect functions.
9853         Do not generate DImode extends for 32bit targets.
9854         (and->zext post-reload splitter): Use gen_extend_insn
9855         instead of indirect functions.
9856         (anddi->zext pre-reload splitter): New.
9857         (*zext<mode>_doubleword_and): Remove.
9858         (*zext<mode>_doubleword): Ditto.
9859         (*zextsi_doubleword): Dittto.
9861 2019-06-13  Uroš Bizjak  <ubizjak@gmail.com>
9863         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
9864         Use gen_sub3_insn instead of indirect function.
9865         (ix86_expand_ashl_const): Use gen_add2_insn instead of
9866         indirect function.
9867         (ix86_adjust_counter): Ditto.
9869 2019-06-13  Jiufu Guo  <guojiufu@linux.ibm.com>
9870             Lijia He  <helijia@linux.ibm.com>
9872         PR tree-optimization/77820
9873         * tree-ssa-threadedge.c
9874         (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
9875         function.
9876         (thread_across_edge): Add call to
9877         edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
9879 2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
9881         * config/darwin-driver.c (validate_macosx_version_min): New.
9882         (darwin_default_min_version): Cleanup and validate supplied version.
9883         (darwin_driver_init): Likewise and push cleaned version into opts.
9885 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
9887         PR tree-optimization/90869
9888         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
9889         converts in MEM_REF referencing decl rather than view converts
9890         from decl type to MEM_REF type.
9892 2019-06-13  Richard Biener  <rguenther@suse.de>
9894         PR tree-optimization/90856
9895         * tree-sra.c (build_ref_for_model): Only use
9896         build_reconstructed_reference when address-spaces are the same.
9898 2019-06-13  Jakub Jelinek  <jakub@redhat.com>
9900         * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
9901         wrap ei variable name in the declaration in ()s.
9902         (nvptx_single): Actually use mode_label variable.  Formatting fix.
9904 2019-06-13  Richard Biener  <rguenther@suse.de>
9906         * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
9907         * tree-vectorizer.c (vect_loop_vectorized_call): Export and
9908         also return the condition stmt.
9909         * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
9910         loop we can version and version that, reusing the loop version
9911         created by if-conversion instead of versioning again.
9913 2019-06-13  Aldy Hernandez  <aldyh@redhat.com>
9915         * gimple-loop-versioning.cc (prune_loop_conditions): Use
9916         may_contain_p.
9917         * tree-vrp (value_range_base::may_contain_p): Call into
9918         value_inside_range.
9919         (value_inside_range): Make private inside value_range_base class.
9920         Take min/max from *this.
9921         (range_includes_p): Remove.
9922         * tree-vrp.h (value_range_base): Add value_inside_range.
9923         (range_includes_p): Remove.
9924         (range_includes_zero_p): Call may_contain_p.
9925         * vr-values.c (compare_range_with_value): Same.
9927 2019-06-13  Claudiu Zissulescu  <claziss@synopsys.com>
9929         * doc/extend.texi (ARC Function Attributes): Update info.
9931 2019-06-13  Feng Xue  <fxue@os.amperecomputing.com>
9933         PR tree-optimization/89713
9934         * doc/invoke.texi (-ffinite-loops): Document new option.
9935         * common.opt (-ffinite-loops): New option.
9936         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
9937         IFN_GOACC_LOOP calls as necessary.
9938         * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
9939         is finite.
9940         * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
9941         IFN_GOACC_LOOP call is not used.
9942         * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
9944 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
9946         PR target/88838
9947         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
9948         compare_type is not with Pmode size, we will create an IV with
9949         Pmode size with truncated use (i.e. converted to the correct type).
9950         * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
9951         (vect_iv_limit_for_full_masking): New. Factored out of
9952         vect_set_loop_condition_masked.
9953         * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
9954         (vect_iv_limit_for_full_masking): Declare.
9956 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
9958         PR target/88834
9959         * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
9960         IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
9961         (get_alias_ptr_type_for_ptr_address): Likewise.
9962         (add_iv_candidate_for_use): Add scaled index candidate if useful.
9963         * tree-ssa-address.c (preferred_mem_scale_factor): New.
9964         * config/aarch64/aarch64.c (aarch64_classify_address): Relax
9965         allow_reg_index_p.
9967 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
9969         * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
9971 2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>
9973         * common/config/pru/pru-common.c: New file.
9974         * config.gcc: Add PRU target.
9975         * config/pru/alu-zext.md: New file.
9976         * config/pru/constraints.md: New file.
9977         * config/pru/predicates.md: New file.
9978         * config/pru/pru-opts.h: New file.
9979         * config/pru/pru-passes.c: New file.
9980         * config/pru/pru-pragma.c: New file.
9981         * config/pru/pru-protos.h: New file.
9982         * config/pru/pru.c: New file.
9983         * config/pru/pru.h: New file.
9984         * config/pru/pru.md: New file.
9985         * config/pru/pru.opt: New file.
9986         * config/pru/t-pru: New file.
9987         * doc/extend.texi: Document PRU pragmas.
9988         * doc/invoke.texi: Document PRU-specific options.
9989         * doc/md.texi: Document PRU asm constraints.
9991 2019-06-12  Martin Sebor  <msebor@redhat.com>
9993         PR middle-end/90676
9994         * tree-pretty-print.c (dump_mem_ref): New function.  Include
9995         MEM_REF type in output when different size than operand.
9996         (dump_generic_node): Move code to dump_mem_ref and call it.
9998 2019-06-12  Martin Sebor  <msebor@redhat.com>
10000         PR tree-optimization/90662
10001         * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
10002         to arrays.
10004 2019-06-12  Tom de Vries  <tdevries@suse.de>
10006         PR tree-optimization/90009
10007         * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
10009 2019-06-12  Martin Liska  <mliska@suse.cz>
10011         * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
10012         the created map.
10013         * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
10014         * mem-stats.h (mem_alloc_description::mem_alloc_description):
10015         Do not sanitize created maps.
10017 2019-06-12  Aldy Hernandez  <aldyh@redhat.com>
10019         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
10020         value_range::singleton_p.
10021         * tree-vrp.c (value_range_constant_singleton): Remove.
10022         * tree-vrp.h (value_range_constant_singleton): Remove.
10023         * vr-values.c (vr_values::singleton): Use
10024         value_range::singleton_p.
10026 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
10028         PR target/90811
10029         * cfgexpand.c (align_local_variable): Add really_expand argument,
10030         don't SET_DECL_ALIGN if it is false.
10031         (add_stack_var): Add really_expand argument, pass it through to
10032         align_local_variable.
10033         (expand_one_stack_var_1): Pass true as really_expand to
10034         align_local_variable.
10035         (expand_one_ssa_partition): Pass true as really_expand to
10036         add_stack_var.
10037         (expand_one_var): Pass really_expand through to add_stack_var.
10039 2019-06-12  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
10041         * config/arm/iterators.md (VABAL): New int iterator.
10042         * config/arm/neon.md (<sup>sadv16qi): New define_expand.
10043         * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
10044         UNSPEC_VABAL_U values.
10046 2019-06-12  Martin Liska  <mliska@suse.cz>
10048         * value-prof.c (stream_out_histogram_value): Only first value
10049         can't be negative.
10051 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
10053         PR c/90760
10054         * symtab.c (symtab_node::set_section): Allow being called on aliases
10055         as long as they aren't analyzed yet.
10057 2019-06-11  Faraz Shahbazker  <fshahbazker@wavecomp.com>
10059         * config/mips/mips.c (mips_final_postscan_insn): Modify call
10060         to `mips_set_text_contents_type' to indicate whether a
10061         non-debug insn follows.
10063 2019-06-11  Michael Meissner  <meissner@linux.ibm.com>
10065         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
10066         enabling -mpcrel by default.
10067         * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
10068         test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
10069         that the test against -mcpu=future is done first.  Then test if
10070         -mprefixed-addr is on for -mpcrel.
10071         (rs6000_disable_incompatible_switches): Add -mcpu=future support.
10073 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
10075         PR target/90811
10076         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
10077         instead of and.u%d.
10079 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
10081         * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
10083 2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
10085         PR c++/90449 - add -Winaccessible-base option.
10086         * doc/invoke.texi (Winaccessible-base): Document.
10088 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
10090         PR tree-optimization/62041
10091         * fold-const.c (fold_real_zero_addition_p): Handle vectors.
10093 2019-06-11  Jason Merrill  <jason@redhat.com>
10095         * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
10096         * tree.c (get_tree_code_name): Likewise.
10097         * print-tree.c (print_node): Only briefly print a node with an
10098         invalid code.
10100 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
10102         PR bootstrap/90819
10103         * trans-mem.c (tm_memopt_compute_available): Add assertion
10104         that blocks is not empty.  Formatting fix.
10106 2019-06-11  Martin Liska  <mliska@suse.cz>
10108         PR c++/87847
10109         * hash-table.h: Extend create_gcc, add one parameter
10110         that is passed into hash_table::hash_table.
10112 2019-06-10  Uroš Bizjak  <ubizjak@gmail.com>
10114         * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
10115         New prototype.
10116         * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
10117         Emit clobber also for non-sse operations.
10118         (ix86_split_fp_absneg_operator): New function.
10119         * config/i386/i386.md (SSEMODEF): New mode iterator.
10120         (ssevecmodef): New mode attribute.
10121         (<code>tf2): Use absneg code iterator.
10122         (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
10123         Add three-operand AVX alternatives.
10124         (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
10125         Use absneg code iterator and X87MODEF mode iterator.
10126         (absneg fp_reg non-sse splitter): Call absneg code iterator
10127         and X87MODEF mode iterator.
10128         (absneg general_reg non-sse splitter): Use absneg code iterator
10129         and X87MODEF mode iterator.  Use ix86_split_fp_absneg_operator.
10130         (*<code><mode>2_1): Rename from *absneg<mode>2.  Use absneg
10131         code iterator.  Add three-operand AVX alternative.
10132         (absneg sse_reg splitter): Use absneg code iterator
10133         and SSEMODEF mode iterator.  Handle AVX operands.
10134         (absneg fp_reg splitter): Use absneg code iterator
10135         and MODEF mode iterator.
10136         (absneg general_reg splitter): Merge splitters using MODEF mode
10137         iterator.  Use absneg code iterator.  Call
10138         ix86_split_fp_absneg_operator.
10139         (*<code><mode>2_i387): Rename from *<code><mode>2_1.
10140         Do not enable for non-sse modes before reload.
10141         (CSGNMODE): Remove.
10142         (CSGNVMODE): Ditto.
10143         (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
10144         ssevecmodef mode attribute instaed of CSGNVMODE.
10145         (copysign<mode>3_const): Ditto.
10146         (copysign<mode>3_var): Ditto.
10147         * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
10148         Use absneg code iterator.  Simplify code using std::swap.
10149         * config/i386/predicates.md (absneg_operator): Remove.
10151 2019-06-10  Martin Sebor  <msebor@redhat.com>
10153         * gimple-fold.c (get_range_strlen): Update comment that didn't
10154         make it into r267503 or related commits.
10156 2019-06-10  Vladislav Ivanishin  <vlad@ispras.ru>
10158         * gcov-tool.c (merge_usage, rewrite_usage): Mark with
10159         ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
10161 2019-06-10  Jakub Jelinek  <jakub@redhat.com>
10163         * tree.def (OMP_SCAN): New tree code.
10164         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
10165         OMP_CLAUSE_EXCLUSIVE.
10166         * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
10167         (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
10168         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
10169         OMP_CLAUSE_{IN,EX}CLUSIVE.
10170         (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
10171         * tree-nested.c (convert_nonlocal_reference_stmt,
10172         convert_local_reference_stmt, convert_gimple_call): Handle
10173         GIMPLE_OMP_SCAN.
10174         * tree-pretty-print.c (dump_omp_clause): Handle
10175         OMP_CLAUSE_{IN,EX}CLUSIVE.
10176         (dump_generic_node): Handle OMP_SCAN.
10177         * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
10178         * gimple.h (gomp_scan): New type.
10179         (is_a_helper <gomp_scan *>::test,
10180         is_a_helper <const gomp_scan *>::test): New templates.
10181         (gimple_build_omp_scan): Declare.
10182         (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
10183         gimple_omp_scan_set_clauses): New inline functions.
10184         (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
10185         * gimple.c (gimple_build_omp_scan): New function.
10186         (gimple_copy): Handle GIMPLE_OMP_SCAN.
10187         * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
10188         * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
10189         GIMPLE_OMP_TASKGROUP.
10190         (dump_gimple_omp_scan): New function.
10191         (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
10192         * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
10193         * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
10194         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
10195         (is_gimple_stmt): Handle OMP_SCAN.
10196         (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
10197         other than OMP_FOR or OMP_SIMD.  Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
10198         (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
10199         mentioned in nested #pragma omp scan.  Handle
10200         OMP_CLAUSE_{IN,EX}CLUSIVE.
10201         (gimplify_expr): Handle OMP_SCAN.
10202         * omp-low.c (check_omp_nesting_restrictions): For parent context,
10203         look through GIMPLE_OMP_SCAN context.  Allow #pragma omp scan in
10204         simd constructs.
10205         (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
10206         GIMPLE_OMP_SCAN.
10208 2019-06-10  Martin Liska  <mliska@suse.cz>
10210         * ipa-cp.c (ignore_edge_p): New function.
10211         (build_toporder_info): Use it.
10212         * ipa-inline.c (ignore_edge_p): New function.
10213         (inline_small_functions): Use it.
10214         * ipa-pure-const.c (ignore_edge_for_nothrow):
10215         Verify opt_for_fn for caller and callee.
10216         (ignore_edge_for_pure_const): Likewise.
10217         * ipa-reference.c (ignore_edge_p): Extend to check
10218         for opt_for_fn.
10219         * ipa-utils.c (searchc): Refactor.
10220         * ipa-utils.h: Fix coding style.
10222 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
10224         * config/arc/arc.c (arc_rtx_costs): Update costs.
10226 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
10228         * config/arc/arc-protos.h (arc_check_ior_const): Declare.
10229         (arc_split_ior): Likewise.
10230         (arc_check_mov_const): Likewise.
10231         (arc_split_mov_const): Likewise.
10232         * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
10233         (arc_rtx_costs): Replace check Crr with Cax constraint.
10234         (prepare_move_operands): Cleanup, remove unused code.
10235         (arc_split_ior): New function.
10236         (arc_check_ior_const): Likewise.
10237         (arc_split_mov_const): Likewise.
10238         (arc_check_mov_const): Likewise.
10239         * config/arc/arc.md (movsi_insn): Restructure it, and convert it
10240         in define_insn_and_split pattern.
10241         (iorsi3): Likewise.
10242         (mulsi3_v2): Add new matching variant.
10243         (andsi3_i): Cleanup pattern.
10244         (rotrsi3_cnt1): Update pattern.
10245         (rotrsi3_cnt8): New pattern.
10246         (ashlsi2_cnt8): Likewise.
10247         (ashlsi2_cnt16): Likewise.
10248         * config/arc/constraints.md (C0p): Update constraint.
10249         (Crr): Remove it.
10250         (C0x): New pattern.
10251         (Cax): New pattern.
10253 2019-06-10  Martin Liska  <mliska@suse.cz>
10255         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
10256         Update coding style.
10257         (sem_item_optimizer::dump_cong_classes):
10258         Print how many items are in a non-singular class.  Improve
10259         coding style.
10261 2019-06-10  Martin Liska  <mliska@suse.cz>
10263         * value-prof.c (dump_histogram_value): Change dump format.
10264         (gimple_mod_subtract_transform): Remove legacy comment.
10266 2019-06-10  Martin Liska  <mliska@suse.cz>
10268         * value-prof.c (dump_histogram_value): Print histogram values
10269         only if present.
10271 2019-06-10  Martin Liska  <mliska@suse.cz>
10273         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
10274         (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
10275         * ipa-profile.c (ipa_profile_generate_summary):
10276         Use get_most_common_single_value.
10277         * tree-profile.c (gimple_init_gcov_profiler):
10278         Instrument with __gcov_one_value_profiler_v2
10279         and __gcov_indirect_call_profiler_v4.
10280         * value-prof.c (dump_histogram_value):
10281         Print all values for HIST_TYPE_SINGLE_VALUE.
10282         (stream_out_histogram_value): Update assert for
10283         N values.
10284         (stream_in_histogram_value): Set number of
10285         counters for HIST_TYPE_SINGLE_VALUE.
10286         (get_most_common_single_value): New.
10287         (gimple_divmod_fixed_value_transform):
10288         Use get_most_common_single_value.
10289         (gimple_ic_transform): Likewise.
10290         (gimple_stringops_transform): Likewise.
10291         (gimple_find_values_to_profile): Set number
10292         of counters for HIST_TYPE_SINGLE_VALUE.
10293         * value-prof.h (get_most_common_single_value): New.
10295 2019-06-10  Martin Liska  <mliska@suse.cz>
10297         * hash-map.h: Pass default value to hash_table ctor.
10298         * hash-table.h: Add default value to call of a ctor.
10300 2019-06-08  Jonathan Wakely  <jwakely@redhat.com>
10302         * doc/invoke.texi (C Dialect Options): Minor grammatical change.
10303         (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
10305 2019-06-07  John David Anglin  <danglin@gcc.gnu.orig>
10307         PR target/90751
10308         * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
10309         Call pa_output_function_label.
10310         (TARGET_ASM_FUNCTION_PROLOGUE): define.
10311         * config/pa/pa-protos.h (pa_output_function_label): Declare.
10312         * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
10313         to declaration.
10314         (pa_linux_output_function_prologue): Declare.
10315         (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
10316         (pa_output_function_label): New.
10317         (pa_output_function_prologue): Revise to use pa_output_function_label.
10318         (pa_linux_output_function_prologue): New.
10319         * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
10321 2019-06-07  Aldy Hernandez  <aldyh@redhat.com>
10323         * tree-vrp.h (value_range_base::intersect): New.
10324         (value_range::intersect_helper): Move from here...
10325         (value_range_base::intersect_helper): ...to here.
10326         * tree-vrp.c (value_range::intersect_helper): Rename to...
10327         (value_range_base::intersect_helper): ...this, and rewrite to
10328         return a value instead of modifying THIS in place.
10329         Also, move equivalence handling...
10330         (value_range::intersect): ...here, while calling intersect_helper.
10331         * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
10332         calling intersect.
10333         * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
10334         Same.
10335         * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
10337 2019-06-07  Jakub Jelinek  <jakub@redhat.com>
10339         * Makefile.in (genprogerr): Add condmd.
10340         (genprog): Remove it here.
10342 2019-06-07  Andrew Stubbs  <ams@codesourcery.com>
10344         * doc/invoke.texi (AMD GCN Options): Add gfx906.
10346 2019-06-07  Richard Biener  <rguenther@suse.de>
10348         PR debug/90574
10349         * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
10350         that appear after user labels.
10352 2019-06-07  Martin Liska  <mliska@suse.cz>
10354         * cselib.c (cselib_init): Disable hash table
10355         sanitization.
10356         * hash-set.h: Pass new default argument to m_table.
10357         * hash-table.c: Add global variable with hash table
10358         sanitization limit.
10359         * hash-table.h (Allocator>::hash_table): Add new argument
10360         to ctor.
10361         (hashtab_chk_error): New.
10362         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
10363         * toplev.c (process_options): Set hash_table_sanitize_eq_limit
10364         from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
10366 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
10368         * common.opt (flto-odr-type-merging): Ignore.
10369         * invoke.texi (-flto-odr-type-merging): Remove.
10370         * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
10371         (can_be_vtable_hashed_p): Remove.
10372         (hash_odr_vtable): Remove.
10373         (odr_vtable_hasher::hash): Remove.
10374         (types_same_for_odr): Remove.
10375         (types_odr_comparable): Remove.
10376         (odr_vtable_hasher::equal): Remove.
10377         (odr_vtable_hash_type, odr_vtable_hash): Remove.
10378         (add_type_duplicate): Do not synchronize vtable and name hashtables.
10379         (get_odr_type): Do not use vtable hash.
10380         (dump_odr_type): Remove commented out code.
10381         (build_type_inheritance_graph): Do not allocate vtable hash.
10382         (rebuild_type_inheritance_graph): Do not delete vtable hash.
10383         * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
10384         (odr_type_p): Likewise.
10385         * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
10386         test.
10388 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
10390         * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
10391         immediately after same_types_for_tbaa_p returns -1 and continue
10392         looking for possible exact match; if matching types are arrays
10393         watch for partial overlaps.
10394         (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
10395         (indirect_refs_may_alias_p): Do type based disambiguation first;
10396         update comment.
10398 2019-06-07  Richard Sandiford  <richard.sandiford@arm.com>
10400         * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
10402 2019-06-07  Martin Liska  <mliska@suse.cz>
10404         * doc/invoke.texi: Remove param.
10405         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
10406         Remove.
10407         * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
10408         (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
10409         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
10410         * profile.c (instrument_values): Remove
10411         HIST_TYPE_INDIR_CALL_TOPN.
10412         * tree-profile.c (init_ic_make_global_vars):
10413         Always build __gcov_indirect_call only.
10414         (gimple_init_gcov_profiler): Remove usage
10415         of PARAM_INDIR_CALL_TOPN_PROFILE.
10416         (gimple_gen_ic_profiler): Likewise.
10417         * value-prof.c (dump_histogram_value): Likewise.
10418         (stream_in_histogram_value): Likewise.
10419         (gimple_indirect_call_to_profile): Likewise.
10420         (gimple_find_values_to_profile): Likewise.
10421         * value-prof.h (enum hist_type): Likewise.
10423 2019-06-07  Martin Liska  <mliska@suse.cz>
10425         * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
10426         function.
10428 2019-06-07  Martin Liska  <mliska@suse.cz>
10430         PR tree-optimization/78902
10431         * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
10432         (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
10433         (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
10434         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
10435         (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
10436         (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
10437         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
10438         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
10439         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
10440         (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
10441         (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
10442         (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
10443         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
10444         New.
10445         (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
10446         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
10447         (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
10448         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
10449         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
10450         (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
10451         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
10452         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
10453         * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
10454         warn_unused_result attribute.
10455         (BUILT_IN_STRDUP): Likewise.
10456         (BUILT_IN_STRNDUP): Likewise.
10457         (BUILT_IN_ALLOCA): Likewise.
10458         (BUILT_IN_CALLOC): Likewise.
10459         (BUILT_IN_MALLOC): Likewise.
10460         (BUILT_IN_REALLOC): Likewise.
10462 2019-06-06  Jim Wilson  <jimw@sifive.com>
10464         PR target/89955
10465         * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
10466         * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
10467         * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
10469 2019-06-06  Martin Sebor  <msebor@redhat.com>
10471         * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
10472         (handle_builtin_malloc): Remove trailing spaces.
10473         (handle_builtin_memset): Same.
10474         (handle_builtin_memcmp): Same.
10475         (compute_string_length): Same.
10476         (determine_min_objsize): Same.
10477         (handle_builtin_string_cmp): Same.
10478         (handle_char_store): Same.  Break up excessively long line.
10480 2019-06-06  Martin Jambor  <mjambor@suse.cz>
10482         * tree-sra.c (build_reconstructed_reference): Drop the alignment
10483         check.
10485 2019-06-06  Martin Jambor  <mjambor@suse.cz>
10487         * tree-sra.c (struct access): New field grp_same_access_path.
10488         (dump_access): Dump it.
10489         (build_reconstructed_reference): New function.
10490         (build_ref_for_model): Use it if possible.
10491         (path_comparable_for_same_access): New function.
10492         (same_access_path_p): Likewise.
10493         (sort_and_splice_var_accesses): Set the new flag.
10494         (analyze_access_subtree): Likewise.
10495         (propagate_subaccesses_across_link): Propagate zero value of the new
10496         flag down the access tree.
10498 2019-06-06  Andrew Stubbs  <ams@codesourcery.com>
10500         * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
10501         * config/gcn/gcn.opt (gpu_type): Add gfx906.
10502         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
10503         (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
10504         Add gfx906.
10506 2019-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10508         PR tree-optimization/90332
10509         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
10510         Handle VALS containing two vectors.
10511         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
10512         to...
10513         (@aarch64_combinez<mode>): ... This.
10514         (*aarch64_combinez_be<mode>): Rename to...
10515         (@aarch64_combinez_be<mode>): ... This.
10516         (vec_init<mode><Vhalf>): New define_expand.
10517         * config/aarch64/iterators.md (Vhalf): Handle V8HF.
10519 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
10521         * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
10522         library functions only when not optimizing for size.
10523         (ashlsi3): Likewise.
10524         (ashrhi3): Likewise.
10525         (ashrsi3): Likewise.
10526         (lshrhi3): Likewise.
10527         (lshrsi3): Likewise.
10529 2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
10531         PR rtl-optimization/88751
10532         * ira.c (ira): Use the number of the actually referenced registers
10533         when calculating the threshold.
10535 2019-06-06  Jakub Jelinek  <jakub@redhat.com>
10537         * configure: Regenerate.
10539 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
10541         * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
10542         register if it is in memory, so the shift can be emulated with a rotate
10543         instruction.
10544         (ashrhi3): Likewise.
10545         (lshrhi3): Likewise.
10547 2019-06-06  Martin Liska  <mliska@suse.cz>
10549         PR tree-optimization/87954
10550         * match.pd: Simplify mult where both arguments are 0 or 1.
10552 2019-06-06  Richard Biener  <rguenther@suse.de>
10554         * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
10555         put equivalences on UNDEFINED ranges.
10556         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
10557         Make sure to drop defs of stmts added during simplification
10558         to VARYING.
10560 2019-06-06  Richard Biener  <rguenther@suse.de>
10562         * tree-ssa-structalias.c: Include tree-cfg.h.
10563         (make_heapvar): Do not make heap vars artificial.
10564         (find_func_aliases_for_builtin_call): Handle stack allocation
10565         functions.
10566         (find_func_aliases): Delay processing of simple enough returns
10567         in non-IPA mode.
10568         (set_uids_in_ptset): Adjust.
10569         (find_what_var_points_to): Likewise.
10570         (solve_constraints): Do not dump points-to sets here.
10571         (compute_points_to_sets): Post-process return statements,
10572         amending the escaped solution.  Dump points-to sets afterwards.
10573         (ipa_pta_execute): Dump points-to sets.
10575 2019-06-06  Martin Liska  <mliska@suse.cz>
10577         PR web/87933
10578         * doc/install.texi: Fix HTML headers and
10579         titles for 'Installing GCC' pages.
10581 2019-06-06  Martin Liska  <mliska@suse.cz>
10583         * ipa-icf-gimple.h (dump_message_1): Remove.
10584         (dump_message): Likewise.
10585         (return_false_with_message_1): Print also file.
10586         (return_false_with_msg): Likewise.
10587         (return_with_result): Likewise.
10588         (return_with_debug): Likewise.
10589         * ipa-icf.c (sem_function::equals_private): Remove call
10590         to dump_message.
10592 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
10594         * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
10595         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
10596         memory operand for it.
10597         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
10599 2019-06-05  Martin Sebor  <msebor@redhat.com>
10601         * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
10602         Adjust quoting and hyphenation.
10603         * convert.c (convert_to_real_1): Same.
10604         * gcc.c (driver_wrong_lang_callback): Same.
10605         (driver::handle_unrecognized_options): Same.
10606         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
10607         * opts-common.c (cmdline_handle_error): Same.
10608         (read_cmdline_option): Same.
10609         * opts-global.c (complain_wrong_lang): Same.
10610         (print_ignored_options): Same.
10611         (handle_common_deferred_options): Same.
10612         * pretty-print.h: Same.
10613         * print-rtl.c (debug_bb_n_slim): Same.
10614         * sched-rgn.c (make_pass_sched_fusion): Same.
10615         * tree-cfg.c (verify_gimple_assign_unary): Same.
10616         (verify_gimple_label): Same.
10617         * tree-ssa-operands.c (verify_ssa_operands): Same.
10618         * varasm.c (do_assemble_alias): Same.
10619         (assemble_alias): Same.
10621 2019-06-05  Richard Henderson  <rth@twiddle.net>
10623         * config/alpha/alpha.c (direct_return): Move down after
10624         struct machine_function definition; use saved frame_size;
10625         return bool.
10626         (struct machine_function): Add sa_mask, sa_size, frame_size.
10627         (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
10628         (alpha_compute_frame_layout): ... new function.
10629         (TARGET_COMPUTE_FRAME_LAYOUT): New.
10630         (alpha_initial_elimination_offset): Use saved sa_size.
10631         (alpha_vms_initial_elimination_offset): Likewise.
10632         (alpha_vms_can_eliminate): Remove alpha_sa_size call.
10633         (alpha_expand_prologue): Use saved frame data.  Merge integer
10634         and fp register save loops.
10635         (alpha_expand_epilogue): Likewise.
10636         (alpha_start_function): Use saved frame data.
10637         * config/alpha/alpha-protos.h (direct_return): Update.
10638         (alpha_sa_size): Remove.
10640 2019-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10642         * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
10643         multiplication by a power-of-two value.
10644         (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
10645         and turn the modulo operation into a masking operation.
10647 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
10649         PR debug/90733
10650         * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
10651         with VOIDmode inner operands.
10653 2019-06-05  Richard Biener  <rguenther@suse.de>
10655         PR middle-end/90726
10656         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10657         turn an expression graph into a tree.
10659 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
10661         * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
10662         member.
10663         (expand_parallel_call): If region->inner->has_lastprivate_conditional,
10664         treat it like explicit monotonic schedule modifier.
10665         (expand_omp_for): Initialize has_lastprivate_conditional.
10666         If fd.lastprivate_conditional != 0, treat it like explicit monotonic
10667         schedule modifier.
10669         * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
10670         references, lookup in in hash map MEM_REF operand instead of the
10671         MEM_REF itself.
10672         (lower_omp_1): When looking for lastprivate conditional assignments,
10673         handle MEM_REFs with REFERENCE_TYPE operands.
10675         * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
10676         on privatization clauses OMP_CLAUSE_DECL is privatized by reference
10677         and references a VLA.  Handle references to non-VLAs if is_simd
10678         all privatization clauses like reductions.
10679         (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
10680         If omp_is_reference, use always omp simd arrays and set
10681         DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
10682         fails, emit reference initialization.
10684 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
10686         PR target/89803
10687         * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
10688         _mm_mask_fpclass_sd_mask): New intrinsics.
10689         (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
10690         * config/i386/i386-builtin.def
10691         (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
10692         New builtins.
10693         (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
10694         * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
10695         DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
10696         * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
10697         case QI_FTYPE_V2SF_INT): Ditto.
10698         * config/i386/sse.md
10699         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
10700         Extended to insnstructions with mask operands.
10702 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10704         * config/rs6000/constraints.md (define_register_constraint "wp"):
10705         Delete.
10706         (define_register_constraint "wq"): Delete.
10707         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10708         (rs6000_init_hard_regno_mode_ok): Adjust.
10709         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10710         RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
10711         * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
10712         (define_mode_attr VSa): Delete.
10713         (define_mode_attr VSisa): New.
10714         (rest of file): Adjust.
10715         * doc/md.texi (Machine Constraints): Adjust.
10717 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10719         * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
10720         (define_attr "enabled"): Handle those new isa values.
10722 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10724         * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
10725         (define_mode_attr VSr5): Delete.
10726         (define_mode_attr VStype_sqrt): Delete.
10727         (define_mode_iterator VSX_SPDP): Delete.
10728         (define_mode_attr VS_spdp_res): Delete.
10729         (define_mode_attr VS_spdp_insn): Delete.
10730         (define_mode_attr VS_spdp_type): Delete.
10731         (*vsx_sqrt<mode>2): Adjust.
10732         (vsx_<VS_spdp_insn>): Delete, split to...
10733         (vsx_xscvdpsp): ... this.  New.  And...
10734         (vsx_xvcvspdp): ... this.  New.  And...
10735         (vsx_xvcvdpsp): ... this.  New.
10737 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10739         * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
10740         and V2DF.
10741         * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
10742         (rest of file): Adjust.
10744 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10746         * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
10747         (vsx_extract_<mode>_var): Ditto.
10749 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10751         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
10752         with just "wa".
10754 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10756         * config/rs6000/constraints.md (define_register_constraint "ww"):
10757         Delete.
10758         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10759         (rs6000_init_hard_regno_mode_ok): Adjust.
10760         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10761         RS6000_CONSTRAINT_ww.
10762         * config/rs6000/rs6000.md: Adjust.
10763         * config/rs6000/vsx.md: Adjust.
10764         * doc/md.texi (Machine Constraints): Adjust.
10766 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10768         * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
10769         (define_mode_attr sd): New.
10770         (define_mode_attr s): New.
10771         (define_mode_attr Ftrad): Delete.
10772         (define_mode_attr Fvsx): Delete.
10773         (define_mode_attr Fs): Delete.
10774         (rest of file): Use the new mode attributes.
10775         * config.rs6000/vsx.md: Use the new mode attributes.
10777 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10779         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
10780         with just "wa".
10782 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10784         * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
10785         (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
10786         used with VSX_B, VSX_D, or VSX_F, with just "wa".
10788 2019-06-04  Bill Schmidt  <wschmidt@linux.ibm.com>
10790         PR target/78263
10791         * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
10792         C++ with strict ANSI requirements.
10794 2019-06-04  Marc Glisse  <marc.glisse@inria.fr>
10796         * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
10797         computations when step is 1.
10799 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10801         * config/rs6000/constraints.md (define_register_constraint "wf"):
10802         Delete.
10803         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10804         (rs6000_init_hard_regno_mode_ok): Adjust.
10805         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10806         RS6000_CONSTRAINT_wf.
10807         * config/rs6000/rs6000.md: Adjust.
10808         * config/rs6000/vsx.md: Adjust.
10809         * doc/md.texi (Machine Constraints): Adjust.
10811 2019-06-04  Andrew Pinski  <apinski@marvell.com>
10813         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
10814         Fix ILP32 value.
10816 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10818         * config/rs6000/constraints.md (define_register_constraint "wd"):
10819         Delete.
10820         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10821         (rs6000_init_hard_regno_mode_ok): Adjust.
10822         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10823         RS6000_CONSTRAINT_wd.
10824         * config/rs6000/rs6000.md: Adjust.
10825         * config/rs6000/vsx.md: Adjust.
10826         * doc/md.texi (Machine Constraints): Adjust.
10828 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10830         * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
10831         (rest of file): Adjust.
10833 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10835         * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
10836         (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
10837         (vsx_splat_<mode>_reg): Adjust.
10839 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10841         * config/rs6000/constraints.md (define_register_constraint "ws"):
10842         Delete.
10843         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10844         (rs6000_init_hard_regno_mode_ok): Adjust.
10845         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10846         RS6000_CONSTRAINT_ws.
10847         * config/rs6000/rs6000.md: Adjust.
10848         * config/rs6000/vsx.md: Adjust.
10849         * doc/md.texi (Machine Constraints): Adjust.
10851 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10853         * config/rs6000/constraints.md (define_register_constraint "wv"):
10854         Delete.
10855         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10856         (rs6000_init_hard_regno_mode_ok): Adjust.
10857         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10858         RS6000_CONSTRAINT_wv.
10859         * config/rs6000/rs6000.md: Adjust.
10860         * config/rs6000/vsx.md: Adjust.
10861         * doc/md.texi (Machine Constraints): Adjust.
10863 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
10865         * config/rs6000/constraints.md (define_register_constraint "wi"):
10866         Delete.
10867         (define_register_constraint "wt"): Delete.
10868         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10869         (rs6000_init_hard_regno_mode_ok): Adjust.
10870         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10871         RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
10872         * config/rs6000/rs6000.md: Adjust.
10873         * config/rs6000/vsx.md: Adjust.
10874         * doc/md.texi (Machine Constraints): Adjust.
10876 2019-06-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10878         * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
10879         const.
10880         * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
10881         default_elf_asm_output_external.
10883 2019-06-04  Martin Liska  <mliska@suse.cz>
10885         * ipa-icf.c (INCLUDE_LIST): Remove.
10886         (sem_item_optimizer::execute): Remove call to init_wpa.
10887         * ipa-icf.h (init_wpa): Remove.
10889 2019-06-04  Jakub Jelinek  <jakub@redhat.com>
10891         * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
10892         conditional on combined for simd.
10893         * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
10894         member.
10895         (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
10896         constructs, don't remove lastprivate_conditional_map, but instead set
10897         ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
10898         to parent construct temporaries.
10899         (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
10900         like !ctx->lastprivate_conditional_map.
10901         (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
10902         use up->outer context instead of up.
10903         * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
10904         gimple_omp_for_combined_p.
10905         (expand_omp_for_static_nochunk): Likewise.
10906         (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
10907         probably moved over into expand_omp_for_generic rather than being copied
10908         there.
10910 2019-06-04  Martin Liska  <mliska@suse.cz>
10912         * value-prof.c (dump_histogram_value): Fix typo.
10913         (gimple_mod_subtract_transform): Likewise.
10915 2019-06-04  Richard Biener  <rguenther@suse.de>
10917         PR middle-end/90726
10918         * tree-chrec.c (chrec_contains_symbols): Add to visited.
10919         (tree_contains_chrecs): Likewise.
10920         (chrec_contains_symbols_defined_in_loop): Move here and avoid
10921         exponential behaivor from ...
10922         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10923         ... here.
10924         (expression_expensive_p): Avoid exponential behavior and compute
10925         expanded size, rejecting any expansion.
10926         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
10927         (idx_contains_abnormal_ssa_name_p): Likewise.
10928         (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
10929         (contains_abnormal_ssa_name_p): Simplify and use
10930         walk_tree_without_duplicates.
10932 2019-06-04  Richard Biener  <rguenther@suse.de>
10934         PR tree-optimization/90738
10935         Revert
10936         2019-06-03  Richard Biener  <rguenther@suse.de>
10938         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
10939         full reference tree and record in ref->ref.
10940         (vn_reference_lookup_3): Pass in original ref to
10941         ao_ref_init_from_vn_reference.
10942         (vn_reference_lookup): Likewise.
10943         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
10944         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
10945         Handle non-decl bases in the original reference.
10947 2019-06-04  Martin Liska  <mliska@suse.cz>
10949         * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
10950         number of references.
10951         (sem_item_optimizer::do_congruence_step):
10952         (sem_item_optimizer::worklist_push): Dump how references
10953         a class has.
10954         (sem_item_optimizer::worklist_pop): Use heap.
10955         (sem_item_optimizer::process_cong_reduction): Likewise.
10956         * ipa-icf.h: Use fibonacci_heap insteam of std::list.
10958 2019-06-04  Martin Liska  <mliska@suse.cz>
10960         * ipa-icf.h (struct sem_usage_pair_hash): New.
10961         (sem_usage_pair_hash::hash): Likewise.
10962         (sem_usage_pair_hash::equal): Likewise.
10963         (struct sem_usage_hash): Likewise.
10964         * ipa-icf.c (sem_item::sem_item): Initialize
10965         referenced_by_count.
10966         (sem_item::add_reference): Register a reference
10967         in ref_map and not in target->usages.
10968         (sem_item::setup): Remove initialization of
10969         dead vectors.
10970         (sem_item::~sem_item): Remove usage of dead vectors.
10971         (sem_item::dump): Remove dump of references.
10972         (sem_item_optimizer::sem_item_optimizer): Initialize
10973         m_references.
10974         (sem_item_optimizer::read_section): Remove useless
10975         dump.
10976         (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
10977         (sem_item_optimizer::build_graph): Pass m_references
10978         to ::add_reference.
10979         (sem_item_optimizer::verify_classes): Remove usage of dead
10980         vectors.
10981         (sem_item_optimizer::traverse_congruence_split): Return true
10982         when a class is split.
10983         (sem_item_optimizer::do_congruence_step_for_index): Use
10984         hash_map for look up of (sem_item *, index). That brings
10985         significant speed up.
10986         (sem_item_optimizer::do_congruence_step): Return true
10987         when a split is done.
10988         (congruence_class::is_class_used): Use referenced_by_count.
10990 2019-06-04  Alan Modra  <amodra@gmail.com>
10992         PR target/90689
10993         * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
10994         error.
10996 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
10998         * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
10999         * config/rs6000/rs6000.c (direct_move_p): Adjust.
11000         (rs6000_secondary_reload_simple_move): Adjust.
11001         (rs6000_opt_masks): Neuter the "mfpgpr" option.
11002         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
11003         * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
11004         comment.
11005         (power6x): Adjust.
11006         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
11007         (floatunssi<mode>2_lfiwzx): Adjust.
11008         (fix_trunc<mode>si2_stfiwx): Adjust.
11009         (fixuns_trunc<mode>si2_stfiwx): Adjust.
11010         * config/rs6000/rs6000.opt (mno-mfpgpr): New.
11011         (mfpgpr): Mark as deprecated.
11012         * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
11013         (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
11014         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
11016 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
11018         * config/rs6000/constraints.md (define_register_constraint "wg"):
11019         Delete.
11020         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11021         RS6000_CONSTRAINT_wg.
11022         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11023         (rs6000_init_hard_regno_mode_ok): Adjust.
11024         * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
11025         Delete "wg" alternatives.
11026         * doc/md.texi (Machine Constraints): Adjust.
11028 2019-06-03  Alan Modra  <amodra@gmail.com>
11030         * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
11031         (get_uncond_jump_length): Assert length less than INT_MAX and
11032         non-negative.
11034 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
11036         PR middle-end/64242
11037         * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
11038         block.
11039         (expand_builtin_nonlocal_goto): Likewise.
11041 2019-06-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11043         * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
11044         (aarch64_asm_output_external): Declare.
11045         * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
11046         (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
11047         (aarch64_asm_output_alias): New.
11048         (aarch64_asm_output_external): New.
11049         * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
11050         (ASM_OUTPUT_EXTERNAL): Define.
11052 2019-06-03  Aldy Hernandez  <aldyh@redhat.com>
11053         * tree-vrp.h (value_range_base::nonzero_p): New.
11054         (value_range_base::set_nonnull): Rename to...
11055         (value_range_base::set_nonzero): ...this.
11056         (value_range_base::set_null): Rename to...
11057         (value_range_base::set_zero): ...this.
11058         (value_range::set_nonnull): Remove.
11059         (value_range::set_null): Remove.
11060         * tree-vrp.c (range_is_null): Remove.
11061         (range_is_nonnull): Remove.
11062         (extract_range_from_binary_expr): Use value_range_base::*zero_p
11063         instead of range_is_*null.
11064         (extract_range_from_unary_expr): Same.
11065         (value_range_base::set_nonnull): Rename to...
11066         (value_range_base::set_nonzero): ...this.
11067         (value_range::set_nonnull): Remove.
11068         (value_range_base::set_null): Rename to...
11069         (value_range_base::set_zero): ...this.
11070         (value_range::set_null): Remove.
11071         (extract_range_from_binary_expr): Rename set_*null uses to
11072         set_*zero.
11073         (extract_range_from_unary_expr): Same.
11074         (union_helper): Same.
11075         * vr-values.c (get_value_range): Use set_*zero instead of
11076         set_*null.
11077         (vr_values::extract_range_from_binary_expr): Same.
11078         (vr_values::extract_range_basic): Same.
11080 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
11082         PR driver/90684
11083         * opts.c (parse_and_check_align_values): Allow 4 alignment values.
11085 2019-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11087         * config/aarch64/iterators.md (MAX_OPP): New code attr.
11088         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
11089         Rename to...
11090         (aarch64_<su>abd<mode>_3): ... This.
11091         (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
11093 2019-06-03  Richard Biener  <rguenther@suse.de>
11095         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
11096         full reference tree and record in ref->ref.
11097         (vn_reference_lookup_3): Pass in original ref to
11098         ao_ref_init_from_vn_reference.
11099         (vn_reference_lookup): Likewise.
11100         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
11101         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
11102         Handle non-decl bases in the original reference.
11104 2019-06-03  Martin Liska  <mliska@suse.cz>
11106         * doc/generic.texi: Remove Java Trees.
11108 2019-06-03  Martin Liska  <mliska@suse.cz>
11110         * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
11111         returns 0 when operands are equal.
11113 2019-06-03  Richard Biener  <rguenther@suse.de>
11115         PR tree-optimization/90716
11116         * tree-loop-distribution.c (destroy_loop): Process blocks in
11117         correct order.
11119 2019-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11121         PR target/88837
11122         * vector-builder.h (vector_builder::count_dups): New method.
11123         * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
11124         Declare prototype.
11125         * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
11126         (vec_init<mode><Vel>): New pattern.
11127         * config/aarch64/aarch64.c (emit_insr): New function.
11128         (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
11129         (aarch64_sve_expand_vector_init_insert_elems): Likewise.
11130         (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
11131         (aarch64_sve_expand_vector_init): Define two overloaded functions.
11133 2019-06-03  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
11135         PR tree-optimization/90681
11136         * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
11137         * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
11138         special case for SLP, but fail on non-groupped loads.
11140 2019-06-03  Martin Liska  <mliska@suse.cz>
11142         * cfg.c (debug): Use TDF_DETAILS for debug and
11143         print edge info only once.
11145 2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
11147         PR fortran/90539
11148         * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
11150 2019-06-01  Martin Sebor  <msebor@redhat.com>
11152         PR middle-end/90694
11153         * tree-pretty-print.c (dump_generic_node): Add parentheses.
11155 2019-05-31  Jan Hubicka  <jh@suse.cz>
11157         * alias.c: Include ipa-utils.h.
11158         (get_alias_set): Try to complete ODR type via ODR type hash lookup.
11159         * ipa-devirt.c (prevailing_odr_type): New.
11160         * ipa-utils.h (previaling_odr_type): Declare.
11162 2019-05-31  H.J. Lu  <hongjiu.lu@intel.com>
11163             Hongtao Liu  <hongtao.liu@intel.com>
11165         PR target/89355
11166         * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
11167         NOTE_INSN_DELETED_LABEL check.
11169 2019-05-31  Prachi Godbole  <prachi.godbole@imgtec.com>
11170             Robert Suchanek  <robert.suchanek@mips.com>
11172         * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
11173         and 3rd operands of the fmadd/fmsub/maddv builtin.
11175 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
11177         * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
11178         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
11179         on OMP_SIMD if not nested inside of worksharing loop that also has
11180         lastprivate conditional clause for the same decl.
11181         (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
11182         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
11183         on simd.
11184         (lower_rec_input_clauses): Likewise.  Handle lastprivate conditional
11185         on simd construct.
11186         (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
11187         on simd construct.
11188         (lower_lastprivate_clauses): Likewise.
11189         (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
11190         calling lower_rec_input_clauses.
11191         (lower_omp_for): Likewise.
11192         (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
11193         clause on simd construct.
11194         * omp-expand.c (expand_omp_simd): Initialize cond_var if
11195         OMP_CLAUSE__CONDTEMP_ clause is present.
11197         * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
11198         ivar and lvar.
11200 2019-05-31  Xiong Hu Luo  <luoxhu@linux.ibm.com>
11202         PR c/43673
11203         * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
11204         TEX_D32, TEX_D64 or TEX_D128.
11206 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
11208         * match.pd (~(vec?cst1:cst2)): New transformation.
11210 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
11212         * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
11213         ((size_t)(A /[ex] B) CMP C): New transformation.
11215 2019-05-31  Richard Sandiford  <richard.sandiford@arm.com>
11217         * doc/md.texi: Document define_insn_and_rewrite.
11218         * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
11219         * gensupport.c (queue_elem): Update comment.
11220         (replace_operands_with_dups): New function.
11221         (gen_rewrite_sequence): Likewise.
11222         (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
11223         * read-rtl.c (apply_subst_iterator): Likewise.
11224         (add_condition_to_rtx, named_rtx_p): Likewise.
11225         (rtx_reader::read_rtx_operand): Likewise.
11226         * config/aarch64/aarch64-sve.md
11227         (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
11228         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
11229         define_insn_and_rewrite.
11230         (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
11231         Remove separate define_split.
11233 2019-05-31  Jan Hubicka  <jh@suse.cz>
11235         * tree-ssa-alias.c (type_has_components_p): New function.
11236         (aliasing_component_refs_p): Use it.
11238 2019-05-31  Martin Liska  <mliska@suse.cz>
11240         * gdbhooks.py: Add const_tree to TreePrinter.
11242 2019-05-31  Thomas De Schampheleire  <thomas.de_schampheleire@nokia.com>
11244         PR debug/86964
11245         * common.opt (feliminate-unused-debug-symbols): Enable by default.
11246         * doc/invoke.texi (Debugging Options): Document new default of
11247         -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
11249 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
11251         PR tree-optimization/90671
11252         * tree-ssa-threadupdate.c (ssa_create_duplicates): If
11253         template_block used to be empty on the first call, don't use
11254         gsi_split_seq_after and gsi_insert_seq_after, but remember whole
11255         seq with bb_seq and set it with set_bb_seq.
11257 2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
11259         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
11261 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
11262             Michael Meissner  <meissner@linux.ibm.com>
11264         * config/rs6000/predicates.md (pcrel_address): New define_predicate.
11265         (prefixed_mem_operand): Likewise.
11266         (non_prefixed_mem_operand): Likewise.
11267         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
11268         prototype.
11269         * config/rs6000/rs6000.c (print_operand_address): Handle
11270         PC-relative addresses.
11271         (mode_supports_prefixed_address_p): New function.
11272         (rs6000_prefixed_address): New function.
11273         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
11274         (SYMBOL_REF_PCREL_P): Likewise.
11276 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
11278         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
11279         (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
11280         (gimplify_omp_for): If worksharing loop with lastprivate conditional
11281         is nested inside of parallel region, add _condtemp_ clause to both.
11282         * tree-nested.c (convert_nonlocal_omp_clauses,
11283         convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
11284         assertion failure.
11285         * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
11286         member.
11287         * omp-general.c (omp_extract_for_data): Compute it.
11288         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
11289         (lower_rec_input_clauses): Likewise.
11290         (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
11291         clause is already present, just add one further one after it.
11292         (lower_lastprivate_clauses): Handle cond_ptr with array type.
11293         (lower_send_shared_vars): Clear _condtemp_ vars.
11294         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
11295         or section or taskgroup.
11296         * omp-expand.c (determine_parallel_type): Disallow combining only if
11297         first OMP_CLAUSE__CONDTEMP_ has pointer type.  Disallow combining
11298         of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
11299         (expand_omp_for_generic, expand_omp_for_static_nochunk,
11300         expand_omp_for_static_chunk, expand_omp_for): Use
11301         fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
11302         determine if a special set of API routines are needed and if condtemp
11303         needs to be initialized, while always initialize cond_var if
11304         fd->lastprivate_conditional is non-zero.
11306 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
11307             Michael Meissner  <meissner@linux.ibm.com>
11309         * config/rs6000/constraints.md (eI): New constraint.
11310         * config/rs6000/predicates.md (cint34_operand): New predicate.
11311         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
11312         (SIGNED_34BIT_OFFSET_P): Likewise.
11313         * doc/md.texi (eI): Document constraint.
11315 2019-05-30  Sylvia Taylor  <sylvia.taylor@arm.com>
11317         * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
11319 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
11320             Michael Meissner  <meissner@linux.ibm.com>
11322         * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
11323         (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
11324         (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
11325         (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
11326         (OTHER_FUTURE_MASKS): Likewise.
11327         (POWERPC_MASKS): Likewise.
11328         * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
11329         specified without -mprefixed-addr or -mcpu=future.  Error if
11330         -mprefixed-addr is specified without -mcpu=future.
11331         (rs6000_opt_masks): Add entry for prefixed-addr.
11332         * rs6000.opt (mprefixed-addr): New option.
11334 2019-05-30  Sam Tebbs  <sam.tebbs@arm.com>
11336         * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
11337         cfun->is_thunk check.
11339 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
11341         * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
11342         to length.
11344 2019-05-30  Martin Liska  <mliska@suse.cz>
11346         * gdbinit.in: Fix 'ptc' command.  Add trt
11347         that prints TREE_TYPE($).
11349 2019-05-29  Bill Schmidt  <wschmidt@linux.ibm.com>
11350             Alan Modra  <amodra@gmail.com>
11352         * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
11353         calls here...
11354         (rs6000_indirect_call_template_1): ...and here.
11355         (rs6000_pltseq_template): Handle plt_pcrel34.  Rework tocsave,
11356         plt16_ha, plt16_lo, mtctr indirect calls.  Use
11357         rs6000_pltseq_enum.
11358         (rs6000_decl_ok_for_sibcall): New function.
11359         (rs6000_function_ok_for_sibcall): Refactor.
11360         (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
11361         (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
11362         when pcrel.  Reorganize.
11363         (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
11364         * rs6000.h (rs6000_pltseq_enum): New enum.
11365         * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
11366         (*pltseq_tocsave): Use rs6000_pltseq_enum.
11367         (*pltseq_plt16_ha): Likewise.
11368         (*pltseq_plt16_lo): Likewise.
11369         (*pltseq_mtctr): Likewise.
11370         (*pltseq_plt_pcrel): New insn.
11371         (*call_local_aix): Handle @notoc calls.
11372         (*call_value_local_aix): Likewise.
11373         (*call_nonlocal_aix): Adjust lengths for pcrel calls.
11374         (*call_value_nonlocal_aix): Likewise.
11375         (*call_indirect_pcrel): New insn.
11376         (*call_value_indirect_pcrel): Likewise.
11378 2019-05-29  Uroš Bizjak  <ubizjak@gmail.com>
11380         * config/i386/sse.md (*save_multiple<mode>): Rename from
11381         save_multiple<mode>.
11382         (*restore_multiple<mode>): Rename from restore_multiple<mode>.
11383         (*restore_multiple_and_return<mode>): Rename from
11384         restore_multiple_and_return<mode>.
11385         (*restore_multiple_leave_return<mode>): Rename from
11386         restore_multiple_leave_return<mode>.
11388 2019-05-29  Yoshinori Sato  <ysato@users.sourceforge.jp>
11390         * config.gcc (rx-*-linux*): New target.
11391         * config/rx/elf.opt: New file.
11392         * config/rx/linux.h: Likewise.
11393         * config/rx/t-linux: Likewise.
11394         * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
11395         make it zero.
11396         * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
11397         (ASM_APP_OFF): Likewise.
11398         * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
11399         moved elsewhere.
11401 2019-05-29  Jan Hubicka  <jh@suse.cz>
11403         * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
11404         variants are pointer equivalent.
11406 2019-05-29  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
11408         * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
11409         * config/aarch64/aarch64-sve2.md: New file.
11410         (<u>avg<mode>3_floor): New pattern.
11411         (<u>avg<mode>3_ceil): Likewise.
11412         (*<sur>h<addsub><mode>): Likewise.
11413         * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
11414         * config/aarch64/aarch64.md: Include aarch64-sve2.md.
11416 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
11418         PR bootstrap/90543
11419         * optc-save-gen.awk: In cl_optimization_print, use correct condition
11420         for var_opt_string printing.  In cl_optimization_print_diff, print
11421         (null) instead of invoking undefined behavior if one of the
11422         var_opt_string pointers is NULL and use && instead of first || in the
11423         guarding condition.  For var_target_other options, handle const char *
11424         target variables similarly to const char * optimize node variables.
11426 2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
11428         * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
11429         AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
11430         * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
11431         Add autib1716 and pacib1716 initialisation.
11432         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
11433         for autib1716 and pacib1716.
11434         * config/aarch64/aarch64-protos.h (aarch64_key_type,
11435         aarch64_post_cfi_startproc): Define.
11436         * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
11437         * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
11438         aarch64_handle_pac_ret_protection): Set default sign key to A.
11439         * config/aarch64/aarch64.c (aarch64_expand_epilogue,
11440         aarch64_expand_prologue): Add check for b-key.
11441         * config/aarch64/aarch64.c (aarch64_ra_sign_key,
11442         aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
11443         * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
11444         * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
11445         * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
11446         UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
11447         UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
11448         * config/aarch64/aarch64.md (do_return): Add check for b-key.
11449         * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
11450         pauth_hint_num_a with pauth_hint_num.
11451         * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
11452         pauth_hint_num_a with pauth_hint_num.
11453         * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
11454         * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
11455         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
11456         * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
11457         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
11458         * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
11459         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
11460         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
11461         * config/aarch64/iterators.md (pauth_hint_num_a): Replace
11462         UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
11463         UNSPEC_AUTIA1716 respectively.
11464         * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
11465         pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
11466         UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
11467         * doc/invoke.texi (-mbranch-protection): Add b-key type.
11468         * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
11469         UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
11471 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
11473         * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
11474         (gimplify_scan_omp_clauses): Initialize ctx->clauses.
11475         (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
11476         explicit clause on combined parallel into implicit shared clause.
11477         (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
11478         and firstprivate if the decl has one too from combined parallel to
11479         the worksharing construct.
11481 2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
11482             Michael Meissner  <meissner@linux.ibm.com>
11484         * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
11486 2019-05-28  Michael Meissner  <meissner@linux.ibm.com>
11488         * rtl.h (LABEL_REF_P): New #define.
11490 2019-05-28  John David Anglin  <danglin@gcc.gnu.org>
11492         * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
11494 2019-05-28  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
11496         * internal-fn.c: Marked mask_load_direct as vectorizable.
11497         * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
11498         * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
11499         combined even if masks different with allow_slp_p param.
11500         (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
11501         * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
11502         dissolve SLP-only vectorizable groups when SLP has been discarded.
11503         (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
11504         * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
11505         masks.
11506         (vect_build_slp_tree_1): Fixed comment typo.
11507         (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
11508         * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
11509         loads for SLP only.
11510         * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
11511         vectorizable.
11512         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
11514 2019-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11516         * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
11517         Remove obsolete use_thunk reference.
11518         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
11519         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
11520         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
11521         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
11522         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
11523         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
11524         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11525         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
11526         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
11528 2019-05-28  Nathan Sidwell  <nathan@acm.org>
11530         * tree.h (IDENTIFIER_ANON_P): New.
11531         (anon_aggrname_format, anon_aggname_p): Don't declare.
11532         (make_anon_name): Declare.
11533         * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
11534         (hash_tree): Likewise.
11535         * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
11536         * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
11537         (anon_cnt, make_anon_name): New.
11539 2019-05-28  Martin Liska  <mliska@suse.cz>
11541         PR other/90315
11542         * opts-global.c (decode_options): Print help for all
11543         help_option_arguments.
11544         * opts.c (print_help): Add new argument.
11545         (common_handle_option): Remember all values into
11546         help_option_arguments.
11547         * opts.h (print_help): Add new argument.
11549 2019-05-28  Martin Liska  <mliska@suse.cz>
11551         PR ipa/90555
11552         * ipa-icf-gimple.c (func_checker::compare_loops): New function.
11553         * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
11554         (func_checker::compare_bb): Call compare_loops.
11556 2019-05-27  Jakub Jelinek  <jakub@redhat.com>
11558         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
11559         on sections construct.
11560         * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
11561         construct.
11562         (lower_omp_sections): Handle lastprivate conditional.
11563         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
11564         lastprivate_conditional_map.
11565         * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
11567         * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
11568         critical, taskgroup and section regions when looking for a region
11569         with non-NULL lastprivate_conditional_map.
11571 2019-05-27  Uroš Bizjak  <ubizjak@gmail.com>
11573         * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
11574         (*ix86_gen_sub3): Ditto.
11575         (*ix86_gen_sub3_carry): Ditto.
11576         (*ix86_gen_one_cmpl2): Ditto.
11577         (*ix86_gen_andsp): Ditto.
11578         (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
11579         (gen_and2_insn): New static function.
11580         (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
11581         Use gen_add3_insn instead of ix86_gen_add3.
11582         (ix86_expand_split_stack_prologue): Use gen_add2_insn
11583         instead of ix86_gen_add3.
11584         (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
11585         Use gen_sub3_insn instead of ix86_gen_sub3.
11586         * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
11587         instead of ix86_gen_add3.
11588         (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
11589         ix86_gen_add3.  Use gen_sub3_insn instead of ix86_gen_sub3.
11590         (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
11591         * config/i386/i386-options.c (ix86_option_override_internal):
11592         Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
11593         ix86_gen_one_cmpl2 and ix86_gen_andsp.
11595 2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11597         * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
11598         and DW_OP_GNU_const_index opcodes.
11600 2019-05-27  Uroš Bizjak  <ubizjak@gmail.com>
11602         * config/i386/i386.h (STACK_SIZE_MODE): Define.
11604 2019-05-27  Richard Biener  <rguenther@suse.de>
11606         PR tree-optimization/90637
11607         * tree-ssa-sink.c (statement_sink_location): Honor the
11608         computed sink location for single-uses.
11610 2019-05-27  Richard Biener  <rguenther@suse.de>
11612         PR middle-end/90610
11613         * match.pd (vec_perm): Avoid clobbering op0 when not generating
11614         a bit-insert.
11616 2019-05-26  Uroš Bizjak  <ubizjak@gmail.com>
11618         * config/i386/i386.md (@sub<mode>3_carry): Rename
11619         from sub<mode>3_carry.
11620         (@leave_<mode>): New expander.
11621         (*leave): Rename from leave.
11622         (*leave_rex64): Rename from leave_rex64.
11623         (@monitorx_<mode>): Rename from monitorx_<mode>.
11624         (@clzero_<mode>): Rename from clzero_<mode>.
11625         * config/i386/sse.md (@sse3_monitor_<mode>): Rename
11626         from sse3_monitor_<mode>.
11627         * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
11628         (*ix86_gen_leave): Ditto.
11629         (*ix86_gen_monitor): Ditto.
11630         (*ix86_gen_monitorx): Ditto.
11631         (*ix86_gen_clzero): Ditto.
11632         (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
11633         * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
11634         Use gen_sub3_carry instead of ix86_gen_sub3_carry.
11635         (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
11636         Use gen_sse3_monitor instead of ix86_gen_monitor.
11637         <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
11638         instead of ix86_gen_monitorx.
11639         <case IX86_BUILTIN_CLZERO>: Use gen_clzero
11640         instead of ix86_gen_clzero.
11641         * config/i386/i386-options.c (ix86_option_override_internal):
11642         Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
11643         ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
11645 2019-05-26  Uroš Bizjak  <ubizjak@gmail.com>
11647         * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
11648         Rename from tls_global_dynamic_64_<mode>.
11649         (@tls_local_dynamic_base_64_<mode>): Rename from
11650         tls_local_dynamic_base_64_<mode>.
11651         * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
11652         Remove indirect function.
11653         (*ix86_gen_tls_local_dynamic_base_64): Ditto.
11654         (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
11655         instead of ix86_gen_tls_global_dynamic_64.
11656         Use gen_tls_local_dynamic_base_64 instead of
11657         ix86_gen_tls_local_dynamic_base_64.
11658         * config/i386/i386-options.c (ix86_option_override_internal):
11659         Do not initialize ix86_gen_tls_global_dynamic_64 and
11660         ix86_gen_tls_local_dynamic_base_64.
11662 2019-05-26  Uroš Bizjak  <ubizjak@gmail.com>
11664         * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
11665         Rename from pro_epilogue_adjust_stack_<mode>_add.
11666         (@pro_epilogue_adjust_stack_sub_<mode>)
11667         Rename from pro_epilogue_adjust_stack_<mode>_sub.
11668         (@allocate_stack_worker_probe_<mode>):
11669         Rename from allocate_stack_worker_probe_<mode>.
11670         (allocate_stack): Use gen_allocate_stack_worker_probe.
11671         (probe_stack): Use gen_probe_stack_1.
11672         (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
11673         (@adjust_stack_and_probe_<mode>): Rename from
11674         adjust_stack_and_probe<mode>.
11675         (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
11676         (stack_protect_set): Use gen_stack_protect_set_1.
11677         (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
11678         (stack_protect_test): Use gen_stack_protect_test_1.
11679         (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
11680         * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
11681         Remove indirect function.
11682         (*ix86_gen_adjust_stack_and_probe): Ditto.
11683         (*ix86_gen_probe_stack_range): Ditto.
11684         (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
11685         instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
11686         (ix86_adjust_stack_and_probe_stack_clash): Use
11687         gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
11688         (ix86_adjust_stack_and_probe): Ditto.
11689         (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
11690         of ix86_gen_probe_stack_range.
11691         (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
11692         instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
11693         * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
11694         Include insn-opinit.h.  Use code_for_stack_protect_test_1 instead of
11695         CODE_FOR_stack_protect_test_{si,di}.
11696         * config/i386/i386-options.c (ix86_option_override_internal):
11697         Do not initialize ix86_gen_allocate_stack_worker,
11698         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
11700 2019-05-26  Gerald Pfeifer  <gerald@pfeifer.com>
11702         * doc/invoke.texi (Link Options): Many editorial changes around
11703         -flinker-output.
11705 2019-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11707         * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
11708         pre-Solaris 11 referene and most Studio compiler details.
11710 2019-05-24  John David Anglin  <danglin@gcc.gnu.org>
11712         PR target/90530
11713         * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
11714         DImode to SImode in floating-point registers on 64-bit target.
11715         * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
11716         register_operand in xmpyu patterns.
11718 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
11720         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
11721         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
11722         OMP_CLAUSE__REDUCTEMP_.
11723         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
11724         OMP_CLAUSE__CONDTEMP_.
11725         (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
11726         * tree-pretty-print.c (dump_omp_clause): Likewise.
11727         * tree-nested.c (convert_nonlocal_omp_clauses,
11728         convert_local_omp_clauses): Likewise.
11729         * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
11730         instead of decimal.  Add GOVD_LASTPRIVATE_CONDITIONAL.
11731         (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
11732         on OMP_FOR.
11733         (gimplify_omp_for): Warn and disable conditional modifier from
11734         lastprivate on loop iterators.
11735         * omp-general.h (struct omp_for_data): Add lastprivate_conditional
11736         member.
11737         * omp-general.c (omp_extract_for_data): Initialize it.
11738         * omp-low.c (struct omp_context): Add lastprivate_conditional_map
11739         member.
11740         (delete_omp_context): Delete it.
11741         (lower_lastprivate_conditional_clauses): New function.
11742         (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
11743         handle lastprivate conditional clauses.
11744         (lower_reduction_clauses): Add CLIST argument, emit it into
11745         the critical section if any.
11746         (lower_omp_sections): Adjust lower_lastprivate_clauses and
11747         lower_reduction_clauses callers.
11748         (lower_omp_for_lastprivate): Add CLIST argument, pass it through
11749         to lower_lastprivate_clauses.
11750         (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
11751         lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
11752         clist into a critical section if not emitted there already by
11753         lower_reduction_clauses.
11754         (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
11755         callers.
11756         (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
11757         conditional variables.
11758         * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
11759         clause is present.
11760         (expand_omp_for_generic, expand_omp_for_static_nochunk,
11761         expand_omp_for_static_chunk): Handle lastprivate conditional.
11762         (expand_omp_for): Handle fd.lastprivate_conditional like
11763         fd.have_reductemp.
11765 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
11767         * config/gcn/gcn-run.c (main): Set a non-zero return value if the
11768         kernel does not exit cleanly.
11769         * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
11771 2019-05-24  Jason Merrill  <jason@redhat.com>
11773         Revert:
11774         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
11776 2019-05-24  Richard Biener  <rguenther@suse.de>
11778         PR testsuite/90607
11779         * tree-loop-distribution.c (struct partition): Add location
11780         member.
11781         (partition_alloc): Initialize all fields.
11782         (generate_memset_builtin): Use the location recorded in the
11783         partition for the generated call.
11784         (generate_memcpy_builtin): Likewise.
11785         (classify_partition): Record the location of a single store
11786         as location for the partition.
11788 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
11790         * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
11791         for lo-part.
11793 2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>
11795         PR target/90588
11796         * common/config/aarch64/aarch64-common.c
11797         (aarch64_rewrite_selected_cpu): Change local temporary variable
11798         type from unsigned long to uint64_t.
11799         * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
11800         aarch64_get_extension_string_for_isa_flags): Change declaration to
11801         match new definition by replacing unsigned long with uint64_t.
11803 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
11805         PR target/90568
11806         * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
11807         gen_attr_type just once instead of 4-7 times.  Formatting fixes.
11808         Handle stack_protect_test_<mode> codegen similarly to corresponding
11809         sub instruction.
11811 2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>
11813         * config/i386/darwin.h: Reject -mfentry*.
11814         * doc/sourcebuild.texi: Document mfentry target support.
11816 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
11818         * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
11819         Rename to rs6000_global_entry_point_prologue_needed_p.  Return
11820         false for PC-relative functions.
11821         (rs6000_output_function_prologue): Change called function name to
11822         rs6000_global_entry_point_prologue_needed_p.  Emit ".localentry
11823         name,1" for PC-relative functions.
11824         (rs6000_elf_declare_function_name): Change called function name to
11825         rs6000_global_entry_point_prologue_needed_p.
11827 2019-05-23  Uroš Bizjak  <ubizjak@gmail.com>
11829         PR target/90552
11830         * config/i386/i386.c (gen_rtx_cost):
11831         Use ix86_tune_cost instead of ix86_cost.
11833 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
11834             Michael Meissner  <meissner@linux.ibm.com>
11835             Segher Boessenkool  <segher@kernel.crashing.org>
11837         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
11838         OPTION_MASK_PCREL.
11839         (POWERPC_MASKS): Add OPTION_MASK_PCREL.
11840         * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
11841         (rs6000_fndecl_pcrel_p): Likewise.
11842         * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
11843         error if -mpcrel is requested without -mcpu=future.
11844         (rs6000_opt_masks): Add entry for pcrel.
11845         (rs6000_fndecl_pcrel_p): New function.
11846         (rs6000_pcrel_p): Likewise.
11847         * config/rs6000/rs6000.opt (mpcrel): New option.
11848         * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
11850 2019-05-23  Jan Hubicka  <jh@suse.cz>
11851             Martin Liska  <mliska@suse.cz>
11853         PR tree-optimization/90576
11854         * tree-ssa-alias.c (compare_sizes): Remove dead calls to
11855         poly_int_tree_p.
11856         (aliasing_component_refs_p): Fix three way size compare conditional;
11857         give up earlier in case we can not decide on equivalence.
11859 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
11860             Michael Meissner  <meissner@linux.ibm.com>
11861             Segher Boessenkool  <segher@kernel.crashing.org>
11863         * config.gcc: Add future cpu.
11864         * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
11865         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
11866         #define.
11867         (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
11868         (RS6000_CPU): New instantiation for future cpu.
11869         * config/rs6000/rs6000-opts.h (enum processor_type): Add
11870         PROCESSOR_FUTURE.
11871         * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
11872         PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
11873         * config/rs6000/rs6000-tables.opt: Regenerate.
11874         * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
11875         PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
11876         (rs6000_machine_from_flags): Handle future cpu.
11877         (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
11878         PROCESSOR_POWER9 for now.
11879         (rs6000_adjust_cost): Likewise.
11880         (rs6000_issue_rate): Likewise.
11881         (rs6000_register_move_cost): Likewise.
11882         (rs6000_opt_masks): Add entry for future.
11883         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
11884         (MASK_FUTURE): New #define.
11885         * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
11886         * config/rs6000/rs6000.opt (mfuture): New target option.
11887         * doc/invoke.texi (mcpu): Add future cpu.
11889 2019-05-23  Martin Liska  <mliska@suse.cz>
11891         PR c++/90587
11892         * tree-ssa-uninit.c (value_sat_pred_p): The result of &
11893         operation points to a temporary (pointed via tree_to_wide_ref)
11894         that is out of scope after the &.
11896 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
11898         PR c++/90592
11899         * doc/extend.texi (Function Names): Add missing word.
11901 2019-05-23  Richard Biener  <rguenther@suse.de>
11903         PR tree-optimization/88440
11904         * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
11905         at -O[2s]+.
11906         * tree-loop-distribution.c (generate_memset_builtin): Fold the
11907         generated call.
11908         (generate_memcpy_builtin): Likewise.
11909         (distribute_loop): Pass in whether to only distribute patterns.
11910         (prepare_perfect_loop_nest): Also allow size optimization.
11911         (pass_loop_distribution::execute): When optimizing a loop
11912         nest for size allow pattern replacement.
11914 2019-05-23  Jakub Jelinek  <jakub@redhat.com>
11916         PR target/90568
11917         * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
11918         of xor.
11920 2019-05-23  Martin Liska  <mliska@suse.cz>
11922         PR sanitizer/90570
11923         * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
11924         expression similarly to gimplify_decl_expr.
11926 2019-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11928         * cse.c (cse_dump_path): s/dump_file/f.
11930 2019-05-22  David Malcolm  <dmalcolm@redhat.com>
11932         PR c++/90462
11933         * diagnostic-format-json.cc: Include "selftest.h".
11934         (json_from_expanded_location): Only add "file" key for non-NULL
11935         file strings.
11936         (json_from_location_range): Don't add "start" and "finish"
11937         children if they are UNKNOWN_LOCATION.
11938         (selftest::test_unknown_location): New selftest.
11939         (selftest::test_bad_endpoints): New selftest.
11940         (selftest::diagnostic_format_json_cc_tests): New function.
11941         * json.cc (json::object::get): New function.
11942         (selftest::test_object_get): New selftest.
11943         (selftest::json_cc_tests): Call it.
11944         * json.h (json::object::get): New decl.
11945         * selftest-run-tests.c (selftest::run_tests): Call
11946         selftest::diagnostic_format_json_cc_tests.
11947         * selftest.h (selftest::diagnostic_format_json_cc_tests): New
11948         decl.
11950 2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
11951             Andrew Stubbs  <amd@codesourcery.com>
11953         * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
11954         * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
11955         (kernel): Rename to...
11956         (main_kernel): ... this.
11957         (load_image): Load _init_array and _fini_array kernels.
11958         (run): Add argument for kernel to run.
11959         (main): Run init_array_kernel before main_kernel, and
11960         fini_array_kernel after.
11961         * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
11962         amdgpu_hsa_kernel attribute on functions.
11963         (gcn_disable_constructors): Delete.
11964         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
11965         * config/gcn/crt0.c (size_t): Define.
11966         (_init_array, _fini_array): New.
11967         (__preinit_array_start, __preinit_array_end,
11968         __init_array_start, __init_array_end,
11969         __fini_array_start, __fini_array_end): Declare weak references.
11971 2019-05-22  Andrew Stubbs  <ams@codesourcery.com>
11973         * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
11975 2019-05-22  Jason Merrill  <jason@redhat.com>
11977         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
11979 2019-05-22  H.J. Lu  <hongjiu.lu@intel.com>
11981         PR target/88483
11982         * config/i386/i386-options.c (ix86_init_machine_status): Set
11983         stack_frame_required to true.
11984         * config/i386/i386.c (ix86_get_frame_size): New function.
11985         (ix86_frame_pointer_required): Replace get_frame_size with
11986         ix86_get_frame_size.
11987         (ix86_compute_frame_layout): Likewise.
11988         (ix86_find_max_used_stack_alignment): Changed to void.  Set
11989         stack_frame_required.
11990         (ix86_finalize_stack_frame_flags): Always call
11991         ix86_find_max_used_stack_alignment.  Replace get_frame_size with
11992         ix86_get_frame_size.
11993         * config/i386/i386.h (machine_function): Add stack_frame_required.
11995 2019-05-22  Uroš Bizjak  <ubizjak@gmail.com>
11997         * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
11999 2019-05-22  Matthew Malcomson  <matthew.malcomson@arm.com>
12001         * common/config/aarch64/aarch64-common.c
12002         (struct aarch64_option_extension, struct processor_name_to_arch,
12003         struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
12004         aarch64_contains_opt,
12005         aarch64_get_extension_string_for_isa_flags): Change type of
12006         variables storing flags to uint64_t.
12007         * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
12008         sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
12009         * config/aarch64/aarch64.c (struct processor,
12010         aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
12011         aarch64_validate_march, aarch64_override_options,
12012         aarch64_option_print, aarch64_handle_attr_isa_flags,
12013         aarch64_declare_function_name, aarch64_start_file): Make flag
12014         variables uint64_t.
12015         * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
12016         AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
12017         AARCH64_FL_SVE2_BITPERM): New macro feature flags.
12018         * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
12019         * config/aarch64/driver-aarch64.c
12020         (struct aarch64_arch_extension, struct aarch64_core_data,
12021         struct aarch64_arch_driver_info, host_detect_local_cpu): Make
12022         flag variables uint64_t.
12023         * doc/invoke.texi: Add documentation for new arguments.
12025 2019-05-22  Richard Biener  <rguenther@suse.de>
12027         * alias.c (ao_ref_from_mem): Move stack-slot sharing
12028         rewrite ...
12029         * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
12031 2019-05-22  Martin Liska  <mliska@suse.cz>
12033         PR lto/90500
12034         * doc/extend.texi: Document the change.
12036 2019-05-22  Richard Biener  <rguenther@suse.de>
12038         PR tree-optimization/90450
12039         * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
12040         (mem_ref_hasher::equal): Check it.
12041         (mem_ref_alloc): Initialize it.
12042         (gather_mem_refs_stmt): Set it.
12044 2019-05-22  Richard Biener  <rguenther@suse.de>
12046         * gimple-fold.c (arith_code_with_undefined_signed_overflow):
12047         Add ABS_EXPR.
12048         (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
12049         as ABSU_EXPR.
12051 2019-05-22  Alan Modra  <amodra@gmail.com>
12053         * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
12054         (ASM_CPU_SPEC): Conditionally add -many.
12055         * config/rs6000/rs6000.c (rs6000_machine): New static var.
12056         (rs6000_machine_from_flags, emit_asm_machine): New functions..
12057         (rs6000_file_start): ..extracted from here, and modified to
12058         test all ISA bits.
12059         (rs6000_output_function_prologue): Emit .machine as necessary.
12061 2019-05-22  Hans-Peter Nilsson  <hp@axis.com>
12063         PR middle-end/90553
12064         * ira-lives.c (process_bb_node_lives): Consider defs
12065         for a call insn to be die before the call, not after.
12067         * function.c (assign_parm_setup_block): Raise alignment of
12068         stacked parameter only for STRICT_ALIGNMENT targets.
12070 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
12072         * config/rs6000/constraints.md (define_register_constraint "wz"):
12073         Delete.
12074         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12075         RS6000_CONSTRAINT_wz.
12076         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12077         (rs6000_init_hard_regno_mode_ok): Adjust.
12078         * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
12079         * doc/md.texi (Machine Constraints): Adjust.
12081 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
12083         * config/rs6000/constraints.md (define_register_constraint "wl"):
12084         Delete.
12085         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12086         RS6000_CONSTRAINT_wl.
12087         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12088         (rs6000_init_hard_regno_mode_ok): Adjust.
12089         * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
12090         * doc/md.texi (Machine Constraints): Adjust.
12092 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
12094         * config/rs6000/constraints.md (define_register_constraint "wm"):
12095         Delete.
12096         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12097         RS6000_CONSTRAINT_wm.
12098         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12099         (rs6000_init_hard_regno_mode_ok): Adjust.
12100         * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
12101         * doc/md.texi (Machine Constraints): Adjust.
12103 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
12105         * config/rs6000/constraints.md (define_register_constraint "wk"):
12106         Delete.
12107         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12108         RS6000_CONSTRAINT_wk.
12109         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12110         (rs6000_init_hard_regno_mode_ok): Adjust.
12111         * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
12112         * doc/md.texi (Machine Constraints): Adjust.
12114 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
12116         * config/rs6000/constraints.md (define_register_constraint "wj"):
12117         Delete.
12118         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12119         RS6000_CONSTRAINT_wj.
12120         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12121         (rs6000_init_hard_regno_mode_ok): Adjust.
12122         * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
12123         (VS_64dm): Delete.
12124         * config/rs6000/vsx.md: Ditto.
12125         * doc/md.texi (Machine Constraints): Adjust.
12127 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
12129         * config/rs6000/constraints.md (define_register_constraint "wh"):
12130         Delete.
12131         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12132         RS6000_CONSTRAINT_wh.
12133         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12134         (rs6000_init_hard_regno_mode_ok): Adjust.
12135         * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
12136         * doc/md.texi (Machine Constraints): Adjust.
12138 2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
12140         PR target/90547
12141         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
12142         Avoid calling gen_lowpart with CONST operand.
12144 2019-05-21  Alexandre Oliva  <aoliva@redhat.com>
12146         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
12147         field template_last_to_copy.
12148         (ssa_create_duplicates): Set it, and use it.  Attempt to
12149         preserve more debug stmts.
12151 2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
12153         * config/i386/sse.md (VF1_AVX2): New mode iterator.
12154         (signbit<mode>2): New expander
12156 2019-05-21  James Clarke  <jrtc27@jrtc27.com>
12158         PR bootstrap/87338
12159         * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
12160         instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
12162 2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
12164         * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
12165         %ebx and %ecx bafore calling cpuid with leaf 1 or
12166         non-constant leaf argument.
12168 2019-05-21  Alan Modra  <amodra@gmail.com>
12170         PR target/90545
12171         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
12172         power9 direct move cost.
12174 2019-05-21  Richard Biener  <rguenther@suse.de>
12176         PR middle-end/90510
12177         * fold-const.c (fold_read_from_vector): New function.
12178         * fold-const.h (fold_read_from_vector): Declare.
12179         * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
12180         single-element insert permutations.  Canonicalize selector
12181         further and fix issue with last commit.
12183 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
12185         * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
12186         parameter with default value false to declaration.
12187         (split_edges_for_insertion): New inline function.  Wrapper for
12188         split_critical_edges with for_edge_insertion_p = true.
12189         * tree-cfg.c (split_critical_edges): Don't split non-critical
12190         edges if for_edge_insertion_p is false.  Fix whitespace.
12191         * tree-ssa-pre.c (pass_pre::execute): Call
12192         split_edges_for_insertion instead of split_critical_edges.
12193         * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
12194         * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
12195         (pass_data_sink_code): Update function name in the comment.
12197 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
12199         * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
12200         around is_value_included_in that knows how to handle BIT_AND_EXPR.
12201         (is_pred_expr_subset_of): Use the new function.  Handle more cases where
12202         code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
12203         positives.
12205 2019-05-21  Martin Liska  <mliska@suse.cz>
12207         * config/rs6000/driver-rs6000.c (elf_platform): Do not use
12208         an extra newline.
12209         * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
12210         (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
12211         vec_lvsr.
12212         * config/rs6000/rs6000.c (rs6000_option_override_internal):
12213         Quote a C type.
12214         (rs6000_function_arg): Likewise.
12215         (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
12216         (rs6000_expand_ternop_builtin): Use interval syntax.
12217         (get_element_number): Likewise.
12218         (altivec_expand_builtin): Likewise.
12219         (rs6000_get_function_versions_dispatcher): Quote target_clones.
12221 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
12223         PR c++/59813
12224         PR target/90418
12225         * function.h (struct function): Add calls_eh_return member.
12226         * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
12227         gimplifying __builtin_eh_return call.
12228         * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
12229         to cfun.
12230         (expand_call_inline): Or in src_cfun->calls_eh_return into
12231         dst_cfun->calls_eh_return.
12232         * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
12233         cfun->calls_eh_return.
12234         * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
12235         * lto-streamer-out.c (output_struct_function_base): Write
12236         calls_eh_return.
12238 2019-05-20  Marc Glisse  <marc.glisse@inria.fr>
12240         PR rtl-optimization/43147
12241         * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
12242         IX86_BUILTIN_SHUFPD.
12244 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
12246         * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
12247         (refs_may_alias_p_1): ... here; update stats.
12248         (refs_may_alias_p): Do not update stats here.
12250 2019-05-20  Richard Biener  <rguenther@suse.de>
12252         * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
12253         doesn't produce pointers.
12254         {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
12255         the first operand points to.
12257 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
12259         * tree-ssa-alias.c (compare_sizes): New function.
12260         (sompare_type_sizes): New function
12261         (aliasing_component_refs_p): Use it.
12262         (indirect_ref_may_alias_decl_p): Likewise.
12264 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12266         * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
12268 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12270         * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
12271         (LIBLSAN_EARLY_SPEC): Likewise.
12272         * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
12274 2019-05-20  Martin Liska  <mliska@suse.cz>
12276         * config/i386/i386.c (ix86_libc_has_fast_function):
12277         Add ATTRIBUTE_UNUSED for the argument.
12279 2019-05-20  Richard Biener  <rguenther@suse.de>
12281         * gimple-match-head.c: Include vec-perm-indices.h.
12282         * generic-match-head.c: Likewise.
12283         * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
12284         is included.
12285         * fold-const.c (fold_vec_perm): Export.
12286         (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
12287         (match.pd): ...here.
12289 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
12291         * cfgloop.h (struct loop): Add simdlen member.
12292         * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
12293         * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
12294         * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
12295         as new argument to autovectorize_vector_sizes target hook.  If
12296         loop->simdlen, pick up vector size where the vectorization factor
12297         is equal to loop->simd, and if there is none, fall back to the first
12298         successful one.
12299         (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
12300         caller.
12301         * omp-low.c (omp_clause_aligned_alignment): Likewise.
12302         * omp-general.c (omp_max_vf): Likewise.
12303         * optabs-query.c (can_vec_mask_load_store_p): Likewise.
12304         * tree-vect-slp.c (vect_slp_bb): Likewise.
12305         * target.def (autovectorize_vector_sizes): Add ALL argument and
12306         document it.
12307         * doc/tm.texi: Adjust documentation.
12308         * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
12309         * targhooks.h (default_autovectorize_vector_sizes): Likewise.
12310         * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
12311         bool argument.
12312         * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
12313         * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
12314         * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
12315         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.  If
12316         true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
12317         preferred vector size is not 512-bit or 256-bit, just put those
12318         unpreferred ones last.
12320 2019-05-20  Martin Liska  <mliska@suse.cz>
12322         * targhooks.c (default_libc_has_fast_function): New function.
12323         * targhooks.h (default_libc_has_fast_function): Likewise.
12325 2019-05-20  Martin Liska  <mliska@suse.cz>
12327         PR middle-end/90263
12328         * builtins.c (expand_builtin_memory_copy_args): When having a
12329         target with fast mempcpy implementation do now use memcpy.
12330         * config/i386/i386.c (ix86_libc_has_fast_function): New.
12331         (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
12332         * doc/tm.texi: Likewise.
12333         * doc/tm.texi.in: Likewise.
12334         * target.def:
12335         * expr.c (emit_block_move_hints): Add 2 new arguments.
12336         * expr.h (emit_block_move_hints): Bail out when libcall
12337         to memcpy would be used.
12339 2019-05-20  Martin Liska  <mliska@suse.cz>
12341         * profile-count.c: Add vertical spacing in order
12342         to separate functions.
12343         * profile-count.h: Likewise.
12345 2019-05-20  Martin Liska  <mliska@suse.cz>
12347         * profile-count.h: Do not use full qualified
12348         names if possible.
12349         * profile-count.c (profile_count::to_frequency): Likewise.
12351 2019-05-20  Martin Liska  <mliska@suse.cz>
12353         * profile-count.h (enum profile_quality): Use capital letters
12354         for enum value names.  Use the adjusted names.
12355         * profile-count.c: Use the adjusted names.
12357 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12359         * config/rs6000/constraints.md (define_register_constraint "wH"):
12360         Delete.
12361         (define_register_constraint "wI"): Delete.
12362         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12363         RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
12364         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12365         (rs6000_init_hard_regno_mode_ok): Adjust.
12366         * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
12367         resp. "d", or with "wa" as appropriate, all with "p8v".
12368         * config/rs6000/vsx.md: Ditto.
12369         * doc/md.texi (Machine Constraints): Adjust.
12371 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12373         * config/rs6000/constraints.md (define_register_constraint "wy"):
12374         Delete.
12375         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12376         RS6000_CONSTRAINT_wy.
12377         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12378         (rs6000_init_hard_regno_mode_ok): Adjust.
12379         * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
12380         Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
12381         (define_mode_attr Fisa): New.
12382         * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
12383         * doc/md.texi (Machine Constraints): Adjust.
12385 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12387         * config/rs6000/constraints.md (define_register_constraint "wu"):
12388         Delete.
12389         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12390         RS6000_CONSTRAINT_wu.
12391         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12392         (rs6000_init_hard_regno_mode_ok): Adjust.
12393         * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
12394         both with "p8v".
12395         (define_mode_attr Fa): Delete.
12396         * config/rs6000/vsx.md: Ditto.
12397         * doc/md.texi (Machine Constraints): Adjust.
12399 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12401         * config/rs6000/constraints.md (define_register_constraint "wJ"):
12402         Delete.
12403         (define_register_constraint "wK"): Delete.
12404         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12405         RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
12406         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12407         (rs6000_init_hard_regno_mode_ok): Adjust.
12408         * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
12409         Replace "wK" constraint by "wH" with "p9v".
12410         * config/rs6000/vsx.md: Ditto.
12411         * doc/md.texi (Machine Constraints): Adjust.
12413 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12415         * config/rs6000/constraints.md (define_register_constraint "wb"):
12416         Delete.
12417         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12418         RS6000_CONSTRAINT_wb.
12419         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12420         (rs6000_init_hard_regno_mode_ok): Adjust.
12421         * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
12422         * config/rs6000/vsx.md: Ditto.
12423         * doc/md.texi (Machine Constraints): Adjust.
12425 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12427         * config/rs6000/constraints.md (define_register_constraint "wo"):
12428         Delete.
12429         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12430         RS6000_CONSTRAINT_wo.
12431         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12432         (rs6000_init_hard_regno_mode_ok): Adjust.
12433         * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
12434         * config/rs6000/altivec.md: Ditto.
12435         * doc/md.texi (Machine Constraints): Adjust.
12437 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
12439         * config/darwin-c.c (darwin_register_objc_includes): Do not
12440         prepend the sysroot when building gnu-runtime header search
12441         paths.
12443 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
12445         * config/darwin.c (darwin_file_end): Use switch_to_section ()
12446         instead of direct output of the asm.
12448 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
12450         * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
12451         argument to be type bool (was int before).
12452         (rs6000_emit_epilogue): Simplify some code.  Declare some variables
12453         at first use.  Use type bool for some variables.  Fix a theoretical
12454         eh_return bug for svr4.
12456 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
12458         * config/rs6000/rs6000.md (isa): New attribute.
12459         (enabled): New attribute.
12461 2019-05-17  Max Filippov  <jcmvbkbc@gmail.com>
12463         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
12464         assemble_start_function and assemble_end_function.
12466 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
12468         PR middle-end/89433
12469         * omp-general.c (oacc_verify_routine_clauses): Change formal
12470         parameters.  Add checking if already marked with an OpenACC
12471         'routine' directive.  Adjust all users.
12473         PR middle-end/89433
12474         * omp-general.c (oacc_build_routine_dims): Move some of its
12475         processing into...
12476         (oacc_verify_routine_clauses): ... this new function.
12477         * omp-general.h (oacc_verify_routine_clauses): New prototype.
12479 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
12481         * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
12482         formating of picbase labels to match other ports.
12484 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
12486         * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
12487         in the generated code.
12489 2019-05-16  Martin Sebor  <msebor@redhat.com>
12491         * builtins.c (expand_builtin_atomic_always_lock_free): Quote
12492         identifiers, keywords, operators, and types in diagnostics.  Correct
12493         quoting, spelling, and sentence capitalization issues.
12494         (expand_builtin_atomic_is_lock_free): Same.
12495         (fold_builtin_next_arg): Same.
12496         * cfgexpand.c (expand_one_var): Same.
12497         (tree_conflicts_with_clobbers_p): Same.
12498         (expand_asm_stmt): Same.
12499         (verify_loop_structure): Same.
12500         * cgraphunit.c (process_function_and_variable_attributes): Same.
12501         * collect-utils.c (collect_execute): Same.
12502         * collect2.c (maybe_run_lto_and_relink): Same.
12503         (is_lto_object_file): Same.
12504         (scan_prog_file): Same.
12505         * convert.c (convert_to_real_1): Same.
12506         * dwarf2out.c (dwarf2out_begin_prologue): Same.
12507         * except.c (verify_eh_tree): Same.
12508         * gcc.c (execute): Same.
12509         (eval_spec_function): Same.
12510         (run_attempt): Same.
12511         (driver::set_up_specs): Same.
12512         (compare_debug_auxbase_opt_spec_function): Same.
12513         * gcov-tool.c (unlink_gcda_file): Same.
12514         (do_merge): Same.
12515         (do_rewrite): Same.
12516         * gcse.c (gcse_or_cprop_is_too_expensive): Same.
12517         * gimplify.c (gimplify_asm_expr): Same.
12518         (gimplify_adjust_omp_clauses): Same.
12519         * hsa-gen.c (gen_hsa_addr_insns): Same.
12520         (gen_hsa_insns_for_load): Same.
12521         (gen_hsa_cmp_insn_from_gimple): Same.
12522         (gen_hsa_insns_for_operation_assignment): Same.
12523         (gen_get_level): Same.
12524         (gen_hsa_alloca): Same.
12525         (omp_simple_builtin::generate): Same.
12526         (gen_hsa_atomic_for_builtin): Same.
12527         (gen_hsa_insns_for_call): Same.
12528         * input.c (dump_location_info): Same.
12529         * ipa-devirt.c (compare_virtual_tables): Same.
12530         * ira.c (ira_setup_eliminable_regset): Same.
12531         * lra-assigns.c (lra_assign): Same.
12532         * lra-constraints.c (lra_constraints): Same.
12533         * lto-streamer-in.c (lto_input_mode_table): Same.
12534         * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
12535         (merge_and_complain): Same.
12536         (compile_offload_image): Same.
12537         (compile_images_for_offload_targets): Same.
12538         (debug_objcopy): Same.
12539         (run_gcc): Same.
12540         (main): Same.
12541         * opts.c (print_specific_help): Same.
12542         (parse_no_sanitize_attribute): Same.
12543         (print_help): Same.
12544         (handle_param): Same.
12545         * plugin.c (add_new_plugin): Same.
12546         (parse_plugin_arg_opt): Same.
12547         (try_init_one_plugin): Same.
12548         * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
12549         operators, and types in diagnostics.  Correct quoting and spelling
12550         issues.
12551         * read-rtl-function.c (parse_edge_flag_token): Same.
12552         (function_reader::parse_enum_value): Same.
12553         * reg-stack.c (check_asm_stack_operands): Same.
12554         * regcprop.c (validate_value_data): Same.
12555         * sched-rgn.c (make_pass_sched_fusion): Same.
12556         * stmt.c (check_unique_operand_names): Same.
12557         * targhooks.c (default_target_option_pragma_parse): Same.
12558         * tlink.c (recompile_files): Same.
12559         * toplev.c (process_options): Same.
12560         (do_compile): Same.
12561         * trans-mem.c (diagnose_tm_1): Same.
12562         (ipa_tm_scan_irr_block): Same.
12563         (ipa_tm_diagnose_transaction): Same.
12564         * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
12565         format a tree code name in a diagnostic.
12566         (verify_types_in_gimple_min_lval): Same.
12567         (verify_types_in_gimple_reference): Same.
12568         (verify_gimple_call): Same.
12569         (verify_gimple_assign_unary): Same.
12570         (verify_gimple_assign_binary): Same.
12571         (verify_gimple_assign_ternary): Same.
12572         (verify_gimple_assign_single): Same.
12573         (verify_gimple_switch): Same.
12574         (verify_gimple_label): Same.
12575         (verify_gimple_phi): Same.
12576         (verify_gimple_in_seq): Same.
12577         (verify_eh_throw_stmt_node): Same.
12578         (collect_subblocks): Same.
12579         (gimple_verify_flow_info): Same.
12580         (do_warn_unused_result): Same.
12581         * tree-inline.c (expand_call_inline): Same.
12582         * tree-into-ssa.c (update_ssa): Same.
12583         * tree.c (tree_int_cst_elt_check_failed): Same.
12584         (tree_vec_elt_check_failed): Same.
12585         (omp_clause_operand_check_failed): Same.
12586         (verify_type_variant): Same.
12587         (verify_type): Same.
12588         * value-prof.c (verify_histograms): Same.
12589         * varasm.c (assemble_start_function): Same.
12591 2019-05-16  Martin Sebor  <msebor@redhat.com>
12593         * config/i386/i386-expand.c (get_element_number): Quote keywords
12594         and other internal names in diagnostics.  Adjust other diagnostic
12595         formatting issues noted by -Wformat-diag.
12596         * config/i386/i386-features.c
12597         (ix86_mangle_function_version_assembler_name): Same.
12598         * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
12599         * config/i386/i386.c (ix86_function_type_abi): Same.
12600         (ix86_function_ms_hook_prologue): Same.
12601         (classify_argument): Same.
12602         (ix86_expand_prologue): Same.
12603         (ix86_md_asm_adjust): Same.
12604         (ix86_memmodel_check): Same.
12606 2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
12608         * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
12609         TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
12610         and fpxx modes.
12612 2019-05-17  H.J. Lu  <hongjiu.lu@intel.com>
12614         PR target/90497
12615         * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
12616         intrinsics without SSE/SSE2/SSSE3.
12617         * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
12618         check.
12619         (*mmx_uavgv8qi3): Likewise.
12621 2019-05-17  Richard Biener  <rguenther@suse.de>
12623         * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
12624         VEC_PERM_EXPR as __VEC_PERM with -gimple.
12626 2019-05-17  Andreas Krebbel  <krebbel@linux.ibm.com>
12628         * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
12629         vec_sldw insn pattern.
12631 2019-05-17  Richard Biener  <rguenther@suse.de>
12633         * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
12635 2019-05-17  Martin Liska  <mliska@suse.cz>
12637         PR driver/90496
12638         * toplev.c (output_stack_usage): With LTO and sanitizer it
12639         happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
12640         has no file location.
12642 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
12644         PR c++/90484
12645         * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
12646         sz0 is equal to sz1, instead return false in that case.
12648         * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
12649         has non-constant expression, force sctx.lane and use two
12650         argument IFN_GOMP_SIMD_LANE instead of single argument.
12651         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
12652         two argument IFN_GOMP_SIMD_LANE without lhs.
12653         * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
12654         member.
12655         (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
12656         Define.
12657         (LOOP_REQUIRES_VERSIONING): Or in
12658         LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
12659         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
12660         simd_if_cond.
12661         (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
12662         * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
12663         from simd if clause if needed.
12665 2019-05-16  Richard Biener  <rguenther@suse.de>
12667         * tree-affine.c (expr_to_aff_combination): New function split
12668         out from...
12669         (tree_to_aff_combination): ... here.
12670         (aff_combination_expand): Avoid building a GENERIC tree.
12672 2019-05-16  Max Filippov  <jcmvbkbc@gmail.com>
12674         * cgraphunit.c (cgraph_node::expand_thunk): Remove
12675         assemble_start_function and assemble_end_function calls.
12676         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
12677         assemble_start_function and assemble_end_function.
12678         * config/arc/arc.c (arc_output_mi_thunk): Likewise.
12679         * config/arm/arm.c (arm_output_mi_thunk): Likewise.
12680         * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
12681         * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
12682         * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
12683         * config/csky/csky.c (csky_output_mi_thunk): Likewise.
12684         * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
12685         * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
12686         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
12687         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
12688         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
12689         * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
12690         Likewise.
12691         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
12692         * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
12693         * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
12694         * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
12695         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
12696         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
12697         * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
12698         * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
12699         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
12700         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
12701         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12702         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12703         * config/spu/spu.c (spu_output_mi_thunk): Likewise.
12704         * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
12705         Likewise.
12706         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
12707         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
12708         * config/vax/vax.c (vax_output_mi_thunk): Likewise.
12710 2019-05-16  Jan Hubicka  <hubicka@ucw.cz>
12712         * tree-ssa-alias.c (alias_stats): Add
12713         aliasing_component_refs_p_may_alias and
12714         aliasing_component_refs_p_no_alias.
12715         (dump_alias_stats): Print aliasing_component_refs_p stats.
12716         (aliasing_component_refs_p): Update stats.
12718 2019-05-16  Martin Liska  <mliska@suse.cz>
12720         PR lto/90500
12721         * multiple_target.c (expand_target_clones): Do not allow
12722         target_clones being used with a symbol that is an alias.
12724 2019-05-16  Vladislav Ivanishin  <vlad@ispras.ru>
12726         PR tree-optimization/90394
12727         * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
12728         positives rather than ICE for cases where (code2 == NE_EXPR
12729         && code1 == BIT_AND_EXPR).
12731 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
12733         PR fortran/90329
12734         * tree-core.h (struct tree_decl_common): Document
12735         decl_nonshareable_flag for PARM_DECLs.
12736         * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
12737         * calls.c (expand_call): Don't try tail call if caller
12738         has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
12739         passed on the stack and callee needs to pass any arguments on the
12740         stack.
12741         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
12742         else if instead of series of mutually exclusive ifs.  Handle
12743         DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
12744         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12746         * lto-streamer.h (LTO_major_version): Bump to 9.
12748 2019-05-16  Jun Ma  <JunMa@linux.alibaba.com>
12750         PR tree-optimization/90106
12751         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
12752         new parameter as new internal function call, also move it to new
12753         basic block.
12754         (use_internal_fn): Pass internal function call to
12755         shrink_wrap_one_built_in_call_with_conds.
12757 2019-05-15  Jakub Jelinek  <jakub@redhat.com>
12759         * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
12760         max_vf to 1.
12761         * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
12762         safelen_int and set loop->dont_vectorize.
12764 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12766         PR target/89021
12767         * config/i386/i386-builtin.def: Enable MMX intrinsics with
12768         SSE/SSE2/SSSE3.
12769         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
12770         Likewise.
12771         * config/i386/i386-expand.c (ix86_expand_builtin): Allow
12772         SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
12773         * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
12774         is defined.
12776 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12778         PR target/89021
12779         * config/i386/mmx.md (*vec_dupv2sf): Changed to
12780         define_insn_and_split to support SSE emulation.
12781         (*vec_extractv2sf_0): Likewise.
12782         (*vec_extractv2sf_1): Likewise.
12783         (*vec_extractv2si_0): Likewise.
12784         (*vec_extractv2si_1): Likewise.
12785         (*vec_extractv2si_zext_mem): Likewise.
12786         (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
12787         (vec_extractv2sf_1 splitter): Likewise.
12788         (vec_extractv2sfsf): Likewise.
12789         (vec_setv2si): Likewise.
12790         (vec_extractv2si_1 splitter): Likewise.
12791         (vec_extractv2sisi): Likewise.
12792         (vec_setv4hi): Likewise.
12793         (vec_extractv4hihi): Likewise.
12794         (vec_setv8qi): Likewise.
12795         (vec_extractv8qiqi): Likewise.
12796         (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
12797         TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
12798         (vec_extractv2sisi): Likewise.
12799         (vec_extractv4hihi): Likewise.
12800         (vec_extractv8qiqi): Likewise.
12801         (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
12802         TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
12803         (vec_initv2sisi): Likewise.
12804         (vec_initv4hihi): Likewise.
12805         (vec_initv8qiqi): Likewise.
12806         (vec_setv2si): Also allow TARGET_MMX_WITH_SSE.  Pass
12807         TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
12808         (vec_setv4hi): Likewise.
12809         (vec_setv8qi): Likewise.
12811 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12813         PR target/89021
12814         * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
12815         TARGET_MMX_WITH_SSE.
12816         (MMXMODE:*mov<mode>_internal): Likewise.
12817         (MMXMODE:movmisalign<mode>): Likewise.
12819 2019-05-15  Uroš Bizjak  <ubizjak@gmail.com>
12821         PR target/89021
12822         * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
12823         * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
12824         (sse2_cvtpd2pi): Ditto.
12825         (sse2_cvttpd2pi): Ditto.
12826         (*vec_concatv2sf_sse4_1): Ditto.
12827         (*vec_concatv2sf_sse): Ditto.
12828         (*vec_concatv2si_sse4_1): Ditto.
12829         (*vec_concatv2si): Ditto.
12830         (*vec_concatv4si_0): Ditto.
12831         (*vec_concatv2di_0): Ditto.
12833 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12835         PR target/89021
12836         * config/i386/sse.md (abs<mode>2): Add SSE emulation.
12838 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12840         PR target/89021
12841         * config/i386/sse.md (ssse3_palignrdi): Changed to
12842         define_insn_and_split to support SSE emulation.
12844 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12846         PR target/89021
12847         * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
12849 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12851         PR target/89021
12852         * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
12853         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
12854         SSE emulation.
12856 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12858         PR target/89021
12859         * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
12860         or TARGET_MMX_WITH_SSE.
12861         (*ssse3_pmulhrswv4hi3): Add SSE emulation.
12863 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12865         PR target/89021
12866         * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
12868 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12870         PR target/89021
12871         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
12872         Changed to define_insn_and_split to support SSE emulation.
12874 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12876         PR target/89021
12877         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
12878         Changed to define_insn_and_split to support SSE emulation.
12880 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12882         PR target/89021
12883         * config/i386/mmx.md (mmx_<emms>): Renamed to ...
12884         (*mmx_<emms>): This.
12885         (mmx_<emms>): New expander.
12887 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12889         PR target/89021
12890         * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
12891         support.
12892         (*sse2_umulv1siv1di3): Add SSE2 emulation.
12894 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12896         PR target/89021
12897         * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
12899 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12901         PR target/89021
12902         * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
12904 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12906         PR target/89021
12907         * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
12908         TARGET_MMX_WITH_SSE.
12909         (*mmx_uavgv4hi3): Add SSE emulation.
12911 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12913         PR target/89021
12914         * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
12915         and TARGET_MMX_WITH_SSE.
12916         (*mmx_uavgv8qi3): Add SSE emulation.
12918 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12920         PR target/89021
12921         * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
12922         maskmovdqu for __MMX_WITH_SSE__.
12924 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12926         PR target/89021
12927         * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
12928         TARGET_MMX and TARGET_MMX_WITH_SSE.
12929         (*mmx_umulv4hi3_highpart): Add SSE emulation.
12931 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12933         PR target/89021
12934         * config/i386/mmx.md (mmx_pmovmskb): Changed to
12935         define_insn_and_split to support SSE emulation.
12937 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12939         PR target/89021
12940         * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
12941         and TARGET_MMX_WITH_SSE.
12942         (mmx_<code>v8qi3): Likewise.
12943         (smaxmin:<code>v4hi3): New.
12944         (umaxmin:<code>v8qi3): Likewise.
12945         (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
12946         (umaxmin:*mmx_<code>v8qi3): Likewise.
12948 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12950         PR target/89021
12951         * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
12952         TARGET_MMX_WITH_SSE.
12953         (*mmx_pinsrw): Add SSE emulation.
12955 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12957         PR target/89021
12958         * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
12960 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12962         PR target/89021
12963         * config/i386/sse.md (sse_cvtpi2ps): Changed to
12964         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
12965         SSE emulation.
12967 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12969         PR target/89021
12970         * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
12971         (sse_cvttps2pi): Likewise.
12973 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12975         PR target/89021
12976         * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
12977         TARGET_MMX_WITH_SSE.
12978         (mmx_pshufw_1): Add SSE emulation.
12979         (*vec_dupv4hi): Changed to define_insn_and_split and also allow
12980         TARGET_MMX_WITH_SSE to support SSE emulation.
12982 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12984         PR target/89021
12985         * config/i386/constraints.md (Yw): New constraint.
12986         * config/i386/mmx.md (*vec_dupv2si): Changed to
12987         define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
12988         support SSE emulation.
12990 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12992         PR target/89021
12993         * config/i386/mmx.md (mmx_eq<mode>3): Also allow
12994         TARGET_MMX_WITH_SSE.
12995         (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
12996         support.
12997         (mmx_gt<mode>3): Likewise.
12999 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13001         PR target/89021
13002         * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
13003         TARGET_MMX_WITH_SSE.  Add SSE support.
13005 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13007         PR target/89021
13008         * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
13009         TARGET_MMX_WITH_SSE.
13010         (any_logic:<code><mode>3): New.
13011         (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
13012         Add SSE support.
13014 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13016         PR target/89021
13017         * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
13018         TARGET_MMX_WITH_SSE.  Add SSE emulation.
13019         (mmx_<shift_insn><mode>3): Likewise.
13020         (ashr<mode>3): New.
13021         (<shift_insn><mode>3): Likewise.
13023 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13025         PR target/89021
13026         * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
13027         (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.  Add SSE support.
13029 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13031         PR target/89021
13032         * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
13033         TARGET_MMX_WITH_SSE.
13034         (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
13035         SSE support.
13037 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13039         PR target/89021
13040         * config/i386/mmx.md (mmx_mulv4hi3): Also allow
13041         TARGET_MMX_WITH_SSE.
13042         (mulv4hi3): New.
13043         (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
13044         support.
13046 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13048         PR target/89021
13049         * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
13050         (plusminus:mmx_<plusminus_insn><mode>3): Check
13051         TARGET_MMX_WITH_SSE.
13052         (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
13053         (<plusminus_insn><mode>3): New.
13054         (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
13055         (*mmx_<plusminus_insn><mode>3): Likewise.
13057 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13059         PR target/89021
13060         * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
13061         * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
13062         prototype.
13063         * config/i386/mmx.m (mmx_punpckhbw): Changed to
13064         define_insn_and_split to support SSE emulation.
13065         (mmx_punpcklbw): Likewise.
13066         (mmx_punpckhwd): Likewise.
13067         (mmx_punpcklwd): Likewise.
13068         (mmx_punpckhdq): Likewise.
13069         (mmx_punpckldq): Likewise.
13071 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13072             Uros Bizjak  <ubizjak@gmail.com>
13074         PR target/89021
13075         * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
13076         New function.
13077         (ix86_split_mmx_pack): Likewise.
13078         * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
13079         New prototype.
13080         (ix86_split_mmx_pack): Likewise.
13081         * config/i386/i386.md (mmx_isa): New.
13082         (enabled): Also check mmx_isa.
13083         * config/i386/mmx.md (any_s_truncate): New code iterator.
13084         (s_trunsuffix): New code attr.
13085         (mmx_packsswb): Removed.
13086         (mmx_packssdw): Likewise.
13087         (mmx_packuswb): Likewise.
13088         (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
13089         MMX packsswb/packuswb with SSE2.
13090         (mmx_packssdw): Likewise.
13091         * config/i386/predicates.md (register_mmxmem_operand): New.
13093 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13095         PR target/89021
13096         * config/i386/i386-c.c (ix86_target_macros_internal): Define
13097         __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
13098         * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
13099         TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
13100         (ix86_vector_mode_supported_p): Likewise.
13101         * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
13103 2019-05-15  Martin Liska  <mliska@suse.cz>
13105         PR middle-end/90478
13106         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
13107         Check for overflow.
13109 2019-05-15  Richard Biener  <rguenther@suse.de>
13111         * tree-into-ssa.c (pass_build_ssa::execute): Run
13112         update_address_taken before going into SSA.
13114 2019-05-15  Richard Biener  <rguenther@suse.de>
13116         * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
13117         as __BIT_FIELD_REF with type with -gimple.
13119 2019-05-15  Vladislav Ivanishin  <vlad@ispras.ru>
13121         * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
13122         semantically equivalent branches (left over after prior refactorings).
13124 2019-05-15  Richard Biener  <rguenther@suse.de>
13126         PR tree-optimization/88828
13127         * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
13128         bogus check.
13130 2019-05-14  Richard Biener  <rguenther@suse.de>
13132         * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
13133         as __VIEW_CONVERT with -gimple.
13135 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
13137         PR target/82920
13138         * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
13139         Darwin.
13141 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
13143         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
13144         define_split to become a define_insn_and_split.
13146 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
13148         * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
13149         arguments.
13150         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
13151         * config/rs6000/rs6000.md (epilogue_type): New define_enum.
13152         (sibcall_epilogue): Adjust.
13153         (epilogue): Adjust.
13155 2019-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13157         * config.gcc: Move *-*-solaris2.10* from obsolete configurations
13158         to unsupported ones.
13159         Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
13160         * config.host: Likewise.
13161         * config/i386/sol2.h (ASM_COMMENT_START): Remove.
13162         * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
13163         __svr4__]: Remove "brand" fallback.
13164         [!KSTAT_DATA_STRING]: Remove.
13165         * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
13166         to *-*-solaris2*.
13167         (comdat_group): Likewise.
13168         (set_have_as_tls): Likewise.
13169         (gcc_cv_target_dl_iterate_phdr): Likewise.
13170         (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
13171         (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
13172         * configure: Regenerate.
13173         * doc/install.texi: Simplify Solaris target triplets.
13174         (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
13175         (Specific, *-*-solaris2*): Document Solaris 10 removal.
13176         Remove Solaris 10 references.
13177         Remove obsolete Solaris bug reference.
13178         (Specific, sparc-sun-solaris2.10): Remove.
13180 2019-05-14  Uroš Bizjak  <ubizjak@gmail.com>
13182         * config/i386/i386.md (any_div): New code iterator.
13183         (paired_mod): New code attribute.
13184         (sgnprefix): Handle DIV and UDIV RTXes.
13185         (u): Ditto.
13186         (<u>divmod<mode>4): Macroize expander from divmod<mode>4
13187         and udivmod<mode>4 patterns using any_div code iterator.
13188         (divmod splitters): Macroize splitters using any_div code iterator.
13189         (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
13190         (*udivmodsi4_pow2_zext_2): Ditto.
13191         (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
13192         and *udivmod<mode>4_noext patterns using any_div code iterator.
13193         (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
13194         *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
13195         patterns using any_div code iterator.
13196         (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
13197         *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
13198         patterns using any_div code iterator.
13199         (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
13200         udivmodhiqi3 patterns using any_extend code iterator.
13202 2019-05-14  Richard Biener  <rguenther@suse.de>
13203             H.J. Lu  <hongjiu.lu@intel.com>
13205         PR tree-optimization/88828
13206         * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
13207         permuting in a single non-constant element not extracted
13208         from a vector.
13210 2019-05-14  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
13212         * internal-fn.def (SIGNBIT): New.
13213         * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
13214         defined.
13215         (signbitv4sf2): Likewise.
13217 2019-05-14  Chenghua Xu  <paul.hua.gm@gmail.com>
13219         PR target/90357
13220         * config/mips/mips.c (mips_split_move): Skip forward SRC into
13221         next insn when the SRC reg is dead.
13223 2019-05-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
13225         * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
13226         (alloc_cand_and_find_basis): Ditto.
13227         (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
13228         (create_mul_imm_cand, create_add_ssa_cand): Ditto.
13229         (create_add_imm_cand, slsr_process_cast): Ditto.
13230         (slsr_process_copy, replace_mult_candidate): Ditto.
13231         (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
13232         (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
13233         (pass_strength_reduction::execute): Init the first NULL element.
13235 2019-05-13  Nathan Sidwell  <nathan@acm.org>
13237         * gcc.c (execute): Simplify cond-expr into if.  Reformat comment.
13238         (run_attempt): Reformat line break.
13240 2019-05-13  David Edelsohn  <dje.gcc@gmail.com>
13242         PR target/90418
13243         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
13244         data registers in sibcall epilogues.
13245         Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
13247 2019-05-13  Uroš Bizjak  <ubizjak@gmail.com>
13249         PR target/89221
13250         * configure.ac (--enable-frame-pointer):
13251         Disable by default for cygwin and mingw.
13252         * configure: Regenerate.
13254 2019-05-13  Nathan Sidwell  <nathan@acm.org>
13256         * dwarf2out.c (breakout_comdat_types): Move comment to correct
13257         piece of code.
13258         (const_ok_for_output_1): Balance parens around #if/#else/#endif
13259         (gen_member_die): Move abstract origin check earlier.  Only VARs
13260         can be static_inline_p.  Simplify splicing control flow.
13262 2019-05-13  Richard Biener  <rguenther@suse.de>
13264         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
13265         VIEW_CONVERT_EXPR.
13266         (vect_build_slp_tree_1): Likewise.
13268 2019-05-13  Richard Biener  <rguenther@suse.de>
13270         PR tree-optimization/90402
13271         * tree-if-conv.c (tree_if_conversion): Value number only
13272         the loop body by making the latch an exit of the region
13273         as well.
13274         * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
13275         processing PHIs.
13276         (do_rpo_vn): Deal with multiple edges into the entry block
13277         that are not backedges inside the region by skipping PHIs
13278         of the entry block.
13280 2019-05-13  Richard Biener  <rguenther@suse.de>
13282         PR tree-optimization/90316
13283         * tree-ssa-pre.c (insert_aux): Fold into ...
13284         (insert): ... this function.  Use a RPO walk to reduce the
13285         number of required iterations.
13287 2019-05-13  Martin Liska  <mliska@suse.cz>
13289         PR tree-optimization/90416
13290         * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
13291         string instead of passing the second part as va_arg argument.
13293 2019-05-13  Martin Liska  <mliska@suse.cz>
13295         PR gcov-profile/90380
13296         * gcov.c (handle_cycle): Do not support zero cycle count,
13297         it should not be possible.
13298         (path_contains_zero_cycle_arc): New function.
13299         (circuit): Ignore zero cycle arc counts.
13301 2019-05-13  Martin Liska  <mliska@suse.cz>
13303         PR gcov-profile/90380
13304         * gcov.c (enum loop_type): Remove the enum and
13305         the operator.
13306         (handle_cycle): Assert that we should not reach
13307         a negative count.
13308         (circuit): Use loop_found instead of a tri-state loop_type.
13309         (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
13310         happen.
13312 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
13314         PR target/82920
13315         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
13316         (ix86_output_indirect_branch_via_reg): Use output mechanism
13317         accounting for __USER_LABEL_PREFIX__.
13318         (ix86_output_indirect_branch_via_push): Likewise.
13319         (ix86_output_function_return): Likewise.
13320         (ix86_output_indirect_function_return): Likewise.
13322 2019-05-12  Richard Sandiford  <richard.sandiford@arm.com>
13324         * doc/md.texi: Document use of code attributes in rtx patterns.
13325         * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
13326         * read-rtl.c (find_code): Split out search loops into...
13327         (maybe_find_code): ...this new function.
13328         (check_code_iterator): Make the error message more informative.
13329         (check_code_attribute): New function.
13330         (rtx_reader::rtx_alloc_for_name): Likewise.
13331         (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
13332         * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
13333         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
13334         <max_opp> directly as an rtx code instead of via a match_operator.
13335         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
13336         (<su>abd<mode>_3): Update accordingly.
13338 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
13340         * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
13341         is given, print the state of the EH "save world" computation for
13342         Darwin.
13344 2019-05-11  Jakub Jelinek  <jakub@redhat.com>
13346         PR c++/59813
13347         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
13348         EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
13350 2019-05-11  Uroš Bizjak  <ubizjak@gmail.com>
13352         * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
13353         Use pinsrd for TARGET_SSE4_1.
13354         * config/i386/sse.md (movdi_to_sse): Ditto.
13356 2019-05-10  Richard Biener  <rguenther@suse.de>
13358         * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
13359         (do_rpo_vn): Initialize next_value_id.
13361 2019-05-10  Martin Liska  <mliska@suse.cz>
13363         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
13364         Fix plural form.
13366 2019-05-10  Jakub Jelinek  <jakub@redhat.com>
13368         PR tree-optimization/90385
13369         * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
13370         arguments of the exit phis.
13372         PR c++/90383
13373         * tree-inline.h (struct copy_body_data): Add do_not_fold member.
13374         * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
13375         id->do_not_fold.
13376         (copy_tree_body_r): Likewise.
13377         (copy_fn): Set id.do_not_fold to true.
13379 2019-05-10  Martin Liska  <mliska@suse.cz>
13381         * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
13382         Reapply changes from r269790.
13384 2019-05-10  Martin Liska  <mliska@suse.cz>
13386         PR middle-end/90340
13387         * doc/invoke.texi: New params.
13388         * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
13389         (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
13390         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
13391         Use it.
13392         * tree-switch-conversion.h (struct jump_table_cluster):
13393         Likewise.
13395 2019-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
13397         * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
13399 2019-05-09  Bill Schmidt  <wschmidt@linux.ibm.com>
13401         * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
13403 2019-05-09  Alexander Monakov  <amonakov@ispras.ru>
13405         PR rtl-optimization/88879
13406         * sel-sched.c (sel_target_adjust_priority): Remove assert.
13408 2019-05-09  Richard Earnshaw  <rearnsha@arm.com>
13410         PR target/90405
13411         * config/arm/arm.c (callee_saved_reg_p): Move before
13412         thumb_find_work_register.
13413         (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
13414         thumb_find_work_register.  Only call df_get_live_out once.
13415         (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
13416         (thumb_find_work_register): Use
13417         thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
13418         algorithms to locate a spare call clobbered reg.
13420 2019-05-09  Martin Liska  <mliska@suse.cz>
13422         * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
13423         and MAX_EXPR in GIMPLE FE format.
13425 2019-05-09  Martin Liska  <mliska@suse.cz>
13427         * tree-cfg.c (dump_function_to_file): Dump entry BB count.
13428         * gimple-pretty-print.c (dump_gimple_bb_header):
13429         Dump BB count.
13430         (pp_cfg_jump): Dump edge probability.
13431         * profile-count.c (profile_quality_as_string): Simplify
13432         with a static array.
13433         (parse_profile_quality): New function.
13434         (profile_count::dump): Simplify with a static array.
13435         (profile_count::from_gcov_type): Add new argument.
13436         * profile-count.h (parse_profile_quality): Likewise.
13437         * predict.h (set_hot_bb_threshold): New.
13438         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
13439         New param.
13440         * predict.c (get_hot_bb_threshold): Set from the new param.
13441         (set_hot_bb_threshold): New.
13443 2019-05-09  Richard Biener  <rguenther@suse.de>
13445         PR tree-optimization/90395
13446         * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
13447         rewrite vector stores that throw internally.
13449 2019-05-09  Thomas Schwinge  <thomas@codesourcery.com>
13451         * cif-code.def (CHKP): Remove.
13453         PR target/89221
13454         * configure.ac (--enable-frame-pointer): Disable by default for
13455         GNU systems.
13456         * configure: Regenerate.
13458 2019-05-09  Alan Modra  <amodra@gmail.com>
13460         PR target/89271
13461         * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
13462         (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
13463         * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
13464         cost for general <-> vsx when direct moves are available.
13465         Cost union classes at minimal cost for any reg in the class.
13466         Correct calculation for moves between vsx, float, and altivec.
13467         Don't return a low cost for moves between special regs.  Don't
13468         use hard coded register numbers.
13469         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
13470         (rs6000_ira_change_pseudo_allocno_class): New function.
13471         * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
13472         (movdi_internal32, movdi_internal64): Remove '*' from vsx register
13473         alternatives.
13474         (movsi_internal1): Don't disparage vector alternatives.
13475         (mov<mode>_internal): Likewise, excepting alternative that
13476         will be split.
13477         * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
13478         we <- b alternative.
13480 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
13482         PR c++/59813
13483         PR tree-optimization/89060
13484         * tree-ssa-live.h (live_vars_map): New typedef.
13485         (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
13486         * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
13487         (struct compute_live_vars_data): New type.
13488         (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
13489         live_vars_at_stmt, destroy_live_vars): New functions.
13490         * tree-tailcall.c: Include tree-ssa-live.h.
13491         (live_vars, live_vars_vec): New global variables.
13492         (find_tail_calls): Perform variable life analysis before punting.
13493         (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
13494         * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
13495         member.
13496         * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
13497         Perform variable life analysis to select variables that really need
13498         clobbers added.
13499         (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
13500         instead set id->eh_landing_pad_dest and assert it is the same.
13501         (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
13503 2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
13504             Richard Earnshaw  <rearnsha@arm.com>
13506         PR target/88167
13507         * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
13508         function.
13509         (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
13510         (thumb1_compute_save_core_reg_mask): Don't force a spare work
13511         register if both the epilogue and prologue can use call-clobbered
13512         regs.
13513         (thumb1_unexpanded_epilogue): Use
13514         thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
13515         picking temporaries for restoring high regs to match that of the
13516         prologue where possible.
13517         (thumb1_expand_prologue): Add any usable call-clobbered low registers to
13518         the list of work registers.  Detect if the return address is still live
13519         at the end of the prologue and avoid using it for a work register if so.
13520         If the return address is not live, add LR to the list of pushable regs
13521         after the first pass.
13523 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
13525         PR tree-optimization/90078
13526         * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
13527         (INFTY): Increase the value for infinite cost.
13528         (struct comp_cost): Promote type of members to int64_t.
13529         (infinite_cost): Don't set complexity in initialization.
13530         (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
13531         overflows to infinite_cost.
13532         (adjust_setup_cost): Promote type of parameter and cost computation
13533         to int64_t.
13534         (struct ainc_cost_data, struct iv_ca): Promote type of member to
13535         int64_t.
13536         (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
13537         cost computation to int64_t.
13538         (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
13539         int64_t's format specifier in dump.
13541 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
13543         PR tree-optimization/90240
13544         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
13545         with respect to scaling factor pre-computed for each basic block.
13546         (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
13547         (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
13548         (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
13549         (tree_ssa_iv_optimize_loop): Call determine_scaling_factor.  Extend
13550         live range for array of loop's basic blocks.  Cleanup aux field of
13551         loop's basic blocks.
13553 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
13555         PR tree-optimization/90356
13556         * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
13558 2019-05-07  Wei Xiao  <wei3.xiao@intel.com>
13560         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
13561         OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
13562         (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
13563         (ix86_handle_option): Handle -mavx512bf16.
13564         * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
13565         to extra_headers.
13566         * config/i386/avx512bf16vlintrin.h: New.
13567         * config/i386/avx512bf16intrin.h: New.
13568         * config/i386/cpuid.h (bit_AVX512BF16): New.
13569         * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
13570         * config/i386/i386-builtin-types.def: Add new types.
13571         * config/i386/i386-builtin.def: Add new builtins.
13572         * config/i386/i386-c.c (ix86_target_macros_internal): Define
13573         __AVX512BF16__.
13574         * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
13575         (ix86_option_override_internal): Handle BF16.
13576         (ix86_valid_target_attribute_inner_p): Ditto.
13577         * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
13578         * config/i386/i386-builtin.c (enum processor_features): Add
13579         F_AVX512BF16.
13580         (static const _isa_names_table isa_names_table): Ditto.
13581         * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
13582         (PTA_AVX512BF16): Ditto.
13583         * config/i386/i386.opt: Add -mavx512bf16.
13584         * config/i386/immintrin.h: Include avx512bf16intrin.h
13585         and avx512bf16vlintrin.h.
13586         * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
13587         avx512f_cvtneps2bf16_<mode><mask_name>,
13588         avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
13589         * config/i386/subst.md (mask_half): Add new subst.
13590         * doc/invoke.texi: Document -mavx512bf16.
13592 2019-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
13594         * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
13595         Delete declaration.
13596         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
13597         (rs6000_debug_legitimize_reload_address): Delete.
13598         (rs6000_legitimize_reload_address_ptr): Delete.
13599         (rs6000_option_override_internal): Adjust.
13600         (mem_operand_gpr): Adjust comment.
13601         (legitimate_lo_sum_address_p): Ditto.
13602         (rs6000_legitimize_reload_address): Delete.
13603         (rs6000_debug_legitimize_reload_address): Delete.
13604         * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
13606 2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13608         PR target/89765
13609         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13610         In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
13611         to compute vector element selector for both constant and variable
13612         operands.
13614 2019-05-07  Uroš Bizjak  <ubizjak@gmail.com>
13616         * config/i386/i386.md (cvt_mnemonic): New mode attribute.
13617         (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
13618         ashrdi3_cvt using SWI48 mode iterator.
13620 2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
13622         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
13623         (aarch64_<su>abd<mode>_3): Likewise.
13624         (*aarch64_<su>abd<mode>_3): New define_insn.
13625         (<sur>sad<vsi2qi>): New define_expand.
13626         * config/aarch64/iterators.md: Added MAX_OPP attribute.
13627         * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
13628         (build_vect_cond_expr): Likewise.
13630 2019-05-07  Uroš Bizjak  <ubizjak@gmail.com>
13632         * cfgexpand.c (asm_clobber_reg_is_valid): Reject
13633         clobbers outside of accessible_reg_set.
13634         * config/i386/i386.c (ix86_conditional_register_usage):
13635         Disable register sets by clearing corresponding bits in
13636         accessible_reg_set.  Do not set corresponding bits in fixed_regs,
13637         call_used_regs and don't clear corresponding reg_names array members.
13639 2019-05-07  Richard Biener  <rguenther@suse.de>
13641         * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
13642         not specified still compute a comp_vectype for invariant
13643         compares.
13645 2019-05-07  Richard Biener  <rguenther@suse.de>
13647         PR tree-optimization/90316
13648         * tree-ssa-pre.c (translate_vuse_through_block): When
13649         same_valid is NULL do not bother to search for a virtual
13650         PHI continuation.
13651         (phi_translate_1): When operands changed we cannot keep
13652         the same value-number so do not bother to ask whether
13653         that's possible from translate_vuse_through_block.
13655 2019-05-07  Martin Liska  <mliska@suse.cz>
13657         * bitmap.c (bitmap_register): Come up with
13658         alloc_descriptor_max_uid and assign it for
13659         a new bitmap.
13660         (register_overhead): Use get_descriptor as
13661         a descriptor.
13662         (release_overhead): New.
13663         (bitmap_elem_to_freelist): Call it.
13664         (bitmap_elt_clear_from): Likewise.
13665         (bitmap_obstack_free): Likewise.
13666         (bitmap_move): Sensitively release memory.
13667         * bitmap.h (struct GTY): Add alloc_descriptor and padding.
13668         (bitmap_initialize): Initialize alloc_descriptor to zero.
13669         * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
13671 2019-05-07  Richard Biener  <rguenther@suse.de>
13673         * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
13674         we build a SLP node.  Remove max_size and limiting.
13675         (vect_analyze_slp_instance): Record and dump size of the SLP graph.
13677 2019-05-07  Richard Biener  <rguenther@suse.de>
13679         PR tree-optimization/90316
13680         * tree-ssa-alias.h (get_continuation_for_phi): Take walking
13681         limit by reference.
13682         (walk_non_aliased_vuses): Take walking limit argument.
13683         * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
13684         walking if it is reached instead of just counting.
13685         (get_continuation_for_phi): Likewise.
13686         (walk_non_aliased_vuses): Likewise, instead of leaving counter
13687         limiting to the callback.
13688         * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
13689         (vn_reference_lookup_3): Likewise.
13690         (vn_reference_lookup_pieces): Likewise.
13691         (vn_reference_lookup): Likewise.
13692         * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
13693         * tree-ssa-scopedtables.c (vuse_eq): Adjust.
13694         (avail_exprs_stack::lookup_avail_expr): Likewise.
13696 2019-05-07  Jan Hubicka  <hubicka@ucw.cz>
13698         * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
13699         for comparaible types in the second direction even if first one
13700         hits incomparable type.
13702 2019-05-07  Richard Biener  <rguenther@suse.de>
13704         PR lto/90369
13705         * lto-wrapper.c (debug_objcopy): Use the original filename
13706         including archive offset for the filename used for -save-temps.
13708 2019-05-07  Li Jia He  <helijia@linux.ibm.com>
13710         * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
13711         detection.
13713 2019-05-06  H.J. Lu  <hongjiu.lu@intel.com>
13714             Hongtao Liu  <hongtao.liu@intel.com>
13716         PR target/89750
13717         PR target/86444
13718         * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
13719         Modified, original implementation isn't correct.
13721 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
13723         * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
13724         (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
13725         (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
13726         (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
13727         (FRAME_POINTER_REGNUM): Change numbering.
13728         * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
13729         (alt_reg_names): Adjust.
13730         (rs6000_conditional_register_usage): Don't mark hard register 64 as
13731         fixed.
13732         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
13733         (DWARF_FRAME_REGISTERS): Delete.
13734         (DWARF2_FRAME_REG_OUT): Fix whitespace.
13735         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
13736         Adjust.
13737         (REG_ALLOC_ORDER): Adjust.
13738         (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
13739         (REG_CLASS_CONTENTS): Adjust.
13740         (RETURN_ADDR_RTX): Change comment.
13741         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
13742         instead of 67.
13743         (REGISTER_NAMES): Adjust.
13744         (ADDITIONAL_REGISTER_NAMES): Adjust.
13745         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
13747 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
13749         * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
13750         Delete.
13751         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
13752         (DWARF_FRAME_REGISTERS): Adjust.
13753         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
13754         Adjust.
13755         (REG_ALLOC_ORDER): Adjust.
13756         (enum reg_class): Delete SPR_REGS.
13757         (REG_CLASS_NAMES): Delete SPR_REGS.
13758         (REG_CLASS_CONTENTS): Delete SPR_REGS.  Adjust for deleted TM regs.
13759         (REGISTER_NAMES): Adjust.
13760         (ADDITIONAL_REGISTER_NAMES): Adjust.
13761         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
13762         * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
13763         * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
13764         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
13765         (htm_spr_regno): Delete.
13766         (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
13767         argument.
13768         (rs6000_dbx_register_number): Adjust.
13770 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
13772         * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
13774 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
13776         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
13777         FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
13779 2019-05-06  Jakub Jelinek  <jakub@redhat.com>
13781         PR tree-optimization/88709
13782         PR tree-optimization/90271
13783         * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
13784         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
13785         non-clobber CONSTRUCTORs with no elts.  Remove useless tmp_int
13786         variable.
13787         (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
13788         of the store merging group is larger than
13789         PARAM_STORE_MERGING_MAX_SIZE parameter.
13790         (split_group): Add bzero_first argument.  If set, always emit first
13791         the first store which must be = {} of the whole area and then for the
13792         rest of the stores consider all zero bytes as paddings.
13793         (imm_store_chain_info::output_merged_store): Check if first store
13794         is = {} of the whole area and if yes, determine which setting of
13795         bzero_first for split_group gives smaller number of stores.  Adjust
13796         split_group callers.
13797         (lhs_valid_for_store_merging_p): Allow decls.
13798         (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
13799         no elts.
13800         (pass_store_merging::process_store): Likewise.
13802 2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13804         PR target/89424
13805         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13806         handling of V1TImode.
13808 2019-05-06  Uroš Bizjak  <ubizjak@gmail.com>
13810         PR target/89221
13811         * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
13812         and enable_frame_pointer ...
13813         * configure.ac: ... here.  Update help strings for
13814         --enable-frame-pointer.
13815         * configure: Regenerate.
13816         * config/i386/i386-options.c (ix86_option_override_internal): Remove
13817         USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
13818         * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
13819         (USE_X86_64_FRAME_POINTER): Ditto.
13821 2019-05-06  Martin Liska  <mliska@suse.cz>
13823         * config.gcc: Append to target_gtfiles and fix indentation.
13825 2019-05-06  Richard Biener  <rguenther@suse.de>
13827         PR tree-optimization/90358
13828         * tree-vect-stmts.c (get_group_load_store_type): Properly
13829         detect unused upper half of load.
13830         (vectorizable_load): Likewise.
13832 2019-05-06  Richard Biener  <rguenther@suse.de>
13834         PR tree-optimization/88828
13835         * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
13836         (simplify_vector_constructor): ...here.  Handle constants in
13837         the constructor.
13839 2019-05-06  Richard Biener  <rguenther@suse.de>
13841         PR tree-optimization/90328
13842         * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
13843         * tree-data-ref.c (dr_may_alias_p): Check whether the clique
13844         is valid in the loop nest before using it.
13845         (initialize_data_dependence_relation): Adjust.
13846         * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
13847         loop as loop-nest to dr_may_alias_p.
13849 2019-05-06  Richard Biener  <rguenther@suse.de>
13851         * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
13853 2019-05-06  Richard Biener  <rguenther@suse.de>
13855         PR tree-optimization/90316
13856         * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
13857         compute target on demand.
13858         (get_continuation_for_phi): Remove code walking stmts to
13859         get to a target virtual operand which could end up being
13860         quadratic.
13862 2019-05-06  Martin Liska  <mliska@suse.cz>
13864         PR sanitizer/90312
13865         * config/i386/i386-options.c (ix86_option_override_internal): Error only
13866         when -mabi is selected to a non-default version.
13868 2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
13869             Martin Liska  <mliska@suse.cz>
13871         * Makefile.in: Add lto-dump.texi.
13872         * cgraph.h: Add new functions get_visibility_string and
13873         get_symtab_type_string.
13874         * doc/gcc.texi: Include lto-dump section.
13875         * doc/lto-dump.texi: New file.
13876         * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
13877         (parse_dump_option): Factor out this function.
13878         * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
13879         (parse_dump_option): Export the function.
13880         * symtab.c (symtab_node::get_visibility_string): New function.
13881         (symtab_node::get_symtab_type_string): Likewise.
13883 2019-05-06  Martin Liska  <mliska@suse.cz>
13885         * config/i386/i386-builtins.c: New file.
13886         * config/i386/i386-builtins.h: New file.
13887         * config/i386/i386-expand.c: New file.
13888         * config/i386/i386-expand.h: New file.
13889         * config/i386/i386-features.c: New file.
13890         * config/i386/i386-features.h: New file.
13891         * config/i386/i386-options.c: New file.
13892         * config/i386/i386-options.h: New file.
13893         * config.gcc: Add new files into extra_objs and
13894         target_gtfiles.
13895         * config/i386/i386.c: Split content of the file
13896         into newly introduced files.
13897         * config/i386/i386.h: Declare common variables
13898         and macros.
13899         * config/i386/t-i386: Define dependencies for new files.
13901 2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
13903         PR target/89400
13904         * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
13905         Restrict 'all' variant to 32-bit configurations.
13906         (unaligned_loadhiu): Likewise.
13907         (unaligned_storehi): Likewise.
13908         (unaligned_storesi): Likewise.
13909         (unaligned_loadhis): Disable when compiling for thumb1.
13911 2019-05-03  Marc Glisse  <marc.glisse@inria.fr>
13913         PR tree-optimization/90269
13914         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
13915         Ignore clobbers.
13917 2019-05-03  Martin Liska  <mliska@suse.cz>
13919         * hash-map.h: Add is_empty function.
13920         * hash-set.h: Likewise.
13921         * hash-table.h: Likewise.
13922         * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
13923         elements () == 0 (and similar usages).
13924         * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
13925         * gimplify.c (gimplify_bind_expr): Likewise.
13926         (gimplify_switch_expr): Likewise.
13927         * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
13928         * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
13929         * postreload-gcse.c (dump_hash_table): Likewise.
13930         (gcse_after_reload_main): Likewise.
13931         * predict.c (combine_predictions_for_bb): Likewise.
13932         * tree-parloops.c (reduction_phi): Likewise.
13933         (separate_decls_in_region): Likewise.
13934         (transform_to_exit_first_loop): Likewise.
13935         (gen_parallel_loop): Likewise.
13936         (gather_scalar_reductions): Likewise.
13937         (try_create_reduction_list): Likewise.
13938         * var-tracking.c (dump_vars): Likewise.
13939         (emit_notes_for_changes): Likewise.
13940         (vt_emit_notes): Likewise.
13942 2019-05-03  Richard Biener  <rguenther@suse.de>
13944         PR tree-optimization/90316
13945         * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
13946         before running VN.
13948 2019-05-03  Richard Biener  <rguenther@suse.de>
13950         * tree-vect-stmts.c (get_group_load_store_type): Avoid
13951         peeling for gaps by loading only lower halves of vectors
13952         if possible.
13953         (vectorizable_load): Likewise.
13955 2019-05-03  Richard Biener  <rguenther@suse.de>
13957         PR middle-end/89518
13958         * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
13960 2019-05-03  Richard Biener  <rguenther@suse.de>
13962         PR middle-end/87314
13963         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
13964         Handle STRING_CST vs DECL or STRING_CST.
13966 2019-05-03  Richard Biener  <rguenther@suse.de>
13968         PR tree-optimization/88963
13969         * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
13970         vector loads feeding only BIT_FIELD_REFs to component
13971         loads.  Rewrite stores fed by CONSTRUCTORs to component
13972         stores.
13974 2019-05-03  Jakub Jelinek  <jakub@redhat.com>
13976         * opts.h (finish_options): Remove lang_mask argument.
13977         (print_help, help_option_argument): Declare.
13978         * opts.c (print_help): Remove forward declaration, no longer static.
13979         (finish_options): Remove lang_mask argument, don't call print_help
13980         here.
13981         * opts-global.c (decode_options): Adjust finish_option caller, call
13982         print_help here.
13984         PR tree-optimization/90303
13985         * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
13986         TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
13988 2019-05-03  Richard Biener  <rguenther@suse.de>
13990         PR tree-optimization/89698
13991         * gimple-fold.c (canonicalize_constructor_val): Early out
13992         for constants, handle unfolded INTEGER_CSTs as they appear in
13993         C++ virtual table ctors.
13995 2019-05-03  Richard Biener  <rguenther@suse.de>
13997         * passes.c (execute_function_todo): Remove dead code.
13999 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
14001         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
14002         the internal register number, for any "real" register.
14004 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
14006         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
14007         correct numbers for TFHAR, TFIAR, TEXASR.
14009 2019-05-02  Richard Biener  <rguenther@suse.de>
14011         PR tree-optimization/89653
14012         * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
14013         update-address-taken before the pass.
14014         * passes.def (pass_tree_loop_init): Put comment before it.
14016 2019-05-02  Richard Biener  <rguenther@suse.de>
14018         PR tree-optimization/89509
14019         * tree-ssa-structalias.c (compute_dependence_clique): Look
14020         at the first subvar when determining whether it is restrict.
14022 2019-05-02  Richard Biener  <rguenther@suse.de>
14024         PR tree-optimization/90273
14025         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
14026         useless debug stmts.
14028 2019-05-02  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
14030         * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
14031         ACLE branch.
14032         * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
14033         SVE ACLE branch.
14034         * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
14035         VEC_COND_EXPR be inserted to emulate a conditional internal function.
14036         (build_vect_cond_expr): Emit the VEC_COND_EXPR.
14037         (vectorizable_reduction): Use the functions above to vectorize in a
14038         fully masked loop codes that don't have a conditional internal
14039         function.
14041 2019-05-02  Martin Liska  <mliska@suse.cz>
14043         * cgraphclones.c: Call valid_attribute_p with 1 for
14044         target_clone.
14045         * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
14046         it's for target attribute.
14047         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
14048         Add new boolean argument.
14049         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
14050         Likewise.
14051         (ix86_valid_target_attribute_tree): Pass target_clone_attr
14052         to ix86_valid_target_attribute_inner_p.
14053         (ix86_valid_target_attribute_p): Pass flags argument to
14054         ix86_valid_target_attribute_inner_p.
14055         (get_builtin_code_for_version): Use 0 as it's target attribute.
14057 2019-05-02  Martin Liska  <mliska@suse.cz>
14059         * gcc.c (process_command): Add dummy file only
14060         if n_infiles == 0.
14061         * opts-global.c (decode_options): Pass lang_mask.
14062         * opts.c (print_help): New function.
14063         (finish_options): Print --help if help_option_argument
14064         is set.
14065         (common_handle_option): Factor out content of OPT__help_
14066         into print_help.
14067         * opts.h (finish_options): Add new argument.
14069 2019-05-02  Martin Liska  <mliska@suse.cz>
14071         PR target/88809
14072         * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
14073         With -minline-all-stringops use inline expansion using 4B loop.
14074         * doc/invoke.texi: Document the change of
14075         -minline-all-stringops.
14077 2019-05-01  Jeff Law  <law@redhat.com>
14079         PR tree-optimization/88797
14080         * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
14081         PHI feeds a conditional on the RHS of an assignment.
14083 2019-04-30  Andrew Waterman  <andrew@sifive.com>
14084             Jim Wilson  <jimw@sifive.com>
14086         * config/riscv/constraints.md (L): New.
14087         * config/riscv/predicates.md (lui_operand): New.
14088         (sfb_alu_operand): New.
14089         * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
14090         * config/riscv/riscv.c (riscv_expand_conditional_move): New.
14091         * config/riscv/riscv.h (TARGET_SFB_ALU): New.
14092         * config/riscv/risc.md (type): Add sfb_alu.
14093         (branch<mode>): Renamed from branch_order<mode>.  Change predicate for
14094         operand 3 to reg_or_0_operand.  In output string, change %3 to %z3.
14095         (branch_zero<mode>): Delete.
14096         (mov<mode>cc): New.
14097         (mov<GPR:mode><X:mode>cc): Likewise.
14098         * config/riscv/sifive-7.md (sifive_7_sfb_alu): New.  Use in bypasses.
14100 2019-04-30  Nathan Sidwell  <nathan@acm.org>
14102         * tree.h (MARK_TS_EXP): New.
14104 2019-04-30  Martin Liska  <mliska@suse.cz>
14106         * opts.c (enable_warning_as_error): Provide hints
14107         for unknown options.
14109 2019-04-30  Martin Liska  <mliska@suse.cz>
14111         PR debug/90288
14112         * doc/invoke.texi: Add missing dash for gas-locview-support
14113         and gno-as-locview-support.
14115 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
14117         PR target/89093
14118         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
14119         whitespace at the start of target attribute string.
14121 2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14123         PR target/86538
14124         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
14125         Define __ARM_FEATURE_ATOMICS.
14127 2019-04-30  Martin Liska  <mliska@suse.cz>
14129         * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
14130         into built_in_function enum. Remove code for endp == 2 and
14131         use BUILT_IN_* constants.
14132         (gimple_fold_builtin): Call the function with fcode.
14134 2019-04-30  Martin Liska  <mliska@suse.cz>
14136         * config/i386/i386.c (ix86_builtin_reciprocal): Cast
14137         DECL_FUNCTION_CODE into ix86_builtins enum before
14138         the switch statement.
14140 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
14142         PR tree-optimization/89475
14143         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
14144         calls.
14146 2019-04-30  Martin Liska  <mliska@suse.cz>
14148         PR translation/90274
14149         * opts.c (print_filtered_help): Wrap string in _(...).
14151 2019-04-30  Bin Cheng  <bin.cheng@linux.alibaba.com>
14153         PR tree-optimization/90240
14154         Revert:
14155         2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
14157         PR tree-optimization/90078
14158         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
14159         checks for infinite_cost overflow.
14161 2019-04-29  Jeff Law  <law@redhat.com>
14163         * passes.def: Move -Wrestrict pass after copy propagation.
14165 2019-04-29  Maya Rashish  <coypu@sdf.org>
14167         * config.gcc (default_gnu_indirect_function): Default to yes
14168         for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
14169         sparc*-*-netbsd*, x86_64-*-netbsd*.
14171 2019-04-29  Vladislav Ivanishin  <vlad@ispras.ru>
14173         * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
14174         where cond2 is NE_EXPR.
14175         (is_value_included_in): Update comment.
14177 2019-04-29  Richard Biener  <rguenther@suse.de>
14179         PR tree-optimization/90278
14180         * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
14181         EH on comparison simplification.
14183 2019-04-29  Jason Merrill  <jason@redhat.com>
14185         PR c++/82081 - tail call optimization breaks noexcept
14186         * tree-tailcall.c (find_tail_calls): Don't turn a call from a
14187         nothrow function to a might-throw function into a tail call.
14189 2019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
14191         * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
14192         (DDR_INNER_LOOP): Likewise.
14193         * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
14194         (initialize_data_dependence_relation): Likewise.
14195         (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
14197 2019-04-29  Jakub Jelinek  <jakub@redhat.com>
14199         PR rtl-optimization/90257
14200         * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
14201         return value.
14203         Revert the revert:
14204         2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
14206         PR target/90178
14207         Revert:
14208         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
14210         Revert the revert:
14211         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
14213         Revert:
14214         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
14216         * lra-spills.c (lra_final_code_change): Remove useless move insns.
14218 2019-04-29  Richard Biener  <rguenther@suse.de>
14220         * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
14221         rhs issue a reset.
14223 2019-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>
14225         * config/netbsd-d.c: Include memmodel.h.  Remove unused tree.h,
14226         varasm.h, and netbsd-protos.h.
14228 2019-04-27  Uroš Bizjak  <ubizjak@gmail.com>
14230         PR target/89261
14231         * config/i386/i386-protos.h (ix86_data_alignment): Change
14232         the second argument type to unsigned int.
14233         * config/i386/i386.c (ix86_data_alignment): Change "align"
14234         argument type to unsigned int.
14236 2019-04-27  Martin Liska  <mliska@suse.cz>
14238         PR middle-end/90258
14239         * opt-suggestions.c (option_proposer::build_option_suggestions):
14240         When get_valid_option_values returns empty values, add the
14241         misspelling candidate.
14243 2019-04-26  Jim Wilson  <jimw@sifive.com>
14245         * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
14246         parameter.
14247         * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
14248         Pass orig_mode to riscv_build_integer.
14249         (riscv_split_integer): Pass mode to riscv_move_integer.
14250         (riscv_legitimize_const_move): Likewise.
14251         (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
14252         promoted_mode.  Replace force_reg call with code to load constant into
14253         promoted reg and then subreg it for the store.
14254         * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
14255         riscv_move_integer.
14257 2018-04-26  Eugene Sharygin  <eush@ispras.ru>
14259         * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
14260         corrupt codes.
14262 2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
14264         * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
14265         commentary about the encoding of precision.
14267 2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
14269         * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
14270         * config/i386/t-freebsd64: New file.
14271         * config.gcc: Add the t-freebsd64 for multilib support.
14273 2019-04-25  Uroš Bizjak  <ubizjak@gmail.com>
14275         * doc/extend.texi (vector_size): Add missing comma after @xref.
14277 2019-04-25  Jakub Jelinek  <jakub@redhat.com>
14279         * BASE-VER: Set to 10.0.0.
14281 2019-04-25  Richard Biener  <rguenther@suse.de>
14283         PR middle-end/89765
14284         * gimplify.c (gimplify_expr): Avoid turning a lvalue
14285         VIEW_CONVERT_EXPR into one operating on an rvalue.
14287 2019-04-25  H.J. Lu  <hongjiu.lu@intel.com>
14289         PR target/89929
14290         * config/i386/i386.c (feature_priority): Moved to file scope.
14291         (processor_features): Likewise.
14292         (processor_model): Likewise.
14293         (_arch_names_table): Likewise.
14294         (arch_names_table): Likewise.
14295         (_feature_list): Removed.
14296         (feature_list): Likewise.
14297         (_isa_names_table): Moved to file scope.  Add priority.
14298         (isa_names_table): Likewise.
14299         (get_builtin_code_for_version): Replace feature_list with
14300         isa_names_table.  Update error message for P_ZERO priority.
14302 2019-04-25  Richard Biener  <rguenther@suse.de>
14304         * tree-pass.h (make_pass_phi_only_cprop): Remove.
14305         * timevar.def (TV_TREE_PHI_CPROP): Likewise.
14307 2019-04-24  Jeff Law  <law@redhat.com>
14309         PR tree-optimization/90037
14310         * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
14311         * passes.def: Replace all instance of phi-only cprop with the
14312         lattice propagator.  Move propagation pass from after erroneous
14313         path isolation to before erroneous path isolation.
14314         * tree-ssa-phionlycprop.c: Remove.
14316 2019-04-24  Richard Biener  <rguenther@suse.de>
14318         PR middle-end/90213
14319         * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
14320         by size and BITS_PER_UNIT on poly-wide-ints.
14322 2019-04-25  Richard Biener  <rguenther@suse.de>
14324         PR middle-end/90194
14325         * match.pd: Add pattern to simplify view-conversion of an
14326         empty constructor.
14328 2019-04-24  Clement Chigot  <clement.chigot@atos.net>
14330         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
14331         OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
14332         for Go on 32 bit AIX.
14333         * config/rs6000/aix72.h: Likewise.
14335 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
14337         PR target/90193
14338         * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
14339         * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
14341 2019-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
14343         PR target/89952
14344         * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
14345         from FPRs in reverse order.  Generate REG_CFA_DEF_CFA note also
14346         for restored hard frame pointer.
14347         (s390_sched_dependencies_evaluation): Implement new target hook.
14348         (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
14350 2019-04-24  Claudiu Zissulescu  <claziss@sysnopsys.com>
14352         * config/arc/arc-options.def: Fix typos and spelling mistakes.
14353         * config/arc/arc.c (arc_init): Cleanup warning message.
14354         (arc_override_options): Likewise.
14356 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
14358         PR target/90187
14359         * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
14360         a register if both if_true and if_false are MEMs.
14362         PR tree-optimization/90208
14363         * tree-cfg.c (remove_bb): Move forced labels from removed bbs
14364         after labels of new_bb, not before them.
14366         PR tree-optimization/90211
14367         * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
14368         which are not SSA_NAMEs.
14370 2018-04-23  Sudakshina Das  <sudi.das@arm.com>
14372         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
14373         AArch64.
14374         (aarch64_file_end_indicate_exec_stack): Add gnu note section.
14376 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
14378         PR rtl-optimization/87979
14379         * modulo-sched.c (sms_schedule): Start ii value "mii" should
14380         not equal zero.
14382 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
14384         PR rtl-optimization/84032
14385         * modulo-sched.c (ps_insn_find_column): Change condition so that
14386         branch will always be the last insn in a row inside partial
14387         schedule.
14389 2019-04-23  Richard Biener  <rguenther@suse.de>
14391         PR debug/90131
14392         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
14393         dest_single_pred_p argument.
14394         (remove_forwarder_block): Adjust.
14395         (remove_forwarder_block_with_phi): Likewise.
14397 2019-04-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14398             Bernd Edlinger  <bernd.edlinger@hotmail.de>
14399             Jakub Jelinek  <jakub@redhat.com>
14401         PR target/89093
14402         * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
14403         if used with general-regs-only.
14404         (arm_conditional_register_usage): Don't add non-general regs if
14405         general-regs-only.
14406         (arm_valid_target_attribute_rec): Handle general-regs-only.
14407         * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
14408         general-regs-only.
14409         (TARGET_HARD_FLOAT_SUB): Define.
14410         (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
14411         (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
14412         (TARGET_REALLY_IWMMXT2): Likewise.
14413         * config/arm/arm.opt: Add -mgeneral-regs-only.
14414         * doc/extend.texi: Document ARM general-regs-only target.
14415         * doc/invoke.texi: Document ARM -mgeneral-regs-only.
14417 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
14419         PR tree-optimization/90078
14420         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
14421         checks for infinite_cost overflow.
14423 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
14425         PR tree-optimization/90021
14426         * tree-chrec.c (evolution_function_is_univariate_p): New parameter
14427         and check univariate against it.
14428         * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
14429         * tree-data-ref.c (add_other_self_distances): Pass new argument.
14431 2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
14433         PR target/90178
14434         Revert:
14435         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
14437         Revert the revert:
14438         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
14440         Revert:
14441         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
14443         * lra-spills.c (lra_final_code_change): Remove useless move insns.
14445 2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>
14447         * config/rs6000/rs6000.md (group_end_nop): Emit insn register
14448         names using operand format, rather than hard-wired.
14449         (speculation_barrier): Likewise.
14451 2019-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
14453         PR tree-optimization/88055
14454         * tree-call-cdce.c (comparison_code_if_no_nans): New function.
14455         (gen_one_condition): Use it if !HONOR_NANS.
14457 2019-04-19  Jakub Jelinek  <jakub@redhat.com>
14459         PR middle-end/90139
14460         * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
14461         assign_temp instead of gen_reg_rtx.
14463 2019-04-19  Christophe Lyon  <christophe.lyon@linaro.org>
14465         PR translation/90118
14466         * config/aarch64/aarch64.c (aarch64_override_options_internal):
14467         Add missing space before %<.
14469 2019-04-18  Peter Bergner  <bergner@linux.ibm.com>
14471         PR rtl-optimization/87871
14472         * ira-lives.c (make_object_dead): Don't add conflicts to
14473         TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
14475 2019-04-18  Martin Sebor  <msebor@redhat.com>
14477         PR middle-end/89797
14478         * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
14479         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
14480         assuming type size fits in SHWI.
14482 2019-04-18  Jan Hubicka  <hubicka@ucw.cz>
14484         PR ipa/85051
14485         * ipa-inline.c (flatten_function): New parameter UPDATE.
14486         (ipa_inline, early_inliner): Use it.
14488 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
14490         * fold-const.c (int_const_binop): Return early on failure.
14492 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
14494         PR middle-end/85164
14495         * combine.c (force_int_to_mode): Cast the argument rather than
14496         the result of known_alignment.
14497         * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
14499 2019-04-18  Richard Biener  <rguenther@suse.de>
14501         PR debug/90131
14502         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
14503         out from ...
14504         (remove_forwarder_block): ... here.
14505         (remove_forwarder_block_with_phi): Also move debug stmts here.
14507 2019-04-18  Jakub Jelinek  <jakub@redhat.com>
14509         PR translation/79183
14510         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
14511         inform where appropriate.
14513 2019-04-18  Richard Biener  <rguenther@suse.de>
14515         * tree.c (get_qualified_type): Put found type variants at the
14516         head of the variant list.
14518 2018-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
14520         * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
14522 2019-04-17  Hongtao Liu  <hongtao.liu@intel.com>
14524         PR target/90125
14525         * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
14526         _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
14527         _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
14528         _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
14529         _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
14531 2019-04-17  Peter Bergner  <bergner@linux.ibm.com>
14533         * ira-conflicts.c (print_allocno_conflicts): Always print something,
14534         even for allocno's with no conflicts.
14535         (print_conflicts): Print an extra newline.
14537 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
14539         * auto-inc-dec.c (attempt_change): Set the alignment of the
14540         temporary memory to that of the original.
14542 2019-04-17  Joao Moreira  <jmoreira@suse.de>
14544         * targhooks.c (default_print_patchable_function_entry): Emit
14545         __patchable_function_entries section with writable flags to allow
14546         relocation resolution.
14548 2019-04-17  Jonny Grant  <jg@jguk.org>
14550         * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
14552 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
14554         PR middle-end/90095
14555         * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
14556         on lowpart SUBREGs.
14558 2019-04-17  Claudiu Zissulescu  <claziss@synopsys.com>
14560         * config/arc/arc.c (arc_init): Format diagnostic string.
14561         (arc_override_options): Likewise.
14562         (check_if_valid_regno_const): Likewise.
14563         (arc_reorg): Likewise.
14565 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
14567         PR target/17108
14568         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
14569         name.
14570         (rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
14571         name.
14572         * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
14573         (*movdi_update1): Use Pmode.
14574         (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
14575         (movdi_<mode>_update_stack): Rename to ...
14576         (movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
14577         use Pmode.
14578         (*movsi_update1): Use Pmode.
14579         (*movsi_update2): Use Pmode.
14580         (movsi_update): Rename to ...
14581         (movsi_<mode>_update): ... this.  Use Pmode.
14582         (movsi_update_stack): Fix condition.
14583         (*movhi_update1): Use Pmode.  Fix argument to
14584         avoiding_indexed_address_p.
14585         (*movhi_update2): Ditto.
14586         (*movhi_update3): Ditto.
14587         (*movhi_update4): Ditto.
14588         (*movqi_update1): Ditto.
14589         (*movqi_update2): Ditto.
14590         (*movqi_update3): Ditto.
14591         (*movsf_update1, *movdf_update1): Merge, rename to...
14592         (*mov<mode>_update1): This.  Use Pmode.  Fix argument to
14593         avoiding_indexed_address_p.  Add "size" attribute.
14594         (*movsf_update2, *movdf_update2): Merge, rename to...
14595         (*mov<mode>_update2): This.  Ditto.
14596         (*movsf_update3): Use Pmode.  Fix argument to
14597         avoiding_indexed_address_p.
14598         (*movsf_update4): Ditto.
14599         (allocate_stack): Simplify condition.  Adjust pattern names.
14601 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
14603         PR target/89093
14604         * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
14605         whitespace at the start of target attribute string.
14607 2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>
14609         PR target/84369
14610         * config/rs6000/power9.md: Add store forwarding bypass.
14612 2019-04-16  Alexandre Oliva  <aoliva@redhat.com>
14614         PR debug/89528
14615         * valtrack.c (dead_debug_insert_temp): Reset debug references
14616         to the return value of a call being removed.
14618 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
14620         * config/arc/arc-protos.h (arc_register_move_cost): Remove.
14621         * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
14622         implement target hook.
14623         (arc_memory_move_cost): New function.
14624         (TARGET_REGISTER_MOVE_COST): Define.
14625         (TARGET_MEMORY_MOVE_COST): Likewise.
14626         * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
14627         (MEMORY_MOVE_COST): Likewise.
14629 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
14631         * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
14632         (sibcall_value_insn): Likewise.
14633         * config/arc/constraints.md (Rs5): Remove.
14635 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
14637         * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
14638         for last two fake registers.
14639         (arc_conditional_register_usage): Make sure fake frame and arg
14640         pointer regs are in general regs class.
14641         (FRAME_POINTER_MASK): Remove.
14642         (RETURN_ADDR_MASK): Remove.
14643         (arc_must_save_register): Use hard frame regnum.
14644         (frame_restore_reg): Use hard_frame_pointer_rtx.
14645         (arc_save_callee_saves): Likewise.
14646         (arc_restore_callee_saves): Likewise.
14647         (arc_save_callee_enter): Likewise.
14648         (arc_restore_callee_leave): Likewise.
14649         (arc_save_callee_milli): Likewise.
14650         (arc_eh_return_address_location): Likewise.
14651         (arc_check_multi): Use hard frame regnum.
14652         (arc_can_eliminate): Likewise.
14653         * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
14654         for register allocator.
14655         (REG_CLASS_CONTENTS): Update GENERAL_REGS.
14656         (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
14657         (FRAME_POINTER_REGNUM): Change it to a fake register.
14658         (HARD_FRAME_POINTER_REGNUM): Defined.
14659         (ARG_POINTER_REGNUM): Change it to a new fake register.
14660         (ELIMINABLE_REGS): Update.
14661         (REGISTER_NAMES): Update names.
14662         * config/arc/arc.md (LP_START): Remove.
14663         (LP_END): Likewise.
14664         (shift_si3_loop): Update pattern.
14666 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
14668         * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
14669         to avoid delay slot scheduling.
14670         (arc_must_save_register): Don't save SP.
14671         * config/arc/arc.md (stack_tie): Remove.
14672         (UNSPEC_ARC_STKTIE): Likewise.
14674 2019-04-16  Kito Cheng  <kito.cheng@gmail.com>
14675             Shiva Chen  <shiva0217@gmail.com>
14677         * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
14678         code gen with large shift amount.
14680 2019-04-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14682         * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
14683         subreg.
14685 2019-04-16  Jakub Jelinek  <jakub@redhat.com>
14687         PR target/90096
14688         * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
14689         print -m64/-mx32/-m32 if it is true.
14690         (ix86_debug_options, ix86_function_specific_print): Pass true as
14691         ADD_ABI_P to ix86_target_string.
14692         (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
14693         ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
14694         or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
14696         PR rtl-optimization/90082
14697         * dce.c (can_delete_call): New function.
14698         (deletable_insn_p, mark_insn): Use it.
14700         PR tree-optimization/90090
14701         * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
14702         throw internally.
14703         (is_division_by_square): Likewise.  Formatting fix.
14705 2019-04-16  Richard Biener  <rguenther@suse.de>
14707         PR tree-optimization/56049
14708         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
14709         equality check if alias-set zero will prevail.
14711 2019-04-15  Jeff Law  <law@redhat.com>
14713         * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
14714         size and alignment as unsigned.
14716 2019-04-15  Richard Biener  <rguenther@suse.de>
14718         PR debug/90074
14719         * tree-loop-distribution.c (destroy_loop): Preserve correct
14720         debug info.
14722 2019-04-15  Richard Biener  <rguenther@suse.de>
14724         PR tree-optimization/90071
14725         * tree-ssa-reassoc.c (init_range_entry): Do not pick up
14726         abnormal operands from def stmts.
14728 2019-04-15  Segher Boessenkool  <segher@kernel.crashing.org>
14730         PR rtl-optimization/89794
14731         * combine.c (count_auto_inc): New function.
14732         (try_combine): Count how many auto_inc expressions there were in the
14733         original instructions.  Ensure we have the same number in the new
14734         instructions.  Remove the code that tried to ensure auto_inc side
14735         effects on i1 and i0 are not lost.
14737 2019-04-15  Richard Biener  <rguenther@suse.de>
14739         PR ipa/88936
14740         * tree.h (auto_var_p): Declare.
14741         * tree.c (auto_var_p): New function, split out from ...
14742         (auto_var_in_fn_p): ... here.
14743         * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
14744         member.
14745         (new_var_info): Initialize it.
14746         (set_uids_in_ptset): Also set the shadow variable uid if required.
14747         (ipa_pta_execute): Postprocess points-to solutions assigning
14748         shadow variable uids for locals that may reach their containing
14749         function recursively.
14750         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
14751         assert but instead check whether the points-to solution is
14752         a singleton.
14754 2019-04-15  Martin Jambor  <mjambor@suse.cz>
14756         PR ipa/pr89693
14757         * cgraph.c (clone_of_p): Loop over clone chain for each step in
14758         the thunk chain.
14760 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
14762         * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
14764 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
14765             Kito Cheng  <kito.cheng@gmail.com>
14766             Shiva Chen  <shiva0217@gmail.com>
14768         * config/nds32/nds32-md-auxiliary.c
14769         (nds32_legitimize_pic_address): Use new PIC pattern.
14770         (nds32_legitimize_tls_address): Use new TLS pattern.
14771         (nds32_output_symrel): New.
14772         * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
14773         (nds32_alloc_relax_group_id): Ditto.
14774         * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
14775         (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
14776         relax_group_id.
14777         (nds32_group_tls_insn): Ditto.
14778         (nds32_group_float_insns): Ditto.
14779         * config/nds32/nds32.md (tls_le): New.
14780         (sym_got): Ditto.
14782 2019-04-15  Chung-Ju Wu  <jasonwucj@gmail.com>
14784         * configure: Add nds32 target for dwarf2 debug_line checking.
14785         * configure.ac: Regenerated.
14787 2019-04-14  Jan Hubicka  <hubicka@ucw.cz>
14789         PR lto/89358
14790         * ipa-devirt.c (skip_in_fields_list_p): New.
14791         (odr_types_equivalent_p): Use it.
14793 2019-04-13  Jakub Jelinek  <jakub@redhat.com>
14795         PR target/89093
14796         * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
14797         instead of strncmp when checking for thumb and arm.  Formatting fixes.
14799 2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
14801         * doc/install.texi: Document --with-target-system-zlib.
14803 2019-04-12  Martin Sebor  <msebor@redhat.com>
14805         PR c/88383
14806         PR c/89288
14807         PR c/89798
14808         PR c/89797
14809         * targhooks.c (default_vector_alignment): Avoid assuming
14810         argument fits in SHWI.
14811         * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
14812         a shift expression.
14813         * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
14815 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
14817         PR rtl-optimization/89965
14818         * dce.c: Include rtl-iter.h.
14819         (struct check_argument_load_data): New type.
14820         (check_argument_load): New function.
14821         (find_call_stack_args): Check for loads from stack slots still tracked
14822         in sp_bytes and punt if any is found.
14824         * config/mips/loongson-mmiintrin.h: Fix up #error message.
14826 2019-04-12  Jan Hubicka  <hubicka@ucw.cz>
14828         * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
14829         * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
14831 2019-04-12  Martin Liska  <mliska@suse.cz>
14833         PR middle-end/89970
14834         * multiple_target.c (create_dispatcher_calls): Wrap ifunc
14835         in error message.
14836         (separate_attrs): Handle multiple 'default's.
14837         (expand_target_clones): Rework error handling code.
14839 2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
14841         PR target/87532
14842         * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
14843         mode of vector rather than mode of destination for move instruction.
14844         * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
14845         Use QI inner mode with V16QI vector mode.
14847 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
14849         PR target/52726
14850         * config/tilepro/tilepro.c (tilepro_print_operand): Use just
14851         "invalid %%t operand" in output_operand_lossage message.
14853 2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
14855         * config/s390/predicates.md (permute_pattern_operand): New
14856         predicate.
14857         * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
14858         operand for the permute pattern.
14859         ("*vec_perm<mode>"): New insn definition.
14860         ("bswap<mode>"): Generate the permute pattern operand in the
14861         expander and perform the operand reloads for pre arch13 level
14862         already.
14863         ("*bswap<mode>_emu"): Rename to ...
14864         ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
14865         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
14866         Add the USE operand for the permute pattern.
14867         ("*vec_set_bswap_vec<mode>"): Likewise.
14869 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
14871         PR c/89946
14872         * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
14873         and gcc_unreachable if it fails, just call tree_to_uhwi which
14874         verifies that too.  Test TREE_CHAIN instead of list_length > 1.
14875         Start warning message with a lower-case letter.  Formatting fixes.
14877         PR rtl-optimization/90026
14878         * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
14879         successors, look for BARRIERs inside of the whole BB_FOOTER chain
14880         rather than just at the start of it.  If e->src BB_FOOTER is not NULL
14881         in cfglayout mode, use emit_barrier_after_bb.
14883 2018-04-11  Steve Ellcey  <sellcey@marvell.com>
14885         PR rtl-optimization/87763
14886         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
14887         New Instruction.
14889 2019-04-11  Tom de Vries  <tdevries@suse.de>
14891         * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
14892         max macro using statement expression.
14894 2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
14896         * xcoffout.h (xcoff_private_rodata_section_name): Declare.
14897         * xcoffout.c (xcoff_private_rodata_section_name): Define.
14898         * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
14899         read_only_private_data_section using xcoff_private_rodata_section_name.
14900         (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
14902 2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>
14904         PR target/90016
14905         * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
14907 2019-04-11  Jakub Jelinek  <jakub@redhat.com>
14909         PR rtl-optimization/89965
14910         * dce.c (sp_based_mem_offset): New function.
14911         (find_call_stack_args): Use sp_based_mem_offset.
14913 2019-04-11  Jonathan Wakely  <jwakely@redhat.com>
14915         * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
14917 2019-04-11  Richard Biener  <rguenther@suse.de>
14919         PR tree-optimization/90020
14920         * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
14921         * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
14922         * tree-ssa-pre.c (compute_avail): Use it to not put
14923         possibly trapping references after a call that might not
14924         return into EXP_GEN.
14925         * gcse.c (compute_hash_table_work): Do not elide
14926         marking a block containing a call if the call might not
14927         return.
14929 2019-04-11  Richard Biener  <rguenther@suse.de>
14931         PR tree-optimization/90018
14932         * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
14933         Test both SLP and interleaving variants.
14935 2019-04-11  Robin Dapp  <rdapp@linux.ibm.com>
14937         * config/s390/8561.md: New file.
14938         * config/s390/driver-native.c (s390_host_detect_local_cpu):
14939         Add arch13 cpu model.
14940         * config/s390/s390-opts.h (enum processor_type): Likewise.
14941         * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
14942         (s390_get_unit_mask): Likewise.
14943         (s390_is_fpd): Likewise.
14944         (s390_is_fxd): Likewise.
14945         * config/s390/s390.h (s390_tune_attr): Likewise.
14946         * config/s390/s390.md: Include arch13 pipeline description.
14947         * config/s390/s390.opt: Add arch13.
14949 2018-04-10  Steve Ellcey  <sellcey@marvell.com>
14951         PR rtl-optimization/87763
14952         * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
14953         New prototype.
14954         * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
14955         New function.
14956         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
14957         New instruction.
14958         (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
14959         (*aarch64_bfi<GPI:mode>4_noand): Ditto.
14960         (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
14961         (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
14963 2019-04-10  Jonathan Wakely  <jwakely@redhat.com>
14965         * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
14966         "Although" in -fipa-icf documentation.
14968         * doc/invoke.texi (Debugging Options): Explicitly state the semantics
14969         of using multiple -g options.
14971 2019-04-10  Martin Liska  <mliska@suse.cz>
14973         PR gcov-profile/89959
14974         * doc/gcov.texi: Make documentation of -x option
14975         more precise.
14977 2019-04-10  Richard Biener  <rguenther@suse.de>
14979         * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
14980         member.
14981         (DR_GROUP_SAME_DR_STMT): Remove.
14982         * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
14983         * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
14984         replace with assert.
14985         (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
14986         (vect_record_grouped_load_vectors): Remove unreachable code.
14988 2019-04-10  Richard Earnshaw  <rearnsha@arm.com>
14990         PR target/90016
14991         * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
14992         obsolete reference to N.
14994 2019-04-10  Jakub Jelinek  <jakub@redhat.com>
14996         PR middle-end/90025
14997         * expr.c (store_expr): Set properly size on the MEM passed to
14998         clear_storage.
15000         PR c++/90010
15001         * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
15002         with strlen in between hostsz-3 and hostsz-1 inclusive when no
15003         translation is needed, and when translation is needed, only append
15004         ... if the string length is hostsz or more bytes long.  Avoid using
15005         strncpy or strcat.
15007 2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>
15009         PR target/90024
15010         * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
15011         * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
15012         into three.
15013         * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
15014         differences directly.
15015         (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
15017 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
15019         PR translation/90011
15020         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
15021         from diagnostics.
15022         * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
15023         diagnostics.
15024         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
15025         * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
15026         * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
15027         trailing space from -gsplit-dwarf diagnostics.
15029         PR tree-optimization/89998
15030         * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
15031         instead of integer_type_node if possible, don't add ranges if return
15032         type is not compatible with int.
15033         * gimple-fold.c (gimple_fold_builtin_sprintf,
15034         gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
15035         integer_type_node.
15037 2019-04-09  Martin Liska  <mliska@suse.cz>
15039         * Makefile.in: Use GENERATOR_CFLAGS for all generators.
15040         * doc/install.texi: Document the new config.
15042 2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
15044         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
15045         use gimple_expr_type for load and store calls.  Skip over the
15046         condition argument in a conditional internal function.
15047         Protect use of TREE_INT_CST_LOW.
15049 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
15051         PR target/90015
15052         * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
15053         (riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
15054         trailing period from it too.
15056 2019-04-08  wu yuan  <wuyuan5@huawei.com>
15058         * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
15059         * config/aarch64/aarch64.md : Add "tsv110.md"
15060         * config/aarch64/tsv110.md: New file.
15062 2019-04-08  Richard Biener  <rguenther@suse.de>
15064         PR tree-optimization/90006
15065         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
15066         calls like lrint.
15068 2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>
15070         PR target/83033
15071         * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
15072         construction.
15073         (fma_root_node): Likewise.
15074         (func_fma_steering): Likewise.
15076 2019-04-08  Jakub Jelinek  <jakub@redhat.com>
15078         PR rtl-optimization/89865
15079         * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
15081         PR rtl-optimization/89865
15082         * config/i386/i386.md
15083         (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
15084         numbers not to clash with the additional operands[4].
15085         (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
15086         with extra register copy in the middle.
15088 2019-04-08  Martin Liska  <mliska@suse.cz>
15090         PR gcov-profile/89961
15091         * doc/gcov.texi: Document data_file.
15092         * gcov.c (generate_results): Add data_info into JSON output.
15094 2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
15096         PR tree-optimization/89725
15097         * tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
15098         loop's chrec as invariant symbol.
15099         * tree-chrec.h (chrec_contains_symbols): New parameter.
15100         * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
15101         (build_classic_dist_vector_1, add_other_self_distances): Bypass access
15102         function of loops not in DDR's loop_nest.
15103         * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
15105 2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>
15107         PR target/89623
15108         * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
15109         Mask.
15111 2019-04-07  Uroš Bizjak  <ubizjak@gmail.com>
15113         PR target/89945
15114         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
15115         Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
15117 2019-04-05  Joern Rennecke  <joern.rennecke@embecosm.com>
15119         * sched-deps.c (sched_macro_fuse_insns): Check return value of
15120         targetm.fixed_condition_code_regs.
15122 2019-04-05  Richard Biener  <rguenther@suse.de>
15124         PR debug/89892
15125         PR debug/89905
15126         * tree-cfgcleanup.c (remove_forwarder_block): Always move
15127         debug bind stmts but reset them if they are not valid at the
15128         destination.
15130 2019-04-05  Martin Liska  <mliska@suse.cz>
15132         PR translation/89936
15133         * collect-utils.c (collect_execute): Use %< and %>, or %qs in
15134         order to wrap keywords or arguments.
15135         * collect2.c (main): Likewise.
15136         (scan_prog_file): Likewise.
15137         (scan_libraries): Likewise.
15138         * common/config/riscv/riscv-common.c
15139         (riscv_subset_list::parsing_subset_version): Likewise.
15140         (riscv_subset_list::parse_std_ext): Likewise.
15141         * config/aarch64/aarch64.c (aarch64_override_options_internal):
15142         Likewise.
15143         * config/arm/arm.c (arm_option_override): Likewise.
15144         * config/cris/cris.c (cris_print_operand): Likewise.
15145         * config/darwin-c.c (darwin_pragma_options): Likewise.
15146         (darwin_pragma_unused): Likewise.
15147         (darwin_pragma_ms_struct): Likewise.
15148         * config/ft32/ft32.c (ft32_print_operand): Likewise.
15149         * config/i386/i386.c (print_reg): Likewise.
15150         (ix86_print_operand): Likewise.
15151         * config/i386/xm-djgpp.h: Likewise.
15152         * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
15153         * config/m32c/m32c.c (m32c_option_override): Likewise.
15154         * config/msp430/msp430.c (msp430_option_override): Likewise.
15155         * config/nds32/nds32.c (nds32_option_override): Likewise.
15156         * config/nvptx/mkoffload.c (main): Likewise.
15157         * config/rx/rx.c (rx_print_operand): Likewise.
15158         (valid_psw_flag): Likewise.
15159         * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
15160         (vms_pragma_nomember_alignment): Likewise.
15161         (vms_pragma_extern_model): Likewise.
15162         * lto-wrapper.c (compile_offload_image): Likewise.
15163         * omp-offload.c (oacc_parse_default_dims): Likewise.
15164         * symtab.c (symtab_node::verify_base): Likewise.
15165         * tlink.c (recompile_files): Likewise.
15166         (start_tweaking): Likewise.
15167         * tree-profile.c (parse_profile_filter): Likewise.
15169 2019-04-05  Richard Sandiford  <richard.sandiford@arm.com>
15171         PR tree-optimization/89956
15172         * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
15173         multiple negates of the same value.
15175 2019-04-04  Martin Sebor  <msebor@redhat.com>
15177         PR middle-end/89957
15178         PR middle-end/89911
15179         * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
15180         have the same precision since the function crashes otherwise.
15181         * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
15182         has non-zero arguments.
15184 2019-04-04  Martin Sebor  <msebor@redhat.com>
15186         PR middle-end/89934
15187         * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
15188         out if the number of arguments is less than expected.
15190 2019-04-04  Jeff Law  <law@redhat.com>
15192         PR rtl-optimization/89399
15193         * ree.c (combine_set_extension): Use single_set rather than
15194         digging into PATTERN for items on the candidate list.
15195         (combine_reaching_defs): Likewise.
15197 2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>
15199         PR rtl-optimization/46590
15200         * loop-invariant.c (find_defs): Move df_remove_problem and
15201         df_process_deferred_rescans to move_invariants.
15202         Move df_live_add_problem and df_live_set_all_dirty calls
15203         to move_invariants.
15204         (move_invariants): Likewise.
15205         (move_loop_invariants): Likewise, making the df_live calls
15206         conditional on -O.  Remove the problem again if we added it
15207         locally.
15209 2019-04-03  qing zhao  <qing.zhao@oracle.com>
15211         PR tree-optimization/89730
15212         * ipa-inline.c (can_inline_edge_p): Delete the checking for
15213         -flive-patching=inline-only-static.
15214         (can_inline_edge_by_limits_p): Add the checking for
15215         -flive-patching=inline-only-static and grant always_inline
15216         even when -flive-patching=inline-only-static is specified.
15218 2019-04-03  Jeff Law  <law@redhat.com>
15220         PR rtl-optimization/81025
15221         * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
15223 2019-04-03  Richard Biener  <rguenther@suse.de>
15225         PR tree-optimization/84101
15226         * tree-vect-stmts.c: Include explow.h for hard_function_value,
15227         regs.h for hard_regno_nregs.
15228         (cfun_returns): New helper.
15229         (vect_model_store_cost): When vectorizing a store to a decl
15230         we return and the function ABI returns in a multi-reg location
15231         account for the possible spilling that will happen.
15233 2019-04-03  Andreas Krebbel  <krebbel@linux.ibm.com>
15235         * config/s390/s390.c (s390_legitimate_address_p): Reject long
15236         displacement addresses for vector mode operands.
15238 2019-04-03  Claudiu Zissulescu  <claziss@synopsys.com>
15240         * config/arc/arc.c (GMASK_LEN): Define.
15241         (arc_restore_callee_saves): Restore first blink when
15242         !optimize_size.
15244 2019-04-03  Sudakshina Das  <sudi.das@arm.com>
15246         * doc/extend.texi: Add deprecated comment on sign-return-address
15247         function attribute and add mbranch-protection.
15248         * doc/invoke.texi: Add bti to the options for mbranch-protection.
15250 2019-04-03  Richard Biener  <rguenther@suse.de>
15252         PR lto/89896
15253         * lto-wrapper.c (run_gcc): Avoid implicit rules making
15254         the all target phony.
15256 2019-04-02  Uroš Bizjak  <ubizjak@gmail.com>
15258         PR target/89902
15259         PR target/89903
15260         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
15261         Return false for variable DImode shifts.
15262         (dimode_scalar_chain::compute_convert_gain): Do not handle
15263         register count operand in variable DImode shifts.
15264         (dimode_scalar_chain::make_vector_copies): Remove support to copy
15265         count argument of a variable shift instruction to a vector register.
15266         (dimode_scalar_chain::convert_reg): Remove support to convert
15267         count argument of a variable shift instruction.
15269 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
15271         PR rtl-optimization/84206
15272         * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
15273         iterating over loop headers.
15275 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
15277         PR rtl-optimization/85876
15278         * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
15279         beyond the original fence.
15281 2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>
15283         * config.gcc: Mark spu* targets as deprecated/obsolete.
15285 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15287         * config/s390/s390-builtin-types.def: New builtin function type
15288         definitions. Remove unused types.
15289         * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
15290         (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
15291         (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
15292         overloaded builtins.
15293         (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
15294         (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
15295         * config/s390/vecintrin.h (vec_float): New builtin macro definition.
15296         (vec_double, vec_signed, vec_unsigned): Define to use the new
15297         overloaded builtins.
15298         * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
15299         Remove expanders.
15301 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15303         * config/s390/s390-builtin-types.def: New builtin function type
15304         definitions.
15305         * config/s390/s390-builtins.def (s390_vec_search_string_cc)
15306         (s390_vec_search_string_until_zero_cc): New overloaded builtins.
15307         (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
15308         (s390_vstrszh, s390_vstrszf): New low-level builtins.
15309         * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
15310         constant definitions.
15311         * config/s390/vecintrin.h (vec_search_string_cc)
15312         (vec_search_string_until_zero_cc): New builtin name definitions.
15313         * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
15314         expanders.
15315         ("vec_vstrs<mode>"): New insn definition.
15317 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15319         * config/s390/s390-builtin-types.def: Add new builtin function
15320         types.
15321         * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
15322         New overloaded builtins.
15323         (s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
15324         s390_vsrd.
15325         * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
15326         (UNSPEC_VEC_SLDBYTE): ... this.
15327         (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
15328         * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
15329         definitions.
15330         * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
15331         Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
15332         ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
15334 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15336         ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
15337         New insn definition.
15338         * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
15339         * config/s390/vector.md (V_HW_HSD): ... here.
15341 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15343         * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
15344         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
15345         ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
15346         ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
15347         New insn definitions.
15349 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15351         * config/s390/s390-builtin-types.def: Add new builtin function type.
15352         * config/s390/s390-builtins.def: Add overloaded builtin
15353         s390_vec_reve and low-level builtins for s390_vler and s390_vster.
15354         * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
15355         * config/s390/vecintrin.h (vec_reve): New builtin name definition.
15356         * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
15357         ("eltswap<mode>"): New expander.
15358         ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
15359         insn definitions.
15361 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15363         * config/s390/s390-builtin-types.def: Add new builtin function types.
15364         * config/s390/s390-builtins.def: Add overloaded builtin
15365         s390_vec_revb. Add low-level builtins for vlbr and vstbr
15366         instructions.
15367         * config/s390/vecintrin.h (vec_revb): New builtin name definition.
15368         * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
15369         ("bswap<mode>"): New expander.
15370         ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
15372 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15374         * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
15375         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
15376         vector builtin version number in __VEC__.
15378 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15380         * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
15381         iterators.
15382         (SFSI): New mode attribute.
15383         ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
15384         ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
15385         rename to ...
15386         ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
15387         ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
15388         ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
15389         ("floatsi<mode>2"): Add wcefb instruction.
15391 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15393         * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
15394         * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
15395         mode iterators.
15396         ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
15397         ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
15398         support 32 bit fp-int conversions. Rename to ...
15399         ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
15400         ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
15401         ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
15402         ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
15403         ... to these.
15405 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15407         * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
15408         if-then-else constructs if we can use the select instruction.
15409         * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
15411 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15413         * config/s390/s390.md ("*popcountdi_arch13_cc")
15414         ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
15415         definition.
15416         ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
15417         Append _z196 to make it ...
15418         ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
15419         ("popcounthi2_z196"): ... this.
15420         ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
15421         ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
15423 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15425         * config/s390/s390.c (s390_canonicalize_comparison): Convert
15426         certain compares for arch13 in order to make use of the condition
15427         code result produced by the new instructions.
15428         (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
15429         nxrk, and nxgrk instruction patterns.
15430         * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
15431         (inv_no): Add new code iterator together with some attributes.
15432         ("*andc_split_<mode>"): Disable splitter for arch13.
15433         ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
15434         ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
15435         ("*<ANDOR:bitops_name>c<GPR:mode>")
15436         ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
15437         ("*n<ANDOR:inv_bitops_name><mode>_cconly")
15438         ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
15439         ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
15441 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
15443         * common/config/s390/s390-common.c (processor_flags_table): New
15444         entry for arch13.
15445         * config.gcc: Support arch13 with the --with-arch= configure flag.
15446         * config/s390/driver-native.c (s390_host_detect_local_cpu):
15447         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
15448         * config/s390/s390.c (s390_get_sched_attrmask)
15449         (s390_get_unit_mask): Add PROCESSOR_ARCH13.
15450         * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
15451         * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
15452         (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
15453         (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
15454         definitions.
15455         * config/s390/s390.opt: Support arch13 as processor type in
15456         command line options.
15458 2019-04-02  Martin Liska  <mliska@suse.cz>
15460         PR translation/89912
15461         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
15462         Fix param description of graphite-max-arrays-per-scop.
15464 2019-04-02  Eric Botcazou  <ebotcazou@adacore.com>
15466         * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
15467         (ASAN_CC1_SPEC): Use it in 64-bit mode.
15468         * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
15470 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
15472         PR rtl-optimization/85412
15473         * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
15474         sel_sched_region_1, not after.
15476 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
15478         PR rtl-optimization/86928
15479         * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
15480         compute_live if necessary.
15481         (sel_redirect_edge_and_branch): Likewise.
15483 2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>
15485         PR rtl-optimization/89865
15486         * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
15487         register if it is a part of small class.
15489 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
15491         PR rtl-optimization/87273
15492         * sel-sched-ir.c (merge_fences): Remove assert.
15494 2019-04-01  Richard Biener  <rguenther@suse.de>
15496         PR tree-optimization/46590
15497         * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
15498         (dom_walker::m_reachability): Add in place of...
15499         (dom_walker::m_skip_unreachable_blocks): ...this.
15500         * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
15501         Move complex initialization ...
15502         (dom_walker::walk): Here.  Especially compute m_bb_to_rpo
15503         lazily and initialize edge flags on each invocation.
15504         (dom_walker::bb_reachable): Use m_reachability.
15506 2019-04-01  Martin Liska  <mliska@suse.cz>
15508         PR driver/89861
15509         * opt-suggestions.c (option_proposer::build_option_suggestions):
15510         Add variant without any argument in order to provide better
15511         hints.
15513 2019-04-01  Richard Biener  <rguenther@suse.de>
15515         PR c/71598
15516         * gimple.c: Include langhooks.h.
15517         (gimple_get_alias_set): Treat enumeral types as the underlying
15518         integer type.
15520 2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
15521             Eric Botcazou  <ebotcazou@adacore.com>
15523         PR rtl-optimization/89862
15524         * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
15525         that operates on the full registers for WORD_REGISTER_OPERATIONS
15526         architectures.
15528 2019-03-29  Jim Wilson  <jimw@sifive.com>
15530         * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
15531         Clear MASK_RVC and then set if C subset supported.
15533 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
15535         PR c/89872
15536         * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
15537         non-addressable complit into its initializer if it is volatile.
15539 2019-03-29  Roman Zhuykov  <zhroma@ispras.ru>
15541         * opts-common.c (integral_argument): Set errno properly in one case.
15543 2019-03-29  Martin Liska  <mliska@suse.cz>
15545         * doc/invoke.texi: Remove -Wchkp from documentation.
15547 2019-03-29  Martin Liska  <mliska@suse.cz>
15549         * dbgcnt.c (print_limit_reach): New function.
15550         (dbg_cnt): Use it.
15552 2019-03-29  Martin Liska  <mliska@suse.cz>
15554         * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
15555         (dbg_cnt_process_opt): Parse first tokens aas
15556         dbg_cnt_process_single_pair is also using strtok.
15558 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
15560         PR rtl-optimization/87485
15561         * function.c (expand_function_end): Move stack_protect_epilogue
15562         before loading of return value into hard register(s).
15564 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
15566         PR middle-end/89621
15567         * tree-inline.h (struct copy_body_data): Add
15568         dont_remap_vla_if_no_change flag.
15569         * tree-inline.c (remap_type_3, remap_type_2): New functions.
15570         (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
15571         and remap_type_2 returns false.
15572         * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
15573         Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
15574         only from where it is copied to nested contexts.
15576 2019-03-28  Uroš Bizjak  <ubizjak@gmail.com>
15578         PR target/89865
15579         * config/i386/i386.md (RMW operation with LEA peephole):
15580         Use LEAMODE mode attribute instead of SWI mode iterator for
15581         LEA pattern.
15583 2019-03-28  Uroš Bizjak  <ubizjak@gmail.com>
15585         PR target/89848
15586         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
15587         Also process XEXP (src, 0) of a shift insn.
15589 2019-03-28  David Malcolm  <dmalcolm@redhat.com>
15591         PR middle-end/89725
15592         * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
15593         Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
15595 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
15597         * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
15598         test.
15599         (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
15600         (pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
15601         immediately after first one with df_analyze in between, but rather
15602         process all bbs, queueing ones that need second pass in a worklist,
15603         df_analyze, process queued debug insn changes and if second pass is
15604         needed, process bbs from worklist, df_analyze, process queued debug
15605         insns again.
15607         * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
15608         or CALL_P instead of INSN_P && !DEBUG_INSN_P.
15609         (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
15611 2019-03-28  Jonathan Wakely  <jwakely@redhat.com>
15613         PR c/79022
15614         * gengtype.h (create_nested_ptr_option): Fix parameter names to match
15615         definition.
15617 2019-03-27  Mateusz B  <mateuszb@poczta.onet.pl>
15619         PR target/85667
15620         * config/i386/i386.c (ix86_function_value_1): Call the newly added
15621         function for 32-bit MS_ABI.
15622         (function_value_ms_32): New function.
15624 2019-03-27  Andrew Stubbs  <ams@codesourcery.com>
15626         * config/gcn/gcn.md (CC_SAVE_REG): New constant.
15627         (movdi): Call gen_movdi_symbol_save_scc.
15628         (gen_movdi_symbol_save_scc): New insn and split.
15630 2019-03-27  Peter Bergner  <bergner@linux.ibm.com>
15632         PR rtl-optimization/89313
15633         * function.c (matching_constraint_num): New static function.
15634         (match_asm_constraints_1): Use it.  Fixup white space and comment.
15635         Don't replace inputs with non-matching constraints which conflict
15636         with early clobber outputs.
15638 2019-03-27  Jeff Law  <law@redhat.com>
15640         PR rtl-optimization/87761
15641         PR rtl-optimization/89826
15642         * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
15643         slightly later.
15644         (pass_cprop_hardreg::execute): Call df_analyze after adding the
15645         note problem to get REG_DEAD/REG_UNUSED notes updated.
15647 2019-03-27  Richard Biener  <rguenther@suse.de>
15649         PR tree-optimization/89463
15650         * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
15651         queue edges to remove.
15652         (eliminate_unnecessary_stmts): Remove dead PHIs alongside
15653         dead stmts.  Delay edge removal until PHIs are removed to
15654         make debug-stmt creation not confused by seemingly degenerate
15655         PHIs.
15657 2019-03-27  Alan Modra  <amodra@gmail.com>
15659         * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
15660         throughout file.
15661         * config/rs6000/darwin.h: Likewise.
15662         * config/rs6000/rs6000.c: Likewise.
15664 2019-03-27  Alan Modra  <amodra@gmail.com>
15666         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
15667         assign rs6000_hard_regno_mode_ok_p[m][r].  Formatting.
15669 2019-03-26  Andrew Waterman  <andrew@sifive.com>
15670             Jim Wilson  <jimw@sifive.com>
15672         * config/riscv/generic.md (generic_alu, generic_load, generic_store)
15673         (generic_xfer, generic_branch, generic_imul, generic_idivsi)
15674         (generic_idivdi, generic_fmul_single, generic_fmul_double)
15675         (generic_fdiv, generic_fsqrt): Add check for generic tune.
15676         (generic_alu): Add auipc to type list.
15677         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
15678         (riscv_microarchitecture): Declare.
15679         * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
15680         * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
15681         field.
15682         (riscv_microarchitecture): New.
15683         (sifive_7_tune_info): New.
15684         (riscv_cpu_info_table): Add microarchitecture value for rocket and
15685         size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
15686         entries.
15687         (riscv_store_data_bypass_p): New.
15688         (riscv_option_override): Set riscv_microarchitecture from
15689         cpu->microarchitecture.
15690         * config/riscv/riscv.md: Include sifive-7.md.
15691         (type): Add auipc.
15692         (tune): New.
15693         (auipc<mode>): Change type to auipc.
15694         (restore_stack_nonlocal): New.
15695         * config/riscv/sifive-7.md: New.
15696         * doc/invoke.texi (RISC-V Options): Update mtune docs.
15698 2019-03-26  Uroš Bizjak  <ubizjak@gmail.com>
15700         PR target/89827
15701         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
15702         Also process XEXP (src, 0) of a shift insn.
15704 2019-03-26  Richard Biener  <rguenther@suse.de>
15706         * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
15707         (copy_debug_stmt): Likewise.
15708         (expand_call_inline): Likewise.
15709         (copy_bb): Avoid redundant lookup & set of gimple_block.
15710         * gimple-low.c (lower_gimple_return): Likewise.
15711         (lower_builtin_setjmp): Likewise.
15713 2019-03-26  Jakub Jelinek  <jakub@redhat.com>
15715         * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
15716         is constant 0, turn into static const data member initialized to false.
15717         (hash_table::hash_table): Only initialize m_gather_mem_stats #if
15718         GATHER_STATISTICS.  Add ATTRIBUTE_UNUSED to gather_mem_stats param.
15720 2019-03-26  Jason Merrill  <jason@redhat.com>
15721             Jakub Jelinek  <jakub@redhat.com>
15723         * mem-stats.h (mem_alloc_description::unregister_descriptor): New
15724         method.
15725         (mem_alloc_description::release_object_overhead): Fix comment typos.
15726         * hash-table.h (hash_table::~hash_table): Call
15727         release_instance_overhead only if m_entries is non-NULL, otherwise
15728         call unregister_descriptor.
15730 2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
15732         PR tree-optimization/81740
15733         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
15734         In case of outer loop vectorization, check for backward dependence
15735         at the inner loop if outer loop dependence is reversed.
15737 2019-03-26  Alan Modra  <amodra@gmail.com>
15739         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
15740         rs6000_vector_mem init.  Correct wI and wJ comment.
15742 2019-03-25  Alexander Monakov  <amonakov@ispras.ru>
15744         PR rtl-optimization/88347
15745         PR rtl-optimization/88423
15746         * sched-deps.c (sched_analyze_insn): Take into account that for
15747         tablejumps the barrier appears after a label and a jump_table_data.
15749 2019-03-25  Martin Sebor  <msebor@redhat.com>
15751         PR c/89812
15752         * c-common.c (check_user_alignment): Rename local.  Correct maximum
15753         alignment in diagnostic.  Avoid assuming argument fits in SHWI,
15754         convert it to UHWI when it fits.
15756 2019-03-25  Johan Karlsson  <johan.karlsson@enea.com>
15758         PR debug/86964
15759         * dwarf2out.c (premark_used_variables): New function.
15760         (prune_unused_types_walk): Do not mark not premarked external
15761         variables.
15762         (prune_unused_types): Call premark_used_variables.
15764 2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>
15766         PR rtl-optimization/89676
15767         * lra-constraints.c (curr_insn_transform): Do match reload for
15768         early clobbers when the match was successful only for different
15769         registers.
15771 2019-03-25  Martin Sebor  <msebor@redhat.com>
15773         * doc/extend.texi (Common Type Attributes): Document vector_size.
15774         (Common Variable Attributes): Mention size constraint.  Correct
15775         quoting and typos.
15776         (Vector Extensions): Use @dfn when defining bas type.  Clarify
15777         base type and size constraints.
15779 2019-03-25  Richard Biener  <rguenther@suse.de>
15781         PR tree-optimization/89789
15782         * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
15783         changes from non-undefined back to undefined.
15785 2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>
15787         * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
15788         heap string and a gc string, but since this variable is unknown to
15789         ggc the gc string might get reused and corrupted. Fixed by always
15790         using a heap string.
15792 2019-03-25  Richard Biener  <rguenther@suse.de>
15794         PR tree-optimization/89779
15795         * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
15796         to remove IV defs, delay actual removal.
15797         (tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
15798         (tree_ssa_iv_optimize): Remove eliminated IV defs at the
15799         very end, properly also reset loop control IV information.
15801 2019-03-25  Richard Biener  <rguenther@suse.de>
15803         PR tree-optimization/89802
15804         * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
15805         move EH data to folded stmt.
15807 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
15809         * config/s390/s390-builtin-types.def: Remove few unused types and
15810         fix sort order for others.
15812 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
15814         * config/s390/s390-c.c (s390_fn_types_compatible): Print the
15815         expected and found types with -mdebug during builtin matching.
15817 2019-03-25  Richard Biener  <rguenther@suse.de>
15819         PR middle-end/89790
15820         * fold-const.c (operand_equal_p): Revert last change with
15821         updated comment.
15823 2019-03-24  Segher Boessenkool  <segher@kernel.crashing.org>
15825         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
15826         notes for the result of the __tls_get_addr calls.
15827         * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
15829 2019-03-24  Jeff Law  <law@redhat.com>
15831         * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
15833         PR rtl-optimization/87761
15834         * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
15835         not INSN.  Also check RTX_FRAME_RELATED_P.  Queue insns for DF rescan
15836         as needed.
15837         (pass_cprop_hardreg::execute): Add df note problem and defer insn
15838         rescans.  Reprocess blocks as needed, calling df_analyze before
15839         reprocessing.  Always call df_analyze before fixing up debug bind
15840         insns.
15842 2019-03-23  Segher Boessenkool  <segher@kernel.crashing.org>
15844         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
15845         big endian.
15847 2019-03-22  Andrew Pinski  <apinski@marvell.com>
15849         * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
15850         attrribute for uxtw.
15852 2019-03-26  Jeff Law  <law@redhat.com>
15854         PR rtl-optimization/87761
15855         * config/mips/mips-protos.h (mips_split_move): Add new argument.
15856         (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
15857         (mips_split_move): Accept new INSN argument.  Try to forward SRC
15858         into the next instruction.
15859         (mips_split_move_insn): Pass INSN through to mips_split_move.
15861 2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>
15863         PR rtl-optimization/89676
15864         * lra-constraints.c (curr_insn_transform): Do match reload for
15865         early clobbers even if the match was successful.
15867 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
15869         PR c++/87481
15870         * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
15872 2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
15874         * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
15876 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
15878         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
15879         <avx512>_fmsub_<mode>_mask3<round_name>,
15880         <avx512>_fnmadd_<mode>_mask3<round_name>,
15881         <avx512>_fnmsub_<mode>_mask3<round_name>,
15882         avx512f_vmfmadd_<mode>_mask3<round_name>,
15883         avx512f_vmfmsub_<mode>_mask3<round_name>,
15884         *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
15885         instead of register_operand and %v instead of v for match_operand 1.
15886         (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
15887         (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this.  Use
15888         <round_nimm_predicate> instead of register_operand and %v instead of v
15889         for match_operand 1.
15891         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
15892         <avx512>_fmadd_<mode>_mask3<round_name>,
15893         <avx512>_fmsub_<mode>_mask<round_name>,
15894         <avx512>_fmsub_<mode>_mask3<round_name>,
15895         <avx512>_fnmadd_<mode>_mask<round_name>,
15896         <avx512>_fnmadd_<mode>_mask3<round_name>,
15897         <avx512>_fnmsub_<mode>_mask<round_name>,
15898         <avx512>_fnmsub_<mode>_mask3<round_name>,
15899         <avx512>_fmaddsub_<mode>_mask<round_name>,
15900         <avx512>_fmaddsub_<mode>_mask3<round_name>,
15901         <avx512>_fmsubadd_<mode>_mask<round_name>,
15902         <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
15903         <round_nimm_predicate> instead of nonimmediate_operand.
15904         (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
15905         fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
15906         Use register_operand instead of <round_nimm_predicate> for the
15907         operand that needs to match output.
15908         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
15909         *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
15910         Likewise.  Formatting fixes.
15912         PR target/89784
15913         * config/i386/i386.c (enum ix86_builtins): Remove
15914         IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
15915         * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
15916         __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
15917         __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
15918         __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
15919         __builtin_ia32_vfmsubss3_mask3): New builtins.
15920         * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
15921         avx512f_vmfmadd_<mode>_mask3<round_name>,
15922         avx512f_vmfmadd_<mode>_maskz_1<round_name>,
15923         *avx512f_vmfmsub_<mode>_mask<round_name>,
15924         avx512f_vmfmsub_<mode>_mask3<round_name>,
15925         *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
15926         *avx512f_vmfnmadd_<mode>_mask<round_name>,
15927         *avx512f_vmfnmadd_<mode>_mask3<round_name>,
15928         *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
15929         *avx512f_vmfnmsub_<mode>_mask<round_name>,
15930         avx512f_vmfnmsub_<mode>_mask3<round_name>,
15931         *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
15932         (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
15933         * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
15934         _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
15935         _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
15936         _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
15937         _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
15938         _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
15939         _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
15940         _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
15941         _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
15942         _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
15943         _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
15944         _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
15945         _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
15946         _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
15947         _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
15948         _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
15949         _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
15950         _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
15951         _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
15952         _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
15954 2019-03-21  Martin Sebor  <msebor@redhat.com>
15956         PR tree-optimization/89350
15957         * builtins.c (compute_objsize): Also ignore offsets whose upper
15958         bound is negative.
15959         * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
15960         (builtin_memref::builtin_memref): Initialize new member.
15961         Allow EXPR to be null.
15962         (builtin_memref::extend_offset_range): Replace local with a member.
15963         Avoid assuming pointer offsets are unsigned.
15964         (builtin_memref::set_base_and_offset): Determine base object
15965         before computing offset range.
15966         (builtin_access::builtin_access): Handle memset.
15967         (builtin_access::generic_overlap): Replace local with a member.
15968         (builtin_access::strcat_overlap): Same.
15969         (builtin_access::overlap): Same.
15970         (maybe_diag_overlap): Same.
15971         (maybe_diag_access_bounds): Same.
15972         (wrestrict_dom_walker::check_call): Handle memset.
15973         (check_bounds_or_overlap): Same.
15975 2019-03-21  Jan Hubicka  <hubicka@ucw.cz>
15976             Jakub Jelinek  <jakub@redhat.com>
15978         PR lto/89692
15979         * tree.c (fld_type_variant, fld_incomplete_type_of,
15980         fld_process_array_type): Call fld->pset.add and don't call
15981         add_tree_to_fld_list if it returns true.
15982         (free_lang_data_in_type): Similarly with self-recursive call.  Purge
15983         non-marked types from TYPE_NEXT_VARIANT list.
15984         (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
15986 2019-03-21  Jakub Jelinek  <jakub@redhat.com>
15988         * hash-table.h (hash_table): Add Lazy template parameter defaulted
15989         to false, if true, don't alloc_entries during construction, but defer
15990         it to the first method that needs m_entries allocated.
15991         (hash_table::hash_table, hash_table::~hash_table,
15992         hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
15993         hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
15994         hash_table::clear_slot, hash_table::traverse_noresize,
15995         hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
15996         * hash-set.h (hash_set): Add Lazy template parameter defaulted to
15997         false.
15998         (hash_set::contains): If Lazy is true, use find_slot_with_hash with
15999         NO_INSERT instead of find_with_hash.
16000         (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
16001         hash_set::m_table): Add Lazy to template params of hash_table.
16002         (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
16003         * attribs.c (test_attribute_exclusions): Likewise.
16004         * hash-set-tests.c (test_set_of_strings): Add iterator tests for
16005         hash_set.  Add tests for hash_set with Lazy = true.
16007 2019-03-21  Richard Biener  <rguenther@suse.de>
16009         PR tree-optimization/89779
16010         * tree.c (tree_nop_conversion): Consolidate and fix defensive
16011         checks with respect to released SSA names now having error_mark_node
16012         type.
16013         * fold-const.c (operand_equal_p): Likewise.
16015 2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>
16017         PR target/89775
16018         * config/s390/s390.c (global_not_special_regno_p): Move to make it
16019         available to ...
16020         (s390_optimize_register_info): Use global_not_special_regno_p to
16021         check for global regs.
16023 2019-03-20  Jakub Jelinek  <jakub@redhat.com>
16025         PR target/89752
16026         * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
16027         update this_alternative nor this_alternative_set.
16029 2019-03-19  Jim Wilson  <jimw@sifive.com>
16031         PR target/89411
16032         * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x.  New locals
16033         align, size, offset.  Use them to handle a BLKmode reference.  Update
16034         comment.
16035         (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
16037 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
16039         PR rtl-optimization/89768
16040         * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
16041         instead of GEN_INT.
16042         (unroll_loop_runtime_iterations): Likewise.
16044 2019-03-19  Martin Sebor  <msebor@redhat.com>
16046         PR tree-optimization/89644
16047         * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
16048         rather than endptr as an indicator of nul-termination.
16050         PR tree-optimization/89644
16051         * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
16052         arrays in determining sequence sizes in strncpy and stpncpy.
16054 2019-03-19  Martin Liska  <mliska@suse.cz>
16056         PR middle-end/89737
16057         * predict.c (combine_predictions_for_bb): Empty likely_edges and
16058         unlikely_edges if there's an edge that belongs to both these sets.
16060 2018-03-19  Segher Boessenkool  <segher@kernel.crashing.org>
16062         PR target/89746
16063         * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
16064         non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
16065         go via a stack temporary.
16067 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
16069         PR target/89378
16070         * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
16071         instead of gen_rtx_SUBREG.
16072         * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
16074 2019-03-19  Richard Biener  <rguenther@suse.de>
16076         PR debug/88389
16077         * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
16079 2019-03-19  Jan Hubicka  <hubicka@ucw.cz>
16081         PR lto/87809
16082         PR lto/89335
16083         * tree.c (free_lang_data_in_decl): Do not free context of C++
16084         destrutors.
16086 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
16088         PR target/89506
16089         * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
16090         subs for the first alternative except when operands[3] is 1.
16092         PR target/89752
16093         * gimplify.c (gimplify_asm_expr): For output argument with
16094         TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
16095         diagnose error.
16097 2019-03-19  Eric Botcazou  <ebotcazou@adacore.com>
16099         PR rtl-optimization/89753
16100         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
16101         explicit unrolling factor even more robust.
16103 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
16105         PR target/89726
16106         * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
16107         compensation use x2 += 1 instead of x2 -= -1 and when honoring
16108         signed zeros, do another copysign after the compensation.
16110 2019-03-18  Martin Sebor  <msebor@redhat.com>
16112         PR tree-optimization/89720
16113         * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
16114         more conservatively, the same as anti-range.
16116 2019-03-18  Richard Biener  <rguenther@suse.de>
16118         PR middle-end/88945
16119         * tree-ssanames.c (release_ssa_name_fn): For released SSA names
16120         use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
16121         basic-blocks that are removed.  Remove restoring SSA_NAME_VAR.
16122         * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
16124 2019-03-18  Andrew Stubbs  <ams@codesourcery.com>
16126         * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
16127         Extend queue to 1024 entries.
16128         Add "consumed" field.
16129         (gomp_print_output): Remove print_index parameter.
16130         Add final parameter.
16131         Change limit to unsigned.
16132         Use consumed field to implement circular buffer.
16133         Detect interrupted print in final pass.
16134         Flush output at the end.
16135         (run): Update gomp_print_output usage.
16136         (main): Initialize kernargs->output_data.consumed.
16138 2019-03-18  Richard Sandiford  <richard.sandiford@arm.com>
16140         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
16141         calculation of the minimum number of scalar iterations for
16142         fully-predicated loops.
16144 2019-03-18  Martin Jambor  <mjambor@suse.cz>
16146         PR tree-optimization/89546
16147         * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
16148         any propagation to its children took place.
16150 2019-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>
16152         PR target/89627
16153         * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
16154         parameter, and make use of it.
16155         (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
16157 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
16159         * config/arc/arc.opt (mcode-density-frame): Get the inital value
16160         from TARGET_CODE_DENSITY_FRAME_DEFAULT.
16161         * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
16162         * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
16163         * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
16164         match what the ops is doing.
16165         (push_multi_fp_blink): Likewise.
16166         * config/arc/arc.c (arc_override_options): Enable enter/leave when
16167         compiling for size and elf target.
16168         (arc_save_callee_enter): Adjust note to match what enter/leave
16169         operation does.
16171 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
16173         * config/arc/arc.md (tst_movb): Fix constraint.
16175 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
16177         * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
16179 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
16181         * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
16182         * config/arc/arc.c (arc_conditional_register_usage): Remove all
16183         reg_alloc_order references.
16184         (size_alloc_order): Define.
16185         (arc_adjust_reg_alloc_order): New function.
16186         * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
16187         order.
16188         (ADJUST_REG_ALLOC_ORDER): Define.
16189         (HONOR_REG_ALLOC_ORDER): Likewise.
16191 2019-03-18  Richard Biener  <rguenther@suse.de>
16193         PR target/87561
16194         * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
16195         loads and stores a bit more.
16197 2019-03-18  Richard Biener  <rguenther@suse.de>
16199         PR target/87561
16200         * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
16201         load pessimization to stores as well.
16203 2019-03-18  Andrey Belevantsev  <abel@ispras.ru>
16205         PR middle-end/86979
16206         * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
16207         successor, use NULL as its av set.
16209 2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
16211         PR rtl-optimization/89721
16212         * lra-constraints (invariant_p): Return false if side_effects_p holds.
16214 2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16216         PR target/87532
16217         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16218         When handling vec_extract, use modular arithmetic to allow
16219         constant selectors greater than vector length.
16220         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
16221         V1TImode vectors to have constant selector values greater than 0.
16222         Use modular arithmetic to compute vector index.
16223         (rs6000_split_vec_extract_var): Use modular arithmetic to compute
16224         index for in-memory vectors.  Correct code generation for
16225         in-register vectors.
16226         (altivec_expand_vec_ext_builtin): Use modular arithmetic to
16227         compute index.
16229 2019-03-15  Alexandre Oliva  <aoliva@redhat.com>
16231         PR c++/88534
16232         PR c++/88537
16233         * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
16234         VAR_DECL args.
16236 2019-03-15  Jakub Jelinek  <jakub@redhat.com>
16238         PR c++/89709
16239         * tree.c (inchash::add_expr): Strip any location wrappers.
16240         * fold-const.c (operand_equal_p): Move stripping of location wrapper
16241         after hash verification.
16243         PR debug/89704
16244         * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
16245         SIGN_EXTEND and ZERO_EXTEND.
16247 2019-03-14  Jason Merrill  <jason@redhat.com>
16248             Jakub Jelinek  <jakub@redhat.com>
16250         * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
16251         than if is_empty (*slot).
16252         * hash-set-tests.c (test_set_of_strings): Add tests for addition of
16253         existing elt and for elt removal.
16254         * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
16255         of already removed elt.
16257 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
16259         PR target/89650
16260         * config/i386/i386.c (remove_partial_avx_dependency): Handle
16261         REG_EH_REGION note.
16263 2019-03-14  Martin Liska  <mliska@suse.cz>
16265         PR other/89712
16266         * doc/invoke.texi: Remove -fdump-class-hierarchy option.
16268 2019-03-14  Richard Biener  <rguenther@suse.de>
16270         PR target/89711
16271         * config/i386/i386.c (make_resolver_func): Properly set
16272         DECL_CONTEXT on the RESULT_DECL.
16273         * config/rs6000/rs6000.c (make_resolver_func): Likewise.
16275 2019-03-14  Richard Biener  <rguenther@suse.de>
16277         * gimple-pretty-print.c: Include cfgloop.h.
16278         (dump_gimple_phi): Adjust.
16279         (dump_gimple_bb_header): Dump loop header for GIMPLE.
16280         (pp_cfg_jump): Adjust.
16281         (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
16282         * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
16283         (lower_phi_internal_fn): Remove.
16284         (verify_gimple_call): Remove IFN_PHI special-casing.
16285         (dump_function_to_file): Dump IL state.
16286         * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
16287         done to deal with PHI nodes being present in non-SSA state.
16289 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
16291         PR ipa/89684
16292         * multiple_target.c (create_dispatcher_calls): Change
16293         references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
16294         In the node->iterate_referring loop, push *ref rather than ref, call
16295         ref->remove_reference () and always pass 0 to iterate_referring.
16297         PR rtl-optimization/89679
16298         * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
16299         would contain a paradoxical SUBREG.
16301 2019-03-14  Richard Biener  <rguenther@suse.de>
16303         PR tree-optimization/89710
16304         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
16305         safe_dyn_cast.
16307 2019-03-14  Martin Liska  <mliska@suse.cz>
16309         * coverage.c (coverage_begin_function): Stream also
16310         end_column.
16311         * doc/gcov.texi: Document 2 new fields in JSON file.  Improve
16312         documentation about function declaration location.
16313         * gcov-dump.c (tag_function): Print whole range
16314         of function declaration.
16315         * gcov.c (struct function_info): Add end_column field.
16316         (function_info::function_info): Initialize it.
16317         (output_json_intermediate_file): Output {start,end}_column
16318         fields.
16319         (read_graph_file): Read end_column.
16321 2019-03-14  Richard Biener  <rguenther@suse.de>
16323         PR middle-end/89698
16324         * fold-const.c (operand_equal_p): For INDIRECT_REF check
16325         that the access types are similar.
16327 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
16329         PR tree-optimization/89703
16330         * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
16331         aren't compatible also with builtin_decl_explicit.  Check pure
16332         or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
16333         and BUILT_IN_STPNCPY{,_CHK}.
16335 2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
16337         PR target/89523
16338         * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
16339         addr32 prefix to VSIB address for X32.
16340         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
16341         "%M2" to opcode.
16342         (*avx512pf_gatherpf<mode>df_mask): Likewise.
16343         (*avx512pf_scatterpf<mode>sf_mask): Likewise.
16344         (*avx512pf_scatterpf<mode>df_mask): Likewise.
16345         (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
16346         (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
16347         (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
16348         (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
16349         (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
16350         (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
16351         (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
16352         (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
16353         (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
16354         (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
16355         (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
16356         (*avx512f_scatterdi<mode>): Likewise.
16358 2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
16360         PR target/85860
16361         * lra-constraints.c (inherit_in_ebb): Update
16362         potential_reload_hard_regs along with live_hard_regs.
16364 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
16366         PR debug/89498
16367         * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
16368         DWARF_OFFSET_SIZE.
16369         (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
16371 2019-03-13  Martin Sebor  <msebor@redhat.com>
16373         PR tree-optimization/89662
16374         * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
16375         has a size.
16377 2019-03-13  Richard Biener  <rguenther@suse.de>
16379         PR middle-end/89677
16380         * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
16381         throw FP expressions at tree-affine.
16383 2019-03-14  Richard Biener  <rguenther@suse.de>
16385         * tree-pretty-print.c (dump_generic_node): For -gimple properly
16386         dump negative integer constants using _Literal (type) -num.
16388 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
16390         * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
16391         nonlocal_value member.
16393         PR middle-end/88588
16394         * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
16395         (ipa_simd_modify_function_body): Handle PHIs.
16397 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
16399         * config/s390/s390.c (s390_option_override_internal): Use more
16400         aggressive inlining parameters.
16402 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
16404         * config/s390/3906.md: New file.
16405         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
16406         (LONGRUNNING_THRESHOLD): Remove.
16407         (MAX_SCHED_MIX_SCORE): Decrease.
16408         (MAX_SCHED_MIX_DISTANCE): Decrease.
16409         (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
16410         (struct s390_sched_state): New struct to hold scheduling state.
16411         (S390_SCHED_STATE_NORMAL): Remove.
16412         (S390_SCHED_STATE_CRACKED): Remove.
16413         (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
16414         (s390_get_sched_attrmask): Use new attribute.
16415         (s390_get_unit_mask): Use new units.
16416         (s390_is_fpd): New function.
16417         (s390_is_fxd): New function.
16418         (s390_is_longrunning): New function.
16419         (s390_sched_score): Use new functions.
16420         (s390_sched_reorder): Likewise.
16421         (s390_sched_variable_issue): Rework and use new functions.
16422         (s390_sched_init): Use new functions.
16423         * config/s390/s390.h (s390_tune_attr): Add z14.
16424         * config/s390/s390.md: Add z14.
16426 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
16428         * config/s390/2964.md: Update pipeline description.
16429         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
16430         (LONGRUNNING_THRESHOLD): Remove.
16431         (LATENCY_FACTOR): Remove.
16432         (s390_get_unit_mask): Add unit.
16433         (s390_sched_score): Use fxd/fpd.
16434         (s390_sched_variable_issue): Use fxd/fpd.
16436 2019-03-12  Martin Liska  <mliska@suse.cz>
16438         * config/i386/i386.c: Reword an error message.
16440 2019-03-12  Martin Jambor  <mjambor@suse.cz>
16442         * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
16443         terminate with newline.
16445 2019-03-12  Jakub Jelinek  <jakub@redhat.com>
16447         PR target/52726
16448         * config/s390/s390.md (tabort): Use %wd instead of
16449         HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
16450         letters and periods.
16451         * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
16452         output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
16453         's with %< and %>.
16455         PR middle-end/89663
16456         * builtins.c (expand_builtin_int_roundingfn,
16457         expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
16458         gcc_unreachable if validate_arglist fails.
16460 2019-03-12  Richard Biener  <rguenther@suse.de>
16462         PR tree-optimization/89664
16463         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
16464         free the occurance tree after the early out.
16466 2019-03-11  Jakub Jelinek  <jakub@redhat.com>
16468         PR middle-end/89655
16469         PR bootstrap/89656
16470         * vr-values.c (vr_values::update_value_range): If
16471         old_vr->varying_p (), don't update it, make new_vr also VARYING
16472         and return false.
16474 2019-03-11  Martin Liska  <mliska@suse.cz>
16476         * config/aarch64/aarch64.c (aarch64_override_options_internal):
16477         Fix double string quoting.
16479 2019-03-11  Martin Liska  <mliska@suse.cz>
16481         * collect-utils.c (collect_wait): Wrap apostrophes
16482         in gcc internal format with %'.
16483         * collect2.c (main): Likewise.
16484         (scan_prog_file): Likewise.
16485         (scan_libraries): Likewise.
16486         * config/i386/i386.c (ix86_expand_call): Likewise.
16487         (ix86_handle_interrupt_attribute): Likewise.
16488         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
16489         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
16490         * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
16491         * lto-wrapper.c (find_crtoffloadtable): Likewise.
16492         * symtab.c (symtab_node::verify_base): Likewise.
16493         * tree-cfg.c (verify_gimple_label): Likewise.
16494         * tree.c (verify_type_variant): Likewise.
16496 2019-03-11  Martin Liska  <mliska@suse.cz>
16498         * builtins.c (expand_builtin_thread_pointer): Wrap an option name
16499         in a string format message and fix GNU coding style.
16500         (expand_builtin_set_thread_pointer): Likewise.
16501         * common/config/aarch64/aarch64-common.c
16502         (aarch64_rewrite_selected_cpu): Likewise.
16503         * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
16504         * common/config/arc/arc-common.c (arc_handle_option): Likewise.
16505         * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
16506         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
16507         * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
16508         * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
16509         * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
16510         * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
16511         * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
16512         * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
16513         Likewise.
16514         * common/config/riscv/riscv-common.c
16515         (riscv_subset_list::parsing_subset_version): Likewise.
16516         (riscv_subset_list::parse_std_ext): Likewise.
16517         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
16518         (riscv_subset_list::parse): Likewise.
16519         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
16520         * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
16521         (aarch64_override_options_internal): Likewise.
16522         (aarch64_validate_mcpu): Likewise.
16523         (aarch64_validate_march): Likewise.
16524         (aarch64_validate_mtune): Likewise.
16525         (aarch64_override_options): Likewise.
16526         * config/alpha/alpha.c (alpha_option_override): Likewise.
16527         * config/arc/arc.c (arc_init): Likewise.
16528         (parse_mrgf_banked_regs_option): Likewise.
16529         (arc_override_options): Likewise.
16530         (arc_expand_builtin_aligned): Likewise.
16531         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
16532         (arm_expand_builtin): Likewise.
16533         * config/arm/arm.c (arm_option_check_internal): Likewise.
16534         (arm_configure_build_target): Likewise.
16535         (arm_option_override): Likewise.
16536         (arm_options_perform_arch_sanity_checks): Likewise.
16537         (arm_handle_cmse_nonsecure_entry): Likewise.
16538         (arm_handle_cmse_nonsecure_call): Likewise.
16539         (arm_tls_referenced_p): Likewise.
16540         (thumb1_expand_prologue): Likewise.
16541         * config/avr/avr.c (avr_option_override): Likewise.
16542         * config/bfin/bfin.c (bfin_option_override): Likewise.
16543         * config/c6x/c6x.c (c6x_option_override): Likewise.
16544         * config/cr16/cr16.c (cr16_override_options): Likewise.
16545         * config/cris/cris.c (cris_option_override): Likewise.
16546         * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
16547         * config/darwin-c.c (macosx_version_as_macro): Likewise.
16548         * config/darwin.c (darwin_override_options): Likewise.
16549         * config/frv/frv.c (frv_expand_builtin): Likewise.
16550         * config/h8300/h8300.c (h8300_option_override): Likewise.
16551         * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
16552         (ix86_option_override_internal): Likewise.
16553         (warn_once_call_ms2sysv_xlogues): Likewise.
16554         (ix86_expand_prologue): Likewise.
16555         (split_stack_prologue_scratch_regno): Likewise.
16556         (ix86_warn_parameter_passing_abi): Likewise.
16557         * config/ia64/ia64.c (fix_range): Likewise.
16558         * config/m68k/m68k.c (m68k_option_override): Likewise.
16559         * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
16560         * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
16561         (mips_set_compression_mode): Likewise.
16562         * config/mmix/mmix.c (mmix_option_override): Likewise.
16563         * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
16564         * config/msp430/msp430.c (msp430_option_override): Likewise.
16565         * config/nds32/nds32.c (nds32_option_override): Likewise.
16566         * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
16567         (nios2_option_override): Likewise.
16568         (nios2_expand_custom_builtin): Likewise.
16569         * config/nvptx/mkoffload.c (main): Likewise.
16570         * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
16571         * config/pa/pa.c (fix_range): Likewise.
16572         (pa_option_override): Likewise.
16573         * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
16574         (riscv_option_override): Likewise.
16575         * config/rl78/rl78.c (rl78_option_override): Likewise.
16576         * config/rs6000/aix61.h: Likewise.
16577         * config/rs6000/aix71.h: Likewise.
16578         * config/rs6000/aix72.h: Likewise.
16579         * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
16580         * config/rs6000/freebsd64.h: Likewise.
16581         * config/rs6000/linux64.h: Likewise.
16582         * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
16583         (rs6000_expand_zeroop_builtin): Likewise.
16584         (rs6000_expand_mtfsb_builtin): Likewise.
16585         (rs6000_expand_set_fpscr_rn_builtin): Likewise.
16586         (rs6000_expand_set_fpscr_drn_builtin): Likewise.
16587         (rs6000_invalid_builtin): Likewise.
16588         (rs6000_expand_split_stack_prologue): Likewise.
16589         * config/rs6000/rtems.h: Likewise.
16590         * config/rx/rx.c (valid_psw_flag): Likewise.
16591         (rx_expand_builtin): Likewise.
16592         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
16593         * config/s390/s390.c (s390_expand_builtin): Likewise.
16594         (s390_function_profiler): Likewise.
16595         (s390_option_override_internal): Likewise.
16596         (s390_option_override): Likewise.
16597         * config/sh/sh.c (sh_option_override): Likewise.
16598         (sh_builtin_saveregs): Likewise.
16599         (sh_fix_range): Likewise.
16600         * config/sh/vxworks.h: Likewise.
16601         * config/sparc/sparc.c (sparc_option_override): Likewise.
16602         * config/spu/spu.c (spu_option_override): Likewise.
16603         (fix_range): Likewise.
16604         * config/visium/visium.c (visium_option_override): Likewise.
16605         (visium_handle_interrupt_attr): Likewise.
16606         * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
16607         * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
16608         (dbg_cnt_process_opt): Likewise.
16609         * dwarf2out.c (output_dwarf_version): Likewise.
16610         * except.c (expand_eh_return): Likewise.
16611         * gcc.c (defined): Likewise.
16612         (driver_handle_option): Likewise.
16613         (process_command): Likewise.
16614         (compare_files): Likewise.
16615         (driver::prepare_infiles): Likewise.
16616         (driver::do_spec_on_infiles): Likewise.
16617         (driver::maybe_run_linker): Likewise.
16618         * omp-offload.c (oacc_parse_default_dims): Likewise.
16619         * opts-global.c (handle_common_deferred_options): Likewise.
16620         * opts.c (parse_sanitizer_options): Likewise.
16621         (common_handle_option): Likewise.
16622         (enable_warning_as_error): Likewise.
16623         * passes.c (enable_disable_pass): Likewise.
16624         * plugin.c (parse_plugin_arg_opt): Likewise.
16625         (default_plugin_dir_name): Likewise.
16626         * targhooks.c (default_expand_builtin_saveregs): Likewise.
16627         (default_pch_valid_p): Likewise.
16628         * toplev.c (init_asm_output): Likewise.
16629         (process_options): Likewise.
16630         (toplev::run_self_tests): Likewise.
16631         * tree-cfg.c (verify_gimple_call): Likewise.
16632         * tree-inline.c (inline_forbidden_p_stmt): Likewise.
16633         (tree_inlinable_function_p): Likewise.
16634         * var-tracking.c (vt_find_locations): Likewise.
16636 2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>
16638         * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
16639         only on the else branch.
16641 2019-03-11  Martin Liska  <mliska@suse.cz>
16643         * gcov.c (output_intermediate_json_line): Print function
16644         name of each line.
16645         (output_json_intermediate_file): Add new argument.
16646         * doc/gcov.texi: Document the change.
16648 2019-03-11  Eric Botcazou  <ebotcazou@adacore.com>
16650         PR rtl-optimization/89588
16651         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
16652         explicit unrolling factor more robust.
16654 2019-03-11  Richard Biener  <rguenther@suse.de>
16656         PR tree-optimization/89649
16657         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
16658         * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
16659         on the prolog and epilog loops.
16660         (vect_loop_versioning): Return copy of loop.
16661         * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
16662         on the non-vectorized version of the loop.
16664 2019-03-10  Uroš Bizjak  <ubizjak@gmail.com>
16666         PR target/68924
16667         * config/i386/sse.md (*vec_extractv2di_0_sse):
16668         Add (=r,x) alternative and corresponding splitter.
16670 2019-03-10  Martin Jambor  <mjambor@suse.cz>
16672         PR tree-optimization/85762
16673         PR tree-optimization/87008
16674         PR tree-optimization/85459
16675         * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
16676         it points to if there is a type changing MEM_REF.  Adjust all callers.
16677         (build_accesses_from_assign): Disable total scalarization if
16678         contains_vce_or_bfcref_p returns true through the new parameter, for
16679         both rhs and lhs.
16681 2019-03-09  Jakub Jelinek  <jakub@redhat.com>
16683         PR c/88568
16684         * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
16685         dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
16687         PR target/79645
16688         * common.opt (fdiagnostics-show-labels,
16689         fdiagnostics-show-line-numbers, fdiagnostics-format=,
16690         fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
16691         gas-locview-support, ginline-points, ginternal-reset-location-views):
16692         Terminate description text with a dot.
16693         * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
16694         * config/mcore/mcore.opt (m210, m340): Likewise.
16695         * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
16696         mnops=): Start description text with a capital letter.
16697         * config/arc/arc.opt (msize-level=): Likewise.
16698         * config/sh/sh.opt (minline-ic_invalidate): Likewise.
16699         * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
16700         mnewlib): Likewise.
16701         * config/ft32/ft32.opt (msim): Likewise.
16702         (mft32b, mcompress): Likewise.  Terminate description text with a dot.
16703         (mnodiv, mnopm): Terminate description text with a dot.
16704         * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
16705         a colon.
16706         * config/i386/i386.opt (prefer_vector_width, instrument_return):
16707         Likewise.
16708         * config/rx/rx.opt (nofpu): Remove trailing spaces from description
16709         text.
16711         PR rtl-optimization/89634
16712         * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
16713         are modified in BB_END (e->src) instruction.
16715 2019-03-08  David Malcolm  <dmalcolm@redhat.com>
16717         PR target/79926
16718         * config/i386/i386.c (ix86_set_current_function): Make "sorry"
16719         messages more amenable to translation, and improve wording.
16721 2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>
16723         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
16724         ud- and du-chains between phases.
16726 2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>
16728         PR debug/89631
16729         * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
16730         instead of POLY_INT_CST.
16732 2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16734         * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
16735         requirement.
16737 2019-03-08  Uroš Bizjak  <ubizjak@gmail.com>
16739         PR target/68924
16740         PR target/78782
16741         PR target/87558
16742         * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
16743         (_mm_storeu_si64): Ditto.
16745 2019-03-08  Martin Liska  <mliska@suse.cz>
16747         PR target/86952
16748         * config/i386/i386.c (ix86_option_override_internal): Disable
16749         jump tables when retpolines are used.
16751 2019-03-08  Jan Hubicka  <hubicka@ucw.cz>
16753         PR go/63560
16754         * ipa-split.c (execute_split_functions): Do not split
16755         'noinline' or 'section' function.
16757 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
16759         PR target/79846
16760         * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
16761         HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
16762         HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.
16764         PR ipa/80000
16765         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
16766         from diagnostics.  Formatting fixes.
16768         PR target/85665
16769         * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
16770         warn_odr diagnostics.
16772         PR other/80058
16773         * lra-constraints.c (process_alt_operands): Avoid one space before
16774         " at the end of line and another after " on another line in a string
16775         literal.
16776         * attribs.c (handle_dll_attribute): Likewise.
16777         * config/avr/avr-devices.c (avr_texinfo): Likewise.
16779         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
16780         warning_at or inform messages in G_() if there is no ?:.
16782         PR tree-optimization/89550
16783         * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
16784         returned true.  Formatting fixes.
16785         (expand_builtin_strnlen): Formatting fixes.
16786         * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
16787         if warning_at returned true.
16788         * tree-cfg.c (pass_warn_function_return::execute): Likewise.
16790 2019-03-08  Richard Biener  <rguenther@suse.de>
16792         PR middle-end/89578
16793         * cfgloop.h (struct loop): Add owned_clique field.
16794         * cfgloopmanip.c (copy_loop_info): Copy it.
16795         * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
16796         cliques.
16797         * tree-inline.c (copy_loops): Remap owned_clique.
16798         * lto-streamer-in.c (input_cfg): Stream owned_clique.
16799         * lto-streamer-out.c (output_cfg): Likewise.
16801 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
16803         PR target/80190
16804         * config/darwin.c: Include intl.h.
16805         (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
16806         composing the message out of two separate parts.
16808 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
16810         PR target/80003
16811         * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
16812         doesn't start with a capital letter and doesn't end with a dot.
16813         (ix86_function_arg_boundary): Make sure diagnostics doesn't start
16814         with a capital letter.
16815         (ix86_mangle_function_version_assembler_name): Likewise.
16816         (ix86_generate_version_dispatcher_body): Likewise.
16817         (fold_builtin_cpu): Likewise.
16818         (get_builtin_code_for_version): Likewise.  Remove extraneous space.
16819         (ix86_handle_interrupt_attribute): Make the diagnostics easier for
16820         translators, wrap full type name in %qs.
16822         PR translation/79999
16823         * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
16824         depend clause with source (or sink) modifier.
16825         * omp-expand.c (expand_omp_ordered_sink): Likewise.
16827         PR target/89602
16828         * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
16829         *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
16830         (avx512f_load<mode>_mask): New define_expand.
16831         * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
16832         __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
16833         __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
16834         __builtin_ia32_movess_mask): New builtins.
16835         * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
16836         _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
16837         _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
16838         _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
16840 2019-03-07  Martin Jambor  <mjambor@suse.cz>
16842         PR lto/87525
16843         * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
16844         for extern inline functions.
16846 2019-03-07  Martin Jambor  <mjambor@suse.cz>
16848         PR ipa/88235
16849         * cgraph.h (cgraph_node): New inline method former_thunk_p.
16850         * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
16851         (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
16852         have multiple callees.  At the end check if declarations match as
16853         opposed to cgraph_nodes.
16855 2019-03-07  Martin Liska  <mliska@suse.cz>
16857         * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
16858         which is equivalent to searching for this in clones chain.
16859         * symtab.c (symtab_node::verify_base): Similarly compare ASM
16860         names with a neighbour and special case first node in a chain.
16862 2019-01-25  Jason Merrill  <jason@redhat.com>
16864         PR c++/80916 - spurious "static but not defined" warning.
16865         * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
16866         for an internal symbol with DECL_EXTERNAL.
16868 2019-04-07  Richard Biener  <rguenther@suse.de>
16870         PR middle-end/89618
16871         * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
16872         * tree-inline.c (copy_loops): Simplify.
16874 2019-03-07  Martin Liska  <mliska@suse.cz>
16876         * dwarf2out.c (add_AT_vms_delta): Revert function removal.
16878 2019-03-07  Richard Biener  <rguenther@suse.de>
16880         PR tree-optimization/89595
16881         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
16882         stmt iterator as reference, take boolean output parameter to
16883         indicate whether the stmt was removed and thus the iterator
16884         already advanced.
16885         (dom_opt_dom_walker::before_dom_children): Re-iterate over
16886         stmts created by folding.
16888 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
16890         PR c++/89585
16891         * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
16892         at toplevel.
16894 2019-03-06  Peter Bergner  <bergner@linux.ibm.com>
16896         PR rtl-optimization/88845
16897         * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
16898         LRA.
16899         * lra.c (remove_scratches_1): New function.
16900         (remove_scratches): Use it.
16901         (lra_emit_move): Likewise.
16903 2019-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
16905         * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
16906         unaligned_access variable.
16907         * config/arc/arc.c (arc_override_options): Set unaligned access
16908         default on for HS CPUs.
16909         * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
16911 2019-03-06  Martin Liska  <mliska@suse.cz>
16913         PR gcov-profile/89577
16914         * doc/gcov.texi: Prefer to use --coverage.
16915         * doc/sourcebuild.texi: Likewise.
16917 2019-03-02  Jason Merrill  <jason@redhat.com>
16919         PR c++/86485 - -Wmaybe-unused with empty class ?:
16920         * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
16922 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
16924         PR target/89587
16925         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
16926         if_multiarch.
16928         PR middle-end/89590
16929         * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
16930         exactly one argument.
16932 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
16933             Richard Sandiford  <richard.sandiford@arm.com>
16935         PR tree-optimization/89570
16936         * match.pd (vec_cond into cond_op simplification): Don't use
16937         get_conditional_internal_fn, use as_internal_fn (cond_op).
16939 2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
16941         PR target/89222
16942         * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
16943         to decide when to split off a non-zero offset from a symbol.
16944         * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
16945         in function symbols.
16947 2019-03-05  Richard Biener  <rguenther@suse.de>
16949         PR tree-optimization/89594
16950         * tree-if-conv.c (pass_if_conversion::execute): Handle
16951         case where .LOOP_VECTORIZED_FUNCTION was removed.
16953 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
16955         PR bootstrap/89560
16956         * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
16957         instead alloca it only when needed with the needed size.
16959         PR tree-optimization/89570
16960         * match.pd (vec_cond into cond_op simplification): Guard with
16961         vectorized_internal_fn_supported_p test and #if GIMPLE.
16963         PR tree-optimization/89566
16964         * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
16965         Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
16966         Punt if get_user_idx_format succeeds, but idx_format argument is
16967         not provided or doesn't have pointer type, or if idx_args is above
16968         number of provided arguments.
16970 2019-03-04  Wilco Dijkstra  <wdijkstr@arm.com>
16972         PR tree-optimization/89437
16973         * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
16975 2019-03-04  Richard Biener  <rguenther@suse.de>
16977         PR middle-end/89572
16978         * tree-scalar-evolution.c: (get_loop_exit_condition): Use
16979         safe_dyn_cast.
16981 2019-03-04  Bin Cheng  <bin.cheng@linux.alibaba.com>
16983         PR tree-optimization/89487
16984         * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
16985         (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
16986         (distribute_loop): Don't do runtime alias check if there is non-
16987         addressable data reference.
16988         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
16989         is a register variable.
16991 2019-03-02  Jakub Jelinek  <jakub@redhat.com>
16993         PR target/89506
16994         * config/arm/arm.md (cmpsi2_addneg): Use
16995         trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
16996         If operands[2] is 0 or INT_MIN, force use of subs.
16997         (*compare_scc splitter): Use gen_int_mode.
16998         (*negscc): Likewise.
16999         * config/arm/thumb2.md (*thumb2_negscc): Likewise.
17001 2019-03-01  Kito Cheng  <kito.cheng@gmail.com>
17002             Monk Chiang  <sh.chiang04@gmail.com>
17004         * common/config/riscv/riscv-common.c: Include sstream.
17005         (riscv_subset_list::to_string): New.
17006         (riscv_arch_str): Likewise.
17007         * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
17008         * config.in: Regen.
17009         * config/riscv/riscv-protos.h (riscv_arch_str): New.
17010         * config/riscv/riscv.c (INCLUDE_STRING): Defined.
17011         (riscv_emit_attribute): New.
17012         (riscv_file_start): Emit attribute if needed.
17013         (riscv_option_override): Init riscv_emit_attribute_p.
17014         * config/riscv/riscv.opt (mriscv-attribute): New option.
17015         * configure.ac (riscv*-*-*): Check binutils is supporting ELF
17016         * configure: Regen.
17017         * doc/install.texi: Document --with-riscv-attribute.
17018         * doc/invoke.texi: Document -mriscv-attribute.
17020         * common/config/riscv/riscv-common.c:
17021         Include config/riscv/riscv-protos.h.
17022         (INCLUDE_STRING): Defined.
17023         (RISCV_DONT_CARE_VERSION): Defined.
17024         (riscv_subset_t): Declare.
17025         (riscv_subset_t::riscv_subset_t): New.
17026         (riscv_subset_list): Declare.
17027         (riscv_subset_list::riscv_subset_list): New.
17028         (riscv_subset_list::~riscv_subset_list): Likewise.
17029         (riscv_subset_list::parsing_subset_version): Likewise.
17030         (riscv_subset_list::parse_std_ext): Likewise.
17031         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
17032         (riscv_subset_list::add): Likewise.
17033         (riscv_subset_list::lookup): Likewise.
17034         (riscv_subset_list::xlen): Likewise.
17035         (riscv_subset_list::parse): Likewise.
17036         (riscv_supported_std_ext): Likewise.
17037         (current_subset_list): Likewise.
17038         (riscv_parse_arch_string): Using riscv_subset_list::parse to
17039         parse.
17041 2019-03-01  Segher Boessenkool  <segher@kernel.crashing.org>
17043         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
17044         rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
17045         * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
17047 2019-03-01  Alexander Monakov  <amonakov@ispras.ru>
17049         PR rtl-optimization/85899
17050         * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
17051         fallthru edges leading to the exit block.
17053 2019-03-01  Tamar Christina  <tamar.christina@arm.com>
17055         PR target/89517
17056         * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
17057         rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
17059 2019-03-01  Richard Sandiford  <richard.sandiford@arm.com>
17061         PR tree-optimization/89535
17062         * tree-vect-stmts.c (vectorizable_call): Record the vector types
17063         for each operand.  Calculate the fallback choice for mask operands
17064         and pass it to vect_get_vec_def_for_operand.
17066 2019-03-01  Richard Biener  <rguenther@suse.de>
17068         PR middle-end/89541
17069         * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
17070         get virtual operands.
17071         (get_expr_operands): Handle CONST_DECL like other decls.
17073 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
17075         PR middle-end/89503
17076         * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
17077         on DECL_P and EXPR_P.
17079 2019-03-01  Richard Biener  <rguenther@suse.de>
17081         PR middle-end/89497
17082         * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
17083         argument, defaulted to zero.
17084         * passes.c (execute_function_todo): Pass down SSA update flags
17085         to cleanup_tree_cfg.
17086         * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
17087         (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
17088         form if requested.
17089         (cleanup_tree_cfg): Get and pass down SSA update flags.
17091 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
17093         PR bootstrap/89539
17094         * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
17095         early_lto_debug argument.
17097 2019-02-28  Eric Botcazou  <ebotcazou@adacore.com>
17099         PR tree-optimization/89536
17100         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
17101         only whether bit #0 of the value is 0 instead of the entire value.
17103 2019-02-28  Marek Polacek  <polacek@redhat.com>
17105         PR c++/87068 - missing diagnostic with fallthrough statement.
17106         * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
17107         at the end of a seq, save its location to walk_stmt_info.
17108         (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
17109         a switch.
17111 2019-02-28  Jan Hubicka  <hubicka@ucw.cz>
17113         PR lto/88585
17114         * tree.c (find_atomic_core_type): Move ahead in file.
17115         (check_base_type): Correctly compare alignments of atomic types.
17117 2019-02-28  H.J. Lu  <hongjiu.lu@intel.com>
17119         PR target/89455
17120         * config/i386/i386.c (get_builtin_code_for_version): Identify
17121         Westmere from PCLMUL, instead of AES.
17123 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
17125         PR target/89434
17126         * config/arm/arm.md (*subsi3_carryin_compare_const): Use
17127         trunc_int_for_mode (-INTVAL (...), SImode), just instead of
17128         -UINTVAL (...).
17130 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
17132         PR target/88530
17133         * config/aarch64/aarch64-option-extensions.def: Document it.
17134         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
17135         if empty hwcaps.
17137 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
17139         PR c/89520
17140         * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
17141         builtins if they don't have a single scalar floating point argument.
17142         Formatting fixes.
17144 2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17146         PR rtl-optimization/89490
17147         * varasm.c (get_block_for_section): Bail out for mergeable sections.
17148         (default_use_anchors_for_symbol_p, output_object_block): Assert the
17149         block section is not mergeable.
17151 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
17153         PR target/70341
17154         * config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
17155         old define_insn to ...
17156         (*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
17157         * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
17158         Rename old define_insn to ...
17159         (*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
17160         (thumb2_casesi_internal_pic): New define_expand.  Rename old
17161         define_insn to ...
17162         (*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.
17163         * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
17164         MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
17166 2019-02-27  Richard Biener  <rguenther@suse.de>
17168         PR debug/88878
17169         * dwarf2out.c (use_debug_types): Disable when in_lto_p.
17171 2019-02-27  Richard Biener  <rguenther@suse.de>
17173         * passes.c (should_skip_pass_p): Do not skip cgraph-edge
17174         building.
17176 2019-02-27  Richard Biener  <rguenther@suse.de>
17178         PR debug/88878
17179         * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
17180         parameter, prefix section name with .gnu.debuglto_ if true.
17181         (dwarf2out_finish): Pass false to output_comdat_type_unit.
17182         (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
17184 2019-02-27  Richard Biener  <rguenther@suse.de>
17186         PR debug/89514
17187         * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
17188         rather than on use_debug_types, doing what output_die does.
17189         (value_format): Likewise.
17191 2019-02-27  Martin Jambor  <mjambor@suse.cz>
17192             Martin Sebor  <msebor@redhat.com>
17194         * doc/invoke.texi (Warning Options): Reword description of
17195         -Wno-absolute-value.
17197 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
17199         PR tree-optimization/89280
17200         * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
17201         builtin_setjmp_setup_bb): New functions.
17202         (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
17203         When visiting __builtin_setjmp_setup block, queue in special
17204         setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
17205         __builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
17206         from visited after the loop if they don't have any visited successor
17207         blocks.
17209 2018-02-26  Steve Ellcey  <sellcey@marvell.com>
17211         * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
17212         New function.
17213         (TARGET_GET_MULTILIB_ABI_NAME): New macro.
17215 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
17217         PR c++/89507
17218         * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
17219         with types other than sizetype/ssizetype.
17221 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
17223         * config/sparc/sparc-opts.h (enum processor_type): Rename to...
17224         (enum sparc_processor_type): ...this.
17225         (enum sparc_code_model_type): New enumeration type.
17226         (enum sparc_memory_model_type): Tweak comments.
17227         * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
17228         (mtune): Likewise.
17229         (mcmodel): Use sparc_code_model enumeration and variable.
17230         (sparc_code_model): New enumeration.
17231         (mdebug): Add Undocumented marker.
17232         * config/sparc/sparc.h (enum cmodel): Delete.
17233         (sparc_cmodel): Likewise.
17234         (TARGET_CM_MEDLOW): Adjust to above renaming.
17235         (TARGET_CM_MEDMID): Likewise.
17236         (TARGET_CM_MEDANY): Likewise.
17237         (TARGET_CM_EMBMEDANY): Likewise.
17238         * config/sparc/sparc.c (sparc_cmodel): Delete.
17239         (sparc_option_override): Remove string/value mapping support for the
17240         code model.  Move code and memory model support to after the handling
17241         of target flags.  Do private machine setup last.
17242         (sparc_emit_set_symbolic_const64): Use sparc_code_model.
17243         (sparc_legitimize_reload_address): Likewise.
17244         (sparc_output_mi_thunk): Likewise.
17245         * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
17247 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
17249         PR tree-optimization/89500
17250         * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
17251         (handle_builtin_strlen): Remove noncst_bound variable.  Always
17252         optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
17253         cst if the first cst bytes starting at x are known to be non-zero,
17254         even if the string is not zero terminated.  Don't try to modify
17255         *si for strnlen.  Update strlen_to_stridx only for strlen or if
17256         we can prove strnlen returns the same value as strlen would.
17258 2019-02-26  Martin Liska  <mliska@suse.cz>
17260         * alloc-pool.h (struct pool_usage): Remove extra
17261         print_dash_line.
17262         * bitmap.h (struct bitmap_usage): Likewise.
17263         * ggc-common.c (struct ggc_usage): Likewise.
17264         * mem-stats.h (struct mem_usage): Likewise.
17265         (mem_alloc_description::dump): Print dash lines
17266         here and repeat header at the end of a table report.
17267         It's then more readable.
17268         * tree-phinodes.c (phinodes_print_statistics): Make
17269         horizontal alignment.
17270         * tree-ssanames.c (ssanames_print_statistics): Likewise.
17271         * vec.c (struct vec_usage): Remove extra print_dash_line.
17272         * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
17274 2019-02-26  Uroš Bizjak  <ubizjak@gmail.com>
17276         * doc/extend.texi (__builtin_object_size):
17277         Use @pxref instead of @xref inside parenthesis.
17278         (__builtin_has_attribute): Add missing comma after @xref.
17279         (__builtin_object_size): Ditto.
17280         * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
17282 2019-02-26  Jeff Law  <law@redhat.com>
17284         PR rtl-optimization/87761
17285         * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
17286         detect obviously dead insns and delete them.
17288 2019-02-26  Richard Biener  <rguenther@suse.de>
17290         PR tree-optimization/89505
17291         * tree-ssa-structalias.c (compute_dependence_clique): Make sure
17292         to handle restrict pointed-to vars with multiple subvars
17293         correctly.
17295 2019-02-26  Richard Biener  <rguenther@suse.de>
17297         PR tree-optimization/89489
17298         * tree-parloops.c (create_loop_fn): Copy over last_clique.
17300 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
17302         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
17303         and move around comment.
17304         <BIT_AND_EXPR>: Likewise.
17305         <BIT_NOT_EXPR>: Add specific handling for boolean types.
17307 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
17309         PR target/89474
17310         * config/i386/i386.c (remove_partial_avx_dependency): Call
17311         df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
17312         after changing possibly many instructions to use that pseudo.  Fix up
17313         insertion of v4sf_const0 setter at the start of bb.
17315 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
17317         PR c/80409
17318         * doc/extend.texi (Variadic Pointer Args): New section.
17320 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
17321             Martin Sebor  <msebor@gmail.com>
17323         * common.opt (Wattribute-alias): Likewise.
17324         * doc/invoke.texi (Option Summary): List general form of
17325         -Wattribute-alias=.  List positive form of -Wmissing-attributes.
17326         (-Wmissing-attributes): Invert entry, rewrite and correct default.
17327         Add cross-references.
17328         (-Wattribute-alias): Rewrite and correct default.  Mention
17329         considered attributes (same as for -Wmissing-attributes).
17331 2019-02-25  Paul A. Clarke  <pc@us.ibm.com>
17333         * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
17334         (_mm_cvtpd_ps): Likewise.
17335         (_mm_cvttpd_epi32): Likewise.
17337         PR target/89338
17338         * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
17339         (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
17341         PR target/89339
17342         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
17344 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
17346         PR target/88530
17347         * common/config/aarch64/aarch64-common.c
17348         (struct aarch64_option_extension): Add is_synthetic.
17349         (all_extensions): Use it.
17350         (TARGET_OPTION_INIT_STRUCT): Define hook.
17351         (struct gcc_targetm_common): Moved to end.
17352         (all_extensions_by_on): New.
17353         (opt_ext_cmp, typedef opt_ext): New.
17354         (aarch64_option_init_struct): New.
17355         (aarch64_contains_opt): New.
17356         (aarch64_get_extension_string_for_isa_flags): Output smallest set.
17357         * config/aarch64/aarch64-option-extensions.def
17358         (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
17359         (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
17360         sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
17361         Set is_synthetic to false.
17362         (crypto): Set is_synthetic to true.
17363         * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
17364         SYNTHETIC.
17366 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
17368         * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
17369         vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
17370         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
17371         vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
17372         vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
17373         vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
17374         vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
17375         vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
17376         Rename ...
17377         (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
17378         vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
17379         vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
17380         vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
17381         vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
17382         vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
17383         vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
17384         vfmlsl_laneq_high_f16): ... To this.
17385         * config/arm/neon.md: Update comments.
17387 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
17389         * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
17390         vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
17391         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
17392         vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
17393         vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
17394         vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
17395         vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
17396         vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
17397         Rename ...
17398         (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
17399         vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
17400         vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
17401         vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
17402         vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
17403         vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
17404         vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
17405         vfmlslq_laneq_high_f16): ... To this.
17407 2019-02-25  Alexander Monakov  <amonakov@ispras.ru>
17409         PR rtl-optimization/86096
17410         * df-scan.c (df_mw_compare): Do not check mw_reg fields when
17411         comparing mw_order values.
17413 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
17415         PR target/89434
17416         * config/arm/arm.md (*subsi3_carryin_const): Use
17417         arm_neg_immediate_operand predicate instead of
17418         arm_not_immediate_operand, "L" constraint instead of "K" and
17419         print it using %n2 instead of %B2.
17420         (*subsi3_carryin_const0): New define_insn.
17421         (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
17422         instead of arm_not_operand and "I" constraint instead of "K" and
17423         print it using %n3 instead of %B2.  Instead of using match_dup 2 add
17424         another match_operand and in the condition check that it is negation
17425         of operands[2].
17426         (*subsi3_carryin_compare_const0): New define_ins.
17427         (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
17428         *subsi3_carryin_const.
17429         (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
17430         split into *subsi3_carryin_compare_const0 if the highpart is zero.
17432         PR target/89438
17433         * config/arm.vfp.md (*negdf2_vfp): Use
17434         gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
17435         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
17437 2019-02-24  Jakub Jelinek  <jakub@redhat.com>
17439         PR rtl-optimization/89445
17440         * simplify-rtx.c (simplify_ternary_operation): Don't use
17441         simplify_merge_mask on operands that may trap.
17442         * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
17443         SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
17444         second operand is CONST_VECTOR, check if any element could be zero.
17445         Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
17446         their operands can trap.
17448 2019-02-23  Martin Sebor  <msebor@redhat.com>
17450         * gimple-ssa-sprintf.c (target_strtol): Rename...
17451         (target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
17452         (parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
17453         check for range error.
17455 2019-02-23  H.J. Lu  <hongjiu.lu@intel.com>
17457         PR driver/69471
17458         * opts-common.c (prune_options): Also prune joined switches
17459         with Negative and RejectNegative.
17460         * config/i386/i386.opt (march=): Add Negative(march=).
17461         (mtune=): Add Negative(mtune=).
17462         * doc/options.texi: Document Negative used together with Joined
17463         and RejectNegative.
17465 2019-02-22  Martin Sebor  <msebor@redhat.com>
17467         * doc/extend.texi (Other Builtins): Add
17468         __builtin_is_constant_evaluated.
17470 2019-02-22  Richard Biener  <rguenther@suse.de>
17472         PR tree-optimization/87609
17473         * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
17475 2019-02-22  Jeff Law  <law@redhat.com>
17477         PR rtl-optimization/87761
17478         * config/mips/mips.md: Add new combiner pattern to recognize
17479         a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
17481 2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
17483         PR target/89324
17484         * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
17485         destination register in peepholes generating patterns for ADDS/SUBS.
17486         (add<mode>3_compare0,
17487         *addsi3_compare0_uxtw, add<mode>3_compareC,
17488         add<mode>3_compareV_imm, add<mode>3_compareV,
17489         *adds_<optab><ALLX:mode>_<GPI:mode>,
17490         *subs_<optab><ALLX:mode>_<GPI:mode>,
17491         *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
17492         *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
17493         *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
17494         *sub<mode>3_compare0, *subsi3_compare0_uxtw,
17495         sub<mode>3_compare1): Allow stack pointer for source register.
17496         * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
17498 2019-02-22  Martin Sebor  <msebor@redhat.com>
17500         PR tree-optimization/88993
17501         PR tree-optimization/88853
17502         * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
17503         New helper.
17504         (sprintf_dom_walker::call_info::is_string_func): New helper.
17505         (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
17506         for formatted string functions.
17507         (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
17509 2019-02-22  Martin Sebor  <msebor@redhat.com>
17511         PR c/89425
17512         * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
17513         unreachable subexpressions.
17515 2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
17516             Hongtao Liu  <hongtao.liu@intel.com>
17517             Sunil K Pandey  <sunil.k.pandey@intel.com>
17519         PR target/87007
17520         * config/i386/i386-passes.def: Add
17521         pass_remove_partial_avx_dependency.
17522         * config/i386/i386-protos.h
17523         (make_pass_remove_partial_avx_dependency): New.
17524         * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
17525         New function.
17526         (pass_data_remove_partial_avx_dependency): New.
17527         (pass_remove_partial_avx_dependency): Likewise.
17528         (make_pass_remove_partial_avx_dependency): Likewise.
17529         * config/i386/i386.md (avx_partial_xmm_update): New attribute.
17530         (*extendsfdf2): Add avx_partial_xmm_update.
17531         (truncdfsf2): Likewise.
17532         (*float<SWI48:mode><MODEF:mode>2): Likewise.
17533         (SF/DF conversion splitters): Disabled for TARGET_AVX.
17535 2019-02-22  Aldy Hernandez  <aldyh@redhat.com>
17537         PR middle-end/85598
17538         * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
17539         analysis for pass.
17541 2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>
17543         PR target/89444
17544         * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
17545         (PTA_SKYLAKE): Add PTA_AES.
17546         (PTA_GOLDMONT): Likewise.
17548 2019-02-22  Sudakshina Das  <sudi.das@arm.com>
17550         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
17551         instruction if enabled.
17552         (aarch64_override_options): Remove reference to return address key.
17554 2019-02-22  Richard Biener  <rguenther@suse.de>
17556         PR tree-optimization/89440
17557         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
17558         not necessary assert.
17560 2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
17562         PR fortran/72741
17563         * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
17564         (oacc_replace_fn_attrib_attr): ... this new function.
17565         * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
17566         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
17568 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17570         * config/arm/arm-cpus.in (ares): Rename to...
17571         (neoverse-n1): ... This.  Add ares as alias.
17572         * config/arm/arm-tables.opt: Regenerate.
17573         * config/arm/arm-tune.md: Likewise.
17574         * doc/invoke.txt (ARM Options): Document neoverse-n1.
17576 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17578         * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
17579         * config/aarch64/aarch64-tune.md: Regenerate.
17580         * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
17582 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17584         * config/aarch64/aarch64.c (ares_tunings): Rename to...
17585         (neoversen1_tunings): ... This.
17586         * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
17587         (neoverse-n1): New CPU.
17588         * config/aarch64/aarch64-tune.md: Regenerate.
17589         * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
17591 2019-02-22  Richard Biener  <rguenther@suse.de>
17593         PR middle-end/87609
17594         * cfghooks.h (dependence_hash): New typedef.
17595         (struct copy_bb_data): New type.
17596         (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
17597         (duplicate_block): Likewise.
17598         * cfghooks.c (duplicate_block): Pass down copy_bb_data.
17599         (copy_bbs): Create and pass down copy_bb_data.
17600         * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
17601         (rtl_duplicate_bb): Likewise.
17602         * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
17603         remap dependence info.
17605 2019-02-22  Richard Biener  <rguenther@suse.de>
17607         PR tree-optimization/87609
17608         * tree-core.h (tree_base): Document special clique values.
17609         * tree-inline.c (remap_dependence_clique): Do not use the
17610         special clique value of one.
17611         (maybe_set_dependence_info): Use clique one.
17612         (clear_dependence_clique): New callback.
17613         (compute_dependence_clique): Clear clique one from all refs
17614         before assigning it (again).
17616 2019-02-21  Martin Sebor  <msebor@redhat.com>
17618         * doc/extend.texi (__clear_cache): Correct signature.
17620 2019-02-21  Ian Lance Taylor  <iant@golang.org>
17622         PR go/89170
17623         * varasm.c (decode_addr_const): Call lookup_constant_def rather
17624         than output_constant_def.
17625         (add_constant_to_table): New static function.
17626         (output_constant_def): Call add_constant_to_table.
17627         (tree_output_constant_def): Likewise.
17629 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
17631         PR c++/89285
17632         * builtins.c (fold_builtin_arith_overflow): If first two args are
17633         INTEGER_CSTs, set intres and ovfres to constants rather than calls
17634         to ifn.
17636 2019-02-21  H.J. Lu  <hongjiu.lu@intel.com>
17638         PR target/87412
17639         * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
17640         error for -mindirect-branch/-mfunction-return with incompatible
17641         -fcf-protection.
17643 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
17645         PR bootstrap/88714
17646         * constraints.md (q): Remove.
17647         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
17648         instead of q.
17650 2019-02-21  Martin Jambor  <mjambor@suse.cz>
17652         PR hsa/89302
17653         * omp-general.c (omp_extract_for_data): Removed a duplicate call
17654         to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
17655         (omp_adjust_for_condition): ...here.  Added necessary parameters.
17656         * omp-general.h (omp_adjust_for_condition): Updated declaration.
17657         * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
17658         proper values to new parameters of omp_adjust_for_condition.
17660 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
17662         PR middle-end/89412
17663         * expr.c (expand_assignment): If result is a MEM, use change_address
17664         instead of simplify_gen_subreg.
17666 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
17667             David Malcolm  <dmalcolm@redhat.com>
17669         PR middle-end/89091
17670         * fold-const.c (decode_field_reference): Return NULL_TREE if
17671         lang_hooks.types.type_for_size returns NULL.  Check it before
17672         overwriting *exp_.  Use return NULL_TREE instead of return 0.
17674 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
17676         PR middle-end/88074
17677         PR middle-end/89415
17678         * toplev.c (do_compile): Double the emin/emax exponents to workaround
17679         buggy mpc_norm.
17681 2019-02-20  Uroš Bizjak  <ubizjak@gmail.com>
17683         PR target/89397
17684         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
17685         TARGET_SSE in addition to TARGET_SSE_MATH.
17687         (ix86_excess_precision): Ditto.
17688         (ix86_float_exceptions_rounding_supported_p): Ditto.
17689         (use_rsqrt_p): Ditto.
17690         * config/i386/sse.md (rsqrt<mode>2): Ditto.
17692 2019-02-20  David Malcolm  <dmalcolm@redhat.com>
17694         PR c/89410
17695         * diagnostic-show-locus.c (layout::calculate_line_spans): Use
17696         linenum_arith_t when determining if two adjacent line spans are
17697         close enough to merge.
17698         (diagnostic_show_locus): Use linenum_arith_t when iterating over
17699         lines within each line_span.
17701 2019-02-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
17703         PR target/86487
17704         * lra-constraints.c(uses_hard_regs_p): Fix handling of
17705         paradoxical SUBREGS.
17707 2019-02-20  Li Jia He  <helijia@linux.ibm.com>
17709         PR target/88100
17710         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
17711         <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
17712         ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
17713         range checking it.
17715 2019-02-19  Jonathan Wakely  <jwakely@redhat.com>
17717         * config/gcn/gcn.c (print_operand): Fix typo.
17719 2019-02-19  Richard Biener  <rguenther@suse.de>
17721         PR middle-end/88074
17722         * toplev.c (do_compile): Initialize mpfr's exponent range
17723         based on available float modes.
17725 2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
17727         * rtlanal.c (get_initial_register_offset): Fall back to the estimate
17728         as long as the epilogue isn't completed.
17730 2019-02-18  Martin Sebor  <msebor@redhat.com>
17732         * doc/cpp.texi (Conditional syntax): Add __has_attribute,
17733         __has_cpp_attribute, and __has_include.
17735 2019-02-18  Martin Sebor  <msebor@redhat.com>
17737         * doc/invoke.texi (-Wreturn-type): Correct and expand.
17739 2019-02-18  Martin Sebor  <msebor@redhat.com>
17741         PR middle-end/89294
17742         * tree.c (valid_constant_size_p): Avoid assuming size is a constant
17743         expression.
17744         * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
17746 2019-02-18  Richard Biener  <rguenther@suse.de>
17748         PR tree-optimization/89296
17749         * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
17750         of no-warning flag to cases that might emit the bogus warning.
17752 2019-02-18  Jakub Jelinek  <jakub@redhat.com>
17754         PR bootstrap/88714
17755         * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
17756         "q" constraint.
17757         * config/arm/vfp.md (*movdi_vfp): Likewise.
17758         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
17759         "q" constraint for operands[0].
17761         PR target/89369
17762         * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
17763         *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
17764         pattern in a temporary buffer.
17765         (*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
17766         than 64-operands[2].
17768         PR target/89361
17769         * config/s390/s390.c (s390_indirect_branch_attrvalue,
17770         s390_indirect_branch_settings): Define unconditionally.
17771         (s390_set_current_function): Likewise, but guard the whole body except
17772         the s390_indirect_branch_settings call with
17773         #if S390_USE_TARGET_ATTRIBUTE.
17774         (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
17776         * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
17777         *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
17778         Use HOST_WIDE_INT_M1U instead of ~(0ULL).
17779         (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
17780         HOST_WIDE_INT_1U instead of 1ULL.
17781         (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
17782         to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
17783         (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
17784         z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
17785         instead of 1UL.
17786         (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
17787         instead of 1ul.
17789 2019-02-18  Martin Jambor  <mjambor@suse.cz>
17791         PR tree-optimization/89209
17792         * tree-sra.c (create_access_replacement): New optional parameter
17793         reg_tree.  Use it as a type if non-NULL and access type is not of
17794         a register type.
17795         (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
17796         to create_access_replacement.
17797         (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
17798         Check lacc is non-NULL before attempting to re-create it on the RHS.
17800 2019-02-18  Martin Liska  <mliska@suse.cz>
17802         PR ipa/89306
17803         * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
17804         by default.
17805         (symbol_table::free_edge): Recycle m_summary_id.
17806         * cgraph.h (get_summary_id): New.
17807         (symbol_table::release_symbol): Set m_summary_id to -1
17808         by default.
17809         (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
17810         * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
17811         function_summary to fast_function_summary.
17812         * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
17813         * ipa-pure-const.c (class funct_state_summary_t):
17814         Switch from function_summary to fast_function_summary.
17815         * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
17816         (class ipa_ref_opt_summary_t): Switch from function_summary
17817         to fast_function_summary.
17818         * symbol-summary.h (class function_summary_base): New class
17819         that is created from base of former function_summary.
17820         (function_summary_base::unregister_hooks): New.
17821         (class function_summary): Inherit from function_summary_base.
17822         (class call_summary_base): New class
17823         that is created from base of former call_summary.
17824         (class call_summary): Inherit from call_summary_base.
17825         (struct is_same): New.
17826         (class fast_function_summary): New summary class.
17827         (class fast_call_summary): New summary class.
17828         * vec.h (vec_safe_grow_cleared): New function.
17830 2019-02-18  Martin Liska  <mliska@suse.cz>
17832         * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
17833         (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
17834         * doc/tm.texi: Document new target hook.
17835         * doc/tm.texi.in: Likewise.
17836         * target.def: Add new target macro.
17837         * gcc.c (find_fortran_preinclude_file): Do not search multilib
17838         suffixes.
17840 2019-02-17  Alan Modra  <amodra@gmail.com>
17842         PR target/89271
17843         * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
17844         output reg on add insn.
17845         (<bd>tf_<mode> split): Likewise.  Match predicates with insn.
17847 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
17849         PR target/89372
17850         * config/i386/sse.md (ssedoublemode): Remove V4HI.
17851         (PMULHRSW): Likewise.
17852         (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
17853         TARGET_AVX2.
17854         (ssse3_pmulhrswv4hi3): New expander.
17856 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
17858         * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
17859         MMX.  Add isa attribute.
17861 2019-02-16  Jakub Jelinek  <jakub@redhat.com>
17863         PR rtl-optimization/66152
17864         * builtins.h (c_readstr): Declare.
17865         * builtins.c (c_readstr): Remove forward declaration.  Add
17866         null_terminated_p argument, if false, read all bytes from the
17867         string instead of stopping after '\0'.
17868         * expr.c (string_cst_read_str): New function.
17869         (store_expr): Use string_cst_read_str instead of
17870         builtin_strncpy_read_str.  Try to store by pieces the whole
17871         exp_len first, and only if that fails, split it up into
17872         store by pieces followed by clear_storage.  Formatting fix.
17874         * config/i386/i386.md (*movqi_internal): Remove static from
17875         buf variable.  Use output_asm_insn (buf, operands); return "";
17876         instead of return buf;.
17877         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
17878         *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
17879         *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
17881 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
17883         * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
17884         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
17885         * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
17886         (CC1_SPEC): Likewise.
17887         * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
17889 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
17891         * asan.c (asan_emit_stack_protection): Use full-sized mask to align
17892         the base address on 64-bit strict-alignment platforms.
17894 2019-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17896         * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
17898 2019-02-15  Uroš Bizjak  <ubizjak@gmail.com>
17900         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
17902 2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>
17904         PR rtl-optimization/88308
17905         * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
17906         on copied instruction.
17908 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
17910         * final.c (insn_current_reference_address): Replace test on JUMP_P
17911         with test on jump_to_label_p.
17912         * config/visium/visium-passes.def: New file.
17913         * config/visium/t-visium (PASSES_EXTRA): Define.
17914         * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
17915         * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
17916         (TRAMPOLINE_ALIGNMENT): Define.
17917         * config/visium/visium.c (visium_option_override): Do not register
17918         the machine-specific reorg pass here.
17919         (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
17920         for the GR6.
17921         (output_branch): Adjust threshold for long branch instruction.
17922         * config/visium/visium.md (cpu): Move around.
17923         (length): Adjust for the GR6.
17925 2019-02-15  Richard Biener  <rguenther@suse.de>
17926             Jakub Jelinek  <jakub@redhat.com>
17928         PR tree-optimization/89278
17929         * tree-loop-distribution.c: Include tree-eh.h.
17930         (generate_memset_builtin, generate_memcpy_builtin): Call
17931         rewrite_to_non_trapping_overflow on builtin->size before passing it
17932         to force_gimple_operand_gsi.
17934 2019-02-15  Jakub Jelinek  <jakub@redhat.com>
17936         PR other/89342
17937         * optc-save-gen.awk: Handle optimize_fast like optimize_size or
17938         optimize_debug.
17939         * opth-gen.awk: Likewise.
17941 2019-02-15  Uroš Bizjak  <ubizjak@gmail.com>
17943         * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
17944         Enable MMX, SSE and SSE2 by default.
17945         * config/i386/i386.c (ix86_option_override_internal): Do not
17946         explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
17948 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
17950         PR rtl-optimization/89354
17951         * combine.c (make_extraction): Punt if extraction_mode is narrower
17952         than len bits.
17954 2019-02-14  Maya Rashish  <coypu@sdf.org>
17956         * config.gcc (*-*-netbsd*): Add netbsd-d.o.
17957         * config/netbsd-d.c: New file.
17958         * config/t-netbsd: Add netbsd-d.o
17960 2018-02-14  Steve Ellcey  <sellcey@marvell.com>
17962         * config/aarch64/aarch64.c (aarch64_attribute_table): Change
17963         affects_type_identity to true for aarch64_vector_pcs.
17964         (aarch64_comp_type_attributes): New function.
17965         (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
17967 2019-02-14  Tamar Christina  <tamar.christina@arm.com>
17969         PR target/88850
17970         * config/arm/iterators.md (ANY64): Add V4HF.
17972 2019-02-14  Martin Liska  <mliska@suse.cz>
17974         PR rtl-optimization/89242
17975         * dce.c (delete_unmarked_insns): Call free_dominance_info we
17976         process a transformation.
17978 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
17980         PR tree-optimization/89314
17981         * fold-const.c (fold_binary_loc): Cast strlen argument to
17982         const char * before dereferencing it.  Formatting fixes.
17984         PR middle-end/89284
17985         * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
17987 2019-02-13  Ian Lance Taylor  <iant@golang.org>
17989         * optc-save-gen.awk: Set var_opt_hash for initial optimizations
17990         and set current index for other optimizations.
17992 2019-02-13  Uroš Bizjak  <ubizjak@gmail.com>
17994         * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
17995         nonimmediate_operand as operand 2 predicate.
17996         (vec_set<VF2_512_256:mode>_0): Ditto.
17997         (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
17998         (*vec_concatv2si): Remove alternative 2.
17999         (*vec_concatv4si_0): Use vm constraint for alternative 0.
18000         (*vec_concatv4si_0): Remove preferred_for_speed attribute.
18001         (vec_concatv2di): Split alternatives 4,5,6 to ...
18002         (*vec_concatv2di_0) ... new pattern.
18004 2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
18006         PR target/89190
18007         * config/arm/arm.c (ldm_stm_operation_p) Set
18008         addr_reg_in_reglist correctly for first register.
18009         (load_multiple_sequence): Remove dead base check.
18010         (gen_ldm_seq): Correctly set write_back for Thumb-1.
18012 2019-02-13  Tamar Christina  <tamar.christina@arm.com>
18014         PR target/88847
18015         * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
18016         Expose as @aarch64_pred_mov.
18017         * config/aarch64/aarch64.c (aarch64_classify_address):
18018         Use expand_insn which legitimizes operands.
18020 2019-02-13  Martin Liska  <mliska@suse.cz>
18022         * builtins.h (expand_builtin_with_bounds): Remove declaration.
18023         * calls.c (struct arg_data): Remove special_slot, pointer_arg
18024         and pointer_offset fields.
18025         (initialize_argument_information): Remove usage of dead
18026         fields.
18027         * cgraph.h (struct cgraph_thunk_info): Remove
18028         add_pointer_bounds_args.
18029         * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
18030         fields.
18031         (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
18032         fields.
18033         * config/i386/i386.c (ix86_function_arg_advance): Remove
18034         unrelated comment.
18035         (struct builtin_isa): Remove leaf_p and nothrow_p fields.
18036         (def_builtin): Remove usage of dead fields.
18037         (ix86_add_new_builtins): Likewise.
18038         * ipa-fnsummary.c (compute_fn_summary): Likewise.
18039         * ipa-icf.c (sem_function::equals_wpa): Likewise.
18040         (sem_function::init): Likewise.
18041         (sem_variable::merge): Likewise.
18042         * ipa-visibility.c (function_and_variable_visibility): Likewise.
18043         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
18044         * lto-cgraph.c (lto_output_node): Likewise.
18045         (lto_output_varpool_node): Likewise.
18046         (input_node): Likewise.
18047         (input_varpool_node): Likewise.
18048         * lto-streamer-out.c (lto_output): Likewise.
18049         * tree-inline.c (expand_call_inline): Remove usage of
18050         assign_stmts.
18051         * tree-inline.h (struct copy_body_data): Likewise.
18052         * varpool.c (varpool_node::dump): Likewise.
18054 2019-02-13  Jakub Jelinek  <jakub@redhat.com>
18056         PR middle-end/89303
18057         * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
18058         into pt->vars_contains_escaped_heap instead of setting
18059         pt->vars_contains_escaped_heap to it.
18061         PR middle-end/89281
18062         * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
18063         INTVAL (size), compare it to GET_MODE_MASK instead of
18064         1 << GET_MODE_BITSIZE.
18066         PR target/89290
18067         * config/i386/predicates.md (x86_64_immediate_operand): Allow
18068         TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
18069         -mcmodel=large.
18071 2019-02-13  Martin Liska  <mliska@suse.cz>
18073         PR lto/88858
18074         * cfgrtl.c (remove_barriers_from_footer): New function.
18075         (try_redirect_by_replacing_jump): Use it.
18076         (cfg_layout_redirect_edge_and_branch): Likewise.
18078 2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
18080         * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
18081         vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
18082         * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
18083         (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
18084         * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
18085         (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
18086         New BU_CRYPTO_2.
18087         * config/rs6000/rs6000.c (builtin_function_type)
18088         <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
18089         CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
18090         CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
18091         * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
18092         vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
18094 2019-02-12  Pat Haugen  <pthaugen@us.ibm.com>
18096         * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
18097         -maltivec. Delete -maltivec=be and -maltivec=le documentation.
18099 2019-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18101         PR target/89229
18102         * config/i386/i386.md (*movoi_internal_avx): Revert revision
18103         268678 and revision 268657.
18104         (*movti_internal): Likewise.
18106 2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>
18108         PR target/89233
18109         * config/s390/s390.c (s390_decompose_address): Update comment.
18110         (s390_check_qrst_address): Reject invalid address forms after
18111         LRA.
18113 2019-02-12  Martin Liska  <mliska@suse.cz>
18115         PR lto/88876
18116         * ipa-pure-const.c (propagate_pure_const): Revert hunk as
18117         we need default values of funct_state for a function that
18118         is not optimized.
18120 2019-02-12  Eric Botcazou  <ebotcazou@adacore.com>
18122         * asan.c (asan_expand_mark_ifn): Take into account the alignment of
18123         the object to pick the size of stores on strict-alignment platforms.
18125         * config/sparc/sparc.md (*movsi_insn): Minor tweak.
18126         (*movdi_insn_sp32): Likewise.
18127         (*movdi_insn_sp64): Likewise.
18129 2019-02-12  Jan Hubicka  <hubicka@ucw.cz>
18131         PR lto/88677
18132         * cgraphunit.c (analyze_functions): Clear READONLY flag for external
18133         types that needs constructiong.
18134         * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
18136 2019-02-12  Richard Biener  <rguenther@suse.de>
18138         PR tree-optimization/89253
18139         * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
18140         duplicate the loop.
18142 2019-02-11  David Malcolm  <dmalcolm@redhat.com>
18144         PR lto/88147
18145         * input.c (selftest::test_line_offset_overflow): New selftest.
18146         (selftest::input_c_tests): Call it.
18148 2019-02-11  Martin Sebor  <msebor@redhat.com>
18150         PR tree-optimization/88771
18151         * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
18152         when -Wstringop-overflow is set.
18153         (builtin_memref::builtin_memref): Adjust excessive upper bound
18154         only when lower bound is not excessive.
18155         (maybe_diag_overlap): Detect and diagnose excessive bounds via
18156         -Wstringop-ovefflow.
18157         (maybe_diag_offset_bounds): Rename...
18158         (maybe_diag_access_bounds): ...to this.
18159         (check_bounds_or_overlap): Adjust for name change above.
18161 2019-02-11  Martin Sebor  <msebor@redhat.com>
18163         PR c++/87996
18164         * builtins.c (max_object_size): Move from here...
18165         * builtins.h (max_object_size): ...and here...
18166         * tree.c (max_object_size): ...to here...
18167         * tree.h (max_object_size): ...and here.
18169 2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
18171         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
18172         and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
18173         for correct semantics.
18175 2019-02-11  Alan Modra  <amodra@gmail.com>
18177         * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
18178         -mlongcall and -mpltseq.
18179         (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
18180         (RS/6000 and PowerPC Options <-mpltseq>): Document.
18181         * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
18182         * config/rs6000/sysv4.opt (mpltseq): New option.
18183         * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
18184         (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
18185         support is lacking.  Don't allow -mpltseq with -mbss-plt.
18186         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
18187         -mpltseq given for ELFv1.
18188         * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
18189         Only use UNSPEC_PLTSEQ for inline PLT calls.
18190         (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
18191         use UNSPEC_PLTSEQ for inline PLT calls.
18192         (rs6000_indirect_call_template_1, rs6000_longcall_ref),
18193         (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
18194         uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
18195         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
18196         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
18197         (pltseq_mtctr_<mode>): Likewise.
18199 2019-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18201         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
18202         Solaris ld.
18203         * configure: Regenerate.
18205 2019-02-11  Jakub Jelinek  <jakub@redhat.com>
18207         PR bootstrap/88714
18208         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
18209         instead of r.
18211 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
18213         * function.c (assign_parm_setup_block): Use the stored
18214         size, not the passed size, when allocating stack-space,
18215         also for a parameter with alignment larger than
18216         MAX_SUPPORTED_STACK_ALIGNMENT.
18218 2019-02-11  Martin Liska  <mliska@suse.cz>
18220         PR ipa/89009
18221         * ipa-cp.c (build_toporder_info): Remove usage of a param.
18222         * ipa-inline.c (inline_small_functions): Likewise.
18223         * ipa-pure-const.c (propagate_pure_const): Likewise.
18224         (propagate_nothrow): Likewise.
18225         * ipa-reference.c (propagate): Likewise.
18226         * ipa-utils.c (struct searchc_env): Remove unused field.
18227         (searchc): Always search across AVAIL_INTERPOSABLE.
18228         (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
18229         the only called IPA pure const can properly not propagate
18230         across interposable boundary.
18231         * ipa-utils.h (ipa_reduced_postorder): Remove param.
18233 2019-02-11  Chung-Ju Wu  <jasonwucj@gmail.com>
18235         * config/nds32/nds32.md (call_internal, call_value_internal,
18236         sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
18238 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
18240         * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
18241         typo.
18243 2019-02-10  H.J. Lu  <hongjiu.lu@intel.com>
18245         * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
18246         in comments
18248 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
18250         * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
18252 2019-02-10  Jakub Jelinek  <jakub@redhat.com>
18254         PR tree-optimization/89268
18255         * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
18256         if preds is non-NULL.
18258 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
18260         PR lto/89272
18261         * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
18262         polymorphic types.
18264 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
18266         * config/nds32/nds32.md (trap): New pattern.
18268 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
18270         * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
18271         dwarf span.
18273 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
18275         * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
18276         to split POST_INC.
18278 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
18280         * ipa-visibility.c (localize_node): Also do not localize
18281         LDPR_PREVAILING_DEF_IRONLY_EXP.
18283 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
18285         PR lto/87957
18286         * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
18287         instead of type_with_linkage.
18289 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
18291         PR ipa/88755
18292         * params.def (uninlined-function-insns, uninlined-function-time,
18293         uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
18294         bound so we don't get overflows.
18296 2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
18298         * config/rs6000/rs6000-string.c (expand_compare_loop,
18299         expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
18300         memcmp/strncmp.
18302 2019-02-09  Jakub Jelinek  <jakub@redhat.com>
18304         PR middle-end/89246
18305         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18306         If !node->definition and TYPE_ARG_TYPES is non-NULL, use
18307         TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
18309 2019-02-09  Alan Modra  <amodra@gmail.com>
18311         PR target/88343
18312         * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
18313         case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
18314         setup.
18316 2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>
18318         PR middle-end/88560
18319         * lra-constraints.c (process_alt_operands): Don't increase reject
18320         for memory when offset memory is required.
18322 2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>
18324         * config/s390/vector.md: Implement vector copysign.
18326 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
18328         * expr.c (expand_constructor): Correct indentations.
18330 2019-02-08  Richard Biener  <rguenther@suse.de>
18332         PR tree-optimization/89247
18333         * tree-if-conv.c: Include tree-cfgcleanup.h.
18334         (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
18335         (tree_if_conversion): Pass through predicate vector.
18336         (pass_if_conversion::execute): Do CFG cleanup and SSA update
18337         inline, see if any if-converted loops we refrece in
18338         LOOP_VECTORIZED calls vanished and fixup.
18339         * tree-if-conv.h (tree_if_conversion): Adjust prototype.
18341 2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>
18343         * config/s390/constraints.md (jdd): New constraint.
18345 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
18347         PR target/89229
18348         * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
18349         upper 16 vector registers without TARGET_AVX512VL.
18350         (*movti_internal): Likewise.
18352 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
18354         PR rtl-optimization/89234
18355         * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
18356         is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
18357         (copy_reg_eh_region_note_backward): Likewise.
18359 2019-02-08  Richard Biener  <rguenther@suse.de>
18361         PR middle-end/89223
18362         * tree-data-ref.c (initialize_matrix_A): Fail if constant
18363         doesn't fit in HWI.
18364         (analyze_subscript_affine_affine): Handle failure from
18365         initialize_matrix_A.
18367 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
18369         * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
18370         cfun everywhere.
18372 2019-02-07  David Malcolm  <dmalcolm@redhat.com>
18374         PR tree-optimization/86637
18375         PR tree-optimization/89235
18376         * tree-vect-loop.c (optimize_mask_stores): Add an
18377         auto_purge_vect_location sentinel to ensure that vect_location is
18378         purged on exit.
18379         * tree-vectorizer.c
18380         (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
18381         (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
18382         to ensure that vect_location is purged on exit.
18383         (pass_slp_vectorize::execute): Likewise, replacing the manual
18384         reset.
18385         * tree-vectorizer.h (class auto_purge_vect_location): New class.
18387 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18389         * config/aarch64/iterators.md (max_opp): New code_attr.
18390         (USMAX): New code iterator.
18391         * config/aarch64/predicates.md (aarch64_smin): New predicate.
18392         (aarch64_smax): Likewise.
18393         * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
18394         (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
18395         MINUS (MAX MIN).
18397 2019-02-07  H.J. Lu  <hongjiu.lu@intel.com>
18399         PR target/89229
18400         * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
18401         for TARGET_AVX512VL.
18402         (*movti_internal): Set mode to TI for TARGET_AVX512VL.
18404 2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
18406         * config/s390/s390-builtin-types.def: Add new types.
18407         * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
18408         (s390_vec_xlw4): Make the memory operand into a const pointer.
18409         (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
18410         float.
18411         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
18412         a new vector type with the alignment of the scalar memory operand.
18414 2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
18415             Jakub Jelinek  <jakub@redhat.com>
18417         PR bootstrap/88714
18418         * config/arm/arm-protos.h (valid_operands_ldrd_strd,
18419         arm_count_ldrdstrd_insns): New declarations.
18420         * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
18421         MINUS.
18422         (valid_operands_ldrd_strd): New function.
18423         (arm_count_ldrdstrd_insns): New function.
18424         * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
18425         sets instead of single DImode set and define new insns to match this.
18427 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
18429         * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
18430         Make it a C initializer.
18432 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
18434         PR/target 88850
18435         * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
18437 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18439         * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
18440         Use neon_dot<q> for type.
18441         (neon_<sup>dot_lane<vsi2qi>): Likewise.
18443 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18445         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
18446         Use neon_dot<q> for type.
18447         (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
18448         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
18450 2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
18452         PR rtl-optimization/89225
18453         * lra-constaints.c (simplify_operand_subreg): Add subreg mode
18454         sizes check.
18456 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
18458         * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
18459         after restoring registers saved to allocate the frame on Windows.
18461 2019-02-06  Richard Biener  <rguenther@suse.de>
18463         PR tree-optimization/89182
18464         * graphite.h (cached_scalar_evolution_in_region): Declare.
18465         * graphite.c (struct seir_cache_key): New.
18466         (struct sese_scev_hash): Likewise.
18467         (seir_cache): New global.
18468         (cached_scalar_evolution_in_region): New function.
18469         (graphite_transform_loops): Allocate and release seir_cache.
18470         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
18471         cached_scalar_evolution_in_region.
18472         * graphite-scop-detection.c (scop_detection::can_represent_loop):
18473         Simplify.
18474         (scop_detection::graphite_can_represent_expr: Use
18475         cached_scalar_evolution_in_region.
18476         (scop_detection::stmt_simple_for_scop_p): Likewise.
18477         (find_params_in_bb): Likewise.
18478         (gather_bbs::before_dom_children): Likewise.
18479         * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
18480         (add_loop_constraints): Likewise.
18482 2019-02-06  Jakub Jelinek  <jakub@redhat.com>
18484         PR middle-end/89210
18485         * fold-const-call.c (fold_const_vec_convert): Pass true as last
18486         operand to new_unary_operation only if both element types are integral
18487         and it isn't a widening conversion.  Return NULL_TREE if
18488         new_unary_operation failed.
18490 2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
18492         PR target/88856
18493         * config/s390/s390.md: Remove load and test FP splitter.
18495 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
18497         PR target/89112
18498         * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
18499         expand_compare_loop, expand_block_compare_gpr,
18500         expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
18501         REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
18502         #include "profile-count.h" and "predict.h" for types and functions
18503         needed to work with REG_BR_PROB notes.
18505 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
18507         PR target/89112
18508         * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
18509         for the long branch case.
18511 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
18513         PR target/89188
18514         * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
18515         can throw, non-call exceptions are enabled and we can't delete
18516         dead exceptions or alter cfg.  Set must_clean if
18517         delete_insn_and_edges returns true, don't set it blindly for calls.
18518         Assert that delete_unreachable_blocks is called only if can_alter_cfg.
18520         PR rtl-optimization/89195
18521         * combine.c (make_extraction): For MEMs, don't extract bytes outside
18522         of the original MEM.
18524 2019-02-05  Martin Liska  <mliska@suse.cz>
18526         PR gcov-profile/89000
18527         * gcov.c (function_summary): Remove argument.
18528         (file_summary): New function.
18529         (print_usage): Replace tabs with spaces.
18530         (generate_results): Use new function file_summary.
18532 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
18534         PR target/89186
18535         * optabs.c (prepare_cmp_insn): Pass x and y to
18536         emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
18538 2019-02-05  Richard Biener  <rguenther@suse.de>
18540         PR middle-end/89150
18541         * bitmap.h (struct bitmap_obstack): Do not mark GTY.
18542         (struct bitmap_element): Drop chain_prev so we properly recurse on
18543         the prev member, supporting tree views.
18544         (struct bitmap_head): GTY skip the obstack member.
18546 2019-02-04  Alexander Monakov  <amonakov@ispras.ru>
18548         PR c/88698
18549         * doc/extend.texi (Vector Extensions): Add an example of using vector
18550         types together with x86 intrinsics.
18552 2019-02-04  Alan Modra  <amodra@gmail.com>
18554         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
18555         str[] size to 160, and comment.
18557 2019-02-04  Alan Modra  <amodra@gmail.com>
18559         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
18560         (rs6000_pltseq_template): Guard output of TLS markers with
18561         TARGET_TLS_MARKERS.
18562         (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
18563         (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
18564         to use inline PLT sequences.
18565         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
18566         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
18567         (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
18569 2019-02-04  Martin Liska  <mliska@suse.cz>
18571         PR ipa/88985
18572         * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
18573         out when ipa_fn_summaries does not contain entry for callee.
18575 2019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
18577         * config/sparc/sparc.h: Remove superfluous blank lines.
18578         * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
18579         (got_register_rtx): ...this.
18580         (sparc_got): Adjust to above renaming.
18581         (sparc_tls_got): Likewise.
18582         (sparc_delegitimize_address): Likewise.
18583         (sparc_output_mi_thunk): Likewise.
18584         (sparc_init_pic_reg): Likewise.
18585         (save_local_or_in_reg_p): Fix test on the GOT register.
18586         (USE_HIDDEN_LINKONCE): Move around.
18587         (get_pc_thunk_name): Likewise.
18588         (gen_load_pcrel_sym): Likewise.
18589         (load_got_register): Likewise.
18591 2019-02-04  Kito Cheng  <kito.cheng@gmail.com>
18593         * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
18594         of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
18596 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18598         * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
18599         into consideration.
18601 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18603         * config.gcc (with_nds32_lib, glibc):
18604         Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
18605         * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
18606         (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
18608 2019-02-03  Uroš Bizjak  <ubizjak@gmail.com>
18610         PR target/89071
18611         * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
18612         Do not prefer (v,v) alternative for non-AVX targets and (m,v)
18613         alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
18614         (*rcpsf2_sse): Ditto.
18615         (*rsqrtsf2_sse): Ditto.
18616         (sse4_1_round<mode<2): Ditto.
18618 2019-02-03  Richard Biener  <rguenther@suse.de>
18620         PR debug/87295
18621         * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
18622         orig.
18624 2019-02-02  Jakub Jelinek  <jakub@redhat.com>
18626         PR middle-end/87887
18627         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18628         Punt with warning on aggregate return or argument types.  Ignore
18629         type/mode checking for uniform arguments.
18631 2019-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
18633         * combine.c (try_combine): Do not print "Can't combine" messages unless
18634         printing failed combination attempts.
18636 2019-02-01  Martin Jambor  <mjambor@suse.cz>
18638         PR hsa/87863
18639         * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
18640         segment and global segment variables before making them static.
18642 2019-02-01  Martin Jambor  <mjambor@suse.cz>
18644         * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
18645         missed optimization dump with dump_enabled_p.
18647 2019-02-01  Richard Biener  <rguenther@suse.de>
18649         PR middle-end/88597
18650         * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
18651         the instantiate cache.
18652         (instantiate_scev_binary): Elide second operand procesing
18653         if equal to the first.
18654         * tree-chrec.c (chrec_contains_symbols): Add visited set.
18655         (chrec_contains_undetermined): Likewise.
18656         (tree_contains_chrecs): Likewise.
18658 2019-02-01  Jan Hubicka  <hubicka@ucw.cz>
18660         * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
18662 2019-02-01  Jakub Jelinek  <jakub@redhat.com>
18664         PR tree-optimization/89143
18665         * wide-int-range.h (wide_int_range_absu): Declare.
18666         * wide-int-range.cc (wide_int_range_absu): New function.
18667         * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
18669         PR tree-optimization/88107
18670         * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
18671         instead of assertion that eh_region_outermost is non-NULL, if it
18672         is NULL, set *ALL to true and return NULL.
18673         (move_sese_region_to_fn): Adjust caller, if all is set, call
18674         duplicate_eh_regions with NULL region.
18676 2019-02-01  Richard Biener  <rguenth@suse.de>
18678         PR rtl-optimization/88593
18679         * mode-switching.c (optimize_mode_switching): Free dominators before
18680         calling cleanup_cfg.
18682 2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
18684         PR tree-optimization/88932
18685         * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
18687 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
18689         PR middle-end/89137
18690         * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
18691         bogus clang warning.
18693 2019-01-31  Uroš Bizjak  <ubizjak@gmail.com>
18695         PR target/89071
18696         * config/i386/i386.md (*extendsfdf2): Split out reg->reg
18697         alternative to avoid partial SSE register stall for TARGET_AVX.
18698         (truncdfsf2): Ditto.
18699         (sse4_1_round<mode>2): Ditto.
18701 2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
18703         PR tree-optimization/89008
18704         * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
18705         process anything of the form X * 0.
18707 2019-01-31  Richard Biener  <rguenther@suse.de>
18709         PR tree-optimization/89135
18710         * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
18711         with abnormal preds.
18713 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
18715         PR sanitizer/89124
18716         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
18717         always_inline callees into no_sanitize_address callers.
18719 2019-01-31  Richard Biener  <rguenther@suse.de>
18721         PR rtl-optimization/89115
18722         * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
18724 2019-01-30  Martin Sebor  <msebor@redhat.com>
18726         PR other/89106
18727         * doc/extend.texi (cast to a union): Correct and expand.
18729 2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>
18731         PR rtl-optimization/87246
18732         * lra-constraints.c (simplify_operand_subreg): Reload memory
18733         in subreg if the address became invalid.
18735 2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
18737         PR target/87064
18738         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
18739         Disable for little-endian.
18741 2019-01-30  Richard Biener  <rguenther@suse.de>
18743         PR rtl-optimization/89115
18744         * opts.c (default_options_optimization): Reduce
18745         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
18746         Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
18747         to the default.
18749 2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
18751         * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
18752         Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
18753         type of vector element when vec_extract is implemented by direct
18754         move.
18756 2019-01-30  Thomas Schwinge  <thomas@codesourcery.com>
18758         * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
18760 2019-01-30  Richard Biener  <rguenther@suse.de>
18762         PR tree-optimization/89111
18763         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
18764         canonicalization to appropriately sized access types.
18766 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
18768         PR c++/89105
18769         * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
18770         for arguments to functions that are TU-local and shouldn't be
18771         referenced by assembly.
18773 2019-01-30  Ulrich Drepper  <drepper@redhat.com>
18775         * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
18776         after '='.
18778 2019-01-29  Martin Sebor  <msebor@redhat.com>
18780         PR c/88956
18781         * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
18783 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
18785         PR c++/66676
18786         PR ipa/89104
18787         * omp-simd-clone.c (simd_clone_clauses_extract)
18788         <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
18789         OMP_CLAUSE_ALIGNED_ALIGNMENT.
18791 2019-01-29  Vineet Gupta  <vgupta@synopsys.com>
18793         * config.gcc: Force .init_array for ARC.
18795 2019-01-29  Richard Biener  <rguenther@suse.de>
18797         PR debug/87295
18798         * dwarf2out.c (collect_skeleton_dies): New helper.
18799         (copy_decls_for_unworthy_types): Call it.
18800         (build_abbrev_table): Assert we do not try to replace
18801         DW_AT_signature refs with local refs.
18803 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
18805         PR middle-end/89002
18806         * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
18807         for lastprivate/linear IV, push gimplify context around gimplify_assign
18808         and, if it needed any temporaries, pop it into a gimple bind around the
18809         sequence.
18811 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18813         * common.opt (-Wattribute-alias): Remove "no-" from name.
18814         Make -Wattribute-alias command line option and
18815         #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
18817 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
18819         PR target/89073
18820         * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
18821         -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
18822         x86 ISA options.
18823         (bmi2): Add missing @opindex.
18824         * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
18825         options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
18826         avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
18827         avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
18828         avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
18829         cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
18830         fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
18831         pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
18832         sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
18833         xsavec, xsaveopt and xsaves options.
18835 2019-01-28  Richard Biener  <rguenther@suse.de>
18837         PR debug/89076
18838         * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
18839         support removal.
18841 2019-01-28  Richard Biener  <rguenther@suse.de>
18843         PR tree-optimization/88739
18844         * tree-cfg.c (verify_types_in_gimple_reference): Verify
18845         BIT_FIELD_REFs only are applied to mode-precision operands
18846         when they are integral.
18847         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
18848         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
18849         BIT_FIELD_REFs of non-mode-precision integral operands.
18851 2019-01-27  Jakub Jelinek  <jakub@redhat.com>
18853         PR target/87214
18854         * config/i386/sse.md
18855         (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
18856         avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
18857         first constants in pairs are multiples of 2.  Formatting fixes.
18858         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
18859         avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
18860         first constants in each quadruple are multiples of 4.  Formatting fixes.
18862 2019-01-26  Martin Jambor  <mjambor@suse.cz>
18864         PR ipa/88933
18865         * tree-inline.c: Include tree-cfgcleanup.h.
18866         (delete_unreachable_blocks_update_callgraph): Move...
18867         * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
18868         ...here, make externally visible, make second argument bool, adjust
18869         all callers.
18870         * tree-cfgcleanup.c: Include cgraph.h.
18871         * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
18872         Declare.
18873         * ipa-prop.c: Include tree-cfgcleanup.h.
18874         (ipcp_transform_function): Call
18875         delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
18877 2019-01-25  Vladimir Makarov  <vmakarov@redhat.com>
18879         PR rtl-optimization/88846
18880         * ira.c (process_set_for_memref_referenced_p): New.
18881         (memref_referenced_p): Add new param.  Use
18882         process_set_for_memref_referenced_p.  Add new switch cases.
18883         (memref_used_between_p): Pass new arg to memref_referenced_p.
18885 2019-01-25  Richard Earnshaw  <rearnsha@arm.com>
18887         PR target/88469
18888         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
18889         argument ABI_BREAK.  Set to true if the calculated alignment has
18890         changed in gcc-9.  Check bit-fields for their base type alignment.
18891         (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
18892         (aarch64_function_arg_boundary): Likewise.
18893         (aarch64_gimplify_va_arg_expr): Likewise.
18895 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
18897         PR middle-end/89037
18898         * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
18899         instead of accessing TREE_INT_CST_ELT directly.
18901 2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
18903         * doc/sourcebuild.texi (Environment attributes): Add fenv and
18904         fenv_exceptions description.
18906 2019-01-25  Wilco Dijkstra  <wdijkstr@arm.com>
18908         PR rtl-optimization/87763
18909         * config/aarch64/aarch64.c (aarch64_select_cc_mode):
18910         Allow SUBREG when matching CC_NZmode compare.
18912 2019-01-25  Richard Biener  <rguenther@suse.de>
18914         PR tree-optimization/89049
18915         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
18916         Look at the pattern stmt to determine if the stmt is vectorized.
18918 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
18920         * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
18921         (pred_mov<mode>): Handle all-register forms using both a new
18922         alternative and a split.
18924 2019-01-25  Richard Biener  <rguenther@suse.de>
18926         PR tree-optimization/86865
18927         * graphite-scop-detection.c (scop_detection::can_represent_loop):
18928         Reject non-do-while loops.
18930 2019-01-24  Peter Bergner  <bergner@linux.ibm.com>
18932         * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
18933         * config/rs6000/constraints.md (Q constraint): Use REG_P.
18934         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
18935         * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
18936         SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
18937         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
18938         * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
18939         vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
18940         vlogical_operand, gpc_reg_operand, int_reg_operand,
18941         int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
18942         (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
18943         cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
18944         (save_world_operation, restore_world_operation, lmw_operation,
18945         stmw_operation): Use MEM_P and REG_P.
18946         (tie_operand): Use MEM_P.
18947         (vrsave_operation, crsave_operation): Use REG_P.
18948         (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
18949         (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
18950         (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
18951         (call_operand): Use HARD_REGISTER_P.
18952         (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
18953         Use CONST_INT_P.
18954         (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
18955         * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
18956         quad_aligned_load_p, replace_swapped_aligned_store,
18957         recombine_lvx_pattern, replace_swapped_aligned_load,
18958         recombine_stvx_pattern): Use MEM_P.
18959         (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
18960         Use MEM_P and SYMBOL_REF_P.
18961         (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
18962         (insn_is_swappable_p): Use REG_P and MEM_P.
18963         (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
18964         * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
18965         Use CONST_INT_P.
18966         * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
18967         Use CONST_DOUBLE_P.
18968         (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
18969         CONST_WIDE_INT_P.
18970         (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
18971         CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
18972         (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
18973         HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
18974         reg_or_subregno:
18975         (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
18976         (easy_altivec_constant, rs6000_legitimate_offset_address_p,
18977         rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
18978         rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
18979         rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
18980         rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
18981         rs6000_split_logical_di): Use CONST_INT_P.
18982         (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
18983         REG_P and SYMBOL_REF_P.
18984         (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
18985         (print_operand): Use CONST_INT_P, MEM_P and REG_P.
18986         (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
18987         mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
18988         (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
18989         (small_data_operand, print_operand_address): Use CONST_INT_P and
18990         SYMBOL_REF_P.
18991         (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
18992         (rs6000_init_hard_regno_mode_ok, direct_move_p):
18993         Use HARD_REGISTER_NUM_P.
18994         (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
18995         (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
18996         SUBREG_P and SYMBOL_REF_P.
18997         (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
18998         and HARD_REGISTER_NUM_P.
18999         (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
19000         reg_or_subregno.
19001         (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
19002         (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
19003         MEM_P and REG_P.
19004         (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
19005         registers_ok_for_quad_peep, rs6000_output_function_epilogue,
19006         find_addr_reg): Use REG_P.
19007         (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
19008         (rs6000_emit_le_vsx_move): Use SUBREG_P.
19009         (offsettable_ok_by_alignment, constant_pool_expr_p,
19010         legitimate_small_data_p, rs6000_output_dwarf_dtprel,
19011         rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
19012         rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
19013         rs6000_assemble_integer, create_TOC_reference,
19014         rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
19015         rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
19016         (rs6000_split_vec_extract_var): Use reg_or_subregno.
19017         * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
19018         CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
19019         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
19020         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
19021         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
19022         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
19023         (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
19024         (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
19025         * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
19026         and cbranch<mode>4): Use CONST_INT_P.
19027         (multiple define_splits): Use REG_P and SUBREG_P.
19028         (define_expands call, call_value): Use MEM_P.
19029         (define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
19030         (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
19031         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
19032         *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
19033         and HARD_REGISTER_NUM_P.
19034         (multiple define_splits): Use HARD_REGISTER_NUM_P.
19036 2019-01-24  Uroš Bizjak  <ubizjak@gmail.com>
19038         PR rtl-optimization/88948
19039         * rtl.h (prepare_copy_insn): New prototype.
19040         * gcse.c (prepare_copy_insn): New function, split out from
19041         process_insert_insn.
19042         (process_insert_insn): Use prepare_copy_insn.
19043         * store-motion.c (replace_store_insn): Use prepare_copy_insn
19044         instead of gen_move_insn.
19046 2019-01-24  Jakub Jelinek  <jakub@redhat.com>
19048         PR debug/89006
19049         * config/i386/i386.c (ix86_pic_register_p): Return true for
19050         UNSPEC_SET_GOT too.
19052         PR tree-optimization/88964
19053         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
19054         punt if HONOR_SNANS (chrec).
19056         PR middle-end/89015
19057         * tree-nested.c (convert_nonlocal_reference_stmt,
19058         convert_local_reference_stmt, convert_tramp_reference_stmt,
19059         convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
19060         gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
19061         or GIMPLE_OMP_TASK.
19063         PR tree-optimization/89027
19064         * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
19065         for "omp simd array" variables.
19067 2019-01-24  Richard Earnshaw  <rearnsha@arm.com>
19069         PR target/88469
19070         * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
19071         force the alignment of m_val.
19073 2019-01-24  Richard Biener  <rguenther@suse.de>
19075         PR lto/87187
19076         * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
19077         When in "legacy" debug mode make sure to reset self-origins.
19079 2019-01-24  Martin Liska  <mliska@suse.cz>
19081         PR gcov-profile/88994
19082         * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
19083         result will be always smaller or equal to the original.
19084         * gcov.c (mangle_name): Fix else branch where we should
19085         also copy to PTR and shift the pointer.
19087 2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
19089         * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
19090         * vr-values.c (find_case_label_ranges): Fix a comment typo.
19092 2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>
19094         * common/config/i386/i386-common.c
19095         (OPTION_MASK_ISA_ENQCMD_SET,
19096         OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
19097         (ix86_handle_option): Handle -menqcmd.
19098         * config.gcc (enqcmdintrin.h): New header file.
19099         * config/i386/cpuid.h (bit_ENQCMD): New bit.
19100         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
19101         -menqcmd.
19102         * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
19103         function type.
19104         * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
19105         __builtin_ia32_enqcmds): New builtins.
19106         * config/i386/i386-c.c (__ENQCMD__): New macro.
19107         * config/i386/i386-option.c (ix86_target_string): Add
19108         -menqcmd.
19109         (ix86_valid_target_attribute_inner_p): Likewise.
19110         * config/i386/i386-expand.c
19111         (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
19112         IX86_BUILTIN_ENQCMDS.
19113         * config/i386/i386.h (TARGET_ENQCMD): New.
19114         * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
19115         (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
19116         (movdir64b_<mode>): Parameterize to enable share expansion code
19117         with ENQCMD in function ix86_expand_builtin.
19118         * config/i386/i386.opt: Add -menqcmd.
19119         * config/i386/immintrin.h: Include enqcmdintrin.h.
19120         * config/i386/enqcmdintrin.h: New intrinsic file.
19121         * doc/invoke.texi: Add -menqcmd.
19123 2019-01-23  Bin Cheng  <bin.cheng@arm.com>
19124             Steve Ellcey  <sellcey@marvell.com>
19126         PR target/85711
19127         * recog.c (address_operand): Return false on wrong mode for address.
19128         (constrain_operands): Check for mode with 'p' constraint.
19130 2019-01-23  Uroš Bizjak  <ubizjak@gmail.com>
19132         PR target/88998
19133         * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
19134         Disparage MMX alternative.
19135         (sse2_cvtpd2pi): Ditto.
19136         (sse2_cvttpd2pi): Ditto.
19138 2019-01-23  David Malcolm  <dmalcolm@redhat.com>
19140         PR driver/89014
19141         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
19142         use-after-free of the result of
19143         aarch64_get_extension_string_for_isa_flags.
19145 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
19147         PR c/44715
19148         * doc/extend.texi: Document break and continue behavior in
19149         statement expressions.
19151 2019-01-23  Richard Biener  <rguenther@suse.de>
19153         PR tree-optimization/89008
19154         * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
19155         not leave another stray operand.
19157 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
19159         * BASE-VER: Bump to 9.0.1.
19161 2019-01-23  Eric Botcazou  <ebotcazou@adacore.com>
19163         * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
19164         thunk that returns by reference, use the type of the return object
19165         of the thunk instead of that of the alias to build the dereference.
19167 2019-01-23  Vineet Gupta  <vgupta@synopsys.com>
19169         * config/arc/atomic.md: Add operand to DMB instruction.
19171 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
19173         PR tree-optimization/88964
19174         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
19175         build_zero_cst instead of build_int_cst.  Return false for loop
19176         invariants which honor signed zeros.
19178 2019-01-22  Segher Boessenkool  <segher@kernel.crashing.org>
19180         * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
19182 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
19184         PR target/88965
19185         * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
19186         (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
19187         is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
19189         PR middle-end/88968
19190         * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
19191         non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
19193         PR target/87064
19194         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
19195         Disable for little endian.
19197 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
19199         PR target/88469
19200         * config/arm/arm.c (arm_needs_double_word_align): Check
19201         DECL_BIT_FIELD_TYPE.
19203 2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
19204             H.J. Lu  <hongjiu.lu@intel.com>
19206         PR target/88909
19207         * config/i386/i386-builtin.def: Add mask2 to all builtin
19208         initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
19209         SPECIAL_ARGS.
19210         * config/i386/i386.c (BDESC): Add mask2 to the definition.
19211         (BDESC_FIRST): Likewise.
19212         (define_builtin): Add an argument for mask2.  Updated to handle
19213         both ix86_isa_flags and ix86_isa_flags2.
19214         (define_builtin_const): Likewise.
19215         (define_builtin_pure): Likewise.
19216         (define_builtin2): Deleted.
19217         (define_builtin_const2): Likewise.
19218         (builtin_description): Add a member, mask2.
19219         (bdesc_*): Add mask2 to builtin initializations.
19220         (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
19221         def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
19222         support.
19223         (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
19225 2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19227         PR target/88954
19228         * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
19229         noplt attribute.
19231 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
19233         PR target/88469
19234         * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
19235         alignment is dominated by a bitfield with 64-bit aligned base type.
19236         (arm_function_arg): Emit a warning if the alignment has changed since
19237         earlier GCC releases.
19238         (arm_function_arg_boundary): Likewise.
19239         (arm_setup_incoming_varargs): Likewise.
19241 2019-01-22  Richard Biener  <rguenther@suse.de>
19243         PR tree-optimization/88862
19244         * graphite-scop-detection.c
19245         (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
19247 2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
19249         * doc/extend.tex (AMD GCN Function Attributes): New section.
19250         * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
19251         * doc/invoke.texi (AMD GCN Options): New section.
19252         * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
19254 2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19256         * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
19257         register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
19259 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
19261         PR tree-optimization/88044
19262         * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
19263         is false in the first iteration, but !every_iteration, return false
19264         instead of true with niter->niter zero.
19266         PR rtl-optimization/88904
19267         * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
19268         any nonequal registers before processing BB_END (b).
19270         PR target/88905
19271         * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
19272         GET_MODE (op0).
19273         (expand_binop_directly, expand_doubleword_clz,
19274         expand_doubleword_popcount, expand_ctz, expand_ffs,
19275         expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
19277         PR rtl-optimization/49429
19278         PR target/49454
19279         PR rtl-optimization/86334
19280         PR target/88906
19281         * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
19282         addressable from here...
19283         (emit_block_op_via_libcall): ... to here.
19285 2019-01-22  Richard Biener  <rguenther@suse.de>
19287         * tree-vect-loop.c (vect_analyze_loop_operations): Use
19288         auto_vec for cost vector to fix memleak.
19289         (vectorize_fold_left_reduction): Properly gather SLP defs.
19290         (vectorizable_comparison): Do not swap operands to properly
19291         gather SLP defs.
19293 2019-01-22  Alan Modra  <amodra@gmail.com>
19295         PR target/88614
19296         * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
19297         stays a reg.  Allow a const_int.
19298         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
19299         * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
19300         (IS_NOMARK_TLSGETADDR): Define.
19301         * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
19302         (rs6000_output_tlsargs): New function.
19303         (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
19304         __tls_get_addr call takes an arg.
19305         (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
19306         * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
19307         delete split..
19308         (call_value_nonlocal_sysv): ..or here, delete split.
19309         (tls_gdld_nomark): Delete.
19310         (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
19311         predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
19312         (call_value_nonlocal_sysv): Likewise.
19313         (call_value_nonlocal_sysv_secure): Likewise.
19314         (call_value_nonlocal_aix): Likewise.
19315         (call_value_indirect_aix): Likewise.
19316         (call_value_indirect_elfv2): Likewise.
19317         (call_value_local32, call_value_local64): Disable for no-mark tls.
19318         (call_value_local_aix): Likewise.
19320 2019-01-21  Uroš Bizjak  <ubizjak@gmail.com>
19322         PR target/88938
19323         * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
19324         case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
19326 2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
19328         * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
19329         string contents as hash_map keys.
19331 2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19333         PR c/88928
19334         * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
19335         for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
19336         instead of TYPE_ALIGN.
19337         (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
19338         Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
19339         pointer from TYPE_STUB_DECL.
19341 2019-01-21  Richard Biener  <rguenther@suse.de>
19343         PR tree-optimization/88934
19344         * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
19345         at the possibly non-constant operand.
19346         (vect_get_constant_vectors): Adjust.
19348 2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>
19350         PR target/71659
19351         * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
19352         * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
19353         instead of _X86INTRIN_H_INCLUDED.
19354         * onfig/i386/clwbintrin.h: Likewise.
19355         * config/i386/pkuintrin.h: Likewise.
19356         * config/i386/prfchwintrin.h: Likewise.
19357         * config/i386/rdseedintrin.h: Likewise.
19358         * config/i386/wbnoinvdintrin.h: Likewise.
19359         * config/i386/xsavecintrin.h: Likewise.
19360         * config/i386/xsavesintrin.h: Likewise.
19361         * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
19362         * config/i386/xsaveintrin.h: Likewise.
19363         * config/i386/xsaveoptintrin.h: Likewise.
19364         * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
19365         <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
19366         <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
19367         <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
19368         <wbnoinvdintrin.h> and <pkuintrin.h> to ...
19369         * config/i386/immintrin.h: Here.
19371 2019-01-20  Martin Jambor  <mjambor@suse.cz>
19373         PR ipa/87615
19374         * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
19375         with aa_walk_budget.
19376         * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
19377         aa_walk_budget_p parameter.
19378         * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
19379         walk.  Updated all callers.
19380         (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
19381         (eliminated_by_inlining_prob): New parameter fbi, pass it on to
19382         unmodified_parm.
19383         (will_be_nonconstant_expr_predicate): New parameter fbi, removed
19384         parameter info.  Extract info from fbi.  Pass fbi to recursive calls
19385         and to unmodified_parm.
19386         (phi_result_unknown_predicate): New parameter fbi, removed parameter
19387         info, updated call to will_be_nonconstant_expr_predicate.
19388         (param_change_prob): New parameter fbi, limit AA walking.
19389         (analyze_function_body): Initialize aa_walk_budget in fbi.  Update
19390         calls to various above functions.
19391         * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
19392         parameter.  Use it to limit AA walking.
19393         * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
19394         fbi, limit AA walk.
19395         (detect_type_change): New parameter fbi, pass it on to
19396         detect_type_change_from_memory_writes.
19397         (detect_type_change_ssa): Likewise.
19398         (aa_overwalked): Removed.
19399         (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
19400         accordingly, adjust to the neew AA limiting scheme.
19401         (parm_ref_data_preserved_p): Likewise.
19402         (ipa_compute_jump_functions_for_edge): Adjust call to
19403         get_dynamic_type.
19404         (ipa_analyze_call_uses): Likewise.
19405         (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
19406         (ipa_analyze_node): Initialize aa_walk_budget.
19407         (ipcp_transform_function): Likewise.
19408         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
19409         to get_dynamic_type.
19411 2019-01-19  Jakub Jelinek  <jakub@redhat.com>
19413         * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
19414         outside of #if CHECKING_P code.
19416 2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
19418         * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
19419         New function, split out from...
19420         (loop_versioning::analyze_stride): ...here.
19421         (loop_versioning::find_per_loop_multiplication): Use gassign.
19422         (loop_versioning::analyze_term_using_scevs): Return a success code.
19423         (loop_versioning::analyze_arbitrary_term): New function.
19424         (loop_versioning::analyze_address_fragment): Use
19425         analyze_arbitrary_term if all else fails.
19427 2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
19429         PR target/88892
19430         * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
19431         operands.
19433 2019-01-18  Richard Biener  <rguenther@suse.de>
19435         PR tree-optimization/88903
19436         * tree-vect-stmts.c (vectorizable_shift): Verify we see all
19437         scalar stmts a SLP shift amount is composed of when detecting
19438         shifts by scalars.
19440 2019-01-18  Richard Earnshaw  <rearnsha@arm.com>
19442         PR target/88799
19443         * config/arm/arm-cpus.in (mp): New feature.
19444         (sec): New feature.
19445         (fgroup ARMv7ve): Add mp and sec features.
19446         (arch armv7-a): Add options to allow mp and sec extensions.
19447         (cpu generic-armv7-a): Add options to allow mp and sec extensions.
19448         (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
19449         extenstions to the base architecture.
19450         (cpu cortex-a8): Add sec extension to the base architecture.
19451         (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
19452         * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
19453         variants down to the base v7-a varaint.
19454         * config/arm/t-multilib (v7_a_arch_variants): New variable.
19455         * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
19456         of permitted extensions for -march=armv7-a and for
19457         -mcpu=generic-armv7-a.
19459 2019-01-18  Martin Liska  <mliska@suse.cz>
19461         * params.def: Fix comment.
19462         * tree-profile.c (gimple_init_gcov_profiler): Bump function
19463         name.
19464         (gimple_gen_ic_func_profiler): Likewise.
19466 2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19468         * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
19469         * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
19470         and put in error checks for stack protector guard options.
19471         (aarch64_stack_protect_guard): New.
19472         (TARGET_STACK_PROTECT_GUARD): Define.
19473         * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
19474         (reg_stack_protect_address<mode>): New.
19475         (stack_protect_set): Adjust for SSP_GLOBAL.
19476         (stack_protect_test): Likewise.
19477         * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
19478         (-mstack-protector-guard): Likewise.
19479         (-mstack-protector-guard-offset): Likewise.
19481 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
19483         PR tree-optimization/86214
19484         * tree-inline.h (struct copy_body_data): Add
19485         add_clobbers_to_eh_landing_pads member.
19486         * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
19487         (copy_edges_for_bb): Call it if EH edge destination is <
19488         id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
19489         (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
19490         if flag_stack_reuse != SR_NONE and clear it afterwards.
19492 2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>
19494         PR target/85596
19495         * doc/install.texi (with-multilib-list): Document for aarch64.
19497 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
19499         PR target/88734
19500         * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
19501         (("..."))) with ("...").
19503 2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19505         * doc/extend.texi (Built-in Functions for Memory Model Aware
19506         Atomic Operations): Document atomic fetch and nand.
19508 2019-01-18  Martin Liska  <mliska@suse.cz>
19509             Richard Biener  <rguenther@suse.de>
19511         PR middle-end/88587
19512         * cgraph.h (create_version_clone_with_body): Add new argument
19513         with attributes.
19514         * cgraphclones.c (cgraph_node::create_version_clone): Add
19515         DECL_ATTRIBUTES to a newly created decl.  And call
19516         valid_attribute_p so that proper cl_target_optimization_node
19517         is set for the newly created declaration.
19518         * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
19519         for declaration.
19520         (expand_target_clones): Do not call valid_attribute_p, it must
19521         be already done.
19522         * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
19523         vector types.
19525 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
19527         PR target/88734
19528         * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
19529         (("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
19530         arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
19532 2019-01-17  Martin Sebor  <msebor@redhat.com>
19534         PR middle-end/88273
19535         * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
19536         Handle anti-ranges the same as no range at all.
19538 2018-01-17  Steve Ellcey  <sellcey@cavium.com>
19540         * config/aarch64/aarch64.c (cgraph.h): New include.
19541         (intl.h): New include.
19542         (supported_simd_type): New function.
19543         (currently_supported_simd_type): Ditto.
19544         (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
19545         (aarch64_simd_clone_adjust): Ditto.
19546         (aarch64_simd_clone_usable): Ditto.
19547         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
19548         (TARGET_SIMD_CLONE_ADJUST): Ditto.
19549         (TARGET_SIMD_CLONE_USABLE): Ditto.
19550         * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
19551         * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
19552         call.
19554 2019-01-17  Martin Sebor  <msebor@redhat.com>
19556         PR tree-optimization/88800
19557         * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
19558         NO_WARNING bit here.  Avoid folding out-of-bounds calls.
19559         * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
19560         redundant argument.  Add new argument and issue diagnostics under
19561         its control.  Detect out-of-bounds access even with warnings
19562         disabled.
19563         (check_bounds_or_overlap): Change return type.  Add argument.
19564         (wrestrict_dom_walker::check_call): Adjust.
19565         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
19566         * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
19567         check_bounds_or_overlap's return value.
19568         (handle_builtin_stxncpy): Same.
19569         (handle_builtin_strcat): Same.
19571 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
19572             Kwok Cheung Yeung  <kcy@codesourcery.com>
19573             Julian Brown  <julian@codesourcery.com>
19574             Tom de Vries  <tom@codesourcery.com>
19576         * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
19578 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
19580         * doc/sourcebuild.texi: Document dg-require-effective-target
19581         llvm_binutils and offload_gcn.
19583 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
19584             Kwok Cheung Yeung  <kcy@codesourcery.com>
19585             Julian Brown  <julian@codesourcery.com>
19586             Tom de Vries  <tom@codesourcery.com>
19588         * doc/sourcebuild.texi: Document dg-required-effective-target
19589         exceptions.
19591 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
19592             Kwok Cheung Yeung  <kcy@codesourcery.com>
19593             Julian Brown  <julian@codesourcery.com>
19594             Tom de Vries  <tom@codesourcery.com>
19595             Jan Hubicka  <hubicka@ucw.cz>
19596             Martin Jambor  <mjambor@suse.cz>
19598         * config.gcc: Add amdgcn*-*-amdhsa configuration.
19599         * configure.ac: Check for dlopen.
19600         * configure: Regenerate.
19602 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
19603             Kwok Cheung Yeung  <kcy@codesourcery.com>
19604             Julian Brown  <julian@codesourcery.com>
19605             Tom de Vries  <tom@codesourcery.com>
19606             Jan Hubicka  <hubicka@ucw.cz>
19607             Martin Jambor  <mjambor@suse.cz>
19609         * common/config/gcn/gcn-common.c: New file.
19610         * config/gcn/driver-gcn.c: New file.
19611         * config/gcn/gcn-builtins.def: New file.
19612         * config/gcn/gcn-hsa.h: New file.
19613         * config/gcn/gcn-modes.def: New file.
19614         * config/gcn/gcn-opts.h: New file.
19615         * config/gcn/gcn-passes.def: New file.
19616         * config/gcn/gcn-protos.h: New file.
19617         * config/gcn/gcn-run.c: New file.
19618         * config/gcn/gcn-tree.c: New file.
19619         * config/gcn/gcn.c: New file.
19620         * config/gcn/gcn.h: New file.
19621         * config/gcn/gcn.opt: New file.
19622         * config/gcn/t-gcn-hsa: New file.
19624 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
19625             Kwok Cheung Yeung  <kcy@codesourcery.com>
19626             Julian Brown  <julian@codesourcery.com>
19627             Tom de Vries  <tom@codesourcery.com>
19628             Jan Hubicka  <hubicka@ucw.cz>
19629             Martin Jambor  <mjambor@suse.cz>
19631         * config/gcn/constraints.md: New file.
19632         * config/gcn/gcn-valu.md: New file.
19633         * config/gcn/gcn.md: New file.
19634         * config/gcn/predicates.md: New file.
19636 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
19638         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
19639         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
19640         (stmt_uses_0_or_null_in_undefined_way): Likewise.
19641         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
19643 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
19645         PR target/88851
19646         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
19647         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
19648         it and document registers.
19650 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19652         * config/aarch64/aarch64.c (ares_tunings): Define.
19653         * config/aarch64/aarch64-cores.def (ares): Use the above.
19655 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
19657         PR target/88794
19658         Revert:
19659         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
19661         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
19662         (_mm512_fixupimm_round_pd): Update parameters and builtin.
19663         (_mm512_maskz_fixupimm_round_pd): Ditto.
19664         (_mm512_fixupimm_round_ps): Ditto.
19665         (_mm512_maskz_fixupimm_round_ps): Ditto.
19666         (_mm_fixupimm_round_sd): Ditto.
19667         (_mm_maskz_fixupimm_round_sd): Ditto.
19668         (_mm_fixupimm_round_ss): Ditto.
19669         (_mm_maskz_fixupimm_round_ss): Ditto.
19670         (_mm512_fixupimm_pd): Ditto.
19671         (_mm512_maskz_fixupimm_pd): Ditto.
19672         (_mm512_fixupimm_ps): Ditto.
19673         (_mm512_maskz_fixupimm_ps): Ditto.
19674         (_mm_fixupimm_sd): Ditto.
19675         (_mm_maskz_fixupimm_sd): Ditto.
19676         (_mm_fixupimm_ss): Ditto.
19677         (_mm_maskz_fixupimm_ss): Ditto.
19678         (_mm512_mask_fixupimm_round_pd): Update builtin.
19679         (_mm512_mask_fixupimm_round_ps): Ditto.
19680         (_mm_mask_fixupimm_round_sd): Ditto.
19681         (_mm_mask_fixupimm_round_ss): Ditto.
19682         (_mm512_mask_fixupimm_pd): Ditto.
19683         (_mm512_mask_fixupimm_ps): Ditto.
19684         (_mm_mask_fixupimm_sd): Ditto.
19685         (_mm_mask_fixupimm_ss): Ditto.
19686         * config/i386/avx512vlintrin.h:
19687         (_mm256_fixupimm_pd): Update parameters and builtin.
19688         (_mm256_maskz_fixupimm_pd): Ditto.
19689         (_mm256_fixupimm_ps): Ditto.
19690         (_mm256_maskz_fixupimm_ps): Ditto.
19691         (_mm_fixupimm_pd): Ditto.
19692         (_mm_maskz_fixupimm_pd): Ditto.
19693         (_mm_fixupimm_ps): Ditto.
19694         (_mm_maskz_fixupimm_ps): Ditto.
19695         (_mm256_mask_fixupimm_pd): Update builtin.
19696         (_mm256_mask_fixupimm_ps): Ditto.
19697         (_mm_mask_fixupimm_pd): Ditto.
19698         (_mm_mask_fixupimm_ps): Ditto.
19699         * config/i386/i386-builtin-types.def: Add new types and remove
19700         useless ones.
19701         * config/i386/i386-builtin.def: Update builtin definitions.
19702         * config/i386/i386.c: Handle new builtin types and remove useless ones.
19703         * config/i386/sse.md: Update VFIXUPIMM* patterns.
19704         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
19705         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
19706         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
19707         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
19708         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
19709         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
19710         * config/i386/subst.md:
19711         (round_saeonly_sd_mask_operand4): Add new subst_attr.
19712         (round_saeonly_sd_mask_op4): Ditto.
19713         (round_saeonly_expand_operand5): Ditto.
19714         (round_saeonly_expand): Update.
19716 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
19718         PR target/88794
19719         Revert:
19720         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
19722         * config/i386/sse.md: Combine VFIXUPIMM* patterns
19723         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
19724         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
19725         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
19726         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
19727         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
19728         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
19730 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
19732         PR target/88794
19733         Revert:
19734         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
19736         PR target/88489
19737         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
19738         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
19739         instead of UNSPEC_FIXUPIMM.
19741 2019-01-17  Richard Biener  <rguenther@suse.de>
19743         PR lto/86736
19744         * dwarf2out.c (want_pubnames): Never generate pubnames sections
19745         and friends for the LTO part of debug info.
19747 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
19749         PR tree-optimization/86214
19750         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
19751         if x == y.
19753         PR rtl-optimization/88870
19754         * dce.c (deletable_insn_p): Never delete const/pure calls that can
19755         throw if we can't alter the cfg or delete dead exceptions.
19756         (mark_insn): Don't call find_call_stack_args for such calls.
19758 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
19760         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
19761         prototypes for vec_st.
19762         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
19763         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
19764         mainly on signed/unsigned long long and double.
19766 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
19768         PR target/88861
19769         * combine.c (delete_noop_moves): Convert to "bool" return,
19770         returning true if any edges are eliminated.
19771         (combine_instructions): Also return true if delete_noop_moves
19772         returns true.
19774 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
19776         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
19777         correct max nunits for endian swap.
19778         (aarch64_expand_fcmla_builtin): Correct subreg code.
19779         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
19780         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
19781         lane endianness.
19783 2019-01-16  Uroš Bizjak  <ubizjak@gmail.com>
19785         * config/alpha/alpha.c (alpha_gimplify_va_arg):
19786         Handle split indirect COMPLEX_TYPE arguments.
19788 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
19790         PR target/86891
19791         * config/aarch64/aarch64-modes.def: Add comment about how the carry
19792         bit is set by add and compare.
19793         (CC_ADC): New CC_MODE.
19794         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
19795         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
19796         comparison.  Add detection for CC_ADCmode.
19797         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
19798         CC_ADCmode.
19799         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
19800         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
19801         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
19802         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
19803         to eliminate the need for zero-extending the operands.
19804         (add<mode>3_compareC_imm): Delete.  Merge into ...
19805         (add<mode>3_compareC): ... this.  Restructure the comparison to
19806         eliminate the need for zero-extending the operands.
19807         (add<mode>3_carryin): Use LTU for the overflow detection.
19808         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
19809         Reexpress comparison for overflow.
19810         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
19811         (add<mode>3_carryinC): Likewise.
19812         (add<mode>3_carryinV): Use LTU for carry between partials.
19813         * config/aarch64/predicates.md (aarch64_carry_operation): Update
19814         handling of CC_Cmode and add CC_ADCmode.
19815         (aarch64_borrow_operation): Likewise.
19817 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
19819         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
19820         Remove patternmode.
19821         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
19822         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
19823         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
19824         Remove endianness conversion.
19826 2019-01-16  Martin Liska  <mliska@suse.cz>
19828         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
19829         for GCC driver.
19830         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
19831         a new argument.
19832         * gcc.c (add_sysrooted_hdrs_prefix): New function.
19833         (path_prefix_reset): Move up in the source file.
19834         (find_fortran_preinclude_file): Make complex search for the
19835         fortran header files.
19837 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
19839         * godump.c (go_output_typedef): When outputting a typedef, refer
19840         to the underlying type by its name and not its structure.
19842 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
19844         PR c++/88795
19845         * tree.c (build_function_type): Assert that arg_types is not
19846         error_mark_node.
19848 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
19850         PR inline-asm/52813
19851         * doc/extend.texi: Document that listing the stack pointer in the
19852         clobber list of an asm is a deprecated feature.
19853         * common.opt (Wdeprecated): Moved from c-family/c.opt.
19854         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
19855         warning instead of an error for clobbers of the stack pointer.
19856         Add a note explaining why.
19858 2019-01-15  Richard Biener  <rguenther@suse.de>
19860         PR debug/88046
19861         * dwarf2out.c (gen_member_die): Do not generate inheritance
19862         DIEs late.
19864 2019-01-15  Richard Biener  <rguenther@suse.de>
19866         PR tree-optimization/88855
19867         * tree-if-conv.c (combine_blocks): Collect
19868         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
19870 2019-01-15  Tom de Vries  <tdevries@suse.de>
19872         PR target/80547
19873         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
19874         lhs == NULL_TREE for gang-level reduction.
19876 2019-01-15  Richard Biener  <rguenther@suse.de>
19877             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19879         PR ipa/88788
19880         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
19881         return true if SSA_NAME is already marked in visited bitmap.
19882         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
19884 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
19886         PR tree-optimization/88775
19887         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
19888         equal == 0 equality pointer comparisons some more if compared in
19889         integral types and either one points to an automatic var and the
19890         other to a global, or we can prove at least one points to the middle
19891         or both point to start or both point to end.
19893 2019-01-14  Andi Kleen  <ak@linux.intel.com>
19895         * Makefile.in: Lower autofdo sampling rate by 10x.
19896         * Makefile.tpl: Dito.
19898 2019-01-14  Tom Honermann  <tom@honermann.net>
19900         * defaults.h: Define CHAR8_TYPE.
19902 2019-01-14  Martin Sebor  <msebor@redhat.com>
19904         PR target/88638
19905         * doc/extend.texi (Darwin Format Checks): Clarify.
19907 2019-01-14  Richard Biener  <rguenther@suse.de>
19909         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
19910         whether we are in (simplify ...) or (match ...) context.
19912 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
19914         PR rtl-optimization/88796
19915         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
19916         * cfgexpand.c (stack_protect_prologue): Initialize
19917         crtl->stack_protect_guard_decl.
19918         * function.c (stack_protect_epilogue): Use it instead of calling
19919         targetm.stack_protect_guard again.
19920         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
19921         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
19922         crtl->stack_protect_guard_decl.
19923         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
19924         on the returned MEM_EXPR.
19926 2019-01-12  Tom de Vries  <tdevries@suse.de>
19928         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
19929         vector length using -fopenacc-dim.
19931 2019-01-12  Tom de Vries  <tdevries@suse.de>
19933         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
19934         lengths into account.
19936 2019-01-12  Svante Signell  <svante.signell@gmail.com>
19938         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
19939         (TARGET_CAN_SPLIT_STACK): Define.
19940         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
19942 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
19944         * params.def (inline-unit-growth): Set to 40.
19946 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
19948         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
19950 2019-01-12  Tom de Vries  <tdevries@suse.de>
19952         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
19953         region calling vector-partitionable routine, set default_vector_length
19954         to WARP_SIZE.
19956 2019-01-12  Tom de Vries  <tdevries@suse.de>
19958         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
19959         variable default_vector_length.
19961 2019-01-12  Tom de Vries  <tdevries@suse.de>
19963         PR middle-end/88703
19964         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
19965         from oacc_default_dims, as oacc_validate_dims would do it, and apply
19966         dimensions limits.
19968 2019-01-12  Tom de Vries  <tdevries@suse.de>
19970         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
19971         (nvptx_goacc_validate_dims): Add used parameter.
19972         * doc/tm.texi: Regenerate.
19973         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
19974         argument to call to targetm.goacc.validate_dims.
19975         (default_goacc_validate_dims): Add used
19976         parameter.
19977         * target.def (validate_dims): Add used parameter in DEFHOOK.
19978         * targhooks.h (default_goacc_validate_dims): Add used parameter.
19980 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
19982         PR middle-end/85956
19983         PR lto/88733
19984         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
19985         field.
19986         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
19987         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
19988         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
19989         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
19991 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
19993         PR rtl-optimization/87305
19994         * lra-assigns.c
19995         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
19996         for little endian pseudos used as paradoxical subreg.
19998 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
20000         PR tree-optimization/88693
20001         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
20002         for STRING_CSTs that don't contain any NUL characters in the first
20003         TREE_STRING_LENGTH bytes.
20005 2019-01-11  Alan Modra  <amodra@gmail.com>
20007         PR 88777
20008         PR 88614
20009         * genattrtab.c (min_fn): Don't translate values.
20010         (min_attr_value): Return INT_MAX when the value can't be calculated.
20011         Return minimum among any values that can be calculated.
20012         (max_attr_value): Adjust.
20014 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
20016         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
20018 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
20020         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
20021         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
20022         (aarch64_return_call_with_max_clobbers): New function.
20023         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
20024         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
20025         argument.
20026         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
20027         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
20028         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
20029         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
20030         * cselib.c (cselib_process_insn): Add argument to
20031         targetm.hard_regno_call_part_clobbered call.
20032         * ira-conflicts.c (ira_build_conflicts): Ditto.
20033         * ira-costs.c (ira_tune_allocno_costs): Ditto.
20034         * lra-constraints.c (inherit_reload_reg): Ditto.
20035         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
20036         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
20037         argument.  Call targetm.return_call_with_max_clobbers.
20038         Add argument to targetm.hard_regno_call_part_clobbered call.
20039         (calls_have_same_clobbers_p): New function.
20040         (process_bb_lives): Add call_insn and last_call_insn variables.
20041         Pass call_insn to check_pseudos_live_through_calls.
20042         Modify if stmt to check targetm.return_call_with_max_clobbers.
20043         Update setting of flush variable.
20044         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
20045         to false.
20046         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
20047         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
20048         targetm.hard_regno_call_part_clobbered call.
20049         * reginfo.c (choose_hard_reg_mode): Ditto.
20050         * regrename.c (check_new_reg_p): Ditto.
20051         * reload.c (find_equiv_reg): Ditto.
20052         * reload1.c (emit_reload_insns): Ditto.
20053         * sched-deps.c (deps_analyze_insn): Ditto.
20054         * sel-sched.c (init_regs_for_mode): Ditto.
20055         (mark_unavailable_hard_regs): Ditto.
20056         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
20057         * target.def (hard_regno_call_part_clobbered): Add insn argument.
20058         (return_call_with_max_clobbers): New target function.
20059         * doc/tm.texi: Regenerate.
20060         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
20061         * hooks.c (hook_bool_uint_mode_false): Change to
20062         hook_bool_insn_uint_mode_false.
20063         * hooks.h (hook_bool_uint_mode_false): Ditto.
20065 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
20067         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
20068         (aarch64_remove_extra_call_preserved_regs): New function.
20069         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
20070         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
20071         * doc/tm.texi: Regenerate.
20072         * final.c (get_call_reg_set_usage): Call new hook.
20073         * target.def (remove_extra_call_preserved_regs): New hook.
20074         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
20075         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
20077 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
20079         PR bootstrap/88714
20080         * passes.c (finish_optimization_passes): Call print_combine_total_stats
20081         inside of pass_combine_1 dump rather than pass_profile_1.
20083 2019-01-11  Tom de Vries  <tdevries@suse.de>
20085         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
20086         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
20087         (PTX_NUM_PER_WORKER_BARRIERS): Define.
20088         (nvptx_apply_dim_limits): Prevent vector_length 64 and
20089         num_workers 16.
20091 2019-01-11  Tom de Vries  <tdevries@suse.de>
20093         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
20095 2019-01-11  Jan Beulich  <jbeulich@suse.com>
20097         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
20098         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
20099         sse2_cvtsi2sd): Add {l}.
20100         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
20101         syntax.
20103 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
20105         PR target/88785
20106         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
20107         define_expand.
20108         (*float<floatunssuffix>v2div2sf2): New define_insn.
20109         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
20110         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
20111         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
20112         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
20113         match_operands with "const0_operand" "C".
20115 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
20117         * config/aarch64/aarch64-builtins.c
20118         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
20119         (aarch64_init_simd_builtins): ...Here
20121 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
20123         PR rtl-optimization/87305
20124         * lra-assigns.c
20125         (setup_live_pseudos_and_spill_after_risky_transforms): Check
20126         allocation for big endian pseudos used as paradoxical subregs and
20127         spill them if it is wrong.
20128         * lra-constraints.c (lra_constraints): Add a comment.
20130 2019-01-10  Richard Biener  <rguenther@suse.de>
20132         PR tree-optimization/88792
20133         * tree-ssa-pre.c (get_representative_for): Do not return a
20134         value-number here.
20136 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
20138         PR middle-end/84877
20139         PR bootstrap/88450
20140         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
20141         (assign_parm_setup_block): Do the argument slot realignment here
20142         instead.
20144 2019-01-10  Stefan Agner  <stefan@agner.ch>
20146         PR target/88648
20147         * config/arm/arm.c (arm_option_override_internal): Force
20148         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
20150 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
20152         PR c/88568
20153         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
20154         DECL_EXTERNAL.
20156 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
20158         * config/arm/arm-builtins.c
20159         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
20160         (MAC_LANE_PAIR_QUALIFIERS): New.
20161         (arm_expand_builtin_args): Use it.
20162         (arm_expand_builtin_1): Likewise.
20163         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
20164         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
20165         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
20166         * config/arm/arm_neon.h:
20167         (vcadd_rot90_f16): New.
20168         (vcaddq_rot90_f16): New.
20169         (vcadd_rot270_f16): New.
20170         (vcaddq_rot270_f16): New.
20171         (vcmla_f16): New.
20172         (vcmlaq_f16): New.
20173         (vcmla_lane_f16): New.
20174         (vcmla_laneq_f16): New.
20175         (vcmlaq_lane_f16): New.
20176         (vcmlaq_laneq_f16): New.
20177         (vcmla_rot90_f16): New.
20178         (vcmlaq_rot90_f16): New.
20179         (vcmla_rot90_lane_f16): New.
20180         (vcmla_rot90_laneq_f16): New.
20181         (vcmlaq_rot90_lane_f16): New.
20182         (vcmlaq_rot90_laneq_f16): New.
20183         (vcmla_rot180_f16): New.
20184         (vcmlaq_rot180_f16): New.
20185         (vcmla_rot180_lane_f16): New.
20186         (vcmla_rot180_laneq_f16): New.
20187         (vcmlaq_rot180_lane_f16): New.
20188         (vcmlaq_rot180_laneq_f16): New.
20189         (vcmla_rot270_f16): New.
20190         (vcmlaq_rot270_f16): New.
20191         (vcmla_rot270_lane_f16): New.
20192         (vcmla_rot270_laneq_f16): New.
20193         (vcmlaq_rot270_lane_f16): New.
20194         (vcmlaq_rot270_laneq_f16): New.
20195         (vcadd_rot90_f32): New.
20196         (vcaddq_rot90_f32): New.
20197         (vcadd_rot270_f32): New.
20198         (vcaddq_rot270_f32): New.
20199         (vcmla_f32): New.
20200         (vcmlaq_f32): New.
20201         (vcmla_lane_f32): New.
20202         (vcmla_laneq_f32): New.
20203         (vcmlaq_lane_f32): New.
20204         (vcmlaq_laneq_f32): New.
20205         (vcmla_rot90_f32): New.
20206         (vcmlaq_rot90_f32): New.
20207         (vcmla_rot90_lane_f32): New.
20208         (vcmla_rot90_laneq_f32): New.
20209         (vcmlaq_rot90_lane_f32): New.
20210         (vcmlaq_rot90_laneq_f32): New.
20211         (vcmla_rot180_f32): New.
20212         (vcmlaq_rot180_f32): New.
20213         (vcmla_rot180_lane_f32): New.
20214         (vcmla_rot180_laneq_f32): New.
20215         (vcmlaq_rot180_lane_f32): New.
20216         (vcmlaq_rot180_laneq_f32): New.
20217         (vcmla_rot270_f32): New.
20218         (vcmlaq_rot270_f32): New.
20219         (vcmla_rot270_lane_f32): New.
20220         (vcmla_rot270_laneq_f32): New.
20221         (vcmlaq_rot270_lane_f32): New.
20222         (vcmlaq_rot270_laneq_f32): New.
20223         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
20224         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
20225         vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
20226         vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
20227         vcmlaq_lane270): New.
20228         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
20229         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
20230         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
20231         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
20232         (arm_option_reconfigure_globals): Use them.
20233         * config/arm/iterators.md (VDF, VQ_HSF): New.
20234         (VCADD, VCMLA): New.
20235         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
20236         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
20237         New.
20238         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
20239         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
20241 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
20243         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
20244         Add qualifier_lane_pair_index.
20245         (emit-rtl.h): Include.
20246         (TYPES_QUADOP_LANE_PAIR): New.
20247         (aarch64_simd_expand_args): Use it.
20248         (aarch64_simd_expand_builtin): Likewise.
20249         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
20250         New.
20251         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
20252         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
20253         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
20254         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
20255         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
20256         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
20257         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
20258         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
20259         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
20260         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
20261         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
20262         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
20263         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
20264         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
20265         Add __ARM_FEATURE_COMPLEX.
20266         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
20267         fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
20268         fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
20269         fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
20270         fcmlaq_lane270): New.
20271         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
20272         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
20273         aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
20274         * config/aarch64/arm_neon.h:
20275         (vcadd_rot90_f16): New.
20276         (vcaddq_rot90_f16): New.
20277         (vcadd_rot270_f16): New.
20278         (vcaddq_rot270_f16): New.
20279         (vcmla_f16): New.
20280         (vcmlaq_f16): New.
20281         (vcmla_lane_f16): New.
20282         (vcmla_laneq_f16): New.
20283         (vcmlaq_lane_f16): New.
20284         (vcmlaq_rot90_lane_f16): New.
20285         (vcmla_rot90_laneq_f16): New.
20286         (vcmla_rot90_lane_f16): New.
20287         (vcmlaq_rot90_f16): New.
20288         (vcmla_rot90_f16): New.
20289         (vcmlaq_laneq_f16): New.
20290         (vcmla_rot180_laneq_f16): New.
20291         (vcmla_rot180_lane_f16): New.
20292         (vcmlaq_rot180_f16): New.
20293         (vcmla_rot180_f16): New.
20294         (vcmlaq_rot90_laneq_f16): New.
20295         (vcmlaq_rot270_laneq_f16): New.
20296         (vcmlaq_rot270_lane_f16): New.
20297         (vcmla_rot270_laneq_f16): New.
20298         (vcmlaq_rot270_f16): New.
20299         (vcmla_rot270_f16): New.
20300         (vcmlaq_rot180_laneq_f16): New.
20301         (vcmlaq_rot180_lane_f16): New.
20302         (vcmla_rot270_lane_f16): New.
20303         (vcadd_rot90_f32): New.
20304         (vcaddq_rot90_f32): New.
20305         (vcaddq_rot90_f64): New.
20306         (vcadd_rot270_f32): New.
20307         (vcaddq_rot270_f32): New.
20308         (vcaddq_rot270_f64): New.
20309         (vcmla_f32): New.
20310         (vcmlaq_f32): New.
20311         (vcmlaq_f64): New.
20312         (vcmla_lane_f32): New.
20313         (vcmla_laneq_f32): New.
20314         (vcmlaq_lane_f32): New.
20315         (vcmlaq_laneq_f32): New.
20316         (vcmla_rot90_f32): New.
20317         (vcmlaq_rot90_f32): New.
20318         (vcmlaq_rot90_f64): New.
20319         (vcmla_rot90_lane_f32): New.
20320         (vcmla_rot90_laneq_f32): New.
20321         (vcmlaq_rot90_lane_f32): New.
20322         (vcmlaq_rot90_laneq_f32): New.
20323         (vcmla_rot180_f32): New.
20324         (vcmlaq_rot180_f32): New.
20325         (vcmlaq_rot180_f64): New.
20326         (vcmla_rot180_lane_f32): New.
20327         (vcmla_rot180_laneq_f32): New.
20328         (vcmlaq_rot180_lane_f32): New.
20329         (vcmlaq_rot180_laneq_f32): New.
20330         (vcmla_rot270_f32): New.
20331         (vcmlaq_rot270_f32): New.
20332         (vcmlaq_rot270_f64): New.
20333         (vcmla_rot270_lane_f32): New.
20334         (vcmla_rot270_laneq_f32): New.
20335         (vcmlaq_rot270_lane_f32): New.
20336         (vcmlaq_rot270_laneq_f32): New.
20337         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
20338         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
20339         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
20340         (FCADD, FCMLA): New.
20341         (rot): New.
20342         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
20344 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
20346         PR other/16615
20348         * config/pa/pa.c: Change "can not" to "cannot".
20349         * gimple-ssa-evrp-analyze.c: Likewise.
20350         * ipa-icf.c: Likewise.
20351         * ipa-polymorphic-call.c: Likewise.
20352         * ipa-pure-const.c: Likewise.
20353         * lra-constraints.c: Likewise.
20354         * lra-remat.c: Likewise.
20355         * reload1.c: Likewise.
20356         * reorg.c: Likewise.
20357         * tree-ssa-uninit.c: Likewise.
20359 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
20361         PR other/16615
20363         * Makefile.in: Mechanically replace "can not" with "cannot".
20364         * alias.c: Likewise.
20365         * builtins.c: Likewise.
20366         * calls.c: Likewise.
20367         * cgraph.c: Likewise.
20368         * cgraph.h: Likewise.
20369         * cgraphclones.c: Likewise.
20370         * cgraphunit.c: Likewise.
20371         * combine-stack-adj.c: Likewise.
20372         * combine.c: Likewise.
20373         * common/config/i386/i386-common.c: Likewise.
20374         * config/aarch64/aarch64.c: Likewise.
20375         * config/alpha/sync.md: Likewise.
20376         * config/arc/arc.c: Likewise.
20377         * config/arc/predicates.md: Likewise.
20378         * config/arm/arm-c.c: Likewise.
20379         * config/arm/arm.c: Likewise.
20380         * config/arm/arm.h: Likewise.
20381         * config/arm/arm.md: Likewise.
20382         * config/arm/cortex-r4f.md: Likewise.
20383         * config/csky/csky.c: Likewise.
20384         * config/csky/csky.h: Likewise.
20385         * config/darwin-f.c: Likewise.
20386         * config/epiphany/epiphany.md: Likewise.
20387         * config/i386/i386.c: Likewise.
20388         * config/i386/sol2.h: Likewise.
20389         * config/m68k/m68k.c: Likewise.
20390         * config/mcore/mcore.h: Likewise.
20391         * config/microblaze/microblaze.md: Likewise.
20392         * config/mips/20kc.md: Likewise.
20393         * config/mips/sb1.md: Likewise.
20394         * config/nds32/nds32.c: Likewise.
20395         * config/nds32/predicates.md: Likewise.
20396         * config/pa/pa.c: Likewise.
20397         * config/rs6000/e300c2c3.md: Likewise.
20398         * config/rs6000/rs6000.c: Likewise.
20399         * config/s390/s390.h: Likewise.
20400         * config/sh/sh.c: Likewise.
20401         * config/sh/sh.md: Likewise.
20402         * config/spu/vmx2spu.h: Likewise.
20403         * cprop.c: Likewise.
20404         * dbxout.c: Likewise.
20405         * df-scan.c: Likewise.
20406         * doc/cfg.texi: Likewise.
20407         * doc/extend.texi: Likewise.
20408         * doc/fragments.texi: Likewise.
20409         * doc/gty.texi: Likewise.
20410         * doc/invoke.texi: Likewise.
20411         * doc/lto.texi: Likewise.
20412         * doc/md.texi: Likewise.
20413         * doc/objc.texi: Likewise.
20414         * doc/rtl.texi: Likewise.
20415         * doc/tm.texi: Likewise.
20416         * dse.c: Likewise.
20417         * emit-rtl.c: Likewise.
20418         * emit-rtl.h: Likewise.
20419         * except.c: Likewise.
20420         * expmed.c: Likewise.
20421         * expr.c: Likewise.
20422         * fold-const.c: Likewise.
20423         * genautomata.c: Likewise.
20424         * gimple-fold.c: Likewise.
20425         * hard-reg-set.h: Likewise.
20426         * ifcvt.c: Likewise.
20427         * ipa-comdats.c: Likewise.
20428         * ipa-cp.c: Likewise.
20429         * ipa-devirt.c: Likewise.
20430         * ipa-fnsummary.c: Likewise.
20431         * ipa-icf.c: Likewise.
20432         * ipa-inline-transform.c: Likewise.
20433         * ipa-inline.c: Likewise.
20434         * ipa-polymorphic-call.c: Likewise.
20435         * ipa-profile.c: Likewise.
20436         * ipa-prop.c: Likewise.
20437         * ipa-pure-const.c: Likewise.
20438         * ipa-reference.c: Likewise.
20439         * ipa-split.c: Likewise.
20440         * ipa-visibility.c: Likewise.
20441         * ipa.c: Likewise.
20442         * ira-build.c: Likewise.
20443         * ira-color.c: Likewise.
20444         * ira-conflicts.c: Likewise.
20445         * ira-costs.c: Likewise.
20446         * ira-int.h: Likewise.
20447         * ira-lives.c: Likewise.
20448         * ira.c: Likewise.
20449         * ira.h: Likewise.
20450         * loop-invariant.c: Likewise.
20451         * loop-unroll.c: Likewise.
20452         * lower-subreg.c: Likewise.
20453         * lra-assigns.c: Likewise.
20454         * lra-constraints.c: Likewise.
20455         * lra-eliminations.c: Likewise.
20456         * lra-lives.c: Likewise.
20457         * lra-remat.c: Likewise.
20458         * lra-spills.c: Likewise.
20459         * lra.c: Likewise.
20460         * lto-cgraph.c: Likewise.
20461         * lto-streamer-out.c: Likewise.
20462         * postreload-gcse.c: Likewise.
20463         * predict.c: Likewise.
20464         * profile-count.h: Likewise.
20465         * profile.c: Likewise.
20466         * recog.c: Likewise.
20467         * ree.c: Likewise.
20468         * reload.c: Likewise.
20469         * reload1.c: Likewise.
20470         * reorg.c: Likewise.
20471         * resource.c: Likewise.
20472         * rtl.def: Likewise.
20473         * rtl.h: Likewise.
20474         * rtlanal.c: Likewise.
20475         * sched-deps.c: Likewise.
20476         * sched-ebb.c: Likewise.
20477         * sched-rgn.c: Likewise.
20478         * sel-sched-ir.c: Likewise.
20479         * sel-sched.c: Likewise.
20480         * shrink-wrap.c: Likewise.
20481         * simplify-rtx.c: Likewise.
20482         * symtab.c: Likewise.
20483         * target.def: Likewise.
20484         * toplev.c: Likewise.
20485         * tree-call-cdce.c: Likewise.
20486         * tree-cfg.c: Likewise.
20487         * tree-complex.c: Likewise.
20488         * tree-core.h: Likewise.
20489         * tree-eh.c: Likewise.
20490         * tree-inline.c: Likewise.
20491         * tree-loop-distribution.c: Likewise.
20492         * tree-nrv.c: Likewise.
20493         * tree-profile.c: Likewise.
20494         * tree-sra.c: Likewise.
20495         * tree-ssa-alias.c: Likewise.
20496         * tree-ssa-dce.c: Likewise.
20497         * tree-ssa-dom.c: Likewise.
20498         * tree-ssa-forwprop.c: Likewise.
20499         * tree-ssa-loop-im.c: Likewise.
20500         * tree-ssa-loop-ivcanon.c: Likewise.
20501         * tree-ssa-loop-ivopts.c: Likewise.
20502         * tree-ssa-loop-niter.c: Likewise.
20503         * tree-ssa-phionlycprop.c: Likewise.
20504         * tree-ssa-phiopt.c: Likewise.
20505         * tree-ssa-propagate.c: Likewise.
20506         * tree-ssa-threadedge.c: Likewise.
20507         * tree-ssa-threadupdate.c: Likewise.
20508         * tree-ssa-uninit.c: Likewise.
20509         * tree-ssanames.c: Likewise.
20510         * tree-streamer-out.c: Likewise.
20511         * tree.c: Likewise.
20512         * tree.h: Likewise.
20513         * vr-values.c: Likewise.
20515 2019-01-09  Uroš Bizjak  <ubizjak@gmail.com>
20517         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
20518         (ix86_split_xorsign): Ditto.
20519         * config/i386/i386.c (ix86_expand_xorsign): New function.
20520         (ix86_split_xorsign): Ditto.
20521         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
20522         (xorsign<mode>3): New expander.
20523         (xorsign<mode>3_1): New insn_and_split pattern.
20524         * config/i386/sse.md (xorsign<mode>3): New expander.
20526 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
20528         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
20529         (*tablejump_sp64): Likewise.
20530         (*tablejump<P:mode>): ...this.
20531         (*call_address_sp32): Merge into...
20532         (*call_address_sp64): Likewise.
20533         (*call_address<P:mode>): ...this.
20534         (*call_symbolic_sp32): Merge into...
20535         (*call_symbolic_sp64): Likewise.
20536         (*call_symbolic<P:mode>): ...this.
20537         (call_value): Remove constraint and add predicate.
20538         (*call_value_address_sp32): Merge into...
20539         (*call_value_address_sp64): Likewise.
20540         (*call_value_address<P:mode>): ...this.
20541         (*call_value_symbolic_sp32): Merge into...
20542         (*call_value_symbolic_sp64): Likewise.
20543         (*call_value_symbolic<P:mode>): ...this.
20544         (*sibcall_symbolic_sp32): Merge into...
20545         (*sibcall_symbolic_sp64): Likewise.
20546         (*sibcall_symbolic<P:mode>): ...this.
20547         (sibcall_value): Remove constraint and add predicate.
20548         (*sibcall_value_symbolic_sp32): Merge into...
20549         (*sibcall_value_symbolic_sp64): Likewise.
20550         (*sibcall_value_symbolic<P:mode>): ...this.
20551         (window_save): Minor tweak.
20552         (*branch_sp32): Merge into...
20553         (*branch_sp64): Likewise.
20554         (*branch<P:mode>): ...this.
20556 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
20557             James Clarke  <jrtc27@jrtc27.com>
20559         PR target/84010
20560         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
20561         consistently in TLS address generation and adjust code to the renaming
20562         of patterns.  Mark calls to __tls_get_addr as const.
20563         * config/sparc/sparc.md (tgd_hi22): Turn into...
20564         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
20565         (tgd_lo10): Turn into...
20566         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
20567         (tgd_add32): Merge into...
20568         (tgd_add64): Likewise.
20569         (tgd_add<P:mode>): ...this and use Pmode throughout.
20570         (tldm_hi22): Turn into...
20571         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
20572         (tldm_lo10): Turn into...
20573         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
20574         (tldm_add32): Merge into...
20575         (tldm_add64): Likewise.
20576         (tldm_add<P:mode>): ...this and use Pmode throughout.
20577         (tldm_call32): Merge into...
20578         (tldm_call64): Likewise.
20579         (tldm_call<P:mode>): ...this and use Pmode throughout.
20580         (tldo_hix22): Turn into...
20581         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
20582         (tldo_lox10): Turn into...
20583         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
20584         (tldo_add32): Merge into...
20585         (tldo_add64): Likewise.
20586         (tldo_add<P:mode>): ...this and use Pmode throughout.
20587         (tie_hi22): Turn into...
20588         (tie_hi22<P:mode>): ...this and use Pmode throughout.
20589         (tie_lo10): Turn into...
20590         (tie_lo10<P:mode>): ...this and use Pmode throughout.
20591         (tie_ld64): Use DImode throughout.
20592         (tie_add32): Merge into...
20593         (tie_add64): Likewise.
20594         (tie_add<P:mode>): ...this and use Pmode throughout.
20595         (tle_hix22_sp32): Merge into...
20596         (tle_hix22_sp64): Likewise.
20597         (tle_hix22<P:mode>): ...this and use Pmode throughout.
20598         (tle_lox22_sp32): Merge into...
20599         (tle_lox22_sp64): Likewise.
20600         (tle_lox22<P:mode>): ...this and use Pmode throughout.
20601         (*tldo_ldub_sp32): Merge into...
20602         (*tldo_ldub_sp64): Likewise.
20603         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
20604         (*tldo_ldub1_sp32): Merge into...
20605         (*tldo_ldub1_sp64): Likewise.
20606         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
20607         (*tldo_ldub2_sp32): Merge into...
20608         (*tldo_ldub2_sp64): Likewise.
20609         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
20610         (*tldo_ldsb1_sp32): Merge into...
20611         (*tldo_ldsb1_sp64): Likewise.
20612         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
20613         (*tldo_ldsb2_sp32): Merge into...
20614         (*tldo_ldsb2_sp64): Likewise.
20615         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
20616         (*tldo_ldub3_sp64): Use DImode throughout.
20617         (*tldo_ldsb3_sp64): Likewise.
20618         (*tldo_lduh_sp32): Merge into...
20619         (*tldo_lduh_sp64): Likewise.
20620         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
20621         (*tldo_lduh1_sp32): Merge into...
20622         (*tldo_lduh1_sp64): Likewise.
20623         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
20624         (*tldo_ldsh1_sp32): Merge into...
20625         (*tldo_ldsh1_sp64): Likewise.
20626         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
20627         (*tldo_lduh2_sp64): Use DImode throughout.
20628         (*tldo_ldsh2_sp64): Likewise.
20629         (*tldo_lduw_sp32): Merge into...
20630         (*tldo_lduw_sp64): Likewise.
20631         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
20632         (*tldo_lduw1_sp64): Use DImode throughout.
20633         (*tldo_ldsw1_sp64): Likewise.
20634         (*tldo_ldx_sp64): Likewise.
20635         (*tldo_stb_sp32): Merge into...
20636         (*tldo_stb_sp64): Likewise.
20637         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
20638         (*tldo_sth_sp32): Merge into...
20639         (*tldo_sth_sp64): Likewise.
20640         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
20641         (*tldo_stw_sp32): Merge into...
20642         (*tldo_stw_sp64): Likewise.
20643         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
20644         (*tldo_stx_sp64): Use DImode throughout.
20646 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
20648         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
20649         check configure option to set BTI and Return Address Signing.
20650         * configure.ac: Add --enable-standard-branch-protection and
20651         --disable-standard-branch-protection.
20652         * configure: Regenerated.
20653         * doc/install.texi: Document the same.
20655 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
20656             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20658         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
20659         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
20660         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
20661         if bti is enabled.
20662         * config/aarch64/aarch64-bti-insert.c: New file.
20663         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
20664         pass.
20665         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
20666         new bti pass.
20667         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
20668         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
20669         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
20670         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
20672 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
20674         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
20675         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
20676         Disable bti for -mbranch-protection=none.
20677         (aarch64_handle_standard_branch_protection): Enable bti for
20678         -mbranch-protection=standard.
20679         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
20680         -mbranch-protection.
20681         (aarch64_bti_enabled): Check if bti is enabled.
20682         * config/aarch64/aarch64.opt: Declare target variable.
20683         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
20685 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
20687         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
20688         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
20689         (aarch64_expand_epilogue): Likewise.
20690         (aarch64_output_mi_thunk): Likewise.
20691         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
20692         TAILCALL_ADDR_REGS to x16 and x17.
20693         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
20695 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
20697         * config/aarch64/aarch64-option-extensions.def: Define
20698         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
20699         * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
20700         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
20701         (AARCH64_FL_PREDRES): New.
20702         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
20703         AARCH64_FL_PREDRES by default.
20704         * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
20706 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
20708         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
20709         ARMv8.5-A.
20710         * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
20711         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
20712         * doc/invoke.texi: Document ARMv8.5-A.
20714 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
20716         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
20717         (xorsign<mode>3): Likewise.
20719 2019-01-09  Jelinek  <jakub@redhat.com>
20721         PR middle-end/88758
20722         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
20723         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
20725         PR rtl-optimization/88331
20726         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
20727         not currently_expanding_to_rtl.
20729 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
20731         * doc/invoke.texi (-Os): Remove trailing spaces.
20732         (-finline-functions): Remove reference to -O2.
20734 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
20736         PR rtl-optimization/79593
20737         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
20739         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
20740         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
20742 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
20744         PR bootstrap/88721
20745         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
20746         to -1 on entry.
20748         PR debug/88723
20749         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
20750         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
20752 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
20754         PR target/88717
20755         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
20756         ix86_avx_u128_mode_entry.
20758 2019-01-08  Martin Liska  <mliska@suse.cz>
20760         PR tree-optimization/88753
20761         * tree-switch-conversion.c (switch_conversion::build_one_array):
20762         Come up with local variable constructor.  Convert first to
20763         type of constructor values.
20765 2019-01-08  Richard Biener  <rguenther@suse.de>
20767         PR tree-optimization/86554
20768         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
20769         rpo_avail): Move earlier.
20770         (visit_nary_op): When value-numbering to expressions
20771         with different overflow behavior make sure there's an
20772         available expression on the path.
20774 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
20776         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
20777         aarch64_parse_branch_protection,
20778         struct aarch64_branch_protect_type,
20779         aarch64_handle_no_branch_protection,
20780         aarch64_handle_standard_branch_protection,
20781         aarch64_validate_mbranch_protection,
20782         aarch64_handle_pac_ret_protection,
20783         aarch64_handle_attr_branch_protection,
20784         accepted_branch_protection_string,
20785         aarch64_pac_ret_subtypes,
20786         aarch64_branch_protect_types,
20787         aarch64_handle_pac_ret_leaf): Define.
20788         (aarch64_override_options_after_change_1, aarch64_override_options):
20789         Add check for accepted_branch_protection_string.
20790         (aarch64_option_save): Save accepted_branch_protection_string.
20791         (aarch64_option_restore): Save accepted_branch_protection_string.
20792         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
20793         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
20794         msign-return-address.
20795         * doc/invoke.texi: Add mbranch-protection.
20797 2019-01-08  Alan Modra  <amodra@gmail.com>
20799         PR target/88614
20800         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
20801         Delete "unknownp" parameter.  Adjust callers.  Handle
20802         CONST_INT, PLUS, MINUS, and MULT.
20803         (attr_value_aligned): Renamed from or_attr_value.
20804         (min_attr_value): Return INT_MIN for unhandled rtl case..
20805         (min_fn): ..and translate to INT_MAX here.
20806         (write_length_unit_log): Modify to cope without "unknown".
20807         (write_attr_value): Handle IF_THEN_ELSE.
20809 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
20811         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
20812         optimization for masked stores.
20814 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
20816         PR middle-end/88567
20817         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
20818         output vector directly to duplicate_and_interleave instead of
20819         going through a temporary.  Postpone insertion of ctor_seq to
20820         the end of the loop.
20822 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
20824         PR target/86891
20825         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
20826         unsigned_p.  Handle signed and unsigned overflow correction as
20827         required.
20828         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
20829         prototype.
20830         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
20831         for operand 2.
20832         (add<mode>3_compareV_imm): Make this callable for expanding.
20833         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
20834         aarch64_plus_operand for operand 2.
20835         (subv<GPI:mode>_insn): New insn pattern.
20836         (subv<GPI:mode>_imm): Likewise.
20837         (negv<GPI:mode>3): New expand pattern.
20838         (negv<GPI:mode>_insn): New insn pattern.
20839         (negv<GPI:mode>_cmp_only): Likewise.
20840         (cmpv<GPI:mode>_insn): Likewise.
20841         (subvti4): Use register_operand for operand 1.  Update call to
20842         aarch64_expand_subvti.
20843         (usubvti4): Likewise.
20844         (negvti3): New expand pattern.
20845         (negdi_carryout): New insn pattern.
20846         (negvdi_carryinV): New insn pattern.
20847         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
20848         version the named version.
20849         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
20850         operands.
20851         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
20852         patterns.
20853         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
20854         patterns.
20855         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
20856         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
20857         (sub<mode>3_carryinCV): Delete.
20858         (sub<GPI:mode>3_carryinV): New expand pattern.
20859         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
20861 2019-01-07  Richard Biener  <rguenther@suse.de>
20863         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
20864         of tree_operand_hash.
20866 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
20868         PR tree-optimization/88598
20869         * tree.h (single_nonzero_element): Declare.
20870         * tree.c (single_nonzero_element): New function.
20871         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
20872         if I is the only nonzero element of CST.
20874 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
20876         PR tree-optimization/88598
20877         * tree.h (initializer_each_zero_or_onep): Declare.
20878         * tree.c (initializer_each_zero_or_onep): New function.
20879         (signed_or_unsigned_type_for): Handle float types too.
20880         (unsigned_type_for, signed_type_for): Update comments accordingly.
20881         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
20882         x & { 0 or -1, 0 or -1, ... }.
20884 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
20886         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
20887         with x86_64-pc-linux-gnu.
20889 2019-01-07  Tom de Vries  <tdevries@suse.de>
20891         PR target/85486
20892         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
20893         function.
20894         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
20895         routines.
20897 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
20899         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
20900         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
20901         TARGET_AVX512F as condition.
20903         PR debug/88723
20904         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
20905         const_not_ok_for_debug_p target hook.
20906         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
20907         on UNSPEC and subexpressions thereof if all subexpressions of the
20908         UNSPEC are CONSTANT_P.
20910         PR tree-optimization/88676
20911         * tree-ssa-phiopt.c (two_value_replacement): New function.
20912         (tree_ssa_phiopt_worker): Call it.
20914         PR sanitizer/88619
20915         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
20916         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
20918         PR c++/85052
20919         * tree-vect-generic.c: Include insn-config.h and recog.h.
20920         (expand_vector_piecewise): Add defaulted ret_type argument,
20921         if non-NULL, use that in preference to type for the result type.
20922         (expand_vector_parallel): Formatting fix.
20923         (do_vec_conversion, do_vec_narrowing_conversion,
20924         expand_vector_conversion): New functions.
20925         (expand_vector_operations_1): Call expand_vector_conversion
20926         for VEC_CONVERT ifn calls.
20927         * internal-fn.def (VEC_CONVERT): New internal function.
20928         * internal-fn.c (expand_VEC_CONVERT): New function.
20929         * fold-const-call.c (fold_const_vec_convert): New function.
20930         (fold_const_call): Use it for CFN_VEC_CONVERT.
20931         * doc/extend.texi (__builtin_convertvector): Document.
20933 2019-01-07  Tom de Vries  <tdevries@suse.de>
20935         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
20936         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
20937         vector_red_partition, vector_red_sym): New global variables.
20938         (nvptx_option_override): Initialize vector_red_sym.
20939         (nvptx_declare_function_name): Restore red_partition register.
20940         (nvptx_file_end): Emit code to declare the vector reduction variables.
20941         (nvptx_output_red_partition): New function.
20942         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
20943         large vector reductions.
20944         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
20945         (nvptx_init_builtins): Add VECTOR_ADDR.
20946         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
20947         Handle nvptx_expand_shared_addr.
20948         (nvptx_get_shared_red_addr): Add vector argument and handle large
20949         vectors.
20950         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
20951         large vectors.
20952         (nvptx_goacc_reduction_init): Likewise.
20953         (nvptx_goacc_reduction_fini): Likewise.
20954         (nvptx_goacc_reduction_teardown): Likewise.
20955         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
20956         init,fini,teardown}.
20957         (nvptx_init_axis_predicate): Initialize vector_red_partition.
20958         (nvptx_set_current_function): Init vector_red_partition.
20959         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
20960         (nvptx_red_partition): New insn.
20961         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
20963 2019-01-07  Tom de Vries  <tdevries@suse.de>
20965         PR target/85381
20966         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
20967         empty loops.
20969 2019-01-07  Tom de Vries  <tdevries@suse.de>
20971         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
20972         (nvptx_option_override): Init oacc_bcast_partition.
20973         (nvptx_init_oacc_workers): New function.
20974         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
20975         (nvptx_needs_shared_bcast): New function.
20976         (nvptx_find_par): Generalize to enable vectors to use shared-memory
20977         to propagate state.
20978         (nvptx_shared_propagate): Initialize vector bcast partition and
20979         synchronization state.
20980         (nvptx_single): Generalize to enable vectors to use shared-memory
20981         to propagate state.
20982         (nvptx_process_pars): Likewise.
20983         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
20984         * config/nvptx/nvptx.h (struct machine_function): Add
20985         bcast_partition and sync_bar members.
20987 2019-01-07  Tom de Vries  <tdevries@suse.de>
20989         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
20990         (nvptx_apply_dim_limits): New function.
20991         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
20992         PTX_WARP_SIZE.
20994 2019-01-07  Tom de Vries  <tdevries@suse.de>
20996         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
20997         as late as possible.
20999 2019-01-07  Tom de Vries  <tdevries@suse.de>
21001         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
21002         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
21003         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
21004         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
21005         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
21007 2019-01-07  Tom de Vries  <tdevries@suse.de>
21009         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
21011 2019-01-07  Tom de Vries  <tdevries@suse.de>
21013         * omp-offload.c (oacc_get_min_dim): New function.
21014         * omp-offload.h (oacc_get_min_dim): Declare.
21016 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
21018         PR target/88521
21019         * config/i386/i386.c (function_value_ms_64): Return small sturct in
21020         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
21022 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
21024         PR tree-opt/86020
21025         Revert:
21026         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
21028         * ipa-inline.c (edge_badness): Use inlined_time instead of
21029         inline_summaries->get.
21031 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
21033         * opts.c (enable_fdo_optimizations): Enable
21034         version-loops-for-strides, loop-interchange, unrol-and-jam
21035         and tree-loop-distribution.
21036         * invoke.texi: Document newly enabled options.
21038 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
21040         * doc/invoke.texi (max-inline-insns-small): New parameters.
21041         * ipa-inline.c (want_early_inline_function_p): simplify.
21042         (want_inline_small_function_p): Fix pasto from previous patch;
21043         use max-inline-insns-small bound.
21044         * params.def (max-inline-insns-small): New param.
21045         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
21046         variables correctly.
21048 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
21050         * doc/invoke.texi: Document max-inline-insns-size,
21051         uninlined-function-insns, uninlined-function-time,
21052         uninlined-thunk-insns and uninlined-thunk-time.
21053         * params.def: Add max-inline-insns-size,
21054         uninlined-function-insns, uninlined-function-time,
21055         uninlined-thunk-insns and uninlined-thunk-time.
21056         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
21057         new parameters.
21058         * ipa-inline.c (can_inline_edge_by_limits_p,
21059         want_inline_small_function_p): Use new parameters.
21061 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
21063         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
21065 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
21067         PR middle-end/82564
21068         PR target/88620
21069         * expr.c (expand_assignment): For calls returning VLA structures
21070         if to_rtx is not a MEM, force it into a stack temporary.
21072         PR debug/88635
21073         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
21074         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
21075         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
21076         subexpressions of both operands.
21077         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
21078         subrtxes are CONSTANT_P.
21079         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
21080         2018-11-09 changes.
21082 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
21084         * params.def (hot-bb-count-ws-permille): Set to 990.
21086 2019-01-04  Martin Sebor  <msebor@redhat.com>
21088         PR c/88546
21089         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
21090         leaf.
21092 2019-01-04  Martin Sebor  <msebor@redhat.com>
21094         PR c/88363
21095         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
21097 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
21099         * gdbinit.in: Turn off pagination for the skip commands, restore
21100         it to previous state afterwards.
21102 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
21104         PR target/88594
21105         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
21106         of GET_MODE (opN) as modes of the libcall arguments.
21108 2019-01-04  Jan Beulich  <jbeulich@suse.com>
21110         * config/i386/sse.md
21111         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
21112         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
21113         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
21114         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
21115         avx512f_vmcmp<mode>3<round_saeonly_name>,
21116         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
21117         avx512f_maskcmp<mode>3,
21118         <avx512>_cvt<ssemodesuffix>2mask<mode>,
21119         <avx512>_cvt<ssemodesuffix>2mask<mode>,
21120         *<avx512>_cvtmask2<ssemodesuffix><mode>,
21121         *<avx512>_cvtmask2<ssemodesuffix><mode>,
21122         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
21123         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
21124         <avx512>_gt<mode>3<mask_scalar_merge_name>,
21125         <avx512>_gt<mode>3<mask_scalar_merge_name>,
21126         <avx512>_testm<mode>3<mask_scalar_merge_name>,
21127         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
21128         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
21129         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
21130         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
21131         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
21132         avx512cd_maskb_vec_dup<mode>,
21133         avx512cd_maskw_vec_dup<mode>,
21134         avx512dq_fpclass<mode><mask_scalar_merge_name>,
21135         avx512dq_vmfpclass<mode>,
21136         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
21137         instead of =Yk.
21139 2019-01-03  Martin Sebor  <msebor@redhat.com>
21141         PR tree-optimization/88659
21142         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
21144 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
21146         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
21147         unaligned vsx and avoid lxvd2x/stxvd2x.
21148         (gen_lvx_v4si_move): New function.
21150 2019-01-03  Tom de Vries  <tdevries@suse.de>
21152         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
21153         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
21154         function.
21155         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
21157 2019-01-03  Tom de Vries  <tdevries@suse.de>
21159         * config/nvptx/nvptx.c (struct offload_attrs): New.
21160         (populate_offload_attrs): New function.  Factor mask extraction out of
21161         nvptx_reorg.  Add extraction of dimensions.
21162         (nvptx_reorg): Use populate_offload_attrs.
21164 2019-01-03  Tom de Vries  <tdevries@suse.de>
21166         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
21167         cases for oacc_min_dims_p and routine_p.  Add asserts for
21168         oacc_default_dims_p and offload_region_p.
21170 2019-01-03  Tom de Vries  <tdevries@suse.de>
21172         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
21173         factored out of ...
21174         (nvptx_goacc_validate_dims): ... here.
21176 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
21178         PR tree-optimization/85574
21179         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
21180         structure.
21181         (struct ssa_equip_hash_traits): Declare.
21182         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
21184 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
21186         PR debug/88644
21187         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
21188         change it to qualified_type.
21190 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
21192         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
21193         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
21195 2019-01-02  Martin Sebor  <msebor@redhat.com>
21196             Jeff Law  <law@redhat.com>
21198         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
21199         (get_range_strlen_tree): Update appropriately.
21200         (get_range_strlen)
21201         * gimple-fold.h (get_range_strlen): Drop unused last argument.
21203         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
21204         rather than set_range_info.
21205         * tree-ssa-strlen.c (set_strlen_range): Extracted from
21206         maybe_set_strlen_range.  Handle potentially boundary crossing
21207         cases more conservatively.
21208         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
21209         Call set_strlen_range.
21210         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
21212         PR middle-end/88663
21213         * gimple-fold.c (get_range_strlen): Update prototype to no longer
21214         need the flexp argument.
21215         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
21216         from calls to get_range_strlen.  Update comments.  Just update
21217         VAL for an unterminated const char array and let the reset of the
21218         code handle it normally.  No longer try to set *flexp.  Adjust
21219         return value.
21220         (get_range_strlen): Update for the new get_range_strlen API.
21221         (get_maxval_strlen): Similarly.
21222         (gimple_fold_builtin_strlen): Handle update meaning of return value
21223         from get_range_strlen.
21224         * gimple-ssa-sprintf.c (get_string_length): Update for the new
21225         get_range_strlen API.
21227 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
21229         PR lto/88130
21230         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
21231         false at WPA time when body was removed.
21233 2019-01-02  Martin Liska  <mliska@suse.cz>
21235         PR tree-optimization/88650
21236         * predict.c (set_even_probabilities): Calculate probability
21237         remainer only when really used.
21239 2019-01-02  Richard Biener  <rguenther@suse.de>
21241         PR middle-end/88651
21242         * tree-data-ref.c (analyze_subscript_affine_affine): Use
21243         widest_ints when mangling max_stmt_execution results.
21245 2019-01-02  Richard Biener  <rguenther@suse.de>
21247         PR tree-optimization/88621
21248         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
21249         bitfields when canoncalizing.
21251 2019-01-02  Richard Biener  <rguenther@suse.de>
21253         PR target/87545
21254         * config/i386/x86-tune-costs.h (intel_cost): Adjust
21255         cost of cheap SSE instruction.
21257 2019-01-02  Richard Biener  <rguenther@suse.de>
21259         PR ipa/85574
21260         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
21261         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
21262         function.
21263         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
21264         set after UIDs before splitting them.
21266 2019-01-01  Martin Sebor  <msebor@redhat.com>
21267             Jeff Law  <law@redhat.com>
21269         * gimple-fold.c (get_range_strlen_tree): Record if the computed
21270         length is optimistic.  If it is, then arrange to compute the
21271         conservative length as well.
21273         * gimple-fold.h (get_range_strlen): Update prototype.
21274         * builtins.c (check_access): Update call to get_range_strlen to use
21275         c_strlen_data pointer.   Change various variable accesses to instead
21276         pull data from the c_strlen_data structure.
21277         (check_strncat_sizes, expand_builtin_strncat): Likewise.
21278         * calls.c (maybe_warn_nonstring_arg): Likewise.
21279         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
21280         minimum length if maximum lengh is unknown.
21281         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
21282         that used c_strlen, it's no longer needed.  Restructure slightly.
21283         (format_string): Set unlikely range appropriately.
21284         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
21285         formatting issues.
21286         (get_range_strlen): Accept c_strlen_data pointer for external
21287         call sites as well.  Pass through to call to internal get_range_strlen.
21288         Adjust minlen, maxlen and maxbound as needed.
21289         (get_maxval_strlen): Update comments.
21290         (gimple_fold_builtin_strlen): Update call to get_range_strlen
21291         to use c_strlen_data pointer.  Change variable accesses to instead
21292         use c_strlen_data data members.
21294         * gimple-fold.c (get_range_strlen): Update prototype.
21295         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
21296         local variables.  Use pdata to return information to caller.
21297         Update calls to get_range_strlen.  Update pdata->maxbound.
21298         (get_range_strlen -- static version): Similarly.
21299         (get_range_strlen -- extern version): Update for internal
21300         get_range_strlen API change.  Convert to external data format.
21301         (get_maxval_strlen): Similarly.
21303 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
21305         * coverage.c (get_coverage_counts): Use current_function_decl.
21306         * profile.c (read_thunk_profile): New function.
21307         (branch_prob): Add THUNK parameter.
21308         * tree-profile.c (tree_profiling): Handle thunks.
21309         * value-prof.c (init_node_map): Handle thunks.
21310         * value-prof.h (branch_prob): Upate prototype.
21311         (read_thunk_profile): Declare.
21313 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
21315         Update copyright years.
21317         * gcc.c (process_command): Update copyright notice dates.
21318         * gcov-dump.c (print_version): Ditto.
21319         * gcov.c (print_version): Ditto.
21320         * gcov-tool.c (print_version): Ditto.
21321         * gengtype.c (create_file): Ditto.
21322         * doc/cpp.texi: Bump @copying's copyright year.
21323         * doc/cppinternals.texi: Ditto.
21324         * doc/gcc.texi: Ditto.
21325         * doc/gccint.texi: Ditto.
21326         * doc/gcov.texi: Ditto.
21327         * doc/install.texi: Ditto.
21328         * doc/invoke.texi: Ditto.
21330 Copyright (C) 2019 Free Software Foundation, Inc.
21332 Copying and distribution of this file, with or without modification,
21333 are permitted in any medium without royalty provided the copyright
21334 notice and this notice are preserved.