[RS6000] PC-relative TLS support
[official-gcc.git] / gcc / ChangeLog
blob4a38e5459b482705af4767ab76a0f69a9aa9d489
1 2019-11-12  Alan Modra  <amodra@gmail.com>
3         * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got
4         element of unspec vec.
5         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support
6         PC-relative TLS.
7         * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec.
8         (tls_gd_pcrel, tls_ld_pcrel): New insns.
9         (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16.
10         (tls_got_tprel_pcrel, tls_tls_pcrel): New insns.
12 2019-11-12  Alan Modra  <amodra@gmail.com>
14         * config/rs6000/rs6000.opt (mtls-markers): Delete.
15         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define.
16         (IS_NOMARK_TLSGETADDR): Likewise.
17         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete.
18         * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete.
19         (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code.
20         (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and
21         allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD.
22         (rs6000_indirect_call_template_1): Likewise.
23         (rs6000_pltseq_template): Likewise.
24         (rs6000_opt_vars): Remove "tls-markers" entry.
25         * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS
26         with TARGET_ELF.
27         (tls_gd_high<bits>, tls_gd_low<bits>): Likewise.
28         (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise.
29         (pltseq_plt_pcrel<mode>): Likewise.
30         (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test.
31         (call_value_local64): Likewise.
32         (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR
33         output and length attribute sub-expression.
34         (call_value_nonlocal_sysv<mode>),
35         (call_value_nonlocal_sysv_secure<mode>),
36         (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>),
37         (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>),
38         (call_value_indirect_pcrel<mode>): Likewise.
39         * doc/install.texi (powerpc-*-*): Require binutils-2.20.
40         * configure.ac (HAVE_AS_TLS_MARKERS): Delete test.
41         * configure: Regenerate.
42         * config.in: Regenerate.
44 2019-11-11  Michael Meissner  <meissner@linux.ibm.com>
46         * config/rs6000/predicates.md (prefixed_memory): New predicate.
47         * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either
48         address being a prefixed load/store.
49         (stack_protect_testdi): Deal with either address being a prefixed
50         load.
52 2019-11-11  Jakub Jelinek  <jakub@redhat.com>
54         PR bootstrap/92433
55         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
56         ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check.  Use
57         std::swap.
59 2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>
61         PR tree-optimization/92420
62         * tree-vect-stmts.c (get_negative_load_store_type): Move further
63         up file.
64         (get_group_load_store_type): Use it for reversed SLP accesses.
66 2019-11-11  Jan Hubicka  <hubcika@ucw.cz>
68         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
69         summary.
70         (ipcp_transformation_t::duplicate): Break out from ...
71         (ipa_node_params_t::duplicate): ... here; add copying of agg
72         replacements.
73         * ipa-prop.h (ipcp_transformation): Add constructor and destructor.
74         (ipcp_transformation_t): Add duplicate.
76 2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>
78         PR fortran/91828
79         * doc/install.texi: Document that the minimum MPFR version is
80         3.1.0.
82 2019-11-11  Claudiu Zissulescu <claziss@gmail.com>
84         * config/arc/arc.md (movsi_ne): Reorder instruction variants and
85         use new register constraint letters.
87 2019-11-11  Claudiu Zissulescu <claziss@gmail.com>
89         * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
90         as well, if interesting recover the symbol and re-legitimize the
91         pic address.
93 2019-11-11  Martin Liska  <mliska@suse.cz>
95         * dbgcnt.def (DEBUG_COUNTER): Sort counters
96         alphabetically.
98 2019-11-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
100         * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
101         account when checking if there are enough iterations to vectorize
102         epilogue.
104 2019-11-11  Tobias Burnus  <tobias@codesourcery.com>
105             Kwok Cheung Yeung  <kcy@codesourcery.com>
107         * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
108         Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
109         (LANG_HOOKS_DECLS): Rename also here.
110         * langhooks.h (lang_hooks_for_decls): Rename
111         omp_is_optional_argument to omp_check_optional_argument; take
112         additional bool argument.
113         * omp-general.h (omp_check_optional_argument): Likewise.
114         * omp-general.h (omp_check_optional_argument): Likewise.
115         * omp-low.c (lower_omp_target): Update calls; handle absent
116         Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.
118 2019-11-11  H.J. Lu  <hjl.tools@gmail.com>
120         PR target/87833
121         * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
122         -fPIC and -shared the last to create offload image.
124 2019-11-11  Thomas Schwinge  <thomas@codesourcery.com>
126         * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
127         of 'offset'.
129         * Makefile.in (LANG_CONFIGUREFRAGS): Define.
130         (config.status): Use/depend on it.
131         * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
132         * configure: Regenerate.
134 2019-11-11  Jiufu Guo  <guojiufu@linux.ibm.com>
136         PR tree-optimization/88760
137         * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
138         * gcc/common/config/rs6000/rs6000-common.c
139         (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
140         Turn on -funroll-loops and -munroll-only-small-loops.
141         [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
142         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
143         set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
144         Turn off -munroll-only-small-loops for explicit -funroll-loops.
145         (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
146         (rs6000_loop_unroll_adjust): Define it.  Use -munroll-only-small-loops.
148 2019-11-11  Kewen Lin  <linkw@gcc.gnu.org>
150         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
151         Make scalar_load, vector_load, unaligned_load and
152         vector_gather_load cost more to conform hardware latency and
153         insn cost settings.
155 2019-11-10  Iain Sandoe  <iain@sandoe.co.uk>
157         * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
158         (MACHO_SYMBOL_LINKER_VIS_P): New.
160 2019-11-10  Kwok Cheung Yeung  <kcy@codesourcery.com>
162         * lra-spills.c (assign_spill_hard_regs): Do not spill into
163         registers in eliminable_regset.
165 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
167         * ipa-inline.c (compute_uninlined_call_time,
168         compute_inlined_call_time): Take edge frequency as
169         parameter rather than computing it by itself.
170         (big_speedup_p, edge_badness): Manually CSE sreal
171         frequency calculations.
173 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
175         * profile-count.c (profile_count::to_sreal_scale): Short circuit
176         case where profiles are same.
178 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
180         * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
182 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
184         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
185         args summaries of inlined edge unless it holds info about
186         described reference.
188 2019-11-10  Segher Boessenkool  <segher@kernel.crashing.org>
190         * config/rs6000/rs6000.md (CC_any): New mode iterator.
191         (*movcc_internal1): Rename to...
192         (*movcc_<mode> for CC_any): ... this.  Support moves of all CC modes.
194 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
196         * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
197         (cgraph_node::create_virtual_clone): Copy it.
198         * ipa-cp.c (ipcp_versionable_function_p): Watch for missing
199         summaries.
200         (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
201         (ipcp_verify_propagated_values): Do not verify nodes where ipcp
202         is disabled.
203         (propagate_constants_across_call): If callee is not analyzed, give up.
204         (propagate_constants_topo): Lower to bottom latties of all callees of
205         functions with ipa-cp disabled.
206         (ipcp_propagate_stage): Skip functions with ipa-cp disabled.
207         (cgraph_edge_brings_value_p): Check for availability first.
208         (create_specialized_node): Set ipcp_clone.
209         (ipcp_store_bits_results): Check that info is present.
210         * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
211         thunks.
212         (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
213         conservative when callee summary is missing.
214         (remap_edge_summaries): Lookup call summary only when needed.
215         * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
216         * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
217         Use get_create.
218         (ipa_analyze_node): Use get_create.
219         (propagate_controlled_uses): Do not propagate when function is not
220         analyzed.
221         (ipa_propagate_indirect_call_infos): Remove summary of inline clone.
222         (ipa_read_node_info): Use get_create.
223         * ipa-prop.h (IPA_NODE_REF): Use get.
224         (IPA_NODE_REF_GET_CREATE): New.
226 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
228         * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
229         on function symbol.
231 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
233         * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
234         ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
235         (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
236         (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
238 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
240         * ipa-inline-analysis.c (do_estimate_growth_1): Add support for
241         capping the growth cumulated.
242         (offline_size): Break out from ...
243         (estimate_growth): ... here.
244         (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
245         parameters.
246         (growth_likely_positive): Turn to ...
247         (growth_positive_p): Re-implement.
248         * ipa-inline.h (growth_likely_positive): Remove.
249         (growth_positive_p): Declare.
250         * ipa-inline.c (want_inline_small_function_p): Use
251         growth_positive_p.
252         (want_inline_function_to_all_callers_p): Likewise.
254 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
256         * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
257         calculation of min_size.
258         (ipa_update_overall_fn_summary): Likewise.
260 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
262         * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
263         estimate_edge_devirt_benefit when not computing hints;
264         do not compute time when not asked for.
265         (estimate_calls_size_and_time): Pass NULL hints and time when
266         these are not computed; do not evaluate hint predicates when these are
267         not computed.
268         (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
269         frequency.
271 2019-11-09  Jakub Jelinek  <jakub@redhat.com>
273         PR tree-optimization/92401
274         * gimple-match-head.c (gimple_resimplify1): Call const_unop only
275         if res_op->code is an expression with code length 1.
276         * gimple-match-head.c (gimple_resimplify2): Call const_binop only
277         if res_op->code is an expression with code length 2.
278         * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
279         if res_op->code is an expression with code length 3.
281 2019-11-09  Iain Sandoe  <iain@sandoe.co.uk>
283         * config/darwin.c (machopic_mcount_stub_name): Validate the
284         symbol stub name when it is created.
285         * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
286         stub validation.
288 2019-11-09  Jakub Jelinek  <jakub@redhat.com>
290         * symtab.c: Fix comment typos.
291         * cgraphunit.c: Likewise.
292         * cgraph.h: Likewise.
293         * cgraphclones.c: Likewise.
294         * cgraph.c: Likewise.
295         * varpool.c: Likewise.
296         * tree-ssa-strlen.c: Likewise.
297         * ipa-sra.c: Likewise.
298         (scan_expr_access, check_all_callers_for_issues): Fix typo
299         in a dump message.
301 2019-11-08  Iain Sandoe  <iain@sandoe.co.uk>
303         * config/darwin-protos.h: Add include quard.
305 2019-11-08  Andrew MacLeod  <amacleod@redhat.com>
307         * range-op.h (range_operator::fold_range): Return result in a
308         reference parameter instead of by value.
309         (range_operator::wi_fold): Same.
310         * range-op.cc (range_operator::wi_fold): Return result in a reference
311         parameter instead of by value.
312         (range_operator::fold_range): Same.
313         (value_range_from_overflowed_bounds): Same.
314         (value_range_with_overflow): Same
315         (create_possibly_reversed_range): Same.
316         (operator_equal::fold_range): Same.
317         (operator_not_equal::fold_range): Same.
318         (operator_lt::fold_range): Same.
319         (operator_le::fold_range): Same.
320         (operator_gt::fold_range): Same.
321         (operator_ge::fold_range): Same.
322         (operator_plus::wi_fold): Same.
323         (operator_plus::op1_range): Change call to fold_range.
324         (operator_plus::op2_range): Change call to fold_range.
325         (operator_minus::wi_fold): Return result via reference parameter.
326         (operator_minus::op1_range): Change call to fold_range.
327         (operator_minus::op2_range): Change call to fold_range.
328         (operator_min::wi_fold): Return result via reference parameter.
329         (operator_max::wi_fold): Same.
330         (cross_product_operator::wi_cross_product): Same.
331         (operator_mult::wi_fold): Same.
332         (operator_div::wi_fold): Same.
333         (operator_div op_floor_div): Fix whitespace.
334         (operator_exact_divide::op1_range): Change call to fold_range.
335         (operator_lshift::fold_range): Return result via reference parameter.
336         (operator_lshift::wi_fold): Same.
337         (operator_rshift::fold_range): Same.
338         (operator_rshift::wi_fold): Same.
339         (operator_cast::fold_range): Same.
340         (operator_cast::op1_range): Change calls to fold_range.
341         (operator_logical_and::fold_range): Return result via reference.
342         (wi_optimize_and_or): Adjust call to value_range_with_overflow.
343         (operator_bitwise_and::wi_fold): Return result via reference.
344         (operator_logical_or::fold_range): Same.
345         (operator_bitwise_or::wi_fold): Same.
346         (operator_bitwise_xor::wi_fold): Same.
347         (operator_trunc_mod::wi_fold): Same.
348         (operator_logical_not::fold_range): Same.
349         (operator_bitwise_not::fold_range): Same.
350         (operator_bitwise_not::op1_range): Change call to fold_range.
351         (operator_cst::fold_range): Return result via reference.
352         (operator_identity::fold_range): Same.
353         (operator_abs::wi_fold): Same.
354         (operator_absu::wi_fold): Same.
355         (operator_negate::fold_range): Same.
356         (operator_negate::op1_range): Change call to fold_range.
357         (operator_addr_expr::fold_range): Return result via reference.
358         (operator_addr_expr::op1_range): Change call to fold_range.
359         (operator_pointer_plus::wi_fold): Return result via reference.
360         (operator_pointer_min_max::wi_fold): Same.
361         (operator_pointer_and::wi_fold): Same.
362         (operator_pointer_or::wi_fold): Same.
363         (range_op_handler): Change call to fold_range.
364         (range_cast): Same.
365         * tree-vrp.c (range_fold_binary_symbolics_p): Change call to
366         fold_range.
367         (range_fold_unary_symbolics_p): Same.
368         (range_fold_binary_expr): Same.
369         (range_fold_unary_expr): Same.
371 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
373         * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the
374         vector type as an argument rather than reading it from the
375         stmt_vec_info.
376         (vect_create_epilog_for_reduction): Update accordingly.
377         (vectorizable_reduction): Likewise.
378         (vect_transform_cycle_phi): Likewise.
380 2019-11-08  Segher Boessenkool  <segher@kernel.crashing.org>
382         * config/rs6000/predicates.md (branch_comparison_operator): Allow only
383         the comparison codes that make sense for the mode used, and only the
384         codes that can be done with a single branch instruction.
386 2019-11-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
388         PR tree-optimization/92351
389         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are
390         peeling the main loop for alignment, make sure to set the misalignment
391         of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN.
393 2019-11-08  Richard Biener  <rguenther@suse.de>
395         * dbgcnt.def (ivopts_loop): Add.
396         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check
397         ivopts_loop before optimizing a loop.
399 2019-11-08  Richard Biener  <rguenther@suse.de>
401         PR ipa/92409
402         * tree-inline.c (declare_return_variable): Properly handle
403         type mismatches for the return slot.
405 2019-11-08  Eric Botcazou  <ebotcazou@adacore.com>
407         PR target/92095
408         * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
409         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
410         change.
411         (got_helper_needed): New static variable.
412         (output_load_pcrel_sym): New function.
413         (get_pc_thunk_name): Remove after inlining...
414         (load_got_register): ...here.  Rework the initialization of the GOT
415         register and of the GOT helper.
416         (save_local_or_in_reg_p): Test the REGNO of the GOT register.
417         (sparc_file_end): Test got_helper_needed to decide whether the GOT
418         helper must be emitted.  Use output_asm_insn instead of fprintf.
419         (sparc_init_pic_reg): In PIC mode, always initialize the PIC register
420         if optimization is enabled.
421         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
422         by calling output_load_pcrel_sym.
424 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
426         * tree-sra.c (create_access): Delay disqualifying the base
427         for poly_int values until we know we have a base.
429 2019-11-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
431         * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization
432         for loops with SIMDUID set.  Enable epilogue vectorization for loops
433         with SIMDLEN set after finding a main loop with a VF that matches it.
435 2019-11-08  Jakub Jelinek  <jakub@redhat.com>
437         PR target/92038
438         * gimple-ssa-store-merging.c (find_constituent_stores): For return
439         value only, return non-NULL if there is a single non-clobber
440         constituent store even if there are constituent clobbers and return
441         one of clobber constituent stores if all constituent stores are
442         clobbers.
443         (split_group): Handle clobbers.
444         (imm_store_chain_info::output_merged_store): When computing
445         bzero_first, look after all clobbers at the start.  Don't count
446         clobber stmts in orig_num_stmts, except if the first orig store is
447         a clobber covering the whole area and split_stores cover the whole
448         area, consider equal number of stmts ok.  Punt if split_stores
449         contains only ->orig stores and their number plus number of original
450         clobbers is equal to original number of stmts.  For ->orig, look past
451         clobbers in the constituent stores.
452         (imm_store_chain_info::output_merged_stores): Don't remove clobber
453         stmts.
454         (rhs_valid_for_store_merging_p): Don't return false for clobber stmt
455         rhs.
456         (store_valid_for_store_merging_p): Allow clobber stmts.
457         (verify_clear_bit_region_be): Fix up a thinko in function comment.
459         PR c++/92384
460         * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
461         copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
462         slot.
463         (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
464         force creation of a unique data.stack_parm slot.
466 2019-11-08  Richard Biener  <rguenther@suse.de>
468         * genmatch.c (expr::gen_transform): Use the resimplify
469         member function instead of hard-coding the gimple_resimplifyN variant.
470         (dt_simplify::gen_1): Likewise.
472 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
474         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
475         POLY_INT_CST.
477 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
479         * tree-inline.c (declare_return_variable): Check for poly_int_tree_p
480         instead of INTEGER_CST.
482 2019-11-08  Richard Biener  <rguenther@suse.de>
484         PR tree-optimization/92324
485         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
486         STMT_VINFO_REDUC_VECTYPE for all computations, inserting
487         sign-conversions as necessary.
488         (vectorizable_reduction): Reject conversions in the chain
489         that are not sign-conversions, base analysis on a non-converting
490         stmt and its operation sign.  Set STMT_VINFO_REDUC_VECTYPE.
491         * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything
492         for debug stmts.
493         * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New.
494         (STMT_VINFO_REDUC_VECTYPE): Likewise.
496 2019-11-08  Georg-Johann Lay  <avr@gjlay.de>
498         PR target/92055
499         * config/avr/avr.opt (-mdouble=, -mlong-double=):
500         Fix a missing '-' when displaying these options in the
501         help screen.
503 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
505         * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete.
507 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
509         * config/aarch64/aarch64-builtins.c
510         (aarch64_builtin_vectorized_function): Remove bswap handling.
512 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
514         * tree-core.h (tree_type_common::indivisible_p): New member variable.
515         * tree.h (TYPE_INDIVISIBLE_P): New macro.
516         * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
517         Treat the vector types as indivisible.
519 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
521         * optabs.def (gather_load_optab, mask_gather_load_optab)
522         (scatter_store_optab, mask_scatter_store_optab): Turn into
523         conversion optabs, with the offset mode given explicitly.
524         * doc/md.texi: Update accordingly.
525         * config/aarch64/aarch64-sve-builtins-base.cc
526         (svld1_gather_impl::expand): Likewise.
527         (svst1_scatter_impl::expand): Likewise.
528         * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise.
529         (expand_scatter_store_optab_fn): Likewise.
530         (direct_gather_load_optab_supported_p): Likewise.
531         (direct_scatter_store_optab_supported_p): Likewise.
532         (expand_gather_load_optab_fn): Likewise.  Expect the mask argument
533         to be argument 4.
534         (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD.
535         (internal_gather_scatter_fn_supported_p): Replace the offset sign
536         argument with the offset vector type.  Require the two vector
537         types to have the same number of elements but allow their element
538         sizes to be different.  Treat the optabs as conversion optabs.
539         * internal-fn.h (internal_gather_scatter_fn_supported_p): Update
540         prototype accordingly.
541         * optabs-query.c (supports_at_least_one_mode_p): Replace with...
542         (supports_vec_convert_optab_p): ...this new function.
543         (supports_vec_gather_load_p): Update accordingly.
544         (supports_vec_scatter_store_p): Likewise.
545         * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info.
546         Replace the offset sign and bits parameters with a scalar type tree.
547         * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
548         Pass back the offset vector type instead of the scalar element type.
549         Allow the offset to be wider than the memory elements.  Search for
550         an offset type that the target supports, stopping once we've
551         reached the maximum of the element size and pointer size.
552         Update call to internal_gather_scatter_fn_supported_p.
553         (vect_check_gather_scatter): Update calls accordingly.
554         When testing a new scale before knowing the final offset type,
555         check whether the scale is supported for any signed or unsigned
556         offset type.  Check whether the target supports the source and
557         target types of a conversion before deciding whether to look
558         through the conversion.  Record the chosen offset_vectype.
559         * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete.
560         (vect_recog_gather_scatter_pattern): Get the scalar offset type
561         directly from the gs_info's offset_vectype instead.  Pass a zero
562         of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD.
563         * tree-vect-stmts.c (check_load_store_masking): Update call to
564         internal_gather_scatter_fn_supported_p, passing the offset vector
565         type recorded in the gs_info.
566         (vect_truncate_gather_scatter_offset): Update call to
567         vect_check_gather_scatter, leaving it to search for a valid
568         offset vector type.
569         (vect_use_strided_gather_scatters_p): Convert the offset to the
570         element type of the gs_info's offset_vectype.
571         (vect_get_gather_scatter_ops): Get the offset vector type directly
572         from the gs_info.
573         (vect_get_strided_load_store_ops): Likewise.
574         (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD
575         and IFN_MASK_GATHER_LOAD.
576         * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to...
577         (gather_load<mode><v_int_equiv>): ...this.
578         (mask_gather_load<mode>): Rename to...
579         (mask_gather_load<mode><v_int_equiv>): ...this.
580         (scatter_store<mode>): Rename to...
581         (scatter_store<mode><v_int_equiv>): ...this.
582         (mask_scatter_store<mode>): Rename to...
583         (mask_scatter_store<mode><v_int_equiv>): ...this.
585 2019-11-08  Kewen Lin  <linkw@gcc.gnu.org>
587         PR target/92132
588         * config/rs6000/predicates.md
589         (signed_or_equality_comparison_operator): New predicate.
590         (unsigned_or_equality_comparison_operator): Likewise.
591         * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
592         (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
593         * config/rs6000/vector.md
594         (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
595         (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
596         (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
597         (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
598         vector modes and same-size integer vector modes.
599         (vec_cmp<mode><VEC_int> for VEC_F): Likewise.
600         (vector_lt<mode> for VEC_F): New expand.
601         (vector_le<mode> for VEC_F): Likewise.
602         (vector_ne<mode> for VEC_F): Likewise.
603         (vector_unge<mode> for VEC_F): Likewise.
604         (vector_ungt<mode> for VEC_F): Likewise.
605         (vector_unle<mode> for VEC_F): Likewise.
606         (vector_unlt<mode> for VEC_F): Likewise.
607         (vector_uneq<mode>): Expose name.
608         (vector_ltgt<mode>): Likewise.
609         (vector_unordered<mode>): Likewise.
610         (vector_ordered<mode>): Likewise.
612 2019-11-08  Hongtao Liu  <Hongtao.liu@intel.com>
614         PR target/92295
615         * config/i386/i386-expand.c (ix86_expand_vector_init_concat)
616         Enhance ix86_expand_vector_init_concat.
618 2019-11-08  Joseph Myers  <joseph@codesourcery.com>
620         * doc/invoke.texi (-Wold-style-definition): Document () not being
621         considered an old-style definition for C2x.
623 2019-11-07  John David Anglin  <danglin@gcc.gnu.org>
625         * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
626         Enhance comment.
627         (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
628         insn patterns using ldcw instruction.
629         (memory_barrier): Remove insn pattern using sync instruction.
630         * config/pa/pa.opt (coherent-ldcw): New option.
631         (ordered): New option.
633 2019-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
635         * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for
636         valid conditions.
638 2019-11-07  Jakub Jelinek  <jakub@redhat.com>
640         * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string
641         typo - mistmatch -> mismatch.
642         * ipa-profile.c (ipa_profile): Likewise.
643         * ipa-devirt.c (compare_virtual_tables): Fix a comment typo
644         - mistmatch -> mismatch.
646 2018-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
648         * simplify-rtx.c (comparison_to_mask): New function.
649         (mask_to_comparison): New function.
650         (simplify_logical_relational_operation): New function.
651         (simplify_binary_operation_1): Call
652         simplify_logical_relational_operation.
654 2019-11-07  Peter Bergner <bergner@linux.ibm.com>
656         PR other/92090
657         * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
658         modes for integer constants.
660 2019-11-07  Jan Hubicka  <jh@suse.cz>
662         PR ipa/92406
663         * ipa-fnsummary.c (analyze_function_body): Use get_create to copy
664         summary.
666 2019-11-07  Jan Hubicka  <jh@suse.cz>
668         * optc-save-gen.awk: Generate cl_target_option_free
669         and cl_optimization_option_free.
670         * opth-en.awk: Declare cl_target_option_free
671         and cl_optimization_option_free.
672         * tree.c (free_node): Use it.
674 2019-11-06  Jan Hubicka  <jh@suse.cz>
676         * lto-streamer-in.c: Include alloc-pool.h.
677         (freeing_string_slot_hasher): Remove.
678         (string_slot_allocator): New object allocator.
679         (file_name_hash_table): Turn to hash_table<string_slot_hasher>.
680         (file_name_obstack): New obstack.
681         (canon_file_name): Allocate in obstack and allocator.
682         (lto_reader_init): Initialize obstack and allocator.
683         (lto_free_file_name_hash): New function.
684         * lto-streamer.h (lto_free_file_name_hash): New.
686 2019-11-07  Feng Xue <fxue@os.amperecomputing.com>
688         PR tree-optimization/89134
689         * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
690         * params.def: Add min-loop-cond-split-prob.
691         * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
692         outside checks on loop into the function.
693         (split_info): New class.
694         (find_vdef_in_loop, get_control_equiv_head_block): New functions.
695         (find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
696         (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
697         (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
698         (stmt_semi_invariant_p, branch_removable_p): Likewise.
699         (get_cond_invariant_branch, compute_added_num_insns): Likewise.
700         (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
701         (split_loop_on_cond): Likewise.
702         (tree_ssa_split_loops): Add loop split on conditional statement.
704 2019-11-07  Andreas Krebbel  <krebbel@linux.ibm.com>
706         * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split
707         pattern.
709 2019-11-07  Richard Biener  <rguenther@suse.de>
711         PR tree-optimization/92405
712         * tree-vect-loop.c (vectorizable_reduction): Appropriately
713         restrict lane-reducing ops to single stmt chains.
715 2019-11-07  Martin Jambor  <mjambor@suse.cz>
717         PR lto/70929
718         * cif-code.def (MISMATCHED_ARGUMENTS): Removed.
719         * cgraph.h (gimple_check_call_matching_types): Remove
720         * cgraph.c (gimple_check_call_args): Likewise.
721         (gimple_check_call_matching_types): Likewise.
722         (symbol_table::create_edge): Do not call
723         gimple_check_call_matching_types.
724         (cgraph_edge::make_direct): Likewise.
725         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
726         * value-prof.h (check_ic_target): Remove.
727         * value-prof.c (check_ic_target): Remove.
728         (gimple_ic_transform): Do nat call check_ic_target.
729         * auto-profile.c (function_instance::find_icall_target_map): Likewise.
730         (afdo_indirect_call): Likewise.
731         * ipa-prop.c (update_indirect_edges_after_inlining): Do not call
732         gimple_check_call_matching_types.
733         * ipa-inline.c (early_inliner): Likewise.
735 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
737         * config/arm/arm.md (arm_<simd32_op>): New define_expand.
738         (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
739         * config/arm/arm_acle.h (__ssat16, __usat16): Define.
740         * config/arm/arm_acle_builtins.def: Define builtins for the above.
741         * config/arm/iterators.md (USSAT16): New int_iterator.
742         (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
743         (sup): Likewise.
744         * config/arm/predicates.md (ssat16_imm): New predicate.
745         (usat16_imm): Likewise.
746         * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
748 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
750         * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn):
751         New define_insns.
752         (arm_<simd32_op>): New define_expands.
753         * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx,
754         __smuad, __smuadx): Define.
755         * config/arm/arm_acle_builtins.def: Define builtins for the above.
756         * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator.
757         (SIMD32_BINOP_Q): Likewise.
758         (simd32_op): Handle the above.
759         * config/arm/unspecs.md: Define unspecs for the above.
761 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
763         * config/arm/aout.h (REGISTER_NAMES): Add apsrge.
764         * config/arm/arm.md (APSRGE_REGNUM): Define.
765         (arm_<simd32_op>): New define_insn.
766         (arm_sel): Likewise.
767         * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge.
768         (CALL_USED_REGISTERS): Likewise.
769         (REG_ALLOC_ORDER): Likewise.
770         (FIRST_PSEUDO_REGISTER): Update value.
771         (ARM_GE_BITS_READ): Define.
772         * config/arm/arm.c (arm_conditional_register_usage): Clear
773         APSRGE_REGNUM from operand_reg_set.
774         (arm_ge_bits_access): Define.
775         * config/arm/arm-builtins.c (arm_check_builtin_call): Handle
776         ARM_BUIILTIN_sel.
777         * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype.
778         * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand.
779         FAIL if ARM_GE_BITS_READ.
780         (*arm_add<mode>3): New define_insn.
781         (sub<mode>3): Convert to define_expand.  FAIL if ARM_GE_BITS_READ.
782         (*arm_sub<mode>3): New define_insn.
783         * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8,
784         __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax,
785         __usub16): Define.
786         * config/arm/arm_acle_builtins.def: Define builtins for the above.
787         * config/arm/iterators.md (SIMD32_GE): New int_iterator.
788         (simd32_op): Handle the above.
789         * config/arm/unspecs.md (UNSPEC_GE_SET): Define.
790         (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8,
791         UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16,
792         UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define.
794 2019-11-07  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
796         * config/arm/arm.md (arm_smlabb_setq): New define_insn.
797         (arm_smlabb): New define_expand.
798         (*maddhisi4tb): Rename to...
799         (maddhisi4tb): ... This.
800         (*maddhisi4tt): Rename to...
801         (maddhisi4tt): ... This.
802         (arm_smlatb_setq): New define_insn.
803         (arm_smlatb): New define_expand.
804         (arm_smlatt_setq): New define_insn.
805         (arm_smlatt): New define_expand.
806         (arm_<smlaw_op><add_clobber_name>_insn): New define_insn.
807         (arm_<smlaw_op>): New define_expand.
808         * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt,
809         __smlawb, __smlawt): Define.
810         * config/arm_acle_builtins.def: Define builtins for the above.
811         * config/arm/iterators.md (SMLAWBT): New int_iterator.
812         (slaw_op): New int_attribute.
813         * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define.
815 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
817         * config/arm/arm.md (arm_<ss_op>): New define_expand.
818         (arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
819         * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
820         * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
821         * config/arm/iterators.md (SSPLUSMINUS): New code iterator.
822         (ss_op): New code_attr.
824 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
826         * config/arm/aout.h (REGISTER_NAMES): Add apsrq.
827         * config/arm/arm.md (APSRQ_REGNUM): Define.
828         (add_setq): New define_subst.
829         (add_clobber_q_name): New define_subst_attr.
830         (add_clobber_q_pred): Likewise.
831         (maddhisi4): Change to define_expand.  Split into mult and add if
832         ARM_Q_BIT_READ.
833         (arm_maddhisi4): New define_insn.
834         (*maddhisi4tb): Disable for ARM_Q_BIT_READ.
835         (*maddhisi4tt): Likewise.
836         (arm_ssat): New define_expand.
837         (arm_usat): Likewise.
838         (arm_get_apsr): New define_insn.
839         (arm_set_apsr): Likewise.
840         (arm_saturation_occurred): New define_expand.
841         (arm_set_saturation): Likewise.
842         (*satsi_<SAT:code>): Rename to...
843         (satsi_<SAT:code><add_clobber_q_name>): ... This.
844         (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ.
845         * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed.
846         (CALL_USED_REGISTERS): Mark apsrq.
847         (FIRST_PSEUDO_REGISTER): Update value.
848         (REG_ALLOC_ORDER): Add APSRQ_REGNUM.
849         (machine_function): Add q_bit_access.
850         (ARM_Q_BIT_READ): Define.
851         * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define.
852         (arm_conditional_register_usage): Clear APSRQ_REGNUM from
853         operand_reg_set.
854         (arm_q_bit_access): Define.
855         * config/arm/arm-builtins.c: Include stringpool.h.
856         (arm_sat_binop_imm_qualifiers,
857         arm_unsigned_sat_binop_unsigned_imm_qualifiers,
858         arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define.
859         (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS,
860         UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS,
861         SET_SAT_QUALIFIERS): Likewise.
862         (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK.
863         (arm_init_acle_builtins): Initialize __builtin_sat_imm_check.
864         Handle 0 argument expander.
865         (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK.
866         (arm_check_builtin_call): Define.
867         * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3,
868         arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ.
869         * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype.
870         (arm_q_bit_access): Likewise.
871         * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation,
872         __saturation_occurred, __set_saturation_occurred): Define.
873         * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat,
874         saturation_occurred, set_saturation_occurred.
875         * config/arm/unspecs.md (UNSPEC_Q_SET): Define.
876         (UNSPEC_APSR_READ): Likewise.
877         (VUNSPEC_APSR_WRITE): Likewise.
878         * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand.
879         (*arm_ssadd<mode>3): New define_insn.
880         (sssub<mode>3): Convert to define_expand.
881         (*arm_sssub<mode>3): New define_insn.
882         (ssmulsa3): Convert to define_expand.
883         (*arm_ssmulsa3): New define_insn.
884         (usmulusa3): Convert to define_expand.
885         (*arm_usmulusa3): New define_insn.
886         (ssmulha3): FAIL if ARM_Q_BIT_READ.
887         (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ.
888         * config/arm/iterators.md (qaddsub_clob_q): New mode attribute.
890 2019-11-07  Martin Liska  <mliska@suse.cz>
892         PR c++/92354
893         * cgraph.c (delete_function_version): Clear global
894         variable version_info_node if equal to deleted
895         function.
897 2019-11-07  Martin Liska  <mliska@suse.cz>
899         * fold-const.c (operand_compare::operand_equal_p): Add comparison
900         of CONSTRUCTOR_NO_CLEARING.
901         (operand_compare::hash_operand): Likewise.
903 2019-11-07  Georg-Johann Lay  <avr@gjlay.de>
905         Support 64-bit double and 64-bit long double configurations.
907         PR target/92055
908         * config.gcc (tm_defines) [avr]: Set from --with-double=,
909         --with-long-double=.
910         * config/avr/t-multilib: Remove.
911         * config/avr/t-avr: Output of genmultilib.awk is now fully
912         dynamically generated and no more part of the repo.
913         (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables.
914         Pass them down to...
915         * config/avr/genmultilib.awk: ...here and handle them.
916         * config/avr/avr.opt (-mdouble=, avr_double). New option and var.
917         (-mlong-double=, avr_long_double). New option and var.
918         * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include.
919         (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>:
920         Set default as requested by --with-double=
921         (TARGET_HANDLE_OPTION): Define to this...
922         (avr_handle_option): ...new hook worker.
923         * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double.
924         (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double.
925         (avr_double_lib): New proto for spec function.
926         (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add.
927         (DRIVER_SELF_SPECS): Call %:double-lib.
928         * config/avr/avr.c (avr_option_override): Assert
929         sizeof(long double) >= sizeof(double) for the target.
930         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
931         [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__]
932         [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=]
933         [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__]
934         [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]:
935         New built-in define depending on --with-double=, --with-long-double=.
936         * config/avr/driver-avr.c (avr_double_lib): New spec function.
937         * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc.
938         * doc/install.texi (Cross-Compiler-Specific Options)
939         <--with-double=, --with-long-double=>: Doc.
941 2019-11-07  Richard Biener  <rguenther@suse.de>
943         * dbgcnt.def (gimple_unroll): New.
944         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check
945         gimple_unroll debug counter before applying transform.
946         (try_peel_loop): Likewise.
948 2019-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
950         * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for
951         frame pointer in multiple registers.
952         (ira_setup_eliminable_regset): Setup eliminable_regset,
953         ira_no_alloc_regs and regs_ever_live for frame pointer in
954         multiple registers.
956 2019-11-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
958         * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
959         V2DI modes.
961 2019-11-06  Jan Hubicka  <jh@suse.cz>
963         * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
964         allocations.
965         * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
966         Do not silently ignore summary corruptions.
968 2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>
970         * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
971         the epilogue if there are peeled iterations for it to handle.
973 2019-11-06  Claudiu Zissulescu  <claziss@synopsys.com>
975         * config/arc/arc.c (arc_split_ior): Add asserts.
976         (arc_split_mov_const): Likewise.
977         (arc_check_ior_const): Do not match known short immediate values.
978         * config/arc/arc.md (movsi): Don't split predicated instructions
979         (iorsi): Likewise.
981 2019-11-06  Claudiu Zissulescu  <claziss@synopsys.com>
983         * config/arc/arc.opt (mea): Update help string.
984         * doc/invoke.texi(ARC): Update mea option info.
986 2019-11-06  Claudiu Zissulescu  <claziss@synopsys.com>
988         * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern.
989         (zero_extendqisi2_ac): Likewise.
990         (zero_extendhisi2_i): Likewise.
991         (extendqihi2_i): Likewise.
992         (extendqisi2_ac): Likewise.
993         (extendhisi2_i): Likewise.
995 2019-11-06  Richard Biener  <rguenther@suse.de>
997         * tree-vect-loop.c (vectorizable_reduction): Remember reduction
998         PHI.  Use STMT_VINFO_REDUC_IDX to skip the reduction operand.
999         Simplify single_defuse_cycle condition.
1001 2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>
1003         * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an
1004         epilogue loop, make sure that the VF is small enough or that
1005         the epilogue loop can be fully-masked.
1007 2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>
1009         * tree-vect-loop.c (vect_analyze_loop): Break out of the main
1010         loop when we've finished, rather than returning directly from
1011         the loop.  Use a local variable to track whether we're still
1012         searching for the preferred simdlen.  Make vect_epilogues
1013         record whether the next iteration should try to treat the
1014         loop as an epilogue.
1016 2019-11-06  Vineet Gupta  <vgupta@synopsys.com>
1018         * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add
1019         __arc_hard_float__, __ARC_HARD_FLOAT__,
1020         __arc_soft_float__, __ARC_SOFT_FLOAT__
1022 2019-11-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1024         PR tree-optimization/92317
1025         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also
1026         update phi's with constant phi arguments.
1028 2019-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1029             Alexandre Oliva  <oliva@adacore.com>
1031         * common.opt (-fcallgraph-info[=]): New option.
1032         * doc/invoke.texi (Developer options): Document it.
1033         * opts.c (common_handle_option): Handle it.
1034         * builtins.c (expand_builtin_alloca): Record allocation if
1035         -fcallgraph-info=da.
1036         * calls.c (expand_call): If -fcallgraph-info, record the call.
1037         (emit_library_call_value_1): Likewise.
1038         * flag-types.h (enum callgraph_info_type): New type.
1039         * explow.c: Include stringpool.h.
1040         (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol.
1041         * function.c (allocate_stack_usage_info): New.
1042         (allocate_struct_function): Call it for -fcallgraph-info.
1043         (prepare_function_start): Call it otherwise.
1044         (record_final_call, record_dynamic_alloc): New.
1045         * function.h (struct callinfo_callee): New.
1046         (CALLEE_FROM_CGRAPH_P): New.
1047         (struct callinfo_dalloc): New.
1048         (struct stack_usage): Add callees and dallocs.
1049         (record_final_call, record_dynamic_alloc): Declare.
1050         * gimplify.c (gimplify_decl_expr): Record dynamically-allocated
1051         object if -fcallgraph-info=da.
1052         * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL.
1053         * print-tree.h (print_decl_identifier): Declare.
1054         (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New.
1055         * print-tree.c: Include print-tree.h.
1056         (print_decl_identifier): New function.
1057         * toplev.c: Include print-tree.h.
1058         (callgraph_info_file): New global variable.
1059         (callgraph_info_external_printed): Likewise.
1060         (output_stack_usage): Rename to...
1061         (output_stack_usage_1): ... this.  Make it static, add cf
1062         parameter.  If -fcallgraph-info=su, print stack usage to cf.
1063         If -fstack-usage, use print_decl_identifier for
1064         pretty-printing.
1065         (INDIRECT_CALL_NAME): New.
1066         (dump_final_node_vcg_start): New.
1067         (dump_final_callee_vcg, dump_final_node_vcg): New.
1068         (output_stack_usage): New.
1069         (lang_dependent_init): Open and start file if
1070         -fcallgraph-info.  Allocated callgraph_info_external_printed.
1071         (finalize): If callgraph_info_file is not null, finish it,
1072         close it, and release callgraph_info_external_printed.
1074 2019-11-06  Gergö Barany  <gergo@codesourcery.com>
1075             Frederik Harwath  <frederik@codesourcery.com>
1076             Thomas Schwinge  <thomas@codesourcery.com>
1078         * omp-low.c (struct omp_context): New fields
1079         local_reduction_clauses, outer_reduction_clauses.
1080         (new_omp_context): Initialize these.
1081         (scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
1082         (scan_omp_for): Check reduction clauses for incorrect nesting.
1084 2019-11-06  Jakub Jelinek  <jakub@redhat.com>
1086         PR inline-asm/92352
1087         * gimplify.c (gimplify_asm_expr): Reject VLA in output or input
1088         operands with non-memory constraints.
1090 2019-11-05  Martin Sebor  <msebor@redhat.com>
1092         PR tree-optimization/92373
1093         * tree.c (component_ref_size): Only consider initializers of objects
1094         of matching struct types.
1095         Return null for instances of interior zero-length arrays.
1097 2019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
1099         * doc/md.texi (Insn Splitting): Fix combiner documentation.
1101 2019-11-05  Jason Merrill  <jason@redhat.com>
1103         PR tree-optimization/91825
1104         * expmed.c: Reduce -Wmaybe-uninitialized to warning.
1106 2019-11-05  Jim Wilson  <jimw@sifive.com>
1108         PR middle-end/92263
1109         * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
1110         optimize_insn_for_speed_p is true.
1112 2019-11-05  Martin Sebor  <msebor@redhat.com>
1114         PR middle-end/92333
1115         PR middle-end/82608
1116         * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
1117         size.
1118         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
1119         name and location for a temporary variable.
1121 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
1123         * tree-vrp.c (value_range::value_range): Fix whitespace.
1124         (defined_ranges_p): Same.
1125         (range_fold_binary_symbolics_p): Same.
1126         (value_range::intersect_helper): Same.
1127         (value_range::union_helper): Same.
1128         * tree-vrp.h (range_fold_binary_expr): Same.
1130 2019-11-04  Martin Sebor  <msebor@redhat.com>
1132         PR middle-end/92341
1133         PR middle-end/82612
1134         * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
1135         * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
1136         of message printed in a warning for empty arrays.
1137         (vrp_prop::check_mem_ref): Also handle function parameters and
1138         empty arrays.
1140 2019-11-05  Richard Biener  <rguenther@suse.de>
1142         PR tree-optimization/92371
1143         * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
1144         on the original stmt of live stmts in the chain.
1145         (vectorizable_live_operation): Look at the original stmt when
1146         checking STMT_VINFO_REDUC_DEF.
1148 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
1150         * gimple-fold.c, gimple-loop-versioning.cc,
1151         gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c,
1152         gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h,
1153         range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c,
1154         tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc],
1155         tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to
1156         value_range_equiv, and value_range_base to value_range.
1158 2019-11-05  Matthew Malcomson  <matthew.malcomson@arm.com>
1160         * expr.c (build_personality_function): Fix generated type to
1161         match actual personality functions.
1163 2019-11-05  Matthew Malcomson  <matthew.malcomson@arm.com>
1165         * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
1166         enough bytes for the NULL character.
1168 2019-11-05  Richard Biener  <rguenther@suse.de>
1170         PR tree-optimization/92280
1171         * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
1172         had a single use do not create a new CTOR.
1173         * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
1174         BIT_FIELD_REF of a CTOR via GENERIC.
1176 2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>
1178         * config/s390/s390.c (s390_vector_alignment): Check if the value
1179         fits into uhwi before using it.
1181 2019-11-05  Martin Liska  <mliska@suse.cz>
1183         * symbol-summary.h: Use ggc_delete.
1185 2019-11-05  Anton Youdkevitch  <anton.youdkevitch@bell-sw.com>
1187         * config/aarch64/aarch64.c (thunderx2t99_vector_cost):
1188         Change vec_perm field to 10.
1190 2019-11-05  Arnaud Charlet  <charlet@adacore.com>
1192         * doc/install.texi: Further fix syntax for html generation.
1194 2019-11-05  Martin Liska  <mliska@suse.cz>
1196         * symbol-summary.h: Rename allocator to m_allocator and
1197         add comment.
1199 2019-11-05  Richard Biener  <rguenther@suse.de>
1201         PR tree-optimization/92324
1202         * tree-vect-loop.c (check_reduction_path): For MIN/MAX require
1203         all signed or unsigned operations.
1205 2019-11-05  Jan Hubicka  <jh@suse.cz>
1207         * hsa-brig.c: Include alloc-pool.h
1208         * hsa-dump.c: Likewise.
1209         * hsa-gen.c: Likewise.
1210         * hse-regalloc.c: Likewise.
1211         * ipa-hsa.c: Likewise.
1212         * ipa-predicate.c: Likewise.
1213         * ipa-reference.c: Likewise.
1214         * ipa-sra.c: Likewise.
1215         * omp-expand.c: Likewise.
1216         * omp-general.c: Likewise.
1217         * omp-low.c: Likewise.
1218         * sumbol-summary.h (function_summary_base): Add allocator.
1219         (function_summary<T *>::function_summary): Update construction.
1220         (fast_function_summary<T *, V>::fast_function_summary): Likewise.
1221         (call_summary_base): Add allcator.
1222         (call_summary<T *>::call_summary): Update construction.
1223         (fast_call_summary<T *, V>::fast_call_summary): Likewise.
1225 2019-11-05  Jakub Jelinek  <jakub@redhat.com>
1227         PR tree-optimization/91945
1228         * builtins.c (compute_objsize): For ARRAY_REF, only multiply off
1229         by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
1230         Formatting fix.
1232 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
1234         * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier.
1235         * range-op.h (wi_set_zero_nonzero_bits): New prototype.
1236         * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove.
1237         * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove.
1238         (vrp_set_zero_nonzero_bits): Move to...
1239         * vr-values.c (vr_set_zero_nonzero_bits): ...here.
1240         (vr_values::simplify_bit_ops_using_ranges): Rename
1241         vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits.
1243 2019-11-05  Martin Liska  <mliska@suse.cz>
1245         PR c++/92339
1246         * fold-const.c (operand_compare::hash_operand): Remove
1247         FIELD_DECL handling.
1249 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
1251         * tree-vrp.h (vrp_bitmap_equal_p): Remove.
1252         * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make
1253         static.
1255 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
1257         * tree-vrp.c (value_range_base::operator==): Use equal_p to
1258         properly handle symbolics.
1259         (range_compatible_p): Remove.
1261 2019-11-04  Kamlesh Kumar  <kamleshbhalui@gmail.com>
1263         * common.opt (-fabi-version): Document =14.
1264         * doc/invoke.texi (C++ Dialect Options): Likewise.
1266 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
1268         * tree-vrp.c (value_range_base::set): Do not special case pointers.
1270 2019-11-04  Tobias Burnus  <tobias@codesourcery.com>
1272         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function.
1273         (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
1274         gcn_omp_device_kind_arch_isa.
1275         * config/gcn/t-omp-device: New file.
1276         * configure.ac: Support gcn for omp_device_property.
1277         * configure: Regenerate.
1279 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
1281         * tree-vrp.h (vrp_val_min): Remove handle_pointers argument.
1282         (vrp_val_max): Same.
1283         (vrp_val_is_min): Same.
1284         (vrp_val_is_max): Same.
1285         (value_range_base::nonzero_p): Remove last argument to
1286         vrp_val_is_max.
1287         * tree-vrp.c (vrp_val_min): Remove handle_pointers argument.
1288         (vrp_val_max): Same.
1289         (vrp_val_is_min): Same.
1290         (vrp_val_is_max): Same.
1291         (value_range_base::set_varying): Remove last argument to vrp_val*.
1292         (value_range_base::dump): Same.
1293         (value_range_base::set): Same.
1294         (value_range_base::normalize_symbolics): Same.
1295         (value_range_base::num_pairs): Same.
1296         (value_range_base::lower_bound): Same.
1297         (value_range_base::upper_bound): Same.
1298         (ranges_from_anti_range): Remove handle_pointers argument.
1299         (value_range_base::singleton_p): Remove last argument to
1300         ranges_from_anti_range.
1302 2019-11-04  Jan Hubicka  <jh@suse.cz>
1304         * ipa-reference.c (init_function_info): Initialize
1305         info->global.statics_read.
1307 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
1309         * tree-vrp.c (value_range_base::invert): Use constructors to build
1310         range.
1312 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
1314         * tree-vrp.c (range_int_cst_singleton_p): Remove.
1315         * tree-vrp.h (range_int_cst_singleton_p): Remove.
1317 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
1319         * tree-vrp.c (value_range_base::normalize_addresses): Handle
1320         VR_UNDEFINED.
1322 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
1324         * tree-vrp.c (dump_assert_info): New.
1325         (dump_asserts_info): New.
1327 2019-11-04  Jan Hubicka  <jh@suse.cz>
1329         * ipa-inline-transform.c: Include ipa-utils.h
1330         (inline_call): Set thunk_expansion flag.
1331         * ipa-utils.h (thunk_expansion): Declare.
1332         * ipa-devirt.c (thunk_expansion): New global var.
1333         (devirt_node_removal_hook): Do not invalidate cache while
1334         doing thunk expansion.
1336 2019-11-04  Tamar Christina  <tamar.christina@arm.com>
1338         * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.
1340 2019-11-04  Martin Sebor  <msebor@redhat.com>
1342         PR tree-optimization/92349
1343         * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
1344         memebers have constant sizes.
1346 2019-11-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1348         * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
1349         parameter.
1350         * tree-vectorizer.h (vect_analyze_loop): Update declaration.
1351         * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
1352         vect_analyze_loop.
1354 2019-11-04  Joel Hutton  <Joel.Hutton@arm.com>
1356         * expr.c (store_constructor): Modify to handle single element vectors.
1357         * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
1358         constructors.
1359         (vect_slp_check_for_constructors): New function.
1360         (vect_slp_analyze_bb_1): Call new function to check for vector
1361         constructors.
1362         (vectorize_slp_instance_root_stmt): New function.
1363         (vect_schedule_slp): Call new function to vectorize root stmt of vector
1364         constructors.
1365         * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.
1367 2019-11-04  Richard Biener  <rguenther@suse.de>
1369         PR tree-optimization/92345
1370         * tree-vect-loop.c (vect_is_simple_reduction): Return whether
1371         we produced a reduction chain.
1372         (vect_analyze_scalar_cycles_1): Do not add reduction chains to
1373         LOOP_VINFO_REDUCTIONS.
1375 2019-11-04  Jan Hubicka  <jh@suse.cz>
1377         * cgraphclones.c (cgraph_node::create_version_clone): Do not
1378         duplicate summaries.
1379         * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
1380         first.
1381         (ipa_fn_summary_t::duplicate): Use get instead of get_create to
1382         access call summaries.
1383         (dump_ipa_call_summary): Be ready for missing edge summaries.
1384         (analyze_function_body): Use get instead of get_create to access
1385         edge summary.
1386         (estimate_calls_size_and_time): Do not access summaries of
1387         inlined edges; sanity check they are missing.
1388         (ipa_call_context::estimate_size_and_time): Use get instead
1389         of get_create to access node summary.
1390         (inline_update_callee_summaries): Do not update depth of
1391         inlined edge.
1392         (ipa_merge_fn_summary_after_inlining): Remove inline edge from
1393         growth caches.
1394         (ipa_merge_fn_summary_after_inlining): Use get instead
1395         of get_create.
1396         * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
1397         * ipa-inline-analyssi.c (edge_growth_cache): Turn to
1398         fast summary.
1399         (initialize_growth_caches): Update.
1400         (do_estimate_edge_time): Remove redundant copy of context.
1401         (ipa_remove_from_growth_caches): New function.
1402         * ipa-inline.c (flatten_function): Update overall summary
1403         only when optimizing.
1404         (inline_to_all_callers): Update overall summary of function
1405         inlined to.
1406         * ipa-inline.h (edge_growth_cache): Turn to fast summary.
1407         * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
1408         to false.
1410 2019-11-04  Richard Biener  <rguenther@suse.de>
1412         * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
1413         * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.
1415 2019-11-04  David Edelsohn  <dje.gcc@gmail.com>
1417         * ggc-common.c: Include system.h before malloc.h.
1419 2019-11-04  Alexandre Oliva <oliva@adacore.com>
1421         * configure.ac: Pass --enable-obsolete=* and
1422         --enable-option-checking=* down to build configure, and fail
1423         if it fails.  AC_SUBST HAVE_AUTO_BUILD.
1424         * configure: Rebuild.
1425         * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
1426         [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.
1428 2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1430         * config.in: Regenerate.
1431         * config/msp430/msp430.c (msp430_option_override): Emit an error if
1432         -mtiny-printf is used without GCC being configured with
1433         --enable-newlib-nano-formatted-io.
1434         * config/msp430/msp430.h (LINK_SPEC): Pass 
1435         "--wrap puts --wrap printf" when -mtiny-printf is used.
1436         * config/msp430/msp430.opt: Document -mtiny-printf.
1437         * configure: Regenerate.
1438         * configure.ac: Enable --enable-newlib-nano-formatted-io flag.
1439         Define HAVE_NEWLIB_NANO_FORMATTED_IO if
1440         --enable-newlib-nano-formatted-io is passed.
1441         * doc/invoke.texi: Document -mtiny-printf.
1443 2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1445         * configure: Regenerate.
1447 2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1449         * config/msp430/driver-msp430.c
1450         (msp430_get_linker_devices_include_path): New spec function.
1451         * config/msp430/msp430-devices.c (msp430_dirname): New function.
1452         (extract_devices_dir_from_exec_prefix): New function.
1453         (extract_devices_dir_from_collect_gcc): New function.
1454         (msp430_check_env_var_for_devices): New function.
1455         (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
1456         (parse_devices_csv): Call msp430_check_env_var_for_devices if
1457         devices.csv was not found using other methods.
1458         * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
1459         New prototype.
1460         (msp430_dirname): Likewise.
1461         * config/msp430/msp430.c (msp430_register_pre_includes): New function.
1462         * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
1463         msp430_get_linker_devices_include_path.
1464         (TARGET_EXTRA_PRE_INCLUDES): Define.
1465         * doc/invoke.texi: Document new ways of searching for support files.
1467 2019-11-04  Richard Biener  <rguenther@suse.de>
1469         PR tree-optimization/92301
1470         * tree-vect-stmts.c (process_use): Force reduction PHI defs live
1471         as required by epilogue generation
1473 2019-11-04  Martin Liska  <mliska@suse.cz>
1475         PR ipa/92304
1476         * fold-const.c (operand_compare::hash_operand): Fix field
1477         hashing of CONSTRUCTOR.
1479 2019-11-04  Martin Liska  <mliska@suse.cz>
1481         * ggc.h (ggc_delete): New function.
1482         * ipa-fnsummary.c (ipa_free_fn_summary): Use it.
1483         * ipa-prop.c (ipa_free_all_edge_args): Likewise.
1484         (ipa_free_all_node_params): Likewise.
1485         * ipa-sra.c (ipa_sra_analysis): Likewise.
1487 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
1489         * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
1490         set_switch_stmt_execution_predicate, compute_bb_predicates,
1491         will_be_nonconstant_expr_predicate,
1492         phi_result_unknown_predicate,
1493         analyze_function_body): Pass arround params summary.
1494         (ipa_call_context::duplicate_from): New comment;
1495         only duplicate useful values.
1496         (ipa_call_context::equal_to): Only compare useful values.
1497         (remap_edge_summaries): Pass params_summary.
1498         (remap_hint_predicate): Likewise.
1499         (ipa_merge_fn_summary_after_inlining): Likewise.
1500         (inline_read_section): Initialize params summary used flags.
1501         * ipa-predicate.c (predicate::remap_after_inlining): Pass
1502         around param_summary.
1503         (add_condition): Initialized used params summary flags.
1504         * ipa-predicate.h (inline_param_summary::equals_to): Make const.
1505         (inline_param_summary::useless_p): New predicate.
1506         (remap_after_inlining, add_condition): Update prototype
1507         * ipa-prop.c (ipa_populate_param_decls): Watch overflow in
1508         move_cost.
1509         (ipa_note_param_call): Add parameter POLYMORPHIC; update params
1510         summaries.
1511         (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
1512         (ipa_analyze_virtual_call_uses): Likewise.
1513         (update_indirect_edges_after_inlining): Update param summaries.
1514         (ipa_print_node_params): Print used flags.
1515         (ipa_read_indirect_edge_info): Update param summareis.
1516         * ipa-prop.h (ipa_param_descriptor): Add
1517         used_by_ipa_predicates, used_by_indirect_call
1518         and used_by_polymorphic_call.
1519         (ipa_set_param_used_by_ipa_predicates,
1520         ipa_set_param_used_by_indirect_call,
1521         ipa_set_param_used_by_polymorphic_call,
1522         ipa_is_param_used_by_ipa_predicates,
1523         ipa_is_param_used_by_indirect_call,
1524         ipa_is_param_used_by_polymorphic_call): New inline functions.
1526 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
1528         * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
1529         member function.
1530         (ipa_call_context::release): Add ALL parameter.
1531         (ipa_call_context::equal_to): New member function.
1532         * ipa-fnsummary.h (ipa_call_context): Add empty constructor;
1533         duplicate_form, release, equal_to and exists_p member functoins.
1534         * ipa-inline-analysis.c (node_context_cache_entry): New
1535         class.
1536         (node_context_summary): Likewise.
1537         (node_context_cache, node_context_cache_hit, node_context_cache_miss,
1538         node_context_clear): New static vars.
1539         (initialize_growth_caches): New function.
1540         (free_growth_caches): Also delete node_context_cache; output stats.
1541         (do_estimate_edge_time): Cache contexts.
1542         (reset_node_cache): New function.
1543         * ipa-inline.c (reset_edge_caches): Reset also node cache.
1544         (inline_small_functions): Initialize growth caches.
1545         * ipa-inline.h (reset_node_cache, initialize_growth_caches):
1546         Declare.
1547         * ipa-predicate.h (inline_param_summary::equal_to): New.
1548         * ipa-prop.c (ipa_agg_jf_item::equal_to): New.
1549         * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
1550         (ipa_agg_jump_function): Implement equal_to member function.
1552 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
1554         * ipa-fnsummary.c (inline_read_section): Set vector size
1555         ahead of time.
1557 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
1559         * ipa-fnsummary.c (ipa_call_context): New constructor.
1560         (estimate_node_size_and_time): Turn to ...
1561         (ipa_call_context::estimate_size_and_time): ... this one.
1562         (ipa_call_context::release): New.
1563         * ipa-fnsummary.h (ipa_call_context): New class.
1564         (estimate_node_size_and_time): Remove.
1565         * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
1566         do_estimate_edge_hints): Update.
1568 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
1570         * config.in: Regenerate.
1571         * configure: Regenerate.
1572         * configure.ac: Check for mallinfo.
1573         * ggc-common.c: Include malloc.h if available;
1574         include options.h
1575         (report_heap_memory_use): New functoin.
1576         * ggc-page.c (ggc_grow): Do not print "start".
1577         * ggc.h (report_heap_memory_use): Declare.
1578         * pases.c (execute_one_pass): Report memory after IPA passes.
1579         (ipa_read_summaries_1): Likewise.
1580         (ipa_read_optimization_summaries_1): Likewise.
1582 2019-11-02  Jakub Jelinek  <jakub@redhat.com>
1584         * gimplify.h (omp_construct_selector_matches): Change return
1585         type to int, add a new SCORES argument.
1586         * gimplify.c (omp_construct_selector_matches): Likewise.  If
1587         SCORES is non-NULL, compute scores of each construct.
1588         * omp-general.h (omp_get_context_selector): Declare.
1589         * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
1590         Adjust omp_construct_selector_matches callers.
1591         (omp_get_context_selector): New function, moved from c-family/c-omp.c.
1592         (omp_context_compute_score): New function.
1593         (omp_resolve_declare_variant): Compute scores and decide based on
1594         that.
1596         PR bootstrap/92314
1597         * configure.ac: Don't look for omp-device-properties files from
1598         installed offloading compilers.  Instead add tmake_file snippets
1599         for configured offloading targets and use files they generate.
1600         * Makefile.in (install): Don't depend on
1601         install-omp-device-properties.
1602         (install-omp-device-properties): Remove goal.
1603         * config/i386/t-omp-device: New file.
1604         * config/i386/t-intelmic (omp-device-properties): Remove goal.
1605         * config/nvptx/t-omp-device: New file.
1606         * config/nvptx/t-nvptx (omp-device-properties): Remove goal.
1607         * configure: Regenerated.
1609         * omp-general.h (omp_context_selector_set_compare): Declare.
1610         * omp-general.c (omp_construct_simd_compare,
1611         omp_context_selector_props_compare, omp_context_selector_set_compare,
1612         omp_context_selector_compare): New functions.
1613         (omp_resolve_declare_variant): Prune variants that are strict subset
1614         of another variant.
1616 2019-11-01  Martin Sebor  <msebor@redhat.com>
1618         PR middle-end/91679
1619         PR middle-end/91647
1620         PR middle-end/91463
1621         PR middle-end/92312
1622         * doc/invoke.texi (-Wzero-length-bounds): Document.
1623         * gimple-match-head.c (try_conditional_simplification): Use memcpy
1624         instead of a hand-rolled loop to avoid PR 92323.
1625         * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
1626         with initializers.
1627         (vrp_prop::check_mem_ref): Handle declared struct objects.
1628         * tree.c (last_field): New function.
1629         (array_at_struct_end_p): Handle MEM_REF.
1630         (get_initializer_for): New helper.
1631         (component_ref_size): Add argument.  Rename locals.  Call
1632         get_initializer_for instead of fold_ctor_reference.  Correct handling
1633         of flexible array members.
1634         * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.
1636 2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>
1638         * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
1639         * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS,
1640         UNSPEC_VSX_CVSPUXDS): Remove.
1641         (vsx_xvcvspdp): New define_expand, old define_insn split to...
1642         (vsx_xvcvspdp_be): ... this.  New.  And...
1643         (vsx_xvcvspdp_le): ... this.  New.
1644         (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
1645         (vsx_xvcv<su>xwdp_be): ... this.  New.  And...
1646         (vsx_xvcv<su>xwdp_le): ... this.  New.
1647         (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
1648         (vsx_xvcvsp<su>xds_be): ... this.  New.  And...
1649         (vsx_xvcvsp<su>xds_le): ... this.  New.
1651 2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>
1653         * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
1654         UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
1655         UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
1656         UNSPEC_VSX_XVCVSPSXWS): Remove.
1657         (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
1658         vsx_xvcv<su>xwsp): Update define_insn RTL patterns.
1660 2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>
1662         * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
1663         (UNSPEC_VSX_XVCDPSP): Remove.
1664         * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
1665         Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.
1667 2019-11-01  Tobias Burnus  <tobias@codesourcery.com>
1669         * hooks.c (hook_tree_tree_bool_null): New.
1670         * hooks.h (hook_tree_tree_bool_null): Declare.
1671         * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
1672         (LANG_HOOKS_DECLS): Add it.
1673         * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
1674         * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
1675         (lower_omp_target): Handle Fortran array with descriptor in
1676         OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.
1678 2019-10-31  Richard Sandiford  <richard.sandiford@arm.com>
1680         * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
1681         Assert that the type we store in abi_vector_types is its own
1682         main variant.
1683         (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
1685 2019-10-31  Richard Earnshaw  <rearnsha@arm.com>
1687         * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
1688         from a CONST_INT address when TARGET_THUMB2.
1690 2019-10-31  Richard Earnshaw  <rearnsha@arm.com>
1692         * config/arm/arm.md (add_not_cin): New insn.
1693         (add_not_shift_cin): Likewise.
1695 2019-10-31  Martin Liska  <mliska@suse.cz>
1697         * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
1698         * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
1699         and compare_memory_operand.
1701 2019-10-31  Jakub Jelinek  <jakub@redhat.com>
1703         * configure.ac: Compute and substitute omp_device_properties and
1704         omp_device_property_deps.
1705         * Makefile.in (generated_files): Add omp-device-properties.h.
1706         (omp-general.o): Depend on omp-device-properties.h.
1707         (omp_device_properties): New make variable.
1708         (omp-device-properties.h, s-omp-device-properties-h,
1709         install-omp-device-properties): New goals.
1710         (install): Depend on install-omp-device-properties for accelerators.
1711         * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
1712         * target.h (enum omp_device_kind_arch_isa): New enum.
1713         * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
1714         documentation.
1715         * omp-general.c: Include omp-device-properties.h.
1716         (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
1717         colon instead of comma.
1718         (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
1719         functions.
1720         (omp_context_selector_matches): Implement device set arch/isa
1721         selectors, improve device set kind selector handling.
1722         * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
1723         * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
1724         TARGET_SIMD_CLONE_USABLE): Formatting fix.
1725         (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
1726         ix86_omp_device_kind_arch_isa.
1727         * config/i386/i386-options.c (struct ix86_target_opts): Move type
1728         definition from ix86_target_string to file scope.
1729         (isa2_opts, isa_opts): Moved arrays from ix86_target_string function
1730         to file scope.
1731         (ix86_omp_device_kind_arch_isa): New function.
1732         (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
1733         isa_opts definitions to file scope.
1734         * config/i386/t-intelmic (omp-device-properties): New goal.
1735         * config/nvptx/t-nvptx (omp-device-properties): Likewise.
1736         * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
1737         (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
1738         nvptx_omp_device_kind_arch_isa.
1739         * configure: Regenerate.
1740         * doc/tm.texi: Regenerate.
1742         PR middle-end/92231
1743         * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
1744         DECL_BUILT_IN in comment.  Remove redundant ()s around return
1745         argument.
1746         * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
1747         before calling fndecl_built_in_p.
1748         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
1749         TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
1750         fndecl_built_in_p on it.
1752 2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1754         * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
1756 2019-10-31  Martin Liska  <mliska@suse.cz>
1758         * config/arm/arm.c (arm_get_pcs_model): Remove usage
1759         of cgraph_local_info and use local_info_node instead.
1760         * config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
1761         (bfin_function_ok_for_sibcall): Likewise.
1762         * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
1763         (must_reload_pic_reg_p): Likewise.
1765 2019-10-31  Jakub Jelinek  <jakub@redhat.com>
1767         PR c++/90947
1768         * tree.h (type_initializer_zero_p): Remove.
1769         * tree.c (type_initializer_zero_p): Remove.
1771 2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1773         * doc/invoke.texi (-Wshadow, -Wshadow=global
1774         -Wshadow=local, -Wshadow=compatible-local): Update documentation.
1776 2019-10-30  Tobias Burnus  <tobias@codesourcery.com>
1778         * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
1779         GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
1780         and 'target exit data'.
1782 2019-10-30  Martin Jambor  <mjambor@suse.cz>
1784         ipa/92278
1785         * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
1786         availability comparison.
1788 2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1790         * config/msp430/msp430.c (msp430_expand_helper): Support expansion of
1791         calls to __mspabi_mpy* functions.
1792         * config/msp430/msp430.md (mulhisi3): New define_expand.
1793         (umulhisi3): New define_expand.
1794         (*mulhisi3_inline): Use old mulhisi3 define_insn.
1795         (*umulhisi3_inline): Use old umulhisi3 define_insn.
1797 2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1799         * config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
1800         (msp430_check_plus_not_high_mem): New.
1801         (msp430_op_not_in_high_mem): Use new functions to check if the operand
1802         might be in low memory.
1803         Indicate that a 16-bit absolute address is in lower memory.
1805 2019-10-30  Martin Jambor  <mjambor@suse.cz>
1807         * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
1808         ultimate_alias_target.
1810 2019-10-30  Richard Biener  <rguenther@suse.de>
1812         PR tree-optimization/92275
1813         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
1814         Copy all loop-closed PHIs.
1816 2019-10-30  Martin Liska  <mliska@suse.cz>
1818         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
1819         const_tree as function argument.
1820         (func_checker::compare_decl): Likewise.
1821         (func_checker::operand_equal_p): Likewise.
1822         (func_checker::compare_variable_decl): Likewise.
1823         (func_checker::parse_labels): Likewise.
1824         * ipa-icf-gimple.h: Likewise.
1826 2019-10-30  Martin Liska  <mliska@suse.cz>
1828         * ipa-icf-gimple.c (func_checker::compatible_types_p):
1829         Do not compare alias sets.  It's handled by operand_equal_p.
1831 2019-10-30  Martin Liska  <mliska@suse.cz>
1833         * ipa-icf-gimple.c (func_checker::func_checker): Do not
1834         initialize m_compare_polymorphic.
1835         (func_checker::compare_decl): Do not compare polymorphic types.
1836         * ipa-icf-gimple.h (m_compare_polymorphic): Remove.
1837         * ipa-icf.c (sem_function::equals_private): Do not call
1838         compare_polymorphic_p.
1840 2019-10-30  Martin Liska  <mliska@suse.cz>
1842         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
1843         compare_operand.
1844         (func_checker::compare_memory_operand): Remove.
1845         (func_checker::compare_cst_or_decl): Remove.
1846         (func_checker::operand_equal_valueize): Do not handle
1847         FIELD_DECL.
1848         (func_checker::compare_gimple_call): Call compare_operand.
1849         (func_checker::compare_gimple_assign): Likewise.
1850         * ipa-icf-gimple.h: Remove compare_cst_or_decl.
1851         * ipa-icf.c (sem_function::icf_handled_component_p): Remove.
1852         * ipa-icf.h (icf_handled_component_p): Remove.
1854 2019-10-30  Martin Liska  <mliska@suse.cz>
1856         * ipa-icf-gimple.c (func_checker::hash_operand): New.
1857         (func_checker::compare_cst_or_decl): Remove handling
1858         of FIELD_DECL.
1859         (func_checker::compare_operand): Transform to ...
1860         (func_checker::operand_equal_p): ... this.
1861         * ipa-icf-gimple.h (class func_checker): Add
1862         operand_equal_p and hash_operand.
1863         * ipa-icf.c (sem_function::equals_private): Fix
1864         pushing and popping of cfun.
1866 2019-10-30  Martin Liska  <mliska@suse.cz>
1868         * fold-const.c (operand_equal_p): Move to ...
1869         (operand_compare::operand_equal_p): ... here.
1870         (operand_compare::verify_hash_value): New.
1871         (add_expr): Move to ...
1872         (operand_compare::hash_operand): ... here.
1873         * fold-const.h (operand_equal_p): Move to the class.
1874         (class operand_compare): New.
1875         * tree.c (add_expr): Remove.
1877 2019-10-30  Martin Liska  <mliska@suse.cz>
1879         * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
1880         * tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
1882 2019-10-30  Martin Liska  <mliska@suse.cz>
1884         PR lto/91393
1885         PR lto/88220
1886         * cgraph.c (cgraph_node::get_create): Overwrite node->order
1887         from a first_clone in order to get proper LTO section
1888         in LTO stream.
1889         (cgraph_node::get_untransformed_body):
1890         Use lto_get_section_data where symtab_node::order
1891         must be provided.
1892         * cgraphclones.c (cgraph_node::find_replacement):
1893         Update also symbol order.
1894         * ipa-fnsummary.c (ipa_fn_summary_read):
1895         Use new function lto_get_summary_section_data.
1896         * ipa-hsa.c (ipa_hsa_read_summary): Likewise.
1897         * ipa-icf.c (sem_item_optimizer::read_summary):
1898         Likewise.
1899         * ipa-prop.c (ipa_prop_read_jump_functions):
1900         Likewise.
1901         (ipcp_read_transformation_summaries): Likewise.
1902         * ipa-sra.c (ipa_sra_read_summary): Likewise.
1903         * lto-cgraph.c (input_node): Add also order_base.
1904         (input_varpool_node): Likewise.
1905         (input_cgraph_1): Assign the order_base.
1906         (input_cgraph_opt_summary): Use new lto_get_summary_section_data.
1907         * lto-opts.c (lto_write_options): Pass new argument.
1908         * lto-section-in.c (lto_get_section_data): Add new argumente order.
1909         (lto_get_summary_section_data): New.
1910         (lto_get_raw_section_data): Add order argument.
1911         (lto_create_simple_input_block): Likewise.
1912         * lto-section-out.c (lto_destroy_simple_output_block):
1913         Likewise.
1914         * lto-streamer-in.c (lto_input_toplevel_asms):
1915         Use lto_get_summary_section_data.
1916         (lto_input_mode_table): Likewise.
1917         * lto-streamer-out.c (produce_asm): Pass symtab_node::order.
1918         (lto_output_toplevel_asms): Pass new argument.
1919         (copy_function_or_variable): Likewise.
1920         (produce_lto_section):Likewise.
1921         (produce_symtab): Likewise.
1922         (lto_write_mode_table): Likewise.
1923         (produce_asm_for_decls): Likewise.
1924         * lto-streamer.c (lto_get_section_name): Concat symbol name
1925         and symbol order.
1926         * lto-streamer.h (lto_get_section_data): Add order argument.
1927         (lto_get_summary_section_data): New.
1928         (lto_get_raw_section_data): Add order argument.
1929         (lto_get_section_name): Likewise.
1930         * varpool.c (varpool_node::get_constructor): Pass order argument.
1932 2019-10-30  Jakub Jelinek  <jakub@redhat.com>
1934         PR tree-optimization/92262
1935         * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare
1936         ubase or cbase here.
1937         (remove_unused_ivs): Unshare comp before using it.
1939 2019-10-30  Jan Hubicka  <hubicka@ucw.cz>
1941         * ipa-prop.c (update_jump_functions_after_inlining):
1942         Watch for missing summaries.
1944 2019-10-30  Richard Biener  <rguenther@suse.de>
1946         PR tree-optimization/65930
1947         * tree-vect-loop.c (vect_is_simple_reduction): For reduction
1948         chains also allow a leading and trailing conversion.
1949         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
1950         intermediate reduction chains.
1951         (vect_analyze_slp_instance): Likewise.  Build a SLP
1952         node for a trailing conversion manually.
1954 2019-10-30  Martin Liska  <mliska@suse.cz>
1956         * cgraph.c (cgraph_node::local_info): Transform to ...
1957         (cgraph_node::local_info_node): ... this.
1958         (cgraph_node::dump): Remove cgraph_local_info and
1959         put its fields directly into cgraph_node.
1960         (cgraph_node::get_availability): Likewise.
1961         (cgraph_node::make_local): Likewise.
1962         (cgraph_node::verify_node): Likewise.
1963         * cgraph.h (struct GTY): Likewise.
1964         * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise.
1965         (duplicate_thunk_for_node): Likewise.
1966         (cgraph_node::create_clone): Likewise.
1967         (cgraph_node::create_virtual_clone): Likewise.
1968         (cgraph_node::create_version_clone): Likewise.
1969         * cgraphunit.c (cgraph_node::reset): Likewise.
1970         (cgraph_node::finalize_function): Likewise.
1971         (cgraph_node::add_new_function): Likewise.
1972         (analyze_functions): Likewise.
1973         * combine.c (setup_incoming_promotions): Likewise.
1974         * config/i386/i386.c (ix86_function_regparm): Likewise.
1975         (ix86_function_sseregparm): Likewise.
1976         (init_cumulative_args): Likewise.
1977         * ipa-cp.c (determine_versionability): Likewise.
1978         (count_callers): Likewise.
1979         (set_single_call_flag): Likewise.
1980         (initialize_node_lattices): Likewise.
1981         (estimate_local_effects): Likewise.
1982         (create_specialized_node): Likewise.
1983         (identify_dead_nodes): Likewise.
1984         * ipa-fnsummary.c (compute_fn_summary): Likewise.
1985         (ipa_fn_summary_generate): Likewise.
1986         * ipa-hsa.c (check_warn_node_versionable): Likewise.
1987         (process_hsa_functions): Likewise.
1988         * ipa-icf.c (set_local): Likewise.
1989         * ipa-inline-analysis.c (initialize_inline_failed): Likewise.
1990         * ipa-inline.c (speculation_useful_p): Likewise.
1991         * ipa-profile.c (ipa_propagate_frequency): Likewise.
1992         (ipa_profile): Likewise.
1993         * ipa-split.c (split_function): Likewise.
1994         (execute_split_functions): Likewise.
1995         * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise.
1996         (ipa_sra_ipa_function_checks): Likewise.
1997         * ipa-visibility.c (function_and_variable_visibility): Likewise.
1998         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
1999         * lto-cgraph.c (lto_output_node): Likewise.
2000         (input_overwrite_node): Likewise.
2001         * multiple_target.c (expand_target_clones): Likewise.
2002         * omp-simd-clone.c (simd_clone_create): Likewise.
2003         * trans-mem.c (expand_call_tm): Likewise.
2004         (ipa_tm_mayenterirr_function): Likewise.
2005         (ipa_tm_diagnose_tm_safe): Likewise.
2006         (ipa_tm_diagnose_transaction): Likewise.
2007         (ipa_tm_create_version): Likewise.
2008         (ipa_tm_transform_calls_redirect): Likewise.
2009         (ipa_tm_execute): Likewise.
2010         * tree-inline.c (expand_call_inline): Likewise.
2012 2019-10-29  Martin Liska  <mliska@suse.cz>
2014         * symbol-summary.h (function_summary): Pass memory location
2015         to underlaying hash_map (or vec).
2016         (V>::fast_function_summary): Likewise.
2018 2019-10-29  Martin Liska  <mliska@suse.cz>
2020         * ggc.h (ggc_alloc_no_dtor): New function.
2021         * ipa-fnsummary.c (ipa_free_fn_summary): Call
2022         destructor and ggc_free.
2023         (ipa_free_size_summary): Call delete instead
2024         of release.
2025         * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor.
2026         * ipa-prop.c (ipa_check_create_edge_args): Likewise.
2027         (ipa_free_all_edge_args): Call destructor and ggc_free.
2028         (ipa_free_all_node_params): Likewise.
2029         (ipcp_free_transformation_sum): Likewise.
2030         * ipa-prop.h (ipa_check_create_node_params):
2031         Call new ggc_alloc_no_dtor.
2032         * ipa-sra.c (ipa_sra_generate_summary): Likewise.
2033         (ipa_sra_analysis): Call destructor and ggc_free.
2034         Replace release with delete operator.
2035         * symbol-summary.h (release): Remove ..
2036         (V>::~fast_function_summary): and move logic here.
2037         Likewise for other classes.
2039 2019-10-29  Richard Biener  <rguenther@suse.de>
2041         PR tree-optimization/92260
2042         * tree-vect-slp.c (vect_get_constant_vectors): Special-case
2043         lane-reducing ops.
2045 2019-10-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2047         PR tree-optimization/88915
2048         * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
2049         * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
2050         and make the valueize function pointer also take a void pointer.
2051         * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap
2052         around vn_valueize, to call it without a context.
2053         (process_bb): Use vn_valueize_wrapper instead of vn_valueize.
2054         * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos.
2055         (~_loop_vec_info): Release epilogue_vinfos.
2056         (vect_analyze_loop_costing): Use knowledge of main VF to estimate
2057         number of iterations of epilogue.
2058         (vect_analyze_loop_2): Adapt to analyse main loop for all supported
2059         vector sizes when vect-epilogues-nomask=1.  Also keep track of lowest
2060         versioning threshold needed for main loop.
2061         (vect_analyze_loop): Likewise.
2062         (find_in_mapping): New helper function.
2063         (update_epilogue_loop_vinfo): New function.
2064         (vect_transform_loop): When vectorizing epilogues re-use analysis done
2065         on main loop and call update_epilogue_loop_vinfo to update it.
2066         * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert
2067         stmts on loop preheader edge.
2068         (vect_do_peeling): Enable skip-vectors when doing loop versioning if
2069         we decided to vectorize epilogues.  Update epilogues NITERS and
2070         construct ADVANCE to update epilogues data references where needed.
2071         * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos.
2072         (vect_do_peeling, vect_update_inits_of_drs,
2073          determine_peel_for_niter, vect_analyze_loop): Add or update
2074         declarations.
2075         * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already
2076         created loop_vec_info's for epilogues when available.  Otherwise analyse
2077         epilogue separately.
2079 2019-10-29  Richard Biener  <rguenther@suse.de>
2081         * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT
2082         example.
2084 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2086         * tree-vect-stmts.c (vectorizable_condition): Get the reduction
2087         index for the COND_EXPR from stmt_info rather than reduc_info.
2089 2019-10-29  Richard Biener  <rguenther@suse.de>
2091         PR tree-optimization/65930
2092         * tree-vect-loop.c (check_reduction_path): Relax single-use
2093         check allowing out-of-loop uses.
2094         (vect_is_simple_reduction): SLP reduction chains cannot have
2095         intermediate stmts used outside of the loop.
2096         (vect_create_epilog_for_reduction): The adjustment might need
2097         to be converted.
2098         (vectorizable_reduction): Annotate live stmts of the reduction
2099         chain with STMT_VINFO_REDUC_DEF.
2100         * tree-vect-stms.c (process_use): Remove no longer true asserts.
2102 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2104         * calls.c (pass_by_reference): Leave the target to decide whether
2105         POLY_INT_CST-sized arguments should be passed by value or reference,
2106         rather than forcing them to be passed by reference.
2107         (must_pass_in_stack_var_size): Likewise.
2108         * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from
2109         V31_REGNUM to P15_REGNUM.
2110         * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args):
2111         Take an extra "silent_p" parameter, defaulting to false.
2112         (aarch64_sve::svbool_type_p): Declare.
2113         (aarch64_sve::nvectors_if_data_type): Likewise.
2114         * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro.
2115         (aarch64_frame::reg_offset): Turn into poly_int64s.
2116         (aarch64_frame::save_regs_size): Likewise.
2117         (aarch64_frame::below_hard_fp_saved_regs_size): New field.
2118         (aarch64_frame::sve_callee_adjust): Likewise.
2119         (aarch64_frame::spare_reg_reg): Likewise.
2120         (ARM_PCS_SVE): New arm_pcs value.
2121         (CUMULATIVE_ARGS::aapcs_nprn): New field.
2122         (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise.
2123         (CUMULATIVE_ARGS::silent_p): Likewise.
2124         (BITS_PER_SVE_PRED): New macro.
2125         * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New
2126         function.  Reject aarch64_vector_pcs attributes on SVE functions.
2127         (aarch64_attribute_table): Use the above handler.
2128         (aarch64_sve_abi): New function.
2129         (aarch64_sve_argument_p): Likewise.
2130         (aarch64_returns_value_in_sve_regs_p): Likewise.
2131         (aarch64_takes_arguments_in_sve_regs_p): Likewise.
2132         (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS
2133         descriptor for them.
2134         (aarch64_simd_decl_p): Delete.
2135         (aarch64_emit_cfi_for_reg_p): New function.
2136         (aarch64_reg_save_mode): Remove the fndecl argument and instead use
2137         crtl->abi to choose the mode for FP registers.  Handle the SVE PCS.
2138         (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers
2139         as partly clobbered for the SVE PCS.
2140         (aarch64_function_ok_for_sibcall): Check whether the two functions
2141         use the same ABI, rather than checking specifically for whether
2142         they're aarch64_vector_pcs functions.
2143         (aarch64_pass_by_reference): Raise an error for attempts to pass
2144         SVE arguments when SVE is disabled.  Pass SVE arguments by reference
2145         if there are not enough free registers left, or if the argument is
2146         variadic.
2147         (aarch64_function_value): Handle SVE predicates, vectors and tuples.
2148         (aarch64_return_in_memory): Do not return SVE predicates, vectors and
2149         tuples in memory.
2150         (aarch64_layout_arg): Take a function_arg_info rather than
2151         individual properties.  Handle SVE predicates, vectors and tuples.
2152         Raise an error if they are passed to unprototyped functions.
2153         (aarch64_function_arg): If the silent_p flag is set, suppress the
2154         usual error about using float registers without TARGET_FLOAT.
2155         (aarch64_init_cumulative_args): Take a silent_p parameter and store
2156         it in the cumulative_args structure.  Initialize aapcs_nprn and
2157         aapcs_nextnprn.  If the silent_p flag is set, suppress the usual
2158         error about using float registers without TARGET_FLOAT.
2159         If the silent_p flag is not set, also raise an error about
2160         using SVE functions when SVE is disabled.
2161         (aarch64_function_arg_advance): Update the call to aarch64_layout_arg,
2162         and call it for SVE functions too.  Update aapcs_nprn similarly
2163         to the other register counts.
2164         (aarch64_layout_frame): If a big-endian function needs to save
2165         and restore Z8-Z15, search for a spare predicate that it can use.
2166         Store SVE predicates at the bottom of the register save area,
2167         followed by SVE vectors, then followed by the normal slots.
2168         Keep pointing the hard frame pointer at the base of the normal slots,
2169         above the SVE vectors.  Update the various frame creation and
2170         tear-down strategies for the new layout, initializing the new
2171         sve_callee_adjust field.  Add an additional layout for frames
2172         whose saved registers are all SVE registers.
2173         (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets.
2174         (aarch64_return_address_signing_enabled): Likewise.
2175         (aarch64_push_regs, aarch64_pop_regs): Update calls to
2176         aarch64_reg_save_mode.
2177         (aarch64_adjust_sve_callee_save_base): New function.
2178         (aarch64_add_cfa_expression): Move earlier in file.  Take the
2179         saved register as an rtx rather than a register number and use
2180         its mode for the MEM slot.
2181         (aarch64_save_callee_saves): Remove the mode argument and instead
2182         use aarch64_reg_save_mode to get the mode of each save slot.
2183         Add a hard_fp_valid_p parameter.  Cope with poly_int64 register
2184         offsets.  Allow GP offsets to be saved at a VL-based offset from
2185         the stack, handling this case using the frame pointer if available
2186         or a temporary register otherwise.  Use ST1D to save Z8-Z15 for
2187         big-endian SVE functions; use normal moves for other SVE saves.
2188         Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p
2189         returns true.  Add explicit CFA notes when not storing via the
2190         stack pointer.  Do not try to pair SVE saves.
2191         (aarch64_restore_callee_saves): Cope with poly_int64 register
2192         offsets.  Use LD1D to restore Z8-Z15 for big-endian SVE functions;
2193         use normal moves for other SVE restores.  Only add CFA restore notes
2194         if aarch64_emit_cfi_for_reg_p returns true.  Do not try to pair
2195         SVE restores.
2196         (aarch64_get_separate_components): Always keep the first SVE save
2197         in the prologue if we need to use it as a stack probe.  Don't allow
2198         Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets.
2199         Likewise the spare predicate register that they need.  Update the
2200         offset calculation to account for the SVE save area.  Use the
2201         appropriate range check for SVE LDR and STR instructions.
2202         (aarch64_components_for_bb): Cope with poly_int64 reg_offsets.
2203         (aarch64_process_components): Likewise.  Update the offset
2204         calculation to account for the SVE save area.  Only mark the
2205         save as frame-related if aarch64_emit_cfi_for_reg_p returns true.
2206         Do not try to pair SVE saves.
2207         (aarch64_allocate_and_probe_stack_space): Cope with poly_int64
2208         reg_offsets.  When handling the final allocation, expect the
2209         first SVE register save to be part of the initial allocation
2210         and for it to act as a probe at SP.  Account for the SVE callee
2211         save area in the dump information.
2212         (aarch64_expand_prologue): Update the frame diagram.  Fold the
2213         SVE callee allocation into the initial allocation if stack clash
2214         protection is enabled.  Use new variables to track the offset
2215         of the frame chain (and hard frame pointer) from the current
2216         stack pointer, and likewise the offset of the bottom of the
2217         register save area.  Update calls to aarch64_save_callee_saves
2218         and aarch64_add_cfa_expression.  Apply sve_callee_adjust before
2219         saving the FP&SIMD registers.  Save the predicate registers.
2220         (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size
2221         into account when setting the stack pointer from the frame pointer,
2222         and when deciding whether we can inherit the initial adjustment
2223         amount from the prologue.  Restore the predicate registers after
2224         the vector registers, then apply sve_callee_adjust, then restore
2225         the general registers.
2226         (aarch64_secondary_reload): Don't use secondary SVE reloads
2227         for VNx16BImode.
2228         (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type.
2229         (aarch64_short_vector_p): Return false for SVE types.
2230         (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha
2231         at the start of the function.  Return false for SVE types.
2232         (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE
2233         functions too.
2234         (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming.
2235         * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend
2236         to big-endian targets for bytewise moves.
2237         (*aarch64_sve_mov<mode>_be): Exclude the bytewise case.
2239 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2240             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2241             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2243         * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers.
2244         Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and
2245         aarch64-sve-builtins-base.o to extra_objs.  Add
2246         aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles.
2247         * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule.
2248         (aarch64-sve-builtins-shapes.o): Likewise.
2249         (aarch64-sve-builtins-base.o): New rules.
2250         * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function.
2251         (aarch64_resolve_overloaded_builtin): Likewise.
2252         (aarch64_check_builtin_call): Likewise.
2253         (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin
2254         and aarch64_check_builtin_call in targetm.  Register the GCC aarch64
2255         pragma.
2256         * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro.
2257         (aarch64_svprfop): New enum.
2258         (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value.
2259         (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare.
2260         (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise.
2261         (aarch64_output_sve_cnt_pat_immediate): Likewise.
2262         (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise.
2263         (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p)
2264         (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p)
2265         (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise.
2266         (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise.
2267         (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise.
2268         (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise.
2269         (aarch64_sve::mangle_builtin_type): Likewise.
2270         (aarch64_sve::resolve_overloaded_builtin): Likewise.
2271         (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin)
2272         (aarch64_sve::expand_builtin): Likewise.
2273         * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public.
2274         (aarch64_sve_int_mode): Likewise.
2275         (aarch64_ptrue_all_mode): New function.
2276         (aarch64_convert_sve_data_to_pred): Make public.
2277         (svprfop_token): New function.
2278         (aarch64_output_sve_prefetch): Likewise.
2279         (aarch64_fold_sve_cnt_pat): Likewise.
2280         (aarch64_output_sve_cnt_pat_immediate): Likewise.
2281         (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO
2282         instead of gen_while_ult.
2283         (aarch64_replace_reg_mode): Make public.
2284         (aarch64_init_builtins): Call aarch64_sve::init_builtins.
2285         (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE.
2286         (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise.
2287         (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise.
2288         (aarch64_mangle_type): Call aarch64_sve::mangle_type.
2289         (aarch64_sve_sqadd_sqsub_immediate_p): New function.
2290         (aarch64_sve_ptrue_svpattern_p): Likewise.
2291         (aarch64_sve_pred_valid_immediate): Check
2292         aarch64_sve_ptrue_svpattern_p.
2293         (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p)
2294         (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New
2295         functions.
2296         * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE)
2297         (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS)
2298         (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR)
2299         (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR)
2300         (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH)
2301         (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE):
2302         New unspecs.
2303         * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY)
2304         (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW)
2305         (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators.
2306         (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA)
2307         (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV)
2308         (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD)
2309         (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs.
2310         (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise.
2311         (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise.
2312         (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise.
2313         (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise.
2314         (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270)
2315         (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180)
2316         (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise.
2317         (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise.
2318         (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise.
2319         (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise.
2320         (Vesize): Handle partial vector modes.
2321         (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New
2322         mode attributes.
2323         (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code
2324         iterators.
2325         (s, paired_extend, inc_dec): New code attributes.
2326         (SVE_INT_ADDV, CLAST, LAST): New int iterators.
2327         (SVE_INT_UNARY): Add UNSPEC_RBIT.
2328         (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators.
2329         (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise.
2330         (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX.
2331         (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
2332         UNSPEC_COND_FMULX.
2333         (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators.
2334         (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise.
2335         (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
2336         (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX.
2337         (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA)
2338         (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE)
2339         (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY)
2340         (SVE_BRK_BINARY, SVE_PITER): New int iterators.
2341         (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE,
2342         UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT,
2343         UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS,
2344         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270,
2345         UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90,
2346         UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90,
2347         UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX,
2348         UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and
2349         UNSPEC_COND_FSCALE.
2350         (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
2351         (binqops_op, binqops_op_rev, last_op): New int attributes.
2352         (su): Handle UNSPEC_SADDV and UNSPEC_UADDV.
2353         (fn, ab): New int attributes.
2354         (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*.
2355         (while_optab_cmp, brk_op, sve_pred_op): New int attributes.
2356         (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART,
2357         UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and
2358         UNSPEC_RBIT.
2359         (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE,
2360         UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL,
2361         UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX,
2362         UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE.
2363         (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
2364         UNSPEC_COND_FMULX.
2365         (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*.
2366         (brk_reg_con, brk_reg_opno): New int attributes.
2367         (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle
2368         UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX.
2369         (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and
2370         UNSPEC_COND_FMIN.
2371         (max_elem_bits): New int attribute.
2372         (min_elem_bits): Handle UNSPEC_RBIT.
2373         * config/aarch64/predicates.md (subreg_lowpart_operator): Handle
2374         TRUNCATE as well as SUBREG.
2375         (ascending_int_parallel, aarch64_simd_reg_or_minus_one)
2376         (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand)
2377         (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate)
2378         (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate)
2379         (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h)
2380         (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d)
2381         (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b)
2382         (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w)
2383         (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b)
2384         (aarch64_gather_scale_operand_h): New predicates.
2385         * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb)
2386         (vgd, vgh, vgw, vsQ, vsS): New constraints.
2387         * config/aarch64/aarch64-sve.md: Add a note on the FFR handling.
2388         (*aarch64_sve_reinterpret<mode>): Allow any source register
2389         instead of requiring an exact match.
2390         (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc)
2391         (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest)
2392         (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt)
2393         (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest)
2394         (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
2395         (aarch64_update_ffrt): New patterns.
2396         (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
2397         (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2398         (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
2399         (@aarch64_ld<fn>f1<mode>): New patterns.
2400         (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
2401         (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2402         (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
2403         (@aarch64_ldnt1<mode>): New patterns.
2404         (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for
2405         the scalar part of the address.
2406         (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the
2407         scalar part of the addresse and add an alternative for handling
2408         nonzero offsets.
2409         (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
2410         (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw)
2411         (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2412         (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
2413         (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
2414         (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
2415         (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>)
2416         (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw)
2417         (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2418         (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
2419         (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
2420         (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
2421         (@aarch64_sve_prefetch<mode>): New patterns.
2422         (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>)
2423         (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>)
2424         (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw)
2425         (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw)
2426         (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>)
2427         (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
2428         (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
2429         (@aarch64_stnt1<mode>): New patterns.
2430         (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for
2431         the scalar part of the address.
2432         (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for
2433         the scalar part of the addresse and add an alternative for handling
2434         nonzero offsets.
2435         (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
2436         (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw)
2437         (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
2438         (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
2439         (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
2440         (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw):
2441         New patterns.
2442         (vec_duplicate<mode>): Use QI as the mode of the input operand.
2443         (extract_last_<mode>): Generalize to...
2444         (@extract_<LAST:last_op>_<mode>): ...this.
2445         (*<SVE_INT_UNARY:optab><mode>2): Rename to...
2446         (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this.
2447         (@cond_<SVE_INT_UNARY:optab><mode>): New expander.
2448         (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern.
2449         (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise.
2450         (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders.
2451         (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern.
2452         (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise.
2453         (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to...
2454         (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this.
2455         (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander.
2456         (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to...
2457         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this.
2458         (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns.
2459         (*aarch64_adr_uxtw_unspec): Likewise.
2460         (*aarch64_adr_uxtw): Rename to...
2461         (*aarch64_adr_uxtw_and): ...this.
2462         (@aarch64_adr<mode>_shift): New expander.
2463         (*aarch64_adr_shift_sxtw): New pattern.
2464         (aarch64_<su>abd<mode>_3): Rename to...
2465         (@aarch64_pred_<su>abd<mode>): ...this.
2466         (<su>abd<mode>_3): Update accordingly.
2467         (@aarch64_cond_<su>abd<mode>): New expander.
2468         (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern.
2469         (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise.
2470         (*<su>mul<mode>3_highpart): Rename to...
2471         (@aarch64_pred_<optab><mode>): ...this.
2472         (@cond_<MUL_HIGHPART:optab><mode>): New expander.
2473         (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern.
2474         (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise.
2475         (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to...
2476         (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this.
2477         (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker.
2478         (@aarch64_bic<mode>, @cond_bic<mode>): New expanders.
2479         (*v<ASHIFT:optab><mode>3): Rename to...
2480         (@aarch64_pred_<ASHIFT:optab><mode>): ...this.
2481         (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern.
2482         (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander.
2483         (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern.
2484         (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise.
2485         (@cond_asrd<mode>): New expander.
2486         (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns.
2487         (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2.
2488         (*sdiv_pow2<mode>3): Delete.
2489         (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander.
2490         (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern.
2491         (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise.
2492         (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern.
2493         (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise.
2494         (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to...
2495         (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this.
2496         (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern.
2497         (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker.
2498         (*add<SVE_F:mode>3): Rename to...
2499         (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives
2500         for SVE_STRICT_GP.
2501         (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern.
2502         (@cond_<SVE_COND_FCADD:optab><mode>): New expander.
2503         (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern.
2504         (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise.
2505         (*sub<SVE_F:mode>3): Rename to...
2506         (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives
2507         for SVE_STRICT_GP.
2508         (@aarch64_pred_abd<SVE_F:mode>): New expander.
2509         (*fabd<SVE_F:mode>3): Rename to...
2510         (*aarch64_pred_abd<SVE_F:mode>): ...this.
2511         (@aarch64_cond_abd<SVE_F:mode>): New expander.
2512         (*mul<SVE_F:mode>3): Rename to...
2513         (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives
2514         for SVE_STRICT_GP.
2515         (@aarch64_mul_lane_<SVE_F:mode>): New pattern.
2516         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize
2517         to...
2518         (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this.
2519         (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern.
2520         (*<nlogical><PRED_ALL:mode>3): Rename to...
2521         (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this.
2522         (*<nlogical><PRED_ALL:mode>3_cc): New pattern.
2523         (*<nlogical><PRED_ALL:mode>3_ptest): Likewise.
2524         (*<logical_nn><PRED_ALL:mode>3): Rename to...
2525         (aarch64_pred_<logical_nn><mode>_z): ...this.
2526         (*<logical_nn><PRED_ALL:mode>3_cc): New pattern.
2527         (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise.
2528         (*fma<SVE_I:mode>4): Rename to...
2529         (@aarch64_pred_fma<SVE_I:mode>): ...this.
2530         (*fnma<SVE_I:mode>4): Rename to...
2531         (@aarch64_pred_fnma<SVE_I:mode>): ...this.
2532         (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern.
2533         (*<SVE_FP_TERNARY:optab><mode>4): Rename to...
2534         (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this.
2535         (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker.
2536         (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern.
2537         (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise.
2538         (@cond_<SVE_COND_FCMLA:optab><mode>): New expander.
2539         (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern.
2540         (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise.
2541         (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise.
2542         (@aarch64_sve_tmad<mode>): Likewise.
2543         (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker.
2544         (*aarch64_sel_dup<mode>): Rename to...
2545         (@aarch64_sel_dup<mode>): ...this.
2546         (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern.
2547         (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise.
2548         (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise.
2549         (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to...
2550         (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this.
2551         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to.
2552         (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this.
2553         (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern.
2554         (*fcm<cmp_op><mode>): Rename to...
2555         (@aarch64_pred_fcm<cmp_op><mode>): ...this.  Make operand order
2556         match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
2557         (*fcmuo<mode>): Rename to...
2558         (@aarch64_pred_fcmuo<mode>): ...this.  Make operand order
2559         match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
2560         (@aarch64_pred_fac<cmp_op><mode>): New expander.
2561         (@vcond_mask_<PRED_ALL:mode><mode>): New pattern.
2562         (fold_extract_last_<mode>): Generalize to...
2563         (@fold_extract_<last_op>_<mode>): ...this.
2564         (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern.
2565         (*reduc_plus_scal_<SVE_I:mode>): Replace with...
2566         (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the
2567         DImode result explicit.
2568         (reduc_plus_scal_<mode>): Update accordingly.
2569         (*reduc_<optab>_scal_<SVE_I:mode>): Rename to...
2570         (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this.
2571         (*reduc_<optab>_scal_<SVE_F:mode>): Rename to...
2572         (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this.
2573         (*aarch64_sve_tbl<mode>): Rename to...
2574         (@aarch64_sve_tbl<mode>): ...this.
2575         (@aarch64_sve_compact<mode>): New pattern.
2576         (*aarch64_sve_dup_lane<mode>): Rename to...
2577         (@aarch64_sve_dup_lane<mode>): ...this.
2578         (@aarch64_sve_dupq_lane<mode>): New pattern.
2579         (@aarch64_sve_splice<mode>): Likewise.
2580         (aarch64_sve_<perm_insn><mode>): Rename to...
2581         (@aarch64_sve_<perm_insn><mode>): ...this.
2582         (*aarch64_sve_ext<mode>): Rename to...
2583         (@aarch64_sve_ext<mode>): ...this.
2584         (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker.
2585         (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename
2586         to...
2587         (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this.
2588         (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
2589         Rename to...
2590         (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
2591         ...this.
2592         (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander.
2593         (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise.
2594         (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern.
2595         (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename
2596         to...
2597         (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this.
2598         (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add
2599         a "@" marker.
2600         (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander.
2601         (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise.
2602         (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New
2603         pattern.
2604         (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to...
2605         (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this.
2606         (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander.
2607         (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern.
2608         (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a
2609         "@" marker.
2610         (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander.
2611         (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern.
2612         (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker.
2613         (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern.
2614         (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise.
2615         (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise.
2616         (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise.
2617         (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise.
2618         (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise.
2619         (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise.
2620         (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise.
2621         (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise.
2622         (aarch64_sve_cnt_pat): Likewise.
2623         (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
2624         (*aarch64_sve_incsi_pat): Likewise.
2625         (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
2626         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
2627         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
2628         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
2629         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
2630         (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
2631         (*aarch64_sve_decsi_pat): Likewise.
2632         (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
2633         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
2634         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
2635         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
2636         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
2637         (@aarch64_pred_cntp<mode>): Likewise.
2638         (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
2639         New expander.
2640         (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
2641         (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
2642         (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
2643         New expander.
2644         (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
2645         New pattern.
2646         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander.
2647         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
2648         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander.
2649         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
2650         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander.
2651         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
2652         (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
2653         New expander.
2654         (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
2655         (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
2656         (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
2657         New expander.
2658         (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
2659         New pattern.
2660         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New
2661         expander.
2662         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
2663         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New
2664         expander.
2665         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
2666         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New
2667         expander.
2668         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
2669         * config/aarch64/arm_sve.h: New file.
2670         * config/aarch64/aarch64-sve-builtins.h: Likewise.
2671         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
2672         * config/aarch64/aarch64-sve-builtins.def: Likewise.
2673         * config/aarch64/aarch64-sve-builtins-base.h: Likewise.
2674         * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
2675         * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
2676         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
2677         * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
2678         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
2680 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2682         * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>):
2683         New pattern.
2684         * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all
2685         SVE modes.
2687 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2689         * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants.
2690         * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to
2691         FFRT_REGNUM + 1.
2692         (FFR_REGS, PR_AND_FFR_REGS): New register classes.
2693         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them.
2694         * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function.
2695         (aarch64_hard_regno_nregs): Handle the new register classes.
2696         (aarch64_hard_regno_mode_ok): Likewise.
2697         (aarch64_regno_regclass): Likewise.
2698         (aarch64_class_max_nregs): Likewise.
2699         (aarch64_register_move_cost): Likewise.
2700         (aarch64_conditional_register_usage): Don't treat FFR and FFRT
2701         as general register_operands.
2703 2019-10-29  Martin Liska  <mliska@suse.cz>
2705         * ggc-common.c: One can't subtract unsigned types
2706         in compare function.
2708 2019-10-29  Martin Liska  <mliska@suse.cz>
2710         * cgraphunit.c (symbol_table::compile): Pass
2711         title as dump_memory_report argument.
2712         * toplev.c (dump_memory_report):  New argument.
2713         (finalize): Pass new argument.
2714         * toplev.h (dump_memory_report): Add argument.
2716 2019-10-29  Martin Liska  <mliska@suse.cz>
2718         * ggc-common.c: Move Leak to the first column.
2720 2019-10-29  Martin Liska  <mliska@suse.cz>
2722         * cgraphunit.c (symbol_table::compile): Remove argument
2723         for dump_memory_report.
2724         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
2725         (compare_final): Remove in order to make report
2726         better readable.
2727         * ggc.h (dump_ggc_loc_statistics):  Remove argument.
2728         * mem-stats.h (mem_alloc_description::get_list):
2729         Do not pass cmp.
2730         (mem_alloc_description::dump): Likewise here.
2731         * toplev.c (dump_memory_report): Remove final
2732         argument.
2733         (finalize): Likewise.
2734         * toplev.h (dump_memory_report): Remove argument.
2736 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2738         * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
2739         (aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
2740         * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
2741         (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
2742         accept "const".
2744 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2746         * coretypes.h (string_int_pair): New typedef.
2747         * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define.
2748         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it.
2749         * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook.
2751 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2753         * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook.
2754         (simulate_builtin_function_decl): Declare.
2755         * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define.
2756         (LANG_HOOKS_INITIALIZER): Include it.
2757         * langhooks.c (add_builtin_function_common): Rename to...
2758         (build_builtin_function): ...this.  Add a location parameter and use
2759         it instead of BUILTINS_LOCATION.  Remove the hook parameter and return
2760         the decl instead.
2761         (add_builtin_function): Update accordingly, passing the returned
2762         decl to the lang hook.
2763         (add_builtin_function_ext_scope): Likewise
2764         (simulate_builtin_function_decl): New function.
2766 2019-10-29  Jakub Jelinek  <jakub@redhat.com>
2768         * doc/install.texi (--enable-offload-targets): Fix up a typo in the
2769         example, use actual names of supported offload targets.
2771         PR target/92258
2772         * config/i386/sse.md (iptr): Revert 2019-10-27 change.
2774 2019-10-28  Martin Sebor  <msebor@redhat.com>
2776         * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it.
2777         (handle_store): Pass argument to get_addr_stridx.
2779 2019-10-28  Martin Sebor  <msebor@redhat.com>
2781         PR tree-optimization/92226
2782         * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when
2783         the offset is in the open range outlined by SI's length.
2785 2019-10-28  Martin Sebor  <msebor@redhat.com>
2787         PR c/66970
2788         * doc/cpp.texi (__has_builtin): Document.
2789         * doc/extend.texi (__builtin_frob_return_addr): Correct spelling.
2791 2019-10-28  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
2793         PR target/82981
2794         * config/mips/mips.md (<u>mulditi3): Generate patterns for high
2795         doubleword and low doubleword result of multiplication on
2796         MIPS64R6.
2798         * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a
2799         pure qualifier to the built-in.
2800         (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA
2801         built-ins.
2802         (struct mips_builtin_description): Add is_pure flag.
2803         (mips_init_builtins): Mark built-in as pure if the flag in the
2804         corresponding mips_builtin_description struct is set.
2806         * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an
2807         alternative which covers the floating-point input value. Also
2808         forbid the split of insert.d pattern for floating-point values.
2810 2019-10-28  Andrew Burgess  <andrew.burgess@embecosm.com>
2812         * config.gcc: Add riscv-sr.o to extra_objs for riscv.
2813         * config/riscv/riscv-sr.c: New file.
2814         * config/riscv/riscv.c (riscv_reorg): New function.
2815         (TARGET_MACHINE_DEPENDENT_REORG): Define.
2816         * config/riscv/riscv.h (SIBCALL_REG_P): Define.
2817         (riscv_remove_unneeded_save_restore_calls): Declare.
2818         * config/riscv/t-riscv (riscv-sr.o): New build rule.
2820 2019-10-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2822         PR tree-optimization/92163
2823         * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
2824         need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
2825         before calling bitmap_set_bit.
2826         (dse_optimize_redundant_stores): Pass global need_eh_cleanup to
2827         delete_dead_or_redundant_assignment.
2828         (dse_dom_walker::dse_optimize_stmt): Likewise.
2829         * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
2831 2019-10-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2833         PR middle-end/91272
2834         * tree-vect-stmts.c (vectorizable_condition): Support
2835         EXTRACT_LAST_REDUCTION with fully-masked loops.
2837 2019-10-28  Richard Biener  <rguenther@suse.de>
2839         PR tree-optimization/92252
2840         * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust
2841         STMT_VINFO_REDUC_IDX when swapping operands.
2843 2019-10-28  Richard Biener  <rguenther@suse.de>
2845         PR tree-optimization/92241
2846         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When
2847         we failed to update the reduction index do not use the pattern
2848         stmts for the reduction chain.
2849         (vectorizable_reduction): When the reduction chain is corrupt,
2850         fail.
2851         * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we
2852         fail to update the reduction chain.
2854 2019-10-28  Richard Biener  <rguenther@suse.de>
2856         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
2857         STMT_VINFO_REDUC_IDX from the actual stmt.
2858         (vect_transform_reduction): Likewise.
2859         (vectorizable_reduction): Compute the reduction chain length,
2860         do not recompute the reduction operand index.  Remove no longer
2861         necessary restriction for condition reduction chains.
2863 2019-10-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2865         PR target/92225
2866         * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
2867         condition for V2DImode.
2869 2019-10-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2871         * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
2872         Remove %k operand modifier.
2873         (*vec_extractv2df_1_sse): Remove %q operand modifier.
2875 2019-10-28  Ilya Leoshkevich  <iii@linux.ibm.com>
2877         PR rtl-optimization/92007
2878         * cfgcleanup.c (thread_jump): Add an assertion that we don't
2879         call it after reload if hot/cold partitioning has been done.
2880         (class pass_postreload_jump): Rename to
2881         pass_jump_after_combine.
2882         (make_pass_postreload_jump): Rename to
2883         make_pass_jump_after_combine.
2884         * passes.def(pass_postreload_jump): Move before reload, rename
2885         to pass_jump_after_combine.
2886         * tree-pass.h (make_pass_postreload_jump): Rename to
2887         make_pass_jump_after_combine.
2889 2019-10-25  Jan Hubicka  <hubicka@ucw.cz>
2891         PR ipa/92242
2892         * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
2893         for missing EDGE_REF
2894         * ipa-prop.c (update_jump_functions_after_inlining): Likewise.
2896 2019-10-25  Jiufu Guo  <guojiufu@linux.ibm.com>
2898         PR tree-optimization/88760
2899         * config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
2900         Enable -funroll-loops for -O2 and above.
2901         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
2902         PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
2903         do not turn on web and rngreg implicitly, if the unroller is not
2904         explicitly enabled.
2906 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
2908         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove
2909         jump functions.
2911 2019-10-27  Eric Botcazou <ebotcazou@adacore.com>
2913         * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment.
2914         * cgraph.h (cgraph_node::rtl_info): Likewise.
2916 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
2918         * ipa-cp.c (propagate_constants_across_call): If args are not available
2919         just drop everything to varying.
2920         (find_aggregate_values_for_callers_subset): Watch for missing
2921         edge summary.
2922         (find_more_scalar_values_for_callers_subs): Likewise.
2923         * ipa-prop.c (ipa_compute_jump_functions_for_edge,
2924         update_jump_functions_after_inlining, propagate_controlled_uses):
2925         Watch for missing summaries.
2926         (ipa_propagate_indirect_call_infos): Remove summary after propagation
2927         is finished.
2928         (ipa_write_node_info): Watch for missing summaries.
2929         (ipa_read_edge_info): Create new ref.
2930         (ipa_edge_args_sum_t): Add remove.
2931         (IPA_EDGE_REF_GET_CREATE): New macro.
2932         * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing
2933         edge summary.
2934         (remap_edge_change_prob): Likewise.
2936 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
2938         * ipa-inline-transform.c (inline_call): update function summaries
2939         after expanidng thunk.
2941 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
2943         * ipa-icf.c (sem_function::merge): Update function summaries.
2944         * ipa-prop.h (ipa_get_param): Do not sanity check for WPA.
2946 2019-10-27  Hongtao Liu  <hongtao.liu@intel.com>
2948         * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3,
2949         <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since
2950         operand already has scalar mode.
2951         (iptr): Remove SF/DF.
2953 2019-10-26  Segher Boessenkool  <segher@kernel.crashing.org>
2955         PR target/91289
2956         * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
2957         an immediate to r0; use r11 instead.  Save and restore r11 to r0 around
2958         this.
2960 2019-10-26  Hongtao Liu  <hongtao.liu@intel.com>
2962         * config/i386/sse.md
2963         (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
2964         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
2965         <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
2966         <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
2967         <sse>_vmmaskcmp<mode>3):
2968         Change predicates from vector_operand to nonimmediate_operand,
2969         constraints xBm to xm, since scalar operations don't need
2970         memory address alignment.
2971         (avx512f_vmcmp<mode>3<round_saeonly_name>,
2972         avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
2973         round_saeonly_nimm_predicate with
2974         round_saeonly_nimm_scalar_predicate.
2975         (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
2976         fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
2977         *fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
2978         *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
2979         avx512f_vmfmadd_<mode>_mask3<round_name>,
2980         avx512f_vmfmadd_<mode>_maskz_1<round_name>,
2981         *avx512f_vmfmsub_<mode>_mask<round_name>,
2982         avx512f_vmfmsub_<mode>_mask3<round_name>,
2983         *avx512f_vmfmsub_<mode>_maskz_1<round_name>,
2984         *avx512f_vmfnmadd_<mode>_mask<round_name>,
2985         *avx512f_vmfnmadd_<mode>_mask3<round_name>,
2986         *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
2987         *avx512f_vmfnmsub_<mode>_mask<round_name>,
2988         *avx512f_vmfnmsub_<mode>_mask3<round_name>,
2989         *avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
2990         cvtusi2<ssescalarmodesuffix>32<round_name>,
2991         cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
2992         round_nimm_predicate with round_nimm_scalr_predicate.
2993         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
2994         avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
2995         avx512er_vmrcp28<mode><round_saeonly_name>,
2996         avx512er_vmrsqrt28<mode><round_saeonly_name>,
2997         ): Replace round_saeonly_nimm_predicate with
2998         round_saeonly_nimm_scalar_predicate.
2999         (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
3000         vector_operand with nonimmediate_operand.
3001         * config/i386/subst.md (round_scalar_nimm_predicate,
3002         round_saeonly_scalar_nimm_predicate): Replace
3003         vector_operand with nonimmediate_operand.
3005 2019-10-26  Hongtao Liu  <hongtao.liu@intel.com>
3007         PR target/89071
3008         * config/i386/i386.md (*rcpsf2_sse): Add
3009         avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
3010         (*rsqrtsf2_sse): Ditto.
3011         (*sqrt<mode>2_sse): Ditto.
3012         (sse4_1_round<mode>2): separate constraint vm, add
3013         avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
3014         * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
3015         by pass rpad.
3016         (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
3017         Ditto.
3018         (*sse_vmrsqrtv4sf2): Ditto.
3019         (*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
3020         (*sse4_1_round<ssescalarmodesuffix>): Ditto.
3021         (sse4_1_round<ssescalarmodesuffix>): Add m constraint and
3022         <iptr> pointer size modifier since vround support memory operand.
3024 2019-10-18  Georg-Johann Lay  <avr@gjlay.de>
3026         PR target/85969
3027         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
3028         static function.
3030 2019-10-25  Cesar Philippidis <cesar@codesourcery.com>
3031             Tobias Burnus  <tobias@codesourcery.com>
3033         * gimplify.c (oacc_default_clause): Privatize fortran common blocks.
3034         (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
3035         common block decls.
3037 2019-10-25  Richard Biener  <rguenther@suse.de>
3039         PR tree-optimization/92222
3040         * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
3041         (_slp_oprnd_info::second_pattern): Likewise.
3042         (_slp_oprnd_info::any_pattern): New.
3043         (vect_create_oprnd_info): Adjust.
3044         (vect_get_and_check_slp_defs): Compute whether any stmt is
3045         in a pattern.
3046         (vect_build_slp_tree_2): Avoid building up a node from scalars
3047         if any of the operand defs, not just the first, is in a pattern.
3049 2019-10-25  Richard Biener  <rguenther@suse.de>
3051         * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
3052         swapping if we actually have to modify the IL on a shared stmt.
3053         (vect_build_slp_tree_2): Never fail swapping on shared stmts
3054         because we no longer modify the IL.
3056 2019-10-25  Martin Liska  <mliska@suse.cz>
3058         * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
3060 2019-10-25  Richard Sandiford  <richard.sandiford@arm.com>
3062         * tree-vect-loop.c (vectorizable_reduction): Restrict the
3063         LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
3064         handled by vect_transform_reduction.  Allow fully-masked loops
3065         to be used with reduction chains.
3066         * tree-vect-stmts.c (vectorizable_operation): Handle reduction
3067         operations in fully-masked loops.
3068         (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
3069         operations in fully-masked loops.
3071 2019-10-25  Richard Biener  <rguenther@suse.de>
3073         * tree-vect-loop.c (vectorizable_reduction): Verify
3074         STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
3075         correctly.
3076         * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
3077         STMT_VINFO_REDUC_IDX from the original stmts to the pattern
3078         stmts.
3080 2019-10-24  Jakub Jelinek  <jakub@redhat.com>
3082         * gimplify.h (omp_construct_selector_matches): Declare.
3083         * gimplify.c (struct gimplify_omp_ctx): Add code member.
3084         (gimplify_call_expr): Call omp_resolve_declare_variant and remap
3085         called function if needed for flag_openmp.
3086         (gimplify_scan_omp_clauses): Set ctx->code.
3087         (omp_construct_selector_matches): New function.
3088         * omp-general.h (omp_constructor_traits_to_codes,
3089         omp_context_selector_matches, omp_resolve_declare_variant): Declare.
3090         * omp-general.c (omp_constructor_traits_to_codes,
3091         omp_context_selector_matches, omp_resolve_declare_variant): New
3092         functions.
3094         * config/arc/arc.c (hwloop_optimize): Add missing space in string
3095         literal.
3096         * config/rx/rx.c (rx_print_operand): Likewise.
3097         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3098         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
3099         * ipa-sra.c (create_parameter_descriptors, process_scan_results):
3100         Likewise.
3101         * genemit.c (emit_c_code): Likewise.
3102         * plugin.c (try_init_one_plugin): Likewise.  Formatting fix.
3104 2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
3106         * symbols-summary.h (fast_function_summary<T *, V>::release,
3107         fast_call_summary<T *, V>::release): Free m_vector.
3109 2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
3111         * cgraphunit.c (symbol_table::process_new_functions): Call
3112         ipa_free_size_summary.
3113         * ipa-cp.c (ipcp_cloning_candidate_p): Update.
3114         (devirtualization_time_bonus): Update.
3115         (ipcp_propagate_stage): Update.
3116         * ipa-fnsummary.c (ipa_size_summaries): New.
3117         (ipa_fn_summary_alloc): Alloc size summary.
3118         (dump_ipa_call_summary): Update.
3119         (ipa_dump_fn_summary): Update.
3120         (analyze_function_body): Update.
3121         (compute_fn_summary): Likewise.
3122         (ipa_get_stack_frame_offset): New function.
3123         (inline_update_callee_summaries): Do not update frame offsets.
3124         (ipa_merge_fn_summary_after_inlining): Update frame offsets here;
3125         remove call and function summary.
3126         (ipa_update_overall_fn_summary): Update.
3127         (inline_read_section): Update.
3128         (ipa_fn_summary_write): Update.
3129         (ipa_free_fn_summary): Do not remove summaries.
3130         (ipa_free_size_summary): New.
3131         (release summary pass): Also run at WPA.
3132         * ipa-fnsummary.h (ipa_size_summary): Declare.
3133         (ipa_fn_summary): Remove size, self_size, stack_frame_offset,
3134         estimated_self_stack_size.
3135         (ipa_size_summary_t): New type.
3136         (ipa_size_summaries): Declare.
3137         (ipa_free_size_summary): Declare.
3138         (ipa_get_stack_frame_offset): Declare.
3139         * ipa-icf.c (sem_function::merge): Update.
3140         * ipa-inline-analysis.c (estimate_size_after_inlining): Update.
3141         (estimate_growth): Update.
3142         (growth_likely_positive): Update.
3143         (clone_inlined_nodes): Update.
3144         (inline_call): Update.
3145         * ipa-inline.c (caller_growth_limits): Update.
3146         (edge_badness): Update.
3147         (recursive_inlining): Update.
3148         (inline_small_functions): Update.
3149         (inline_to_all_callers_1): Update.
3150         * ipa-prop.h (ipa_edge_args_sum_t): Update comment.
3152 2019-10-24  Segher Boessenkool  <segher@kernel.crashing.org>
3154         * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
3155         (uavg<mode>3_ceil): ... This.
3156         (altivec_vavgs<VI_char>): Rename to...
3157         (avg<mode>3_ceil): ... This.
3158         * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
3159         VAVGUW, VAVGSW): Adjust.
3161 2019-10-24  Nathan Sidwell  <nathan@acm.org>
3163         * dumpfile.c (dump_begin): Reorder decls to use RAII.
3165 2019-10-24  Martin Liska  <mliska@suse.cz>
3167         * symbol-summary.h (gt_pch_nx): Mark all functions
3168         with gcc_unreachable as we do not expect to be called.
3170 2019-10-24  Richard Biener  <rguenther@suse.de>
3172         * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
3173         chains try harder with operand swapping and instead of
3174         putting a shifted chain into the reduction operands put
3175         a repetition of the final reduction op there as if we'd
3176         reassociate the expression.
3178 2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
3180         * ipa-reference.c (ipa_reference_optimization_summary_d): Rename
3181         statics_not_read and statics_not_written to statics_read and
3182         statics_written respectively.
3183         (no_module_statics): New static var.
3184         (ipa_reference_get_not_read_global): Rename to ...
3185         (ipa_reference_get_read_global): ... this.
3186         (ipa_reference_get_not_written_global): Rename to ...
3187         (ipa_reference_get_written_global): ... this.
3188         (dump_static_vars_set_to_file): Dump no_module_statics.
3189         (copy_static_var_set): Add for propagation parameter.
3190         (ipa_init): Initialize no_module_statics.
3191         (ipa_ref_opt_summary_t::duplicate): Update.
3192         (ipa_ref_opt_summary_t::remove): Update.
3193         (propagate): Update.
3194         (write_node_summary_p): Look correctly for bitmap differences.
3195         (ipa_reference_write_optimization_summary): Update.
3196         (ipa_reference_read_optimization_summary): Update.
3197         * ipa-reference.h
3198         (ipa_reference_get_not_read_global): Rename to ...
3199         (ipa_reference_get_read_global): ... this.
3200         (ipa_reference_get_not_written_global): Rename to ...
3201         (ipa_reference_get_written_global): ... this.
3202         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update.
3203         (call_may_clobber_ref_p_1): Update.
3205 2019-10-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3207         * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove
3208         and add comment.
3209         (msp430_hard_regno_nregs_with_padding): Remove.
3211 2019-10-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3213         * config/msp430/constraints.md: Allow post_inc for "Ya" constraint.
3214         * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant
3215         shift amount is between 1 and 4.
3216         (430x_arithmetic_shift_right): Use RRAM when the constant shift amount
3217         is between 1 and 4.
3219 2019-10-24  Richard Biener  <rguenther@suse.de>
3221         PR tree-optimization/92205
3222         * tree-vect-loop.c (vectorizable_reduction): Restrict
3223         search for alternate vectype_in to lane-reducing patterns
3224         we support.
3226 2019-10-24  Richard Biener  <rguenther@suse.de>
3228         PR tree-optimization/92203
3229         * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
3230         Skip eliminating conversion stmts inserted by insertion.
3232 2019-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>
3234         * config/s390/s390.c (s390_get_thread_pointer): Use
3235         gen_get_thread_pointer.
3236         (s390_expand_split_stack_prologue): Likewise.
3237         * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC.
3238         (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP.
3239         (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP.
3240         (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use
3241         parameterized name.
3243 2019-10-24  Richard Biener  <rguenther@suse.de>
3245         * tree-vect-slp.c (vect_analyze_slp): When reduction group
3246         SLP discovery fails try to handle the reduction as part
3247         of SLP reduction discovery.
3249 2019-10-23  Michael Meissner  <meissner@linux.ibm.com>
3251         * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New
3252         declaration.
3253         * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn
3254         attribute if it exists, rather than the insn size.  If we use the
3255         insn size, adjust the size to remove the extra size that prefixed
3256         instructions take.
3257         (rs6000_adjust_insn_length): New function.
3258         * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to
3259         update the instruction sized if prefixed instructions are used.
3260         * config/rs6000/rs6000.md (prefixed_length attribute): Delete.
3261         (non_prefixed_length attribute): Delete.
3262         (num_insns attribute): New insn attribute to return the number of
3263         instructions.
3264         (max_prefixed_insns attribute): New insn attribute to return the
3265         maximum number of prefixed instructions in an insn.
3266         (length attribute): Do not adjust for prefix instructions here,
3267         punt to ADJUST_INSN_LENGTH.
3268         (mov<mode>_64bit): Set max_prefixed_insns and num_insns.
3269         (movtd_64bit_nodm): Set max_prefixed_insns and num_insns.
3270         (mov<mode>_ppc64): Set max_prefixed_insns and num_insns.
3271         * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set
3272         max_prefixed_insns and num_insns.
3274         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat.
3275         (movtd_64bit_nodm): Reformat.
3276         (mov<mode>_32bit): Reformat.
3277         (mov<mode>_softfloat): Reformat.
3278         (FMOVE128_GPR splitter): Reformat.
3279         (DIFD splitter): Reformat.
3280         (TI2 splitter): Reformat.
3281         * config/rs6000/predicates.md (lwa_operand): If the bottom two
3282         bits of the offset for the memory address are non-zero, use PLWA
3283         if prefixed instructions are available.
3285 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
3287         * lto-streamer-out.c (cmp_symbol_files): Watch for overflow.
3289 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
3291         * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix
3292         previous patch.
3294 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
3296         * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar.
3297         (cmp_symbol_files): New.
3298         (lto_output): Copy sections in file order.
3299         * lto-streamer.h (lto_file_decl_data): Add field order.
3301 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
3303         * ipa-reference.h (ipa_reference_var_uid): Move offline.
3304         * ipa-reference.c (reference_vars_map_t): new type.
3305         (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars.
3306         (ipa_reference_var_uid): Implement.
3307         (varpool_node_hooks): New static var.
3308         (varpool_removal_hook): New function.
3309         (is_improper): Do not check bitmap for id==-1
3310         (get_static_name): Update.
3311         (ipa_init): Initialize new datastructures.
3312         (analyze_function): Do not recompute ids.
3313         (propagate): Free reference_vars_to_consider.
3314         (stream_out_bitmap): Update.
3315         (ipa_reference_read_optimization_summary): Update.
3317 2019-10-23  qing zhao  <qing.zhao@oracle.com>
3319         PR gcov-profile/91971
3320         * coverage.c (coverage_init): Mangle the full path of filename when
3321         filename is a absolute path.
3323 2019-10-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3325         * config/msp430/msp430-protos.h (msp430_has_hwmult): New.
3326         * config/msp430/msp430.c (msp430_no_hwmult): Remove.
3327         (msp430_has_hwmult): New.
3328         (msp430_output_labelref):
3329         s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/
3330         * config/msp430/msp430.md (mulhisi3): Likewise.
3331         (umulhisi3): Likewise.
3332         (mulsidi3): Likewise.
3333         (umulsidi3): Likewise.
3335 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
3337         PR ipa/92074
3338         * params.def (inline-heuristics-hint-percent): Set to 600.
3340 2019-10-23  Richard Biener  <rguenther@suse.de>
3342         PR tree-optimization/65930
3343         * tree-vect-loop.c (check_reduction_path): Allow conversions
3344         that only change the sign.
3345         (vectorizable_reduction): Relax latch def stmts we handle further.
3347 2019-10-23  Jakub Jelinek  <jakub@redhat.com>
3349         PR debug/90231
3350         * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function.
3351         (remove_unused_ivs): Use it instead of get_computation_at.  When
3352         choosing best candidate, only consider candidates where
3353         get_debug_computation_at actually returns non-NULL.
3355 2019-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3357         PR tree-optimization/92131
3358         * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
3359         range would be symbolic, drop to varying for any explicit overflow
3360         in the constant part or if neither range is a singleton.
3362 2019-10-23  Martin Liska  <mliska@suse.cz>
3364         PR middle-end/81669
3365         * fibonacci_heap.h (fibonacci_node::fibonacci_node):
3366         Initialize m_data.
3368 2019-10-23  Richard Sandiford  <richard.sandiford@arm.com>
3370         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use
3371         int_mode_for_mode rather than mode_for_int_vector for scalars.
3373 2019-10-23  Richard Biener  <rguenther@suse.de>
3375         PR tree-optimization/92179
3376         * tree-vect-stmts.c (vectorizable_shift): For shift args
3377         that are all the same remove type restriction in the SLP case.
3378         Adjust SLP code to handle converting of the shift arg to
3379         only apply in case the modes are different.
3381 2019-10-23  Martin Liska  <mliska@suse.cz>
3383         PR ipa/91969
3384         * ipa-inline.c (recursive_inlining): Do not print
3385         when curr->count is not initialized.
3387 2019-10-23  Richard Biener  <rguenther@suse.de>
3389         * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
3390         op from scalars in case there's a constant operand in its
3391         definition.
3393 2019-10-23  Iain Sandoe  <iain@sandoe.co.uk>
3395         * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
3396         against out of range max skip or log values.
3398 2019-10-22  Giuliano Belinassi  <giuliano.belinassi@usp.br>
3400         * cgraph.c (dump_graphviz): Change name to dump_name
3402 2019-10-22  Richard Earnshaw  <rearnsha@arm.com>
3404         * config/arm/arm.md (rsbsi_carryin_reg): New pattern.
3405         * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
3406         subtraction from a carry operation.
3408 2019-10-22  Richard Earnshaw  <rearnsha@arm.com>
3410         * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
3412 2019-10-22  Richard Biener  <rguenther@suse.de>
3414         PR tree-optimization/92173
3415         * tree-vect-loop.c (vectorizable_reduction): If
3416         vect_transform_reduction cannot handle code-generation try without
3417         the single-def-use-cycle optimization.  Pass optab_vector to
3418         optab_for_tree_code to get vector shifts as that's what we'd
3419         generate.
3421 2019-10-22  Michael Matz  <matz@suse.de>
3423         PR middle-end/90796
3424         * gimple-loop-jam.c (any_access_function_variant_p): New function.
3425         (adjust_unroll_factor): Use it to constrain safety, new parameter.
3426         (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
3428 2019-10-22  Richard Biener  <rguenther@suse.de>
3430         PR tree-optimization/92173
3431         * tree-vect-loop.c (vectorizable_reduction): If
3432         vect_transform_reduction cannot handle code-generation try without
3433         the single-def-use-cycle optimization.  Pass optab_vector to
3434         optab_for_tree_code to get vector shifts as that's what we'd
3435         generate.
3437 2019-10-22  Martin Liska  <mliska@suse.cz>
3439         * diagnostic-format-json.cc (json_from_expanded_location):
3440         Use json::integer_number.
3441         * gcov.c (output_intermediate_json_line): Use new
3442         json::integer_number.
3443         (output_json_intermediate_file): Likewise.
3444         * json.cc (number::print): Move to ...
3445         (float_number::print): ... this.
3446         (integer_number::print): New.
3447         (test_writing_numbers): Move to ...
3448         (test_writing_float_numbers): ... this.
3449         (test_writing_integer_numbers): New.
3450         (json_cc_tests): Register test_writing_integer_numbers.
3451         * json.h (class value): Add forward declaration
3452         for float_number and integer_number.
3453         (enum kind): Add JSON_INTEGER and JSON_FLOAT.
3454         (class number): Move to ...
3455         (class float_number): ... this.
3456         (class integer_number): New.
3457         * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json):
3458         Use json::integer_number.
3459         (optrecord_json_writer::location_to_json): Likewise.
3460         (optrecord_json_writer::profile_count_to_json): Likewise.
3461         (optrecord_json_writer::pass_to_json): Likewise.
3463 2019-10-22  Richard Sandiford  <richard.sandiford@arm.com>
3465         * tree-vect-slp.c (vect_slp_bb_region): Check whether
3466         autodetected_vector_size rather than vector_size is zero.
3467         * tree-vect-loop.c (vect_analyze_loop): Likewise.
3468         Set autodetected_vector_size immediately after calling
3469         vect_analyze_loop_2.  Check for a fatal error before advancing
3470         next_size.
3472 2019-10-21  Jason Merrill  <jason@redhat.com>
3474         * lock-and-run.sh: Check for process existence rather than timeout.
3476 2019-10-21  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3478         * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
3479         widening multiplication.
3481 2019-10-21  Richard Earnshaw  <rearnsha@arm.com>
3483         * config/arm/iterators.md (t2_binop0): Fix typo in comment.
3484         * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the
3485         type attribute.
3486         (subsi3_carryin_shift): Separate into register and constant controlled
3487         alternatives.  Use shift_amount_operand for operand 4.  Set shift
3488         attribute and simplify type attribute.
3489         (subsi3_carryin_shift_alt): Likewise.
3490         (rsbsi3_carryin_shift): Likewise.
3491         (rsbsi3_carryin_shift_alt): Likewise.
3492         (andsi_not_shiftsi_si): Enable for TARGET_32BIT.  Separate constant
3493         and register controlled shifts into distinct alternatives.
3494         (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
3495         (andsi_not_shiftsi_si_scc): Likewise.
3496         (arm_cmpsi_negshiftsi_si): Likewise.
3497         (not_shiftsi): Remove redundant M constraint from alternative 1.
3498         (not_shiftsi_compare0): Likewise.
3499         (arm_cmpsi_insn): Remove redundant alternative 2.
3500         (cmpsi_shift_swp): Likewise.
3501         (sub_shiftsi): Likewise.
3502         (sub_shiftsi_compare0_scratch): Likewise.
3503         * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern.
3504         (thumb2_cmpsi_neg_shiftsi): Likewise.
3506 2019-10-21  Richard Biener  <rguenther@suse.de>
3508         PR tree-optimization/92162
3509         * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup
3510         STMT_VINFO_REDUC_IDX in reduc_info.
3511         * tree-vect-stmts.c (vectorizable_condition): Likewise.
3513 2019-10-21  Richard Biener  <rguenther@suse.de>
3515         * tree-vectorizer.h (_slp_tree::ops): New member.
3516         (SLP_TREE_SCALAR_OPS): New.
3517         (vect_get_slp_defs): Adjust prototype.
3518         * tree-vect-slp.c (vect_free_slp_tree): Release
3519         SLP_TREE_SCALAR_OPS.
3520         (vect_create_new_slp_node): Initialize it.  New overload for
3521         initializing by an operands array.
3522         (_slp_oprnd_info::ops): New member.
3523         (vect_create_oprnd_info): Initialize it.
3524         (vect_free_oprnd_info): Release it.
3525         (vect_get_and_check_slp_defs): Populate the operands array.
3526         Do not swap operands in the IL when not necessary.
3527         (vect_build_slp_tree_2): Build SLP nodes for invariant operands.
3528         Record SLP_TREE_SCALAR_OPS for all invariant nodes.  Also
3529         swap operands in the operands array.  Do not swap operands in
3530         the IL.
3531         (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well.
3532         (vect_gather_slp_loads): Fix.
3533         (vect_detect_hybrid_slp_stmts): Likewise.
3534         (vect_slp_analyze_node_operations_1): Search for a internal
3535         def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS.
3536         (vect_slp_analyze_node_operations): Skip ops-only stmts for
3537         the def-type push/pop dance.
3538         (vect_get_constant_vectors): Compute number_of_vectors here.
3539         Use SLP_TREE_SCALAR_OPS and simplify greatly.
3540         (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs.
3541         (vect_get_slp_defs): Simplify greatly.
3542         * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify.
3543         (vect_transform_reduction): Likewise.
3544         * tree-vect-stmts.c (vect_get_vec_defs): Simplify.
3545         (vectorizable_call): Likewise.
3546         (vectorizable_operation): Likewise.
3547         (vectorizable_load): Likewise.
3548         (vectorizable_condition): Likewise.
3549         (vectorizable_comparison): Likewise.
3551 2019-10-21  Richard Biener  <rguenther@suse.de>
3553         PR tree-optimization/92161
3554         * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type
3555         for reductions.
3557 2019-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3559         * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define.
3560         (aarch64_rndr): New define_insn.
3561         (aarch64_rndrrs): Likewise.
3562         * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
3563         (TARGET_RNG): Likewise.
3564         * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE
3565         argument.
3566         * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin):
3567         Add fourth argument in prototype.
3568         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
3569         Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
3570         (aarch64_init_rng_builtins): Define.
3571         (aarch64_general_init_builtins): Call aarch64_init_rng_builtins.
3572         (aarch64_expand_rng_builtin): Define.
3573         (aarch64_general_expand_builtin): Use IGNORE argument, handle
3574         RNG builtins.
3575         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
3576         __ARM_FEATURE_RNG when TARGET_RNG.
3577         * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
3579 2019-10-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3581         * tree-vect-stmts (ensure_base_align): Only change alignment if new
3582         alignment is more restrictive.
3584 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3586         * tree-vectorizer.h (vec_info::vector_size): New member variable.
3587         (vect_update_max_nunits): Update comment.
3588         (current_vector_size): Delete.
3589         * tree-vect-stmts.c (current_vector_size): Likewise.
3590         (get_vectype_for_scalar_type): Use vec_info::vector_size instead
3591         of current_vector_size.
3592         (get_mask_type_for_scalar_type): Likewise.
3593         * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
3594         * tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
3595         (vect_analyze_loop, vect_halve_mask_nunits): Likewise.
3596         (vect_double_mask_nunits, vect_transform_loop): Likewise.
3597         * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
3598         (vect_make_slp_decision, vect_slp_bb_region): Likewise.
3600 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3602         * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info.
3603         * tree-vect-loop.c (vect_double_mask_nunits): Likewise.
3604         * tree-vect-stmts.c (supportable_narrowing_operation):  Update call
3605         accordingly.
3607 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3609         * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info.
3610         * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
3611         * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update
3612         call accordingly.
3613         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
3615 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3617         * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take
3618         a loop_vec_info.
3619         (vect_set_loop_condition_masked): Update call accordingly.
3621 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3623         * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
3624         * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
3625         (simple_integer_narrowing): Update call accordingly.
3626         (vectorizable_conversion): Likewise.
3628 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3630         * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info.
3631         (vectorizable_call): Update call accordingly.
3633 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3635         * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info.
3636         * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
3637         (duplicate_and_interleave): Update call accordingly.
3638         * tree-vect-loop.c (vectorizable_reduction): Likewise.
3640 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3642         * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info.
3643         * tree-vect-slp.c (duplicate_and_interleave): Likewise.
3644         (vect_get_constant_vectors): Update call accordingly.
3645         * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise.
3647 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3649         * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info.
3650         * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
3651         (vect_prologue_cost_for_slp_op): Update call accordingly.
3652         (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops)
3653         (vect_get_strided_load_store_ops, vectorizable_simd_clone_call)
3654         (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison)
3655         (get_mask_type_for_scalar_type): Likewise.
3656         (vect_get_vector_types_for_stmt): Likewise.
3657         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3658         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
3659         (get_initial_def_for_reduction, build_vect_cond_expr): Likewise.
3660         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise.
3661         (vect_split_statement, vect_convert_input): Likewise.
3662         (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise.
3663         (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise.
3664         (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
3665         (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
3666         (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise.
3667         (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern)
3668         (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern)
3669         (search_type_for_mask_1, vect_recog_bool_pattern): Likewise.
3670         (vect_recog_mask_conversion_pattern): Likewise.
3671         (vect_add_conversion_to_pattern): Likewise.
3672         (vect_recog_gather_scatter_pattern): Likewise.
3673         * tree-vect-slp.c (vect_build_slp_tree_2): Likewise.
3674         (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise.
3676 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3678         * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info.
3679         * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
3680         (vect_check_load_store_mask): Update call accordingly.
3681         (vect_get_mask_type_for_stmt): Likewise.
3682         * tree-vect-patterns.c (check_bool_pattern): Likewise.
3683         (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise.
3684         (vect_convert_mask_for_vectype): Likewise.
3686 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3688         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take
3689         a vec_info.
3690         (vect_recog_dot_prod_pattern): Update call accordingly.
3691         (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise.
3692         (vect_recog_widen_sum_pattern): Likewise.
3694 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3696         * tree-vectorizer.h (vect_supportable_shift): Take a vec_info.
3697         * tree-vect-stmts.c (vect_supportable_shift): Likewise.
3698         * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call
3699         accordingly.
3701 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3703         * tree-vectorizer.c (get_vec_alignment_for_array_type): Use
3704         get_vectype_for_scalar_type_and_size instead of
3705         get_vectype_for_scalar_type.
3707 2019-10-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3709         * common.opt (-fcommon): Fix description.
3711 2019-10-20  Jakub Jelinek  <jakub@redhat.com>
3713         * config/i386/i386-protos.h (ix86_pre_reload_split): Declare.
3714         * config/i386/i386.c (ix86_pre_reload_split): New function.
3715         * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq,
3716         *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq,
3717         *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0,
3718         *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword,
3719         *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask,
3720         *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1,
3721         *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1,
3722         *<shift_insn><dwi>3_doubleword_mask,
3723         *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask,
3724         *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1,
3725         *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1,
3726         *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>,
3727         *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword):
3728         Use ix86_pre_reload_split instead of can_create_pseudo_p in condition.
3729         * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2,
3730         *avx2_<code>v8qiv8si2<mask_name>_2,
3731         *sse4_1_<code>v4qiv4si2<mask_name>_2,
3732         *sse4_1_<code>v4hiv4si2<mask_name>_2,
3733         *avx512f_<code>v8qiv8di2<mask_name>_2,
3734         *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2,
3735         *sse4_1_<code>v2hiv2di2<mask_name>_2,
3736         *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr,
3737         sse4_2_pcmpistr): Likewise.
3739 2019-10-20  Gerald Pfeifer  <gerald@pfeifer.com>
3741         * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info
3742         now defaults to https.
3744 2019-10-20  Jan Hubicka  <hubicka@ucw.cz>
3746         * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not
3747         skip non-zero array accesses.
3749 2019-10-20  Richard Sandiford  <richard.sandiford@arm.com>
3751         * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
3752         and return a boolean success value.  Move the allocation and
3753         initialization of the bb_vec_info to...
3754         (vect_slp_bb_region): ...here.  Update call accordingly.
3755         (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
3756         than in vect_slp_analyze_bb_1.
3758 2019-10-20  Richard Sandiford  <richard.sandiford@arm.com>
3760         * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs
3761         when processing the given datarefs for the first time and
3762         check_datarefs subsequently.
3763         (vect_slp_bb_region): New function, split out of...
3764         (vect_slp_bb): ...here.  Don't recompute the region bounds and
3765         dataref sets when retrying with a different vector size.
3767 2019-10-19  Jakub Jelinek  <jakub@redhat.com>
3768             UroÅ¡ Bizjak  <ubizjak@gmail.com>
3770         PR target/92140
3771         * config/i386/predicates.md (int_nonimmediate_operand): New special
3772         predicate.
3773         * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne,
3774         *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne,
3775         *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New
3776         define_insn_and_split patterns.
3778 2019-10-19  Iain Sandoe  <iain@sandoe.co.uk>
3780         * config/rs6000/rs6000.md: Delete out--of-date comment about
3781         special-casing integer loads.
3783 2019-10-19  JeanHeyd Meneide  <phdofthehouse@gmail.com>
3785         * escaped_string.h (escaped_string): New header.
3786         * tree.c (escaped_string): Remove escaped_string class.
3788 2019-10-18  Martin Sebor  <msebor@redhat.com>
3790         PR tree-optimization/92157
3791         * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for
3792         compute_string_length to return a negative result.
3794 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3796         * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule.
3797         (negvsi3, negvdi3): Delete.
3798         (negdi2_compare): Delete.
3800 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3802         * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit
3803         operations.
3804         (subdi3_compare1): Delete pattern.
3805         (subvsi3_borrow): New insn pattern.
3806         (subvsi3_borrow_imm): Likewise.
3808 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3810         * config/arm/arm.md (subv<mode>4): Delete.
3811         (subvdi4): New expander pattern.
3812         (subvsi4): Likewise.  Handle some immediate values.
3813         (subvsi3_intmin): New insn pattern.
3814         (subvsi3): Likewise.
3815         (subvsi3_imm1): Likewise.
3816         * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V
3817         idioms.
3819 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3821         * config/arm/arm.md (usubvdi4): Allow registers or integers for
3822         incoming operands.  Early split the calculation into SImode
3823         operations.
3824         (usubvsi3_borrow): New insn pattern.
3825         (usubvsi3_borrow_imm): Likewise.
3827 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3829         * config/arm/arm.md (usubv<mode>4): Delete expansion.
3830         (usubvsi4): New pattern.  Allow some immediate values for inputs.
3831         (usubvdi4): New pattern.
3833 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3835         * config/arm/arm.c (arm_select_cc_mode): Allow either the first
3836         or second operand of the PLUS inside a DImode equality test to be
3837         sign-extend when selecting CC_Vmode.
3838         * config/arm/arm.md (addvdi4): Early-split the operation into SImode
3839         instructions.
3840         (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New
3841         expand patterns.
3842         (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns.
3843         (addsi3_cin_vout_0): Likewise.
3844         (adddi3_compareV): Delete.
3846 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3848         * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn.
3849         (addsi3_compareV_imm_nosum): New insn.  Also add peephole2 patterns
3850         to transform this back into the summation version when that leads
3851         to smaller code.
3853 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3855         * config/arm/arm.md (addv<mode>4): Delete.
3856         (addvsi4): New pattern.  Handle immediate values that the architecture
3857         supports.
3858         (addvdi4): New pattern.
3859         (addsi3_compareV): Rename to ...
3860         (addsi3_compareV_reg): ... this.  Add constraints for thumb2 variants
3861         and use COMPARE rather than NE.
3862         (addsi3_compareV_imm): New pattern.
3863         * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for
3864         a signed-overflow check.
3866 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3868         * config/arm/arm-modes.def (CC_ADC): New CC mode.
3869         * config/arm/arm.c (arm_select_cc_mode): Detect selection of
3870         CC_ADCmode.
3871         (maybe_get_arm_condition_code): Handle CC_ADCmode.
3872         * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition
3873         with overflow.
3874         (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New
3875         expand patterns.
3876         (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns
3877         (addsi3_cin_cout_imm_insn): Likewise.
3878         (adddi3_compareC): Delete insn.
3879         * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode.
3881 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3883         * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1.
3884         * (uaddv<mode>4): Delete expansion pattern.
3885         (uaddvsi4): New pattern.
3886         (uaddvdi4): Likewise.
3887         (addsi3_compareC): Delete pattern, change callers to use
3888         addsi3_compare_op1.
3889         (addsi3_compare_op1): No-longer anonymous.  Clean up constraints to
3890         reduce the number of alternatives and re-work type attribute handling.
3891         (addsi3_compare_op2): Clean up constraints to reduce the number of
3892         alternatives and re-work type attribute handling.
3893         (compare_addsi2_op0): Likewise.
3894         (compare_addsi2_op1): Likewise.
3896 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3898         * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes.
3899         * config/arm/arm.c (arm_select_cc_mode): Remove old selection code
3900         for DImode operands.
3901         (arm_gen_dicompare_reg): Remove unreachable expansion code.
3902         (maybe_get_arm_condition_code): Remove support for CC_CZmode and
3903         CC_NCVmode.
3904         * config/arm/arm.md (arm_cmpdi_insn): Delete.
3905         (arm_cmpdi_unsigned): Delete.
3907 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3909         * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function.
3910         (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant
3911         unchanged only if that will be cheaper.
3912         (arm_select_cc_mode): Recognize a swapped comparison that will
3913         be regenerated using RSBS or RSCS.  Relax restriction on selecting
3914         CC_RSBmode.
3915         (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against
3916         a constant.
3917         (arm_gen_compare_reg): Handle compare (CONST, X) when the mode
3918         is CC_RSBmode.
3919         (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes
3920         as CCmode.
3921         * config/arm/arm.md (rsb_imm_compare_scratch): New pattern.
3922         (rscsi3_<CC_EXTEND>out_scratch): New pattern.
3924 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3926         * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes.
3927         * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that
3928         need these modes.
3929         (arm_gen_dicompare_reg): New code to early expand the sub-operations
3930         of EQ, NE, LT, GE, LTU and GEU.
3931         * config/arm/iterators.md (CC_EXTEND): New code attribute.
3932         * config/arm/predicates.md (arm_adcimm_operand): New predicate..
3933         * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern.
3934         (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise.
3935         (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise.
3937 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3939         * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for
3940         operand 2.
3941         (cstoredi4): Similarly, but for operand 3.
3942         * config/arm/arm.c (arm_canoncialize_comparison): Allow
3943         canonicalization of unsigned compares with a constant on Arm.
3944         Prefer using const+1 and adjusting the comparison over swapping the
3945         operands whenever the original constant was not valid.
3946         (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a
3947         register here.
3948         (arm_validize_comparison): Do not force invalid DImode operands to
3949         registers here.
3951 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3953         * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests
3954         return CC_Zmode if comparing against a constant where one word is
3955         zero.
3956         (arm_gen_compare_reg): Split DImode handling to ...
3957         (arm_gen_dicompare_reg): ... here.  Handle equality comparisons
3958         against simple constants.
3959         * config/arm/arm.md (arm_cmpdi_zero): Delete pattern.
3961 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3963         * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern.
3964         (rsbsi3_carryin_shift_alt): Likewise.
3966 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3968         * config/arm/arm.md (negscc_borrow): New pattern.
3969         (mov_negscc): Don't split if the insn would match negscc_borrow.
3970         * config/arm/thumb2.md (thumb2_mov_negscc): Likewise.
3971         (thumb2_mov_negscc_strict_it): Likewise.
3973 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3975         * config/arm/arm.c (arm_insn_cost): New function.
3976         (TARGET_INSN_COST): Override default definition.
3978 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3980         * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
3981         borrow operations.
3983 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3985         * config/arm/arm.c (strip_carry_operation): New function.
3986         (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in
3987         for SImode.
3989 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
3991         * config/arm/predicates.md (arm_carry_operation): New special
3992         predicate.
3993         * config/arm/iterators.md (LTUGEU): Delete iterator.
3994         (cnb): Delete code attribute.
3995         (optab): Delete ltu and geu elements.
3996         * config/arm/arm.md (addsi3_carryin): Renamed from
3997         addsi3_carryin_<optab>.  Remove iterator and use arm_carry_operand.
3998         (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>.
3999         (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>.
4000         (addsi3_carryin_clobercc): Similarly.
4001         (addsi3_carryin_shift): Similarly.  Do not allow register shifts in
4002         Thumb2 state.
4004 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4006         * config/arm/arm.md (arm_subdi3): Delete insn.
4007         (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split.
4009 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4011         * config/arm/arm-modes.def (CC_RSB): New CC mode.
4012         * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode.
4013         * config/arm/arm.c (arm_select_cc_mode): Detect when we should
4014         return CC_RSBmode.
4015         (maybe_get_arm_condition_code): Handle CC_RSBmode.
4016         * config/arm/arm.md (subsi3_carryin): Make this pattern available to
4017         expand.
4018         (subdi3): Rewrite to early-expand the sub-operations.
4019         (rsb_im_compare): New pattern.
4020         (negdi2): Delete.
4021         (negdi2_insn): Delete.
4022         (arm_negsi2): Correct type attribute to alu_imm.
4023         (negsi2_0compare): New insn pattern.
4024         (negsi2_carryin): New insn pattern.
4026 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4028         * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
4029         operand 2.
4031 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4033         * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
4034         to match canonical form.
4036 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4038         * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand.
4039         (extend<mode>di2): Likewise.
4041 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4043         * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype.
4044         * config/arm/arm.c (arm_decompose_di_binop): New function.
4045         * config/arm/arm.md (adddi3): Also accept any const_int for op2.
4046         If not generating Thumb-1 code, decompose the operation into 32-bit
4047         pieces.
4048         * add0si_carryin_<optab>: New pattern.
4050 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
4052         * arm.md (adddi3): Only accept register operands.
4053         (arm_adddi3): Convert to simple insn with no split.  Do not accept
4054         constants.
4055         (adddi_sesidi_di): Delete patern.
4056         (adddi_zesidi_di): Likewise.
4057         (uaddv<mode>4): Use LTU as condition for branch.
4058         (adddi3_compareV): Convert to simple insn with no split.
4059         (addsi3_compareV_upper): Delete pattern.
4060         (adddi3_compareC): Convert to simple insn with no split.  Correct
4061         flags setting expression.
4062         (addsi3_compareC_upper): Delete pattern.
4063         (addsi3_compareC): Correct flags setting expression.
4064         (subdi3_compare1): Convert to simple insn with no split.
4065         (subsi3_carryin_compare): Delete pattern.
4066         (arm_subdi3): Convert to simple insn with no split.
4067         (subdi_zesidi): Delete pattern.
4068         (subdi_di_sesidi): Delete pattern.
4069         (subdi_zesidi_di): Delete pattern.
4070         (subdi_sesidi_di): Delete pattern.
4071         (subdi_zesidi_zesidi): Delete pattern.
4072         (negvdi3): Use s_register_operand.
4073         (negdi2_compare): Convert to simple insn with no split.
4074         (negdi2_insn): Likewise.
4075         (negsi2_carryin_compare): Delete pattern.
4076         (negdi_zero_extendsidi): Delete pattern.
4077         (arm_cmpdi_insn): Convert to simple insn with no split.
4078         (negdi2): Don't call gen_negdi2_neon.
4079         * config/arm/neon.md (adddi3_neon): Delete pattern.
4080         (subdi3_neon): Delete pattern.
4081         (negdi2_neon): Delete pattern.
4082         (splits for negdi2_neon): Delete splits.
4084 2019-10-18  Jakub Jelinek  <jakub@redhat.com>
4086         PR middle-end/92153
4087         * ggc-page.c (release_pages): Read g->alloc_size before free rather
4088         than after it.
4090 2019-10-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4092         * config/arm/t-multilib: Add rule to regenerate mutlilib header file
4093         with any change to t-multilib, t-aprofile and t-rmprofile.  Also add
4094         new multilib variants and new mappings.
4096 2019-10-18  Georg-Johann Lay  <avr@gjlay.de>
4098         PR target/86040
4099         * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
4101 2019-10-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4102             Richard Sandiford  <richard.sandiford@arm.com>
4104         PR target/86753
4105         * tree-vectorizer.h (scalar_cond_masked_key): New struct,
4106         and define hashmap traits for it.
4107         (loop_vec_info::scalar_cond_masked_set): New member.
4108         (vect_record_loop_mask): Adjust prototype.
4109         * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree):
4110         Implement method.
4111         * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to
4112         vect_record_loop_mask.
4113         (vectorizable_live_operation): Likewise.
4114         (vect_record_loop_mask): New param scalar_mask. Add entry
4115         cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL.
4116         * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask.
4117         Pass it as last arg to vect_record_loop_mask.
4118         (vectorizable_call): Pass scalar_mask as last arg to
4119         vect_record_loop_mask.
4120         (vectorizable_store): Likewise.
4121         (vectorizable_load): Likewise.
4122         (vectorizable_condition): Check if another part of vectorized code
4123         applies loop_mask to condition or to it's inverse, and if yes,
4124         apply loop_mask to result of vector comparison.
4126 2019-10-17  John David Anglin  <danglin@gcc.gnu.org>
4128         * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
4130 2019-10-18  Jakub Jelinek  <jakub@redhat.com>
4132         PR tree-optimization/92056
4133         * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes
4134         before calling compute_builtin_object_size.
4136 2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>
4138         PR target/65342
4139         * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
4140         (movdi_low_st): Delete.
4141         * config/rs6000/rs6000.c
4142         (darwin_rs6000_legitimate_lo_sum_const_p): New.
4143         (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
4144         * config/rs6000/rs6000.md (movsi_low): Delete.
4146 2019-10-17  Jason Merrill  <jason@redhat.com>
4148         * gimplify.h (get_initialized_tmp_var): Add default argument to
4149         post_p.
4150         * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove
4151         NULL post_p argument.
4152         * targhooks (std_gimplify_va_arg_expr): Likewise.
4154 2019-10-17  Richard Biener  <rguenther@suse.de>
4156         * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove.
4157         (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise.
4158         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
4159         initialize STMT_VINFO_VEC_COND_REDUC_CODE.
4160         * tree-vect-loop.c (vect_is_simple_reduction): Set
4161         STMT_VINFO_REDUC_CODE.
4162         (vectorizable_reduction): Remove dead and redundant code, use
4163         STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE.
4165 2019-10-17  Georg-Johann Lay  <avr@gjlay.de>
4167         Fix breakage introduced by r276985.
4169         * config/avr/avr.c (avr_option_override): Remove set of
4170         PARAM_ALLOW_STORE_DATA_RACES.
4171         * common/config/avr/avr-common.c (avr_option_optimization_table)
4172         [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.
4174 2019-10-17  H.J. Lu  <hongjiu.lu@intel.com>
4176         * config/i386/i386.h (processor_costs): Add clear_ratio.
4177         (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio.
4178         * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum
4179         of 6 and move_ratio in all cost models.
4181 2019-10-17  Richard Biener  <rguenther@suse.de>
4183         * tree-vect-loop.c (check_reduction_path): Compute reduction
4184         operation here.
4185         (vect_is_simple_reduction): Remove special-case of single-stmt
4186         reduction path detection.
4188 2019-10-17  Richard Earnshaw  <rearnsha@arm.com>
4190         * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture.
4192 2019-10-17  Yuliang Wang  <yuliang.wang@arm.com>
4194         * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>)
4195         (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>)
4196         (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>)
4197         (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>):
4198         New combine patterns.
4199         * config/aarch64/iterators.md (BSL_DUP): New int iterator for the
4200         above.
4201         (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above.
4203 2019-10-17  Aldy Hernandez  <aldyh@redhat.com>
4205         * tree-vrp.c (value_range_base::dump): Display +INF for both
4206         pointers and integers when appropriate.
4208 2019-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4210         * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide
4211         when to use versioning threshold.
4213 2019-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4215         * tree-vect-loop.c (determine_peel_for_niter): New function contained
4216         outlined code from ...
4217         (vect_analyze_loop_2): ... here.
4219 2019-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4221         * tree-vect-loop.c (vect_transform_loop): Move code from here...
4222         * tree-vect-loop-manip.c (vect_loop_versioning): ... to here.
4223         * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters.
4225 2019-10-17  Richard Biener  <rguenther@suse.de>
4227         * tree-vect-loop.c (needs_fold_left_reduction_p): Export.
4228         (vect_is_simple_reduction): Move all validity checks ...
4229         (vectorizable_reduction): ... here.  Compute whether we
4230         need a fold-left reduction here.
4231         * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge
4232         both overloads, check needs_fold_left_reduction_p directly.
4233         * tree-vectorizer.h (needs_fold_left_reduction_p): Declare.
4235 2019-10-17  Richard Biener  <rguenther@suse.de>
4237         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix
4238         TARGET_MEM_REF creation.
4240 2019-10-17  Richard Biener  <rguenther@suse.de>
4242         PR tree-optimization/92129
4243         * tree-vect-loop.c (vectorizable_reduction): Also fail
4244         on GIMPLE_SINGLE_RHS.
4246 2019-10-17  Jakub Jelinek  <jakub@redhat.com>
4248         PR tree-optimization/92056
4249         * tree-object-size.c (cond_expr_object_size): Return early if then_
4250         processing resulted in unknown size.
4252         PR tree-optimization/92115
4253         * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
4254         temporary if it could trap.
4256 2019-10-17  Richard Biener  <rguenther@suse.de>
4258         PR debug/91887
4259         * dwarf2out.c (gen_formal_parameter_die): Also try to match
4260         context_die against a DW_TAG_GNU_formal_parameter_pack parent.
4262 2019-10-16  Jakub Jelinek  <jakub@redhat.com>
4264         * tree-ssa-strlen.c (maybe_invalidate): Use
4265         HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu".
4267 2019-10-16  Andrew Burgess  <andrew.burgess@embecosm.com>
4268             Jim Wilson  <jimw@sifive.com>
4270         * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing
4271         regs to SIBCALL_REGS.
4272         * config/riscv/riscv.c (riscv_regno_to_class): Change argument
4273         passing regs to SIBCALL_REGS.
4275 2019-10-16  Martin Sebor  <msebor@redhat.com>
4277         PR tree-optimization/83821
4278         * tree-ssa-strlen.c (maybe_invalidate): Add argument.  Consider
4279         the length of a string when available.
4280         (handle_builtin_memset) Add argument.
4281         (handle_store, strlen_check_and_optimize_call): Same.
4282         (check_and_optimize_stmt): Same.  Pass it to callees.
4284 2019-10-16  Martin Sebor  <msebor@redhat.com>
4286         PR tree-optimization/91996
4287         * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location
4288         information.
4289         (compare_nonzero_chars): Add an overload.
4290         (count_nonzero_bytes): Add an argument.  Call overload above.
4291         Handle non-constant lengths in some range.
4292         (handle_store): Add an argument.
4293         (check_and_optimize_stmt): Pass an argument to handle_store.
4295 2019-10-16  Richard Earnshaw  <rearnsha@arm.com>
4297         * config/arm/arm.c (neon_valid_immediate): Clear bytes before use.
4299 2019-10-16  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
4301         * config/mips/mips.c (mips_expand_builtin_insn): Force the
4302         operands which correspond to the same input-output register to
4303         have the same pseudo assigned to them.
4305 2019-10-16  Ilya Leoshkevich  <iii@linux.ibm.com>
4307         * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition.
4309 2019-10-16  Wilco Dijkstra  <wdijkstr@arm.com>
4311         * config/aarch64/aarch64.c (aarch64_classify_symbol):
4312         Apply reasonable limit to symbol offsets.
4314 2019-10-16  Richard Biener  <rguenther@suse.de>
4316         * tree-vect-loop.c (vect_valid_reduction_input_p): Remove.
4317         (vect_is_simple_reduction): Delay checking to
4318         vectorizable_reduction and relax the checking.
4319         (vectorizable_reduction): Check we have a simple use.  Check
4320         for bogus condition reductions.
4321         * tree-vect-stmts.c (vect_transform_stmt): Make sure we
4322         are looking at the last stmt in a pattern sequence when
4323         filling in backedge PHI values.
4325 2019-10-16  Peter Bergner <bergner@linux.ibm.com>
4326             Jiufu Guo  <guojiufu@linux.ibm.com>
4328         PR target/70010
4329         * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
4330         the callee explicitly disables some isa_flags the caller is using.
4332 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
4334         * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P.
4336 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
4338         * genmodes.c (mode_data::order): New field.
4339         (blank_mode): Update accordingly.
4340         (VECTOR_MODES_WITH_PREFIX): Add an order parameter.
4341         (make_vector_modes): Likewise.
4342         (VECTOR_MODES): Update use accordingly.
4343         (cmp_modes): Sort by the new order field ahead of sorting by size.
4344         * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI)
4345         (VNx4QI, VNx4HI, VNx8QI): New partial vector modes.
4346         * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value.
4347         (aarch64_classify_vector_mode): Handle the new partial modes.
4348         (aarch64_vl_bytes): New function.
4349         (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR
4350         when counting the number of registers in an SVE mode.
4351         (aarch64_class_max_nregs): Likewise.
4352         (aarch64_hard_regno_mode_ok): Don't allow partial vectors
4353         in registers yet.
4354         (aarch64_classify_address): Treat partial vectors analogously
4355         to full vectors.
4356         (aarch64_print_address_internal): Consolidate the printing of
4357         MUL VL addresses, using aarch64_vl_bytes as the number of
4358         bytes represented by "VL".
4359         (aarch64_vector_mode_supported_p): Reject partial vector modes.
4361 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
4363         * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant
4364         rather than known_lt when choosing frame layouts.
4366 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
4368         * config/aarch64/aarch64.c (aarch64_layout_frame): Assert
4369         that all the adjustments add up to the full frame size.
4370         Use crtl->outgoing_args_size directly as the final adjustment
4371         where appropriate.
4373 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
4375         * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
4376         "frame" reference instead of always referring directly to
4377         "cfun->machine->frame".
4379 2019-10-16  Richard Biener  <rguenther@suse.de>
4381         PR tree-optimization/92119
4382         * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard
4383         against missing bswap lhs.
4385 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
4387         PR middle-end/92033
4388         * poly-int.h (constant_lower_bound_with_limit): New function.
4389         (constant_upper_bound_with_limit): Likewise.
4390         * doc/poly-int.texi: Document them.
4391         * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds
4392         into the worst-case INTEGER_CST bounds.
4394 2019-10-16  Feng Xue  <fxue@os.amperecomputing.com>
4396         PR ipa/91088
4397         * doc/invoke.texi (ipa-max-param-expr-ops): Document new option.
4398         * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New.
4399         * ipa-predicat.h (struct expr_eval_op): New struct.
4400         (expr_eval_ops): New typedef.
4401         (struct condition): Add type and param_ops fields, remove size field.
4402         (add_condition): Replace size parameter with type parameter, add
4403         param_ops parameter.
4404         * ipa-predicat.c (expr_eval_ops_equal_p): New function.
4405         (predicate::add_clause): Add comparisons on type and param_ops.
4406         (dump_condition): Add debug dump for param_ops.
4407         (remap_after_inlining): Adjust call arguments to add_condition.
4408         (add_condition): Replace size parameter with type parameter, add
4409         param_ops parameter. Unshare constant value used in conditions.
4410         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold
4411         parameter expressions using param_ops.
4412         (decompose_param_expr):  New function.
4413         (set_cond_stmt_execution_predicate): Use call to decompose_param_expr
4414         to replace call to unmodified_parm_or_parm_agg_item.
4415         (set_switch_stmt_execution_predicate): Likewise.
4416         (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size
4417         with type.
4418         (inline_read_section): Read param_ops from summary stream.
4419         (ipa_fn_summary_write): Write param_ops to summary stream.
4421 2019-10-15  Segher Boessenkool  <segher@kernel.crashing.org>
4423         PR rtl-optimization/92107
4424         * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the
4425         expression written.
4427 2019-10-15  Iain Sandoe  <iain@sandoe.co.uk>
4429         * config/darwin.c: Update description of fix and continue.
4431 2019-10-15  Iain Sandoe  <iain@sandoe.co.uk>
4433         * config/darwin.c (darwin_binds_local_p): Update to call
4434         default_binds_local_p_3 () directly. amend comments.
4436 2019-10-15  Richard Biener  <rguenther@suse.de>
4438         * lto-streamer-out.c (lto_variably_modified_type_p): New.
4439         (tree_is_indexable): Use it.
4440         * tree-streamer-out.c (pack_ts_type_common_value_fields):
4441         Stream variably_modified_type_p as TYPE_LANG_FLAG_0.
4442         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
4444 2019-10-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4446         * config/msp430/msp430.md (zero_extendqipsi2): New.
4447         (zero_extendqisi2): Optimize case where src register and base dst
4448         register are the same.
4449         (zero_extendhipsi2): Don't use 430X insn for rYs->r case.
4450         (zero_extendpsisi2): Optimize r->m case.
4451         Add unnamed insn patterns to catch insns combine searches for when
4452         optimizing pointer manipulation.
4454 2019-10-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4456         * config/msp430/msp430.md: Group zero_extend* insns together.
4458 2019-10-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4460         * config/msp430/constraints.md: Allow post_inc operand for "Ya"
4461         constraint.
4462         * config/msp430/msp430.c (msp430_legitimate_address_p): Handle
4463         POST_INC.
4464         (msp430_subreg): Likewise.
4465         (msp430_split_addsi): Likewise.
4466         (msp430_print_operand_addr): Likewise.
4467         * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define.
4468         (USE_STORE_POST_INCREMENT): Define.
4469         * config/msp430/msp430.md: Use the msp430_general_dst_operand or
4470         msp430_general_dst_nonv_operand predicates for the lvalues of insns.
4471         * config/msp430/predicates.md (msp430_nonpostinc_operand): New.
4472         (msp430_general_dst_operand): New.
4473         (msp430_general_dst_nonv_operand): New.
4474         (msp430_nonsubreg_operand): Remove.
4475         (msp430_nonsubreg_dst_operand): New.
4476         (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place
4477         of defunct msp430_nonsubreg_operand.
4478         (msp430_nonsubregnonpostinc_or_imm_operand): New.
4480 2019-10-15  Richard Biener  <rguenther@suse.de>
4482         PR tree-optimization/91929
4483         * tree-ssa-pre.c (pre_expr_d::loc): New member.
4484         (get_or_alloc_expr_for_name): Initialize it.
4485         (get_or_alloc_expr_for_constant): Likewise.
4486         (phi_translate_1): Copy it.
4487         (create_expression_by_pieces): Use the original location
4488         of the expression for the inserted stmt.
4489         (compute_avail): Record the location of the stmt for the
4490         expressions created.
4492 2019-10-15  Richard Sandiford  <richard.sandiford@arm.com>
4494         * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p
4495         before using tree_to_uhwi.
4497 2019-10-15  Ilya Leoshkevich  <iii@linux.ibm.com>
4499         * config/s390/s390.md: Run %a0:DI splitters only after reload.
4501 2019-10-15  Richard Biener  <rguenther@suse.de>
4503         PR tree-optimization/92094
4504         * tree-vect-loop.c (vectorizable_reduction): For nested cycles
4505         do not adjust the reduction definition def type.
4506         * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt
4507         defines the latch argument of the PHI.
4509 2019-10-15  Hongyu Wang  <hongtao.wang@intel.com>
4511         PR target/92035
4512         * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss,
4513         _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss,
4514         _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd,
4515         _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd,
4516         _mm_maskz_roundscale_round_sd): New intrinsics.
4517         (_mm_roundscale_ss, _mm_roundscale_round_ss): Use
4518         __builtin_ia32_rndscales?_mask_round builtins instead of
4519         __builtin_ia32_rndscales?_round.
4520         * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round,
4521         __builtin_ia32_rndscalesd_round): Remove.
4522         (__builtin_ia32_rndscaless_mask_round,
4523         __builtin_ia32_rndscalesd_mask_round): New intrinsics.
4524         * config/i386/sse.md
4525         (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ...
4526         (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>):
4527          ... this, adjust and add subst atrributes to make it maskable.
4529 2019-10-15  Richard Biener  <rguenther@suse.de>
4531         PR middle-end/92046
4532         * common.opt (fallow-store-data-races): New.
4533         * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove.
4534         * params.h (ALLOW_STORE_DATA_RACES): Likewise.
4535         * doc/invoke.texi (fallow-store-data-races): Document.
4536         (--param allow-store-data-races): Remove docs.
4537         * opts.c (default_options_table): Enable -fallow-store-data-races
4538         at -Ofast.
4539         (default_options_optimization): Do not enable --param
4540         allow-store-data-races at -Ofast.
4541         * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races
4542         instead of PARAM_ALLOW_STORE_DATA_RACES.
4543         * tree-ssa-loop-im.c (execute_sm): Likewise.
4545 2019-10-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4547         PR tree-optimization/92085
4548         * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause,
4549         instead of calling it unconditionally after
4550         delete_dead_or_redundant_assignment and fix indentation.
4552 2019-10-15  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
4554         * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when
4555         TARGET_VFP_DOUBLE.
4556         (*fmsub<SDF:mode>4): Likewise.
4557         *fnmsub<SDF:mode>4): Likewise.
4558         (*fnmadd<SDF:mode>4): Likewise.
4560 2019-10-14 Joel Hutton  <Joel.Hutton@arm.com>
4562         * doc/tree-ssa.texi: Update renamed macro name.
4564 2019-10-14  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
4566         * config/mips/mips.c (mips_cannot_force_const_mem): Reject
4567         vector constants.
4569 2019-10-14  Iain Sandoe  <iain@sandoe.co.uk>
4571         * config/darwin.c: Use unsigned ints for the picbase label
4572         counters, initialise the vars explicitly.
4573         (update_pic_label_number_if_needed): Move a variable declaration
4574         to where it's needed.
4575         (machopic_output_function_base_name): Use a more strict checking
4576         assert, and and unsigned int for the picbase label counter.
4577         (machopic_get_function_picbase): Likewise.
4579 2019-10-14  Richard Biener  <rguenther@suse.de>
4581         PR middle-end/92046
4582         * dse.c (scan_insn): Use param max_active_local_stores.
4583         (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust
4584         based on optimization level.
4585         * loop-invariant.c (move_loop_invariants): Adjust
4586         LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level.
4587         * opts.c (default_options_optimization): Do not adjust
4588         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and
4589         LOOP_INVARIANT_MAX_BBS_IN_LOOP here.
4591 2019-10-14  Wilco Dijkstra  <wdijkstr@arm.com>
4593         * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
4595 2019-10-14  Wilco Dijkstra  <wdijkstr@arm.com>
4597         * config/arm/arm.c (arm_option_override): Don't override sched
4598         pressure algorithm.
4600 2019-10-14  Richard Biener  <rguenther@suse.de>
4602         PR tree-optimization/92069
4603         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
4604         cycles do not set vect_nested_cycle on the latch definition.
4606 2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>
4608         * function-abi.h (expr_callee_abi): Declare.
4609         * function-abi.cc (expr_callee_abi): New function.
4611 2019-10-14  Aldy Hernandez  <aldyh@redhat.com>
4613         * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0]
4614         into [1,MAX].
4615         * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned
4616         non-zero being represented as [1,MAX].
4618 2019-10-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
4620         * tree-sra.c (dump_access): Add missing braces.
4622 2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
4624         * config/darwin.c (machopic_indirection_name): Rework the
4625         function to emit linker-visible symbols only for indirections
4626         in the data section.  Clean up the code and update comments.
4628 2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
4630         * config/darwin.c (machopic_indirect_data_reference): Remove
4631         redundant code.
4633 2019-10-13  Nathan Sidwell  <nathan@acm.org>
4635         * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
4637 2019-10-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4639         * doc/sourcebuild.texi (Test Directives, Add Options): Remove
4640         c99_runtime.
4642 2019-10-12  Jan Hubicka  <hubicka@ucw.cz>
4644         * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
4645         so non-virutal are before virutals.
4646         (output_function): Avoid body modifications.
4648 2019-10-12  John David Anglin  <danglin@gcc.gnu.org>
4650         * config/pa/pa.c (pa_output_call): Load descriptor address to register
4651         %r22.  Load function address before global pointer.
4652         (pa_attr_length_indirect_call): Adjust length of inline versions of
4653         $$dyncall.
4654         (pa_output_indirect_call): Remove fast inline version of $$dyncall
4655         before normal cases.  Update inline $$dyncall sequences to preserve
4656         function descriptor address in register %r22.
4657         (TRAMPOLINE_CODE_SIZE): Adjust.
4658         (pa_asm_trampoline_template): Revise 32-bit trampoline.  Don't assume
4659         register %r22 contains trampoline address.
4660         (pa_trampoline_init): Adjust offsets.
4661         (pa_trampoline_adjust_address): Likewise.
4662         * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
4664 2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
4666         PR target/67183
4667         * config/darwin.c (machopic_indirection): New field to flag
4668         non-lazy-symbol-pointers in the data section.
4669         (machopic_indirection_name): Compute if an indirection should
4670         appear in the data section.
4671         (machopic_output_data_section_indirection): New callback split
4672         from machopic_output_indirection.
4673         (machopic_output_stub_indirection): Likewise.
4674         (machopic_output_indirection): Retain the code for non-lazy
4675         symbol pointers in their regular section.
4676         (machopic_finish): Use the new callbacks to order the indirection
4677         output.
4679 2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
4681         * config/darwin-protos.h (machopic_finish): Delete.
4682         * config/darwin.c (machopic_finish): Make static.
4684 2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
4686         * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
4687         sections when building kernel extension code.
4689 2019-10-12  Palmer Dabbelt  <palmer@sifive.com>
4691         * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
4692         later standard."
4694 2019-10-12  John David Anglin  <danglin@gcc.gnu.org>
4696         * config/pa/pa.c (pa_option_override): Remove trailing comma
4697         from warning.
4699 2019-10-12  Jakub Jelinek  <jakub@redhat.com>
4701         PR middle-end/92063
4702         * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
4703         <case VEC_COND_EXPR>: Return false with *handled = false.
4704         (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
4705         recursing on the first operand.
4706         * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
4707         instead of tree_could_trap_p.
4708         * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
4710 2019-10-11  Jim Wilson  <jimw@sifive.com>
4712         PR rtl-optimization/91860
4713         * combine.c (subst): If new_rtx is a constant, also check for
4714         SIGN_EXTEND when deciding whether to call simplify_unary_operation.
4716 2019-10-11  Richard Sandiford  <richard.sandiford@arm.com>
4718         * expr.c (store_expr): Use rtx_to_poly_int64 rather than
4719         INTVAL when calling store_bit_field.
4721 2019-10-11  Wilco Dijkstra  <wdijkstr@arm.com>
4723         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
4724         size.
4726 2019-10-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4728         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to
4729         vectorizable_live_operation.
4730         (vectorizable_live_operation): Adjust parameters.
4731         * tree-vect-stmts.c (vect_init_vector,
4732         vect_gen_widened_results_half): Fix typo in function comment.
4733         (can_vectorize_live_stmts): Adjust function comment.
4734         Adjust parameters.  Adjust call to vectorizable_live_operation.
4735         (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts.
4736         (vect_transform_stmt): Adjust function comment.  Adjust call to
4737         can_vectorize_live_stmts.
4738         * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters.
4740 2019-10-11  Richard Biener  <rguenther@suse.de>
4742         PR tree-optimization/90883
4743         PR tree-optimization/91091
4744         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct
4745         alias-sets both for recording VN table entries and continuing
4746         walking after translating through copies.  Handle same-sized
4747         reads from SSA names by returning the plain SSA name.
4748         (eliminate_dom_walker::eliminate_stmt): Properly handle
4749         non-size precision stores in redundant store elimination.
4751 2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
4753         * ggc-page.c (release_pages): Output statistics when !quiet_flag.
4754         (ggc_collect): Dump later to not interfere with release_page dump.
4755         (ggc_trim): New function.
4756         * ggc-none.c (ggc_trim): New.
4757         * ggc.h (ggc_trim): Declare.
4759 2019-10-11  Richard Biener  <rguenther@suse.de>
4761         PR tree-optimization/92066
4762         PR tree-optimization/92046
4763         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4764         Fix bogus cost model check.
4766 2019-10-11  Tobias Burnus  <tobias@codesourcery.com>
4768         * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
4769         (LANG_HOOKS_DECLS): Add it.
4770         * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
4771         update comment for omp_is_optional_argument.
4772         * omp-general.c (omp_is_allocatable_or_ptr): New.
4773         * omp-general.h (omp_is_allocatable_or_ptr): Declare.
4774         * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
4775         Fortran's optional arguments and allocatable/pointer scalars
4776         with use_device_addr.
4778 2019-10-11  Ilya Leoshkevich  <iii@linux.ibm.com>
4780         PR target/77918
4781         * config/s390/2827.md: Add new opcodes.
4782         * config/s390/2964.md: Likewise.
4783         * config/s390/3906.md: Likewise.
4784         * config/s390/8561.md: Likewise.
4785         * config/s390/s390-builtins.def (s390_vfchesb): Use
4786         the new vec_cmpgev4sf_quiet_nocc.
4787         (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
4788         (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
4789         (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
4790         (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
4791         (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
4792         (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
4793         (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
4794         * config/s390/s390-modes.def (CCSFPS): New mode.
4795         * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
4796         (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
4797         (s390_branch_condition_mask): Reuse CCS for CCSFPS.
4798         (s390_expand_vec_compare): Use non-signaling patterns where
4799         necessary.
4800         (s390_reverse_condition): Support CCSFPS.
4801         * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
4802         * config/s390/vector.md: (VFCMP_HW_OP): Remove.
4803         (asm_fcmp_op): Likewise.
4804         (*smaxv2df3_vx): Use pattern for quiet comparison.
4805         (*sminv2df3_vx): Likewise.
4806         (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
4807         (*vec_cmpeq<mode>_quiet_nocc): New pattern.
4808         (vec_cmpgt<mode>_quiet_nocc): Likewise.
4809         (vec_cmplt<mode>_quiet_nocc): New expander.
4810         (vec_cmpge<mode>_quiet_nocc): New pattern.
4811         (vec_cmple<mode>_quiet_nocc): New expander.
4812         (*vec_cmpeq<mode>_signaling_nocc): New pattern.
4813         (*vec_cmpgt<mode>_signaling_nocc): Likewise.
4814         (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
4815         (*vec_cmpge<mode>_signaling_nocc): Likewise.
4816         (*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
4817         (vec_cmpungt<mode>): New expander.
4818         (vec_cmpunge<mode>): Likewise.
4819         (vec_cmpuneq<mode>): Use quiet patterns.
4820         (vec_cmpltgt<mode>): Allow only on z14+.
4821         (vec_cmpordered<mode>): Use quiet patterns.
4822         (vec_cmpunordered<mode>): Likewise.
4823         (VEC_CMP_EXPAND): Add ungt and unge.
4825 2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
4827         * gimple-streamer-out.c (output_gimple_stmt): Add explicit function
4828         parameter.
4829         * lto-streamer-out.c: Include tree-dfa.h.
4830         (output_cfg): Do not use cfun.
4831         (lto_prepare_function_for_streaming): New.
4832         (output_function): Do not push cfun; do not initialize loop optimizer.
4833         * lto-streamer.h (lto_prepare_function_for_streaming): Declare.
4834         * passes.c (ipa_write_summaries): Use it.
4835         (ipa_write_optimization_summaries): Do not modify bodies.
4836         * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
4837         * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
4838         * tree-ssa-dse.c (pass_dse::execute): Update use of
4839         renumber_gimple_stmt_uids.
4840         * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
4842 2019-10-11  Kewen Lin  <linkw@gcc.gnu.org>
4844         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
4845         vec_promote_demote cost to 1 for non-Power7 VSX architectures.
4847 2019-10-10  Joseph Myers  <joseph@codesourcery.com>
4849         * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
4850         macros.
4851         [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
4852         Also define DFP macros for these conditions.
4853         [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
4854         DEC128_SUBNORMAL_MIN): Do not define.
4855         [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
4856         (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
4858 2019-10-10  Xiong Hu Luo  <luoxhu@linux.ibm.com>
4859             Sandra Loosemore  <sandra@codesourcery.com>
4861         PR middle-end/26241
4862         * doc/lto.texi (IPA): Reference to the IPA passes.
4863         * doc/passes.texi (Pass manager): Add node IPA passes and
4864           description for each IPA pass.
4866 2019-10-10  Jan Hubicka  <hubicka@ucw.cz>
4868         * ipa-reference.c: Do not include splay-tree.h
4869         (reference_vars_to_consider): Turn to hash map.
4870         (get_static_name, ipa_init, analyze_function, propagate,
4871         stream_out_bitmap, ipa_reference_write_optimization_summary,
4872         ipa_reference_write_optimization_summary): Update.
4874 2019-10-10  Jan Hubicka  <hubicka@ucw.cz>
4876         * ipa-reference.c (propagate): Fix releasing of IPA summaries.
4878 2019-10-10  Iain Sandoe  <iain@sandoe.co.uk>
4880         * config/darwin.c: Lookup Objective C metadata and force indirection
4881         for IVAR refs.
4883 2019-10-10  Michael Meissner  <meissner@linux.ibm.com>
4885         * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
4886         addresses.
4887         (mem_operand_gpr): Add check for prefixed addresses.
4888         (mem_operand_ds_form): Add check for prefixed addresses.
4889         (rs6000_legitimate_offset_address_p): If we support prefixed
4890         addresses, check for a 34-bit offset instead of 16-bit.
4891         (rs6000_legitimate_address_p): Add check for prefixed addresses.
4892         Do not allow load/store with update if the address is prefixed.
4893         (rs6000_mode_dependent_address):  If we support prefixed
4894         addresses, check for a 34-bit offset instead of 16-bit.
4896 2019-10-10  Ilya Leoshkevich  <iii@linux.ibm.com>
4898         PR target/77918
4899         * config/s390/vector.md (vcond_comparison_operator): New
4900         predicate.
4901         (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
4903 2019-10-10  David Malcolm  <dmalcolm@redhat.com>
4905         PR 87488
4906         * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
4907         -D.
4908         * configure.ac (--with-documentation-root-url): New option.
4909         * configure: Regenerate.
4910         * diagnostic-format-json.cc (json_end_diagnostic): If there is an
4911         option URL, add it as a new string field of the diagnostic option.
4912         * diagnostic.c (diagnostic_initialize): Initialize get_option_url.
4913         (print_option_information): If get_option_url is non-NULL, call
4914         it, and if the result is non-NULL, potentially emit an escape
4915         sequence to markup the option text with the resulting URL.
4916         * diagnostic.h (diagnostic_context::get_option_url): New callback.
4917         * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
4918         example of JSON output.
4919         * opts-diagnostic.h (get_option_url): New decl.
4920         * opts.c (get_option_url): New function.
4921         * toplev.c (general_init): Initialize the get_option_url callback.
4923 2019-10-10  David Malcolm  <dmalcolm@redhat.com>
4925         PR 87488
4926         * common.opt (fdiagnostics-urls=): New option.
4927         (diagnostic-url.h): Add SourceInclude.
4928         (diagnostic_url_rule): New enum.
4929         * diagnostic-color.c: Include "diagnostic-url.h".
4930         (diagnostic_urls_enabled_p): New function.
4931         * diagnostic-url.h: New file.
4932         * diagnostic.c: Include "diagnostic-url.h".
4933         (diagnostic_urls_init): New function.
4934         * diagnostic.h (diagnostic_urls_init): New decl.
4935         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
4936         -fdiagnostics-urls to the list.
4937         (-fdiagnostics-urls): New option.
4938         * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
4939         (driver::global_initializations): Call diagnostic_urls_init.
4940         * opts-global.c (init_options_once): Likewise.
4941         * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
4942         * pretty-print.c (pretty_printer::pretty_printer): Initialize
4943         show_urls.
4944         (pp_begin_url): New function.
4945         (pp_end_url): New function.
4946         (selftest::test_urls): New selftest.
4947         (selftest::pretty_print_c_tests): Call it.
4948         * pretty-print.h (pretty_printer::show_urls): New field.
4949         (pp_begin_url): New decl.
4950         (pp_end_url): New decl.
4952 2019-10-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4954         PR target/92022
4955         * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
4957 2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
4959         PR target/88630
4960         * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
4961         * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
4962         also for TARGET_FPU_SH4_300.
4963         (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
4964         TARGET_SH4_300.
4965         * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
4966         (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
4967         (*negsf2_i): Split into ...
4968         (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
4969         (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
4970         (**abssf2_i): Split into ...
4971         (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
4972         (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
4973         (*negdf2_i): Split into ...
4974         (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
4975         (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
4976         (**abssf2_i): Split into ...
4977         (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
4979 2019-10-10  Richard Biener  <rguenther@suse.de>
4981         PR middle-end/92046
4982         * opts.c (finish_options): Do not influence global --params
4983         from options that are adjustable per function.
4984         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4985         Apply --param adjustment based on active cost-model.
4986         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable
4987         further store-sinking when vectorization or if-conversion
4988         are not enabled.
4990 2019-10-10  Jan Hubicka  <hubicka@ucw.cz>
4992         PR middle-end/92037
4993         * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
4994         rather than ggc_alloc_cleared to alloc symbol table.
4995         * toplev.c (general_init): Likewise.
4996         * cgraph.h (symbol_table): Explicitly construct every field.
4998 2019-10-10  Andreas Krebbel  <krebbel@linux.ibm.com>
5000         * common/config/s390/s390-common.c (PF_ARCH13): Rename to...
5001         (PF_Z15): ... this.
5002         * config.gcc: Add z15 as option for --with-arch and --with-tune
5003         configure switches.
5004         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
5005         error reporting for unsupported builtins.
5006         * config/s390/s390-opts.h (enum processor_type): Rename
5007         PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
5008         * config/s390/8561.md: Rename arch13 to z15 throughout the file.
5009         * config/s390/driver-native.c (s390_host_detect_local_cpu):
5010         Likewise.
5011         * config/s390/s390-builtins.def: Likewise.
5012         * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
5013         (s390_expand_builtin): Add missing check for unsupported builtins.
5014         (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
5015         (s390_rtx_costs): Likewise.
5016         (s390_get_sched_attrmask): Rename arch13 to z15.
5017         (s390_get_unit_mask): Likewise.
5018         (s390_is_fpd): Likewise.
5019         (s390_is_fxd): Likewise.
5020         * config/s390/s390.h (enum processor_flags): Likewise.
5021         * config/s390/s390.md: Likewise.
5022         * config/s390/vector.md: Likewise.
5023         * config/s390/vx-builtins.md: Likewise.
5024         * config/s390/s390.opt: Add z15 to processor_type value.
5026 2019-10-10  Andreas Krebbel  <krebbel@linux.ibm.com>
5028         PR target/91035
5029         * config/s390/s390-protos.h (s390_output_split_stack_data): Add
5030         prototype.
5031         * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove.
5032         ("split_stack_data", "split_stack_call")
5033         ("split_stack_call_<mode>", "split_stack_cond_call")
5034         ("split_stack_cond_call_<mode>"): Remove.
5035         ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New
5036         insn definition.
5037         * config/s390/s390.c (s390_output_split_stack_data): New function.
5038         (s390_expand_split_stack_prologue): Use the merged expander.
5040 2019-10-09  Martin Sebor  <msebor@redhat.com>
5042         PR tree-optimization/90879
5043         * builtins.c (check_access): Avoid using maxbound when null.
5044         * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change.
5045         * doc/invoke.texi (-Wstring-compare): Document new warning option.
5046         * gimple-fold.c (get_range_strlen_tree): Make setting maxbound
5047         conditional.
5048         (get_range_strlen): Overwrite initial maxbound when non-null.
5049         * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen
5050         changes.
5051         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.
5052         (used_only_for_zero_equality): New function.
5053         (handle_builtin_memcmp): Call it.
5054         (determine_min_objsize): Return an integer instead of tree.
5055         (get_len_or_size, strxcmp_eqz_result): New functions.
5056         (maybe_warn_pointless_strcmp): New function.
5057         (handle_builtin_string_cmp): Call it.  Fold zero-equality of strcmp
5058         between a longer string and a smaller array.
5059         (get_range_strlen_dynamic): Overwrite initial maxbound when non-null.
5061 2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
5063         * config/darwin.c (darwin_override_options): Make the check for
5064         Objective-C ABI version more specific for 64bit code.
5066 2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
5068         * config/darwin.c (machopic_indirect_data_reference): Set flag to
5069         indicate that the new symbol is an indirection.
5070         (machopic_indirect_call_target): Likewise.
5071         * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
5072         (MACHO_SYMBOL_INDIRECTION_P): New.
5073         (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
5075 2019-10-08  Jason Merrill  <jason@redhat.com>
5077         * doc/invoke.texi: Document -fconcepts-ts.
5079 2019-10-09  Richard Biener  <rguenther@suse.de>
5081         * tree-vect-loop.c (vect_is_simple_reduction): Simplify and
5082         allow stmts other than GIMPLE_ASSIGN in nested cycles.
5084 2019-10-08  Richard Biener  <rguenther@suse.de>
5086         * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New.
5087         (_stmt_vec_info::force_single_cycle): Likewise.
5088         (STMT_VINFO_FORCE_SINGLE_CYCLE): New.
5089         (STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
5090         * tree-vect-loop.c (vectorizable_reduction): Set
5091         STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE.
5092         (vect_transform_reduction): Use them to remove redundant code.
5093         (vect_transform_cycle_phi): Likewise.
5095 2019-10-08  Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
5097         PR tree-optimization/90836
5098         * match.pd (popcount): New pattern.
5100 2019-10-08  Martin Sebor  <msebor@redhat.com>
5102         PR middle-end/92026
5103         PR middle-end/92014
5104         * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF
5105         again once nbytes has been set.  Set the access size when not yet set.
5107 2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
5109         * config/darwin.c (machopic_select_section): Remove dead code for
5110         old Objective-C section selection method, replace with unreachable.
5112 2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
5114         * config/darwin.c (machopic_indirect_data_reference): Check for
5115         required indirections before making direct access to defined
5116         values.
5117         (machopic_output_indirection): Place the indirected pointes for
5118         required indirections into the non-lazy symbol pointers section.
5119         (darwin_encode_section_info):
5120         * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
5121         (MACHO_SYMBOL_MUST_INDIRECT_P): New.
5123 2019-10-08  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5125         PR target/91994
5126         * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
5127         instead of ALL_SSE_REG to check if function call preserves some
5128         256-bit SSE registers.
5130 2019-10-08  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
5132         * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
5133         LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
5134         MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
5136 2019-10-08  Richard Biener  <rguenther@suse.de>
5138         * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove.
5139         (_stmt_vec_info::is_reduc_info): Add.
5140         (STMT_VINFO_VEC_REDUCTION_TYPE): Remove.
5141         (vectorizable_condition): Remove.
5142         (vectorizable_shift): Likewise.
5143         (vectorizable_reduction): Adjust.
5144         (info_for_reduction): New.
5145         * tree-vect-loop.c (vect_force_simple_reduction): Fold into...
5146         (vect_analyze_scalar_cycles_1): ... here.
5147         (vect_analyze_loop_operations): Adjust.
5148         (needs_fold_left_reduction_p): Simplify for single caller.
5149         (vect_is_simple_reduction): Likewise.  Remove stmt restriction
5150         for nested cycles not part of double reductions.
5151         (vect_model_reduction_cost): Pass in the reduction type.
5152         (info_for_reduction): New function.
5153         (vect_create_epilog_for_reduction): Use it, access reduction
5154         meta off the stmt info it returns.  Use STMT_VINFO_REDUC_TYPE
5155         instead of STMT_VINFO_VEC_REDUCTION_TYPE.
5156         (vectorize_fold_left_reduction): Remove pointless assert.
5157         (vectorizable_reduction): Analyze the full reduction when
5158         visiting the outermost PHI.  Simplify.  Use STMT_VINFO_REDUC_TYPE
5159         instead of STMT_VINFO_VEC_REDUCTION_TYPE.  Direct reduction
5160         stmt code-generation to vectorizable_* in most cases.  Verify
5161         code-generation only for cases handled by
5162         vect_transform_reductuon.
5163         (vect_transform_reduction): Use info_for_reduction to get at
5164         reduction meta.  Simplify.
5165         (vect_transform_cycle_phi): Likewise.
5166         (vectorizable_live_operation): Likewise.
5167         * tree-vect-patterns.c (vect_reassociating_reduction_p): Look
5168         at the PHI node for STMT_VINFO_REDUC_TYPE.
5169         * tree-vect-slp.c (vect_schedule_slp_instance): Remove no
5170         longer necessary code.
5171         * tree-vect-stmts.c (vectorizable_shift): Make static again.
5172         (vectorizable_condition): Likewise.  Get at reduction related
5173         info via info_for_reduction.
5174         (vect_analyze_stmt): Adjust.
5175         (vect_transform_stmt): Likewise.
5176         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
5177         STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE.
5179 2019-10-08  Joseph Myers  <joseph@codesourcery.com>
5181         * doc/invoke.texi (-ffp-int-builtin-inexact): Document
5182         -fno-fp-int-builtin-inexact default for C2X.
5184 2019-10-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5185             Richard Biener  <rguenther@suse.de>
5187         PR tree-optimization/91532
5188         * tree-if-conv.c: Include tree-ssa-dse.h.
5189         (ifcvt_local_dce): Change param from bb to loop,
5190         and call dse_classify_store.
5191         (tree_if_conversion): Pass loop instead of loop->header as arg
5192         to ifcvt_local_dce.
5193         * tree-ssa-dse.c: Include tree-ssa-dse.h.
5194         (delete_dead_or_redundant_assignment): Remove static qualifier from
5195         declaration, and add prototype in tree-ssa-dse.h.
5196         (dse_store_status): Move to tree-ssa-dse.h.
5197         (dse_classify_store): Remove static qualifier and add new tree param
5198         stop_at_vuse, and add prototype in tree-ssa-dse.h.
5199         * tree-ssa-dse.h: New header.
5201 2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
5203         * config/darwin.c (machopic_output_indirection): Don't put
5204         hidden symbol indirections into the .data section, use the
5205         non-lazy symbol pointers section as normal.
5206         (darwin_encode_section_info): Record if a symbol is hidden.
5207         * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
5208         (MACHO_SYMBOL_HIDDEN_VIS_P): New.
5210 2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
5212         * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
5213         predicates instead of accessing bits directly.
5214         (machopic_indirect_call_target): Likewise.
5215         (machopic_output_indirection): Likewise.
5216         (darwin_encode_section_info): Improve description.  Use renamed
5217         symbol flags.  Use predicate macros for variables and functions.
5218         * config/darwin.h:
5219         Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
5220         Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
5221         Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
5222         (MACHO_SYMBOL_VARIABLE_P): New.
5223         (MACHO_SYMBOL_DEFINED_P):New.
5224         (MACHO_SYMBOL_STATIC_P): New.
5225         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
5226         (SYMBOL_FLAG_SUBT_DEP): New.
5227         * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
5229 2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5231         * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/
5232         (msp430_expand_epilogue): Likewise.
5233         * config/msp430/predicates.md: Likewise.
5234         * config/msp430/msp430.md: Likewise.
5235         Replace blocks of 8 spaces with tabs.
5237 2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5239         * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype.
5240         * config/msp430/msp430.c (msp430_split_addsi): New.
5241         * config/msp430/msp430.md: Call msp430_split_addsi () instead of using
5242         a block of C code for splitting addsi.
5244 2019-10-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5246         * config/i386/i386-expand.c (ix86_expand_floorceildf_32,
5247         ix86_expand_rounddf_32): Reorder functions.
5248         * config/i386/i386-protos.h: Update.
5250 2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5252         * config.in: Regenerate.
5253         * config/msp430/constraints.md: Fix docstring for "Ys" constraint.
5254         Add new "Yx" constraint.
5255         * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec
5256         function.
5257         * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New
5258         prototype.
5259         * config/msp430/msp430.c (msp430_option_override): Allow the lower
5260         code/data region to be selected in the small memory model.
5261         (msp430_section_attr): Don't warn if the "section" and "lower"
5262         attributes are used together.
5263         (msp430_handle_generic_attribute): Likewise.
5264         (msp430_var_in_low_mem): New function.
5265         (TARGET_ENCODE_SECTION_INFO): Define.
5266         (msp430_encode_section_info): New function.
5267         (gen_prefix): Return early in the small memory model.
5268         Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the
5269         ".lower" prefix if -m{code,data}-region=lower have been passed.
5270         (msp430_output_aligned_decl_common): Emit common symbols when
5271         -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is
5272         set.
5273         (TARGET_ASM_FILE_END): Define.
5274         (msp430_file_end): New function.
5275         (msp430_do_not_relax_short_jumps): Allow relaxation when
5276         function will be in the lower region.
5277         (msp430_op_not_in_high_mem): New function.
5278         (msp430_print_operand): Check "msp430_op_not_in_high_mem" for
5279         the 'X' operand selector.
5280         Clarify comment for 'x' operand selector.
5281         * config/msp430/msp430.h (LINK_SPEC): Propagate
5282         -m{code,data}-region to the linker via spec function
5283         msp430_propagate_region_opt.
5284         (msp430_propagate_region_opt): New prototype.
5285         (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt.
5286         (SYMBOL_FLAG_LOW_MEM): Define.
5287         * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand
5288         selector.
5289         (zero_extendqihi2): Fix operand number used by "%X" selector.
5290         (zero_extendqisi2): Likewise.
5291         (zero_extendhisi2): Likewise.
5292         (movqi): Use "Yx" constraint in place of "%X" operand selector.
5293         (movhi): Likewise.
5294         (addqi3): Likewise.
5295         (addhi3): Likewise.
5296         (addsi3): Likewise.
5297         (addhi3_cy): Likewise.
5298         (addchi4_cy): Likewise.
5299         (subqi3): Likewise.
5300         (subhi3): Likewise.
5301         (subsi3): Likewise.
5302         (bic<mode>3): Likewise.
5303         (and<mode>3): Likewise.
5304         (ior<mode>3): Likewise.
5305         (xor<mode>3): Likewise.
5306         (slli_1): Add missing "%X" operand selector.
5307         (slll_1): Likewise.
5308         (slll_2): Likewise.
5309         (srai_1): Likewise.
5310         (sral_1): Likewise.
5311         (sral_2): Likewise.
5312         (srli_1): Likewise.
5313         (srll_1): Likewise.
5314         (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand
5315         selector.
5316         (cbranchhi4_real): Likewise.
5317         (cbranchqi4_reversed): Likewise.
5318         (cbranchhi4_reversed): Likewise.
5319         (*bitbranch<mode>4): Likewise.
5320         (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector.
5321         * config/msp430/msp430.opt (mcode-region=): Set default to
5322         MSP430_REGION_LOWER. Improve docstring.
5323         (mdata-region=): Likewise.
5324         (muse-lower-region-prefix): New option.
5325         * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add
5326         mdata-region=none multilib.
5327         (MULTILIB_MATCHES): Set mdata-region={upper,either} to match
5328         mdata-region=none multilib.
5329         MULTILIB_EXCEPTIONS: Remove.
5330         MULTILIB_REQUIRED: Define.
5331         * configure: Regenerate.
5332         * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and
5333         HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50.
5334         * doc/extend.texi: Clarify comment for {upper,lower,either}
5335         function attributes.
5336         Add separate description for "lower" variable attribute.
5338 2019-10-07  Ilya Leoshkevich  <iii@linux.ibm.com>
5340         PR target/77918
5341         * optabs-tree.c (vcond_icode_p): New function.
5342         (vcond_eq_icode_p): Likewise.
5343         (expand_vec_cond_expr_p): Use vcond_icode_p and
5344         vcond_eq_icode_p.
5345         * optabs.c (can_vcond_compare_p): New function.
5346         * optabs.h (can_vcond_compare_p): Likewise.
5348 2019-10-07  Ilya Leoshkevich  <iii@linux.ibm.com>
5350         PR target/77918
5351         * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the
5352         caller passes a non-trapping condition.
5353         (is_gimple_condexpr): Allow trapping conditions.
5354         (is_gimple_condexpr_1): New helper function.
5355         (is_gimple_condexpr_for_cond): New function, acts like old
5356         is_gimple_condexpr.
5357         * gimple-expr.h (is_gimple_condexpr_for_cond): New function.
5358         * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and
5359         VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.).
5360         * gimplify.c (gimplify_cond_expr): Use
5361         is_gimple_condexpr_for_cond.
5362         (gimplify_expr): Allow is_gimple_condexpr_for_cond.
5363         * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and
5364         VEC_COND_EXPR.
5365         (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR.
5366         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use
5367         is_gimple_condexpr_for_cond, remove pointless tmp check
5368         (forward_propagate_into_cond): Remove pointless tmp check.
5370 2019-10-07 Vladislav Ivanishin  <vlad@ispras.ru>
5372         * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
5373         match that of other gsi_next_* functions.  Adjust the comment.
5374         (gsi_start_nonvirtual_phis): New function.
5375         * ipa-icf.c (sem_function::compare_phi_node): Update uses of
5376         gsi_next_nonvirtual_phi accordingly.  (No functional change.)
5378 2019-10-07 Vladislav Ivanishin  <vlad@ispras.ru>
5380         * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
5381         setjmp situation here.  Fix a verb's ending: "the exact variables or
5382         elements for which there are warnings depends" -> "... depend".
5384 2019-10-07  Aldy Hernandez  <aldyh@redhat.com>
5386         * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check.
5388 2019-10-07  Aldy Hernandez  <aldyh@redhat.com>
5390         * ipa-prop.c (ipa_vr::nonzero_p): New.
5391         (ipcp_update_vr): Use nonzero_p instead of open-coding check for
5392         non-zero range.
5393         * ipa-prop.h (class ipa_vr): Add nonzero_p.
5394         * tree-vrp.c (range_has_numeric_bounds_p): New.
5395         (range_int_cst_p): Use range_has_numeric_bounds_p.
5396         (get_range_op_handler): New.
5397         (supported_types_p): New.
5398         (defined_ranges_p): New.
5399         (drop_undefines_to_varying): New.
5400         (range_fold_binary_symbolics_p): New.
5401         (range_fold_unary_symbolics_p): New.
5402         (range_fold_unary_expr): Extract out into above functions.
5403         (range_fold_binary_expr): Same.
5404         (value_range_base::normalize_addresses): New.
5405         (value_range_base::normalize_symbolics): Normalize addresses.
5406         * tree-vrp.h (class value_range_base): Add normalize_addresses.
5408 2019-10-07  Aldy Hernandez  <aldyh@redhat.com>
5410         * tree-vrp.c (value_range_base::singleton_p): Use
5411         value_range_base::num_pairs instead of vrp_val_is* to check
5412         if a range has one sub-range.
5414 2019-10-07  Richard Sandiford  <richard.sandiford@arm.com>
5416         * ira-lives.c (check_and_make_def_conflict): Handle cases in which
5417         DEF is not a true earlyclobber but is tied to a specific input
5418         operand, and so is effectively earlyclobber wrt inputs that have
5419         different values.
5420         (make_early_clobber_and_input_conflicts): Pass this case to the above.
5422 2019-10-07  Richard Sandiford  <richard.sandiford@arm.com>
5424         * machmode.h (opt_mode): Mark constructors with CONSTEXPR.
5425         (pod_mode): Mark operators likewise.
5426         (scalar_int_mode): Mark non-default constructors and
5427         operators with CONSTEXPR.
5428         (scalar_float_mode, scalar_mode, complex_mode): Likewise.
5429         (fixed_size_mode): Likewise.
5431 2019-10-07  Richard Sandiford  <richard.sandiford@arm.com>
5433         PR target/91994
5434         * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand
5435         and wrap the unspec_volatile in a parallel.
5436         (*avx_vzeroupper): New define_insn.  Use a match_parallel around
5437         the unspec_volatile.
5438         * config/i386/predicates.md (vzeroupper_pattern): Expect the
5439         unspec_volatile to be wrapped in a parallel.
5440         * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper)
5441         (ix86_add_reg_usage_to_vzerouppers): New functions.
5442         (rest_of_handle_insert_vzeroupper): Use them to add register
5443         usage information to the vzeroupper instructions.
5445 2019-10-07  Richard Biener  <rguenther@suse.de>
5447         PR tree-optimization/91975
5448         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently
5449         handle invariants.
5451 2019-10-06  Richard Sandiford  <richard.sandiford@arm.com>
5453         * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary
5454         function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET.
5456 2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>
5458         * config/darwin.c (darwin_override_options): Adjust objective-c
5459         ABI version error messages to avoid punctuation and contracted
5460         negations.
5462 2019-10-05  Jan Hubicka  <hubicka@ucw.cz>
5464         * ipa-inline.c: Fix type; compute size rather than self_size
5465         for size of caller function.
5467 2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>
5469         PR target/59888
5470         * config/darwin.c (darwin_rodata_section): Add relocation flag,
5471         choose const_data section for constants with relocations.
5472         (machopic_select_section): Pass relocation flag to
5473         darwin_rodata_section ().
5475 2019-10-05  Jakub Jelinek  <jakub@redhat.com>
5477         PR tree-optimization/91734
5478         * generic-match-head.c: Include fold-const-call.h.
5479         * match.pd (sqrt(x) cmp c): Check the boundary value and
5480         in case inexact computation of c*c affects comparison of the boundary,
5481         turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
5482         or GT_EXPR into GE_EXPR.  Punt for sqrt comparisons against NaN and
5483         for -frounding-math.  For c2, try the next smaller or larger floating
5484         point constant depending on comparison code and if it has the same
5485         sqrt as c2, use it instead of c2.
5487 2019-10-04  Martin Sebor  <msebor@redhat.com>
5489         PR middle-end/91977
5490         * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
5491         MEM_REF right operand.  Avoid failing for MEM_REF assignments from
5492         uninitialized objects.
5494 2019-10-04  Martin Sebor  <msebor@redhat.com>
5496         * builtins.c (compute_objsize): Add an argument.
5497         * tree-object-size.c (addr_object_size): Same.
5498         (compute_builtin_object_size): Same.
5499         * tree-object-size.h (compute_builtin_object): Same.
5501 2019-10-04  Jan Hubicka  <hubicka@ucw.cz>
5503         * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
5505 2019-10-04  Rafael Tsuha  <rafael.tsuha@usp.br>
5507         * match.pd (sinh (x) / cosh (x)): New simplification rule.
5509 2019-10-04  Martin Jambor  <mjambor@suse.cz>
5511         * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
5512         fntype when switching to calling memcpy instead of memset.
5514 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5516         * hash-table.h (hash_table::empty_slow): Don't assign
5517         size_t values to int variables.
5519 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5521         * expr.c (convert_mode_scalar): Remove shadowing local var.
5522         (emit_block_move): Rename local vars.
5523         (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
5524         (emit_push_insn): Rename local vars.
5525         (expand_assignment): Fix wrong mode in assign_stack_temp.  Remove
5526         shadowing local vars.
5527         (store_constructor): Remove shadowing local vars.  Rename local var.
5528         (store_field, expand_cond_expr_using_cmove,
5529         expand_expr_real_2): Remove shadowing local vars.
5530         (expand_expr_real_1,
5531         do_store_flag): Remove shadowing local vars.  Rename local vars.
5533 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5535         * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.
5537 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5539         * genmatch.c (commutate): Rename local var.
5540         (lower_cond): Reuse local var.
5541         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
5542         dt_operand::gen, dt_operand::gen_gimple_expr,
5543         dt_simplify::gen): Add a param.  Rename generated vars.
5544         (decision_tree::insert_operand,
5545         (capture_info::walk_match, capture_info::walk_result,
5546         capture_info::walk_c_expr): Rename local vars.
5547         (expr::gen_transform): Rename generated vars.
5548         Use snprintf.  Rename local vars.
5549         (capture::gen_transform, dt_operand::get_name,
5550         dt_operand::gen_opname): Rename generated vars.
5551         (write_predicate): Adjust call to gen_kids.
5552         (parser::get_internal_capture_id): Rename generated vars.
5553         (parser::parse_expr): Rename local vars.
5554         (parser::parse_if): Remove local var.
5555         (parser::parse_pattern, add_operator): Rename local vars.
5557 2019-10-04  Joseph Myers  <joseph@codesourcery.com>
5559         * builtins.def (DEF_C2X_BUILTIN): New macro.
5560         (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
5561         (nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
5562         (strndup): Use DEF_C2X_BUILTIN.
5563         * coretypes.h (enum function_class): Add function_c2x_misc.
5565 2019-10-04  Maya Rashish  <coypu@sdf.org>
5567         * ira-color.c (update_costs_from_allocno): Call
5568         ira_init_register_move_cost_if_necessary.
5570 2019-10-04  Jeff Law  <law@redhat.com>
5572         * config/h8300/h8300.md (cpymemsi): Disable.
5573         (movmd, movmd_internal_<mode>, movstr, movsd):
5574         (movstr, movsd, stpcpy_internal_<mode>: Likewise.
5575         (movmd splitter, movsd splitter): Likewise.
5577         * range-op.cc (range_tests): Avoid two tests when ints and
5578         shorts are the same size.
5580 2019-10-04  Richard Biener  <rguenther@suse.de>
5582         PR lto/91968
5583         * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
5584         BLOCK_VARS.
5586 2019-10-04  Richard Biener  <rguenther@suse.de>
5588         PR tree-optimization/91982
5589         * tree-vect-loop.c (vectorizable_live_operation): Also guard
5590         against EXTRACT_LAST_REDUCTION.
5591         * tree-vect-stmts.c (vect_transform_stmt): Likewise.
5593 2019-10-04  Aldy Hernandez  <aldyh@redhat.com>
5595         * range-op.o (value_range_from_overflowed_bounds): Rename from
5596         adjust_overflow_bound.
5597         (value_range_with_overflow): Rename from
5598         create_range_with_overflow.
5599         (create_possibly_reversed_range): Adjusted for above renames.
5600         (operator_*::wi_fold): Same.
5601         (cross_product_operator::wi_cross_productor): Same.
5603 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5605         * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
5606         -Wshadow=compatible-local): Fix description.
5607         Add an example where -Wshadow=compatible-local does not
5608         warn.
5610 2019-10-03  John David Anglin  <danglin@gcc.gnu.org>
5612         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
5614         * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
5615         (pa_attr_length_call): Adjust length for 64-bit plabel sequence.
5617 2019-10-03  Aaron Sawdey <acsawdey@linux.ibm.com>
5619         * expr.c (emit_block_move_hints): Slightly cleaner fix to
5620         can_move_by_pieces issue.
5622 2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>
5624         PR target/87243
5625         * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
5626         (darwin_driver_init): Use the sysroot provided by SDKROOT when that
5627         is available and the user has not set one on the command line.
5629 2019-10-03  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
5631         PR target/91769
5632         * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
5633         instead of REGNO equality check on addr.reg.
5635 2019-10-03  Jan Hubicka  <hubicka@ucw.cz>
5637         * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
5638         PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
5639         * doc/invoke.texi (inline-heuristics-hint-percent,
5640         inline-heuristics-hint-percent-O2): Document.
5641         * tree-inline.c (inline_insns_single, inline_insns_auto): Add new
5642         hint attribute.
5643         (can_inline_edge_by_limits_p): Use it.
5645 2019-10-03  Richard Sandiford  <richard.sandiford@arm.com>
5647         * config/arm/arm.c (arm_print_value): Use real_to_decimal
5648         to print CONST_DOUBLEs.
5650 2019-10-03  Andrea Corallo  <andrea.corallo@arm.com>
5652         * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
5653         * ipa-prop.c (ipcp_free_transformation_sum): New function.
5654         * ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
5656 2019-10-03  Aldy Hernandez  <aldyh@redhat.com>
5658         * Makefile.in (OBJS): Add range.o and range-op.o.
5659         Remove wide-int-range.o.
5660         * function-tests.c (test_ranges): New.
5661         (function_tests_c_tests): Call test_ranges.
5662         * ipa-cp.c (ipa_vr_operation_and_type_effects): Call
5663         range_fold_unary_expr instead of extract_range_from_unary_expr.
5664         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
5665         * range-op.cc: New file.
5666         * range-op.h: New file.
5667         * range.cc: New file.
5668         * range.h: New file.
5669         * selftest.h (range_tests): New prototype.
5670         * ssa.h: Include range.h.
5671         * tree-vrp.c (value_range_base::value_range_base): New
5672         constructors.
5673         (value_range_base::singleton_p): Do not call
5674         ranges_from_anti_range until sure we will need to.
5675         (value_range_base::type): Rename gcc_assert to
5676         gcc_checking_assert.
5677         (vrp_val_is_max): New argument.
5678         (vrp_val_is_min): Same.
5679         (wide_int_range_set_zero_nonzero_bits): Move from
5680         wide-int-range.cc.
5681         (extract_range_into_wide_ints): Remove.
5682         (extract_range_from_multiplicative_op): Remove.
5683         (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
5684         from extract_range_from_binary_expr.
5685         (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
5686         from extract_range_from_binary_expr.
5687         (extract_range_from_binary_expr): Remove.
5688         (normalize_for_range_ops): New.
5689         (range_fold_binary_expr): New.
5690         (range_fold_unary_expr): New.
5691         (value_range_base::num_pairs): New.
5692         (value_range_base::lower_bound): New.
5693         (value_range_base::upper_bound): New.
5694         (value_range_base::upper_bound): New.
5695         (value_range_base::contains_p): New.
5696         (value_range_base::invert): New.
5697         (value_range_base::union_): New.
5698         (value_range_base::intersect): New.
5699         (range_compatible_p): New.
5700         (value_range_base::operator==): New.
5701         (determine_value_range_1): Call range_fold_*expr instead of
5702         extract_range_from_*expr.
5703         * tree-vrp.h (class value_range_base): Add new constructors.
5704         Add methods for union_, intersect, operator==, contains_p,
5705         num_pairs, lower_bound, upper_bound, invert.
5706         (vrp_val_is_min): Add handle_pointers argument.
5707         (vrp_val_is_max): Same.
5708         (extract_range_from_unary_expr): Remove.
5709         (extract_range_from_binary_expr): Remove.
5710         (range_fold_unary_expr): New.
5711         (range_fold_binary_expr): New.
5712         * vr-values.c (vr_values::extract_range_from_binary_expr): Call
5713         range_fold_binary_expr instead of extract_range_from_binary_expr.
5714         (vr_values::extract_range_basic): Same.
5715         (vr_values::extract_range_from_unary_expr): Call
5716         range_fold_unary_expr instead of extract_range_from_unary_expr.
5717         * wide-int-range.cc: Remove.
5718         * wide-int-range.h: Remove.
5720 2019-10-02   Michael Meissner  <meissner@linux.ibm.com>
5722         * config/rs6000/rs6000.c (mem_operand_gpr): Use
5723         SIGNED_16BIT_OFFSET_EXTRA_P macro.
5724         (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro.
5725         (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P
5726         macro.
5728 2019-10-02  Joseph Myers  <joseph@codesourcery.com>
5730         * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
5731         condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
5732         (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
5733         * glimits.h: Likewise.
5735 2019-10-03  Jakub Jelinek  <jakub@redhat.com>
5737         PR rtl-optimization/91976
5738         * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
5739         size is not CONST_INT_P, set pieces_ok to false in that case.  Simplify
5740         CONST_INT_P (size) && pieces_ok to pieces_ok.  Formatting fix.
5742 2019-10-02  Martin Sebor  <msebor@redhat.com>
5744         PR tree-optimization/80936
5745         * builtins.def (bcmp, bcopy, bzero): Declare nonnull.
5747 2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
5749         * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
5750         instead of reg_class_contents[ALL_REGS].
5752 2019-09-30  Jason Merrill  <jason@redhat.com>
5754         Add some hash_map_safe_* functions like vec_safe_*.
5755         * hash-map.h (default_hash_map_size): New variable.
5756         (create_ggc): Use it as default argument.
5757         (hash_map_maybe_create, hash_map_safe_get)
5758         (hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
5760 2019-10-02  Jan Hubicka  <hubicka@ucw.cz>
5762         * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
5763         MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
5764         * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
5765         (can_inline_edge_by_limits_p): Use it.
5766         (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
5767         (want_inline_small_function_p): Use O2 bounds.
5768         (edge_badness): LIkewise.
5769         * opts.c (default_options): Add OPT_finline_functions.
5770         * params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
5771         PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
5772         New parameters.
5773         * doc/invoke.texi (-finline-functions): Update documentation.
5774         (max-inline-insns-single-O2, max-inline-insns-auto-O2,
5775         inline-min-speedup-O2): Document.
5776         (early-inlining-insns-O2): Simplify docs.
5778 2019-10-02  Alexander Monakov  <amonakov@ispras.ru>
5780         PR rtl-optimization/87047
5781         * ifcvt.c (average_cost): New static function.  Use it...
5782         (noce_process_if_block): ... here.
5784 2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>
5786         * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
5787         * config/rs6000/rs6000-string.c (expand_block_move): Add
5788         might_overlap parm.
5789         * config/rs6000/rs6000.md (movmemsi): Add new pattern.
5790         (cpymemsi): Add might_overlap parm to expand_block_move() call.
5792 2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>
5794         * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
5795         (expand_builtin_memcpy): Use might_overlap parm.
5796         (expand_builtin_mempcpy_args): Use might_overlap parm.
5797         (expand_builtin_memmove): Call expand_builtin_memory_copy_args.
5798         (expand_builtin_memory_copy_args): Add might_overlap parm.
5799         * expr.c (emit_block_move_via_cpymem): Rename to
5800         emit_block_move_via_pattern, add might_overlap parm, use cpymem
5801         or movmem optab as appropriate.
5802         (emit_block_move_hints): Add might_overlap parm, do the right
5803         thing for might_overlap==true.
5804         * expr.h (emit_block_move_hints): Update prototype.
5806 2019-10-02  Eric Botcazou  <ebotcazou@adacore.com>
5808         * tree-eh.h (unsplit_eh_edges): Declare.
5809         * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
5810         (unsplit_eh_edges): New function wrapping unsplit_all_eh.
5811         * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
5812         (struct store_immediate_info): Add lp_nr field.
5813         (store_immediate_info::store_immediate_info): Add NR2 parameter and
5814         initialize lp_nr with it.
5815         (struct merged_store_group): Add lp_nr and only_constants fields.
5816         (merged_store_group::merged_store_group): Initialize them.
5817         (merged_store_group::can_be_merged_into): Deal with them.
5818         (pass_store_merging): Rename terminate_and_release_chain into
5819         terminate_and_process_chain.
5820         (pass_store_merging::terminate_and_process_all_chains): Adjust to above
5821         renaming and remove useless assertions.
5822         (pass_store_merging::terminate_all_aliasing_chains): Small tweak.
5823         (stmts_may_clobber_ref_p): Be prepared for different basic blocks.
5824         (imm_store_chain_info::coalesce_immediate_stores): Use only_constants
5825         instead of always recomputing it and compare lp_nr.
5826         (imm_store_chain_info::output_merged_store): If the group is in an
5827         active EH region, register new stores if they can throw.  Moreover,
5828         if the insertion has created new basic blocks, adjust the PHI nodes
5829         of the post landing pad.
5830         (imm_store_chain_info::output_merged_stores): If the original stores
5831         are in an active EH region, deregister them.
5832         (lhs_valid_for_store_merging_p): Prettify.
5833         (adjust_bit_pos): New function extracted from...
5834         (mem_valid_for_store_merging): ...here.  Use it for the base address
5835         and also for the offset if it is the addition of a constant.
5836         (lp_nr_for_store): New function.
5837         (pass_store_merging::process_store): Change return type to bool.
5838         Call lp_nr_for_store to initialize the store info.  Propagate the
5839         return status of various called functions to the return value.
5840         (store_valid_for_store_merging_p): New predicate.
5841         (enum basic_block_status): New enumeration.
5842         (get_status_for_store_merging): New function.
5843         (pass_store_merging::execute): If the function can throw and catch
5844         non-call exceptions, unsplit the EH edges on entry and clean up the
5845         CFG on exit if something changed.  Call get_status_for_store_merging
5846         for every basic block and keep the chains open across basic blocks
5847         when possible.  Terminate and process open chains at the end, if any.
5849 2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
5851         * reginfo.c (globalize_reg): Fix shadowed variable in
5852         function_abis walk.
5854 2019-10-02  Martin Jambor  <mjambor@suse.cz>
5856         * cgraph.c (symbol_table::create_edge): New parameter cloning_p,
5857         do not compute some stuff when set.
5858         (cgraph_node::create_edge): Likewise.
5859         (cgraph_node::create_indirect_edge): Renamed last parameter to
5860         coning_p and flipped its meaning, don't even calculate
5861         inline_failed when set.
5862         * cgraph.h (cgraph_node::create_edge): Add new parameter.
5863         (symbol_table::::create_edge): Likewise.
5864         (cgraph_node::create_indirect_edge): Rename last parameter, flip
5865         the default value.
5866         * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
5867         call graph edge creating functions.
5869 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
5871         PR c++/91222
5872         * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
5873         namespace types.
5875 2019-10-02  Shahab Vahedi  <shahab@synopsys.com>
5877         * config/arc/arc.h (ASM_SPEC): Pass -mcode-density.
5879 2019-10-02  Richard Biener  <rguenther@suse.de>
5881         * tree-vectorizer.h (vect_transform_reduction): Declare.
5882         * tree-vect-stmts.c (vect_transform_stmt): Use it.
5883         * tree-vect-loop.c (vectorizable_reduction): Split out reduction
5884         stmt transform to ...
5885         (vect_transform_reduction): ... this.
5887 2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
5889         * omp-low.c (lower_omp_target): Dereference optional argument
5890         to work with the right pointer.
5892 2019-10-02  Kwok Cheung Yeung  <kcy@codesourcery.com>
5894         * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
5895         false.
5896         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
5897         * langhooks.h (omp_is_optional_argument): New hook.
5898         * omp-general.c (omp_is_optional_argument): New.
5899         * omp-general.h (omp_is_optional_argument): New declaration.
5900         * omp-low.c (lower_omp_target): Create temporary for received value
5901         and take the address for new_var if the original variable was a
5902         DECL_BY_REFERENCE.  Use size of referenced object when a
5903         pass-by-reference optional argument used as argument to firstprivate.
5905 2019-10-02  Jakub Jelinek  <jakub@redhat.com>
5907         PR tree-optimization/91940
5908         * tree-vect-patterns.c: Include tree-vector-builder.h and
5909         vec-perm-indices.h.
5910         (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
5911         unpromoting the argument back to uint16_t, or by converting into a
5912         rotate, or into shifts plus ior.
5914 2019-10-02  Richard Biener  <rguenther@suse.de>
5916         * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
5917         New.
5918         (vect_transform_cycle_phi): Declare.
5919         * tree-vect-stmts.c (vect_transform_stmt): Call
5920         vect_transform_cycle_phi.
5921         * tree-vect-loop.c (vectorizable_reduction): Split out
5922         PHI transformation stage to ...
5923         (vect_transform_cycle_phi): ... here.
5925 2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
5927         PR middle-end/91957
5928         * lra-lives.c (make_hard_regno_dead): Don't record conflicts for
5929         eliminable registers.
5930         (make_hard_regno_live): Likewise, and don't make them live.
5932 2019-10-01  David Malcolm  <dmalcolm@redhat.com>
5934         * diagnostic-show-locus.c (layout::print_gap_in_line_numbering):
5935         Call pp_emit_prefix.
5936         (layout::print_source_line): Likewise.
5937         (layout::start_annotation_line): Likewise.
5938         (diagnostic_show_locus): Remove call to temporarily clear the
5939         prefix.
5940         (selftest::test_one_liner_fixit_remove): Add test coverage for the
5941         interaction of pp_set_prefix with rulers and fix-it hints.
5942         * diagnostic.c (default_diagnostic_finalizer): Temporarily clear
5943         prefix when calling diagnostic_show_locus, rather than destroying
5944         it afterwards.
5945         (print_parseable_fixits): Temporarily clear prefix.
5946         * pretty-print.c (pp_format): Save and restore line_length, rather
5947         than assuming it is zero.
5948         (pp_output_formatted_text): Remove assertion that line_length is
5949         zero.
5951 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
5953         * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
5954         Rename to ...
5955         (nonoverlapping_refs_since_match_p): ... this; handle also
5956         ARRAY_REFs.
5957         (alias_stats): Update stats.
5958         (dump_alias_stats): Likewise.
5959         (cheap_array_ref_low_bound): New function.
5960         (aliasing_matching_component_refs_p): Add partial_overlap
5961         argument;
5962         pass it to nonoverlapping_refs_since_match_p.
5963         (aliasing_component_refs_walk): Update call of
5964         aliasing_matching_component_refs_p
5965         (nonoverlapping_array_refs_p): New function.
5966         (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
5967         indirect_refs_may_alias_p): Update calls of
5968         nonoverlapping_refs_since_match_p.
5970 2019-10-01  Maya Rashish  <coypu@sdf.org>
5972         PR target/85401
5973         * ira-color.c (allocno_copy_cost_saving): Call
5974         ira_init_register_move_cost_if_necessary.
5976 2019-10-01  Maciej W. Rozycki  <macro@wdc.com>
5978         * Makefile.in (gnat_install_lib): New variable.
5979         * configure.ac: Substitute it.
5980         * configure: Regenerate.
5982 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
5984         PR lto/91222
5985         * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type
5986         is matched with non-C++ type
5988 2019-10-01  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5990         * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
5991         after local CSE.
5993 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
5995         * doc/invoke.texi (early-inlining-insns-O2): Document.
5996         (early-inlining-insns): Update.
5997         * params.def (early-inlining-insns-O2): New bound.
5998         (early-inlining-insns): Update docs.
5999         * ipa-inline.c (want_early_inline_function_p): Use new bound.
6001 2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
6003         PR target/88562
6004         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
6005         sh_check_add_incdec_notes to preserve REG_INC notes when replacing
6006         a memory access insn.
6008 2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>
6010         * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
6011         vpmsumd.
6013 2019-10-01  Ilya Leoshkevich  <iii@linux.ibm.com>
6015         PR target/77918
6016         * config/s390/s390.c (s390_expand_vec_compare): Use
6017         gen_vec_cmpordered and gen_vec_cmpunordered.
6018         * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
6019         vec_unordered): Delete.
6020         (vec_ordered<mode>): Rename to vec_cmpordered<mode>.
6021         (vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
6022         (VEC_CMP_EXPAND): New iterator for the generic dispatcher.
6023         (vec_cmp<code>): Generic dispatcher.
6025 2019-10-01  Ilya Leoshkevich  <iii@linux.ibm.com>
6027         PR target/77918
6028         * config/s390/vector.md (V_HW): Add V1TI in order to make
6029         vcond$a$b generate vcondv1tiv1tf.
6031 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
6033         PR rtl-optimization/91948
6034         * ira-build.c (ira_create_allocno): Initialize
6035         ALLOCNO_CROSSED_CALLS_ABIS.
6036         * ira-color.c (allocno_reload_assign): Pass hard_regno rather
6037         than regno to ira_need_caller_save_p.
6039 2019-10-01  Alexandre Oliva <oliva@adacore.com>
6041         * config/i386/i386-options.c
6042         (ix86_recompute_optlev_based_flags): New, moved out of...
6043         (ix86_option_override_internal): ... this.  Call it.
6044         (ix86_override_options_after_change): Call it here too.
6046         PR debug/91507
6047         * dwarf2out.c (override_type_for_decl_p): New.
6048         (gen_variable_die): Use it.
6050 2019-10-01  Richard Biener  <rguenther@suse.de>
6052         * tree-vect-loop.c (vectorizable_reduction): Move variables
6053         to where they are used.
6055 2019-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6057         * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
6058         (build_def_use): Use PC instead of CC0 in a comment.
6060 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
6062         * rtl.def (CLOBBER_HIGH): Delete.
6063         * doc/rtl.texi (clobber_high): Remove documentation.
6064         * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes.
6065         (reg_is_clobbered_by_clobber_high): Delete.
6066         (gen_hard_reg_clobber_high): Likewise.
6067         * alias.c (record_set): Remove CLOBBER_HIGH handling.
6068         * cfgexpand.c (expand_gimple_stmt): Likewise.
6069         * combine-stack-adj.c (single_set_for_csa): Likewise.
6070         * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies)
6071         (can_combine_p, is_parallel_of_n_reg_sets, try_combine)
6072         (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise.
6073         * cse.c (invalidate_reg): Remove clobber_high parameter.
6074         (invalidate): Update call accordingly.
6075         (canonicalize_insn): Remove CLOBBER_HIGH handling.
6076         (invalidate_from_clobbers, invalidate_from_sets_and_clobbers)
6077         (count_reg_usage, insn_live_p): Likewise.
6078         * cselib.h (cselib_invalidate_rtx): Remove sett argument.
6079         * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise.
6080         (cselib_invalidate_rtx_note_stores): Update call accordingly.
6081         (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling.
6082         (cselib_invalidate_regno, cselib_process_insn): Likewise.
6083         * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise.
6084         (mark_nonreg_stores_2): Likewise.
6085         * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise.
6086         (df_get_call_refs): Likewise.
6087         * dwarf2out.c (mem_loc_descriptor): Likewise.
6088         * emit-rtl.c (verify_rtx_sharing): Likewise.
6089         (copy_insn_1, copy_rtx_if_shared_1): Likewise.
6090         (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete.
6091         * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling.
6092         * genemit.c (gen_exp, gen_insn): Likewise.
6093         * genrecog.c (validate_pattern, remove_clobbers): Likewise.
6094         * haifa-sched.c (haifa_classify_rtx): Likewise.
6095         * ira-build.c (create_insn_allocnos): Likewise.
6096         * ira-costs.c (scan_one_insn): Likewise.
6097         * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise.
6098         (rtx_moveable_p, interesting_dest_for_shprep): Likewise.
6099         * jump.c (mark_jump_label_1): Likewise.
6100         * lra-int.h (lra_insn_reg::clobber_high): Delete.
6101         * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH
6102         handling.
6103         (mark_not_eliminable): Likewise.
6104         * lra-lives.c (process_bb_lives): Likewise.
6105         * lra.c (new_insn_reg): Remove clobber_high parameter.
6106         (collect_non_operand_hard_regs): Likewise.  Update call to new
6107         insn_reg.  Remove CLOBBER_HIGH handling.
6108         (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling.  Update call
6109         to collect_non_operand_hard_regs.
6110         (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling.
6111         Update call to new_insn_reg.
6112         (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling.
6113         * postreload.c (reload_cse_simplify, reload_combine_note_use)
6114         (move2add_note_store): Likewise.
6115         * print-rtl.c (print_pattern): Likewise.
6116         * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise.
6117         (if_test_bypass_p): Likewise.
6118         * regcprop.c (kill_clobbered_value, kill_set_value): Likewise.
6119         * reginfo.c (reg_scan_mark_refs): Likewise.
6120         * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise.
6121         (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs)
6122         (forget_old_reloads_1): Likewise.
6123         * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn)
6124         (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread)
6125         (dbr_schedule): Likewise.
6126         * resource.c (update_live_status, mark_referenced_resources)
6127         (mark_set_resources): Likewise.
6128         * rtl.c (copy_rtx): Likewise.
6129         * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p)
6130         (note_pattern_stores): Likewise.
6131         (reg_is_clobbered_by_clobber_high): Delete.
6132         * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove
6133         CLOBBER_HIGH handling.
6135 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
6137         PR target/91452
6138         * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
6139         * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
6140         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6141         Handle ARM_PCS_TLSDESC.
6142         (aarch64_tlsdesc_abi_id): New function.
6143         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
6144         rtx instead of a list of clobbers and clobber_highs.
6145         (tlsdesc_small_<mode>): Update accordingly.
6147 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
6149         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an
6150         extra callee_abi argument.
6151         * config/aarch64/aarch64.c (aarch64_expand_call): Likewise.
6152         Insert a CALLEE_ABI unspec into the call pattern as the second
6153         element in the PARALLEL.
6154         (aarch64_simd_call_p): Delete.
6155         (aarch64_insn_callee_abi): Get the arm_pcs of the callee from
6156         the new CALLEE_ABI element of the PARALLEL.
6157         (aarch64_init_cumulative_args): Get the arm_pcs of the callee
6158         from the function type, if given.
6159         (aarch64_function_arg_advance): Handle ARM_PCS_SIMD.
6160         (aarch64_function_arg): Likewise.  Return the arm_pcs of the callee
6161         when passed the function_arg_info end marker.
6162         (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the
6163         final argument of gen_sibcall.
6164         * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec.
6165         (call): Make operand 2 a const_int_operand and pass it to expand_call.
6166         Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand
6167         pattern.
6168         (call_value): Likewise operand 3.
6169         (sibcall): Likewise operand 2.  Place the unspec before rather than
6170         after the return.
6171         (sibcall_value): Likewise operand 3.
6172         (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI.
6173         (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise.
6174         (*sibcall_insn, *sibcall_value_insn): Likewise.  Remove empty
6175         constraint strings.
6176         (untyped_call): Pass const0_rtx as the callee ABI to gen_call.
6178 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
6180         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to
6181         choose_hard_reg_mode.
6182         * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6184 2019-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6186         * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo.
6187         (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto.
6188         (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto.
6190 2019-09-30  David Malcolm  <dmalcolm@redhat.com>
6192         * diagnostic-show-locus.c (line_label::line_label): Initialize
6193         m_has_vbar.
6194         (line_label::comparator): Reverse the sort order by m_state_idx,
6195         so that when the list is walked backwards the labels appear in
6196         order of insertion into the rich_location.
6197         (line_label::m_has_vbar): New field.
6198         (layout::print_any_labels): When dealing with multiple labels at
6199         the same line and column, only print vertical bars for the one
6200         with the highest label_line.
6201         (selftest::test_one_liner_labels): Update test for multiple labels
6202         to expect the labels to be in the order of insertion into the
6203         rich_location.  Add a test for many such labels, where the column
6204         numbers are out-of-order relative to the insertion order.
6206 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6208         * config/i386/i386.h (ix86_frame::expensive_p): New field.
6209         (ix86_frame::expensive_count): Likewise.
6210         * config/i386/i386.c (ix86_compute_frame_layout): Make the choice
6211         of use_fast_prologue_epilogue robust against incidental changes
6212         in function size.
6214 2019-09-30  Ilya Leoshkevich  <iii@linux.ibm.com>
6216         PR target/77918
6217         * config/s390/vector.md (vec_unordered<mode>): Call
6218         gen_vec_ordered<mode>.
6220 2019-09-30  Yuliang Wang  <yuliang.wang@arm.com>
6222         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3):
6223         New pattern for ASRD.
6224         * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec.
6225         * internal-fn.def (IFN_DIV_POW2): New internal function.
6226         * optabs.def (sdiv_pow2_optab): New optab.
6227         * tree-vect-patterns.c (vect_recog_divmod_pattern):
6228         Modify pattern to support new operation.
6229         * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above.
6230         * doc/sourcebuild.texi (vect_sdiv_pow2_si):
6231         Document new target selector.
6233 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6235         * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi
6236         to test whether we're compiling a vector PCS function and to test
6237         whether the function needs to save a particular register.
6238         Remove the vector PCS handling of df_set_regs_ever_live.
6239         (aarch64_components_for_bb): Use crtl->abi to test whether
6240         the function needs to save a particular register.
6241         (aarch64_process_components): Use crtl->abi to test whether
6242         we're compiling a vector PCS function.
6243         (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
6244         (aarch64_epilogue_uses): Remove handling of vector PCS functions.
6246 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6248         * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
6249         Delete.
6250         * config/aarch64/aarch64.c (aarch64_components_for_bb): Check
6251         whether the block calls a function that clobbers more registers
6252         than the current function is allowed to.
6253         (aarch64_use_simple_return_insn_p): Delete.
6254         * config/aarch64/aarch64.md (simple_return): Remove condition.
6256 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6258         * function-abi.h (function_abi_aggregator): New class.
6259         * function-abi.cc (function_abi_aggregator::caller_save_regs): New
6260         function.
6261         * ira.c (update_equiv_regs_prescan): New function.  Call
6262         set_paradoxical_subreg here rather than...
6263         (update_equiv_regs): ...here.
6264         (ira): Call update_equiv_regs_prescan.
6266 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6268         * hard-reg-set.h (regs_invalidated_by_call): Only define if
6269         IN_TARGET_CODE.
6270         (call_used_or_fixed_regs): Likewise.
6271         (call_used_or_fixed_reg_p): Likewise.
6272         * reginfo.c (regs_invalidated_by_call): New macro.
6274 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6276         * shrink-wrap.c: Include function-abi.h.
6277         (requires_stack_frame_p): Use crtl->abi to test whether the
6278         current function can use a register without saving it first.
6280 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6282         * sel-sched-ir.h (_def::crosses_call): Replace with...
6283         (_def::crossed_call_abis): ..this new field.
6284         (def_list_add): Take a mask of ABIs instead of a crosses_call
6285         boolean.
6286         * sel-sched-ir.c (def_list_add): Likewise.  Update initialization
6287         of _def accordingly.
6288         * sel-sched.c: Include function-abi.h.
6289         (hard_regs_data::regs_for_call_clobbered): Delete.
6290         (reg_rename::crosses_call): Replace with...
6291         (reg_rename::crossed_call_abis): ...this new field.
6292         (fur_static_params::crosses_call): Replace with...
6293         (fur_static_params::crossed_call_abis): ...this new field.
6294         (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered.
6295         (init_hard_regs_data): Use crtl->abi to test which registers the
6296         current function would need to save before it uses them.
6297         (mark_unavailable_hard_regs): Update handling of call-clobbered
6298         registers, using call_clobbers_in_region to find out which registers
6299         might be call-clobbered (but without taking -fipa-ra into account
6300         for now).  Remove separate handling of partially call-clobbered
6301         registers.
6302         (verify_target_availability): Use crossed_call_abis instead of
6303         crosses_call.
6304         (get_spec_check_type_for_insn, find_used_regs): Likewise.
6305         (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise.
6307 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6309         * sched-deps.c (deps_analyze_insn): Use the ABI of the target
6310         function to test whether a register is fully or partly clobbered.
6312 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6314         * rtlanal.c: Include function-abi.h.
6315         (reg_set_p): Use insn_callee_abi to get the ABI of the called
6316         function and clobbers_reg_p to test whether the register
6317         is call-clobbered.
6318         (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi
6319         to get the ABI of the called function and full_reg_clobbers to
6320         get the set of fully call-clobbered registers.  Warn about the
6321         pitfalls of using this mode.
6323 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6325         * reload.c: Include function-abi.h.
6326         (find_equiv_reg): Use clobbers_reg_p to test whether either
6327         of the equivalent registers is clobbered by a call.
6328         * reload1.c: Include function-abi.h.
6329         (reg_reloaded_call_part_clobbered): Delete.
6330         (reload): Use crtl->abi to test which registers would need
6331         saving in the prologue before use.
6332         (find_reg): Likewise.
6333         (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered.
6334         (reload_as_needed): Likewise.  Use full_and_partial_reg_clobbers
6335         instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered.
6337 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6339         * regrename.h (du_head::call_clobber_mask): New field.
6340         (du_head::need_caller_save_reg): Replace with...
6341         (du_head::call_abis): ...this new field.
6342         * regrename.c: Include function-abi.h.
6343         (call_clobbered_in_chain_p): New function.
6344         (check_new_reg_p): Use crtl->abi when deciding whether a register
6345         is free for use after RA.  Use call_clobbered_in_chain_p to test
6346         whether a candidate register would be clobbered by a call.
6347         (find_rename_reg): Don't add call-clobber conflicts here.
6348         (rename_chains): Check call_abis instead of need_caller_save_reg.
6349         (merge_chains): Update for changes to du_head.
6350         (build_def_use): Use insn_callee_abi to get the ABI of the call insn
6351         target.  Record the ABI identifier in call_abis and the set of
6352         fully or partially clobbered registers in call_clobber_mask.
6353         Add fully-clobbered registers to hard_conflicts here rather
6354         than in find_rename_reg.
6355         * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
6356         (rename_single_chain): Check call_abis instead of need_caller_save_reg.
6357         * config/aarch64/falkor-tag-collision-avoidance.c: Include
6358         function-abi.h.
6359         * config/c6x/c6x.c: Likewise.
6361 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6363         * regcprop.c (copyprop_hardreg_forward_1): Use the recorded
6364         mode of the register when deciding whether it is no longer
6365         available after a call.
6367 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6369         * recog.c: Include function-abi.h.
6370         (peep2_find_free_register): Use crtl->abi when deciding whether
6371         a register is free for use after RA.
6373 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6375         * postreload-gcse.c: Include regs.h and function-abi.h.
6376         (record_opr_changes): Use insn_callee_abi to get the ABI of the
6377         call insn target.  Conservatively assume that partially-clobbered
6378         registers are altered.
6380 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6382         * postreload.c (reload_combine_recognize_pattern): Use crtl->abi
6383         when deciding whether a register is free for use after RA.
6384         (reload_combine): Remove unnecessary use of fixed_reg_set.
6385         (reload_cse_move2add): Use insn_callee_abi to get the ABI of the
6386         call insn target.  Use reg_mode when testing whether a register
6387         is no longer available.
6389 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6391         * target.def (return_call_with_max_clobbers): Delete.
6392         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
6393         * doc/tm.texi: Regenerate.
6394         * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers)
6395         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
6396         * lra-int.h (lra_reg::actual_call_used_reg_set): Delete.
6397         (lra_reg::call_insn): Delete.
6398         * lra.c: Include function-abi.h.
6399         (initialize_lra_reg_info_element): Don't initialize the fields above.
6400         (lra): Use crtl->abi to test whether the current function needs to
6401         save a register in the prologue.  Remove special pre-inheritance
6402         lra_create_live_ranges pass for flag_ipa_ra.
6403         * lra-assigns.c: Include function-abi.h
6404         (find_hard_regno_for_1): Use crtl->abi to test whether the current
6405         function needs to save a register in the prologue.
6406         (lra_assign): Assert that registers aren't allocated to a
6407         conflicting register, rather than checking only for overlaps
6408         with call_used_or_fixed_regs.  Do this even for flag_ipa_ra,
6409         and for registers that are not live across a call.
6410         * lra-constraints.c (last_call_for_abi): New variable.
6411         (full_and_partial_call_clobbers): Likewise.
6412         (setup_next_usage_insn): Remove the register from
6413         full_and_partial_call_clobbers.
6414         (need_for_call_save_p): Use call_clobbered_in_region_p to test
6415         whether the register needs a caller save.
6416         (need_for_split_p): Use full_and_partial_reg_clobbers instead
6417         of call_used_or_fixed_regs.
6418         (inherit_in_ebb): Initialize and maintain last_call_for_abi and
6419         full_and_partial_call_clobbers.
6420         * lra-lives.c (check_pseudos_live_through_calls): Replace
6421         last_call_used_reg_set and call_insn arguments with an abi argument.
6422         Remove handling of lra_reg::call_insn.  Use function_abi::mode_clobbers
6423         as the set of conflicting registers.
6424         (calls_have_same_clobbers_p): Delete.
6425         (process_bb_lives): Track the ABI of the last call instead of an
6426         insn/HARD_REG_SET pair.  Update calls to
6427         check_pseudos_live_through_calls.  Use eh_edge_abi to calculate
6428         the set of registers that could be clobbered by an EH edge.
6429         Include partially-clobbered as well as fully-clobbered registers.
6430         (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn.
6431         * lra-remat.c: Include function-abi.h.
6432         (call_used_regs_arr_len, call_used_regs_arr): Delete.
6433         (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered
6434         registers and bitmap_view to combine them into dead_regs.
6435         (call_used_input_regno_present_p): Take a function_abi argument
6436         and use it to test whether a register is call-clobbered.
6437         (calculate_gen_cands): Use insn_callee_abi to get the ABI of the
6438         call insn target.  Update tje call to call_used_input_regno_present_p.
6439         (do_remat): Likewise.
6440         (lra_remat): Remove the initialization of call_used_regs_arr_len
6441         and call_used_regs_arr.
6443 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6445         * loop-iv.c: Include regs.h and function-abi.h.
6446         (simplify_using_initial_values): Use insn_callee_abi to get the
6447         ABI of the call insn target.  Conservatively assume that
6448         partially-clobbered registers are altered.
6450 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6452         * function-abi.h (call_clobbers_in_region): Declare.
6453         (call_clobbered_in_region_p): New function.
6454         * function-abi.cc (call_clobbers_in_region): Likewise.
6455         * ira-int.h: Include function-abi.h.
6456         (ira_allocno::crossed_calls_abis): New field.
6457         (ALLOCNO_CROSSED_CALLS_ABIS): New macro.
6458         (ira_need_caller_save_regs): New function.
6459         (ira_need_caller_save_p): Likewise.
6460         * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead
6461         of call_used_or_fixed_regs.
6462         (do_reload): Use crtl->abi to test whether the current function
6463         needs to save a register in the prologue.  Count registers that
6464         need to be saved rather than registers that don't.
6465         * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS.
6466         Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6467         (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too.
6468         (propagate_some_info_from_allocno): Likewise.
6469         (copy_info_to_removed_store_destinations): Likewise.
6470         (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and
6471         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively.
6472         (ira_build): Use ira_need_caller_save_regs instead of
6473         call_used_or_fixed_regs.
6474         * ira-color.c (calculate_saved_nregs): Use crtl->abi to test
6475         whether the current function would need to save a register
6476         before using it.
6477         (calculate_spill_cost): Likewise.
6478         (allocno_reload_assign): Use ira_need_caller_save_regs and
6479         ira_need_caller_save_p instead of call_used_or_fixed_regs.
6480         * ira-conflicts.c (ira_build_conflicts): Use
6481         ira_need_caller_save_regs rather than call_used_or_fixed_regs
6482         as the set of call-clobbered registers.  Remove the
6483         call_used_or_fixed_regs mask from the calculation of
6484         temp_hard_reg_set and mask its use instead.  Remove special
6485         handling of partially-clobbered registers.
6486         * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p.
6487         * ira-lives.c (process_bb_node_lives): Use mode_clobbers to
6488         calculate the set of conflicting registers for calls that
6489         can throw.  Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS.
6490         Use full_and_partial_reg_clobbers rather than full_reg_clobbers
6491         for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6492         Use eh_edge_abi to calculate the set of registers that could
6493         be clobbered by an EH edge.  Include partially-clobbered as
6494         well as fully-clobbered registers.
6496 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6498         * haifa-sched.c: Include function-abi.h.
6499         (alloc_global_sched_pressure_data): Use crtl->abi to check whether
6500         the function would need to save a register before using it.
6502 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6504         * gcse.c: Include function-abi.h.
6505         (compute_hash_table_work): Use insn_callee_abi to get the ABI of
6506         the call insn target.  Invalidate partially call-clobbered
6507         registers as well as fully call-clobbered ones.
6509 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6511         * function.c (aggregate_value_p): Work out which ABI the
6512         function is using before testing which registers are at least
6513         partly preserved by a call.
6515 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6517         * early-remat.c: Include regs.h and function-abi.h.
6518         (early_remat::maybe_add_candidate): Don't check for call-clobbered
6519         registers here.
6520         (early_remat::restrict_remat_for_unavail_regs): New function.
6521         (early_remat::restrict_remat_for_call): Likewise.
6522         (early_remat::process_block): Before calling emit_remat_insns
6523         for a previous call in the block, invalidate any candidates
6524         that would clobber call-preserved registers.
6525         (early_remat::emit_remat_insns_for_block): Likewise for the
6526         final call in a block.  Do the same thing for live-in registers
6527         when calling emit_remat_insns at the head of a block.
6529 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6531         * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test
6532         whether the current function needs to save at least part of a
6533         register before using it.
6534         (df_get_exit_block_use_set): Likewise for epilogue restores.
6536 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6538         * df-problems.c: Include regs.h and function-abi.h.
6539         (df_rd_problem_data): Rename sparse_invalidated_by_call to
6540         sparse_invalidated_by_eh and dense_invalidated_by_call to
6541         dense_invalidated_by_eh.
6542         (df_print_bb_index): Update accordingly.
6543         (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise.
6544         (df_lr_confluence_n): Use eh_edge_abi to get the set of registers
6545         that are clobbered by an EH edge.  Clobber partially-clobbered
6546         registers as well as fully-clobbered ones.
6547         (df_md_confluence_n): Likewise.
6548         (df_rd_local_compute): Likewise.  Update for changes to
6549         df_rd_problem_data.
6550         * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set
6551         of registers that are clobbered by an EH edge.  Includde partially-
6552         clobbered registers as well as fully-clobbered ones.
6554 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6556         * cselib.c (cselib_process_insn): If we know what mode a
6557         register was set in, check whether it is clobbered in that
6558         mode by a call.  Only fall back to reg_raw_mode if that fails.
6560 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6562         * cse.c: Include regs.h and function-abi.h.
6563         (invalidate_for_call): Take the call insn as an argument.
6564         Use insn_callee_abi to get the ABI of the call and invalidate
6565         partially clobbered registers as well as fully clobbered ones.
6566         (cse_insn): Update call accordingly.
6568 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6570         * combine.c: Include function-abi.h.
6571         (record_dead_and_set_regs): Use insn_callee_abi to get the ABI
6572         of the target of call insns.  Invalidate partially-clobbered
6573         registers as well as fully-clobbered ones.
6575 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6577         * cfgloopanal.c: Include regs.h and function-abi.h.
6578         (init_set_costs): Use default_function_abi to test whether
6579         a general register is call-clobbered.
6581 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6583         * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
6584         instead of the call-clobbered sets.
6586 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6588         * caller-save.c (setup_save_areas): Remove redundant |s of
6589         fixed_reg_set.
6590         (save_call_clobbered_regs): Likewise.  Use the call ABI rather
6591         than call_used_or_fixed_regs to decide whether a REG_RETURNED
6592         value is useful.
6594 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6596         * rtl.h (predefined_function_abi): Declare.
6597         (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
6598         instead of a boolean call_save flag.
6599         * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call
6600         accordingly.
6601         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6602         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6603         * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise.
6604         * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6605         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6606         * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise.
6607         * reginfo.c (init_reg_modes_target): Likewise.
6608         (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
6609         instead of a boolean call_save flag.
6610         * targhooks.c: Include function-abi.h.
6611         (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode,
6612         using eh_edge_abi to choose the mode.
6614 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6616         * target.def (hard_regno_call_part_clobbered): Take an ABI
6617         identifier instead of an rtx_insn.
6618         * doc/tm.texi: Regenerate.
6619         * hooks.h (hook_bool_insn_uint_mode_false): Delete.
6620         (hook_bool_uint_uint_mode_false): New function.
6621         * hooks.c (hook_bool_insn_uint_mode_false): Delete.
6622         (hook_bool_uint_uint_mode_false): New function.
6623         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6624         Take an ABI identifier instead of an rtx_insn.
6625         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
6626         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
6627         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
6628         * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
6629         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
6630         Likewise.
6631         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
6632         * cselib.c: Include function-abi.h.
6633         (cselib_process_insn): Update call to
6634         targetm.hard_regno_call_part_clobbered, using insn_callee_abi
6635         to get the appropriate ABI identifier.
6636         * function-abi.cc (predefined_function_abi::initialize): Update call
6637         to targetm.hard_regno_call_part_clobbered.
6638         * ira-conflicts.c (ira_build_conflicts): Likewise.
6639         * ira-costs.c (ira_tune_allocno_costs): Likewise.
6640         * lra-constraints.c: Include function-abi.h.
6641         (need_for_call_save_p): Update call to
6642         targetm.hard_regno_call_part_clobbered, using insn_callee_abi
6643         to get the appropriate ABI identifier.
6644         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
6645         * regcprop.c (copyprop_hardreg_forward_1): Update call
6646         to targetm.hard_regno_call_part_clobbered.
6647         * reginfo.c (choose_hard_reg_mode): Likewise.
6648         * regrename.c (check_new_reg_p): Likewise.
6649         * reload.c (find_equiv_reg): Likewise.
6650         * reload1.c (emit_reload_insns): Likewise.
6651         * sched-deps.c: Include function-abi.h.
6652         (deps_analyze_insn): Update call to
6653         targetm.hard_regno_call_part_clobbered, using insn_callee_abi
6654         to get the appropriate ABI identifier.
6655         * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
6656         call to targetm.hard_regno_call_part_clobbered.
6657         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
6659 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6661         * config/i386/i386.c: Include function-abi.h.
6662         (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY
6663         if they preserve some 256-bit or 512-bit SSE registers.
6665 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6667         * target.def (insn_callee_abi): New hook.
6668         (remove_extra_call_preserved_regs): Delete.
6669         * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro.
6670         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
6671         * doc/tm.texi: Regenerate.
6672         * targhooks.h (default_remove_extra_call_preserved_regs): Delete.
6673         * targhooks.c (default_remove_extra_call_preserved_regs): Delete.
6674         * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the
6675         insn argument.
6676         (aarch64_remove_extra_call_preserved_regs): Delete.
6677         (aarch64_insn_callee_abi): New function.
6678         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
6679         (TARGET_INSN_CALLEE_ABI): New macro.
6680         * rtl.h (get_call_fndecl): Declare.
6681         (cgraph_rtl_info): Fix formatting.  Tweak comment for
6682         function_used_regs.  Remove function_used_regs_valid.
6683         * rtlanal.c (get_call_fndecl): Moved from final.c
6684         * function-abi.h (insn_callee_abi): Declare.
6685         (target_function_abi_info): Mention insn_callee_abi.
6686         * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar
6687         way to get_call_reg_set_usage did.
6688         (insn_callee_abi): New function.
6689         * regs.h (get_call_reg_set_usage): Delete.
6690         * final.c: Include function-abi.h.
6691         (collect_fn_hard_reg_usage): Add fixed and stack registers to
6692         function_used_regs before the main loop rather than afterwards.
6693         Use insn_callee_abi instead of get_call_reg_set_usage.  Exit early
6694         if function_used_regs ends up not being useful.
6695         (get_call_fndecl): Move to rtlanal.c
6696         (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete.
6697         * caller-save.c: Include function-abi.h.
6698         (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi
6699         instead of get_call_reg_set_usage.
6700         * cfgcleanup.c: Include function-abi.h.
6701         (old_insns_match_p): Use insn_callee_abi instead of
6702         get_call_reg_set_usage.
6703         * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of
6704         a tree.
6705         * cgraph.c (cgraph_node::rtl_info): Likewise.  Initialize
6706         function_used_regs.
6707         * df-scan.c: Include function-abi.h.
6708         (df_get_call_refs): Use insn_callee_abi instead of
6709         get_call_reg_set_usage.
6710         * ira-lives.c: Include function-abi.h.
6711         (process_bb_node_lives): Use insn_callee_abi instead of
6712         get_call_reg_set_usage.
6713         * lra-lives.c: Include function-abi.h.
6714         (process_bb_lives): Use insn_callee_abi instead of
6715         get_call_reg_set_usage.
6716         * postreload.c: Include function-abi.h.
6717         (reload_combine): Use insn_callee_abi instead of
6718         get_call_reg_set_usage.
6719         * regcprop.c: Include function-abi.h.
6720         (copyprop_hardreg_forward_1): Use insn_callee_abi instead of
6721         get_call_reg_set_usage.
6722         * resource.c: Include function-abi.h.
6723         (mark_set_resources, mark_target_live_regs): Use insn_callee_abi
6724         instead of get_call_reg_set_usage.
6725         * var-tracking.c: Include function-abi.h.
6726         (dataflow_set_clear_at_call): Use insn_callee_abi instead of
6727         get_call_reg_set_usage.
6729 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6731         * target.def (fntype_abi): New target hook.
6732         * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise.
6733         * doc/tm.texi: Regenerate.
6734         * target.h (predefined_function_abi): Declare.
6735         * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi,
6736         if defined.
6737         * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value.
6738         * config/aarch64/aarch64.c: Include function-abi.h.
6739         (aarch64_simd_abi, aarch64_fntype_abi): New functions.
6740         (TARGET_FNTYPE_ABI): Define.
6742 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6744         * Makefile.in (OBJS): Add function-abi.o.
6745         (GTFILES): Add function-abi.h.
6746         * function-abi.cc: New file.
6747         * function-abi.h: Likewise.
6748         * emit-rtl.h (rtl_data::abi): New field.
6749         * function.c: Include function-abi.h.
6750         (prepare_function_start): Initialize crtl->abi.
6751         * read-rtl-function.c: Include regs.h and function-abi.h.
6752         (read_rtl_function_body): Initialize crtl->abi.
6753         (read_rtl_function_body_from_file_range): Likewise.
6754         * reginfo.c: Include function-abi.h.
6755         (init_reg_sets_1): Initialize default_function_abi.
6756         (globalize_reg): Call add_full_reg_clobber for each predefined ABI
6757         when making a register global.
6758         * target-globals.h (this_target_function_abi_info): Declare.
6759         (target_globals::function_abi_info): New field.
6760         (restore_target_globals): Copy it.
6761         * target-globals.c: Include function-abi.h.
6762         (default_target_globals): Initialize the function_abi_info field.
6763         (target_globals): Allocate it.
6764         (save_target_globals): Free it.
6766 2019-09-30  Nick Clifton  <nickc@redhat.com>
6768         PR target/85978
6769         * config/frv/frv.c (frv_register_move_cost): Add break statements
6770         to avoid falling through to the wrong cases.  Tidy code.
6772 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
6774         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6775         For multi-registers modes, test how big each register part is.
6777 2019-09-30  Nick Clifton  <nickc@redhat.com>
6779         PR target/59205
6780         * config/iq2000/iq2000.c (iq2000_select_section): Delete.
6781         (TARGET_ASM_SELECT_SECTION): Remove definition.
6782         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition.
6784 2019-09-30  Ilya Leoshkevich  <iii@linux.ibm.com>
6786         * emit-rtl.c (init_raw_REG): New function.
6787         (gen_raw_REG): Use init_raw_REG.
6788         * gengenrtl.c (gendef): Emit init_* functions and alloca_*
6789         macros.
6790         * rtl.c (rtx_alloc_stat_v): Use rtx_init.
6791         * rtl.h (rtx_init): New function.
6792         (rtx_alloca): New function.
6793         (init_raw_REG): New function.
6794         (alloca_raw_REG): New macro.
6796 2019-09-30  Michael Meissner  <meissner@linux.ibm.com>
6798         * config/rs6000/predicates.md (pcrel_address): Delete predicate.
6799         (pcrel_local_address): Replace pcrel_address predicate, use the
6800         new function address_to_insn_form.
6801         (pcrel_external_address): Replace with new implementation using
6802         address_to_insn_form..
6803         (prefixed_mem_operand): Delete predicate which is now unused.
6804         (pcrel_external_mem_operand): Delete predicate which is now
6805         unused.
6806         * config/rs6000/rs6000-protos.h (enum insn_form): New
6807         enumeration.
6808         (enum non_prefixed_form): New enumeration.
6809         (address_to_insn_form): New declaration.
6810         (prefixed_load_p): New declaration.
6811         (prefixed_store_p): New declaration.
6812         (prefixed_paddi_p): New declaration.
6813         (rs6000_asm_output_opcode): New declaration.
6814         (rs6000_final_prescan_insn): Move declaration and update calling
6815         signature.
6816         (address_is_prefixed): New helper inline function.
6817         * config/rs6000/rs6000.c(print_operand_address): Check for either
6818         PC-relative local symbols or PC-relative external symbols.
6819         (rs6000_emit_move): Support loading PC-relative addresses.
6820         (mode_supports_prefixed_address_p): Delete, no longer used.
6821         (rs6000_prefixed_address_mode_p): Delete, no longer used.
6822         (address_to_insn_form): New function to decode an address format.
6823         (reg_to_non_prefixed): New function to identify what the
6824         non-prefixed memory instruction format is for a register.
6825         (prefixed_load_p): New function to identify prefixed loads.
6826         (prefixed_store_p): New function to identify prefixed stores.
6827         (prefixed_paddi_p): New function to identify prefixed load
6828         immediates.
6829         (next_insn_prefixed_p): New static state variable.
6830         (rs6000_final_prescan_insn): New function to determine if an insn
6831         uses a prefixed instruction.
6832         (rs6000_asm_output_opcode): New function to emit 'p' in front of a
6833         prefixed instruction.
6834         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
6835         (ASM_OUTPUT_OPCODE): New target hook.
6836         * config/rs6000/rs6000.md (prefixed): New insn attribute for
6837         prefixed instructions.
6838         (prefixed_length): New insn attribute for the size of prefixed
6839         instructions.
6840         (non_prefixed_length): New insn attribute for the size of
6841         non-prefixed instructions.
6842         (pcrel_local_addr): New insn to load up a local PC-relative
6843         address.
6844         (pcrel_extern_addr): New insn to load up an external PC-relative
6845         address.
6846         (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a
6847         GPR and loading a 128-bit floating point type to a GPR.
6849 2019-09-30  Richard Biener  <rguenther@suse.de>
6851         * gimple.c (gimple_get_lhs): For PHIs return the result.
6852         * tree-vectorizer.h (vectorizable_live_operation): Also get the
6853         SLP instance as argument.
6854         * tree-vect-loop.c (vect_analyze_loop_operations): Also handle
6855         double-reduction PHIs with vectorizable_lc_phi.
6856         (vect_analyze_loop_operations): Adjust.
6857         (vect_create_epilog_for_reduction): Remove all code not dealing
6858         with reduction LC PHI or epilogue generation.
6859         (vectorizable_live_operation): Call vect_create_epilog_for_reduction
6860         for live stmts of reductions.
6861         * tree-vect-stmts.c (vectorizable_condition): When !for_reduction
6862         do not handle defs that are not vect_internal_def.
6863         (can_vectorize_live_stmts): Adjust.
6864         (vect_analyze_stmt): When the vectorized stmt defined a value
6865         used on backedges adjust the backedge uses of vectorized PHIs.
6867 2019-09-30  Martin Jambor  <mjambor@suse.cz>
6869         PR ipa/91853
6870         * tree-inline.c (force_value_to_type): New function.
6871         (setup_one_parameter): Use force_value_to_type to convert type.
6872         * tree-inline.c (force_value_to_type): Declare.
6873         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal
6874         with register type mismatches.
6876 2019-09-30  Andreas Tobler  <andreast@gcc.gnu.org>
6878         * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for
6879         32-bit PowerPC.
6880         Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC.
6881         * config/rs6000/t-freebsd64: Make use of the above define and build
6882         the 32-bit libraries with secure-plt.
6884 2019-09-30  Jakub Jelinek  <jakub@redhat.com>
6886         PR target/91931
6887         * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use
6888         gen_int_mode instead of GEN_INT.
6890 2019-09-29  Iain Sandoe  <iain@sandoe.co.uk>
6892         * config/darwin.c (gen_macho_low): Amend to include the mode
6893         argument.
6894         (machopic_indirect_data_reference): Amend gen_macho_low call
6895         to include mode argument
6896         * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment.
6897         * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces
6898         the macho_high expander and two define_insn entries.
6900 2019-09-29  Jakub Jelinek  <jakub@redhat.com>
6902         PR bootstrap/90543
6903         * optc-save-gen.awk: Fix up printing string option differences.
6905 2019-09-29  Kewen Lin  <linkw@gcc.gnu.org>
6907         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
6908         vec_perm cost to 1 for non-Power7 VSX architectures.
6910 2019-09-29  Kewen Lin  <linkw@gcc.gnu.org>
6912         * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand.
6913         (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise.
6914         (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise.
6916 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
6918         * config/darwin.c (gen_macho_high): Amend to include the mode
6919         argument.
6920         (machopic_indirect_data_reference): Amend gen_macho_high call
6921         to include mode argument.
6922         (machopic_legitimize_pic_address): Likewise.
6923         * config/rs6000/rs6000.c (rs6000_legitimize_address):
6924         * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
6925         the macho_high expander and two define_insn entries.
6927 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
6929         PR target/86805
6930         * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
6932 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
6934         PR target/80672
6935         * config/sh/sh.c (parse_validate_atomic_model_option): Use
6936         std::string::compare instead of std::string::find.
6938 2019-09-27  Maciej W. Rozycki  <macro@wdc.com>
6940         * configure: Regenerate.
6942 2019-09-27  Jakub Jelinek  <jakub@redhat.com>
6944         PR middle-end/91920
6945         * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
6946         variables as shared.
6948 2019-09-27  Iain Sandoe  <iain@sandoe.co.uk>
6950         * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
6951         replaces the expander and two define_insn entries.
6952         (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
6953         call.
6954         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
6956 2019-09-27  David Malcolm  <dmalcolm@redhat.com>
6958         * fibonacci_heap.h (fibonacci_heap::empty): Make const.
6959         (fibonacci_heap::nodes): Likewise.
6960         (fibonacci_heap::min_key): Likewise.
6961         (fibonacci_heap::min): Likewise.
6963 2019-09-27  David Malcolm  <dmalcolm@redhat.com>
6965         * cgraph.c (cgraph_node::get_fun): Make const.
6966         * cgraph.h (cgraph_node::get_fun): Likewise.
6968 2019-09-27  Jakub Jelinek  <jakub@redhat.com>
6970         PR target/91919
6971         * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
6972         of SImode MULT.
6974 2019-09-27  Richard Biener  <rguenther@suse.de>
6976         * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
6977         (STMT_VINFO_REDUC_FN): Likewise.
6978         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
6979         STMT_VINFO_REDUC_FN.
6980         * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
6981         for condition reductions.
6982         (vect_create_epilog_for_reduction): Compute all required state
6983         from the stmt to be vectorized.
6984         (vectorizable_reduction): Simplify vect_create_epilog_for_reduction
6985         invocation and remove then dead code.  For single def-use chains
6986         record only a single vector stmt.
6988 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
6990         * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
6991         (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
6992         (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
6993         (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
6994         (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
6995         (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
6996         (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
6997         (aarch64_general_expand_builtin, aarch64_general_builtin_decl):
6998         (aarch64_general_builtin_rsqrt): Declare.
6999         * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
7000         New function.
7001         (aarch64_mangle_builtin_type): Rename to...
7002         (aarch64_general_mangle_builtin_type): ...this.
7003         (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
7004         (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
7005         (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
7006         aarch64_general_add_builtin instead of add_builtin_function.
7007         (aarch64_init_builtins): Rename to...
7008         (aarch64_general_init_builtins): ...this.  Use
7009         aarch64_general_add_builtin instead of add_builtin_function.
7010         (aarch64_builtin_decl): Rename to...
7011         (aarch64_general_builtin_decl): ...this and remove the unused
7012         arguments.
7013         (aarch64_expand_builtin): Rename to...
7014         (aarch64_general_expand_builtin): ...this and remove the unused
7015         arguments.
7016         (aarch64_builtin_rsqrt): Rename to...
7017         (aarch64_general_builtin_rsqrt): ...this.
7018         (aarch64_fold_builtin): Rename to...
7019         (aarch64_general_fold_builtin): ...this.  Take the function subcode
7020         and return type as arguments.  Remove the "ignored" argument.
7021         (aarch64_gimple_fold_builtin): Rename to...
7022         (aarch64_general_gimple_fold_builtin): ...this.  Take the function
7023         subcode and gcall as arguments, and return the new function call.
7024         * config/aarch64/aarch64.c (aarch64_init_builtins)
7025         (aarch64_fold_builtin, aarch64_gimple_fold_builtin)
7026         (aarch64_expand_builtin, aarch64_builtin_decl): New functions.
7027         (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
7028         instead of aarch64_builtin_rsqrt.
7029         (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
7030         instead of aarch64_mangle_builtin_type.
7032 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
7034         * target.def (check_builtin_call): New target hook.
7035         * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
7036         * doc/tm.texi: Regenerate.
7038 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
7040         PR tree-optimization/91909
7041         * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
7042         reduc_index parameter.  When handling COND_REDUCTION, make sure
7043         that the reduction phi operand is in the correct arm of the
7044         VEC_COND_EXPR.
7045         (vectorizable_reduction): Pass reduc_index to the above.
7047 2019-09-27  Yuliang Wang  <yuliang.wang@arm.com>
7049         * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
7050         New combine pattern.
7052 2019-09-26  Max Filippov  <jcmvbkbc@gmail.com>
7054         * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
7055         loop instruction into new basic block before the loop when basic
7056         block that precedes the loop is empty.
7058 2019-09-26  Jakub Jelinek  <jakub@redhat.com>
7060         * function.c (gimplify_parameters): Use build_clobber function.
7061         * tree-ssa.c (execute_update_addresses_taken): Likewise.
7062         * tree-inline.c (expand_call_inline): Likewise.
7063         * tree-sra.c (clobber_subtree): Likewise.
7064         * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
7065         * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
7066         lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
7067         lower_omp_target): Likewise.
7068         * omp-expand.c (expand_omp_for_generic): Likewise.
7069         * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
7071 2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
7073         * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
7074         LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
7075         LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
7076         LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
7077         LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
7078         LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
7079         LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
7080         LD_ELEMREV_V16QI): Use the PURE attribute.
7082 2019-09-26  Iain Sandoe  <iain@sandoe.co.uk>
7084         * config/rs6000/darwin.md: Replace the expanders for
7085         load_macho_picbase and reload_macho_picbase with use of '@'
7086         and <mode> in their respective define_insns.
7087         (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
7088         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
7089         Pmode to gen_load_macho_picbase.
7090         * config/rs6000/rs6000.md: Likewise.
7092 2019-09-25  Richard Biener  <rguenther@suse.de>
7094         PR tree-optimization/91896
7095         * tree-vect-loop.c (vectorizable_reduction): The single
7096         def-use cycle optimization cannot apply when there's more
7097         than one pattern stmt involved.
7099 2019-09-26  Richard Biener  <rguenther@suse.de>
7101         * tree-vect-loop.c (vect_analyze_loop_operations): Analyze
7102         loop-closed PHIs that are vect_internal_def.
7103         (vect_create_epilog_for_reduction): Exit early for nested cycles.
7104         Simplify.
7105         (vectorizable_lc_phi): New.
7106         * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
7107         (vect_transform_stmt): Likewise.
7108         * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
7109         (vectorizable_lc_phi): Declare.
7111 2019-09-26  Richard Biener  <rguenther@suse.de>
7113         * tree-vect-loop.c (vect_analyze_loop_operations): Also call
7114         vectorizable_reduction for vect_double_reduction_def.
7115         (vect_transform_loop): Likewise.
7116         (vect_create_epilog_for_reduction): Move double-reduction
7117         PHI creation and preheader argument setting of PHIs ...
7118         (vectorizable_reduction): ... here.  Also process
7119         vect_double_reduction_def PHIs, creating the vectorized
7120         PHI nodes, remembering the scalar adjustment computed for
7121         the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
7122         Remember the original reduction code in STMT_VINFO_REDUC_CODE.
7123         * tree-vectorizer.c (vec_info::new_stmt_vec_info):
7124         Initialize STMT_VINFO_REDUC_CODE.
7125         * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
7126         (_stmt_vec_info::reduc_code): Likewise.
7127         (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
7128         (STMT_VINFO_REDUC_CODE): Likewise.
7130 2019-09-26  Matt Turner  <mattst88@gmail.com>
7132         PR driver/69471
7133         * config/aarch64/aarch64.opt (march=): Add Negative(march=).
7134         (mtune=): Add Negative(mtune=).
7135         (mcpu=): Add Negative(mcpu=).
7136         * config/arm/arm.opt: Likewise.
7138 2019-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7140         * config/arm/arm.md (arm_<simd32_op>): New define_insn.
7141         * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
7142         Define.
7143         * config/arm/arm_acle.h: Define builtins for the above.
7144         * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
7145         (simd32_op): Handle the above.
7146         * config/arm/unspecs.md: Define unspecs for the above.
7148 2019-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7150         * config/arm/arm.md (arm_<simd32_op>): New define_insn.
7151         (arm_<sup>xtb16): Likewise.
7152         (arm_usada8): Likewise.
7153         * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
7154         __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
7155         __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
7156         __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
7157         __sxtb16, __uxtab16, __uxtb16): Define.
7158         * config/arm/arm_acle_builtins.def: Define builtins for the above.
7159         * config/arm/unspecs.md: Define unspecs for the above.
7160         * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
7161         (USXTB16): Likewise.
7162         (simd32_op): New int_attribute.
7163         (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
7164         * doc/sourcebuild.exp (arm_simd32_ok): Document.
7166 2019-09-26  Martin Jambor  <mjambor@suse.cz>
7168         * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
7169         internal_error.
7171 2019-09-26  Martin Jambor  <mjambor@suse.cz>
7173         * ipa-sra.c (process_scan_results): Fix continue condition.
7175 2019-09-26  Martin Liska  <mliska@suse.cz>
7177         PR tree-optimization/91885
7178         * tree-vectorizer.c (try_vectorize_loop_1): Add
7179         TODO_update_ssa_only_virtuals similarly to what slp pass does.
7181 2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
7183         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
7184         aarch64_plus_immediate rather than aarch64_uimm12_shift
7185         to test for valid PLUS immediates.
7187 2019-09-25  Martin Jambor  <mjambor@suse.cz>
7189         * tree-sra.c (no_accesses_p): Remove.
7190         (no_accesses_representant): Likewise.
7192 2019-09-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7194         * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers
7195         consistenly.
7196         (vaba_s16): Likewise.
7197         (vaba_s32): Likewise.
7198         (vaba_u8): Likewise.
7199         (vaba_u16): Likewise.
7200         (vaba_u32): Likewise.
7201         (vabal_high_s8): Likewise.
7202         (vabal_high_s16): Likewise.
7203         (vabal_high_s32): Likewise.
7204         (vabal_high_u8): Likewise.
7205         (vabal_high_u16): Likewise.
7206         (vabal_high_u32): Likewise.
7207         (vabal_s8): Likewise.
7208         (vabal_s16): Likewise.
7209         (vabal_s32): Likewise.
7210         (vabal_u8): Likewise.
7211         (vabal_u16): Likewise.
7212         (vabal_u32): Likewise.
7213         (vabaq_s8): Likewise.
7214         (vabaq_s16): Likewise.
7215         (vabaq_s32): Likewise.
7216         (vabaq_u8): Likewise.
7217         (vabaq_u16): Likewise.
7218         (vabaq_u32): Likewise.
7219         (vabd_s8): Likewise.
7220         (vabd_s16): Likewise.
7221         (vabd_s32): Likewise.
7222         (vabd_u8): Likewise.
7223         (vabd_u16): Likewise.
7224         (vabd_u32): Likewise.
7225         (vabdl_high_s8): Likewise.
7226         (vabdl_high_s16): Likewise.
7227         (vabdl_high_s32): Likewise.
7228         (vabdl_high_u8): Likewise.
7229         (vabdl_high_u16): Likewise.
7230         (vabdl_high_u32): Likewise.
7231         (vabdl_s8): Likewise.
7232         (vabdl_s16): Likewise.
7233         (vabdl_s32): Likewise.
7234         (vabdl_u8): Likewise.
7235         (vabdl_u16): Likewise.
7236         (vabdl_u32): Likewise.
7237         (vabdq_s8): Likewise.
7238         (vabdq_s16): Likewise.
7239         (vabdq_s32): Likewise.
7240         (vabdq_u8): Likewise.
7241         (vabdq_u16): Likewise.
7242         (vabdq_u32): Likewise.
7243         (vaddlv_s8): Likewise.
7244         (vaddlv_s16): Likewise.
7245         (vaddlv_u8): Likewise.
7246         (vaddlv_u16): Likewise.
7247         (vaddlvq_s8): Likewise.
7248         (vaddlvq_s16): Likewise.
7249         (vaddlvq_s32): Likewise.
7250         (vaddlvq_u8): Likewise.
7251         (vaddlvq_u16): Likewise.
7252         (vaddlvq_u32): Likewise.
7253         (vcvtx_f32_f64): Likewise.
7254         (vcvtx_high_f32_f64): Likewise.
7255         (vcvtxd_f32_f64): Likewise.
7256         (vmla_n_f32): Likewise.
7257         (vmla_n_s16): Likewise.
7258         (vmla_n_s32): Likewise.
7259         (vmla_n_u16): Likewise.
7260         (vmla_n_u32): Likewise.
7261         (vmla_s8): Likewise.
7262         (vmla_s16): Likewise.
7263         (vmla_s32): Likewise.
7264         (vmla_u8): Likewise.
7265         (vmla_u16): Likewise.
7266         (vmla_u32): Likewise.
7267         (vmlal_high_n_s16): Likewise.
7268         (vmlal_high_n_s32): Likewise.
7269         (vmlal_high_n_u16): Likewise.
7270         (vmlal_high_n_u32): Likewise.
7271         (vmlal_high_s8): Likewise.
7272         (vmlal_high_s16): Likewise.
7273         (vmlal_high_s32): Likewise.
7274         (vmlal_high_u8): Likewise.
7275         (vmlal_high_u16): Likewise.
7276         (vmlal_high_u32): Likewise.
7277         (vmlal_n_s16): Likewise.
7278         (vmlal_n_s32): Likewise.
7279         (vmlal_n_u16): Likewise.
7280         (vmlal_n_u32): Likewise.
7281         (vmlal_s8): Likewise.
7282         (vmlal_s16): Likewise.
7283         (vmlal_s32): Likewise.
7284         (vmlal_u8): Likewise.
7285         (vmlal_u16): Likewise.
7286         (vmlal_u32): Likewise.
7287         (vmlaq_n_f32): Likewise.
7288         (vmlaq_n_s16): Likewise.
7289         (vmlaq_n_s32): Likewise.
7290         (vmlaq_n_u16): Likewise.
7291         (vmlaq_n_u32): Likewise.
7292         (vmlaq_s8): Likewise.
7293         (vmlaq_s16): Likewise.
7294         (vmlaq_s32): Likewise.
7295         (vmlaq_u8): Likewise.
7296         (vmlaq_u16): Likewise.
7297         (vmlaq_u32): Likewise.
7298         (vmls_n_f32): Likewise.
7299         (vmls_n_s16): Likewise.
7300         (vmls_n_s32): Likewise.
7301         (vmls_n_u16): Likewise.
7302         (vmls_n_u32): Likewise.
7303         (vmls_s8): Likewise.
7304         (vmls_s16): Likewise.
7305         (vmls_s32): Likewise.
7306         (vmls_u8): Likewise.
7307         (vmls_u16): Likewise.
7308         (vmls_u32): Likewise.
7309         (vmlsl_high_n_s16): Likewise.
7310         (vmlsl_high_n_s32): Likewise.
7311         (vmlsl_high_n_u16): Likewise.
7312         (vmlsl_high_n_u32): Likewise.
7313         (vmlsl_high_s8): Likewise.
7314         (vmlsl_high_s16): Likewise.
7315         (vmlsl_high_s32): Likewise.
7316         (vmlsl_high_u8): Likewise.
7317         (vmlsl_high_u16): Likewise.
7318         (vmlsl_high_u32): Likewise.
7319         (vmlsl_n_s16): Likewise.
7320         (vmlsl_n_s32): Likewise.
7321         (vmlsl_n_u16): Likewise.
7322         (vmlsl_n_u32): Likewise.
7323         (vmlsl_s8): Likewise.
7324         (vmlsl_s16): Likewise.
7325         (vmlsl_s32): Likewise.
7326         (vmlsl_u8): Likewise.
7327         (vmlsl_u16): Likewise.
7328         (vmlsl_u32): Likewise.
7329         (vmlsq_n_f32): Likewise.
7330         (vmlsq_n_s16): Likewise.
7331         (vmlsq_n_s32): Likewise.
7332         (vmlsq_n_u16): Likewise.
7333         (vmlsq_n_u32): Likewise.
7334         (vmlsq_s8): Likewise.
7335         (vmlsq_s16): Likewise.
7336         (vmlsq_s32): Likewise.
7337         (vmlsq_u8): Likewise.
7338         (vmlsq_u16): Likewise.
7339         (vmlsq_u32): Likewise.
7340         (vmovl_high_s8): Likewise.
7341         (vmovl_high_s16): Likewise.
7342         (vmovl_high_s32): Likewise.
7343         (vmovl_high_u8): Likewise.
7344         (vmovl_high_u16): Likewise.
7345         (vmovl_high_u32): Likewise.
7346         (vmovl_s8): Likewise.
7347         (vmovl_s16): Likewise.
7348         (vmovl_s32): Likewise.
7349         (vmovl_u8): Likewise.
7350         (vmovl_u16): Likewise.
7351         (vmovl_u32): Likewise.
7352         (vmovn_high_s16): Likewise.
7353         (vmovn_high_s32): Likewise.
7354         (vmovn_high_s64): Likewise.
7355         (vmovn_high_u16): Likewise.
7356         (vmovn_high_u32): Likewise.
7357         (vmovn_high_u64): Likewise.
7358         (vmovn_s16): Likewise.
7359         (vmovn_s32): Likewise.
7360         (vmovn_s64): Likewise.
7361         (vmovn_u16): Likewise.
7362         (vmovn_u32): Likewise.
7363         (vmovn_u64): Likewise.
7364         (vmull_high_n_s16): Likewise.
7365         (vmull_high_n_s32): Likewise.
7366         (vmull_high_n_u16): Likewise.
7367         (vmull_high_n_u32): Likewise.
7368         (vmull_high_p8): Likewise.
7369         (vmull_high_s8): Likewise.
7370         (vmull_high_s16): Likewise.
7371         (vmull_high_s32): Likewise.
7372         (vmull_high_u8): Likewise.
7373         (vmull_high_u16): Likewise.
7374         (vmull_high_u32): Likewise.
7375         (vmull_n_s16): Likewise.
7376         (vmull_n_s32): Likewise.
7377         (vmull_n_u16): Likewise.
7378         (vmull_n_u32): Likewise.
7379         (vmull_p8): Likewise.
7380         (vmull_s8): Likewise.
7381         (vmull_s16): Likewise.
7382         (vmull_s32): Likewise.
7383         (vmull_u8): Likewise.
7384         (vmull_u16): Likewise.
7385         (vmull_u32): Likewise.
7386         (vpadal_s8): Likewise.
7387         (vpadal_s16): Likewise.
7388         (vpadal_s32): Likewise.
7389         (vpadal_u8): Likewise.
7390         (vpadal_u16): Likewise.
7391         (vpadal_u32): Likewise.
7392         (vpadalq_s8): Likewise.
7393         (vpadalq_s16): Likewise.
7394         (vpadalq_s32): Likewise.
7395         (vpadalq_u8): Likewise.
7396         (vpadalq_u16): Likewise.
7397         (vpadalq_u32): Likewise.
7398         (vpaddl_s8): Likewise.
7399         (vpaddl_s16): Likewise.
7400         (vpaddl_s32): Likewise.
7401         (vpaddl_u8): Likewise.
7402         (vpaddl_u16): Likewise.
7403         (vpaddl_u32): Likewise.
7404         (vpaddlq_s8): Likewise.
7405         (vpaddlq_s16): Likewise.
7406         (vpaddlq_s32): Likewise.
7407         (vpaddlq_u8): Likewise.
7408         (vpaddlq_u16): Likewise.
7409         (vpaddlq_u32): Likewise.
7410         (vpaddq_s8): Likewise.
7411         (vpaddq_s16): Likewise.
7412         (vpaddq_s32): Likewise.
7413         (vpaddq_s64): Likewise.
7414         (vpaddq_u8): Likewise.
7415         (vpaddq_u16): Likewise.
7416         (vpaddq_u32): Likewise.
7417         (vpaddq_u64): Likewise.
7418         (vqdmulh_n_s16): Likewise.
7419         (vqdmulh_n_s32): Likewise.
7420         (vqdmulhq_n_s16): Likewise.
7421         (vqdmulhq_n_s32): Likewise.
7422         (vqmovn_high_s16): Likewise.
7423         (vqmovn_high_s32): Likewise.
7424         (vqmovn_high_s64): Likewise.
7425         (vqmovn_high_u16): Likewise.
7426         (vqmovn_high_u32): Likewise.
7427         (vqmovn_high_u64): Likewise.
7428         (vqmovun_high_s16): Likewise.
7429         (vqmovun_high_s32): Likewise.
7430         (vqmovun_high_s64): Likewise.
7431         (vqrdmulh_n_s16): Likewise.
7432         (vqrdmulh_n_s32): Likewise.
7433         (vqrdmulhq_n_s16): Likewise.
7434         (vqrdmulhq_n_s32): Likewise.
7435         (vrsqrte_u32): Likewise.
7436         (vrsqrteq_u32): Likewise.
7437         (vtst_p8): Likewise.
7438         (vtst_p16): Likewise.
7439         (vtst_p64): Likewise.
7440         (vtstq_p8): Likewise.
7441         (vtstq_p16): Likewise.
7442         (vtstq_p64): Likewise.
7443         (vaddlv_s32): Likewise.
7444         (vaddlv_u32): Likewise.
7445         (vqtbl1_p8): Likewise.
7446         (vqtbl1_s8): Likewise.
7447         (vqtbl1_u8): Likewise.
7448         (vqtbl1q_p8): Likewise.
7449         (vqtbl1q_s8): Likewise.
7450         (vqtbl1q_u8): Likewise.
7451         (vqtbx1_s8): Likewise.
7452         (vqtbx1_u8): Likewise.
7453         (vqtbx1_p8): Likewise.
7454         (vqtbx1q_s8): Likewise.
7455         (vqtbx1q_u8): Likewise.
7456         (vqtbx1q_p8): Likewise.
7457         (vtbl1_s8): Likewise.
7458         (vtbl1_u8): Likewise.
7459         (vtbl1_p8): Likewise.
7460         (vtbl2_s8): Likewise.
7461         (vtbl2_u8): Likewise.
7462         (vtbl2_p8): Likewise.
7463         (vtbl3_s8): Likewise.
7464         (vtbl3_u8): Likewise.
7465         (vtbl3_p8): Likewise.
7466         (vtbl4_s8): Likewise.
7467         (vtbl4_u8): Likewise.
7468         (vtbl4_p8): Likewise.
7469         (vtbx2_s8): Likewise.
7470         (vtbx2_u8): Likewise.
7471         (vtbx2_p8): Likewise.
7472         (vld1_f32): Likewise.
7473         (vld1_f64): Likewise.
7474         (vld1_p8): Likewise.
7475         (vld1_p16): Likewise.
7476         (vld1_p64): Likewise.
7477         (vld1_s8): Likewise.
7478         (vld1_s16): Likewise.
7479         (vld1_s32): Likewise.
7480         (vld1_s64): Likewise.
7481         (vld1_u8): Likewise.
7482         (vld1_u16): Likewise.
7483         (vld1_u32): Likewise.
7484         (vld1_u64): Likewise.
7485         (vld1q_f32): Likewise.
7486         (vld1q_f64): Likewise.
7487         (vld1q_p8): Likewise.
7488         (vld1q_p16): Likewise.
7489         (vld1q_p64): Likewise.
7490         (vld1q_s8): Likewise.
7491         (vld1q_s16): Likewise.
7492         (vld1q_s32): Likewise.
7493         (vld1q_s64): Likewise.
7494         (vld1q_u8): Likewise.
7495         (vld1q_u16): Likewise.
7496         (vld1q_u32): Likewise.
7497         (vld1q_u64): Likewise.
7498         (vpmax_s8): Likewise.
7499         (vpmax_s16): Likewise.
7500         (vpmax_s32): Likewise.
7501         (vpmax_u8): Likewise.
7502         (vpmax_u16): Likewise.
7503         (vpmax_u32): Likewise.
7504         (vpmaxq_s8): Likewise.
7505         (vpmaxq_s16): Likewise.
7506         (vpmaxq_s32): Likewise.
7507         (vpmaxq_u8): Likewise.
7508         (vpmaxq_u16): Likewise.
7509         (vpmaxq_u32): Likewise.
7510         (vpmax_f32): Likewise.
7511         (vpmaxq_f32): Likewise.
7512         (vpmaxq_f64): Likewise.
7513         (vpmaxqd_f64): Likewise.
7514         (vpmaxs_f32): Likewise.
7515         (vpmaxnm_f32): Likewise.
7516         (vpmaxnmq_f32): Likewise.
7517         (vpmaxnmq_f64): Likewise.
7518         (vpmaxnmqd_f64): Likewise.
7519         (vpmaxnms_f32): Likewise.
7520         (vpmin_s8): Likewise.
7521         (vpmin_s16): Likewise.
7522         (vpmin_s32): Likewise.
7523         (vpmin_u8): Likewise.
7524         (vpmin_u16): Likewise.
7525         (vpmin_u32): Likewise.
7526         (vpminq_s8): Likewise.
7527         (vpminq_s16): Likewise.
7528         (vpminq_s32): Likewise.
7529         (vpminq_u8): Likewise.
7530         (vpminq_u16): Likewise.
7531         (vpminq_u32): Likewise.
7532         (vpmin_f32): Likewise.
7533         (vpminq_f32): Likewise.
7534         (vpminq_f64): Likewise.
7535         (vpminqd_f64): Likewise.
7536         (vpmins_f32): Likewise.
7537         (vpminnm_f32): Likewise.
7538         (vpminnmq_f32): Likewise.
7539         (vpminnmq_f64): Likewise.
7540         (vpminnmqd_f64): Likewise.
7541         (vpminnms_f32): Likewise.
7542         (vmla_f32): Likewise.
7543         (vmlaq_f32): Likewise.
7544         (vmlaq_f64): Likewise.
7545         (vmls_f32): Likewise.
7546         (vmlsq_f32): Likewise.
7547         (vmlsq_f64): Likewise.
7548         (vqtbl2_s8): Likewise.
7549         (vqtbl2_u8): Likewise.
7550         (vqtbl2_p8): Likewise.
7551         (vqtbl2q_s8): Likewise.
7552         (vqtbl2q_u8): Likewise.
7553         (vqtbl2q_p8): Likewise.
7554         (vqtbl3_s8): Likewise.
7555         (vqtbl3_u8): Likewise.
7556         (vqtbl3_p8): Likewise.
7557         (vqtbl3q_s8): Likewise.
7558         (vqtbl3q_u8): Likewise.
7559         (vqtbl3q_p8): Likewise.
7560         (vqtbl4_s8): Likewise.
7561         (vqtbl4_u8): Likewise.
7562         (vqtbl4_p8): Likewise.
7563         (vqtbl4q_s8): Likewise.
7564         (vqtbl4q_u8): Likewise.
7565         (vqtbl4q_p8): Likewise.
7566         (vqtbx2_s8): Likewise.
7567         (vqtbx2_u8): Likewise.
7568         (vqtbx2_p8): Likewise.
7569         (vqtbx2q_s8): Likewise.
7570         (vqtbx2q_u8): Likewise.
7571         (vqtbx2q_p8): Likewise.
7572         (vqtbx3_s8): Likewise.
7573         (vqtbx3_u8): Likewise.
7574         (vqtbx3_p8): Likewise.
7575         (vqtbx3q_s8): Likewise.
7576         (vqtbx3q_u8): Likewise.
7577         (vqtbx3q_p8): Likewise.
7578         (vqtbx4_s8): Likewise.
7579         (vqtbx4_u8): Likewise.
7580         (vqtbx4_p8): Likewise.
7581         (vqtbx4q_s8): Likewise.
7582         (vqtbx4q_u8): Likewise.
7583         (vqtbx4q_p8): Likewise.
7584         (vrev16_p8): Likewise.
7585         (vrev16_s8): Likewise.
7586         (vrev16_u8): Likewise.
7587         (vrev16q_p8): Likewise.
7588         (vrev16q_s8): Likewise.
7589         (vrev16q_u8): Likewise.
7590         (vrev32_p8): Likewise.
7591         (vrev32_p16): Likewise.
7592         (vrev32_s8): Likewise.
7593         (vrev32_s16): Likewise.
7594         (vrev32_u8): Likewise.
7595         (vrev32_u16): Likewise.
7596         (vrev32q_p8): Likewise.
7597         (vrev32q_p16): Likewise.
7598         (vrev32q_s8): Likewise.
7599         (vrev32q_s16): Likewise.
7600         (vrev32q_u8): Likewise.
7601         (vrev32q_u16): Likewise.
7602         (vrev64_f32): Likewise.
7603         (vrev64_p8): Likewise.
7604         (vrev64_p16): Likewise.
7605         (vrev64_s8): Likewise.
7606         (vrev64_s16): Likewise.
7607         (vrev64_s32): Likewise.
7608         (vrev64_u8): Likewise.
7609         (vrev64_u16): Likewise.
7610         (vrev64_u32): Likewise.
7611         (vrev64q_f32): Likewise.
7612         (vrev64q_p8): Likewise.
7613         (vrev64q_p16): Likewise.
7614         (vrev64q_s8): Likewise.
7615         (vrev64q_s16): Likewise.
7616         (vrev64q_s32): Likewise.
7617         (vrev64q_u8): Likewise.
7618         (vrev64q_u16): Likewise.
7619         (vrev64q_u32): Likewise.
7620         (vsha1cq_u32): Likewise.
7621         (vsha1mq_u32): Likewise.
7622         (vsha1pq_u32): Likewise.
7623         (vsha1h_u32): Likewise.
7624         (vsha1su0q_u32): Likewise.
7625         (vsha1su1q_u32): Likewise.
7626         (vsha256hq_u32): Likewise.
7627         (vsha256h2q_u32): Likewise.
7628         (vsha256su0q_u32): Likewise.
7629         (vsha256su1q_u32): Likewise.
7630         (vmull_p64): Likewise.
7631         (vmull_high_p64): Likewise.
7632         (vsqrt_f32): Likewise.
7633         (vsqrtq_f32): Likewise.
7634         (vsqrt_f64): Likewise.
7635         (vsqrtq_f64): Likewise.
7636         (vst1_f32): Likewise.
7637         (vst1_f64): Likewise.
7638         (vst1_p8): Likewise.
7639         (vst1_p16): Likewise.
7640         (vst1_p64): Likewise.
7641         (vst1_s8): Likewise.
7642         (vst1_s16): Likewise.
7643         (vst1_s32): Likewise.
7644         (vst1_s64): Likewise.
7645         (vst1_u8): Likewise.
7646         (vst1_u16): Likewise.
7647         (vst1_u32): Likewise.
7648         (vst1_u64): Likewise.
7649         (vst1q_f32): Likewise.
7650         (vst1q_f64): Likewise.
7651         (vst1q_p8): Likewise.
7652         (vst1q_p16): Likewise.
7653         (vst1q_p64): Likewise.
7654         (vst1q_s8): Likewise.
7655         (vst1q_s16): Likewise.
7656         (vst1q_s32): Likewise.
7657         (vst1q_s64): Likewise.
7658         (vst1q_u8): Likewise.
7659         (vst1q_u16): Likewise.
7660         (vst1q_u32): Likewise.
7661         (vst1q_u64): Likewise.
7662         (vst1_s64_x2): Likewise.
7663         (vst1_u64_x2): Likewise.
7664         (vst1_f64_x2): Likewise.
7665         (vst1_s8_x2): Likewise.
7666         (vst1_p8_x2): Likewise.
7667         (vst1_s16_x2): Likewise.
7668         (vst1_p16_x2): Likewise.
7669         (vst1_s32_x2): Likewise.
7670         (vst1_u8_x2): Likewise.
7671         (vst1_u16_x2): Likewise.
7672         (vst1_u32_x2): Likewise.
7673         (vst1_f16_x2): Likewise.
7674         (vst1_f32_x2): Likewise.
7675         (vst1_p64_x2): Likewise.
7676         (vst1q_s8_x2): Likewise.
7677         (vst1q_p8_x2): Likewise.
7678         (vst1q_s16_x2): Likewise.
7679         (vst1q_p16_x2): Likewise.
7680         (vst1q_s32_x2): Likewise.
7681         (vst1q_s64_x2): Likewise.
7682         (vst1q_u8_x2): Likewise.
7683         (vst1q_u16_x2): Likewise.
7684         (vst1q_u32_x2): Likewise.
7685         (vst1q_u64_x2): Likewise.
7686         (vst1q_f16_x2): Likewise.
7687         (vst1q_f32_x2): Likewise.
7688         (vst1q_f64_x2): Likewise.
7689         (vst1q_p64_x2): Likewise.
7690         (vst1_s64_x3): Likewise.
7691         (vst1_u64_x3): Likewise.
7692         (vst1_f64_x3): Likewise.
7693         (vst1_s8_x3): Likewise.
7694         (vst1_p8_x3): Likewise.
7695         (vst1_s16_x3): Likewise.
7696         (vst1_p16_x3): Likewise.
7697         (vst1_s32_x3): Likewise.
7698         (vst1_u8_x3): Likewise.
7699         (vst1_u16_x3): Likewise.
7700         (vst1_u32_x3): Likewise.
7701         (vst1_f16_x3): Likewise.
7702         (vst1_f32_x3): Likewise.
7703         (vst1_p64_x3): Likewise.
7704         (vst1q_s8_x3): Likewise.
7705         (vst1q_p8_x3): Likewise.
7706         (vst1q_s16_x3): Likewise.
7707         (vst1q_p16_x3): Likewise.
7708         (vst1q_s32_x3): Likewise.
7709         (vst1q_s64_x3): Likewise.
7710         (vst1q_u8_x3): Likewise.
7711         (vst1q_u16_x3): Likewise.
7712         (vst1q_u32_x3): Likewise.
7713         (vst1q_u64_x3): Likewise.
7714         (vst1q_f16_x3): Likewise.
7715         (vst1q_f32_x3): Likewise.
7716         (vst1q_f64_x3): Likewise.
7717         (vst1q_p64_x3): Likewise.
7718         (vst2_s64): Likewise.
7719         (vst2_u64): Likewise.
7720         (vst2_f64): Likewise.
7721         (vst2_s8): Likewise.
7722         (vst2_p8): Likewise.
7723         (vst2_s16): Likewise.
7724         (vst2_p16): Likewise.
7725         (vst2_s32): Likewise.
7726         (vst2_u8): Likewise.
7727         (vst2_u16): Likewise.
7728         (vst2_u32): Likewise.
7729         (vst2_f16): Likewise.
7730         (vst2_f32): Likewise.
7731         (vst2_p64): Likewise.
7732         (vst2q_s8): Likewise.
7733         (vst2q_p8): Likewise.
7734         (vst2q_s16): Likewise.
7735         (vst2q_p16): Likewise.
7736         (vst2q_s32): Likewise.
7737         (vst2q_s64): Likewise.
7738         (vst2q_u8): Likewise.
7739         (vst2q_u16): Likewise.
7740         (vst2q_u32): Likewise.
7741         (vst2q_u64): Likewise.
7742         (vst2q_f16): Likewise.
7743         (vst2q_f32): Likewise.
7744         (vst2q_f64): Likewise.
7745         (vst2q_p64): Likewise.
7746         (vst3_s64): Likewise.
7747         (vst3_u64): Likewise.
7748         (vst3_f64): Likewise.
7749         (vst3_s8): Likewise.
7750         (vst3_p8): Likewise.
7751         (vst3_s16): Likewise.
7752         (vst3_p16): Likewise.
7753         (vst3_s32): Likewise.
7754         (vst3_u8): Likewise.
7755         (vst3_u16): Likewise.
7756         (vst3_u32): Likewise.
7757         (vst3_f16): Likewise.
7758         (vst3_f32): Likewise.
7759         (vst3_p64): Likewise.
7760         (vst3q_s8): Likewise.
7761         (vst3q_p8): Likewise.
7762         (vst3q_s16): Likewise.
7763         (vst3q_p16): Likewise.
7764         (vst3q_s32): Likewise.
7765         (vst3q_s64): Likewise.
7766         (vst3q_u8): Likewise.
7767         (vst3q_u16): Likewise.
7768         (vst3q_u32): Likewise.
7769         (vst3q_u64): Likewise.
7770         (vst3q_f16): Likewise.
7771         (vst3q_f32): Likewise.
7772         (vst3q_f64): Likewise.
7773         (vst3q_p64): Likewise.
7774         (vst4_s64): Likewise.
7775         (vst4_u64): Likewise.
7776         (vst4_f64): Likewise.
7777         (vst4_s8): Likewise.
7778         (vst4_p8): Likewise.
7779         (vst4_s16): Likewise.
7780         (vst4_p16): Likewise.
7781         (vst4_s32): Likewise.
7782         (vst4_u8): Likewise.
7783         (vst4_u16): Likewise.
7784         (vst4_u32): Likewise.
7785         (vst4_f16): Likewise.
7786         (vst4_f32): Likewise.
7787         (vst4_p64): Likewise.
7788         (vst4q_s8): Likewise.
7789         (vst4q_p8): Likewise.
7790         (vst4q_s16): Likewise.
7791         (vst4q_p16): Likewise.
7792         (vst4q_s32): Likewise.
7793         (vst4q_s64): Likewise.
7794         (vst4q_u8): Likewise.
7795         (vst4q_u16): Likewise.
7796         (vst4q_u32): Likewise.
7797         (vst4q_u64): Likewise.
7798         (vst4q_f16): Likewise.
7799         (vst4q_f32): Likewise.
7800         (vst4q_f64): Likewise.
7801         (vst4q_p64): Likewise.
7802         (vtbx4_s8): Likewise.
7803         (vtbx4_u8): Likewise.
7804         (vtbx4_p8): Likewise.
7805         (vtrn_f32): Likewise.
7806         (vtrn_p8): Likewise.
7807         (vtrn_p16): Likewise.
7808         (vtrn_s8): Likewise.
7809         (vtrn_s16): Likewise.
7810         (vtrn_s32): Likewise.
7811         (vtrn_u8): Likewise.
7812         (vtrn_u16): Likewise.
7813         (vtrn_u32): Likewise.
7814         (vtrnq_f32): Likewise.
7815         (vtrnq_p8): Likewise.
7816         (vtrnq_p16): Likewise.
7817         (vtrnq_s8): Likewise.
7818         (vtrnq_s16): Likewise.
7819         (vtrnq_s32): Likewise.
7820         (vtrnq_u8): Likewise.
7821         (vtrnq_u16): Likewise.
7822         (vtrnq_u32): Likewise.
7823         (vrsqrte_f16): Likewise.
7824         (vrsqrteq_f16): Likewise.
7825         (vsqrt_f16): Likewise.
7826         (vsqrtq_f16): Likewise.
7827         (vabd_f16): Likewise.
7828         (vabdq_f16): Likewise.
7829         (vpadd_f16): Likewise.
7830         (vpaddq_f16): Likewise.
7831         (vpmax_f16): Likewise.
7832         (vpmaxq_f16): Likewise.
7833         (vpmaxnm_f16): Likewise.
7834         (vpmaxnmq_f16): Likewise.
7835         (vpmin_f16): Likewise.
7836         (vpminq_f16): Likewise.
7837         (vpminnm_f16): Likewise.
7838         (vpminnmq_f16): Likewise.
7839         (vrsqrts_f16): Likewise.
7840         (vrsqrtsq_f16): Likewise.
7842 2019-09-25  Richard Biener  <rguenther@suse.de>
7844         PR tree-optimization/91896
7845         * tree-vect-loop.c (vectorizable_reduction): The single
7846         def-use cycle optimization cannot apply when there's more
7847         than one pattern stmt involved.
7849 2019-09-24  Iain Sandoe  <iain@sandoe.co.uk>
7851         * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
7852         the 'P' mode iterator, replacing the (removed) SI and DI variants.
7853         (reload_macho_picbase_<mode>): Likewise.
7855 2019-09-24  Iain Sandoe  <iain@sandoe.co.uk>
7857         * config/rs6000/rs6000.md: Move darwin.md include until
7858         after the definition of the mode iterators.
7860 2019-09-23  Martin Sebor  <msebor@redhat.com>
7862         PR tree-optimization/91570
7863         * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
7864         non-constant minlen, maxlen and maxbound.
7866 2019-09-24  Richard Biener  <rguenther@suse.de>
7868         * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
7869         Rename to...
7870         (_stmt_vec_info::cond_reduc_code): ... this.
7871         (_stmt_vec_info::induc_cond_initial_val): Add.
7872         (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
7873         (STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
7874         (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
7875         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
7876         * tree-vect-loop.c (get_initial_def_for_reduction): Pass in
7877         the reduction code.
7878         (vect_create_epilog_for_reduction): Drop special
7879         induction condition reduction params, pass in reduction code
7880         and simplify.
7881         (vectorizable_reduction): Perform condition reduction kind
7882         selection only at analysis time.  Adjust passing on state.
7884 2019-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7886         * config/aarch64/aarch64.md (mov<mode>): Don't call
7887         aarch64_split_dimode_const_store on volatile MEM.
7889 2019-09-24  Stamatis Markianos-Wright  <stam.markianos-wright@arm.com>
7891         * config/aarch64/aarch64-option-extensions.def (fp16fml):
7892         Update hwcap string for fp16fml.
7894 2019-09-24  Jakub Jelinek  <jakub@redhat.com>
7896         PR middle-end/91866
7897         * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
7898         (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
7900 2019-09-24  Martin Liska  <mliska@suse.cz>
7902         * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
7903         instead of if-elseif-elseif-...
7904         * gimple-expr.c (extract_ops_from_tree): Likewise.
7905         * gimple.c (get_gimple_rhs_num_ops): Likewise.
7906         * tree-ssa-forwprop.c (rhs_to_tree): Likewise.
7908 2019-09-24  Martin Jambor  <mjambor@suse.cz>
7910         PR ipa/91831
7911         * ipa-param-manipulation.c (carry_over_param): Make a method of
7912         ipa_param_body_adjustments, remove now unnecessary argument.  Also copy
7913         in case of a context mismatch.
7914         (ipa_param_body_adjustments::common_initialization): Adjust call to
7915         carry_over_param.
7916         * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add
7917         private method carry_over_param.
7919 2019-09-24  Martin Jambor  <mjambor@suse.cz>
7921         PR ipa/91832
7922         * ipa-sra.c (scan_expr_access): Check that offset is non-negative.
7924 2019-09-24  Richard Biener  <rguenther@suse.de>
7926         * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF
7927         base.
7929 2019-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7931         * config/arm/t-arm (arm-builtins.o): Add dependency on
7932         arm_acle_builtins.def.
7934 2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>
7936         PR target/91823
7937         * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate
7938         canonical CONST_INTs.  Use gen_rtvec.
7940 2019-09-23  Richard Biener  <rguenther@suse.de>
7942         * tree-vect-loop.c (get_initial_def_for_reduction): Simplify,
7943         avoid adjusting by + 0 or * 1.
7944         (vect_create_epilog_for_reduction): Get reduction code only
7945         when necessary.  Deal with adjustment_def only when necessary.
7947 2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>
7949         * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
7950         memmodel index.
7952 2019-09-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7954         PR ipa/91835
7955         * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of
7956         "ipa-sra".
7958 2019-09-22  Iain Sandoe  <iain@sandoe.co.uk>
7960         * config/rs6000/rs6000.c (machopic_output_stub): Remove dead
7961         code.  Merge code blocks with common conditionals. Use declared
7962         macro instead of a magic number for PIC level.
7964 2019-09-21  Martin Sebor  <msebor@redhat.com>
7966         PR middle-end/91830
7967         * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
7968         Simplify computation of the offset of the referenced subobject.
7970 2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>
7972         * config/darwin.c (machopic_legitimize_pic_address): Check
7973         for lra not reload.
7975 2019-09-21  Richard Sandiford  <richard.sandiford@arm.com>
7977         * ira-conflicts.c (can_use_same_reg_p): New function.
7978         (process_reg_shuffles): Take an insn parameter.  Ignore cases
7979         in which input operand op_num could seemingly never be allocated
7980         to the same register as the destination.
7981         (add_insn_allocno_copies): Update call to process_reg_shuffles.
7983 2019-09-21  Richard Sandiford  <richard.sandiford@arm.com>
7985         * simplify-rtx.c (neg_const_int): Replace with...
7986         (neg_poly_int_rtx): ...this new function.
7987         (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C)
7988         to all CONST_SCALAR_INTs and to CONST_POLY_INT.
7989         (simplify_plus_minus): Likewise for constant terms here.
7991 2019-09-20  Jonas Pfeil  <jonas.pfeil@uli-ulm.de>
7993         * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use
7994         HOST_WIDE_PRINT_UNSIGNED.
7996 2019-09-20  John David Anglin  <danglin@gcc.gnu.org>
7998         * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
7999         character.
8001 2019-09-20  Maya Rashish  <coypu@sdf.org>
8003         PR target/86811
8004         * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
8005         Define to speculation_safe_value_not_needed.
8007 2019-09-20  Richard Biener  <rguenther@suse.de>
8008             Uros Bizjak  <ubizjak@gmail.com>
8010         PR target/91814
8011         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
8012         previous change.
8013         (general_scalar_chain::convert_op): Force not suitable memory
8014         operands to a register.
8016 2019-09-20  Richard Biener  <rguenther@suse.de>
8018         PR tree-optimization/91821
8019         * tree-vect-loop.c (check_reduction_path): Check we can compute
8020         reduc_idx.
8021         (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX.
8022         * tree-vect-patterns.c (vect_reassociating_reduction_p): Return
8023         operands in canonical order.
8024         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
8025         STMT_VINFO_REDUC_IDX.
8026         * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New.
8027         (STMT_VINFO_REDUC_IDX): Likewise.
8029 2019-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8031         PR target/91269
8032         * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
8034 2019-09-20  Richard Biener  <rguenther@suse.de>
8036         PR tree-optimization/91822
8037         * tree-vectorizer.h (vectorizable_condition): Restore for_reduction
8038         parameter.
8039         * tree-vect-loop.c (vectorizable_reduction): Adjust asserts
8040         for reduc_index in nested cycles, adjust vectorizable_condition
8041         calls.
8042         * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction
8043         parameter.
8044         (vect_analyze_stmt): Adjust.
8045         (vect_transform_stmt): Likewise.
8047 2019-09-20  Richard Biener  <rguenther@suse.de>
8049         PR target/91767
8050         * config/i386/i386-features.c (general_scalar_chain::convert_registers):
8051         Ensure there's a sequence point between allocating the new register
8052         and passing a reference to a reg via regno_reg_rtx.
8054 2019-09-20  Martin Jambor  <mjambor@suse.cz>
8056         * coretypes.h (cgraph_edge): Declare.
8057         * ipa-param-manipulation.c: Rewrite.
8058         * ipa-param-manipulation.h: Likewise.
8059         * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c.
8060         (OBJS): Added ipa-sra.o.
8061         * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p
8062         and ref_p, added fields param_adjustments and performed_splits.
8063         (struct cgraph_clone_info): Remove ags_to_skip and
8064         combined_args_to_skip, new field param_adjustments.
8065         (cgraph_node::create_clone): Changed parameters to use
8066         ipa_param_adjustments.
8067         (cgraph_node::create_virtual_clone): Likewise.
8068         (cgraph_node::create_virtual_clone_with_body): Likewise.
8069         (tree_function_versioning): Likewise.
8070         (cgraph_build_function_type_skip_args): Removed.
8071         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to
8072         using ipa_param_adjustments.
8073         (clone_of_p): Likewise.
8074         * cgraphclones.c (cgraph_build_function_type_skip_args): Removed.
8075         (build_function_decl_skip_args): Likewise.
8076         (duplicate_thunk_for_node): Adjust parameters using
8077         ipa_param_body_adjustments, copy param_adjustments instead of
8078         args_to_skip.
8079         (cgraph_node::create_clone): Convert to using ipa_param_adjustments.
8080         (cgraph_node::create_virtual_clone): Likewise.
8081         (cgraph_node::create_version_clone_with_body): Likewise.
8082         (cgraph_materialize_clone): Likewise.
8083         (symbol_table::materialize_all_clones): Likewise.
8084         * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify
8085         ipa_replace_map check.
8086         * ipa-cp.c (get_replacement_map): Do not initialize removed fields.
8087         (initialize_node_lattices): Make aware that some parameters might have
8088         already been removed.
8089         (want_remove_some_param_p): New function.
8090         (create_specialized_node): Convert to using ipa_param_adjustments and
8091         deal with possibly pre-existing adjustments.
8092         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.
8093         (output_node_opt_summary): Do not stream removed fields.  Stream
8094         parameter adjustments instead of argumetns to skip.
8095         (input_node_opt_summary): Likewise.
8096         (input_node_opt_summary): Likewise.
8097         * lto-section-in.c (lto_section_name): Added ipa-sra section.
8098         * lto-streamer.h (lto_section_type): Likewise.
8099         * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and
8100         param_body_adjs.
8101         (copy_decl_to_var): Declare.
8102         * tree-inline.c (update_clone_info): Do not remap old_tree.
8103         (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple
8104         statements, walk all extra generated statements and remap their
8105         operands.
8106         (redirect_all_calls): Add killed SSA names to a hash set.
8107         (remap_ssa_name): Do not remap killed SSA names.
8108         (copy_arguments_for_versioning): Renames to copy_arguments_nochange,
8109         half of functionality moved to ipa_param_body_adjustments.
8110         (copy_decl_to_var): Make exported.
8111         (copy_body): Destroy killed_new_ssa_names hash set.
8112         (expand_call_inline): Remap performed splits.
8113         (update_clone_info): Likewise.
8114         (tree_function_versioning): Simplify tree_map processing.  Updated to
8115         accept ipa_param_adjustments and use ipa_param_body_adjustments.
8116         * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust
8117         for the new interface.
8118         (simd_clone_clauses_extract): Likewise, make args an auto_vec.
8119         (simd_clone_compute_base_data_type): Likewise.
8120         (simd_clone_init_simd_arrays): Adjust for the new interface.
8121         (simd_clone_adjust_argument_types): Likewise.
8122         (struct modify_stmt_info): Likewise.
8123         (ipa_simd_modify_stmt_ops): Likewise.
8124         (ipa_simd_modify_function_body): Likewise.
8125         (simd_clone_adjust): Likewise.
8126         * tree-sra.c: Removed IPA-SRA.  Include tree-sra.h.
8127         (type_internals_preclude_sra_p): Make public.
8128         * tree-sra.h: New file.
8129         * ipa-inline-transform.c (save_inline_function_body): Update to
8130         refelct new tree_function_versioning signature.
8131         * ipa-prop.c (adjust_agg_replacement_values): Use a helper from
8132         ipa_param_adjustments to get current parameter indices.
8133         (ipcp_modif_dom_walker::before_dom_children): Likewise.
8134         (ipcp_update_bits): Likewise.
8135         (ipcp_update_vr): Likewise.
8136         * ipa-split.c (split_function): Convert to using ipa_param_adjustments.
8137         * ipa-sra.c: New file.
8138         * multiple_target.c (create_target_clone): Update to reflet new type
8139         of create_version_clone_with_body.
8140         * trans-mem.c (ipa_tm_create_version): Update to reflect new type of
8141         tree_function_versioning.
8142         (modify_function): Update to reflect new type of
8143         tree_function_versioning.
8144         * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New.
8145         * passes.def: Remove old IPA-SRA and add new one.
8146         * tree-pass.h (make_pass_early_ipa_sra): Remove declaration.
8147         (make_pass_ipa_sra): Declare.
8148         * dbgcnt.def: Remove eipa_sra.  Added ipa_sra_params and
8149         ipa_sra_retvalues.
8150         * doc/invoke.texi (ipa-sra-max-replacements): New.
8152 2019-09-19  Martin Sebor  <msebor@redhat.com>
8154         PR middle-end/91631
8155         * builtins.c (component_size): Correct trailing array computation,
8156         rename to component_ref_size and move...
8157         (compute_objsize): Adjust.
8158         * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member.
8159         (builtin_access::strict): Do not consider memmove.
8160         (builtin_access::write_off): New function.
8161         (builtin_memref::builtin_memref): Initialize refsize.
8162         (builtin_memref::set_base_and_offset): Adjust refoff and compute
8163         refsize.
8164         (builtin_memref::offset_out_of_bounds): Use ooboff input values.
8165         Handle refsize.
8166         (builtin_access::builtin_access): Initialize dstoff to destination
8167         refeence offset here instead of in maybe_diag_overlap.  Adjust
8168         referencess even to unrelated objects.  Adjust sizrange of bounded
8169         string functions to reflect bound.  For strcat, adjust destination
8170         sizrange by that of source.
8171         (builtin_access::strcat_overlap):  Adjust offsets and sizes
8172         to reflect the increase in destination sizrange above.
8173         (builtin_access::overlap): Do not set dstoff here but instead
8174         in builtin_access::builtin_access.
8175         (check_bounds_or_overlap): Use builtin_access::write_off.
8176         (maybe_diag_access_bounds): Add argument.  Add informational notes.
8177         (dump_builtin_memref, dump_builtin_access): New functions.
8178         * tree.c (component_ref_size): ...to here.
8179         * tree.h (component_ref_size): Declare.
8180         * tree-ssa-strlen (handle_builtin_strcat): Include the terminating
8181         nul in the size of the source string.
8183 2019-09-19  Lewis Hyatt  <lhyatt@gmail.com>
8185         PR c/67224
8186         * doc/cpp.texi: Document support for extended characters in
8187         identifiers.
8188         * doc/cppopts.texi: Likewise.
8190 2019-09-19  Richard Biener  <rguenther@suse.de>
8192         * tree-vect-loop.c (vect_is_slp_reduction): Remove.
8193         (check_reduction_path): New overload having the path as result.
8194         (vect_is_simple_reduction): From the detected reduction
8195         path build a SLP reduction chain if possible.
8197 2019-09-19  Richard Biener  <rguenther@suse.de>
8199         PR target/91814
8200         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
8201         Force operand to a register if it isn't nonimmediate_operand.
8203 2019-09-19  Wilco Dijkstra  <wdijkstr@arm.com>
8205         * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.
8206         * config/arm/iterators.md (optab): Add and, ior, xor entries.
8207         (logical_op): Remove code attribute.
8208         (logical_OP): Likewise.
8210 2019-09-19  Martin Liska  <mliska@suse.cz>
8212         * ipa-icf.c (sort_congruence_class_groups_by_decl_uid):
8213         Use proper casting.
8215 2019-09-19  Richard Henderson  <richard.henderson@linaro.org>
8217         * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
8218         registers with %R.
8220         * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
8221         for NE comparison of TImode values.
8222         (aarch64_emit_load_exclusive): Add support for TImode.
8223         (aarch64_emit_store_exclusive): Likewise.
8224         (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
8225         * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
8226         Change iterator from ALLI to ALLI_TI.
8227         (@atomic_compare_and_swap<JUST_TI>): New.
8228         (@atomic_compare_and_swap<JUST_TI>_lse): New.
8229         (aarch64_load_exclusive_pair): New.
8230         (aarch64_store_exclusive_pair): New.
8231         * config/aarch64/iterators.md (JUST_TI): New.
8233         * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
8234         strong_zero_p for aarch64_track_speculation; unify some code paths;
8235         use aarch64_gen_compare_reg instead of open-coding.
8237         * config/aarch64/aarch64.opt (-moutline-atomics): New.
8238         * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
8239         (aarch64_ool_cas_names, aarch64_ool_swp_names): New.
8240         (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
8241         (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
8242         (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
8243         * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
8244         (atomic_<atomic_op><ALLI>): Likewise.
8245         (atomic_fetch_<atomic_op><ALLI>): Likewise.
8246         (atomic_<atomic_op>_fetch<ALLI>): Likewise.
8247         * doc/invoke.texi: Document -moutline-atomics.
8249 2019-09-19  Feng Xue  <fxue@os.amperecomputing.com>
8251         * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute
8252         trivial predicate for condition branch.
8253         (set_switch_stmt_execution_predicate): Do not compute trivial predicate
8254         for switch case.
8255         (compute_bb_predicates): Update predicate based on post-dominating
8256         relationship.
8257         (analyze_function_body): Calculate post-dominating information.
8259 2019-09-19  Richard Sandiford  <richard.sandiford@arm.com>
8261         * tree-vectorizer.h (vectorizable_condition): Take an int
8262         reduction index instead of a boolean flag.
8263         * tree-vect-stmts.c (vectorizable_condition): Likewise.
8264         Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION
8265         reductions if the reduction accumulator is the "then" rather
8266         than the "else" value.
8267         (vect_analyze_stmt): Update call accordingly.
8268         (vect_transform_stmt): Likewise.
8269         * tree-vect-loop.c (vectorizable_reduction): Likewise,
8270         asserting that the index is > 0.
8272 2019-09-19  Martin Liska  <mliska@suse.cz>
8274         * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator.
8275         (sort_congruence_classes_by_decl_uid): Likewise.
8276         (sort_congruence_class_groups_by_decl_uid): Use std::pair for
8277         easier sorting.
8278         (sem_item_optimizer::merge_classes): Likewise.
8280 2019-09-19  Richard Biener  <rguenther@suse.de>
8282         PR tree-optimization/91812
8283         * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
8284         volatile loads.
8286 2019-09-19  Richard Sandiford  <richard.sandiford@arm.com>
8288         * defaults.h (TARGET_UNIT): New macro.
8289         (target_unit): New type.
8290         * rtl.h (native_encode_rtx, native_decode_rtx)
8291         (native_decode_vector_rtx, subreg_size_lsb): Declare.
8292         (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb.
8293         * rtlanal.c (subreg_lsb_1): Delete.
8294         (subreg_size_lsb): New function.
8295         * simplify-rtx.c: Include rtx-vector-builder.h
8296         (simplify_immed_subreg): Delete.
8297         (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx)
8298         (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New
8299         functions.
8300         (simplify_subreg): Use them.
8301         (test_vector_subregs_modes, test_vector_subregs_repeating)
8302         (test_vector_subregs_fore_back, test_vector_subregs_stepped)
8303         (test_vector_subregs): New functions.
8304         (test_vector_ops): Call test_vector_subregs for integer vector
8305         modes with at least 2 elements.
8307 2019-09-19  Richard Biener  <rguenther@suse.de>
8309         * tree-parloops.c (parloops_is_slp_reduction): Do not set
8310         LOOP_VINFO_OPERANDS_SWAPPED.
8311         (parloops_is_simple_reduction): Likewise.
8312         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not
8313         initialize operands_swapped.
8314         (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts.
8315         (vect_is_slp_reduction): Do not swap operands.
8316         * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove.
8317         (LOOP_VINFO_OPERANDS_SWAPPED): Likewise.
8319 2019-09-19  Hongtao Liu <hongtao.liu@intel.com>
8321         PR target/87007
8322         * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
8323         Add avx_partial_xmm_update.
8325 2019-09-18  Jim Wilson  <jimw@sifive.com>
8327         PR target/91683
8328         * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
8329         (riscv_move_integer): Likewise.
8330         * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
8331         riscv_move_integer arg.
8332         (riscv_legitimize_move): Likewise.
8333         (riscv_force_temporary): New parameter in_splitter.  Don't call
8334         force_reg if true.
8335         (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
8336         arg.
8337         (riscv_add_offset): Likewise.
8338         (riscv_split_symbol): New parameter in_splitter.  Pass to
8339         riscv_force_temporary.
8340         (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
8341         arg.
8342         (riscv_move_integer): New parameter in_splitter.  New local
8343         can_create_psuedo.  Don't call riscv_split_integer or force_reg when
8344         in_splitter TRUE.
8345         (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
8346         riscv_split_symbol, and riscv_force_temporary args.
8347         * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
8348         riscv_move_integer arg.
8349         (low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
8351 2019-09-18  H.J. Lu  <hongjiu.lu@intel.com>
8353         PR target/90878
8354         * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
8355         hard register store cost to 6.
8357 2019-09-18  H.J. Lu  <hongjiu.lu@intel.com>
8359         PR target/91446
8360         * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
8361         pseudo register store cost from 3 to 6 to make it the same as
8362         QImode and HImode.
8364 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
8366         PR target/91738
8367         * config/arm/arm.md (<logical_op>di3): Expand explicitly.
8368         (one_cmpldi2): Likewise.
8369         * config/arm/arm.c (const_ok_for_dimode_op): Return true if one
8370         of the constant parts is simple.
8371         * config/arm/iterators.md (LOGICAL): Add new code iterator.
8372         (logical_op): Add new code attribute.
8373         (logical_OP): Likewise.
8374         * config/arm/predicates.md (arm_anddi_operand): Add predicate.
8375         (arm_iordi_operand): Add predicate.
8376         (arm_xordi_operand): Add predicate.
8378 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
8380         * config/arm/arm.md (maddsidi4): Remove expander.
8381         (mulsidi3adddi): Remove pattern.
8382         (mulsidi3adddi_v6): Likewise.
8383         (mulsidi3_nov6): Likewise.
8384         (mulsidi3_v6): Likewise.
8385         (umulsidi3): Remove expander.
8386         (umulsidi3_nov6): Remove pattern.
8387         (umulsidi3_v6): Likewise.
8388         (umulsidi3adddi): Likewise.
8389         (umulsidi3adddi_v6): Likewise.
8390         (<Us>mulsidi3): Add combined expander.
8391         (<Us>maddsidi4): Likewise.
8392         (<US>mull): Add combined umull and smull pattern.
8393         (<US>mlal): Likewise.
8394         * config/arm/iterators.md (Us): Add new iterator.
8396 2019-09-18  Richard Biener  <rguenther@suse.de>
8398         * tree-vect-loop.c (vect_is_simple_reduction): Remove operand
8399         swapping.
8400         (vectorize_fold_left_reduction): Remove assert.
8401         (vectorizable_reduction): Also expect COND_EXPR non-reduction
8402         operand in position 2.  Remove assert.
8404 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
8406         * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators.
8407         (smulsi3_highpart_nov6): Remove pattern.
8408         (smulsi3_highpart_v6): Likewise.
8409         (umulsi3_highpart): Likewise.
8410         (umulsi3_highpart_nov6): Likewise.
8411         (umulsi3_highpart_v6): Likewise.
8412         (<US>mull_high): Add new combined multiply pattern.
8414 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
8416         * config/arm/arm.md (arm_mulsi3): Remove pattern.
8417         (arm_mulsi3_v6): Likewise.
8418         (mulsi3addsi_v6): Likewise.
8419         (mulsi3subsi): Likewise.
8420         (mul): Add new multiply pattern.
8421         (mla): Likewise.
8422         (mls): Likewise.
8424 2019-09-18  Richard Biener  <rguenther@suse.de>
8426         * tree-parloops.c (report_ploop_op): Copy from report_vect_op.
8427         (parloops_valid_reduction_input_p): Copy from
8428         valid_reduction_input_p.
8429         (parloops_is_slp_reduction): Copy from vect_is_slp_reduction.
8430         (parloops_needs_fold_left_reduction_p): Copy from
8431         needs_fold_left_reduction_p.
8432         (parloops_is_simple_reduction): Copy from
8433         vect_is_simple_reduction.
8434         (parloops_force_simple_reduction): Copy from
8435         vect_force_simple_reduction.
8436         (gather_scalar_reductions): Adjust.
8437         * tree-vect-loop.c (vect_force_simple_reduction): Make static.
8438         * tree-vectorizer.h (vect_force_simple_reduction): Remove.
8440 2019-09-18  Richard Biener  <rguenther@suse.de>
8442         * tree-vectorizer.h (get_initial_def_for_reduction): Remove.
8443         * tree-vect-loop.c (get_initial_def_for_reduction): Make
8444         static.
8445         (vect_create_epilog_for_reduction): Remove dead code.
8447 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
8449         * varasm.c (assemble_real): Generate canonical const_ints.
8451 2019-09-18  Richard Biener  <rguenther@suse.de>
8453         PR lto/91763
8454         * lto-streamer-in.c (input_eh_regions): Move EH init to
8455         lto_materialize_function.
8456         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
8457         Likewise.
8459 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
8461         * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs
8462         are INTEGER_CSTs.
8464 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
8466         * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
8467         of checking specifically for INTEGER_CST.
8469 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
8471         * stor-layout.c (compute_record_mode): Operate on poly_uint64
8472         sizes instead of uhwi sizes.
8474 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
8476         * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST.
8477         (add_const_value_attribute): Handle CONST_POLY_INT.
8479 2019-09-18  Martin Liska  <mliska@suse.cz>
8481         * dbgcnt.def (store_merging): New counter.
8482         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores):
8483         Use it in store merging.
8485 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
8487         * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New
8488         function.
8489         (TARGET_SCHED_VARIABLE_ISSUE): New macro.
8490         * config/arm/arm.c (arm_sched_variable_issue): New function.
8491         (TARGET_SCHED_VARIABLE_ISSUE): New macro.
8493 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
8495         * config/arm/types.md (no_reservation): New reservation.
8496         * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle
8497         no_insn here.
8498         * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise.
8499         * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise.
8500         * config/aarch64/tsv110.md (tsv110_alu): Likewise.
8501         * config/arm/arm1020e.md (1020alu_op): Likewise.
8502         * config/arm/arm1026ejs.md (alu_op): Likewise.
8503         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
8504         * config/arm/arm926ejs.md (9_alu_op): Likewise.
8505         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
8506         * config/arm/cortex-a17.md (cortex_a17_alu): Likewise.
8507         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
8508         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
8509         * config/arm/cortex-a57.md (cortex_a57_alu): Likewise.
8510         * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise.
8511         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
8512         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
8513         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
8514         * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise.
8515         * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise.
8516         * config/arm/fa526.md (526_alu_op): Likewise.
8517         * config/arm/fa606te.md (606te_alu_op): Likewise.
8518         * config/arm/fa626te.md (626te_alu_op): Likewise.
8519         * config/arm/fa726te.md (726te_alu_op): Likewise.
8520         * config/arm/xgene1.md (xgene1_nop): Likewise.
8522 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
8524         * config/arm/thumb1.md (*thumb1_tablejump): Change type from
8525         "no_insn" to "branch".
8527 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
8529         * array-traits.h (array_traits<T[N]>::size): Remove parameter name.
8531 2019-09-17  Richard Biener  <rguenther@suse.de>
8533         PR debug/91772
8534         * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
8535         was missing generate locations only once.
8537 2019-09-17  Feng Xue  <fxue@os.amperecomputing.com>
8539         PR ipa/91089
8540         * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new
8541         option.
8542         * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New.
8543         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate
8544         for switch default case using range analysis information.
8546 2019-09-17  Christophe Lyon  <christophe.lyon@linaro.org>
8548         PR target/91749
8549         * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the
8550         mode attributed is supported by FDPIC.
8552 2019-09-17  Richard Biener  <rguenther@suse.de>
8554         PR tree-optimization/91790
8555         * tree-vect-stmts.c (vectorizable_load): For BB vectorization
8556         use the correct DR for setting up realignment.
8558 2019-09-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8560         PR target/91719
8561         * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro.
8562         * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New.
8563         * config/i386/sync.md (atomic_store<mode>): emit XCHG for
8564         TARGET_USE_XCHG_FOR_ATOMIC_STORE.
8566 2019-09-16  Jason Merrill  <jason@redhat.com>
8568         * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H).
8570 2019-09-16  Martin Liska  <mliska@suse.cz>
8572         * gimple-fold.c (or_comparisons_1): Remove rules moved
8573         to ...
8574         * match.pd: ... here.
8576 2019-09-16  Martin Liska  <mliska@suse.cz>
8578         * gimple-fold.c (or_comparisons_1): Remove rules
8579         moved to ...
8580         * match.pd: ... here.
8582 2019-09-16  Martin Liska  <mliska@suse.cz>
8584         * genmatch.c (dt_node::append_simplify): Do not print
8585         warning when we have duplicate patterns belonging
8586         to a same simplify rule.
8587         * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd.
8588         (maybe_fold_comparisons_from_match_pd): Handle
8589         tcc_comparison as a results.
8590         * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions.
8592 2019-09-16  Li Jia He  <helijia@linux.ibm.com>
8593             Qi Feng  <ffengqi@linux.ibm.com>
8595         PR middle-end/88784
8596         * match.pd (x >  y  &&  x != XXX_MIN): Optimize into 'x > y'.
8597         (x >  y  &&  x == XXX_MIN): Optimize into 'false'.
8598         (x <= y  &&  x == XXX_MIN): Optimize into 'x == XXX_MIN'.
8599         (x <  y  &&  x != XXX_MAX): Optimize into 'x < y'.
8600         (x <  y  &&  x == XXX_MAX): Optimize into 'false'.
8601         (x >= y  &&  x == XXX_MAX): Optimize into 'x == XXX_MAX'.
8602         (x >  y  ||  x != XXX_MIN): Optimize into 'x != XXX_MIN'.
8603         (x <= y  ||  x != XXX_MIN): Optimize into 'true'.
8604         (x <= y  ||  x == XXX_MIN): Optimize into 'x <= y'.
8605         (x <  y  ||  x != XXX_MAX): Optimize into 'x != XXX_MAX'.
8606         (x >= y  ||  x != XXX_MAX): Optimize into 'true'.
8607         (x >= y  ||  x == XXX_MAX): Optimize into 'x >= y'.
8609 2019-09-16  Li Jia He  <helijia@linux.ibm.com>
8610             Martin Liska  <mliska@suse.cz>
8612         * gimple-fold.c (and_comparisons_1): Add type as first
8613         argument.
8614         (and_var_with_comparison): Likewise.
8615         (and_var_with_comparison_1): Likewise.
8616         (or_comparisons_1): Likewise.
8617         (or_var_with_comparison): Likewise.
8618         (or_var_with_comparison_1): Likewise.
8619         (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd.
8620         (maybe_fold_or_comparisons): Likewise.
8621         (maybe_fold_comparisons_from_match_pd): New.
8622         * gimple-fold.h (maybe_fold_and_comparisons): Add type argument.
8623         (maybe_fold_or_comparisons): Likewise.
8624         * gimple.c (gimple_size): Make it public and add num_ops argument.
8625         (gimple_init): New function.
8626         (gimple_alloc): Call gimple_init.
8627         * gimple.h (gimple_size): New.
8628         (gimple_init): Likewise.
8629         * tree-if-conv.c (fold_or_predicates): Pass type.
8630         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
8631         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise.
8632         (optimize_vec_cond_expr): Likewise.
8633         (ovce_extract_ops): Return type of conditional expression.
8634         * tree-ssanames.c (init_ssa_name_imm_use): New.
8635         (make_ssa_name_fn): Use init_ssa_name_imm_use.
8636         * tree-ssanames.h (init_ssa_name_imm_use): New.
8638 2019-09-16  Richard Biener  <rguenther@suse.de>
8640         PR tree-optimization/91756
8641         PR tree-optimization/87132
8642         * tree-ssa-alias.h (enum translate_flags): New.
8643         (get_continuation_for_phi): Use it instead of simple bool flag.
8644         (walk_non_aliased_vuses): Likewise.
8645         * tree-ssa-alias.c (maybe_skip_until): Adjust.
8646         (get_continuation_for_phi): When looking across backedges only
8647         disallow valueization.
8648         (walk_non_aliased_vuses): Adjust.
8649         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization
8650         if requested.
8652 2019-09-14  Kewen Lin  <linkw@gcc.gnu.org>
8654         PR middle-end/80791
8655         * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
8656         (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
8657         (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
8658         * target.def (have_count_reg_decr_p): New hook.
8659         (doloop_cost_for_generic): Likewise.
8660         (doloop_cost_for_address): Likewise.
8661         * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
8662         (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
8663         (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
8664         * doc/tm.texi: Regenerate.
8665         * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
8666         addend.
8667         (record_group): Init doloop_p.
8668         (add_candidate_1): Add optional argument doloop, change the handlings
8669         accordingly.
8670         (add_candidate): Likewise.
8671         (generic_predict_doloop_p): Update attribute.
8672         (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
8673         LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
8674         UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
8675         MIN_EXPR.
8676         (get_computation_cost): Update for doloop IV cand extra cost.
8677         (determine_group_iv_cost_cond): Update for doloop IV cand.
8678         (determine_iv_cost): Likewise.
8679         (ivopts_estimate_reg_pressure): Likewise.
8680         (may_eliminate_iv): Update handlings for doloop IV cand.
8681         (add_iv_candidate_for_doloop): New function.
8682         (find_iv_candidates): Call function add_iv_candidate_for_doloop.
8683         (iv_ca_set_no_cp): Update for doloop IV cand.
8684         (iv_ca_set_cp): Likewise.
8685         (iv_ca_dump): Dump register cost.
8686         (find_doloop_use): New function.
8687         (analyze_and_mark_doloop_use): Likewise.
8688         (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
8690 2019-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8692         PR middle-end/91708
8693         * cse.c (cse_insn): Do not replace anything with a
8694         MEM.
8696 2019-09-13  Ian Lance Taylor  <iant@golang.org>
8698         * doc/invoke.texi (Optimize Options): Fix typo.
8700 2019-09-12  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8702         PR tree-optimization/89386
8703         * config/i386/sse.md (smulhrs<mode>3): New expander.
8704         (smulhrsv4hi3): Ditto.
8706 2019-09-12  Richard Biener  <rguenther@suse.de>
8708         PR tree-optimization/91750
8709         * tree-vect-loop.c (vectorizable_induction): Compute IV increments
8710         in the type of the evolution.
8712 2019-09-12  Yuliang Wang  <yuliang.wang@arm.com>
8714         PR tree-optimization/89386
8715         * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>)
8716         (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns.
8717         (<su>mulh<r>s<mode>3): New pattern for MULHRS.
8718         * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT)
8719         (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT)
8720         (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS)
8721         UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs.
8722         (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators.
8723         (su, r): Handle the unspecs above.
8724         (bt): New int attribute.
8725         * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions.
8726         * internal-fn.c (first_commutative_argument): Commutativity info for
8727         above.
8728         * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab)
8729         (umulhrs_optab): New optabs.
8730         * doc/md.texi (smulhs$var{m3}, umulhs$var{m3})
8731         (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above.
8732         * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern
8733         function.
8734         (vect_vect_recog_func_ptrs): Add it.
8736 2019-09-11  Michael Meissner  <meissner@linux.ibm.com>
8738         * config/rs6000/predicates.md (non_add_cint_operand): Simplify the
8739         code.
8741 2019-09-11  Nathan Sidwell  <nathan@acm.org>
8743         * tree.h (MARK_TS_TYPE_NON_COMMON): New.
8744         * tree.c (tree_node_structure_for_code): Reformat and alphabetize.
8746 2019-09-11  Richard Biener  <rguenther@suse.de>
8748         * lto-opts.c (lto_write_options): Stream -g when debug is enabled.
8749         * lto-wrapper.c (merge_and_complain): Pick up -g.
8750         (append_compiler_options): Likewise.
8751         (run_gcc): Re-instantiate handling -g0 at link-time.
8752         * doc/invoke.texi (flto): Document debug info generation.
8754 2019-09-11  Richard Biener  <rguenther@suse.de>
8756         PR tree-optimization/90387
8757         * vr-values.c (vr_values::extract_range_basic): After inlining
8758         simplify non-constant __builtin_constant_p to false.
8760 2019-09-11  Eric Botcazou  <ebotcazou@adacore.com>
8762         PR rtl-optimization/89795
8763         * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
8764         inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
8766 2019-09-11  Jakub Jelinek  <jakub@redhat.com>
8768         PR tree-optimization/91723
8769         * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
8770         instead of pointer equality when checking if argument vectypes are
8771         the same.
8773         PR middle-end/91725
8774         * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead
8775         of get_nonzero_bits, only call it for integral types.
8777 2019-09-11  Richard Biener  <rguenther@suse.de>
8779         Revert
8780         2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>
8782         * match.pd: Add flag_unsafe_math_optimizations check
8783         before deciding on the widest type in a binary math operation.
8785 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
8787         * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
8788         and CALL_REALLY_USED_REGISTERS must be defined, and that
8789         CALL_REALLY_USED_REGISTERS is preferred.
8790         * doc/tm.texi: Regenerate.
8791         * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete.
8792         (call_really_used_regs): Likewise.
8793         * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and
8794         CALL_REALLY_USED_REGISTERS are defined.
8795         (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the
8796         initial value if defined.
8797         (initial_call_really_used_regs): Delete.
8798         (saved_call_really_used_regs): Likewise.
8799         (CALL_REALLY_USED_REGNO_P): Likewise.
8800         (init_reg_sets): Remove handling of call_really_used_regs.
8801         (save_register_info, restore_register_info, globalize_reg): Likewise.
8802         (init_reg_sets_1): Likewise.  Use call_used_regs instead of
8803         CALL_REALLY_USED_REGNO_P.  Don't set call_used_regs for registers
8804         outside operand_reg_set.
8805         (fix_register): Don't change call_used_regs if
8806         CALL_REALLY_USED_REGISTERS is defined.
8807         * config/csky/csky.h (CALL_USED_REGISTERS): Delete.
8808         * config/csky/csky.c (get_csky_live_regs): Use call_used_regs
8809         instead of call_really_used_regs.
8810         (csky_conditional_register_usage): Remove the old handling of
8811         call_used_regs and change the handling of call_really_used_regs
8812         to use call_used_regs instead.
8813         * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete.
8814         * config/ia64/ia64.c (fix_range): Don't set call_used_regs when
8815         making a register fixed.
8816         * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete.
8817         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs
8818         instead of call_really_used_regs.
8819         (m32r_conditional_register_usage): Don't set call_used_regs when
8820         making a register fixed.
8821         * config/mips/mips.h (CALL_USED_REGISTERS): Delete.
8822         * config/mips/mips.c (mips_global_pointer): Use call_used_regs
8823         instead of call_really_used_regs.
8824         (mips_interrupt_extra_call_saved_reg_p): Likewise.
8825         (mips_cfun_call_saved_reg_p): Likewise.
8826         (mips_swap_registers): Remove the old handling of call_used_regs
8827         and change the handling of call_really_used_regs to use call_used_regs
8828         instead.
8829         (mips_conditional_register_usage): Likewise.
8830         * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete.
8831         * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs
8832         instead of call_really_used_regs.
8833         (mn10300_get_live_callee_saved_regs): Likewise.
8834         (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise.
8835         (mn10300_conditional_register_usage): Don't set call_used_regs when
8836         making a register fixed.
8837         * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete.
8838         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
8839         Remove the old handling of call_used_regs and change the handling
8840         of call_really_used_regs to use call_used_regs instead.
8841         * config/s390/s390.h (CALL_USED_REGISTERS): Delete.
8842         * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs
8843         instead of call_really_used_regs.
8844         (s390_register_info_gprtofpr, s390_register_info): Likewise.
8845         (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise.
8846         (s390_emit_prologue, s300_set_up_by_prologue): Likewise.
8847         (s390_can_use_return_insn, s390_optimize_prologue): Likewise.
8848         (s390_conditional_register_usage): Remove the old handling of
8849         call_used_regs and change the handling of call_really_used_regs
8850         to use call_used_regs instead.
8851         * config/sh/sh.h (CALL_USED_REGISTERS): Delete.
8852         * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise.
8853         (sh_fix_range, reg_unused_after): Likewise.
8854         (sh_conditional_register_usage): Remove the old handling of
8855         call_used_regs and change the handling of call_really_used_regs
8856         to use call_used_regs instead.
8857         * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete.
8858         * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set
8859         call_used_regs when making a register fixed.
8860         * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete.
8861         * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set
8862         call_used_regs when making a register fixed.
8863         * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete.
8864         * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't
8865         set call_used_regs when making a register fixed.
8866         * config/visium/visium.h (CALL_USED_REGISTERS): Delete.
8867         * config/visium/visium.c (visium_conditional_register_usage): Remove
8868         the old handling of call_used_regs and change the handling of
8869         call_really_used_regs to use call_used_regs instead.
8871 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
8873         * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE.
8874         (call_used_or_fixed_reg_p): Expand definition of call_used_regs.
8875         * reginfo.c (call_used_regs): New macro.
8877 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
8879         * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant
8880         fixed_regs test.
8881         * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
8882         (bpf_expand_epilogue): Likewise.
8883         * config/c6x/c6x.c (c6x_save_reg): Likewise.
8884         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
8885         (ft32_expand_epilogue): Likewise.
8886         * config/i386/i386.c (ix86_save_reg): Likewise.
8887         * config/moxie/moxie.c (moxie_expand_prologue): Likewise.
8888         (moxie_expand_epilogue): Likewise.
8889         * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
8890         * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
8891         * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
8893 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
8895         * hard-reg-set.h (call_used_or_fixed_reg_p): New macro.
8896         * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p
8897         instead of testing call_used_regs directly.
8898         * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise.
8899         (aarch64_components_for_bb): Likewise.
8900         * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise.
8901         * config/arc/arc.c (arc_must_save_register): Likewise.
8902         (arc_epilogue_uses): Likewise.
8903         * config/arm/arm.c (arm_option_override, use_return_insn): Likewise.
8904         (legitimize_pic_address, callee_saved_reg_p): Likewise.
8905         (arm_compute_save_reg0_reg12_mask): Likewise.
8906         (arm_compute_save_core_reg_mask): Likewise.
8907         (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise.
8908         (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise.
8909         (cmse_nonsecure_entry_clear_before_return): Likewise.
8910         (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise.
8911         (arm_expand_epilogue): Likewise.
8912         * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise.
8913         (avr_function_arg_advance, avr_find_unused_d_reg): Likewise.
8914         (_reg_unused_after): Likewise.
8915         * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise.
8916         (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise.
8917         (add_to_reg, hwloop_optimize): Likewise.
8918         * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
8919         (bpf_expand_epilogue): Likewise.
8920         * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise.
8921         * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
8922         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise.
8923         * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise.
8924         (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise.
8925         (epiphany_output_mi_thunk, epiphany_start_function): Likewise.
8926         * config/fr30/fr30.c (fr30_num_arg_regs): Likewise.
8927         * config/frv/frv.c (frv_stack_info): Likewise.
8928         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
8929         (ft32_expand_prologue, ft32_expand_epilogue): Likewise.
8930         * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise.
8931         (move_callee_saved_registers): Likewise.
8932         * config/h8300/h8300.c (byte_reg): Likewise.
8933         * config/i386/i386-options.c (ix86_set_current_function): Likewise.
8934         * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise.
8935         (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise.
8936         * config/i386/predicates.md (sibcall_memory_operand): Likewise.
8937         * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise.
8938         (next_scratch_gr_reg, ia64_compute_frame_size): Likewise.
8939         * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise.
8940         * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
8941         * config/m32c/m32c.c (need_to_save): Likewise.
8942         * config/m68k/m68k.c (m68k_save_reg): Likewise.
8943         * config/mcore/mcore.c (calc_live_regs): Likewise.
8944         * config/microblaze/microblaze.c (microblaze_must_save_register):
8945         Likewise.
8946         * config/mmix/mmix.c (mmix_local_regno): Likewise.
8947         (mmix_initial_elimination_offset, mmix_reorg): Likewise.
8948         (mmix_use_simple_return, mmix_expand_prologue): Likewise.
8949         (mmix_expand_epilogue): Likewise.
8950         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
8951         (moxie_expand_prologue, moxie_expand_epilogue): Likewise.
8952         * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise.
8953         * config/nds32/nds32.h (nds32_16bit_address_type): Likewise.
8954         (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise.
8955         * config/nios2/nios2.c (prologue_saved_reg_p): Likewise.
8956         * config/or1k/or1k.c (callee_saved_regno_p): Likewise.
8957         * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise.
8958         * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise.
8959         * config/pru/pru.c (prologue_saved_reg_p): Likewise.
8960         * config/riscv/riscv.c (riscv_save_reg_p): Likewise.
8961         (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise.
8962         * config/rl78/rl78.c (need_to_save): Likewise.
8963         * config/rs6000/rs6000-logue.c (save_reg_p): Likewise.
8964         (rs6000_stack_info, generate_set_vrsave): Likewise.
8965         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
8966         * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise.
8967         * config/rx/rx.c (rx_get_stack_layout): Likewise.
8968         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
8969         * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise.
8970         * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise.
8971         (save_local_or_in_reg_p): Likewise.
8972         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise.
8973         (xstormy16_epilogue_uses): Likewise.
8974         * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
8975         * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
8976         * config/v850/v850.c (compute_register_save_size): Likewise.
8977         * config/vax/vax.c (vax_expand_prologue): Likewise.
8978         * config/visium/visium.c (visium_save_reg_p): Likewise.
8979         * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
8980         * cselib.c (cselib_process_insn): Likewise.
8981         * df-scan.c (df_get_entry_block_def_set): Likewise.
8982         * function.c (aggregate_value_p): Likewise.
8983         * haifa-sched.c (alloc_global_sched_pressure_data): Likewise.
8984         * ira-lives.c (process_bb_node_lives): Likewise.
8985         * ira.c (do_reload): Likewise.
8986         * lra-lives.c (process_bb_lives): Likewise.
8987         * lra-remat.c (lra_remat): Likewise.
8988         * lra.c (lra): Likewise.
8989         * postreload.c (reload_combine_recognize_pattern): Likewise.
8990         (reload_cse_move2add): Likewise.
8991         * recog.c (peep2_find_free_register): Likewise.
8992         * regrename.c (check_new_reg_p): Likewise.
8993         * reload.c (find_equiv_reg): Likewise.
8994         * reload1.c (reload, find_reg): Likewise.
8995         * sel-sched.c (init_hard_regs_data): Likewise.
8997 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
8999         * config/frv/frv.c (frv_ifcvt_modify_tests): Use
9000         regs_invalidated_by_call & ~fixed_reg_set instead of
9001         call_used_or_fixed_regs & ~fixed_reg_set.
9002         * config/sh/sh.c (output_stack_adjust): Likewise.
9004 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
9006         * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete.
9007         (call_used_reg_set): Delete.
9008         (call_used_or_fixed_regs): New macro.
9009         * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization
9010         of call_used_reg_set.
9011         * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs
9012         instead of call_used_regs.
9013         (save_call_clobbered_regs): Likewise.
9014         * cfgcleanup.c (old_insns_match_p): Likewise.
9015         * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise.
9016         * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
9017         Likewise.
9018         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9019         * config/sh/sh.c (output_stack_adjust): Likewise.
9020         * final.c (collect_fn_hard_reg_usage): Likewise.
9021         * ira-build.c (ira_build): Likewise.
9022         * ira-color.c (calculate_saved_nregs): Likewise.
9023         (allocno_reload_assign, calculate_spill_cost): Likewise.
9024         * ira-conflicts.c (ira_build_conflicts): Likewise.
9025         * ira-costs.c (ira_tune_allocno_costs): Likewise.
9026         * ira-lives.c (process_bb_node_lives): Likewise.
9027         * ira.c (setup_reg_renumber): Likewise.
9028         * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise.
9029         * lra-constraints.c (need_for_call_save_p): Likewise.
9030         (need_for_split_p, inherit_in_ebb): Likewise.
9031         * lra-lives.c (process_bb_lives): Likewise.
9032         * lra-remat.c (call_used_input_regno_present_p): Likewise.
9033         * postreload.c (reload_combine): Likewise.
9034         * regrename.c (find_rename_reg): Likewise.
9035         * reload1.c (reload_as_needed): Likewise.
9036         * rtlanal.c (find_all_hard_reg_sets): Likewise.
9037         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9038         * shrink-wrap.c (requires_stack_frame_p): Likewise.
9040 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
9042         * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
9043         (no_caller_save_reg_set): Delete.
9044         * caller-save.c (init_caller_save): Don't initialize it.
9045         * ira-conflicts.c (ira_build_conflicts): Calculate
9046         no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
9048 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
9050         * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete.
9051         (target_hard_regs::x_savable_regs): New field.
9052         (call_fixed_reg_set): Delete.
9053         (savable_regs): New macro,
9054         * reginfo.c (globalize_reg): Don't set call_fixed_reg_set.
9055         (init_reg_sets_1): Likewise.  Initialize savable_regs.
9056         * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE
9057         for all registers.  Set savable_regs instead of call_fixed_reg_set.
9058         (setup_save_areas, save_call_clobbered_regs): Replace uses of
9059         ~call_fixed_reg_set with ~fixed_reg_set & savable_regs.
9060         * config/sh/sh.c (output_stack_adjust): Likewise.
9062 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
9064         * config/c6x/c6x-protos.h (c6x_set_return_address): Declare.
9065         * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to
9066         * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function.
9068 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
9070         * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx.
9071         * rtlanal.c (get_call_rtx_from): Likewise.
9072         * dwarf2out.c (dwarf2out_var_location): Pass the insn rather
9073         than the pattern to get_call_rtx_from.
9074         * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take
9075         an rtx_insn * instead of an rtx.
9076         * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise.
9078 2019-09-10  Martin Liska  <mliska@suse.cz>
9080         * common.opt: Use newly added WarnRemoved.
9081         * config/aarch64/aarch64.opt: Likewise.
9082         * config/arm/arm.opt: Likewise.
9083         * config/i386/i386.opt: Likewise.
9084         * config/ia64/ia64.opt: Likewise.
9085         * config/rs6000/rs6000.opt: Likewise.
9086         * doc/options.texi: Document WarnRemoved properly.
9087         * dwarf2out.c (gen_producer_string): Handle renamed
9088         OPT_SPECIAL_warn_removed.
9089         * lto-opts.c (lto_write_options): Likewise.
9090         * lto-wrapper.c (merge_and_complain): Likewise.
9091         * opts-common.c (decode_cmdline_option): Likewise.
9092         (prune_options): Likewise.
9093         (read_cmdline_option): Likewise.
9094         (control_warning_option): Likewise.
9095         * opts.c (print_filtered_help): Likewise.
9096         * optc-gen.awk: Parse for WarnRemoved and make usage
9097         of Deprecated an error.
9098         * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed.
9100 2019-09-10  Arnaud Charlet  <charlet@adacore.com>
9102         * doc/install.texi: Fix syntax for html generation.
9104 2019-09-10  Jakub Jelinek  <jakub@redhat.com>
9106         PR middle-end/91680
9107         * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from
9108         the shift type to type.
9110 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9112         * config/arm/arm.md (stack_protect_combined_set_insn): Handle
9113         FDPIC mode.
9114         (stack_protect_combined_test_insn): Likewise.
9116 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9117             Mickaël Guêné <mickael.guene@st.com>
9119         * config/arm/arm.c (arm_load_tp): Add FDPIC support.
9120         * config/arm/arm.md (FDPIC_REGNUM): New constant.
9121         (load_tp_soft_fdpic): New pattern.
9122         (load_tp_soft): Disable in FDPIC mode.
9124 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9125             Mickaël Guêné <mickael.guene@st.com>
9127         * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC,
9128         TLS_LDM32_FDPIC and TLS_IE32_FDPIC.
9129         (arm_call_tls_get_addr): Add FDPIC support.
9130         (legitimize_tls_address): Likewise.
9131         (arm_emit_tls_decoration): Likewise.
9133 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9134             Mickaël Guêné <mickael.guene@st.com>
9136         * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC
9137         support.
9138         (arm_trampoline_init): Likewise.
9139         (arm_trampoline_adjust_address): Likewise.
9140         * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise.
9142 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9143             Mickaël Guêné <mickael.guene@st.com>
9145         * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function.
9146         (legitimize_pic_address): Enforce binding rules on function
9147         pointers in FDPIC mode.
9148         (arm_assemble_integer): Likewise.
9150 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9151             Mickaël Guêné <mickael.guene@st.com>
9153         * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper.
9154         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
9155         FDPIC.
9157 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9158             Mickaël Guêné <mickael.guene@st.com>
9160         * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
9161         field.
9163 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9164             Mickaël Guêné <mickael.guene@st.com>
9166         * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro
9167         in FDPIC mode.
9168         * config/arm/arm-protos.h (arm_load_function_descriptor): Declare
9169         new function.
9170         * config/arm/arm.c (arm_option_override): Define pic register to
9171         FDPIC_REGNUM.
9172         (arm_function_ok_for_sibcall): Disable sibcall optimization if we
9173         have no decl or go through PLT.
9174         (calculate_pic_address_constant): New function.
9175         (legitimize_pic_address): Call calculate_pic_address_constant.
9176         (arm_load_pic_register): Handle TARGET_FDPIC.
9177         (arm_is_segment_info_known): New function.
9178         (arm_pic_static_addr): Add support for FDPIC.
9179         (arm_load_function_descriptor): New function.
9180         (arm_emit_call_insn): Add support for FDPIC.
9181         (arm_assemble_integer): Add support for FDPIC.
9182         * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED):
9183         Define. (FDPIC_REGNUM): New define.
9184         * config/arm/arm.md (call): Add support for FDPIC.
9185         (call_value): Likewise.
9186         (restore_pic_register_after_call): New pattern.
9187         (untyped_call): Disable if FDPIC.
9188         (untyped_return): Likewise.
9189         * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New.
9191 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9192             Mickaël Guêné <mickael.guene@st.com>
9194         * config.gcc: Handle arm*-*-uclinuxfdpiceabi.
9195         * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New.
9196         (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC.
9197         * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New.
9198         (CC1_SPEC): Use FDPIC_CC1_SPEC.
9199         (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed.
9200         * config/arm/uclinuxfdpiceabi.h: New file.
9202 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9204         * config.gcc: Handle *-*-uclinuxfdpiceabi.
9206 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
9207             Mickaël Guêné  <mickael.guene@st.com>
9209         * config/arm/arm.opt: Add -mfdpic option.
9210         * doc/invoke.texi: Add documentation for -mfdpic.
9212 2019-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9214         * expmed.c (extract_bit_field): Update function comment
9215         regarding alt_rtl.
9216         * expr.c (expand_expr_real): Update function comment
9217         regarding alt_rtl.
9218         (expand_misaligned_mem_ref): New helper function.
9219         (expand_expr_real_2): Use expand_misaligned_mem_ref.
9220         Remove duplicate assignment to "base" at case MEM_REF.
9221         Remove a shadowed variable "unsignedp" at case VCE. 
9223 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9225         * regset.h (regs_invalidated_by_call_regset): Delete.
9226         (fixed_reg_set_regset): Likewise.
9227         * reginfo.c (regs_invalidated_by_call_regset): Likewise.
9228         (fixed_reg_set_regset, persistent_obstack): Likewise.
9229         (init_reg_sets_1, globalize_reg): Update accordingly.
9230         * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap
9231         instead of a bitmap.
9232         * df-core.c (df_print_regset, df_print_word_regset): Likewise.
9233         * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call
9234         instead of regs_invalidated_by_call_regset.
9235         (df_lr_confluence_n, df_md_confluence_n): Likewise.
9236         * df-scan.c (df_scan_start_dump): Likewise.
9237         * dse.c (copy_fixed_regs): Likewise.
9238         * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise.
9240 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9242         * array-traits.h: New file.
9243         * coretypes.h (array_traits, bitmap_view): New types.
9244         * bitmap.h: Include "array-traits.h"
9245         (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
9246         (base_bitmap_view, bitmap_view): New classes.
9247         * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
9248         * hard-reg-set.h: Include array-traits.h.
9249         (array_traits<HARD_REG_SET>): New struct.
9250         * regset.h (IOR_REG_SET_HRS): New macro.
9251         * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS
9252         rather than iterating over each hard register.
9253         * sched-deps.c (sched_analyze_insn): Likewise.
9254         * sel-sched-ir.c (setup_id_implicit_regs): Likewise.
9256 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9258         * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set
9259         instead of a HARD_REG_SET *.
9260         * ira-build.c (ior_hard_reg_conflicts): Likewise.
9261         (ira_build): Update call accordingly.
9262         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9264 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9266         * hard-reg-set.h (HARD_REG_SET::operator==): New function.
9267         (HARD_REG_SET::operator!=): Likewise.
9268         (hard_reg_set_equal_p): Delete.
9269         * cfgcleanup.c (old_insns_match_p): Use == instead of
9270         hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p.
9271         * ira-color.c (allocno_hard_regs_hasher::equal): Likewise.
9272         (add_allocno_hard_regs_to_forest): Likewise.
9273         (setup_allocno_available_regs_num): Likewise.
9274         * ira.c (setup_pressure_classes): Likewise.
9275         (setup_allocno_and_important_classes): Likewise.
9276         (setup_reg_class_relations): Likewise.
9277         * lra-lives.c (process_bb_lives): Likewise.
9278         * reg-stack.c (change_stack, convert_regs_1): Likewise.
9280 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9282         * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
9283         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
9284         Use "|~" instead of IOR_COMPL_HARD_REG_SET.
9285         * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
9286         Likewise.
9287         * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
9288         * ira.c (setup_reg_renumber): Likewise.
9289         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9290         * regrename.c (regrename_find_superclass): Likewise.
9291         * reload1.c (find_reg): Likewise.
9293 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9295         * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
9296         * caller-save.c (setup_save_areas): Use "&~" instead of
9297         AND_COMPL_HARD_REG_SET.
9298         (save_call_clobbered_regs): Likewise.
9299         * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
9300         Likewise.
9301         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9302         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
9303         * config/i386/i386.c (ix86_conditional_register_usage): Likewise.
9304         * config/mips/mips.c (mips_class_max_nregs): Likewise.
9305         (mips_conditional_register_usage): Likewise.
9306         * config/sh/sh.c (output_stack_adjust): Likewise.
9307         * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise.
9308         (setup_profitable_hard_regs): Likewise.
9309         (get_conflict_and_start_profitable_regs): Likewise.
9310         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9311         (ira_build_conflicts): Likewise.
9312         * ira-costs.c (restrict_cost_classes): Likewise.
9313         (setup_regno_cost_classes_by_aclass): Likewise.
9314         * ira-lives.c (process_bb_node_lives): Likewise.
9315         * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise.
9316         (setup_class_subset_and_memory_move_costs, setup_pressure_classes)
9317         (setup_allocno_and_important_classes, setup_class_translate_array)
9318         (setup_reg_class_relations, setup_prohibited_class_mode_regs):
9319         Likewise.
9320         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9321         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
9322         (process_alt_operands, inherit_in_ebb): Likewise.
9323         * lra-eliminations.c (update_reg_eliminate): Likewise.
9324         * lra-lives.c (process_bb_lives): Likewise.
9325         * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise.
9326         * resource.c (find_dead_or_set_registers): Likewise.
9327         (mark_target_live_regs): Likewise.
9328         * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise.
9329         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9330         (implicit_clobber_conflict_p): Likewise.
9331         * shrink-wrap.c (requires_stack_frame_p): Likewise.
9332         (try_shrink_wrapping): Likewise.
9334 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9336         * hard-reg-set.h (HARD_REG_SET::operator|): New function.
9337         (HARD_REG_SET::operator|=): Likewise.
9338         (IOR_HARD_REG_SET): Delete.
9339         * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of
9340         IOR_HARD_REG_SET.
9341         * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
9342         * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise.
9343         * final.c (collect_fn_hard_reg_usage): Likewise.
9344         * hw-doloop.c (scan_loop, optimize_loop): Likewise.
9345         * ira-build.c (merge_hard_reg_conflicts): Likewise.
9346         (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info)
9347         (propagate_some_info_from_allocno): Likewise.
9348         (copy_info_to_removed_store_destinations): Likewise.
9349         * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg)
9350         (allocno_reload_assign, ira_reassign_pseudos): Likewise.
9351         (fast_allocation): Likewise.
9352         * ira-conflicts.c (ira_build_conflicts): Likewise.
9353         * ira-lives.c (make_object_dead, process_single_reg_class_operands)
9354         (process_bb_node_lives): Likewise.
9355         * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise.
9356         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9357         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
9358         * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise.
9359         * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise.
9360         * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls)
9361         (process_bb_lives): Likewise.
9362         * lra-spills.c (assign_spill_hard_regs): Likewise.
9363         * postreload.c (reload_combine): Likewise.
9364         * reginfo.c (init_reg_sets_1): Likewise.
9365         * regrename.c (merge_overlapping_regs, find_rename_reg)
9366         (merge_chains): Likewise.
9367         * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg)
9368         (find_reload_regs, finish_spills, choose_reload_regs_init)
9369         (emit_reload_insns): Likewise.
9370         * reorg.c (redundant_insn): Likewise.
9371         * resource.c (find_dead_or_set_registers, mark_set_resources)
9372         (mark_target_live_regs): Likewise.
9373         * rtlanal.c (find_all_hard_reg_sets): Likewise.
9374         * sched-deps.c (sched_analyze_insn): Likewise.
9375         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9376         (find_best_reg_for_expr): Likewise.
9377         * shrink-wrap.c (try_shrink_wrapping): Likewise.
9379 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9381         * hard-reg-set.h (HARD_REG_SET::operator&): New function.
9382         (HARD_REG_SET::operator&): Likewise.
9383         (AND_HARD_REG_SET): Delete.
9384         * caller-save.c (setup_save_areas): Use "&" instead of
9385         AND_HARD_REG_SET.
9386         (save_call_clobbered_regs): Likewise.
9387         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
9388         * config/m32c/m32c.c (reduce_class): Likewise.
9389         * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
9390         * final.c (get_call_reg_set_usage): Likewise.
9391         * ira-color.c (add_allocno_hard_regs_to_forest): Likewise.
9392         (setup_left_conflict_sizes_p): Likewise.
9393         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9394         (ira_build_conflicts): Likewise.
9395         * ira-costs.c (restrict_cost_classes): Likewise.
9396         * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array)
9397         (setup_reg_class_relations): Likewise.
9398         * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise.
9399         * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise.
9400         * resource.c (find_dead_or_set_registers): Likewise.
9401         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9403 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9405         * hard-reg-set.h (HARD_REG_SET::operator~): New function.
9406         (COMPL_HARD_REG_SET): Delete.
9407         * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead
9408         of COMPL_HARD_REG_SET.
9409         (try_rename_operands): Likewise.
9410         * config/sh/sh.c (push_regs): Likewise.
9411         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9412         * lra-constraints.c (contains_reg_p): Likewise.
9413         * reload1.c (finish_spills, choose_reload_regs_init): Likewise.
9415 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9417         * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
9418         * caller-save.c (save_call_clobbered_regs): Use assignment instead
9419         of COPY_HARD_REG_SET.
9420         * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
9421         (epiphany_conditional_register_usage): Likewise.
9422         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9423         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
9424         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
9425         * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
9426         * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
9427         * config/mips/mips.c (mips_class_max_nregs): Likewise.
9428         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
9429         * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
9430         * config/sh/sh.c (output_stack_adjust): Likewise.
9431         * final.c (collect_fn_hard_reg_usage): Likewise.
9432         (get_call_reg_set_usage): Likewise.
9433         * ira-build.c (ira_create_object, remove_low_level_allocnos)
9434         (ira_flattening): Likewise.
9435         * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
9436         (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
9437         (get_conflict_and_start_profitable_regs, allocno_reload_assign)
9438         (ira_reassign_pseudos): Likewise.
9439         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9440         (ira_build_conflicts): Likewise.
9441         * ira-costs.c (restrict_cost_classes): Likewise.
9442         (setup_regno_cost_classes_by_aclass): Likewise.
9443         * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
9444         (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
9445         (setup_stack_reg_pressure_class, setup_pressure_classes)
9446         (setup_allocno_and_important_classes, setup_class_translate_array)
9447         (setup_reg_class_relations, setup_prohibited_class_mode_regs)
9448         (ira_setup_eliminable_regset): Likewise.
9449         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9450         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
9451         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
9452         (process_alt_operands, inherit_in_ebb): Likewise.
9453         * lra-lives.c (process_bb_lives): Likewise.
9454         * lra-spills.c (assign_spill_hard_regs): Likewise.
9455         * lra.c (lra): Likewise.
9456         * mode-switching.c (new_seginfo): Likewise.
9457         * postreload.c (reload_combine): Likewise.
9458         * reg-stack.c (straighten_stack): Likewise.
9459         * reginfo.c (save_register_info, restore_register_info): Likewise.
9460         (init_reg_sets_1, record_subregs_of_mode): Likewise
9461         * regrename.c (create_new_chain, rename_chains): Likewise.
9462         * reload1.c (order_regs_for_reload, find_reg): Likewise.
9463         (find_reload_regs): Likewise.
9464         * resource.c (find_dead_or_set_registers): Likewise.
9465         (mark_target_live_regs): Likewise.
9466         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9468 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9470         * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
9471         (note_pattern_stores): Declare.
9472         (note_stores): Take an rtx_insn *.
9473         * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
9474         (find_all_hard_reg_sets): Pass the insn rather than its pattern to
9475         note_stores.  Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
9476         (note_stores): Take an rtx_insn * as argument and process
9477         CALL_INSN_FUNCTION_USAGE.  Rename old function to...
9478         (note_pattern_stores): ...this.
9479         (find_first_parameter_load): Pass the insn rather than
9480         its pattern to note_stores.
9481         * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
9482         * caller-save.c (setup_save_areas, save_call_clobbered_regs)
9483         (insert_one_insn): Likewise.
9484         * combine.c (combine_instructions): Likewise.
9485         (likely_spilled_retval_p): Likewise.
9486         (try_combine): Use note_pattern_stores instead of note_stores.
9487         (record_dead_and_set_regs): Pass the insn rather than its pattern
9488         to note_stores.
9489         (reg_dead_at_p): Likewise.
9490         * config/bfin/bfin.c (workaround_speculation): Likewise.
9491         * config/c6x/c6x.c (maybe_clobber_cond): Likewise.  Take an rtx_insn *
9492         rather than an rtx.
9493         * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
9494         instead of note_stores.
9495         (frv_optimize_membar_local): Pass the insn rather than its pattern
9496         to note_stores.
9497         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
9498         * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
9499         * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
9500         (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
9501         (mips_reorg_process_insns): Likewise.
9502         * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
9503         * config/sh/sh.c (flow_dependent_p): Likewise.  Take rtx_insn *s
9504         rather than rtxes.
9505         * cse.c (delete_trivially_dead_insns): Pass the insn rather than
9506         its pattern to note_stores.
9507         * cselib.c (cselib_record_sets): Use note_pattern_stores instead
9508         of note_stores.
9509         * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
9510         the insn to note_stores.
9511         (prescan_insns_for_dce): Update call accordingly.
9512         * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
9513         to note_stores.
9514         * df-problems.c (can_move_insns_across): Likewise.
9515         * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
9516         * function.c (assign_parm_setup_reg): Likewise.
9517         * gcse-common.c (record_last_mem_set_info_common): Likewise.
9518         * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
9519         (single_set_gcse): Likewise.
9520         * ira.c (validate_equiv_mem): Likewise.
9521         (update_equiv_regs): Use note_pattern_stores rather than note_stores
9522         for no_equiv.
9523         * loop-doloop.c (doloop_optimize): Pass the insn rather than its
9524         pattern to note_stores.
9525         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
9526         * loop-iv.c (simplify_using_initial_values): Likewise.
9527         * mode-switching.c (optimize_mode_switching): Likewise.
9528         * optabs.c (emit_libcall_block_1): Likewise.
9529         (expand_atomic_compare_and_swap): Likewise.
9530         * postreload-gcse.c (load_killed_in_block_p): Likewise.
9531         (record_opr_changes): Likewise.  Remove explicit handling of
9532         CALL_INSN_FUNCTION_USAGE.
9533         * postreload.c (reload_combine, reload_cse_move2add): Likewise.
9534         * regcprop.c (kill_clobbered_values): Likewise.
9535         (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
9536         to note_stores.
9537         * regrename.c (build_def_use): Likewise.
9538         * reload1.c (reload):  Use note_pattern_stores instead of note_stores
9539         for mark_not_eliminable.
9540         (reload_as_needed): Pass the insn rather than its pattern
9541         to note_stores.
9542         (emit_output_reload_insns): Likewise.
9543         * resource.c (mark_target_live_regs): Likewise.
9544         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
9545         * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
9546         instead of note_stores.
9547         * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
9548         its pattern to note_stores.
9549         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
9550         * var-tracking.c (adjust_insn, add_with_sets): Likewise.
9552 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9554         * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
9555         than a #define.  Use a structure rather than an array as the
9556         fallback definition.  Remove special cases for low array sizes.
9557         (const_hard_reg_set): New typedef.
9558         (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
9559         (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
9560         (hard_reg_set_empty_p): Likewise.
9561         (SET_HARD_REG_BIT): Use a function rather than a macro to
9562         handle the case in which HARD_REG_SET is a structure.
9563         (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
9564         (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
9565         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
9566         (IOR_COMPL_HARD_REG_SET): Likewise.
9567         (hard_reg_set_iterator::pset): Constify the pointer target.
9568         (hard_reg_set_iter_init): Take a const_hard_reg_set instead
9569         of a "const HARD_REG_SET".  Update the handling of non-integer
9570         HARD_REG_SETs.
9571         * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
9572         * reload.h: Likewise.
9573         * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
9574         * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
9575         of a "const HARD_REG_SET".
9576         (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
9577         (range_in_hard_reg_set_p): Likewise.
9578         * ira-costs.c (restrict_cost_classes): Likewise.
9579         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
9580         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
9581         Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
9582         * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
9583         use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
9584         (rws_insn_set, rws_insn_test): In the CHECKING_P version,
9585         take an unsigned int and open-code the HARD_REG_SET operations.
9587 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
9589         * Makefile.in (OBJS): Remove bt-load.o.
9590         * doc/invoke.texi (fbranch-target-load-optimize): Delete.
9591         (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
9592         * common.opt (fbranch-target-load-optimize): Mark as Ignore and
9593         document that the option no longer does anything.
9594         (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
9595         * target.def (branch_target_register_class): Delete.
9596         (branch_target_register_callee_saved): Likewise.
9597         * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
9598         (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
9599         * doc/tm.texi: Regenerate.
9600         * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
9601         (make_pass_branch_target_load_optimize2): Likewise.
9602         * passes.def (pass_branch_target_load_optimize1): Likewise.
9603         (pass_branch_target_load_optimize2): Likewise.
9604         * targhooks.h (default_branch_target_register_class): Likewise.
9605         * targhooks.c (default_branch_target_register_class): Likewise.
9606         * opt-suggestions.c (test_completion_valid_options): Remove
9607         -fbtr-bb-exclusive from the list of test options.
9608         * bt-load.c: Remove.
9610 2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>
9612         * match.pd: Add flag_unsafe_math_optimizations check
9613         before deciding on the widest type in a binary math operation.
9615 2019-09-09  Martin Liska  <mliska@suse.cz>
9617         * config/i386/i386.opt: Update comment of removed
9618         options that are preserved only for backward
9619         compatibility.
9621 2019-09-09  Jakub Jelinek  <jakub@redhat.com>
9623         PR target/87853
9624         * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
9625         instead of __v16qs.
9627         PR target/91704
9628         * config/i386/avxintrin.h (__v32qs): New typedef.
9629         * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
9630         instead of __v32qi.
9632 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
9634         * doc/invoke.texi (Option Summary): Cover eBPF.
9635         (eBPF Options): New section.
9636         * doc/extend.texi (BPF Built-in Functions): Likewise.
9637         (BPF Kernel Helpers): Likewise.
9639 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
9641         * config.gcc: Support for bpf-*-* targets.
9642         * common/config/bpf/bpf-common.c: New file.
9643         * config/bpf/t-bpf: Likewise.
9644         * config/bpf/predicates.md: Likewise.
9645         * config/bpf/constraints.md: Likewise.
9646         * config/bpf/bpf.opt: Likewise.
9647         * config/bpf/bpf.md: Likewise.
9648         * config/bpf/bpf.h: Likewise.
9649         * config/bpf/bpf.c: Likewise.
9650         * config/bpf/bpf-protos.h: Likewise.
9651         * config/bpf/bpf-opts.h: Likewise.
9652         * config/bpf/bpf-helpers.h: Likewise.
9653         * config/bpf/bpf-helpers.def: Likewise.
9655 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
9657         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9658         indirect_calls.
9660 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
9662         * opt-functions.awk (integer_range_info): Make sure values are in
9663         numeric context before operating with them.
9665 2019-09-08  Segher Boessenkool  <segher@kernel.crashing.org>
9667         * genemit.c (gen_split): Print the filename and line number where the
9668         splitter (or peephole2) was defined, to the dump file.
9670 2019-09-07  Jakub Jelinek  <jakub@redhat.com>
9672         PR tree-optimization/91665
9673         * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
9674         incompatible with the type of PHI result.
9676 2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9678         PR target/91684
9679         * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
9680         gen_unaligned_storedi for 4-byte aligned addresses.
9682 2019-09-06  Jim Wilson  <jimw@sifive.com>
9684         * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
9685         change.
9687 2019-09-06  Segher Boessenkool  <segher@kernel.crashing.org>
9689         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
9691 2019-09-06  Segher Boessenkool  <segher@kernel.crashing.org>
9693         * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
9694         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
9696 2019-09-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9698         PR target/91654
9699         * config/i386/x86-tune-costs.h (skylake_cost): Raise the
9700         cost of SSE->integer and integer->SSE moves from 2 to 6.
9701         (core_cost): Ditto.
9703 2019-09-06  Jakub Jelinek  <jakub@redhat.com>
9705         * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
9706         before testing TYPE_TRANSPARENT_AGGR.
9707         * calls.c (initialize_argument_information, load_register_parameters):
9708         Likewise.
9710 2019-09-06  Richard Earnshaw  <rearnsha@arm.com>
9712         * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
9713         high regs.
9714         (cmp_ior): Likewise.
9716 2019-09-06  Martin Liska  <mliska@suse.cz>
9718         * doc/match-and-simplify.texi: Separate tuples with ;.
9720 2019-09-06  Martin Liska  <mliska@suse.cz>
9722         PR c++/91125
9723         * Makefile.in: Remove tlink.o.
9724         * collect2.c (do_link): New function isolated
9725         from do_tlink.
9726         (main): Use.
9727         * collect2.h (do_tlink): Remove declaration of do_tlink.
9728         * doc/extend.texi: Remove documentation of -frepo.
9729         * doc/invoke.texi: Likewise.
9730         * doc/sourcebuild.texi: Remove cleanup-repo-files.
9731         * tlink.c: Remove.
9733 2019-09-05  Jakub Jelinek  <jakub@redhat.com>
9734             Jim Wilson  <jimw@sifive.com>
9736         PR target/91635
9737         * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
9738         extend<SHORT:mode><SUPERQI:mode>2): Don't split if
9739         paradoxical_subreg_p (operands[0]).
9740         (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
9741         use as intermediate value.
9743 2019-09-05  Andrew Stubbs  <ams@codesourcery.com>
9745         * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
9746         (sync_compare_and_swap<mode>_insn): Likewise.
9748 2019-09-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9750         PR middle-end/91615
9751         * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
9752         without movmisalign optab.
9754 2019-09-05  Jakub Jelinek  <jakub@redhat.com>
9756         PR middle-end/91001
9757         PR middle-end/91105
9758         PR middle-end/91106
9759         * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
9760         types, use type of their first field instead of type of
9761         args[i].tree_value.
9763 2019-09-05  Richard Biener  <rguenther@suse.de>
9765         PR rtl-optimization/91656
9766         * postreload-gcse.c (record_last_mem_set_info): Revert addition
9767         of early out.
9769 2019-09-05  Richard Biener  <rguenther@suse.de>
9771         PR middle-end/90501
9772         * tree-inline.c (declare_return_variable): Mark the return
9773         slot as addressable after building an address of it.
9775 2019-09-05  Arnaud Charlet  <charlet@adacore.com>
9777         * doc/install.texi: Update and clarify requirements to build GNAT.
9779 2019-09-05  Richard Sandiford  <richard.sandiford@arm.com>
9781         PR middle-end/91577
9782         * cfgexpand.c (discover_nonconstant_array_refs): Force the source
9783         of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
9784         call to be in memory.
9785         (pass_expand::execute): Call discover_nonconstant_array_refs before
9786         setting currently_expanding_to_rtl.
9788 2019-09-04  Caroline Tice  <cmtice@google.com>
9790         * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
9791         specified together.
9793 2019-09-04  Marek Polacek  <polacek@redhat.com>
9795         * doc/invoke.texi: Remove -fdeduce-init-list documentation.
9797 2019-09-04  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9799         PR target/32413
9800         * config/i386/i386.c (inline_secondary_memory_needed): Return true
9801         for QI and HImode moves between SSE and general registers.
9803 2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9805         PR c/78736
9806         * doc/invoke.texi: Document -Wenum-conversion.
9808 2019-09-04  Richard Biener  <rguenther@suse.de>
9810         PR rtl-optimization/36262
9811         * postreload-gcse.c: Include intl.h and gcse.h.
9812         (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
9813         to avoid linear list walk.
9814         (record_last_mem_set_info): Gate off if not computing transparentness.
9815         (get_bb_avail_insn): If transparentness isn't computed give up
9816         early.
9817         (gcse_after_reload_main): Skip compute_transp and extended PRE
9818         if gcse_or_cprop_is_too_expensive says so.
9820 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
9822         * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
9823         noinit section.
9824         (msp430_select_section): Handle decls with the "noinit" attribute with
9825         default_elf_select_section.
9826         Handle SECCAT_RODATA_MERGE_* section types with
9827         default_elf_select_section.
9828         Add comments about handling of unsupported section types.
9829         (msp430_section_type_flags): Remove handling of the noinit section.
9831 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
9833         * config/msp430/msp430.c (msp430_attr): Remove warnings about
9834         conflicting msp430-specific attributes.
9835         (msp430_section_attr): Likewise.
9836         Add warnings about conflicts with generic "noinit" and "section"
9837         attributes.
9838         Fix grammar in -mlarge error message.
9839         (msp430_data_attr): Rename to msp430_persist_attr.
9840         Add warnings about conflicts with generic "noinit" and "section"
9841         attributes.
9842         Add warning for when variable is not initialized.
9843         Chain conditionals which prevent the attribute being added.
9844         (ATTR_EXCL): New helper.
9845         (attr_reent_exclusions): New exclusion table.
9846         (attr_naked_exclusions): Likewise.
9847         (attr_crit_exclusions): Likewise.
9848         (attr_lower_exclusions): Likewise.
9849         (attr_upper_exclusions): Likewise.
9850         (attr_either_exclusions): Likewise.
9851         (attr_persist_exclusions): Likewise.
9852         (msp430_attribute_table): Update with exclusion rules.
9853         (msp430_output_aligned_decl_common): Don't output common symbol if decl
9854         has a section.
9856 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
9858         * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
9859         (msp430_handle_generic_attribute): New function.
9860         * doc/tm.texi: Regenerate.
9861         * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
9862         * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
9863         * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
9864         * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
9866 2019-09-03  Kamlesh Kumar  <kamleshbhalui@gmail.com>
9868         PR tree-optimization/91504
9869         * match.pd: Add ((~a & b) ^a) --> (a | b).
9871 2019-09-03  Jakub Jelinek  <jakub@redhat.com>
9873         PR target/91604
9874         * config/i386/i386-expand.c (split_double_mode): If there is more than
9875         one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
9876         already split matching MEM operand instead of calling adjust_address
9877         again.
9879 2019-09-03  Ulrich Weigand  <uweigand@de.ibm.com>
9881         * config.gcc: Obsolete spu target.  Remove references to spu.
9882         * configure.ac: Remove references to spu.
9883         * configure: Regenerate.
9884         * config/spu/: Remove directory.
9885         * common/config/spu/: Remove directory.
9887         * doc/extend.texi: Remove references to spu.
9888         * doc/invoke.texi: Likewise.
9889         * doc/md.texi: Likewise.
9890         * doc/sourcebuild.texi: Likewise.
9892 2019-09-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9894         PR middle-end/91603
9895         PR middle-end/91612
9896         PR middle-end/91613
9897         * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
9898         and SSA_NAME referring to CONSTANT_P correctly.
9900 2019-09-03  Richard Biener  <rguenther@suse.de>
9902         * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
9903         (vn_nary_op_insert): Likewise.
9904         * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
9905         (vn_nary_op_lookup): Likewise.
9906         (vn_nary_op_insert): Likewise.
9908 2019-09-03  Ilya Leoshkevich  <iii@linux.ibm.com>
9910         * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
9911         (*op0, 1) instead of XEXP (*op1, 0).
9913 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9915         * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
9916         (aarch64_fjcvtzs): New define_insn.
9917         * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
9918         * config/aarch64/aarch64-builtins.c (aarch64_builtins):
9919         Add AARCH64_JSCVT.
9920         (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
9921         (aarch64_expand_builtin): Handle AARCH64_JSCVT.
9922         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
9923         __ARM_FEATURE_JCVT where appropriate.
9924         * config/aarch64/arm_acle.h (__jcvt): Define.
9926 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9928         * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
9929         UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
9930         (aarch64_<frintnzs_op><mode>): New define_insn.
9931         * config/aarch64/aarch64.h (TARGET_FRINT): Define.
9932         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
9933         __ARM_FEATURE_FRINT when appropriate.
9934         * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
9935         frint32x, frint64z, frint64x.
9936         * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
9937         __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
9938         * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
9939         vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
9940         vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
9941         vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
9942         * config/aarch64/iterators.md (VSFDF): Define.
9943         (FRINTNZX): Likewise.
9944         (frintnzs_op): Likewise.
9946 2019-09-03  Dennis Zhang  <dennis.zhang@arm.com>
9948         * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
9949         for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
9950         Cortex-A34.
9951         * config/aarch64/aarch64-tune.md: Regenerated.
9952         * doc/invoke.texi: Document the new processors.
9954 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9956         * config/aarch64/aarch64-option-extensions.def (sb): Add feature
9957         string.
9958         (ssbs): Likewise.
9959         (sve2): Likewise.
9960         (sve2-sm4): Likewise.
9961         (sveaes): Likewise.
9962         (svesha3): Likewise.
9963         (svebitperm): Likewise.
9965 2019-09-03  Jakub Jelinek  <jakub@redhat.com>
9966             Richard Biener  <rguenther@suse.de>
9968         PR tree-optimization/91597
9969         * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
9970         BIT_AND_EXPR optimization for pointers, even if both operand
9971         ranges don't include NULL, the result can be NULL.
9973 2019-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9975         PR middle-end/91605
9976         * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
9977         (non_mem_decl_p): ...this.
9978         (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
9979         (expand_assignment): Call mem_ref_referes_to_non_mem_p
9980         unconditionally as before.
9982 2019-09-02  Eric Botcazou  <ebotcazou@adacore.com>
9984         PR target/91323
9985         * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
9986         * rtl.def (LTGT): Likewise.  Add note about floating-point exceptions.
9987         * tree.def (LTGT_EXPR): Likewise.
9988         * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
9990 2019-09-02  Jakub Jelinek  <jakub@redhat.com>
9992         PR go/91617
9993         * fold-const.c (range_check_type): For enumeral and boolean
9994         type, pass 1 to type_for_size langhook instead of
9995         TYPE_UNSIGNED (etype).  Return unsigned_type_for result whenever
9996         etype isn't TYPE_UNSIGNED INTEGER_TYPE.
9997         (build_range_check): Don't call unsigned_type_for for pointer types.
9998         * match.pd (X / C1 op C2): Don't call unsigned_type_for on
9999         range_check_type result.
10001 2019-09-02  Eric Botcazou  <ebotcazou@adacore.com>
10003         * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
10004         (replace_ref): Do not replace a chain of only two candidates which are
10005         valid memory references.
10007 2019-09-02  Martin Liska  <mliska@suse.cz>
10009         * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
10010         Bail out when we'll end up with the same number of clusters as
10011         at the beginning.
10012         (bit_test_cluster::find_bit_tests): Likewise for bit tests.
10013         (jump_table_cluster::can_be_handled): Remove the guard
10014         as it's already handled in ::is_enabled.  Allocate output
10015         after early bail out.
10017 2019-09-02  Martin Liska  <mliska@suse.cz>
10019         PR gcov-profile/91601
10020         * gcov.c (path_contains_zero_cycle_arc): Rename to ...
10021         (path_contains_zero_or_negative_cycle_arc): ... this and handle
10022         also negative edges.
10023         (circuit): Handle also negative edges as they can happen
10024         in some situations.
10026 2019-09-01  Eric Botcazou  <ebotcazou@adacore.com>
10028         PR target/91472
10029         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
10030         during LRA/reload in PIC mode if the PIC register hasn't been used yet.
10031         (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
10033 2019-09-01  Jakub Jelinek  <jakub@redhat.com>
10035         PR middle-end/91623
10036         * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
10037         EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
10038         zeros or negative elements and use NE_EXPR instead of LT_EXPR against
10039         zero vector.
10041         PR lto/91572
10042         * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
10043         GIMPLE_ASM TREE_LIST operands.
10045 2019-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
10047         * doc/generic.texi (Unary and Binary Expressions): Mark up
10048         an instance of TYPE_MIN.
10050 2019-08-31  Stafford Horne  <shorne@gmail.com>
10052         * config/or1k/constraints.md (t): New constraint.
10053         * config/or1k/or1k.h (GOT_REGS): New register class.
10054         * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
10056 2019-08-30  Jim Wilson  <jimw@sifive.com>
10058         * config/riscv/riscv.c (riscv_option_override): If -msave-restore
10059         and -fpic and -mplt then disable -msave-restore and warn.
10061 2019-08-30  Martin Sebor  <msebor@redhat.com>
10063         PR middle-end/91599
10064         * tree-ssa-strlen.c (handle_store): Use a fallback location if
10065         the statement doesn't have one.
10066         * gimple-pretty-print.c (percent_G_format): Same.
10068         PR middle-end/91584
10069         * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
10070         before using them to validate MEM_REF offset.
10072 2019-08-30  Marek Polacek  <polacek@redhat.com>
10074         * doc/invoke.texi (-Wvolatile): Use @code for volatile.
10076 2019-08-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10078         * config/arm/arm.md (unaligned_loaddi,
10079         unaligned_storedi): New unspec insn patterns.
10080         * config/arm/neon.md (unaligned_storev8qi): Likewise.
10081         * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
10082         and unaligned_storedi for 4-byte aligned memory.
10083         (arm_block_set_aligned_vect): Use unaligned_storev8qi for
10084         4-byte aligned memory.
10086 2019-08-30  Martin Jambor  <mjambor@suse.cz>
10088         tree-optimization/91579
10089         * tree-tailcall.c (tailr_arg_needs_copy): New variable.
10090         (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
10091         appropriate.
10092         (arg_needs_copy_p): Removed.
10093         (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
10094         arg_needs_copy_p.
10095         (tree_optimize_tail_calls_1): Likewise.  Free tailr_arg_needs_copy.
10097 2019-08-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10099         * config/i386/i386-features.c
10100         (general_scalar_chain::compute_convert_gain):
10101         Correct cost for double-word shifts.
10102         (general_scalar_to_vector_candidate_p): Reject count operands
10103         greater or equal to mode bitsize.
10105 2019-08-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10107         * config/i386/i386.c (inline_secondary_memory_needed): Return true
10108         for moves between SSE and non-general registers and between
10109         mask and non-general registers.
10110         (ix86_register_move_cost): Remove stalled comment.
10112 2019-08-29  Richard Biener  <rguenther@suse.de>
10114         * config/i386/i386-features.c (general_scalar_chain::convert_insn):
10115         Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
10117 2019-08-29  Richard Biener  <rguenther@suse.de>
10119         PR bootstrap/91580
10120         * config/i386/i386-features.c (general_scalar_chain::convert_insn):
10121         Do not emit scalar copies for debug-insns, instead replace
10122         their uses with the reg copy used in the chain or reset them
10123         if there is a reaching definition outside of the chain as well.
10125 2019-08-29  Jakub Jelinek  <jakub@redhat.com>
10127         PR target/91560
10128         * config/i386/i386-expand.c (expand_vec_perm_movs,
10129         expand_vec_perm_blend, expand_vec_perm_vpermil,
10130         expand_vec_perm_pshufb, expand_vec_perm_1,
10131         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
10132         expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
10133         expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
10134         expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
10135         expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
10136         comments - replace ix86_expand_vec_perm_builtin_1 with
10137         ix86_expand_vec_perm_const_1.
10138         (expand_vec_perm2_vperm2f128_vblend): New function.
10139         (ix86_expand_vec_perm_const_1): New forward declaration.  Call
10140         expand_vec_perm2_vperm2f128_vblend as last resort.
10141         (canonicalize_perm): Formatting fix.
10143         PR tree-optimization/91351
10144         * tree-cfg.c (generate_range_test): Use range_check_type instead of
10145         unsigned_type_for.
10146         * tree-cfgcleanup.c (convert_single_case_switch): Punt if
10147         range_check_type returns NULL.
10148         * tree-switch-conversion.c (switch_conversion::build_one_array):
10149         Use range_check_type instead of unsigned_type_for, don't perform
10150         linear opt if it returns NULL.
10151         (bit_test_cluster::find_bit_tests): Formatting fix.
10152         (bit_test_cluster::emit): Use range_check_type instead of
10153         unsigned_type_for.
10154         (switch_decision_tree::try_switch_expansion): Punt if range_check_type
10155         returns NULL.
10157 2019-08-29  Richard Biener  <rguenther@suse.de>
10159         PR tree-optimization/91568
10160         * tree-vectorizer.h (_slp_tree::max_nunits): Add.
10161         (vect_update_max_nunits): Add overload for poly_uint64.
10162         * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
10163         (vect_build_slp_tree): Record max_nunits into the subtree
10164         and merge it upwards.
10165         (vect_print_slp_tree): Print max_nunits.
10167 2019-08-28  Marek Polacek  <polacek@redhat.com>
10169         Implement P1152R4: Deprecating some uses of volatile.
10170         PR c++/91361
10171         * doc/invoke.texi: Document -Wvolatile.
10173 2019-08-28  Marek Polacek  <polacek@redhat.com>
10175         PR c++/91360 - Implement C++20 P1143R2: constinit.
10176         * doc/invoke.texi: Document -Wc++20-compat.
10178 2019-08-28  Martin Sebor  <msebor@redhat.com>
10180         PR tree-optimization/91457
10181         * builtins.c (component_size): New function.
10182         (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
10183         * builtins.h (compute_objsize): Add argument.
10184         * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
10185         * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
10186         (vrp_prop::check_mem_ref): Same.
10187         (vrp_prop::search_for_addr_array): Set no-warning bit.
10188         (check_array_bounds): Same.
10190 2019-08-28  Martin Sebor  <msebor@redhat.com>
10192         PR driver/80545
10193         * opts-common.c (option_enabled): Correct checking for language
10194         options.
10196 2019-08-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10198         * config/i386/i386.c (ix86_register_move_cost): Do not
10199         limit the cost of moves to/from XMM register to minimum 8.
10201 2019-08-28  Martin Jambor  <mjambor@suse.cz>
10203         PR ipa/91468
10204         * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
10205         checking assert a normal assert to test it really is redundant.
10206         * ipa-prop.c (compute_complex_assign_jump_func): Removed
10207         redundant test.
10208         (update_jump_functions_after_inlining): Removed combining unary
10209         arithmetic operations with an ancestor jump function.
10210         (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
10211         instead of t.
10213 2019-08-28  Richard Biener  <rguenther@suse.de>
10215         * config/i386/i386-features.c (convert_scalars_to_vector): Do not
10216         add the MD problem.
10218 2019-08-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10219             Richard Biener  <rguenther@suse.de>
10221         * expr.c (expand_assignment): Handle misaligned DECLs.
10222         (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
10223         * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
10224         too.
10225         (assign_parm_setup_stack): Allocate properly aligned stack slots.
10226         * varasm.c (build_constant_desc): Align constants of misaligned types.
10227         * config/arm/predicates.md (aligned_operand): New predicate.
10228         * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
10229         aligned_operand to check restrictions on memory addresses.
10230         * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
10231         * config/arm/vec-common.md (mov<VALL>): Likewise.
10233 2019-08-28  Jakub Jelinek  <jakub@redhat.com>
10235         PR libgomp/91530
10236         * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
10237         V_128 iterator instead of VI_128.
10239 2019-08-28  Martin Liska  <mliska@suse.cz>
10241         PR tree-optimization/90970
10242         * builtins.c (check_access): Remove assignment to maxread
10243         as it hasn't been used since when it was introduced in r255755.
10245 2019-08-27  Martin Sebor  <msebor@redhat.com>
10247         PR tree-optimization/91567
10248         * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
10249         of unknown strings.
10250         * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
10251         to PTRDIFF_MAX - 2.
10253 2019-08-27  Jeff Law  <law@redhat.com>
10255         * tree-ssa-strlen.c (printf_strlen_execute): Initialize
10256         the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
10258 2019-08-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10260         PR target/91528
10261         * config/i386/i386-features.c (convert_scalars_to_vector):
10262         Update crtl->stack_realign_needed, crtl->stack_realign_tried and
10263         crtl->stack_realign_processed.  Update crtl->drap_reg by calling
10264         targetm.calls.get_drap_rtx.  If drap_rtx is non-null then
10265         Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
10267 2019-08-27  Richard Biener  <rguenther@suse.de>
10269         * config/i386/i386-features.h
10270         (general_scalar_chain::~general_scalar_chain): Add.
10271         (general_scalar_chain::insns_conv): New bitmap.
10272         (general_scalar_chain::n_sse_to_integer): New.
10273         (general_scalar_chain::n_integer_to_sse): Likewise.
10274         (general_scalar_chain::make_vector_copies): Adjust signature.
10275         * config/i386/i386-features.c
10276         (general_scalar_chain::general_scalar_chain): Outline,
10277         initialize new members.
10278         (general_scalar_chain::~general_scalar_chain): New.
10279         (general_scalar_chain::mark_dual_mode_def): Record insns
10280         we need to insert conversions at and count them.
10281         (general_scalar_chain::compute_convert_gain): Account
10282         for conversion instructions at chain boundary.
10283         (general_scalar_chain::make_vector_copies): Generate a single
10284         copy for a def by a specific insn.
10285         (general_scalar_chain::convert_registers): First populate
10286         defs_map, then make copies at out-of chain insns.
10288 2019-08-27  Richard Earnshaw  <rearnsha@arm.com>
10290         * config/arm/arm.md (stack_protect_set_insn): Add security-related
10291         comment.
10292         * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
10294 2019-08-27  Martin Liska  <mliska@suse.cz>
10296         * cgraph.c (cgraph_node::remove): Remove dead assignment before
10297         loop.
10298         * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
10299         Enclose in anonymous namespace.
10300         * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
10301         hard_register initialization in braces.
10302         * tree-vrp.h (value_range_base::supports_type_p): Return false
10303         for function with boolean return type.
10305 2019-08-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10307         * config/i386/i386.c (emit_i387_cw_initialization)
10308         <case I387_CW_ROUNDEVEN>: Fix masking operand value.
10310 2019-08-26  Martin Sebor  <msebor@redhat.com>
10312         PR c++/83431
10313         * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
10314         (sprintf_dom_walker): Remove class.
10315         (get_int_range): Make argument const.
10316         (directive::fmtfunc, directive::set_precision): Same.
10317         (format_none): Same.
10318         (build_intmax_type_nodes): Same.
10319         (adjust_range_for_overflow): Same.
10320         (format_floating): Same.
10321         (format_character): Same.
10322         (format_string): Same.
10323         (format_plain): Same.
10324         (get_int_range): Cast away constness.
10325         (format_integer): Same.
10326         (get_string_length): Call get_range_strlen_dynamic.  Handle
10327         null lendata.maxbound.
10328         (should_warn_p): Adjust argument scope qualifier.
10329         (maybe_warn): Same.
10330         (format_directive): Same.
10331         (parse_directive): Same.
10332         (is_call_safe): Same.
10333         (try_substitute_return_value): Same.
10334         (sprintf_dom_walker::handle_printf_call): Rename...
10335         (handle_printf_call): ...to this.  Initialize target to host charmap
10336         here instead of in pass_sprintf_length::execute.
10337         (struct call_info): Make global.
10338         (sprintf_dom_walker::compute_format_length): Make global.
10339         (sprintf_dom_walker::handle_gimple_call): Same.
10340         * passes.def (pass_sprintf_length): Replace with pass_strlen.
10341         * print-rtl.c (print_pattern): Reduce the number of spaces to
10342         avoid -Wformat-truncation.
10343         * tree-pass.h (make_pass_warn_printf): New function.
10344         * tree-ssa-strlen.c (strlen_optimize): New variable.
10345         (get_string_length): Add comments.
10346         (get_range_strlen_dynamic): New function.
10347         (check_and_optimize_call): New function.
10348         (handle_integral_assign): New function.
10349         (strlen_check_and_optimize_stmt): Factor code out into
10350         strlen_check_and_optimize_call and handle_integral_assign.
10351         (strlen_dom_walker::evrp): New member.
10352         (strlen_dom_walker::before_dom_children): Use evrp member.
10353         (strlen_dom_walker::after_dom_children): Use evrp member.
10354         (printf_strlen_execute): New function.
10355         (pass_strlen::gate): Update to handle printf calls.
10356         (dump_strlen_info): New function.
10357         (pass_data_warn_printf): New variable.
10358         (pass_warn_printf): New class.
10359         * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
10360         (handle_printf_call): Same.
10361         * tree-vrp.c (value_range_base::type): Adjust assertion.
10362         * vr-values.c (vr_values::update_value_range): Use type of the first
10363         argument rather than the second.
10365 2019-08-26  Richard Biener  <rguenther@suse.de>
10367         * config/i386/i386-features.c (general_remove_non_convertible_regs):
10368         Remove.
10369         (convert_scalars_to_vector): Do not call it.
10371 2019-08-26  Tejas Joshi  <tejasjoshi9673@gmail.com>
10372             Uros Bizjak  <ubizjak@gmail.com>
10374         * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
10375         CASE_MATHFN_FLOATN for roundeven.
10376         * config/i386/i386.c (ix86_i387_mode_needed): Add case
10377         I387_ROUNDEVEN.
10378         (ix86_mode_needed): Likewise.
10379         (ix86_mode_after): Likewise.
10380         (ix86_mode_entry): Likewise.
10381         (ix86_mode_exit): Likewise.
10382         (ix86_emit_mode_set): Likewise.
10383         (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
10384         * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
10385         (ix86_entity): Add I387_ROUNDEVEN.
10386         (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
10387         * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
10388         (define_int_iterator): Likewise.
10389         (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
10390         (define_constant): Define ROUND_ROUNDEVEN mode.
10391         (define_attr): Add roundeven mode for i387_cw.
10392         (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
10393         * internal-fn.def (ROUNDEVEN): New builtin function.
10394         * optabs.def (roundeven_optab): New optab.
10396 2019-08-26  Tejas Joshi  <tejasjoshi9673@gmail.com>
10398         * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
10399         for ROUNDEVEN.
10400         * builtins.def: Added function definitions for roundeven function
10401         variants.
10402         * fold-const-call.c (fold_const_call_ss): Added case for roundeven
10403         function call.  Adjust condition for floor, ceil, trunc and round.
10404         * fold-const.c (negate_mathfn_p): Added case for roundeven function.
10405         (tree_call_nonnegative_warnv_p): Added case for roundeven function.
10406         (integer_valued_real_call_p): Added case for roundeven function.
10407         * real.c (is_even): New function. Returns true if real number is even,
10408         otherwise returns false.
10409         (is_halfway_below): New function. Returns true if real number is
10410         halfway between two integers, else return false.
10411         (real_roundeven): New function. Round real number to nearest integer,
10412         rounding halfway cases towards even.
10413         * real.h (real_value): Added descriptive comments.  Added function
10414         declaration for roundeven function.
10415         * doc/extend.texi (Other Builtins): List roundeven variants among
10416         functions which can be handled as builtins.
10418 2019-08-26  Richard Biener  <rguenther@suse.de>
10420         PR target/91522
10421         PR target/91527
10422         * config/i386/i386-features.h (general_scalar_chain::defs_map):
10423         New member.
10424         (general_scalar_chain::replace_with_subreg): Remove.
10425         (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
10426         (general_scalar_chain::convert_reg): Adjust signature.
10427         * config/i386/i386-features.c (scalar_chain::add_insn): Do not
10428         iterate over all defs of a reg.
10429         (general_scalar_chain::replace_with_subreg): Remove.
10430         (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
10431         (general_scalar_chain::make_vector_copies): Populate defs_map,
10432         place copy only after defs that are used as vectors in the chain.
10433         (general_scalar_chain::convert_reg): Emit a copy for a specific
10434         def in a specific instruction.
10435         (general_scalar_chain::convert_op): All reg uses are converted here.
10436         (general_scalar_chain::convert_insn): Emit copies for scalar
10437         uses of defs here.  Replace uses with the copies we created.
10438         Replace and convert the def.  Adjust REG_DEAD notes, remove
10439         REG_EQUIV/EQUAL notes.
10440         (general_scalar_chain::convert_registers): Only handle copies
10441         into the chain here.
10443 2019-08-26  Robin Dapp  <rdapp@linux.ibm.com>
10445         * match.pd: Add (T)(A) + CST -> (T)(A + CST).
10447 2019-08-26  Robin Dapp  <rdapp@linux.ibm.com>
10449         * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
10450         Add nop_convert case.
10451         * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
10452         Fold all statements if requested.
10453         * tree-ssa-propagate.h (class substitute_and_fold_engine):
10454         Allow to fold all statements.
10455         * tree-vrp.c (class vrp_folder):
10456         Let substitute_and_fold_engine fold all statements.
10458 2019-08-26  Richard Biener  <rguenther@suse.de>
10460         PR tree-optimization/91526
10461         * passes.def: Note that after late FRE we do TODO_update_address_taken.
10462         * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
10463         TODO_update_address_taken.
10465 2019-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
10467         * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
10468         __STDC_HOSTED__.
10470 2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
10472         * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
10473         machine mode for unspec_volatile operand.
10475 2019-08-23  Wilco Dijkstra  <wdijkstr@arm.com>
10477         * doc/invoke.texi (mneon-for-64bits): Deprecate option.
10478         * config/arm/arm.opt (mneon-for-64bits): Deprecate option.
10479         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
10480         (prefer_neon_for_64bits): Remove.
10481         * config/arm/arm.c (prefer_neon_for_64bits): Remove.
10482         (tune_params): Remove PREF_NEON_64_FALSE uses.
10483         (arm_option_override): Remove prefer_neon selection code.
10484         (arm_print_tune_info): Remove prefer_neon_for_64bits.
10485         * config/arm/arm-protos.h (tune_params): Remove
10486         prefer_neon_for_64bits.
10487         (prefer_neon_for_64bits): Remove.
10489 2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
10491         PR pch/61250
10492         * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
10493         and issue any diagnostics needed before collecting the pre-PCH
10494         state.
10496 2019-08-23  Jakub Jelinek  <jakub@redhat.com>
10498         PR middle-end/91283
10499         * common.opt (fexcess-precision=): Add Optimization flag.  Use
10500         flag_excess_precision variable instead of
10501         flag_excess_precision_cmdline.
10502         * flags.h (class target_flag_state): Remove x_flag_excess_precision
10503         member.
10504         (flag_excess_precision): Don't define.
10505         * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
10506         flag_excess_precision_cmdline.  Remove comment.
10507         * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
10508         and x_flag_excess_precision instead of
10509         frontend_set_flag_excess_precision_cmdline and
10510         x_flag_excess_precision_cmdline.
10511         (fast_math_flags_set_p): Use x_flag_excess_precision instead of
10512         x_flag_excess_precision_cmdline.
10513         * toplev.c (init_excess_precision): Remove.
10514         (lang_dependent_init_target): Don't call it.
10516 2019-08-23  Martin Liska  <mliska@suse.cz>
10518         * lto-wrapper.c (run_gcc): When setting jobserver
10519         set also parallel to 1.  This was done so before r273908.
10521 2019-08-23  Dennis Zhang  <dennis.zhang@arm.com>
10523         * config/arm/arm-cpus.in (cortex-m35p): New entry.
10524         (cortex-a76ae): Likewise.
10525         (cortex-a77): Likewise
10526         * config/arm/arm-tables.opt: Regenerate.
10527         * config/arm/arm-tune.md: Likewise.
10528         * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
10529         cortex-a77 CPU options.
10531 2019-08-23  Martin Liska  <mliska@suse.cz>
10533         * profile.c (instrument_values): Do not set
10534         0 as last argument.
10535         * tree-profile.c (gimple_gen_interval_profiler): Remove
10536         last argument.
10537         (gimple_gen_pow2_profiler): Likewise.
10538         (gimple_gen_topn_values_profiler): Likewise.
10539         (gimple_gen_ic_profiler): Likewise.
10540         (gimple_gen_time_profiler): Likewise.
10541         (gimple_gen_average_profiler): Likewise.
10542         (gimple_gen_ior_profiler): Likewise.
10543         * value-prof.c (dump_histogram_value): Use default
10544         in switch statement instead of HIST_TYPE_MAX.
10545         (stream_in_histogram_value): Likewise.
10546         (gimple_duplicate_stmt_histograms): Do not
10547         use NULL for implicitly set arguments.
10548         (gimple_divmod_values_to_profile): Do not use
10549         reserve+quick_push.
10550         (gimple_indirect_call_to_profile): Likewise.
10551         (gimple_find_values_to_profile): Use implicit
10552         function call arguments.
10553         * value-prof.h (gimple_alloc_histogram_value):
10554         Set default values.
10555         (gimple_gen_interval_profiler): Remove last argument.
10556         (gimple_gen_pow2_profiler): Likewise.
10557         (gimple_gen_topn_values_profiler): Likewise.
10558         (gimple_gen_ic_profiler): Likewise.
10559         (gimple_gen_time_profiler): Likewise.
10560         (gimple_gen_average_profiler): Likewise.
10561         (gimple_gen_ior_profiler): Likewise.
10563 2019-08-22  Martin Sebor  <msebor@redhat.com>
10565         PR middle-end/91490
10566         * builtins.c (c_strlen): Rename argument and introduce new local.
10567         Set no-warning bit on original argument.
10568         * expr.c (string_constant): Pass argument type to fold_ctor_reference.
10569         Fold empty and zero constructors into empty strings.
10570         * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
10571         for missing initializers.
10572         * tree.c (build_string_literal): Handle optional argument.
10573         * tree.h (build_string_literal): Add defaulted argument.
10574         * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
10575         no-warning bit on original expression.
10577 2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
10579         PR target/91481
10580         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
10581         and UNSPEC_DARN_RAW.
10582         (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
10583         UNSPECV_DARN_RAW.
10584         (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
10585         (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
10586         (darn): Use an unspec_volatile, and UNSPECV_DARN.
10588 2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
10590         * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
10591         UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
10592         * config/rs6000/rs6000.md (unspec): ... here.
10593         * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
10594         *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
10595         cmpeqb, *cmpeqb_internal): Delete, move to...
10596         * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
10597         *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
10598         cmpeqb, *cmpeqb_internal): ... here.
10600 2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10602         * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
10603         intrinsics if __ARM_FP.
10604         Use __ARM_FEATURE_CRC32 ifdef guard.
10606 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
10608         * config/arm/arm.md (neon_for_64bits): Remove.
10609         (avoid_neon_for_64bits): Remove.
10610         (arm_adddi3): Always split early.
10611         (arm_subdi3): Always split early.
10612         (negdi2): Remove Neon expansion.
10613         (split zero_extend): Split before reload.
10614         (split sign_extend): Split before reload.
10616 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
10618         * config/arm/iterators.md (qhs_extenddi_cstr): Update.
10619         (qhs_extenddi_cstr): Likewise.
10620         * config/arm/arm.md (ashldi3): Always expand early.
10621         (ashlsi3): Likewise.
10622         (ashrsi3): Likewise.
10623         (zero_extend<mode>di2): Remove Neon variants.
10624         (extend<mode>di2): Likewise.
10625         * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
10626         (signed_shift_di3_neon): Likewise.
10627         (unsigned_shift_di3_neon): Likewise.
10628         (ashrdi3_neon_imm_noclobber): Likewise.
10629         (lshrdi3_neon_imm_noclobber): Likewise.
10630         (<shift>di3_neon): Likewise.
10631         (split extend): Remove DI extend split patterns.
10633 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
10635         * config/arm/arm.md (split and/eor/ior): Remove Neon check.
10636         (split not): Add DImode not splitter.
10637         (anddi3): Remove pattern.
10638         (anddi3_insn): Likewise.
10639         (anddi_zesidi_di): Likewise.
10640         (anddi_sesdi_di): Likewise.
10641         (anddi_notdi_di): Likewise.
10642         (anddi_notzesidi_di): Likewise.
10643         (anddi_notsesidi_di): Likewise.
10644         (iordi3): Likewise.
10645         (iordi3_insn): Likewise.
10646         (iordi_zesidi_di): Likewise.
10647         (iordi_sesidi_di): Likewise.
10648         (xordi3): Likewise.
10649         (xordi3_insn): Likewise.
10650         (xordi_sesidi_di): Likewise.
10651         (xordi_zesidi_di): Likewise.
10652         (one_cmpldi2): Likewise.
10653         (one_cmpldi2_insn): Likewise.
10654         * config/arm/constraints.md: Remove De, Df, Dg constraints.
10655         * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
10656         alternative.
10657         (iwmmxt_xordi3): Likewise.
10658         (iwmmxt_anddi3): Likewise.
10659         * config/arm/neon.md (orndi3_neon): Remove pattern.
10660         (anddi_notdi_di): Likewise.
10661         * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
10662         (arm_iordi_operand_neon): Likewise.
10663         (arm_xordi_operand_neon): Likewise.
10664         * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
10665         (iordi_notzesidi_di): Likewise.
10666         (iordi_notdi_zesidi): Likewise.
10667         (iordi_notsesidi_di): Likewise.
10669 2019-08-22  Richard Earnshaw  <rearnsha@arm.com>
10671         * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
10672         insn.
10673         (iorsi3_compare0_scratch): Likewise.
10675 2019-08-22  Sylvia Taylor  <sylvia.taylor@arm.com>
10677         * config/aarch64/aarch64-simd-builtins.def:
10678         (ld1x4): New.
10679         (st1x4): Likewise.
10680         * config/aarch64/aarch64-simd.md:
10681         (aarch64_ld1x4<VALLDIF:mode>): New pattern.
10682         (aarch64_st1x4<VALLDIF:mode>): Likewise.
10683         (aarch64_ld1_x4_<mode>): Likewise.
10684         (aarch64_st1_x4_<mode>): Likewise.
10685         * config/aarch64/arm_neon.h:
10686         (vld1_s8_x4): New function.
10687         (vld1q_s8_x4): Likewise.
10688         (vld1_s16_x4): Likewise.
10689         (vld1q_s16_x4): Likewise.
10690         (vld1_s32_x4): Likewise.
10691         (vld1q_s32_x4): Likewise.
10692         (vld1_u8_x4): Likewise.
10693         (vld1q_u8_x4): Likewise.
10694         (vld1_u16_x4): Likewise.
10695         (vld1q_u16_x4): Likewise.
10696         (vld1_u32_x4): Likewise.
10697         (vld1q_u32_x4): Likewise.
10698         (vld1_f16_x4): Likewise.
10699         (vld1q_f16_x4): Likewise.
10700         (vld1_f32_x4): Likewise.
10701         (vld1q_f32_x4): Likewise.
10702         (vld1_p8_x4): Likewise.
10703         (vld1q_p8_x4): Likewise.
10704         (vld1_p16_x4): Likewise.
10705         (vld1q_p16_x4): Likewise.
10706         (vld1_s64_x4): Likewise.
10707         (vld1_u64_x4): Likewise.
10708         (vld1_p64_x4): Likewise.
10709         (vld1q_s64_x4): Likewise.
10710         (vld1q_u64_x4): Likewise.
10711         (vld1q_p64_x4): Likewise.
10712         (vld1_f64_x4): Likewise.
10713         (vld1q_f64_x4): Likewise.
10714         (vst1_s8_x4): Likewise.
10715         (vst1q_s8_x4): Likewise.
10716         (vst1_s16_x4): Likewise.
10717         (vst1q_s16_x4): Likewise.
10718         (vst1_s32_x4): Likewise.
10719         (vst1q_s32_x4): Likewise.
10720         (vst1_u8_x4): Likewise.
10721         (vst1q_u8_x4): Likewise.
10722         (vst1_u16_x4): Likewise.
10723         (vst1q_u16_x4): Likewise.
10724         (vst1_u32_x4): Likewise.
10725         (vst1q_u32_x4): Likewise.
10726         (vst1_f16_x4): Likewise.
10727         (vst1q_f16_x4): Likewise.
10728         (vst1_f32_x4): Likewise.
10729         (vst1q_f32_x4): Likewise.
10730         (vst1_p8_x4): Likewise.
10731         (vst1q_p8_x4): Likewise.
10732         (vst1_p16_x4): Likewise.
10733         (vst1q_p16_x4): Likewise.
10734         (vst1_s64_x4): Likewise.
10735         (vst1_u64_x4): Likewise.
10736         (vst1_p64_x4): Likewise.
10737         (vst1q_s64_x4): Likewise.
10738         (vst1q_u64_x4): Likewise.
10739         (vst1q_p64_x4): Likewise.
10740         (vst1_f64_x4): Likewise.
10741         (vst1q_f64_x4): Likewise.
10743 2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10745         * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
10747 2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10748             Richard Sandiford  <richard.sandiford@arm.com>
10750         PR target/88839
10751         * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
10752         (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
10754 2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10756         PR target/90724
10757         * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
10758         in reg if it fails aarch64_plus_operand predicate.
10760 2019-08-21  Richard Biener  <rguenther@suse.de>
10762         PR tree-optimization/91482
10763         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
10764         BUILT_IN_ASSUME_ALIGNED calls.
10766 2019-08-21  Richard Biener  <rguenther@suse.de>
10768         PR target/91498
10769         PR target/91503
10770         * config/i386/i386-features.c
10771         (general_scalar_chain::make_vector_copies): Copy stack temporary
10772         rtx when using it multiple times.
10773         (general_scalar_chain::convert_reg): Likewise.
10775 2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10777         * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
10779 2019-08-20  Matthew Beliveau  <mbelivea@redhat.com>
10781         * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
10782         catch more redundant zero initialization cases.
10783         (dse_dom_walker::dse_optimize_stmt): Likewise.
10785 2019-08-20  Richard Biener  <rguenther@suse.de>
10787         PR lto/91307
10788         * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
10789         by collect2 when targetm.have_ctors_dtors which avoids dragging
10790         in temporary filenames from LTO input objects.
10792 2019-08-20  Richard Biener  <rguenther@suse.de>
10794         PR tree-optimization/37242
10795         * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
10796         to (T)a + (T)b if we know that a + b does not overflow.
10798 2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
10800         PR rtl-optimization/91347
10801         * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
10802         before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
10804 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10806         * calls.h (function_arg_info): Add a pass_by_reference field,
10807         defaulting to false.
10808         * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
10809         when applying pass-by-reference semantics.
10810         (initialize_argument_information): Likewise.
10811         (emit_library_call_value_1): Likewise.
10812         * function.c (assign_parm_data_one): Remove passed_pointer field.
10813         (assign_parm_find_data_types): Don't set it.
10814         (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
10815         (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
10816         arg.pass_by_reference instead of passed_pointer.
10818 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10820         * calls.c (emit_library_call_value_1): Merge arg and orig_arg
10821         into a single function_arg_info, updating its fields when we
10822         apply pass-by-reference and promotion semantics.  Use the
10823         function_arg_info to track the mode rather than keeping it in
10824         a separate local variable.
10825         (initialize_argument_information): Likewise.  Base the final
10826         arg_to_skip on this new function_arg_info rather than creating
10827         a new one from scratch.
10829 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10831         * function.c (assign_parm_data_one): Replace passed_type,
10832         promoted_mode and named_arg with a function_arg_info field.
10833         (assign_parm_find_data_types): Remove local variables and
10834         assign directly to "data".  Make data->passed_mode shadow
10835         data->arg.mode until promotion, then assign the promoted
10836         mode to data->arg.mode.
10837         (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
10838         (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
10839         (assign_parm_remove_parallels, assign_parm_setup_block_p)
10840         (assign_parm_setup_block, assign_parm_setup_reg)
10841         (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
10842         arg.mode instead of promoted_mode, arg.type instead of passed_type
10843         and arg.named instead of named_arg.  Use data->arg for
10844         function_arg_info structures that had the field values passed_type,
10845         promoted_mode and named_arg.  Base other function_arg_infos on
10846         data->arg, changing the necessary properties.
10848 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10850         * calls.h (apply_pass_by_reference_rules): Declare.
10851         * calls.c (apply_pass_by_reference_rules): New function.
10852         * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
10853         * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
10854         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
10855         * function.c (assign_parm_find_data_types): Likewise.
10856         * var-tracking.c (prepare_call_arguments): Likewise.
10858 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10860         * target.def (must_pass_in_stack): Take a function_arg_info instead
10861         of a mode and a type.
10862         * doc/tm.texi: Regenerate.
10863         * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
10864         instead of a mode and a type.
10865         (must_pass_in_stack_var_size_or_pad): Likewise.
10866         * calls.c (must_pass_in_stack_var_size): Likewise.
10867         (must_pass_in_stack_var_size_or_pad): Likewise.
10868         (initialize_argument_information): Update call to
10869         targetm.calls.must_pass_in_stack.
10870         (must_pass_va_arg_on_stack): Likewise.
10871         * function.c (assign_parm_find_entry_rtl): Likewise.
10872         * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
10873         * config/alpha/alpha.c (alpha_function_arg): Likewise.
10874         (alpha_function_arg_advance): Likewise.
10875         * config/cr16/cr16.c (cr16_function_arg): Likewise.
10876         (cr16_function_arg_advance): Likewise.
10877         * config/cris/cris.c (cris_pass_by_reference): Likewise.
10878         (cris_arg_partial_bytes): Likewise.
10879         * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
10880         * config/lm32/lm32.c (lm32_function_arg): Likewise.
10881         * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
10882         (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
10883         * config/mips/mips.c (mips_pass_by_reference): Likewise.
10884         * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
10885         (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
10886         * config/sh/sh.c (sh_pass_by_reference): Likewise.
10887         * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
10888         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
10889         * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
10890         instead of a mode and a type.
10891         * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
10892         (fr30_num_arg_regs): Likewise.
10893         (fr30_setup_incoming_varargs): Update calls accordingly.
10894         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
10895         (fr30_function_arg_advance): Likewise.
10896         * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
10897         instead of a mode and a type.
10898         * config/gcn/gcn.c (num_arg_regs): Likewise.
10899         (gcn_function_arg, gcn_function_arg_advance): Update calls to
10900         num_arg_regs and targetm.calls.must_pass_in_stack.
10901         (gcn_arg_partial_bytes): Likewise.
10902         * config/i386/i386.c (ix86_must_pass_in_stack): Take a
10903         function_arg_info instead of a mode and a type.
10904         (classify_argument): Update call accordingly.
10905         * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
10906         function_arg_info instead of a mode and a type.
10907         * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
10908         Likewise.
10909         * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
10910         (rs6000_parm_needs_stack): Update call accordingly.
10911         (setup_incoming_varargs): Likewise.
10913 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10915         * target.def (callee_copies): Take a function_arg_info instead
10916         of a mode, type and named flag.
10917         * doc/tm.texi: Regenerate.
10918         * targhooks.h (hook_callee_copies_named): Take a function_arg_info
10919         instead of a mode, type and named flag.
10920         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
10921         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
10922         (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
10923         * targhooks.c (hook_callee_copies_named): Take a function_arg_info
10924         instead of a mode, type and named flag.
10925         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
10926         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
10927         (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
10928         * calls.h (reference_callee_copied): Take a function_arg_info
10929         instead of a mode, type and named flag.
10930         * calls.c (reference_callee_copied): Likewise.
10931         (initialize_argument_information): Update call accordingly.
10932         (emit_library_call_value_1): Likewise.
10933         * function.c (gimplify_parameters): Likewise.
10934         * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
10935         hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
10936         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
10937         * config/c6x/c6x.c (c6x_callee_copies): Delete.
10938         (TARGET_CALLEE_COPIES): Define to
10939         hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
10940         * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
10941         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
10942         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
10943         * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
10944         instead of a mode, type and named flag.
10945         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
10946         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
10947         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
10948         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
10949         * config/msp430/msp430.c (msp430_callee_copies): Delete.
10950         (TARGET_CALLEE_COPIES): Define to
10951         hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
10952         * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
10953         instead of a mode, type and named flag.
10954         * config/sh/sh.c (sh_callee_copies): Likewise.
10955         * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
10956         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
10957         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
10959 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10961         * target.def (function_arg_advance): Take a function_arg_info instead
10962         of a mode, type and named flag.
10963         * doc/tm.texi: Regenerate.
10964         * targhooks.h (default_function_arg_advance): Take a function_arg_info
10965         instead of a mode, type and named flag.
10966         * targhooks.c (default_function_arg_advance): Likewise.
10967         * calls.c (initialize_argument_information): Update call to
10968         targetm.calls.function_arg_advance.
10969         (emit_library_call_value_1): Likewise.
10970         * dse.c (get_call_args): Likewise.
10971         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
10972         * function.c (assign_parms, gimplify_parameters): Likewise.
10973         * var-tracking.c (prepare_call_arguments): Likewise.
10974         * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
10975         function_arg_info instead of a mode, type and named flag.
10976         (aarch64_setup_incoming_varargs): Update call accordingly.
10977         * config/alpha/alpha.c (alpha_function_arg_advance): Take a
10978         function_arg_info instead of a mode, type and named flag.
10979         (alpha_setup_incoming_varargs): Update call accordingly.
10980         * config/arc/arc.c (arc_function_arg_advance): Take a
10981         function_arg_info instead of a mode, type and named flag.
10982         (arc_setup_incoming_varargs): Update call accordingly.
10983         * config/arm/arm.c (arm_function_arg_advance): Take a
10984         function_arg_info instead of a mode, type and named flag.
10985         (cmse_func_args_or_return_in_stack): Update call accordingly.
10986         (arm_function_ok_for_sibcall): Likewise.
10987         (cmse_nonsecure_call_clear_caller_saved): Likewise.
10988         * config/avr/avr.c (avr_function_arg_advance): Take a
10989         function_arg_info instead of a mode, type and named flag.
10990         * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
10991         * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
10992         (c6x_call_saved_register_used): Update call accordingly.
10993         * config/cr16/cr16.c (cr16_function_arg_advance): Take a
10994         function_arg_info instead of a mode, type and named flag.
10995         * config/cris/cris.c (cris_function_arg_advance): Likewise.
10996         * config/csky/csky.c (csky_function_arg_advance): Likewise.
10997         (csky_setup_incoming_varargs): Update call accordingly.
10998         * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
10999         function_arg_info instead of a mode, type and named flag.
11000         * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
11001         * config/frv/frv.c (frv_function_arg_advance): Likewise.
11002         * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
11003         * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
11004         * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
11005         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
11006         (ix86_setup_incoming_varargs): Update call accordingly.
11007         * config/ia64/ia64.c (ia64_function_arg_advance): Take a
11008         function_arg_info instead of a mode, type and named flag.
11009         (ia64_setup_incoming_varargs): Update call accordingly.
11010         * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
11011         function_arg_info instead of a mode, type and named flag.
11012         (iq2000_expand_prologue): Update call accordingly.
11013         * config/lm32/lm32.c (lm32_function_arg_advance): Take a
11014         function_arg_info instead of a mode, type and named flag.
11015         * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
11016         * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
11017         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
11018         * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
11019         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
11020         Likewise.
11021         (microblaze_expand_prologue): Update call accordingly.
11022         * config/mips/mips.c (mips_function_arg_advance): Take a
11023         function_arg_info instead of a mode, type and named flag.
11024         (mips_setup_incoming_varargs): Update call accordingly.
11025         (mips_output_args_xfer): Likewise.
11026         * config/mmix/mmix.c (mmix_function_arg_advance): Take a
11027         function_arg_info instead of a mode, type and named flag.
11028         * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
11029         * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
11030         * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
11031         * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
11032         * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
11033         (nios2_setup_incoming_varargs): Update call accordingly.
11034         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
11035         function_arg_info instead of a mode, type and named flag.
11036         * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
11037         * config/pa/pa.c (pa_function_arg_advance): Likewise.
11038         * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
11039         * config/pru/pru.c (pru_function_arg_advance): Likewise.
11040         * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
11041         (riscv_setup_incoming_varargs): Update call accordingly.
11042         * config/rl78/rl78.c (rl78_function_arg_advance): Take a
11043         function_arg_info instead of a mode, type and named flag.
11044         * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
11045         Likewise.
11046         * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
11047         (rs6000_parm_needs_stack): Update call accordingly.
11048         * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
11049         instead of a mode, type and named flag.
11050         * config/s390/s390.c (s390_function_arg_advance): Likewise.
11051         (s390_call_saved_register_used): Update call accordingly.
11052         * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
11053         instead of a mode, type and named flag.
11054         (sh_output_mi_thunk): Update call accordingly.
11055         * config/sparc/sparc.c (sparc_function_arg_advance): Take a
11056         function_arg_info instead of a mode, type and named flag.
11057         * config/spu/spu.c (spu_function_arg_advance): Likewise.
11058         (spu_setup_incoming_varargs): Update call accordingly.
11059         * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
11060         function_arg_info instead of a mode, type and named flag.
11061         * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
11062         (tilegx_setup_incoming_varargs): Update call accordingly.
11063         * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
11064         function_arg_info instead of a mode, type and named flag.
11065         (tilegx_setup_incoming_varargs): Update call accordingly.
11066         * config/v850/v850.c (v850_function_arg_advance): Take a
11067         function_arg_info instead of a mode, type and named flag.
11068         * config/vax/vax.c (vax_function_arg_advance): Likewise.
11069         * config/visium/visium.c (visium_function_arg_advance): Likewise.
11070         (visium_setup_incoming_varargs): Update call accordingly.
11071         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
11072         function_arg_info instead of a mode, type and named flag.
11074 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
11076         * target.def (function_arg, function_incoming_arg): Take a
11077         function_arg_info instead of a mode, tree and named flag.
11078         * doc/tm.texi: Regenerate.
11079         * targhooks.h (default_function_arg): Take a function_arg_info
11080         instead of a mode, tree and named flag.
11081         (default_function_incoming_arg): Likewise.
11082         * targhooks.c (default_function_arg): Likewise.
11083         (default_function_incoming_arg): Likewise.
11084         * calls.h (function_arg_info::end_marker_p): New function.
11085         (function_arg_info::end_marker): Likewise.
11086         * calls.c (prepare_call_address, initialize_argument_information)
11087         (expand_call, emit_library_call_value_1): Update calls to
11088         targetm.calls.function_arg and targetm.calls.function_incoming_arg.
11089         * dse.c: Include calls.h.
11090         (get_call_args): Update call to targetm.calls.function_arg.
11091         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
11092         * var-tracking.c (prepare_call_arguments): Likewise.
11093         * function.c (assign_parm_find_entry_rtl): Update call to
11094         targetm.calls.function_incoming_arg.
11095         * config/aarch64/aarch64.c (aarch64_function_arg): Take a
11096         function_arg_info instead of a mode, tree and named flag.
11097         * config/alpha/alpha.c (alpha_function_arg): Likewise.
11098         * config/arc/arc.c (arc_function_arg): Likewise.
11099         * config/arm/arm.c (arm_function_arg): Likewise.
11100         (cmse_func_args_or_return_in_stack): Update call accordingly.
11101         (arm_function_ok_for_sibcall): Likewise.
11102         (cmse_nonsecure_call_clear_caller_saved): Likewise.
11103         * config/avr/avr.c (avr_function_arg): Take a function_arg_info
11104         instead of a mode, tree and named flag.
11105         * config/bfin/bfin.c (bfin_function_arg): Likewise.
11106         * config/c6x/c6x.c (c6x_function_arg): Likewise.
11107         (c6x_call_saved_register_used): Update call accordingly.
11108         * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
11109         instead of a mode, tree and named flag.
11110         * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
11111         (cris_function_arg_1): Likewise.
11112         * config/csky/csky.c (csky_function_arg): Likewise.
11113         * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
11114         * config/fr30/fr30.c (fr30_function_arg): Likewise.
11115         * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
11116         (frv_function_arg_1): Likewise.
11117         * config/ft32/ft32.c (ft32_function_arg): Likewise.
11118         * config/gcn/gcn.c (gcn_function_arg): Likewise.
11119         * config/h8300/h8300.c (h8300_function_arg): Likewise.
11120         * config/i386/i386.c (ix86_function_arg): Likewise.
11121         * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
11122         (ia64_function_arg_1): Likewise.
11123         * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
11124         (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
11125         accordingly.
11126         * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
11127         instead of a mode, tree and named flag.
11128         * config/m32c/m32c.c (m32c_function_arg): Likewise.
11129         * config/m32r/m32r.c (m32r_function_arg): Likewise.
11130         * config/m68k/m68k.c (m68k_function_arg): Likewise.
11131         * config/mcore/mcore.c (mcore_function_arg): Likewise.
11132         * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
11133         (microblaze_expand_prologue): Update call accordingly.
11134         * config/mips/mips.c (mips_function_arg): Take a function_arg_info
11135         instead of a mode, tree and named flag.
11136         * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
11137         (mmix_function_arg_1): Likewise.
11138         * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
11139         * config/moxie/moxie.c (moxie_function_arg): Likewise.
11140         * config/msp430/msp430.c (msp430_function_arg): Likewise.
11141         * config/nds32/nds32.c (nds32_function_arg): Likewise.
11142         * config/nios2/nios2.c (nios2_function_arg): Likewise.
11143         * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
11144         (nvptx_function_incoming_arg): Likewise.
11145         * config/or1k/or1k.c (or1k_function_arg): Likewise.
11146         * config/pa/pa.c (pa_function_arg): Likewise.
11147         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
11148         * config/pru/pru.c (pru_function_arg): Likewise.
11149         * config/riscv/riscv.c (riscv_function_arg): Likewise.
11150         * config/rl78/rl78.c (rl78_function_arg): Likewise.
11151         * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
11152         * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
11153         (rs6000_parm_needs_stack): Update call accordingly.
11154         * config/rx/rx.c (rx_function_arg): Take a function_arg_info
11155         instead of a mode, tree and named flag.
11156         * config/s390/s390.c (s390_function_arg): Likewise.
11157         (s390_call_saved_register_used): Update call accordingly.
11158         * config/sh/sh.c (sh_function_arg): Take a function_arg_info
11159         instead of a mode, tree and named flag.
11160         (sh_output_mi_thunk): Update call accordingly.
11161         * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
11162         (sparc_function_incoming_arg): Take a function_arg_info instead of
11163         a mode, tree and named flag.
11164         * config/spu/spu.c (spu_function_arg): Likewise.
11165         * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
11166         * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
11167         * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
11168         * config/v850/v850.c (v850_function_arg): Likewise.
11169         * config/vax/vax.c (vax_function_arg): Likewise.
11170         * config/visium/visium.c (visium_function_arg): Likewise.
11171         * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
11172         (xtensa_function_incoming_arg): Likewise.
11174 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
11176         * target.def (setup_incoming_varargs): Take a function_arg_info
11177         instead of a mode and tree.
11178         * doc/tm.texi: Regenerate.
11179         * targhooks.h (default_setup_incoming_varargs): Take a
11180         function_arg_info instead of a mode and tree.
11181         * targhooks.c (default_setup_incoming_varargs): Likewise.
11182         * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
11183         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
11184         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
11185         * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
11186         * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
11187         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
11188         * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
11189         * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
11190         Likewise.
11191         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
11192         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
11193         * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
11194         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
11195         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
11196         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
11197         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
11198         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11199         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
11200         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
11201         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
11202         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
11203         * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
11204         * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
11205         * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
11206         * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
11207         * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
11208         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
11209         * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
11210         * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
11211         * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
11212         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
11213         * function.c (assign_parms_setup_varargs): Update call to
11214         targetm.calls.setup_incoming_varargs.
11216 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
11218         * target.def (pass_by_reference): Take a function_arg_info instead
11219         of a mode, type and named flag.
11220         * doc/tm.texi: Regenerate.
11221         * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
11222         accordingly.
11223         (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
11224         * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
11225         function_arg_info instead of a mode, type and named flag.
11226         (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
11227         * calls.h (pass_by_reference): Take a function_arg_info instead of a
11228         mode, type and named flag.
11229         * calls.c (pass_by_reference): Likewise.
11230         (pass_va_arg_by_reference): Update call accordingly.
11231         (initialize_argument_information): Likewise.
11232         (emit_library_call_value_1): Likewise.
11233         * function.c (assign_parm_find_data_types): Likewise.
11234         * var-tracking.c (prepare_call_arguments): Likewise.
11235         * stor-layout.c: Include calls.h.
11236         (compute_record_mode): Update call to targetm.calls.pass_by_reference.
11237         * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
11238         function_arg_info instead of a mode, type and named flag.
11239         * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
11240         * config/arc/arc.c (arc_pass_by_reference): Likewise.
11241         * config/arm/arm.c (arm_pass_by_reference): Likewise.
11242         * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
11243         * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
11244         (c6x_call_saved_register_used): Update call to pass_by_reference.
11245         * config/cris/cris.c (cris_pass_by_reference): Take a
11246         function_arg_info instead of a mode, type and named flag.
11247         * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
11248         function_arg_info instead of a mode, type and named flag.
11249         (epiphany_arg_partial_bytes): Update call accordingly.
11250         * config/ft32/ft32.c (ft32_pass_by_reference): Take a
11251         function_arg_info instead of a mode, type and named flag.
11252         (ft32_arg_partial_bytes): Update call accordingly.
11253         * config/i386/i386.c (ix86_pass_by_reference): Take a
11254         function_arg_info instead of a mode, type and named flag.
11255         * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
11256         * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
11257         * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
11258         (m32r_return_in_memory): Update call accordingly.
11259         * config/mips/mips.c (mips_pass_by_reference): Take a
11260         function_arg_info instead of a mode, type and named flag.
11261         * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
11262         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
11263         * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
11264         (moxie_arg_partial_bytes): Update call accordingly.
11265         * config/msp430/msp430.c (msp430_pass_by_reference): Take a
11266         function_arg_info instead of a mode, type and named flag.
11267         * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
11268         * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
11269         * config/pa/pa.c (pa_pass_by_reference): Likewise.
11270         * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
11271         (riscv_return_in_memory): Update call accordingly.
11272         * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
11273         function_arg_info instead of a mode, type and named flag.
11274         * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
11275         (rs6000_parm_needs_stack): Update call to pass_by_reference.
11276         * config/s390/s390.c (s390_pass_by_reference): Take a
11277         function_arg_info instead of a mode, type and named flag.
11278         (s390_call_saved_register_used): Update call accordingly.
11279         * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
11280         instead of a mode, type and named flag.
11281         * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
11282         * config/spu/spu.c (spu_pass_by_reference): Likewise.
11283         * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
11284         * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
11285         * config/v850/v850.c (v850_pass_by_reference): Likewise.
11286         * config/visium/visium.c (visium_pass_by_reference): Likewise.
11288 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
11290         * target.def (arg_partial_bytes): Take a function_arg_info instead
11291         of a mode, type and named flag.
11292         * doc/tm.texi: Regenerate.
11293         * target.h (function_arg_info): Declare.
11294         * calls.h (function_arg_info): New class.
11295         * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
11296         (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
11297         * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
11298         (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
11299         * calls.c (initialize_argument_information): Update call to
11300         targetm.calls.partial_bytes.
11301         (emit_library_call_value_1): Likewise.
11302         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
11303         * function.c (assign_parm_find_entry_rtl): Likewise.
11304         * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
11305         function_arg_info instead of a mode, type and named flag.
11306         * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
11307         * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
11308         (cmse_func_args_or_return_in_stack): Update accordingly.
11309         * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
11310         function_arg_info instead of a mode, type and named flag.
11311         * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
11312         * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
11313         * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
11314         * config/fr30/fr30.c: Include calls.h.
11315         (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
11316         type and named flag.
11317         * config/frv/frv.c: Include calls.h.
11318         (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
11319         type and named flag.
11320         * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
11321         * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
11322         * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
11323         * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
11324         * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
11325         * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
11326         * config/microblaze/microblaze.c (function_arg_partial_bytes):
11327         Likewise.
11328         * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
11329         * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
11330         * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
11331         * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
11332         * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
11333         * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
11334         * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
11335         * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
11336         * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
11337         * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
11338         * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
11339         (rs6000_parm_needs_stack): Update call accordingly.
11340         * config/sh/sh.c (sh_arg_partial_bytes): Take a
11341         function_arg_info instead of a mode, type and named flag.
11342         * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
11343         * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
11345 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
11347         * calls.h (must_pass_va_arg_in_stack): Declare.
11348         * calls.c (must_pass_va_arg_in_stack): New function.
11349         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
11350         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
11351         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
11352         Likewise.
11353         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11355 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
11357         * calls.h (pass_va_arg_by_reference): Declare.
11358         * calls.c (pass_va_arg_by_reference): New function.
11359         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
11360         * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
11361         * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
11362         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11363         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11364         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
11365         (mips_gimplify_va_arg_expr): Likewise.
11366         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
11367         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11368         * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
11369         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
11370         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
11371         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
11372         * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
11373         * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
11374         * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
11375         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11376         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
11378 2019-08-20  Richard Biener  <rguenther@suse.de>
11380         PR target/91498
11381         * config/i386/i386-features.c (general_scalar_chain::convert_op):
11382         Use (vec_merge (vec_duplicate..)) style vector from scalar move.
11383         (convert_scalars_to_vector): Add timode_p parameter and use it
11384         to guard TImode-only operation.
11385         (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
11386         (pass_stv::execute): Pass down timode_p.
11388 2019-08-20  Lili Cui  <lili.cui@intel.com>
11390         * common/config/i386/i386-common.c
11391         (processor_names): Add tigerlake and cooperlake.
11392         (processor_alias_table): Add tigerlake and cooperlake.
11393         * config.gcc: Add -march=tigerlake and cooperlake.
11394         * config/i386/driver-i386.c
11395         (host_detect_local_cpu): Detect tigerlake and cooperlake.
11396         Add "has_avx" to classify processor.
11397         * config/i386/i386-builtins.c (processor_model) :
11398         Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
11399         (arch_names_table): Add tigerlake and cooperlake.
11400         (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE
11401         and PROCESSOR_COOPERLAKE.
11402         * config/i386/i386-c.c
11403         (ix86_target_macros_internal): Handle tigerlake and cooperlake.
11404         * config/i386/i386-options.c
11405         (m_TIGERLAKE): Define.
11406         (m_COOPERLAKE): Ditto.
11407         (m_CORE_AVX512): Ditto.
11408         (processor_cost_table): Add cascadelake.
11409         (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
11410         * config/i386/i386.h
11411         (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
11412         (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
11413         (PTA_MOVDIRI): Ditto.
11414         (PTA_MOVDIR64B): Ditto.
11415         (PTA_COOPERLAKE): Ditto.
11416         (PTA_TIGERLAKE): Ditto.
11417         (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
11418         * doc/extend.texi: Add tigerlake and cooperlake.
11419         * doc/invoke.texi: Add tigerlake and cooperlake.
11421 2019-08-20  Gerald Pfeifer  <gerald@pfeifer.com>
11423         * doc/install.texi (Specific, alpha): Remove note to use
11424         binutils 2.11.2 or later.
11426 2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11428         PR middle-end/89544
11429         * function.c (assign_parm_find_stack_rtl): Use larger alignment
11430         when possible.
11432 2019-08-19  Joel Hutton  <Joel.Hutton@arm.com>
11434         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
11435         * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
11436         * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
11437         (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
11438         * config/aarch64/constraints.md (Dt): New constraint
11439         * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
11441 2019-08-19  Richard Biener  <rguenther@suse.de>
11443         PR tree-optimization/91403
11444         * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
11445         cases we can handle with tail-recursion...
11446         (follow_ssa_edge_expr): ... here.  Do so.
11448 2019-08-19  Kito Cheng  <kito.cheng@sifive.com>
11450         PR target/91441
11451         * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
11452         implemented for -fsanitize=kernel-address, and merge check logic
11453         with -fsanitize=address.
11455 2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>
11457         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
11458         for cpu and machine.  Factor 64/32b builtins.
11460 2019-08-18  Gerald Pfeifer  <gerald@pfeifer.com>
11462         * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
11463         gone, point to sourceforge.net.
11465 2019-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
11466         
11467         * doc/ux.texi (User Experience Guidelines): Update reference.
11469 2019-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
11470         
11471         * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
11472         not LGPL".
11474 2019-08-16  Eric Botcazou  <ebotcazou@adacore.com>
11476         * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
11477         of NULL.  Add guard for broken VIEW_CONVERT_EXPRs.
11479 2019-08-16  Martin Sebor  <msebor@redhat.com>
11481         * tree.def (TYPE_SIZE): Clarify.
11482         * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
11484 2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11486         PR tree-optimization/91109
11487         * lra-int.h (lra_need_for_scratch_reg_p): Declare.
11488         * lra.c (lra): Use lra_need_for_scratch_reg_p.
11489         * lra-spills.c (lra_need_for_scratch_reg_p): New function.
11491 2019-08-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11493         * config/i386/mmx.md (mmxdoublemode): New mode attribute.
11494         (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
11495         mmx_uavgv4hi3 using MMXMODE12 mode iterator.
11496         (uavg<mode>3_ceil): New expander.
11497         * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
11498         mode iterator when creating CONST1_RTX.
11499         (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
11500         (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
11501         mode iterator for const1_operand predicate.
11503 2019-08-16  Richard Biener  <rguenther@suse.de>
11505         * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
11506         (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
11507         follow_ssa_edge.
11508         (follow_ssa_edge_in_condition_phi_branch): Likewise.
11509         (analyze_evolution_in_loop): Likewise.
11510         (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
11511         (follow_ssa_edge_expr): ... here.  Refactor code.
11513 2019-08-16  Richard Biener  <rguenther@suse.de>
11515         PR target/91469
11516         * config/i386/i386-features.c
11517         (general_scalar_chain::replace_with_subreg): Stop at memory operands.
11519 2019-08-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11521         PR other/91255
11522         * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
11523         only if subst_name matches curr_attr string.
11525 2019-08-16  Richard Biener  <rguenther@suse.de>
11527         * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
11528         stmt at gsi_p, instead replace it with a NOP removed later.
11529         (pass_forwprop::execute): Fully propagate lattice, DCE stmts
11530         that became dead because of that.
11532 2019-08-16  Aldy Hernandez  <aldyh@redhat.com>
11534         * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
11535         for which we can't represent a range.
11536         * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
11537         set_varying.
11538         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
11539         Set VR_UNDEFINED if type is not supported.
11540         * tree-ssanames.c (get_range_info): Pass type to set_varying.
11541         * tree-vrp.c (value_range_base::check): Assert that a varying has
11542         min/max set.
11543         (value_range_base::equal_p): Early bail for undefines.
11544         (value_range_base::set_varying): Accept a type.
11545         (value_range::set_varying): Same.
11546         (value_range_base::type): VARYING can have a type, while UNDEFINE
11547         is typeless.
11548         (value_range_base::dump): Print type for VARYING nodes.
11549         (value_range_base::set): Add type to VARYING.
11550         (extract_range_from_multiplicative_op): Pass type to set_varying.
11551         (extract_range_from_binary_expr): Same.
11552         (value_range_base::intersect_helper): Same.
11553         (value_range_base::union_helper): Same.
11554         (value_range_base::normalize_symbolics): Same.
11555         (determine_value_range_1): Same.
11556         * tree-vrp.h (class value_range_base): Add type to set_varying.
11557         Add prototype for dump(void).
11558         Add prototype for supports_type_p.
11559         (class value_range): Add type to set_varying.
11560         Add prototype for dump(void).
11561         * vr-values.c (set_value_range_to_truthvalue): Pass type to
11562         set_varying.
11563         (vr_values::get_lattice_entry): Set varying even if propagation
11564         finished.
11565         Pass type to set_varying.
11566         (vr_values::get_value_range): Remove vr_const_varying.
11567         Reallocate the lattice if needed.
11568         (vr_values::update_value_range): Pass type to set_varying.
11569         (vr_values::extract_range_for_var_from_comparison_expr): Same.
11570         (vr_values::extract_range_from_binary_expr): Same.
11571         (vr_values::extract_range_from_unary_expr): Same.
11572         (vr_values::extract_range_from_cond_expr): Same.
11573         (vr_values::check_for_binary_op_overflow): Same.
11574         (vr_values::extract_range_basic): Same.
11575         (vr_values::extract_range_from_assignment): Same.
11576         (vr_values::vr_values): Increase size of num_vr_values.
11577         (vr_values::extract_range_from_phi_node): Pass type to
11578         set_varying.
11580 2019-08-15  H.J. Lu  <hongjiu.lu@intel.com>
11582         PR target/90878
11583         * config/i386/i386.c (inline_memory_move_cost): Use hard_register
11584         for costs of hard register moves.
11585         (ix86_register_move_cost): Likewise.
11586         * config/i386/i386.h (processor_costs): Move costs of hard
11587         register moves to hard_register.  Add int_load, int_store,
11588         xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
11589         sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
11590         for costs of RTL expressions.
11591         * config/i386/x86-tune-costs.h: Move costs of hard register
11592         moves to hard_register.  Duplicate int_load, int_store,
11593         xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
11594         sse_load, sse_store for costs of RTL expressions.
11596 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11598         * target.def (setup_incoming_vararg_bounds): Remove.
11599         * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
11600         * doc/tm.texi: Regenerate.
11601         * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
11602         * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
11603         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
11604         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
11606 2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
11608         MSP430: Fix lines over 80 characters long in
11609         config/msp430/*.{c,h} files
11611         * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
11612         specifier in string.
11613         (msp430_select_hwmult_lib): Split line more than 80 characters long.
11614         * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
11615         redundant old comment.
11616         * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
11617         Split line more than 80 characters long.
11618         * config/msp430/msp430.c (msp430_option_override): Likewise.
11619         (msp430_return_in_memory): Likewise.
11620         (msp430_gimplify_va_arg_expr): Likewise.
11621         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
11622         (msp430_legitimate_constant): Likewise.
11623         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
11624         (msp430_attr): Likewise.
11625         (msp430_data_attr): Likewise.
11626         (msp430_start_function): Likewise.
11627         (gen_prefix): Likewise.
11628         (msp430_init_sections): Likewise.
11629         (msp430_select_section): Likewise.
11630         (msp430_function_section): Likewise.
11631         (msp430_unique_section): Likewise.
11632         (msp430_output_aligned_decl_common): Likewise.
11633         (msp430_do_not_relax_short_jumps): Likewise.
11634         (msp430_init_builtins): Likewise.
11635         (msp430_expand_delay_cycles): Likewise.
11636         (msp430_expand_prologue): Likewise.
11637         (msp430_expand_epilogue): Likewise.
11638         (msp430_expand_helper): Likewise.
11639         (msp430_split_movsi): Likewise.
11640         (msp430_print_operand): Likewise.
11641         (msp430_return_addr_rtx): Likewise.
11642         (msp430x_extendhisi): Likewise.
11643         * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
11644         (ASM_SPEC): Likewise.
11645         Remove very obvious comments.
11646         (LIB_SPEC): Split line more than 80 characters long.
11647         (EH_RETURN_HANDLER_RTX): Likewise.
11648         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
11650 2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
11652         MSP430: Fix whitespace errors and incorrect indentation in
11653         config/msp430/*.{c,h} files
11655         * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
11656         (msp430_select_hwmult_lib): Likewise.
11657         * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
11658         (msp430_extract_mcu_data): Likewise.
11659         (struct t_msp430_mcu_data): Likewise.
11660         * config/msp430/msp430.c (struct machine_function): Remove whitespace
11661         before left square bracket.
11662         (msp430_option_override): Fix indentation.
11663         (msp430_hard_regno_nregs_with_padding): Likewise.
11664         (msp430_initial_elimination_offset): Likewise.
11665         (msp430_special_register_convention_p): Remove whitespace before left
11666         square bracket and after exclamation mark.
11667         (msp430_evaluate_arg): Likewise.
11668         (msp430_callee_copies): Fix indentation.
11669         (msp430_gimplify_va_arg_expr): Likewise.
11670         (msp430_function_arg_advance): Remove whitespace before left square
11671         bracket.
11672         (reg_ok_for_addr): Likewise.
11673         (msp430_preserve_reg_p): Likewise.
11674         (msp430_compute_frame_info): Likewise.
11675         (msp430_asm_output_addr_const_extra): Add space between function name
11676         and open parenthesis.
11677         (has_section_name): Fix indentation.
11678         (msp430_attr): Remove trailing whitespace.
11679         (msp430_section_attr): Likewise.
11680         (msp430_data_attr): Likewise.
11681         (struct msp430_attribute_table): Fix comment and whitespace.
11682         (msp430_start_function): Remove whitespace before left square bracket.
11683         Add space between function name and open parenthesis.
11684         (msp430_select_section): Remove trailing whitespace.
11685         (msp430_section_type_flags): Remove trailing whitespace.
11686         (msp430_unique_section): Remove space before closing parenthesis.
11687         (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
11688         (msp430_builtins): Remove whitespace before left square bracket.
11689         (msp430_init_builtins): Fix indentation.
11690         (msp430_expand_prologue): Remove whitespace before left square bracket.
11691         Remove space before closing parenthesis.
11692         (msp430_expand_epilogue): Remove whitespace before left square bracket.
11693         (msp430_split_movsi): Remove space before closing parenthesis.
11694         (helper_function_name_mappings): Fix indentation.
11695         (msp430_use_f5_series_hwmult): Fix whitespace.
11696         (use_32bit_hwmult): Likewise.
11697         (msp430_no_hwmult): Likewise.
11698         (msp430_output_labelref): Remove whitespace before left square bracket.
11699         (msp430_print_operand_raw): Likewise.
11700         (msp430_print_operand_addr): Likewise.
11701         (msp430_print_operand): Add two spaces after '.' in comment.
11702         Fix trailing whitespace.
11703         (msp430x_extendhisi): Fix indentation.
11704         * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
11705         tab.
11706         (PC_REGNUM): Likewise.
11707         (STACK_POINTER_REGNUM): Likewise.
11708         (CC_REGNUM): Likewise.
11710 2019-08-15  Richard Biener  <rguenther@suse.de>
11712         PR target/91454
11713         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
11714         helper.
11715         (general_scalar_chain::make_vector_copies): Use it.
11717 2019-08-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11719         * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
11721 2019-08-15  Martin Liska  <mliska@suse.cz>
11723         * tree-ssa-dce.c (propagate_necessity): We can't reach now
11724         operators with no arguments.
11725         (eliminate_unnecessary_stmts): Likewise here.
11727 2019-08-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11729         * config/i386/i386-features.c (general_scalar_chain::convert_insn)
11730         <case COMPARE>: Revert 2019-08-14 change.
11731         (convertible_comparison_p): Revert 2019-08-14 change.  Return false
11732         for (TARGET_64BIT || mode != DImode).
11734 2019-08-15  Aldy Hernandez  <aldyh@redhat.com>
11736         * tree-vrp.c (value_range_base::set): Merge in code from
11737         value_range_base::set_and_canonicalize.
11738         Enforce canonicalization at set time.
11739         Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
11740         (value_range_base::set_undefined): Inline call to set().
11741         (value_range_base::set_varying): Same.
11742         (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
11743         (vrp_val_max): New argument handle_pointers.
11744         (vrp_val_min): Same.
11745         (ranges_from_anti_range): Same.
11746         (extract_range_into_wide_ints): Use tree argument instead of sign
11747         and precision.
11748         (extract_range_from_multiplicative_op): Take in tree type instead
11749         of precision and sign.  Adapt function for canonicalized ranges.
11750         (extract_range_from_binary_expr): Pass type to
11751         extract_range_from_multiplicative_op.
11752         Adapt for canonicalized ranges.
11753         (extract_range_from_unary_expr): Same.
11754         (value_range_base::intersect_helper): Adjust for canonicalized
11755         ranges.
11756         (value_range_base::union_helper): Same.
11757         (value_range_base::normalize_symbolics): New.
11758         * tree-vrp.h (class value_range_base): Remove
11759         set_and_canonicalize.
11760         New prototype for normalize_symbolics.
11761         (class value_range): Remove set_and_canonicalize.
11762         (vrp_val_min): Adjust prototype.
11763         (vrp_val_max): Same.
11764         * vr-values.c
11765         (vr_values::extract_range_for_var_from_comparison_expr):  Call set
11766         instead of set_and_canonicalize.
11768 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11770         PR middle-end/91444
11771         * tree-vect-stmts.c (vectorizable_call): Check that the function
11772         is a BUILT_IN_MD function before passing it to
11773         targetm.vectorize.builtin_md_vectorized_function.
11775 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11777         * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
11778         * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
11779         (aarch64_select_early_remat_modes): Use it.
11781 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11783         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
11784         16 for SVE predicates even if they are fixed-length.
11786 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11788         * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
11789         operand order match the MOV /Z alias.
11791 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11793         * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
11794         the vector pattern as an aarch64_svpattern argument.  Update the
11795         overloaded caller accordingly.
11796         (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
11797         (aarch64_output_sve_vector_inc_dec): Likewise.
11799 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11801         * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
11802         multiplication case, try to compute VG * (lowest set bit) directly
11803         rather than always basing the multiplication on VG.  Use
11804         expand_mult for the multiplication if we can.
11806 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11808         * config/aarch64/aarch64-protos.h
11809         (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
11810         (aarch64_sve_inc_dec_immediate_p): Rename to...
11811         (aarch64_sve_vector_inc_dec_immediate_p): ...this.
11812         (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
11813         (aarch64_output_sve_scalar_inc_dec): Declare.
11814         (aarch64_output_sve_inc_dec_immediate): Rename to...
11815         (aarch64_output_sve_vector_inc_dec): ...this.
11816         * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
11817         (aarch64_output_sve_scalar_inc_dec): New functions.
11818         (aarch64_output_sve_addvl_addpl): Remove the base and offset
11819         arguments.  Only handle true ADDVL and ADDPL instructions;
11820         don't emit an INC or DEC.
11821         (aarch64_sve_inc_dec_immediate_p): Rename to...
11822         (aarch64_sve_vector_inc_dec_immediate_p): ...this.
11823         (aarch64_output_sve_inc_dec_immediate): Rename to...
11824         (aarch64_output_sve_vector_inc_dec): ...this.  Update call to
11825         aarch64_sve_vector_inc_dec_immediate_p.
11826         * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
11827         (aarch64_sve_plus_immediate): New predicates.
11828         (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
11829         rather than aarch64_sve_addvl_addpl_immediate.
11830         (aarch64_sve_inc_dec_immediate): Rename to...
11831         (aarch64_sve_vector_inc_dec_immediate): ...this.  Update call to
11832         aarch64_sve_vector_inc_dec_immediate_p.
11833         (aarch64_sve_add_operand): Update accordingly.
11834         * config/aarch64/constraints.md (Uai): New constraint.
11835         (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
11836         * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
11837         operand into a register if it satisfies aarch64_sve_plus_immediate.
11838         (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
11839         for Uai.  Update calls to aarch64_output_sve_addvl_addpl.
11840         * config/aarch64/aarch64-sve.md (add<mode>3): Call
11841         aarch64_output_sve_vector_inc_dec instead of
11842         aarch64_output_sve_inc_dec_immediate.
11844 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11846         * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
11847         (UNSPEC_REVW): New constants.
11848         (elem_bits): New mode attribute.
11849         (SVE_INT_UNARY): New int iterator.
11850         (optab): Handle UNSPEC_REV[BHW].
11851         (sve_int_op): New int attribute.
11852         (min_elem_bits): Handle VNx16QI and the predicate modes.
11853         * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
11854         (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
11855         (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
11856         * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
11857         (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
11858         (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
11859         unspecs based on the total width of the reversed data.
11860         (aarch64_evpc_rev_local): Likewise (for SVE only).  Use a
11861         reinterpret followed by a subreg on big-endian targets.
11863 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11864             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11866         * config/aarch64/aarch64-sve.md
11867         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
11868         alternatives in which one of the inputs is in the same register
11869         as the output.
11871 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11873         * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
11874         (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
11876 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11878         * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
11879         FADD and FSUB alternatives.  Add a MOVPRFX alternative for FSUBR.
11881 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11882             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11884         * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
11885         (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
11886         (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
11888 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11889             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11891         * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
11892         Add an alternative that uses reversed shifts.
11894 2019-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11896         * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
11897         struct.
11899 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11901         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
11902         a commutativity marker.
11904 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11905             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11907         * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
11908         (aarch64_prepare_sve_cond_int_fma): Declare.
11909         * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
11910         (aarch64_prepare_sve_int_fma): New functions.
11911         (aarch64_prepare_sve_cond_int_fma): Likewise.
11912         * config/aarch64/aarch64-sve.md
11913         (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
11914         (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
11915         (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
11916         (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
11917         (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
11918         (*madd<mode>): Rename to...
11919         (*fma<mode>4): ...this.
11920         (*msub<mode>): Rename to...
11921         (*fnma<mode>4): ...this.
11923 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11924             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11926         * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
11927         Print 2.0 naturally.
11928         (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
11929         * config/aarch64/predicates.md
11930         (aarch64_sve_float_negated_arith_immediate): New predicate,
11931         renamed from aarch64_sve_float_arith_with_sub_immediate.
11932         (aarch64_sve_float_arith_with_sub_immediate): Test for both
11933         positive and negative constants.
11934         (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
11935         or an aarch64_sve_float_arith_with_sub_immediate.
11936         * config/aarch64/constraints.md (vsN): Use
11937         aarch64_sve_float_negated_arith_immediate.
11938         * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
11939         iterator.
11940         (sve_pred_fp_rhs2_immediate): New int attribute.
11941         * config/aarch64/aarch64-sve.md
11942         (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
11943         sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
11944         (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
11945         (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
11946         (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
11947         (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
11949 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11950             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11952         * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
11953         (*aarch64_cond_abd<SVE_F:mode>_3)
11954         (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
11956 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11957             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11959         * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
11960         (*aarch64_cond_<su>abd<mode>_any): New patterns.
11962 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
11963             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11965         * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
11966         * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
11967         * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
11968         * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
11969         optabs.
11970         * optabs.h (create_convert_operand_from): Expand comment.
11971         * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
11972         when mapping scalar rtxes to vector operands.
11973         * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
11974         ashiftrt and lshiftrt.
11975         (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
11976         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
11977         (*cond_<optab><mode>_any_const): New patterns.
11979 2019-08-15  Martin Liska  <mliska@suse.cz>
11981         PR ipa/91438
11982         * cgraph.c (cgraph_node::remove): When setting
11983         n->origin = NULL for all nested functions, reset
11984         also next_nested.
11986 2019-08-15  Martin Liska  <mliska@suse.cz>
11988         * cgraph.c (cgraph_node::verify_node): Verify origin, nested
11989         and next_nested.
11991 2019-08-15  Martin Liska  <mliska@suse.cz>
11993         PR ipa/91404
11994         * passes.c (order): Remove.
11995         (uid_hash_t): Likewise).
11996         (remove_cgraph_node_from_order): Remove from set
11997         of pointers (cgraph_node *).
11998         (insert_cgraph_node_to_order): New.
11999         (duplicate_cgraph_node_to_order): New.
12000         (do_per_function_toporder): Register all 3 cgraph hooks.
12001         Skip removed_nodes now as we know about all of them.
12003 2019-08-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12005         * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
12006         <case E_V8QImode>: Use vector_set path for
12007         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
12008         (ix86_expand_vector_init_one_var) <case E_V8QImode>:
12009         Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
12011 2019-08-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12013         * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
12015 2019-08-14  Martin Sebor  <msebor@redhat.com>
12017         PR tree-optimization/91294
12018         * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
12019         source length as exact.
12021 2019-08-14  Christophe Lyon  <christophe.lyon@linaro.org>
12023         * doc/extend.texi: Add "noinit" attribute documentation.
12024         * doc/sourcebuild.texi: Add noinit effective target documentation.
12025         * varasm.c (default_section_type_flags): Add support for "noinit"
12026         section.
12027         (default_elf_select_section): Add support for "noinit" attribute.
12028         * config/msp430/msp430.c (msp430_attribute_table): Remove
12029         "noinit" entry.
12031 2019-08-14  Richard Biener  <rguenther@suse.de>
12032             UroÅ¡ Bizjak  <ubizjak@gmail.com>
12034         PR target/91154
12035         * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
12036         mode arguments.
12037         (scalar_chain::smode): New member.
12038         (scalar_chain::vmode): Likewise.
12039         (dimode_scalar_chain): Rename to...
12040         (general_scalar_chain): ... this.
12041         (general_scalar_chain::general_scalar_chain): Take mode arguments.
12042         (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
12043         base with TImode and V1TImode.
12044         * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
12045         (general_scalar_chain::vector_const_cost): Adjust for SImode
12046         chains.
12047         (general_scalar_chain::compute_convert_gain): Likewise.  Add
12048         {S,U}{MIN,MAX} support.
12049         (general_scalar_chain::replace_with_subreg): Use vmode/smode.
12050         (general_scalar_chain::make_vector_copies): Likewise.  Handle
12051         non-DImode chains appropriately.
12052         (general_scalar_chain::convert_reg): Likewise.
12053         (general_scalar_chain::convert_op): Likewise.
12054         (general_scalar_chain::convert_insn): Likewise.  Add
12055         fatal_insn_not_found if the result is not recognized.
12056         (convertible_comparison_p): Pass in the scalar mode and use that.
12057         (general_scalar_to_vector_candidate_p): Likewise.  Rename from
12058         dimode_scalar_to_vector_candidate_p.  Add {S,U}{MIN,MAX} support.
12059         (scalar_to_vector_candidate_p): Remove by inlining into single
12060         caller.
12061         (general_remove_non_convertible_regs): Rename from
12062         dimode_remove_non_convertible_regs.
12063         (remove_non_convertible_regs): Remove by inlining into single caller.
12064         (convert_scalars_to_vector): Handle SImode and DImode chains
12065         in addition to TImode chains.
12066         * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
12067         (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
12068         (*<maxmin>di3_doubleword): Likewise.
12070 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12071             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12073         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
12074         (*cond_bic<mode>_any): New patterns.
12076 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12078         * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
12079         take the equivalent mask, as well as a bit count.
12080         * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
12081         (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
12082         (aarch64_sve_pred_and_operand): New predicates.
12083         * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
12084         code attribute.
12085         * config/aarch64/aarch64-sve.md
12086         (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
12087         (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
12089 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12091         * config/aarch64/aarch64-sve.md
12092         (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
12093         (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
12094         New patterns.
12096 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12097             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12099         * config/aarch64/aarch64-sve.md
12100         (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
12101         (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
12103 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12104             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12106         * config/aarch64/aarch64-sve.md
12107         (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
12108         (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
12110 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12112         * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
12113         * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
12114         New pattern.
12116 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12117             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12119         * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
12121 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12122             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12124         * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
12125         (aarch64_print_vector_float_operand): Also handle 8-bit floats.
12126         (aarch64_print_operand): Add support for %I.
12127         (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
12128         Bitcast floating-point constants to the corresponding integer constant.
12129         (aarch64_float_const_representable_p): Handle vectors as well
12130         as scalars.
12131         (aarch64_expand_sve_vcond): Make sure that the operands are valid
12132         for the new vcond_mask_<mode><vpred> expander.
12133         * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
12134         test aarch64_float_const_representable_p.
12135         (aarch64_sve_reg_or_dup_imm): New predicate.
12136         * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
12137         gen_vcond_mask_<mode><vpred> instead of
12138         gen_aarch64_sve_dup<mode>_const.
12139         (vcond_mask_<mode><vpred>): Turn into a define_expand that
12140         accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
12141         for operands 1 and 2 respectively.  Force operand 2 into a
12142         register if operand 1 is a register.  Fold old define_insn...
12143         (aarch64_sve_dup<mode>_const): ...and this define_insn...
12144         (*vcond_mask_<mode><vpred>): ...into this new pattern.  Handle
12145         floating-point constants that can be moved as integers.  Add
12146         alternatives for MOV /M and FMOV /M.
12147         (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
12148         (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
12149         1 and 2 respectively.
12150         * config/aarch64/constraints.md (Ufc): Handle vectors as well
12151         as scalars.
12152         (vss): New constraint.
12154 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12156         * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
12157         (aarch64_sve_float_maxmin_operand): New predicates.
12158         * config/aarch64/constraints.md (vsB): New constraint.
12159         (vsM): Fix typo.
12160         * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
12161         aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
12162         UNSPEC_COND_FMINNM.
12163         * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
12164         Use aarch64_sve_float_maxmin_operand for operand 2.
12165         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
12166         Add alternatives for the constant forms.
12168 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12170         * config/aarch64/constraints.md (vsb): New constraint.
12171         (vsm): Generalize description.
12172         * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
12173         iterator.
12174         (sve_imm_con): Handle smax, smin, umax and umin.
12175         (sve_imm_prefix): New code attribute.
12176         * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
12177         (aarch64_sve_vsb_operand): New predicates.
12178         (aarch64_sve_mul_immediate): Rename to...
12179         (aarch64_sve_vsm_immediate): ...this.
12180         (aarch64_sve_mul_operand): Rename to...
12181         (aarch64_sve_vsm_operand): ...this.
12182         * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
12183         (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
12184         (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
12185         (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
12186         (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
12187         add movprfx support for the immediate alternatives.
12188         (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
12189         of the above.
12190         (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
12191         for operand 3.
12193 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12195         * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
12196         * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
12197         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
12199 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12201         * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
12202         (optab, sve_int_op): Handle them.
12203         * config/aarch64/aarch64-sve.md: Expand comment.
12205 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12207         * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
12208         * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
12209         (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
12211 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12213         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
12214         (aarch64_expand_sve_const_pred_trn): New functions.
12215         (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
12216         use the above functions when the parameter is true.
12217         (aarch64_expand_sve_const_pred): Update call accordingly.
12218         * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
12219         Rename to...
12220         (@aarch64_sve_<perm_insn><mode>): ...this.
12222 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12224         * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
12225         Declare.
12226         * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
12227         (aarch64_sve_emit_int_cmp): New functions.
12228         (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
12229         (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
12230         (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
12231         * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
12232         (UNSPEC_PRED_Z): New unspec.
12233         (set_clobber_cc_nzc): Delete.
12234         * config/aarch64/aarch64-sve.md: Add a block comment about
12235         UNSPEC_PRED_Z.
12236         (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
12237         (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
12238         the old pattern with that name.  Use UNSPEC_PRED_Z instead of
12239         UNSPEC_MERGE_PTRUE.
12240         (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
12241         UNSPEC_MERGE_PTRUE.  Use aarch64_sve_same_pred_for_ptest_p to
12242         check for compatible predicates.
12243         (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
12244         (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
12245         of UNSPEC_MERGE_PTRUE.  Split into the new form of predicated
12246         comparisons above.
12248 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12250         * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
12251         * config/aarch64/aarch64-sve.md: Add a section describing it.
12252         (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
12253         (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
12254         (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
12255         (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
12256         (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
12257         (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
12258         (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
12259         (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
12260         (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
12261         UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
12262         * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
12263         (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
12264         * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
12265         (aarch64_evpc_rev_local): Update accordingly.
12267 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12269         * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
12270         iterators.
12271         (SVE_BHSI, SVE_SDI): Tweak comment.
12272         (SVE_HSDI): Likewise.  Fix definition.
12273         (SVE_SDF): New mode iterator.
12274         (elem_bits): New mode attribute.
12275         (SVE_COND_FCVT): New int iterator.
12276         * config/aarch64/aarch64-sve.md
12277         (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
12278         (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
12279         (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
12280         (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
12281         (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
12282         ...these new patterns.
12283         (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
12284         (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
12285         (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
12286         Merge into...
12287         (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
12288         (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
12289         ...these new patterns.
12290         (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
12291         (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
12292         (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
12293         ...this new pattern.
12294         (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
12295         (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
12296         ...this new pattern.
12297         (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
12299 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12301         * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
12302         * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
12303         (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
12304         unspecs.
12305         (optab, su): Handle them.
12306         (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
12307         * config/aarch64/aarch64-sve.md
12308         (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
12309         (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
12310         (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
12311         (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
12312         (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
12313         (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
12314         (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
12315         (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
12316         (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
12317         FIXUORS.
12318         (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
12319         (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
12320         (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
12321         (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
12322         (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
12323         (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
12324         (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
12325         (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
12326         (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
12327         operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
12328         (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
12329         (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
12330         of UNSPEC_FLOAT_CONVERT.
12331         (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
12332         aarch64_sve_extend<mode><Vwide>2.
12334 2019-08-14  Richard Biener  <rguenther@suse.de>
12336         PR target/91154
12337         * config/i386/i386-features.c
12338         (dimode_scalar_chain::compute_convert_gain): Compute and dump
12339         individual instruction gain.  Fix reg-reg copy GRP cost.  Use
12340         ix86_cost->sse_op for vector instruction costs.
12342 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12344         * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
12345         (cmp_op): Handle it.
12346         (SVE_COND_FP_CMP): Rename to...
12347         (SVE_COND_FP_CMP_I0): ...this.
12348         (SVE_FP_CMP): Remove.
12349         * config/aarch64/aarch64-sve.md
12350         (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
12351         (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
12352         using unspecs to represent the comparison.
12353         (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
12354         (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
12355         accordingly.
12356         * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
12357         (aarch64_unspec_cond_code): Move after integer code.  Handle
12358         UNORDERED.
12359         (aarch64_emit_sve_predicated_cond): Replace with...
12360         (aarch64_emit_sve_fp_cond): ...this new function.
12361         (aarch64_emit_sve_or_conds): Replace with...
12362         (aarch64_emit_sve_or_fp_conds): ...this new function.
12363         (aarch64_emit_sve_inverted_cond): Replace with...
12364         (aarch64_emit_sve_invert_fp_cond): ...this new function.
12365         (aarch64_expand_sve_vec_cmp_float): Update accordingly.
12367 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12369         * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
12370         (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
12371         * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
12372         SVE_HSD instead of SVE_SD.
12374 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12375             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12377         * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
12378         iterator.
12379         (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
12380         attributes.
12381         * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
12382         (mul<SVE_F:mode>3, div<SVE_F:mode>3)
12383         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
12384         (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
12385         (*div<SVE_F:mode>3): Generalize to...
12386         (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
12388 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12389             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12391         * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
12392         constants.
12393         * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
12394         predicate.
12395         * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
12396         Declare.
12397         * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
12398         function.
12399         * config/aarch64/aarch64-sve.md: Add a block comment about the
12400         handling of predicated FP operations.
12401         (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
12402         (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
12403         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
12404         (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
12405         (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
12406         operand.
12407         (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
12408         (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
12409         operand.
12410         (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
12411         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
12412         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
12413         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
12414         (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
12415         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
12416         (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
12417         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
12418         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
12419         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
12420         strictness operands.  Use aarch64_sve_pred_dominates_p to check
12421         whether the predicate on the conditional operation is suitable
12422         for merging.  Split patterns into the canonical equal-predicate form.
12423         (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
12424         Restrict the unpredicated alternatives to SVE_RELAXED_GP.
12426 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12427             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12429         * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
12430         (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
12431         (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
12432         rtx codes.
12433         (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
12434         (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
12435         unspecs.
12437 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12438             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
12440         * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
12441         (*bic<SVE_I:mode>3): ...this.  Match the form that an SVE inverse
12442         actually has, rather than relying on REG_EQUAL notes.
12443         Make the insn operand order match the SVE operand order.
12444         (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
12445         the SVE operand order.
12447 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12449         * config/aarch64/aarch64.c (aarch64_target_reg): New function.
12450         (aarch64_emit_set_immediate): Likewise.
12451         (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
12452         (aarch64_pfalse_reg): Likewise.
12453         (aarch64_convert_sve_data_to_pred): New function.
12454         (aarch64_sve_move_pred_via_while): Take an optional target register
12455         and the required register mode.
12456         (aarch64_expand_sve_const_pred_1): New function.
12457         (aarch64_expand_sve_const_pred): Likewise.
12458         (aarch64_expand_mov_immediate): Build an all-true predicate
12459         if the significant bits of the immediate are all true.  Use
12460         aarch64_expand_sve_const_pred for all compile-time predicate constants.
12461         (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
12462         before register allocation.
12463         * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
12464         a VNx16BI PTRUE when splitting the memory alternative.
12465         (vec_duplicate<mode>): Update accordingly.
12466         (*pred_cmp<cmp_op><mode>): Rename to...
12467         (@aarch64_pred_cmp<cmp_op><mode>): ...this.
12469 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
12471         * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
12472         * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
12473         * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
12474         (UNSPEC_PTEST): New unspec.
12475         (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
12476         * config/aarch64/iterators.md (data_bytes): New mode attribute.
12477         * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
12478         * config/aarch64/aarch64-sve.md: Add a new section describing the
12479         handling of UNSPEC_PTEST.
12480         (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
12481         (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
12482         (ptest_ptrue<mode>): Replace with...
12483         (aarch64_ptest<mode>): ...this new pattern.
12484         (cbranch<mode>4): Update after above changes.
12485         (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
12486         UNSPEC_PTEST_PTRUE.
12487         (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
12488         (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
12489         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
12491 2019-08-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
12493         PR lto/91287
12494         * builtins.c (builtin_with_linkage_p): New function.
12495         * builtins.h (builtin_with_linkage_p): New function.
12496         * symtab.c (write_symbol): Remove redundant assert.
12497         * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
12498         Remove FIXME and use builtin_with_linkage_p.
12500 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12502         PR middle-end/91421
12503         * tree-core.h (function_decl::function_code): Change type to
12504         unsigned int.
12505         * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
12506         (DECL_UNCHECKED_FUNCTION_CODE): ...this.
12507         (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
12508         (DECL_FUNCTION_CODE): New function.  Assert that the built-in class
12509         is BUILT_IN_NORMAL.
12510         (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
12511         (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
12512         (fndecl_built_in_p): Change the type of the "name" argument to
12513         unsigned int.
12514         * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
12515         after check for DECL_BUILT_IN_CLASS.
12516         * cgraphclones.c (build_function_decl_skip_args): Use
12517         set_decl_built_in_function.
12518         * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
12519         * ipa-split.c (split_function): Likewise.
12520         * langhooks.c (add_builtin_function_common): Likewise.
12521         * omp-simd-clone.c (simd_clone_create): Likewise.
12522         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
12523         * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
12524         (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
12525         DECL_FUNCTION_CODE.
12526         * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
12527         instead of DECL_FUNCTION_CODE.
12528         * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
12529         instead of DECL_FUNCTION_CODE.
12530         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
12531         * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
12532         printing DECL_BUILT_IN_MD.  Handle DECL_BUILT_IN_FRONTEND.
12533         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
12534         (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
12535         DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
12536         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
12537         * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
12538         (alpha_gimple_fold_builtin): Likewise.
12539         * config/arc/arc.c (arc_expand_builtin): Likewise.
12540         * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
12541         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
12542         * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
12543         * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
12544         * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
12545         * config/frv/frv.c (frv_expand_builtin): Likewise.
12546         * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
12547         (gcn_expand_builtin): Likewise.
12548         * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
12549         (fold_builtin_cpu): Likewise.
12550         * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
12551         * config/i386/i386.c (ix86_fold_builtin): Likewise.
12552         (ix86_gimple_fold_builtin): Likewise.
12553         * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
12554         (ia64_expand_builtin): Likewise.
12555         * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
12556         * config/mips/mips.c (mips_expand_builtin): Likewise.
12557         * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
12558         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
12559         * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
12560         * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
12561         * config/pa/pa.c (pa_expand_builtin): Likewise.
12562         * config/pru/pru.c (pru_expand_builtin): Likewise.
12563         * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
12564         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12565         Likewise.
12566         * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
12567         (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
12568         (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
12569         * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
12570         (rs6000_builtin_reciprocal): Likewise.
12571         * config/rx/rx.c (rx_expand_builtin): Likewise.
12572         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
12573         * config/s390/s390.c (s390_expand_builtin): Likewise.
12574         * config/sh/sh.c (sh_expand_builtin): Likewise.
12575         * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
12576         (sparc_fold_builtin): Likewise.
12577         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
12578         * config/spu/spu.c (spu_expand_builtin): Likewise.
12579         * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
12580         * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
12581         * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
12582         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
12583         (xtensa_expand_builtin): Likewise.
12585 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12587         PR middle-end/91421
12588         * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
12589         before the DECL_FUNCTION_CODE.
12590         * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
12591         to check for a BUILT_IN_ALLOCA call.
12592         * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
12593         BUILT_IN_UNREACHABLE.  Don't check for a FUNCTION_TYPE.
12594         * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
12595         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12596         * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
12597         for BUILT_IN_NORMAL functions.
12598         * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
12599         test for BUILT_IN_TM_ABORT.
12600         * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
12601         to check for a BUILT_IN_STACK_RESTORE call.
12602         (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
12603         * tree-ssa-threadedge.c
12604         (record_temporary_equivalences_from_stmts_at_dest): Check for a
12605         BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
12606         * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
12607         test for a BUILT_IN_NORMAL call instead of a negative test for
12608         an internal function call.
12610 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12612         * tree.h (build_vector_a_then_b): Declare.
12613         * tree.c (build_vector_a_then_b): New function.
12614         * fold-const-call.c (fold_while_ult): Likewise.
12615         (fold_const_call): Use it to handle IFN_WHILE_ULT.
12616         * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
12617         (aarch64_svpattern): New enum.
12618         * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
12619         constants through aarch64_expand_mov_immediate.
12620         (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
12621         than general_operand as the predicate for operand 1.
12622         (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
12623         * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
12624         insn_type.
12625         (simd_immediate_info::simd_immediate_info): New overload that
12626         takes a scalar_int_mode and an svpattern.
12627         (simd_immediate_info::u): Add a "pattern" field.
12628         (svpattern_token): New function.
12629         (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
12630         (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
12631         (aarch64_sve_move_pred_via_while): New functions.
12632         (aarch64_expand_mov_immediate): Try using
12633         aarch64_sve_move_pred_via_while for predicates that contain N ones
12634         followed by M zeros but that do not correspond to a VLnnn pattern.
12635         (aarch64_sve_pred_valid_immediate): New function.
12636         (aarch64_simd_valid_immediate): Use it instead of dealing directly
12637         with PTRUE and PFALSE.
12638         (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
12639         forms.
12641 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
12643         * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
12644         flag.
12645         (darwin_override_options): Likewise.
12646         * config/darwin.h: Likewise.
12647         * config/darwin.opt: Likewise.
12648         * config/i386/i386.c (output_pic_addr_const): Likewise.
12649         * config/rs6000/darwin.h: Likewise.
12650         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
12651         * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
12652         ... this TARGET_MACHO_SYMBOL_STUBS.
12653         (FUNCTION_PROFILER):Likewise.
12654         * config/i386/i386.h: Likewise.
12656 2019-08-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12658         * config/i386/i386-expand.c (ix86_expand_vector_extract)
12659         <case E_V2SImode>: Use vec_extr path for
12660         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
12661         <case E_V8QImode>: Ditto.
12662         * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
12663         Use SWI48 mode iterator.  Use %k to output operand 0.
12664         (*mmx_pextrw): New insn pattern.
12665         (*mmx_pextrb): Ditto.
12666         (*mmx_pextrb_zext): Ditto.
12668 2019-08-13  Jonathan Wakely  <jwakely@redhat.com>
12670         * target.def (libc_has_function, libc_has_fast_function): Improve
12671         documentation strings.
12672         * doc/tm.texi: Regenerate.
12674 2019-08-13  Caroline Tice  <cmtice@google.com>
12676         PR other/91396
12677         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
12678         vtv_end.o or vtv_end_preinit.o files if !static.
12680 2019-08-13  Olivier Hainque  <hainque@adacore.com>
12682         * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
12684 2019-08-13  Olivier Hainque  <hainque@adacore.com>
12686         * rtlanal.c (tablejump_casesi_pattern): New function, to
12687         determine if a tablejump insn is a casesi dispatcher. Extracted
12688         from patch_jump_insn.
12689         * rtl.h (tablejump_casesi_pattern): Declare.
12690         * cfgrtl.c (patch_jump_insn): Use it.
12691         * dwarf2cfi.c (create_trace_edges): Use it.
12693 2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
12695         PR target/81800
12696         * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
12697         operand is larger than a long int.
12699 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12701         * machmode.h (opt_mode::else_mode): New function.
12702         (opt_mode::else_blk): Use it.
12703         * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
12704         (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
12705         (aarch64_gen_stepped_int_parallel): Likewise.
12706         (aarch64_stepped_int_parallel_p): Likewise.
12707         (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
12708         argument.
12709         * config/aarch64/aarch64.c
12710         (aarch64_expand_sve_widened_duplicate): Delete.
12711         (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
12712         (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
12713         (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
12714         argument.  Use early returns in the !CONST_INT_P handling.
12715         Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
12716         than handling some inline.
12717         (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
12718         from...
12719         (aarch64_simd_container_mode): ...here.
12720         (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
12721         (aarch64_sve_ld1rq_operand_p): New functions.
12722         * config/aarch64/predicates.md (descending_int_parallel)
12723         (aarch64_sve_ld1rq_operand): New predicates.
12724         * config/aarch64/constraints.md (UtQ): New constraint.
12725         * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
12726         * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
12727         gen_vec_duplicate from call to aarch64_expand_mov_immediate.
12728         (@aarch64_sve_reinterpret<mode>): New expander.
12729         (*aarch64_sve_reinterpret<mode>): New pattern.
12730         (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
12731         (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
12732         (*sve_ld1rq<Vesize>): Replace with...
12733         (@aarch64_sve_ld1rq<mode>): ...this new pattern.
12735 2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
12737         * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
12738         16:12.
12740 2019-08-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
12742         * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
12743         * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
12744         (msp430_check_path_for_devices): New.
12745         (parse_devices_csv_1): New.
12746         (parse_devices_csv): New.
12747         (msp430_extract_mcu_data): Try to find devices.csv and search for the
12748         MCU data in devices.csv before using the hard-coded data.
12749         Warn if devices.csv isn't found and the MCU wasn't found in the
12750         hard-coded data either.
12751         * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
12752         msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
12753         Search for devices.csv on -I and -L paths.
12754         (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
12755         msp430_set_driver_var.
12756         * config/msp430/msp430.opt: Add -mwarn-devices-csv and
12757         -mdevices-csv-loc=.
12758         * doc/invoke.texi (-mmcu): Document that -I and -L paths are
12759         searched for devices.csv.
12760         (mwarn-devices-csv): Document option.
12762 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12764         * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
12765         * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
12766         Use a single Dn alternative instead of separate Dz and Dm
12767         alternatives.  Use aarch64_output_sve_move_immediate.
12768         * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
12769         function.
12770         (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
12771         for predicates too.
12772         (aarch64_output_sve_mov_immediate): Handle predicate modes.
12773         (aarch64_output_ptrue): Delete.
12775 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12777         * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
12778         INDEX.
12779         (simd_immediate_info::value, simd_immediate_info::step)
12780         (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
12781         with...
12782         (simd_immediate_info::u): ...this new union.
12783         (simd_immediate_info::simd_immediate_info): Update accordingly.
12784         (aarch64_output_simd_mov_immediate): Likewise.
12785         (aarch64_output_sve_mov_immediate): Likewise.
12787 2019-08-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
12789         * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
12790         extra_gcc_objs.
12791         * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
12792         (msp430_select_cpu): New spec function.
12793         (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
12794         MCU data.
12795         * config/msp430/msp430-devices.c: New file.
12796         * config/msp430/msp430-devices.h: New file.
12797         * config/msp430/msp430.c: Remove msp430_mcu_data.
12798         (msp430_option_override): Use msp430_extract_mcu_data to extract
12799         MCU data.
12800         (msp430_use_f5_series_hwmult): Likewise.
12801         (use_32bit_hwmult): Likewise.
12802         (msp430_no_hwmult): Likewise.
12803         * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
12804         assembler.
12805         (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
12806         and -mcpu option.
12807         (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
12808         * config/msp430/t-msp430: Add rule to build msp430-devices.o.
12809         Remove hard-coded MCU multilib data.
12811 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12813         * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
12814         based on the mode instead of testing properties of it.
12816 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12818         * doc/md.texi: Document the x and y constraints for AArch64.
12819         * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
12820         (FP_LO8_REGS): New reg_class.
12821         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
12822         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
12823         (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
12824         * config/aarch64/predicates.md (aarch64_simd_register): Use
12825         FP_REGNUM_P instead of checking the classes manually.
12826         * config/aarch64/constraints.md (y): New constraint.
12828 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
12830         * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
12831         (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
12832         * config/aarch64/aarch64-simd.md
12833         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
12834         (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
12835         from the asm template.
12836         * config/aarch64/aarch64-sve.md
12837         (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
12838         (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
12839         from the asm template.
12840         (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
12841         (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
12842         from the asm template.
12843         * config/aarch64/aarch64-simd-builtins.def: Update comment.
12845 2019-08-13  Martin Liska  <mliska@suse.cz>
12847         * value-prof.c (gimple_ic_transform): Add new line.
12848         Print details with MSG_NOTE.
12850 2019-08-13  Martin Liska  <mliska@suse.cz>
12852         * doc/invoke.texi: Document automatic detection of jobserver.
12853         * lto-wrapper.c (run_gcc): Detect jobserver always.
12855 2019-08-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12857         * config/i386/i386-expand.c (ix86_expand_vector_set)
12858         <case E_V2SImode>: Use vec_merge path for
12859         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
12860         <case E_V8QImode>: Ditto.
12861         * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
12862         (*mmx_pinsrb): Ditto.
12864 2019-08-12  Jakub Jelinek  <jakub@redhat.com>
12866         PR target/83250
12867         PR target/91340
12868         * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
12869         _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
12870         * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
12871         _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
12872         _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
12874 2019-08-12  Richard Biener  <rguenther@suse.de>
12876         PR lto/91375
12877         * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
12878         flag_devirtualize.
12880 2019-08-12  Richard Biener  <rguenther@suse.de>
12882         PR driver/91130
12883         * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
12884         lang_mask option, always use CL_DRIVER.
12885         (get_options_from_collect_gcc_options): Adjust.
12886         (find_and_merge_options): Likewise.
12887         (run_gcc): Likewise.
12889 2019-08-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12891         * ipa-predicate.c (add_condition): Restore inverted test.
12893 2019-08-10  Jakub Jelinek  <jakub@redhat.com>
12895         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
12896         (enum omp_clause_device_type_kind): New enum.
12897         (struct tree_omp_clause): Add subcode.device_type_kind.
12898         * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
12899         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
12900         for device_type clause.
12901         (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
12902         * tree-pretty-print.c (dump_omp_clause): Likewise.
12904         PR target/91408
12905         * config/i386/mmx.md (usadv8qi): Use register_operand instead of
12906         vector_operand.
12908 2019-08-09  Vladimir Makarov  <vmakarov@redhat.com>
12910         * reload1.c (finish_spills): Do not check ira_conflicts_p when
12911         handling spilled pseudos.
12913 2019-08-09  Richard Earnshaw  <rearnsha@arm.com>
12915         PR target/91386
12916         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
12917         to preserve the contents of the original insns.
12919 2019-08-09  Richard Earnshaw  <rearnsha@arm.com>
12921         * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
12922         (addsi3_compare_op2): Likewise.
12924 2019-08-09  Martin Liska  <mliska@suse.cz>
12926         * alias.c (alias_ptr_types_compatible_p): Strengten
12927         type comparison in LTO mode.
12929 2019-08-09  Richard Sandiford  <richard.sandiford@arm.com>
12931         PR middle-end/90313
12932         * tree-tailcall.c (find_tail_calls): Reject calls that might
12933         read from an escaped RESULT_DECL.
12935 2019-08-09  Martin Liska  <mliska@suse.cz>
12937         * doc/invoke.texi: Document the option value.
12938         * lto-wrapper.c (run_gcc): Set auto_parallel
12939         only with -flto=auto.
12941 2019-08-09  Martin Liska  <mliska@suse.cz>
12943         * opts.c (common_handle_option): Error for an invalid argument
12944         to -flto=.
12946 2019-08-09  Martin Liska  <mliska@suse.cz>
12948         * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
12949         use dump_printf to report optimization.
12950         (sem_variable::merge): Likwise.
12951         (sem_item_optimizer::merge_classes): Use dump_printf to report
12952         ICF hits.
12954 2019-08-09  Martin Liska  <mliska@suse.cz>
12956         * value-prof.c (gimple_divmod_fixed_value_transform):
12957         Use dump_printf_loc.
12958         (gimple_mod_pow2_value_transform): Likewise.
12959         (gimple_mod_subtract_transform): Likewise.
12960         (init_node_map): Likewise.
12961         (gimple_ic_transform): Likewise.
12962         (gimple_stringops_transform): Likewise.
12964 2019-08-08  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
12966         * doc/extend.texi: Add const qualifier to ld intrinsics.
12968 2019-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
12970         * config/rs6000/dfp.md (D64_D128): Rename to ...
12971         (DDTD): ... this, throughout.
12972         (dfp_suffix): Rename to ...
12973         (q): ... this, throughout.
12975 2019-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
12977         * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
12978         (dfp_suffix): Ditto.
12979         (adddd3, addtd3): Merge to ...
12980         (add<mode>3 for D64_D128): ... this.
12981         (subdd3, subtd3): Merge to ...
12982         (sub<mode>3 for D64_D128): ... this.
12983         (muldd3, multd3): Merge to ...
12984         (mul<mode>3 for D64_D128): ... this.
12985         (divdd3, divtd3): Merge to ...
12986         (div<mode>3 for D64_D128): ... this.
12987         (*cmpdd_internal1, *cmptd_internal1): Merge to ...
12988         (*cmp<mode>_internal1 for D64_D128): ... this.
12989         (ftruncdd2, ftrunctd2): Merge to ...
12990         (ftrunc<mode>2 for D64_D128): ... this.
12991         (fixdddi2, fixtddi2): Merge to ...
12992         (fix<mode>di2 for D64_D128): ... this.
12994 2019-08-08  Jim Wilson  <jimw@sifive.com>
12996         PR target/91229
12997         * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
12998         ignore_zero_width_bit_field_p.  Skip zero size bitfields when true.
12999         Pass into recursive call.
13000         (riscv_flatten_aggregate_argument): New arg.  Pass to
13001         riscv_flatten_aggregate_field.
13002         (riscv_pass_aggregate_in_fpr_pair_p): New local warned.  Call
13003         riscv_flatten_aggregate_argument twice, with false and true as last
13004         arg.  Process result twice.  Compare results and warn if different.
13005         (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
13007 2019-08-08  Martin Liska  <mliska@suse.cz>
13009         PR bootstrap/91352
13010         * gcc.c (driver::detect_jobserver): Use is_valid_fd.
13011         * lto-wrapper.c (jobserver_active_p): Likewise.
13013 2019-08-08  Martin Liska  <mliska@suse.cz>
13015         * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
13016         IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
13017         (create_version_clone_with_body): Likewise.
13019 2019-08-08  Jakub Jelinek  <jakub@redhat.com>
13021         * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
13022         for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
13023         (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
13024         GOVD_EXPLICIT flags.
13025         (gimplify_omp_workshare): For OMP_TARGET_DATA move all
13026         OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
13027         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
13028         call install_var_field with mask 11 instead of 3.
13029         (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
13030         (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
13032 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13034         * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
13035         * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
13037 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13039         * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
13040         MOVPRFX alternatives.  Make the GPR alternatives more expensive
13041         than the FPR ones.
13043 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13045         * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
13046         Disparage the GPR alternative relative to the FPR one.
13047         Fix handling of 8-bit and 16-bit FPR values.
13049 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13051         * config/aarch64/iterators.md (BITWISEV): Delete.
13052         (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
13053         (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
13054         UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
13055         UNSPEC_FMINNMV, UNSPEC_FMINV.
13056         (bit_reduc_op): Delete.
13057         (sve_int_op): New int attribute.
13058         (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
13059         UNSPEC_FMINNMV, UNSPEC_FMINV.
13060         * config/aarch64/aarch64-sve.md
13061         (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
13062         (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
13063         (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
13064         (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
13065         (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
13066         (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
13067         new patterns.
13068         (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
13069         (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
13070         (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
13071         (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
13072         (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
13073         new patterns.
13075 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13077         * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
13078         (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
13079         (fms<mode>4, *fms<mode>4): Replace with...
13080         (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
13081         (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
13082         Use unspecs instead of rtx codes.
13083         (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
13084         (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
13086 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13088         * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
13089         int iterator.
13090         (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
13091         * config/aarch64/aarch64-sve.md
13092         (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
13093         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
13094         use a single unspec for the rhs.
13095         (*<su><maxmin><mode>3): Delete.
13096         (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
13098 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13100         * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
13101         (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
13102         (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
13103         (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
13104         (optab, sve_fp_op): Handle them.
13105         (SVE_FP_UNARY): Delete.
13106         (optab): Remove sqrt entry.
13107         (sve_fp_op): Remove neg, abs and sqrt entries.
13108         (SVE_COND_FP_UNARY): New int iterator.
13109         * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
13110         (*<frint_pattern><mode>2): Delete.
13111         (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
13112         (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
13113         (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
13114         (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
13116 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13118         * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
13120 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13122         * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
13123         (UNSPEC_COND_FADD): ...this.
13124         (UNSPEC_COND_SUB): Rename to...
13125         (UNSPEC_COND_FSUB): ...this.
13126         (UNSPEC_COND_MUL): Rename to...
13127         (UNSPEC_COND_FMUL): ...this.
13128         (UNSPEC_COND_DIV): Rename to...
13129         (UNSPEC_COND_FDIV): ...this.
13130         (UNSPEC_COND_MAX): Rename to...
13131         (UNSPEC_COND_FMAXNM): ...this.
13132         (UNSPEC_COND_MIN): Rename to...
13133         (UNSPEC_COND_FMINNM): ...this.
13134         (UNSPEC_COND_LT): Rename to...
13135         (UNSPEC_COND_FCMLT): ...this.
13136         (UNSPEC_COND_LE): Rename to...
13137         (UNSPEC_COND_FCMLE): ...this.
13138         (UNSPEC_COND_EQ): Rename to...
13139         (UNSPEC_COND_FCMEQ): ...this.
13140         (UNSPEC_COND_NE): Rename to...
13141         (UNSPEC_COND_FCMNE): ...this.
13142         (UNSPEC_COND_GE): Rename to...
13143         (UNSPEC_COND_FCMGE): ...this.
13144         (UNSPEC_COND_GT): Rename to...
13145         (UNSPEC_COND_FCMGT): ...this.
13146         (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
13147         (sve_fp_op_rev): Update accordingly.
13148         * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
13150 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13152         * config/aarch64/aarch64-sve.md: Reorganize contents and add
13153         banner comments.
13154         * config/aarch64/check-sve-md.awk: New file.
13155         * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
13156         (insn-conditions.md): Depend on it.
13158 2019-08-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13160         PR target/91385
13161         * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
13162         (*negsi2_cmpz_zext): Ditto.
13164 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13166         * config/aarch64/iterators.md (commutative): Remove.
13168 2019-08-07  Richard Earnshaw  <rearnsha@arm.com>
13170         PR driver/91130
13171         * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
13172         processing COLLECT_GCC_OPTIONS.
13173         (run_gcc): Likewise.
13175 2019-08-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13177         PR tree-optimization/91109
13178         * lra-remat.c (update_scratch_ops): Remove assignment of the
13179         hard register.
13181 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13183         * data-streamer.h (streamer_write_poly_uint64): Declare.
13184         (streamer_read_poly_uint64): Likewise.
13185         * data-streamer-in.c (streamer_read_poly_uint64): New function.
13186         * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
13187         * ipa-predicate.h (condition::size): Turn into a poly_int64.
13188         (add_condition): Take a poly_int64 size.
13189         * ipa-predicate.c (add_condition): Likewise.
13190         * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
13191         * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
13192         (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
13193         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
13194         condition::size as a poly_int64.
13195         (unmodified_parm_1): Take a poly_int64 size pointer.
13196         (unmodified_parm): Likewise.
13197         (unmodified_parm_or_parm_agg_item): Likewise.
13198         (set_cond_stmt_execution_predicate): Update accordingly.
13199         (set_switch_stmt_execution_predicate): Likewise.
13200         (will_be_nonconstant_expr_predicate): Likewise.
13201         (will_be_nonconstant_predicate): Likewise.
13202         (inline_read_section): Stream condition::size as a poly_int.
13203         (ipa_fn_summary_write): Likewise.
13205 2019-08-07  Martin Liska  <mliska@suse.cz>
13207         * fold-const.c (twoval_comparison_p): Replace int
13208         with bool as a return type.
13209         (simple_operand_p): Likewise.
13210         (operand_equal_p): Replace int with bool as a return type.
13211         * fold-const.h (operand_equal_p): Likewise.
13213 2019-08-07  Jakub Jelinek  <jakub@redhat.com>
13215         * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
13216         OpenMP description.  Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
13217         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
13218         for OMP_CLAUSE_USE_DEVICE_ADDR clause.
13219         (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
13220         * tree-pretty-print.c (dump_omp_clause): Likewise.
13221         * tree-nested.c (convert_nonlocal_omp_clauses,
13222         convert_local_omp_clauses): Likewise.
13223         * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
13224         Likewise.
13225         * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
13226         Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
13227         clause with array or reference to array types, no matter what type
13228         except for reference it has.
13230 2019-08-07  Kewen Lin  <linkw@gcc.gnu.org>
13232         * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
13234 2019-08-07  Kito Cheng  <kito.cheng@sifive.com>
13236         * config/riscv/multilib-generator: (canonical_order): Add 'g'.
13237         (arch_canonicalize): Support rv32g and rv64g and fix error
13238         handling.
13240 2019-08-06  Martin Liska  <mliska@suse.cz>
13242         * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
13243         and DECL_IS_OPERATOR_DELETE_P.
13245 2019-08-06  Jakub Jelinek  <jakub@redhat.com>
13247         * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
13248         (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this.  Adjust comment.
13249         * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
13250         new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
13251         (gimplify_omp_for): Don't do C++ random access iterator clause
13252         adjustments on combined constructs from OMP_LOOP.  For OMP_LOOP,
13253         don't predetermine the artificial iterator in case of C++ random
13254         access iterators as lastprivate, but private.  For OMP_LOOP, force
13255         bind expr around simd body and force for_pre_body before the
13256         construct.  Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
13257         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
13258         (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
13259         diff var of C++ random access iterators.  Handle
13260         OMP_CLAUSE_FIRSTPRIVATE.  For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
13261         not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
13262         clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
13263         on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
13264         * omp-low.c (lower_rec_input_clauses): For
13265         OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
13266         variables instead of default constructing them.
13267         (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
13268         instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
13269         is_taskloop_ctx check from the assert to the guarding condition.
13271 2019-08-06  Kito Cheng  <kito.cheng@sifive.com>
13273         * config/riscv/multilib-generator: (canonical_order): New.
13274         (arch_canonicalize): Dito.
13275         Apply arch_canonicalize for alts.
13277 2019-08-05  Martin Sebor  <msebor@redhat.com>
13279         * doc/extend.texi (Common Variable Attributes): Document alias
13280         attribute.
13282 2019-08-05  Marek Polacek  <polacek@redhat.com>
13284         PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
13285         * doc/invoke.texi: Document -Wcomma-subscript.
13287 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
13289         * tree-core.h (tree_function_decl): Make function_code an
13290         independent field.  Group the remaining bitfields into bytes
13291         and move decl_type so that it contines to be at a byte boundary.
13292         Leave 12 bits for future expansion.
13294 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
13296         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
13297         (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
13298         (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
13299         IFN_MASK_STORE.
13301 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
13303         * gimple.h (gimple_move_vops): Declare.
13304         * gimple.c (gimple_move_vops): New function
13305         * gimple-fold.c (replace_call_with_call_and_fold)
13306         (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
13307         (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
13308         (gimple_fold_call): Use it.
13309         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
13310         * tree-call-cdce.c (use_internal_fn): Likewise.
13311         * tree-if-conv.c (predicate_load_or_store): Likewise.
13312         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
13313         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13314         * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
13315         (update_call_from_tree): Likewise.
13316         * tree-vect-stmts.c (vectorizable_load): Likewise.
13317         * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
13319 2019-08-05  Martin Liska  <mliska@suse.cz>
13321         PR c++/91334
13322         * tree-ssa-dce.c (propagate_necessity): Handle new operators
13323         with not arguments.
13324         (eliminate_unnecessary_stmts): Likewise.
13326 2019-08-05  Richard Biener  <rguenther@suse.de>
13328         PR middle-end/91169
13329         * fold-const.c (get_array_ctor_element_at_index): Create
13330         offset_ints according to the sign of the index type and treat
13331         that as signed if it is obviously so.
13333 2019-08-05  Jakub Jelinek  <jakub@redhat.com>
13335         PR target/91341
13336         * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
13337         _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
13338         _mm256_storeu2_m128i): New function.
13340 2019-08-05  Kito Cheng  <kito.cheng@sifive.com>
13342         * config/riscv/riscv.c (riscv_promote_function_mode): New.
13343         (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
13345 2019-08-05  Alan Modra  <amodra@gmail.com>
13347         PR target/91349
13348         * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
13349         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
13351 2019-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
13353         * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
13354         bug that was fixed in Tcl 8.6.1.
13356 2019-08-02  Michael Meissner  <meissner@linux.ibm.com>
13358         * config/rs6000/future.md: New file.
13359         * config/rs6000/rs6000.md: Include future.md.
13360         * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
13362 2019-08-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13364         * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
13365         check to use targetm.slow_unaligned_access instead.
13367         * function.c (assign_param_data_one): Remove unused data members.
13369 2019-08-02  Steve Ellcey  <sellcey@marvell.com>
13371         * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
13372         build_distinct_type_copy.
13373         (simd_clone_adjust_argument_types): Ditto.
13374         (simd_clone_adjust): Call build_distinct_type_copy here.
13375         (expand_simd_clones): Ditto.
13377 2019-08-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13379         PR target/91201
13380         * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
13382 2019-08-02  Alexander Monakov  <amonakov@ispras.ru>
13384         * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
13385         from 'const void *'.
13386         (sort_locs_in_loop_postorder_cmp): Likewise.
13388 2019-08-02  Eric Botcazou  <ebotcazou@adacore.com>
13390         * doc/invoke.texi (hot-bb-count-fraction): Rework description.
13391         (hot-bb-count-ws-permille): Likewise.
13392         (hot-bb-frequency-fraction): Likewise.
13393         (unlikely-bb-count-fraction): Likewise.
13394         * params.def (hot-bb-count-fraction): Rework description.
13395         (hot-bb-count-ws-permille): Likewise.
13396         (hot-bb-frequency-fraction): Likewise.
13397         (unlikely-bb-count-fraction): Likewise.  Remove min and max values.
13398         * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
13400 2019-08-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13402         PR target/91323
13403         * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
13404         Return false.
13406 2019-08-02  Richard Biener  <rguenther@suse.de>
13408         * vec.h (vec::sort): Add gcc_qsort_r support.
13409         (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
13410         * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
13411         to gcc_qsort_r style callback.
13412         (sort_locs_in_loop_postorder_cmp): Likewise.
13413         (analyze_memory_references): Use gcc_sort_r interfaces.
13414         (find_ref_loc_in_loop_cmp): Use new bsearch overload.
13416 2019-08-02  Martin Liska  <mliska@suse.cz>
13418         PR lto/91313
13419         * gcc.c (driver::maybe_run_linker): Call detect_jobserver
13420         to detect working job server.
13421         (driver::detect_jobserver): Test whether jobserver
13422         is active from GCC driver. That will prevent situation where
13423         GCC is invoked from a LD plugin and the linker already uses
13424         file descriptors suggested by make.  That leads to a wrong
13425         detection.
13426         * gcc.h (driver): Add detect_jobserver.
13427         * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
13428         not scanning for --jobserver-auth prefix.
13430 2019-08-02  Jakub Jelinek  <jakub@redhat.com>
13432         PR tree-optimization/91201
13433         * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
13434         V16QImode extraction without sse4.1 try to use V4SImode lowpart
13435         extraction.
13437 2019-08-01  Martin Sebor  <msebor@redhat.com>
13439         PR c++/90947
13440         * tree.c (type_initializer_zero_p): Define.
13441         * tree.h (type_initializer_zero_p): New function.
13443 2019-08-01  Eric Botcazou  <ebotcazou@adacore.com>
13445         * cfgrtl.c (relink_block_chain): Add line returns in dump file.
13447 2019-08-01  Eric Botcazou  <ebotcazou@adacore.com>
13449         * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
13450         * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.  Remove useless test.
13451         * predict.c (maybe_hot_count_p): Likewise.
13452         (maybe_hot_bb_p): Tweak comment.
13453         (maybe_hot_edge_p): Likewise.
13454         (probably_never_executed): Likewise.  Minor tweak.
13455         (probably_never_executed_bb_p): Likewise.
13456         (unlikely_executed_edge_p): Likewise.
13457         (probably_never_executed_edge_p): Likewise.
13458         (optimize_function_for_size_p): Likewise.
13459         (optimize_function_for_speed_p): Likewise.
13460         (function_optimization_type): Likewise.
13461         (optimize_bb_for_size_p): Likewise.
13462         (optimize_bb_for_speed_p): Likewise.
13463         (bb_optimization_type): Likewise.
13464         (optimize_edge_for_size_p): Likewise.
13465         (optimize_edge_for_speed_p): Likewise.
13466         (optimize_insn_for_size_p): Likewise.
13467         (optimize_insn_for_speed_p): Likewise.
13468         (optimize_loop_for_size_p): Likewise.
13469         (optimize_loop_for_speed_p): Likewise.
13470         (optimize_loop_nest_for_speed_p): Likewise.
13471         (optimize_loop_nest_for_size_p): Likewise.
13472         (predictable_edge_p): Likewise.
13473         (handle_missing_profiles): Minor tweak.
13475 2019-08-01  Michael Meissner  <meissner@linux.ibm.com>
13477         * config/rs6000/predicates.md (pcrel_external_address): Update
13478         comment.
13480 2019-08-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13482         PR target/85693
13483         * config/i386/mmx.md (usadv8qi): New expander.
13485 2019-08-01  Matthew Beliveau  <mbelivea@redhat.com>
13487         PR c++/90590
13488         * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
13489         with reserved names that are in a system header.
13491 2019-08-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13493         * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
13494         (*vec_extractv2si_0_zext_sse4): New insn pattern.
13495         (*vec_extractv2si_0_zext): Ditto.
13496         (*vec_extractv2si_1): Add (rm,x) alternative.
13497         (*vec_extractv2si_1_zext): New insn pattern.
13498         (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
13499         insn constraint.
13501 2019-08-01  Richard Biener  <rguenther@suse.de>
13503         * domwalk.c (bb_postorder): Remove static variable.
13504         (cmp_bb_postorder): Adjust.
13505         (sort_bbs_postorder): Adjust and use gcc_sort_r.
13506         (dom_walker::walk): Adjust.
13508 2019-08-01  Alexander Monakov  <amonakov@ispras.ru>
13510         * sort.cc (sort_r_ctx): New struct.
13511         (reorder23): Make templated on context type.
13512         (reorder45): Ditto.
13513         (cmp1): Ditto.  Adjust signature.
13514         (netsort): Ditto.
13515         (mergesort): Ditto.
13516         [CHECKING_P] (cmp2to3): New static function.  Use it...
13517         (gcc_qsort) [CHECKING_P]: ...here.
13518         (gcc_sort_r): New function.
13519         * system.h (sort_r_cmp_fn): New function typedef.
13520         (qsort_chk): Adjust signature.
13521         (gcc_sort_r): Declare.
13522         * vec.c (qsort_chk_error): Adjust.
13523         (qsort_chk): Adjust.
13525 2019-08-01  Richard Biener  <rguenther@suse.de>
13527         * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
13528         (compute_antic): Localize it here.
13530 2019-07-31  Maxim Blinov  <maxim.blinov@embecosm.com>
13532         * common/config/riscv/riscv-common.c: Check -march string ends
13533         with null.
13535 2019-07-31  Alexander Monakov  <amonakov@ispras.ru>
13537         * ipa-devirt.c (type_warning_cmp): Make static.
13538         (decl_warning_cmp): Ditto.
13540 2019-07-31  Peter Bergner  <bergner@linux.ibm.com>
13542         PR target/91050
13543         * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
13544         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
13545         use of deleted rs6000_dejagnu_cpu_index variable.
13546         * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
13547         (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
13548         * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
13549         (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
13550         * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
13551         (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
13553 2019-07-31  Richard Biener  <rguenther@suse.de>
13555         PR tree-optimization/91280
13556         * tree-ssa-structalias.c (get_constraint_for_component_ref):
13557         Decompose MEM_REF manually for offset handling.
13559 2019-07-31  Richard Biener  <rguenther@suse.de>
13561         PR tree-optimization/91293
13562         * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
13563         of reduction stmts.
13565 2019-07-31  Matt Thomas  <matt@3am-software.com>
13566             Nick Hudson  <nick@nthcliff.demon.co.uk>
13567             Matthew Green  <mrg@eterna.com.au>
13568             Maya Rashish  <coypu@sdf.org>
13570         * config.gcc (hppa*-*-netbsd*): New target.
13571         * config/pa/pa-netbsd.h: New file.
13572         * config/pa/pa32-netbsd.h: New file.
13574 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
13576         PR tree-optimization/91201
13577         * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
13579 2019-07-31  Andrew Stubbs  <ams@codesourcery.com>
13581         * config/gcn/gcn-valu.md
13582         (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
13583         (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
13584         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
13585         * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
13586         struct ilist. Add nops for delayeduse insns.
13587         * config/gcn/gcn.md (delayeduse): New attribute.
13588         (*movbi): Remove s_waitcnt from stores.
13589         (*mov<mode>_insn): Likewise.
13590         (*movti_insn): Likewise. Add delayeduse attribute.
13591         (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
13592         (atomic_store<mode>): Remove or adjust s_waitcnt.
13594 2019-07-31  Richard Biener  <rguenther@suse.de>
13596         * vr-values.h (vr_values::swap_vr_value): New.
13597         (vr_values::free_value_range): likewise.
13598         * vr-values.c (vr_values::swap_vr_value): Implement.
13599         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
13600         Do not return a range or take a var.
13601         (evrp_range_analyzer::stack): Change back to recording a non-const
13602         value_range *.
13603         * gimple-ssa-evrp-analyze.c
13604         (evrp_range_analyzer::record_ranges_from_stmt): Free unused
13605         value-range.
13606         (evrp_range_analyzer::pop_to_marker): Adjust.
13607         (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
13608         (evrp_range_analyzer::pop_value_range): Likewise.  Free the
13609         no longer needed value-range.
13611 2019-07-31  Martin Liska  <mliska@suse.cz>
13613         * tree-ssa-dce.c (propagate_necessity): Delete operator can
13614         have size and (or) alignment as 2nd and later arguments.
13615         Mark all of them as necessary.
13617 2019-07-31  Richard Biener  <rguenther@suse.de>
13619         PR tree-optimization/91178
13620         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
13621         Use tail-recursion.
13623 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
13625         PR tree-optimization/91201
13626         * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
13627         (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
13628         TARGET_AVX512F.
13629         (reduc_plus_scal_<mode>): Improve formatting by introducing
13630         a temporary.
13632 2019-07-31  Sudakshina Das  <sudi.das@arm.com>
13634         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
13635         AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
13636         AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
13637         (aarch64_init_tme_builtins): New.
13638         (aarch64_init_builtins): Call aarch64_init_tme_builtins.
13639         (aarch64_expand_builtin_tme): New.
13640         (aarch64_expand_builtin): Handle TME builtins.
13641         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
13642         __ARM_FEATURE_TME when enabled.
13643         * config/aarch64/aarch64-option-extensions.def: Add "tme".
13644         * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
13645         (TARGET_TME): New.
13646         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
13647         (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
13648         UNSPECV_TCANCEL.
13649         (tstart, ttest, tcommit, tcancel): New instructions.
13650         * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
13651         (__tcancel, __ttest): New.
13652         (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
13653         (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
13654         (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
13655         (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
13656         * config/arm/types.md: Add new tme type attr.
13657         * doc/invoke.texi: Document "tme".
13659 2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>
13661         * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
13662         warn_unused_result attribute.
13663         (cmse_check_address_range): Add warn_unused_result attribute.
13665 2019-07-31  Richard Biener  <rguenther@suse.de>
13667         PR tree-optimization/91257
13668         * tree-vrp.c (union_ranges): Unify equality and less tests
13669         by using compare_values.  Re-order cheap tests first.
13671 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
13673         PR middle-end/91301
13674         * gimplify.c (gimplify_omp_for): If for class iterator on
13675         distribute parallel for there is no data sharing clause
13676         on inner_for_stmt, look for private clause on combined
13677         parallel too and if found, move it to inner_for_stmt.
13679 2019-07-31  Richard Sandiford  <richard.sandiford@arm.com>
13681         * lra-int.h (lra_operand_data): Remove early_clobber field.
13682         (lra_insn_reg): Likewise.
13683         * lra.c (debug_operand_data): Update accordingly.
13684         (setup_operand_alternative): Likewise.
13685         (new_insn_reg): Likewise.  Remove early_clobber parameter.
13686         (collect_non_operand_hard_regs): Update call accordingly.
13687         Don't assign to lra_insn_reg::early_clobber.
13688         (add_regs_to_insn_regno_info): Remove early_clobber parameter
13689         and update calls to new_insn_reg.
13690         (lra_update_insn_regno_info): Update calls accordingly.
13691         * lra-constraints.c (update_and_check_small_class_inputs): Take the
13692         alternative number as a parameter and test whether the operand
13693         is earlyclobbered in that particular alternative.
13694         (process_alt_operands): Update call accordingly.  Use per-alternative
13695         checks for earyclobber here too.
13696         * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
13697         against zero for IRA_UNKNOWN_ALT.
13699 2019-07-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13701         * config/alpha/alpha.c (alpha_option_override): Quote a C type.
13703 2019-07-30  Wilco Dijkstra  <wdijkstr@arm.com>
13705         * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
13706         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
13708 2019-07-30  Martin Liska  <mliska@suse.cz>
13710         PR ipa/89330
13711         * cgraph.c (cgraph_edge::make_direct): Use
13712         edge->indirect_unknown_callee as edge->resolve_speculation can
13713         deallocate edge which is this pointer.
13715 2019-07-30  Richard Biener  <rguenther@suse.de>
13717         PR tree-optimization/91257
13718         * bitmap.c (bitmap_ior_and_compl_into): Open-code.
13720 2019-07-30  Martin Liska  <mliska@suse.cz>
13722         * doc/invoke.texi: Document new behavior.
13723         * lto-wrapper.c (cpuset_popcount): New function
13724         is a copy of libgomp/config/linux/proc.c.
13725         (init_num_threads): Likewise.
13726         (run_gcc): Automatically detect core count for -flto.
13727         (jobserver_active_p): New function.
13729 2019-07-30  Richard Biener  <rguenther@suse.de>
13731         PR tree-optimization/91257
13732         * bitmap.h (bitmap_ior_into_and_free): Declare.
13733         * bitmap.c (bitmap_list_unlink_element): Add defaulted param
13734         whether to add the unliked element to the freelist.
13735         (bitmap_list_insert_element_after): Add defaulted param for
13736         an already allocated element.
13737         (bitmap_ior_into_and_free): New function.
13738         * tree-ssa-structalias.c (condense_visit): Reduce the
13739         ponts-to and edge bitmaps of the SCC members in a
13740         logarithmic fashion rather than all to one.
13742 2019-07-30  Richard Sandiford  <richard.sandiford@arm.com>
13744         * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
13745         parameter.  When nonnull, make sure that the addition or subtraction
13746         has the same condition.
13747         (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
13748         for CFN_COND_MUL too.
13750 2019-07-30  Richard Biener  <rguenther@suse.de>
13752         PR tree-optimization/91291
13753         * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
13754         constant values.
13756 2019-07-30  Jakub Jelinek  <jakub@redhat.com>
13758         PR middle-end/91216
13759         * omp-low.c (global_nonaddressable_vars): New variable.
13760         (use_pointer_for_field): For global decls, if they are non-addressable,
13761         remember it in the global_nonaddressable_vars bitmap, if they are
13762         addressable and in the global_nonaddressable_vars bitmap, ignore their
13763         TREE_ADDRESSABLE bit.
13764         (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
13765         vars in global_nonaddressable_vars bitmap.
13766         (execute_lower_omp): Free global_nonaddressable_vars bitmap.
13768         PR target/91150
13769         * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
13770         from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
13771         comparison to unsigned HOST_WIDE_INT before shifting it left.
13773 2019-07-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13775         * config/i386/i386.md (movstrict<mode>): Use register_operand
13776         predicate for operand 0.  Add expander condition.  Assert that
13777         operand 0 is a SUBREG RTX.
13778         (*movstrict<mode>_1): Use register_operand predicate for operand 0.
13779         Update operand constraints and insn condition.
13780         (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
13781         (zero_extendqihi2_and): Do not call gen_movstrictqi.
13782         (*setcc_qi_slp): Use register_operand predicate for operand 0.
13783         Update operand 0 constraints.
13784         (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
13786 2019-07-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
13788         * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
13789         when -m{code,data}-region are used without -mlarge.
13790         * config/msp430/msp430.c (msp430_option_override): Error when a
13791         non-default code or data region is used without -mlarge.
13792         (msp430_section_attr): Emit a warning and do not add upper/lower/either
13793         attributes when they are used without -mlarge.
13795 2019-07-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
13797         PR target/70320
13798         * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
13800 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13802         PR middle-end/91242
13803         * wide-int.h (generic_wide_int::sext_elt): New function.
13804         * inchash.h (hash::add_wide_int): Use it instead of elt.
13806 2019-07-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13808         * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
13809         CODE_FOR_arm_##.
13810         * config/arm/arm.md (<crc_variant>): Rename to...
13811         (arm_<crc_variant>): ... This.
13812         (<cdp>): Rename to...
13813         (arm_<cdp>): ... This.
13814         (<ldc>): Rename to...
13815         (arm_<ldc>): ... This.
13816         (<stc>): Rename to...
13817         (arm_<stc>): ... This.
13818         (<mcr>): Rename to...
13819         (arm_<mcr>): ... This.
13820         (<mrc>): Rename to...
13821         (arm_<mrc>): ... This.
13822         (<mcrr>): Rename to...
13823         (arm_<mcrr>): ... This.
13824         (<mrrc>): Rename to...
13825         (arm_<mrrc>): ... This.
13827 2019-07-29  Richard Biener  <rguenther@suse.de>
13829         PR tree-optimization/91257
13830         * tree-ssa-sccvn.h (struct vn_avail): New.
13831         (struct vn_ssa_aux): Add avail member.
13832         * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
13833         member, add m_avail_freelist one.
13834         (rpo_elim::~rpo_elim): Remove.
13835         (rpo_elim::eliminate_avail): Adjust to new avail tracking
13836         data structure.
13837         (rpo_elim::eliminate_push_avail): Likewise.
13838         (do_unwind): Likewise.
13839         (do_rpo_vn): Likewise.
13841 2019-07-29  Richard Biener  <rguenther@suse.de>
13843         PR tree-optimization/91257
13844         * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
13845         most cases, instead call compare_values which handles the
13846         symbolic ranges we handle specially.
13847         (compare_values_warnv): Do not call operand_less_p but open-code
13848         the effective fold calls.  Avoid converting so much.
13850 2019-07-29  Martin Liska  <mliska@suse.cz>
13852         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
13853         remove LHS of operator new call.  It's handled latter.
13855 2019-07-29  Richard Biener  <rguenther@suse.de>
13857         PR tree-optimization/91267
13858         * vr-values.c (vr_values::update_value_range): Add early return
13859         for effectively VARYING lattice entry.
13861 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13863         PR debug/86638
13864         * tree-ssa-dce.c (keep_all_vdefs_p): New function.
13865         (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
13866         necessary if keep_all_vdefs_p is true.
13867         (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
13868         that keep_all_vdefs_p is false.
13869         (mark_all_reaching_defs_necessary): Likewise.
13870         (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
13872 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13874         * common.opt (Og): Change the initial value of flag_dse to 0.
13875         * opts.c (default_options_table): Move OPT_ftree_dse from
13876         OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG.  Also add
13877         OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG.  Put the OPT_ftree_pta
13878         entry before the OPT_ftree_sra entry.
13879         * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
13880         of flags disabled by Og.
13882 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13884         * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
13885         variables for -Og.
13887 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13889         * doc/sourcebuild.texi (check-function-bodies): Document.
13891 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13893         * simplify-rtx.c (simplify_const_unary_operation): Fold a
13894         VEC_DUPLICATE of a fixed-length vector even if the result
13895         is variable-length.  Likewise fold a duplicate of a
13896         variable-length vector if the variable-length vector is
13897         itself a duplicate of a fixed-length sequence.
13898         (test_vector_ops_duplicate): Test more cases.
13900 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
13902         * vector-builder.h (vector_builder): Add a shape template parameter.
13903         (vector_builder::new_unary_operation): New function, generalizing
13904         the old tree_vector_builder function.
13905         (vector_builder::new_binary_operation): Likewise.
13906         (vector_builder::binary_encoded_nelts): Likewise.
13907         * int-vector-builder.h (int_vector_builder): Update template
13908         parameters to vector_builder.
13909         (int_vector_builder::shape_nelts): New function.
13910         * rtx-vector-builder.h (rtx_vector_builder): Update template
13911         parameters to vector_builder.
13912         (rtx_vector_builder::shape_nelts): New function.
13913         (rtx_vector_builder::nelts_of): Likewise.
13914         (rtx_vector_builder::npatterns_of): Likewise.
13915         (rtx_vector_builder::nelts_per_pattern_of): Likewise.
13916         * tree-vector-builder.h (tree_vector_builder): Update template
13917         parameters to vector_builder.
13918         (tree_vector_builder::shape_nelts): New function.
13919         (tree_vector_builder::nelts_of): Likewise.
13920         (tree_vector_builder::npatterns_of): Likewise.
13921         (tree_vector_builder::nelts_per_pattern_of): Likewise.
13922         * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
13923         (tree_vector_builder::new_binary_operation): Delete.
13924         (tree_vector_builder::binary_encoded_nelts): Likewise.
13925         * simplify-rtx.c: Include rtx-vector-builder.h.
13926         (distributes_over_addition_p): New function.
13927         (simplify_const_unary_operation)
13928         (simplify_const_binary_operation): Generalize handling of vector
13929         constants to include variable-length vectors.
13930         (test_vector_ops_series): Add more tests.
13932 2019-07-28  Jan Hubicka  <hubicka@ucw.cz>
13934         PR lto/91222
13935         * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
13936         than INDENTIFIER_POINTER.
13938 2019-07-28  Martin Liska  <mliska@suse.cz>
13940         PR ipa/89330
13941         * cgraph.c (symbol_table::create_edge): Always allocate
13942         a cgraph_edge.
13943         (symbol_table::free_edge): Store summary_id to
13944         edge_released_summary_ids if != -1;
13945         * cgraph.h (NEXT_FREE_NODE): Remove.
13946         (SET_NEXT_FREE_NODE): Likewise.
13947         (NEXT_FREE_EDGE): Likewise.
13948         (symbol_table::release_symbol): Store summary_id to
13949         cgraph_released_summary_ids if != -1;
13950         (symbol_table::allocate_cgraph_symbol): Always allocate
13951         a cgraph_node.
13953 2019-07-28  Alan Modra  <amodra@gmail.com>
13955         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
13956         gen_sibcall.
13958 2019-07-28  Alan Modra  <amodra@gmail.com>
13960         PR target/91135
13961         * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
13962         define.
13963         * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
13964         GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
13965         (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
13967 2019-07-28  Alan Modra  <amodra@gmail.com>
13969         PR target/91050
13970         * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
13971         * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
13972         * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
13973         * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
13974         * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
13975         * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
13976         in asm_default spec.
13977         * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
13978         * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
13980 2019-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
13982         * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
13984 2019-07-26  Tamar Christina  <tamar.christina@arm.com>
13986         PR target/89517
13987         * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
13988         * config/aarch64/aarch64-option-extensions.def: Add new comments
13989         and restore easier to read options.
13991 2019-07-26  Tamar Christina  <tamar.christina@arm.com>
13993         * convert.c (convert_to_real_1): Move part of conversion code...
13994         * match.pd: ...To here.
13996 2019-07-26  Martin Jambor  <mjambor@suse.cz>
13998         PR ipa/89330
13999         * ipa-inline-transform.c (check_speculations_1): New function.
14000         (push_all_edges_in_set_to_vec): Likewise.
14001         (check_speculations): Use check_speculations_1, new parameter
14002         new_edges.
14003         (inline_call): Pass new_edges to check_speculations.
14004         * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
14005         NULL.
14006         (speculation_useful_p): Early return true if edge is inlined, remove
14007         later checks for inline_failed.
14009 2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>
14011         PR rtl-optimization/91223
14012         * lra-constraints.c (process_alt_operands): Fail for unsuccessful
14013         matching with INOUT operand.
14015 2019-07-25  Eric Botcazou  <ebotcazou@adacore.com>
14017         * stmt.c (expand_case): Try to narrow the index type if it's larger
14018         than a word.  Tidy up.
14020 2019-07-25  Eric Botcazou  <ebotcazou@adacore.com>
14022         * cif-code.def (NEVER_CALL): New code.
14023         * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
14024         Set the failure to CIF_NEVER_CALL if the IPA count is zero.
14026 2019-07-25  Wilco Dijkstra  <wdijkstr@arm.com>
14028         * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
14029         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
14031 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
14033         * ipa-devirt.c (add_type_duplicate): Fix return value.
14035 2019-07-25  Richard Biener  <rguenther@suse.de>
14037         * tree-vrp.c (extract_range_from_multiplicative_op): Add
14038         type parameter and use it instead of guessing expression
14039         type from the first operand.
14040         (extract_range_from_binary_expr): Pass expr_type down.
14042 2019-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14044         * config/arm/arm.md (SATrev): Change to code attribute.
14045         (*satsi_<SAT:code>): Adjust for the above.
14046         (*satsi_<SAT:code>_shift): Likewise.
14048 2019-07-25  Richard Biener  <rguenther@suse.de>
14050         * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
14051         Make value_range * temporary const.
14052         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
14053         Likewise.
14054         (evrp_range_analyzer::record_ranges_from_): Likewise.
14055         (evrp_range_analyzer::pop_value_range): Return a const value_range *,
14056         deal with having recorded a const one.
14057         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
14058         Return a const value_range *.
14059         (evrp_range_analyzer::pop_value_range): Likewise.
14060         (evrp_range_analyzer::stack): Record const value_range *s.
14061         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
14062         Adjust.
14063         * gimple-ssa-sprintf.c (get_int_range): Likewise.
14064         (format_integer): Likewise.
14065         (sprintf_dom_walker::handle_gimple_call): Likewise.
14066         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
14067         * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
14068         (vrp_prop::get_value_range): Adjust.
14069         (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
14070         modifying the lattice in-place.
14071         (vrp_prop::visit_stmt): Likewise.
14072         * vr-values.c (vr_values::get_lattice_entry): New private method.
14073         (vr_values::get_value_range): Wrap it and return a const
14074         value_range *.
14075         (vr_values::set_def_to_varying): New.
14076         (vr_values::set_defs_to_varying): Use it.
14077         (vr_values::update_value_range): Likewise.
14078         (vr_values::vrp_stmt_computes_nonzero): Adjust.
14079         (values::op_with_constant_singleton_va): Likewise.
14080         (vr_values::extract_range_for_var_from_co): Likewise.
14081         (vr_values::extract_range_from_ssa_name): Likewise.
14082         (vr_values::extract_range_from_cond_expr): Likewise.
14083         (vr_values::extract_range_basic): Likewise.
14084         (compare_ranges): Take const value_range *, adjust.
14085         (compare_range_with_value): Likewise.
14086         (vrp_valueize): Adjust.
14087         (vrp_valueize_1): Likewise.
14088         (vr_values::get_vr_for_comparison): Return a const value_range *.
14089         (vr_values::compare_name_with_value): Adjust.
14090         (vr_values::compare_names): Likewise.
14091         (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
14092         Likewise.
14093         (vr_values::vrp_evaluate_conditional): Likewise.
14094         (find_case_label_ranges): Take a const value_range *.
14095         (vr_values::vrp_visit_switch_stmt): Adjust.
14096         (vr_values::extract_range_from_phi_node): Likewise.
14097         (vr_values::simplify_div_or_mod_using_ran): Likewise.
14098         (vr_values::simplify_abs_using_ranges): Likewise.
14099         (test_for_singularity): Take a const value_range *.
14100         (range_fits_type_p): Likewise.
14101         (vr_values::simplify_cond_using_ranges_1): Adjust.
14102         (vr_values::simplify_cond_using_ranges_2): Likewise.
14103         (vr_values::simplify_switch_using_ranges): Likewise.
14104         (vr_values::simplify_float_conversion_usi): Likewise.
14105         (vr_values::two_valued_val_range_p): Likewise.
14106         * vr-values.h (vr_values::get_value_range): Return a const
14107         value_range *.
14108         (vr_values::set_def_to_varying): New.
14109         (vr_values::get_lattice_entry): New private method.
14110         (vr_values::get_vr_for_comparison): Return a const value_range *.
14112 2019-07-25  Martin Liska  <mliska@suse.cz>
14113             Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
14115         PR c++/23383
14116         * common.opt: Add -fallocation-dce
14117         * gimple.c (gimple_call_operator_delete_p): New.
14118         * gimple.h (gimple_call_operator_delete_p): Likewise.
14119         * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
14120         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
14121         DECL_IS_OPERATOR_DELETE_P.
14122         (mark_all_reaching_defs_necessary_1): Likewise.
14123         (propagate_necessity): Likewise.
14124         (eliminate_unnecessary_stmts): Handle
14125         gimple_call_operator_delete_p.
14126         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
14127         Add packing of OPERATOR_DELETE.
14128         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
14129         Similarly here.
14130         * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
14131         (DECL_SET_IS_OPERATOR_DELETE): New.
14132         (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
14134 2019-07-25  Martin Liska  <mliska@suse.cz>
14136         * calls.c (maybe_warn_alloc_args_overflow): Use new macros
14137         (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
14138         * coverage.c (coverage_begin_function): Likewise.
14139         * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
14140         * gimple.c (gimple_call_nonnull_result_p): Likewise.
14141         * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
14142         (sem_item::hash_referenced_symbol_properties): Likewise.
14143         * lto-streamer-out.c (hash_tree): Likewise.
14144         * predict.c (expr_expected_value_1): Likewise.
14145         * tree-inline.c (expand_call_inline): Likewise.
14146         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
14147         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
14148         * tree-core.h (enum function_decl_type): New enum.
14149         (struct tree_function_decl): Remove operator_new_flag and lambda_function.
14150         * tree.h (FUNCTION_DECL_DECL_TYPE): New.
14151         (set_function_decl_type): Likewise.
14152         (DECL_IS_OPERATOR_NEW_P): New.
14153         (DECL_SET_IS_OPERATOR_NEW): Likewise.
14154         (DECL_LAMBDA_FUNCTION): Likewise.
14155         (DECL_LAMBDA_FUNCTION_P): Likewise.
14156         (DECL_IS_OPERATOR_NEW): Remove.
14157         (DECL_SET_LAMBDA_FUNCTION): Likewise.
14159 2019-07-25  Xiong Hu Luo  <luoxhu@linux.ibm.com>
14161         * ipa-profile.c (get_most_common_single_value): Use
14162         get_nth_most_common_value.
14163         * profile.c (sort_hist_value): New function.
14164         (compute_value_histograms): Call sort_hist_value to sort the
14165         values after loading from disk.
14166         * value-prof.c (get_most_common_single_value): Rename to ...
14167         get_nth_most_common_value.  Add input params n, return
14168         the n_th value and count.
14169         (gimple_divmod_fixed_value_transform): Use
14170         get_nth_most_common_value.
14171         (gimple_ic_transform): Likewise.
14172         (gimple_stringops_transform): Likewise.
14173         * value-prof.h (get_most_common_single_value): Add input params
14174         n, default to 0.
14176 2019-07-25  Richard Biener  <rguenther@suse.de>
14178         PR tree-optimization/91236
14179         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
14180         size of CONSTRUCTOR write.  Fix buffer size we pass to
14181         native_encode_expr.
14183 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14185         * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
14186         * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
14187         r273773.
14189 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14191         * config.gcc (msp430*-*-*): Enable initfini_array by default unless
14192         explicitly disabled with --disable-initfini-array.
14194 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14196         * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
14197         if-exists.
14199 2019-07-24  Martin Sebor  <msebor@redhat.com>
14201         PR tree-optimization/91183
14202         PR tree-optimization/86688
14203         * builtins.c (compute_objsize): Handle MEM_REF.
14204         * tree-ssa-strlen.c (class ssa_name_limit_t): New.
14205         (get_min_string_length): Remove.
14206         (count_nonzero_bytes): New function.
14207         (handle_char_store): Rename...
14208         (handle_store): to this.  Handle multibyte stores via integer types.
14209         (strlen_check_and_optimize_stmt): Adjust conditional and the called
14210         function name.
14212 2019-07-24  Martin Sebor  <msebor@redhat.com>
14214         PR driver/80545
14215         * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
14216         (diagnostic_report_diagnostic): Same.
14217         * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
14218         (diagnostic_context::lang_mask): New data member.
14219         * ipa-pure-const.c (suggest_attribute): Use
14220         lang_hooks.option_lang_mask ().
14221         * opts-common.c (option_enabled): Handle new argument.
14222         (get_option_state): Pass an additional argument.
14223         * opts.c (print_filtered_help): Print supported languages for
14224         unsupported options.  Adjust printing of current state.
14225         * opts.h (option_enabled): Add argument.
14226         * toplev.c (print_switch_values): Use lang_mask.
14227         (general_init): Set global_dc->lang_mask.
14229 2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
14231         PR bootstrap/87030
14232         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
14234 2019-07-24  Giuliano Belinassi  <giuliano.belinassi@usp.br>
14236         * cgraphunit.c (symbol_table::compile): Start and stop
14237         TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
14238         * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
14240 2019-07-24  Oliver Browne  <oliverbrowne62@gmail.com>
14242         * gimplify.c (flag_instrument_functions_exclude_p): Include
14243         namespace/class information in the printable name.
14244         * opts.c (add_comma_separated_to_vector): Add NUL terminator
14245         to tokens entered into the vector.
14247 2019-07-24  Eric Botcazou  <ebotcazou@adacore.com>
14249         * tree-nested.c (build_simple_mem_ref_notrap): New function.
14250         (get_static_chain): Call it instead of build_simple_mem_ref.
14251         (get_frame_field): Likewise.
14252         (get_nonlocal_debug_decl): Likewise.
14253         (convert_nonlocal_reference_op): Likewise.
14255 2019-07-24  Claudiu Zissulescu  <claziss@synopsys.com>
14257         * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
14258         declaration.
14259         (arc_compute_frame_size): Millicode is disabled when compiling
14260         ISR.
14261         (arc_return_address_register): Likewise.
14262         (arc_compute_function_type): Likewise.
14263         (arc_compute_frame_size): Likewise.
14264         (secondary_reload_info): Likewise.
14265         (arc_get_unalign): Likewise.
14266         (arc_can_use_return_insn): Declare.
14267         * config/arc/arc.c (AUX_LP_START): Define
14268         (AUX_LP_END): Likewise.
14269         (arc_frame_info): Update gmask member to 64-bit datum.
14270         (GMASK_LEN): Update.
14271         (arc_compute_function_type): Make it static, move it forward.
14272         (arc_must_save_register): Update, consider the extra regs.
14273         (arc_compute_millicode_save_restore_regs): Update to use the 64
14274         bit gmask.
14275         (arc_compute_frame_size): Likewise.
14276         (arc_enter_leave_p): Likewise.
14277         (arc_save_callee_saves): Likewise.
14278         (arc_restore_callee_saves): Likewise.
14279         (arc_save_callee_enter): Likewise.
14280         (arc_restore_callee_leave): Likewise.
14281         (arc_save_callee_milli): Likewise.
14282         (arc_restore_callee_milli): Likewise.
14283         (arc_expand_prologue): Add new interrupt handling.
14284         (arc_return_address_register): Make it static, move it forward.
14285         (arc_expand_epilogue): Add new interrupt handling.
14286         (arc_get_unalign): Delete.
14287         (arc_epilogue_uses): Make sure we do not remove the extra
14288         saved/restored registers when interrupt.
14289         (arc_can_use_return_insn): New function.
14290         (push_reg): Likewise.
14291         (pop_reg): Likewise.
14292         (arc_save_callee_saves): Add ZOL and FPX aux registers saving
14293         procedures.
14294         (arc_restore_callee_saves): Likewise, but restoring.
14295         * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
14296         (R33_REG): Likewise.
14297         (R34_REG): Likewise.
14298         (R35_REG): Likewise.
14299         (R36_REG): Likewise.
14300         (R37_REG): Likewise.
14301         (R38_REG): Likewise.
14302         (R39_REG): Likewise.
14303         (R45_REG): Likewise.
14304         (R46_REG): Likewise.
14305         (R47_REG): Likewise.
14306         (R48_REG): Likewise.
14307         (R49_REG): Likewise.
14308         (R50_REG): Likewise.
14309         (R51_REG): Likewise.
14310         (R52_REG): Likewise.
14311         (R53_REG): Likewise.
14312         (R54_REG): Likewise.
14313         (R55_REG): Likewise.
14314         (R56_REG): Likewise.
14315         (R58_REG): Likewise.
14316         (type): Add rtie attribute.
14317         (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
14318         (movsi_insn): Accept moves to lp_count.
14319         (rtie): Update pattern.
14320         (simple_return): Simplify it, don't use this pattern as a return
14321         from an interrupt.
14322         (arc600_rtie): New pattern.
14323         (p_return_i): Clean up.
14324         (return): Likewise.
14325         * config/arc/builtins.def (rtie): Only available for non ARC6xx
14326         family CPUs.
14327         * config/arc/predicates.md (move_src_operand): Consider lp_count
14328         as a register.
14330 2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>
14332         * config/s390/predicates.md (addv_const_operand): New predicate.
14333         * config/s390/s390-modes.def (CCO): New condition code mode.
14334         * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
14335         (s390_branch_condition_mask): Likewise.
14336         * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
14337         ("mulv<mode>4"): New expanders.
14338         ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
14339         ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
14340         pattern definitions.
14342 2019-07-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14344         PR middle-end/91166
14345         * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
14346         (define_predicates): Add entry for uniform_vector_p.
14347         (vec_same_elem_p): New match pattern.
14349 2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
14351         PR bootstrap/87030
14352         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
14353         * config/i386/darwin32-biarch.h .. to here.
14354         * config/i386/darwin64-biarch.h: Adjust comments.
14355         * config/rs6000/darwin32-biarch.h: Likewise.
14356         * config/rs6000/darwin64-biarch.h: Likewise.
14357         * config.gcc: Missed commit from r273746
14358         (*-*-darwin*): Don't include CPU t-darwin here.
14359         (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
14360         an error message if i686-darwin configuration is attempted for
14361         Darwin >= 18.
14363 2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>
14365         PR bootstrap/87030
14366         * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
14367         (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
14368         an error message if i686-darwin configuration is attempted for
14369         Darwin >= 18.
14370         (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
14371         (powerpc-*-darwin*): Use biarch files where needed.
14372         (powerpc64-*-darwin*): Likewise.
14373         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
14374         (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
14375         arch case.
14376         * config/i386/darwin32-biarch.h: New.
14377         * config/i386/darwin64.h: Rename.
14378         * config/i386/darwin64-biarch.h: To this.
14379         * config/i386/t-darwin: Rename.
14380         * config/i386/t-darwin32-biarch: To this.
14381         * config/i386/t-darwin64: Rename.
14382         * config/i386/t-darwin64-biarch: To this.
14383         * config/rs6000/darwin32-biarch.h: New.
14384         * config/rs6000/darwin64.h: Rename.
14385         * config/rs6000/darwin64-biarch.h: To this.
14386         (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
14387         arch case.
14388         * config/rs6000/t-darwin8: Rename.
14389         * config/rs6000/t-darwin32-biarch: To this.
14390         * config/rs6000/t-darwin64 Rename.
14391         * config/rs6000/t-darwin64-biarch: To this.
14393 2019-07-23  Martin Sebor  <msebor@redhat.com>
14395         * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
14397 2019-07-23  Vladislav Ivanishin  <vlad@ispras.ru>
14399         * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
14400         (rh): New alias for it.
14402 2019-07-23  Vladislav Ivanishin  <vlad@ispras.ru>
14404         * gdbhooks.py: Pass replace=True to
14405         gdb.printing.register_pretty_printer.
14407 2019-07-23  Richard Biener  <rguenther@suse.de>
14409         PR debug/91231
14410         * lto-streamer-in.c (input_function): Drop inline-entry markers
14411         that ended up with an unknown location block.
14413 2019-07-23  Richard Biener  <rguenther@suse.de>
14415         PR tree-optimization/83518
14416         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
14417         init from a constant even when partial defs are already recorded.
14419 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
14421         * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
14422         * config/i386/znver1.md: Enable patterns for znver2 and add store
14423         variants which use extra AGU unit.
14425 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
14427         * config/i386/i386-options.c (ix86_option_override_internal): Default
14428         PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
14429         * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
14430         for ZNVER2.
14432 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
14434         * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
14435         (znver2_costs): Update 256 bit SSE costs and multiplication.
14437 2019-07-23  Jan Beulich  <jbeulich@suse.com>
14439         * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
14440         Require only AVX512F.
14441         (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise.  Add
14442         alternative expanding to vpternlog.
14444 2019-07-23  Martin Liska  <mliska@suse.cz>
14446         * dwarf2out.c (gen_producer_string): Canonize -flto=N
14447         to -flto in dwarf producer string.
14449 2019-07-23  Richard Biener  <rguenther@suse.de>
14451         * tree-cfg.c (label_for_bb): Remove global var.
14452         (main_block_label): Take label_for_bb as argument.
14453         (cleanup_dead_labels_eh): Likewise, adjust.
14454         (cleanup_dead_labels): Adjust.
14456 2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
14458         * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
14459         Configurations): Add documentation for __builtin_mtfsf.
14461 2019-07-22  Ilia Diachkov  <ilia.diachkov@optimitech.com>
14463         * config/riscv/riscv-opts.h (struct riscv_align_data): New.
14464         * config/riscv/riscv.c (riscv_constant_alignment): Use
14465         riscv_align_data_type.
14466         * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
14467         (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
14468         (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
14469         * config/riscv/riscv.opt (malign-data): New.
14470         * doc/invoke.texi (RISC-V Options): Document -malign-data=.
14472 2019-07-02  Giuliano Belinassi  <giuliano.belinassi@usp.br>
14474         * cgraph.c (dump_graphviz): New function.
14475         * cgraph.h (dump_graphviz): New function.
14476         * symtab.c (dump_graphviz): New function.
14478 2019-07-22  Sylvia Taylor  <sylvia.taylor@arm.com>
14480         * config/aarch64/aarch64-simd.md
14481         (*aarch64_simd_sra<mode>): New.
14482         * config/aarch64/iterators.md
14483         (SHIFTRT): New iterator.
14484         (sra_op): New attribute.
14486 2019-07-22  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14488         * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
14489         callee-saved regs R4->R10 in an interrupt function that calls another
14490         function.
14492 2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
14494         * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
14495         (_mm_blendv_epi8): New.
14497 2019-07-22  Richard Biener  <rguenther@suse.de>
14499         PR tree-optimization/91221
14500         * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
14501         restrict partial-def handling of empty constructors and
14502         memset to refs with known offset.
14504 2019-07-22  Jan Beulich  <jbeulich@suse.com>
14506         * config/i386/sse.md (ternlogsuffix): New.
14507         (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
14508         AVX512F is in use.
14509         (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
14511 2019-07-22  Martin Liska  <mliska@suse.cz>
14513         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
14514         comment.
14515         * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
14517 2019-07-22  Martin Liska  <mliska@suse.cz>
14519         * lto-section-in.c (lto_get_section_data):
14520         Use new function get_compression.
14521         * lto-streamer-out.c (produce_lto_section): Use
14522         set_compression to encode compression algorithm.
14523         * lto-streamer.h (struct lto_section): Do not
14524         use bitfields in the format.
14526 2019-07-22  Martin Liska  <mliska@suse.cz>
14528         PR driver/91172
14529         * opts-common.c (decode_cmdline_option): Decode
14530         argument of -Werror and check it for a wrong language.
14531         * opts-global.c (complain_wrong_lang): Remove such case.
14533 2019-07-22  Claudiu Zissulescu  <claziss@synopsys.com>
14535         * config/arc/arc.c (prepare_move_operands): Always use an
14536         intermediate register when storing a TLS symbols.
14538 2019-07-22  Stafford Horne  <shorne@gmail.com>
14540         * config/or1k/or1k.c (or1k_expand_compare): Check for int before
14541         force_reg.
14543 2019-07-22  Stafford Horne  <shorne@gmail.com>
14545         * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
14546         and munordered-float validations.
14547         * config/or1k/constraints.md (d): New register constraint.
14548         * config/or1k/predicates.md (fp_comparison_operator): New.
14549         * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
14550         operands.
14551         (or1k_expand_compare): Normalize unordered comparisons.
14552         * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
14553         (REG_CLASS_NAMES): Add "DOUBLE_REGS".
14554         (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
14555         * config/or1k/or1k.md (type): Add fpu.
14556         (fpu): New instruction reservation.
14557         (F, f, fr, fi, FI, FOP, fop): New.
14558         (<fop><F:mode>3): New ALU instruction definition.
14559         (float<fi><F:mode>2): New conversion instruction definition.
14560         (fix_trunc<F:mode><fi>2): New conversion instruction definition.
14561         (fpcmpcc): New code iterator.
14562         (*sf_fp_insn): New instruction definition.
14563         (cstore<F:mode>4): New expand definition.
14564         (cbranch<F:mode>4): New expand definition.
14565         * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
14566         munordered-float): New options.
14567         * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
14568         munordered-float.
14570 2019-07-22  Stafford Horne  <shorne@gmail.com>
14572         * config.gcc (or1k*-*-*): Add mrori and mror to validation.
14573         * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
14574         documenation to be more clear.
14575         * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
14576         more clear.
14577         * config/or1k/or1k.opt (mrori): New option.
14578         (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
14579         msfimm, mshftimm): Rewrite documentation to be more clear.
14580         * config/or1k/or1k.md (insn_support): Add ror and rori.
14581         (enabled): Add conditions for ror and rori.
14582         (rotrsi3): Replace condition for shftimm with ror and rori.
14584 2019-07-22  Stafford Horne  <shorne@gmail.com>
14586         PR target/90363
14587         * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
14588         (extend<mode>si2): Update predicate.
14589         * config/or1k/predicates.md (volatile_mem_operand): New.
14590         (reg_or_mem_operand): New.
14592 2019-07-21  Iain Sandoe  <iain@sandoe.co.uk>
14594         * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
14595         * config/rs6000/rs6000-call.c: ... to here.
14597 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
14599         * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
14600         memory.
14602 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
14604         * config/rs6000/predicates.md (input_operand): Allow volatile memory.
14606 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
14608         * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
14610 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
14612         * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
14613         (any_memory_operand): New predicate.
14614         (reg_or_mem_operand): Use it.
14616 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
14618         PR target/91204
14619         * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
14621 2019-07-20  John David Anglin  <danglin@gcc.gnu.org>
14623         * config/pa/pa.h (hppa_profile_hook): Delete declaration.
14624         * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
14626 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
14628         * tree.def (OMP_LOOP): New tree code.
14629         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
14630         (enum omp_clause_bind_kind): New enum.
14631         (struct tree_omp_clause): Add subcode.bind_kind.
14632         * tree.h (OMP_LOOP_CHECK): Rename to ...
14633         (OMP_LOOPING_CHECK): ... this.
14634         (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
14635         OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
14636         OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
14637         (OMP_CLAUSE_BIND_KIND): Define.
14638         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
14639         bind clause entries.
14640         (walk_tree_1): Handle OMP_CLAUSE_BIND.
14641         * tree-pretty-print.c (dump_omp_clause): Likewise.
14642         (dump_generic_node): Handle OMP_LOOP.
14643         * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
14644         (in_omp_construct): New variable.
14645         (is_gimple_stmt): Handle OMP_LOOP.
14646         (gimplify_scan_omp_clauses): For lastprivate don't set
14647         check_non_private if code == OMP_LOOP.  For reduction clause
14648         on OMP_LOOP combined with parallel or teams propagate as shared
14649         on the combined construct.  Handle OMP_CLAUSE_BIND.
14650         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
14651         (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
14652         for constructs from a loop construct to gimplify_scan_omp_clauses.
14653         Don't predetermine iterator linear on OMP_SIMD from loop construct.
14654         (replace_reduction_placeholders, gimplify_omp_loop): New functions.
14655         (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
14656         to match the implicit ORT_TARGET construct around whole body.
14657         Temporarily clear in_omp_construct when processing body.
14658         (gimplify_expr): Handle OMP_LOOP.  For OMP_MASTER, OMP_TASKGROUP
14659         etc. temporarily set in_omp_construct when processing body.
14660         (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
14661         * omp-low.c (struct omp_context): Add loop_p.
14662         (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
14663         in that the original var might be private.
14664         (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
14665         (check_omp_nesting_restrictions): Adjust nesting restrictions for
14666         addition of loop construct.
14667         (scan_omp_1_stmt): Allow setjmp inside of loop construct.
14669         * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
14670         lastprivate non-addressable iterator of a collapse(1) simd.
14672 2019-07-17  Bill Seurer  <seurer@linux.vnet.ibm.com>
14674         * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
14675         as in rs6000.c.
14677 2019-07-19  Iain Sandoe  <iain@sandoe.co.uk>
14679         * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
14680         refer to default conditions.  Warn for the 'y' spec which is ignored
14681         by current linkers.
14683 2019-07-19  Bill Seurer  <seurer@linux.vnet.ibm.com>
14685         * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
14686         cpu_supports_info, builtin_hash_struct, builtin_hasher,
14687         builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
14688         rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
14689         rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
14690         init_cumulative_args, rs6000_promote_function_mode,
14691         rs6000_must_pass_in_stack, is_complex_IBM_long_double,
14692         abi_v4_pass_in_fpr, rs6000_function_arg_padding,
14693         rs6000_function_arg_boundary, rs6000_parm_offset,
14694         rs6000_parm_start, rs6000_arg_size,
14695         rs6000_darwin64_record_arg_advance_flush,
14696         rs6000_darwin64_record_arg_advance_recurse,
14697         rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
14698         rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
14699         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
14700         rs6000_mixed_function_arg, rs6000_psave_function_arg,
14701         rs6000_finish_function_arg, rs6000_function_arg,
14702         rs6000_arg_partial_bytes, rs6000_pass_by_reference,
14703         rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
14704         rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
14705         setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
14706         rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
14707         bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
14708         bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
14709         rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
14710         rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
14711         rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
14712         altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
14713         altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
14714         altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
14715         altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
14716         htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
14717         altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
14718         get_element_number, altivec_expand_vec_set_builtin,
14719         altivec_expand_vec_ext_builtin, altivec_expand_builtin,
14720         rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
14721         rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
14722         fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
14723         fold_mergeeo_helper, rs6000_gimple_fold_builtin,
14724         rs6000_expand_builtin, rs6000_vector_type,
14725         rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
14726         htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
14727         rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
14728         to rs6000-call.c.
14729         * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
14730         cpu_supports_info, builtin_hash_struct, builtin_hasher,
14731         builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
14732         rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
14733         rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
14734         init_cumulative_args, rs6000_promote_function_mode,
14735         rs6000_must_pass_in_stack, is_complex_IBM_long_double,
14736         abi_v4_pass_in_fpr, rs6000_function_arg_padding,
14737         rs6000_function_arg_boundary, rs6000_parm_offset,
14738         rs6000_parm_start, rs6000_arg_size,
14739         rs6000_darwin64_record_arg_advance_flush,
14740         rs6000_darwin64_record_arg_advance_recurse,
14741         rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
14742         rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
14743         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
14744         rs6000_mixed_function_arg, rs6000_psave_function_arg,
14745         rs6000_finish_function_arg, rs6000_function_arg,
14746         rs6000_arg_partial_bytes, rs6000_pass_by_reference,
14747         rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
14748         rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
14749         setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
14750         rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
14751         bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
14752         bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
14753         rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
14754         rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
14755         rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
14756         altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
14757         altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
14758         altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
14759         altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
14760         htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
14761         altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
14762         get_element_number, altivec_expand_vec_set_builtin,
14763         altivec_expand_vec_ext_builtin, altivec_expand_builtin,
14764         rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
14765         rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
14766         fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
14767         fold_mergeeo_helper, rs6000_gimple_fold_builtin,
14768         rs6000_expand_builtin, rs6000_vector_type,
14769         rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
14770         htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
14771         rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
14772         to here from rs6000.c.
14773         * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
14774         rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
14775         rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
14776         rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
14777         rs6000_gimplify_va_arg, rs6000_promote_function_mode,
14778         rs6000_return_in_memory, rs6000_return_in_msb,
14779         rs6000_pass_by_reference, setup_incoming_varargs,
14780         rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
14781         rs6000_arg_partial_bytes, rs6000_function_arg_advance,
14782         rs6000_function_arg_padding, rs6000_function_arg,
14783         rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
14784         rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
14785         rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
14786         rs6000_passes_long_double, rs6000_passes_vector,
14787         rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
14788         altivec_builtin_mask_for_load) Add declarations.
14789         * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
14790         * config/config.gcc: Add new source file rs6000-call.c to garbage
14791         collector and extra_objs.
14793 2019-07-19  Jeff Law  <law@redhat.com>
14795         PR tree-optimization/86061
14796         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
14797         strncpy.  Drop some trivial dead code.
14798         (maybe_trim_memstar_call): Handle strncpy.
14800 2019-07-19  Richard Biener  <rguenther@suse.de>
14802         PR tree-optimization/91211
14803         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
14804         memset encoding size.
14806 2019-07-19  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14808         PR target/91204
14809         * config/i386/mmx.md (one_cmpl<mode>2): New expander.
14811 2019-07-19  Jan Hubicka  <hubicka@ucw.cz>
14813         PR ipa/91194
14814         * ipa-inline.c (recursive_inlining): Fix limits check.
14816 2019-07-19  Richard Biener  <rguenther@suse.de>
14818         PR tree-optimization/91200
14819         * tree-ssa-phiopt.c (cond_store_replacement): Check we have
14820         no PHI nodes in middle-bb.
14822 2019-07-19  Richard Sandiford  <richard.sandiford@arm.com>
14824         * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
14825         to +sve-bitperm.
14826         * config/aarch64/aarch64-option-extensions.def: Likewise.
14828 2019-07-19  Jakub Jelinek  <jakub@redhat.com>
14830         PR middle-end/91190
14831         * function.c (insert_temp_slot_address): Store into the hash table
14832         a copy of address to avoid RTL sharing issues.
14834 2019-07-19  Richard Biener  <rguenther@suse.de>
14836         PR tree-optimization/91207
14837         Revert
14838         2019-07-17  Richard Biener  <rguenther@suse.de>
14840         PR tree-optimization/91178
14841         * tree-vect-stmts.c (get_group_load_store_type): For SLP
14842         loads with a gap larger than the vector size always use
14843         VMAT_STRIDED_SLP.
14844         (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
14845         avoid loading vectors that are only contained in the gap
14846         and thus are not needed.
14848 2019-07-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14850         * config/i386/i386.md (*addqi_2_slp): Remove.
14851         (*<code>qi_2_slp): Ditto.
14853 2019-07-18  Michael Meissner  <meissner@linux.ibm.com>
14855         * config/rs6000/predicates.md (prefixed_mem_operand): Call
14856         rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
14857         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
14858         Rename function from rs6000_prefixed_address.
14859         * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
14860         TARGET_HAS_TOC.
14861         (TARGET_TOC): Likewise.
14862         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
14863         rs6000.h.
14864         * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
14865         TARGET_HAS_TOC.
14866         (TARGET_TOC): Likewise.
14867         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
14868         rs6000.h.
14869         * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
14870         TARGET_HAS_TOC.
14871         (TARGET_TOC): Likewise.
14872         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
14873         check to require -mcmodel=medium for pc-relative addressing.
14874         (create_TOC_reference): Add assertion for TARGET_TOC.
14875         (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
14876         TARGET_NO_TOC.
14877         (rs6000_emit_move): Likewise.
14878         (TOC_alias_set): Rename TOC alias set static variable from 'set'
14879         to 'TOC_alias_set'.
14880         (get_TOC_alias_set): Likewise.
14881         (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
14882         TARGET_NO_TOC.
14883         (rs6000_can_eliminate): Likewise.
14884         (rs6000_prefixed_address_mode_p): Rename function from
14885         rs6000_prefixed_address.
14886         * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
14887         TARGET_HAS_TOC and not pc-relative.
14888         (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
14889         * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
14890         TARGET_HAS_TOC.
14891         (TARGET_TOC): Likewise.
14892         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
14893         rs6000.h.
14895 2019-07-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14897         PR target/91188
14898         * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
14899         for operand 0.  Do not use (match_dup) to match operand 1 with
14900         operand 0.  Add check in insn constraint that either input operand
14901         matches operand 0.  Use SWI12 mode iterator to also handle
14902         HImode operands.
14903         (*and<mode>_1_slp): Ditto.
14904         (*<code>qi_1_slp): Ditto.
14905         (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
14906         Do not use (match_dup) to match operand 1 with operand 0.  Add
14907         check in insn constraint that operand 1 matches operand 0.
14908         Use SWI12 mode iterator to also handle HImode operands.
14909         (*ashl<mode>3_1_slp): Ditto.
14910         (*<shift_insn><mode>3_1_slp): Ditto.
14911         (*<rotate_insn><mode>3_1_slp): Ditto.
14913 2019-07-18  Sylvia Taylor  <sylvia.taylor@arm.com>
14915         * config/arm/arm-builtins.c
14916         (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
14917         (arm_expand_unop_builtin): Likewise.
14918         * config/arm/crypto.md
14919         (crypto_sha1h): Convert from define_insn to define_expand.
14920         (crypto_<crypto_pattern>): Likewise.
14921         (crypto_sha1h_lb): New define_insn.
14922         (crypto_<crypto_pattern>_lb): Likewise.
14924 2019-07-18  Sylvia Taylor  <sylvia.taylor@arm.com>
14926         PR target/90317
14927         * config/arm/arm_neon.h (vsha1h_u32): Refactor.
14928         (vsha1cq_u32): Likewise.
14929         (vsha1pq_u32): Likewise.
14930         (vsha1mq_u32): Likewise.
14931         * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
14932         vec select.
14933         (crypto_sha1c): Correct vec select.
14934         (crypto_sha1m): Likewise.
14935         (crypto_sha1p): Likewise.
14937 2019-07-18  Richard Earnshaw  <rearnsha@arm.com>
14939         * config/arm/predicates.md (arm_borrow_operation): New predicate.
14940         * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
14941         (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
14942         (subdi_zesidi_zesidi): Likewise.
14943         (negdi2_compare, negdi2_insn): Likewise.
14944         (negdi_extensidi): Likewise.
14945         (negdi_zero_extendsidi): Likewise.
14946         (arm_cmpdi_insn): Likewise.
14947         (subsi3_carryin): Use arm_borrow_operation.
14948         (subsi3_carryin_const): Likewise.
14949         (subsi3_carryin_const0): Likewise.
14950         (subsi3_carryin_compare): Likewise.
14951         (subsi3_carryin_compare_const): Likewise.
14952         (subsi3_carryin_compare_const0): Likewise.
14953         (subsi3_carryin_shift): Likewise.
14954         (rsbsi3_carryin_shift): Likewise.
14955         (negsi2_carryin_compare): Likewise.
14957 2019-07-18  Bin Cheng  <bin.cheng@linux.alibaba.com>
14959         PR tree-optimization/91137
14960         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
14961         (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
14962         Init, use and fini the above new field.
14963         (determine_base_object_1): New function.
14964         (determine_base_object): Reimplement using walk_tree.
14966 2019-07-18  Richard Sandiford  <richard.sandiford@arm.com>
14968         * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
14969         * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
14970         CLEANUP_FORCE_FAST_DCE is set.
14971         * ifcvt.c (rest_of_handle_if_conversion): Pass
14972         CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
14973         if-conversion succeeded.
14975 2019-07-18  Richard Biener  <rguenther@suse.de>
14977         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
14978         branches to make code less indented.
14980 2019-07-17  Alexandre Oliva  <oliva@adacore.com>
14982         PR middle-end/81824
14983         * attribs.c (decls_mismatched_attributes): Simplify the logic
14984         that avoids duplicates and false positives.
14986 2019-07-17  John David Anglin  <danglin@gcc.gnu.org>
14988         * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
14989         data into data section when generating PIC code.
14990         (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
14991         (pa_reloc_rw_mask): Return 3 when generating PIC code and when
14992         generating code for SOM targets earlier than HP-UX 11.  Otherwise,
14993         return 2 for SOM and 0 for other targets.
14995 2019-07-17  Jeff Law  <law@redhat.com>
14997         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
14998         (dse_walker::dse_optimize_stmt): Likewise.  Add missing return to
14999         avoid unexpected switch statement fallthru.
15001 2019-07-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15003         * config/i386/i386.md (*add<dwi>3_doubleword):
15004         Remove redundant constraints.
15005         (*add<mode>_1): Ditto.
15006         (*addhi_1): Ditto.
15007         (*addqi_1): Ditto.
15008         (*addqi_1_slp): Ditto.
15009         (*add<mode>_2): Ditto.
15010         (*addv<mode>4): Ditto.
15011         (*sub<dwi>3_doubleword): Ditto.
15012         (*sub<mode>_1): Ditto.
15013         (*subqi_1_slp): Ditto.
15014         (*sub<mode>_2): Ditto.
15015         (*subv<mode>4): Ditto.
15016         (*sub<mode>_3): Ditto.
15017         (@add<mode>3_carry): Ditto.
15018         (@sub<mode>3_carry): Ditto.
15019         (*add<mode>3_cc_overflow_1): Ditto.
15020         (*add<mode>3_zext_cc_overflow_2): Ditto.
15021         (*anddi_1): Ditto.
15022         (*and<mode>_1): Ditto.
15023         (*andqi_1): Ditto.
15024         (*andqi_1_slp): Ditto.
15025         (*anddi_2): Ditto.
15026         (*andqi_2_maybe_si): Ditto.
15027         (*and<mode>_2): Ditto.
15028         (*andqi_2_slp): Ditto.
15029         (*<code><mode>_1): Ditto.
15030         (*<code>qi_1): Ditto.
15031         (*<code>qi_1_slp): Ditto.
15032         (*<code><mode>_2): Ditto.
15033         (*<code>qi_2_slp): Ditto.
15035 2019-07-17  Jan Hubicka  <hubicka@ucw.cz>
15037         * alias.c (record_component_aliases): Do not simplify pointed-to
15038         types of ODR types.
15040 2019-07-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15042         * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
15043         partial reg stall on alternative 2.
15045 2019-07-17  Richard Biener  <rguenther@suse.de>
15047         PR tree-optimization/91178
15048         * tree-ssa.c (release_defs_bitset): Iterate from higher to
15049         lower SSA names to avoid quadratic behavior in the common case.
15050         * tree-data-ref.c (split_constant_offset): Add limit argument
15051         and pass it down.  Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
15052         (split_constant_offset_1): Add limit argument and use it to
15053         limit SSA def walking.  Optimize the common plus/minus case.
15055 2019-07-17  Richard Biener  <rguenther@suse.de>
15057         PR tree-optimization/91178
15058         * tree-vect-stmts.c (get_group_load_store_type): For SLP
15059         loads with a gap larger than the vector size always use
15060         VMAT_STRIDED_SLP.
15061         (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
15062         avoid loading vectors that are only contained in the gap
15063         and thus are not needed.
15065 2019-07-17  Richard Biener  <rguenther@suse.de>
15067         PR tree-optimization/91180
15068         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
15069         computation for memset partial defs.
15071 2019-07-17  Jakub Jelinek  <jakub@redhat.com>
15073         * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
15074         GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
15075         divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
15076         GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
15077         GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
15078         * omp-grid.c (grid_process_grid_body,
15079         grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
15080         of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
15081         == GF_OMP_FOR_KIND_SIMD.
15082         * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
15083         check_omp_nesting_restrictions, scan_omp_1_stmt,
15084         lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
15085         lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
15086         omp_find_scan): Likewise.
15087         * omp-expand.c (expand_omp_for): Likewise.
15088         * omp-general.c (omp_extract_for_data): Likewise.
15090         PR tree-optimization/91157
15091         * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
15092         a vector boolean with scalar mode.
15093         (expand_vector_condition): Handle first operand being a vector boolean
15094         with scalar mode.
15095         (expand_vector_operations_1): For comparisons, don't bail out early
15096         if the return type is vector boolean with scalar mode, but comparison
15097         operand type is not.
15099 2019-07-17  Richard Biener  <rguenther@suse.de>
15101         PR tree-optimization/91181
15102         * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
15103         IFN_LOADs as calls.
15105 2019-07-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15107         * config/i386/i386.md (*testdi_1): Match CCZmode for
15108         constants that might have the SImode sign bit set.
15109         (*testqi_1_maybe_si): Remove "!" constraint modifier.
15110         Use correct constraints for pentium pairing.
15111         (*test<mode>_1): Ditto.
15113 2019-07-16  Jeff Law  <law@redhat.com>
15115         PR rtl-optimization/91173
15116         * tree-ssa-address.c (addr_for_mem_ref): If the base is an
15117         SSA_NAME with a constant value, fold its value into the offset
15118         and clear the base before calling gen_addr_rtx.
15120 2019-07-16  Jakub Jelinek  <jakub@redhat.com>
15122         PR rtl-optimization/91164
15123         * dse.c (rest_of_handle_dse): If dead edges have been purged,
15124         invalidate dominance info.
15126 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
15128         * read-md.h (md_reader::record_potential_iterator_use): Add a
15129         file_location parameter.
15130         * read-rtl.c (attribute_use::loc): New field.
15131         (map_attr_string): Take a file_location parameter.  Report cases
15132         in which attributes map to multiple distinct values.
15133         (apply_attribute_uses): Update call accordingly.
15134         (md_reader::handle_overloaded_name): Likewise.
15135         (md_reader::apply_iterator_to_string): Likewise.  Skip empty
15136         nonnull strings.
15137         (record_attribute_use): Take a file_location parameter.
15138         Initialize attribute_use::loc.
15139         (md_reader::record_potential_iterator_use): Take a file_location
15140         parameter.  Update call to record_attribute_use.
15141         (rtx_reader::rtx_alloc_for_name): Update call accordingly.
15142         (rtx_reader::read_rtx_code): Likewise.
15143         (rtx_reader::read_rtx_operand): Likewise.  Record a location
15144         for implicitly-expanded empty strings.
15146 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
15148         * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
15149         Use file_location instead of separate fields.
15150         (md_reader::set_md_ptr_loc): Take a file_location instead of a
15151         separate filename and line number.
15152         * read-md.c (ptr_loc): As above.
15153         (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
15154         (md_reader::fprint_md_ptr_loc): Likewise.
15155         (md_reader::set_md_ptr_loc): Likewise.  Take a file_location
15156         instead of a separate filename and line number.
15157         (md_reader::read_string): Update call accordingly.
15159 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
15161         * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
15162         use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
15163         leaving the choice between SFDF and P implicit.
15164         (*mov<mode>_update2): Likewise.
15165         (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
15166         rather than leaving the choice betweem IBM128 and GPR implicit.
15167         (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
15168         <IEEE128:MODE> rather than leaving the choice between IEEE128 and
15169         QHSI implicit.
15170         (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
15171         rather than leaving the choice between ALTIVEC_DFORM and P implicit.
15172         * config/rs6000/vsx.md
15173         (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
15174         (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
15175         use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
15176         and VSX_EXTRACT_I implicit.
15178 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
15180         * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
15181         Explicitly use <MOVEP1:MODE> for the mode attribute.
15183 2019-07-16  Jan Hubicka  <hubicka@ucw.cz>
15185         PR bootstrap/91176
15186         * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
15188 2019-07-15  Segher Boessenkool  <segher@kernel.crashing.org>
15190         PR target/91050
15191         * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
15192         .machine directive.
15194 2019-07-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15196         * config/i386/i386.md (@test<mode>_ccno_1):
15197         Rename from test<mode>_ccno_1.
15198         (*testdi_1): Remove redundant alternatives.  Remove modrm attribute.
15199         (*testqi_1_maybe_si): Remove modrm attribute.
15200         (*test<mode>_1): Ditto.
15201         * config/i386/i386-expand.c (ix86_split_idivmod): Use
15202         gen_test_ccno_1 and gen_extend_insn.
15204 2019-07-15  Jan Hubicka  <hubicka@ucw.cz>
15206         * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
15207         to 0.
15209 2019-07-15  Richard Biener  <rguenther@suse.de>
15211         PR middle-end/91162
15212         * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
15213         node make sure to replace all uses with something valid.
15215 2019-07-15  Kewen Lin  <linkw@gcc.gnu.org>
15217         PR tree-optimization/88497
15218         * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
15219         GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
15220         function undistribute_bitref_for_vector.
15221         (undistribute_bitref_for_vector): New function.
15222         (cleanup_vinfo_map): Likewise.
15223         (sort_by_mach_mode): Likewise.
15225 2019-07-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15227         * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
15228         (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
15229         and testdi_ccno_1 using SWI48 mode attribute.
15230         (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
15231         x86_64_szext_general_operand.
15232         (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
15233         (*test<mode>_1): Use nonmemory_szext_operand mode attribute
15234         instead of genera_operand mode attribute.
15236 2019-07-14  Vladislav Ivanishin  <vlad@ispras.ru>
15238         * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
15239         fopen and fclose to their respective types.
15240         (DotFn.invoke): Ditto.
15242 2019-07-14  Jan Hubicka  <hubicka@ucw.cz>
15244         * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
15245         (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
15246         (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
15247         (array_index_predicate): Remove.
15248         (analyze_function_body): Account cost for variable ofsetted array
15249         indexing.
15250         (estimate_node_size_and_time): Do not compute array index hint.
15251         (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
15252         (inline_read_section): Do not read array index hint.
15253         (ipa_fn_summary_write): Do not write array index hint.
15254         * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
15255         * ipa-cp.c (hint_time_bonus): Remove.
15256         * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
15257         (ipa_fnsummary): Remove array_index.
15258         * ipa-inline.c (want_inline_small_function_p): Do not use
15259         array_index.
15260         (edge_badness): Likewise.
15261         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
15263 2019-07-14  Segher Boessenkool  <segher@kernel.crashing.org>
15265         PR target/91148
15266         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
15267         superfluous "builtin function" phrasing.
15269 2019-07-13  Jan Hubicka  <hubicka@ucw.cz>
15271         * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
15272         Break out from ...
15273         (aliasing_component_refs_walk): Break out from ...
15274         (aliasing_component_refs_p): ... here.
15276 2019-07-13  Segher Boessenkool  <segher@kernel.crashing.org>
15278         PR target/91148
15279         * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
15280         "builtin function" phrasing.
15282 2019-07-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15284         PR target/90723
15285         * recog.h (temporary_volatile_ok): New class.
15286         * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
15287         volatile_ok temporarily to true using temporary_volatile_ok.
15288         * expr.c (emit_block_move_via_cpymem): Likewise.
15289         * optabs.c (maybe_legitimize_operand): Likewise.
15291 2019-07-13  Jakub Jelinek  <jakub@redhat.com>
15293         * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
15294         (omp_notice_threadprivate_variable): Diagnose threadprivate variable
15295         uses inside of order(concurrent) constructs.
15296         (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
15297         OMP_CLAUSE_ORDER is seen.
15298         * omp-low.c (struct omp_context): Add order_concurrent member.
15299         (scan_sharing_clauses): Set ctx->order_concurrent if
15300         OMP_CLAUSE_ORDER is seen.
15301         (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
15302         of simd order(concurrent).  Diagnose constructs not allowed inside of
15303         for order(concurrent).
15304         (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
15305         complaining about static double setjmp (double); or class static
15306         methods or non-global namespace setjmps.
15307         (omp_runtime_api_call): New function.
15308         (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
15309         order(concurrent) loops.
15311 2019-07-12  Martin Sebor  <msebor@redhat.com>
15313         * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
15314         * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
15315         * tree-vrp.c (vrp_prop::check_mem_ref): Use
15316         PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
15318 2019-07-12  Jan Hubicka  <jh@suse.cz>
15320         * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
15321         (indirect_refs_may_alias_p): ... here.
15322         (nonoverlapping_component_refs_since_match_p): Support also non-trivial
15323         mem refs in the access paths.
15325 2019-07-12  Jiangning Liu  <jiangning.liu@amperecomputing.com>
15327         PR tree-optimization/89430
15328         * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
15329         store elimination for local variable without address escape.
15331 2019-07-12  Jeff Law  <law@redhat.com>
15333         * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
15334         for the ".far" section.
15336 2019-07-12  Richard Biener  <rguenther@suse.de>
15338         PR tree-optimization/91145
15339         * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
15340         chain check.
15342 2019-07-12  Alexandre Oliva  <oliva@adacore.com>
15344         * tree-eh.c (honor_protect_cleanup_actions): Use outer_
15345         rather than this_state as the lowering context for the ELSE
15346         seq in a GIMPLE_EH_ELSE.
15348 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
15350         * vector-builder.h (vector_builder::elt): Allow already-supplied
15351         elements to be read back before building is complete.
15353 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
15355         PR rtl-optimization/91136
15356         * df-core.c (ACCESSING REFS): Fix typos in comment.
15357         * resource.c (mark_target_live_reg): Add artificial defs that occur at
15358         the beginning of the block to the initial set of live registers.
15360 2019-07-12  Richard Biener  <rguenther@suse.de>
15362         * fold-const.h (get_array_ctor_element_at_index): Adjust.
15363         * fold-const.c (get_array_ctor_element_at_index): Add
15364         ctor_idx output parameter informing the caller where in
15365         the constructor the element was (not) found.  Add early exit
15366         for when the ctor is sorted.
15367         * gimple-fold.c (fold_array_ctor_reference): Support constant
15368         folding across multiple array elements.
15370 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
15372         * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
15373         doesn't have location, set the current location to the function's end.
15375 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
15377         * config/aarch64/aarch64.md (*compare_condjump<mode>)
15378         (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
15379         (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
15380         (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
15381         * config/aarch64/aarch64-simd.md
15382         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
15383         (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
15384         * config/aarch64/aarch64-sve.md
15385         (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
15386         (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
15388 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
15390         * doc/md.texi: Document that @ patterns can have different
15391         numbers of operands.
15392         * genemit.c (handle_overloaded_gen): Handle this case.
15393         * genopinit.c (handle_overloaded_gen): Likewise.
15394         * gensupport.c (replace_operands_with_dups): Iterate over
15395         the new rtx's format rather than the old one's.
15397 2019-07-12  Jakub Jelinek  <jakub@redhat.com>
15399         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
15400         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
15401         order clause entries.
15402         (walk_tree_1): Handle OMP_CLAUSE_ORDER.
15403         * tree-pretty-print.c (dump_omp_clause): Likewise.
15404         * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
15405         Likewise.
15406         * omp-low.c (scan_sharing_clauses): Likewise.
15407         * tree-nested.c (convert_nonlocal_omp_clauses,
15408         convert_local_omp_clauses): Likewise.
15410 2019-07-12  Kewen Lin  <linkw@gcc.gnu.org>
15412         * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
15413         fallthrough target of current basic block isn't the placed
15414         right next.
15416 2019-07-11  Sunil K Pandey  <sunil.k.pandey@intel.com>
15418         PR target/90980
15419         * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
15420         (_mm512_storeu_epi64): Likewise.
15421         (_mm512_loadu_epi32): Likewise.
15422         (_mm512_storeu_epi32): Likewise.
15423         * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
15424         (_mm_storeu_epi64): Likewise.
15425         (_mm256_storeu_epi32): Likewise.
15426         (_mm_storeu_epi32): Likewise.
15428 2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>
15430         * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
15432 2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>
15434         * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
15435         Handle Modula-2.
15437 2019-07-11  Jakub Jelinek  <jakub@redhat.com>
15439         PR target/91124
15440         * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
15441         (sse2_cvtpd2dq): ... this.  Remove mask substitution macros.
15442         (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
15443         (ufix_notruncv2dfv2si2<mask_name>): Change into ...
15444         (ufix_notruncv2dfv2si2): ... this.  Remove mask substitution macros.
15445         (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
15446         define_insns.
15447         (ufix_truncv2dfv2si2<mask_name>): Change into ...
15448         (ufix_truncv2dfv2si2): ... this.  Remove mask substitution macros.
15449         (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
15450         define_insns.
15451         (sse2_cvttpd2dq<mask_name>): Change into ...
15452         (sse2_cvttpd2dq): ... this.  Remove mask substitution macros.
15453         (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
15454         (*sse2_cvtpd2dq<mask_name>): Change into ...
15455         (*sse2_cvtpd2dq): ... this.  Remove mask substitution macros.
15456         Add "C" constraint to const0_operand.
15457         (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
15458         (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
15459         changes.
15461         PR target/91124
15462         * config/i386/i386-builtin-types.def
15463         (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
15464         V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
15465         V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
15466         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
15467         V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
15468         * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
15469         __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
15470         __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
15471         __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
15472         __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
15473         __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
15474         __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
15475         __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
15476         __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
15477         __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
15478         __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
15479         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
15480         __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
15481         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
15482         __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
15483         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
15484         __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
15485         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
15486         __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
15487         __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
15488         __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
15489         __builtin_ia32_vpdpbusd_v4si_maskz,
15490         __builtin_ia32_vpdpbusds_v16si_mask,
15491         __builtin_ia32_vpdpbusds_v16si_maskz,
15492         __builtin_ia32_vpdpbusds_v8si_mask,
15493         __builtin_ia32_vpdpbusds_v8si_maskz,
15494         __builtin_ia32_vpdpbusds_v4si_mask,
15495         __builtin_ia32_vpdpbusds_v4si_maskz,
15496         __builtin_ia32_vpdpwssd_v16si_mask,
15497         __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
15498         __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
15499         __builtin_ia32_vpdpwssd_v4si_maskz,
15500         __builtin_ia32_vpdpwssds_v16si_mask,
15501         __builtin_ia32_vpdpwssds_v16si_maskz,
15502         __builtin_ia32_vpdpwssds_v8si_mask,
15503         __builtin_ia32_vpdpwssds_v8si_maskz,
15504         __builtin_ia32_vpdpwssds_v4si_mask,
15505         __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
15506         suffixed types rather than *_INT.
15507         * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
15508         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
15509         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
15510         V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
15511         V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
15512         and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
15514 2019-07-11  Aldy Hernandez  <aldyh@redhat.com>
15516         * tree-vrp.c (intersect_ranges): If we know the intersection is
15517         empty, there is no need to conservatively add anything else to
15518         the set.
15520 2019-07-11  Richard Biener  <rguenther@suse.de>
15522         PR middle-end/91131
15523         * gimplify.c (gimplify_compound_literal_expr): Force a temporary
15524         when the object is volatile and we have not cleared it even though
15525         there are no nonzero elements.
15527 2019-07-10  Michael Meissner  <meissner@linux.ibm.com>
15529         * config/rs6000/predicates.md (cint34_operand): Update
15530         SIGNED_34BIT_OFFSET_P call.
15531         (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
15532         (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
15533         * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
15534         SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
15535         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
15536         argument.
15537         (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
15538         (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
15539         SIGNED_16BIT_OFFSET_P with an EXTRA argument.
15540         (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
15541         SIGNED_34BIT_OFFSET_P with an EXTRA argument.
15543 2019-07-10  Iain Sandoe  <iain@sandoe.co.uk>
15545         * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
15546         * config/rs6000/darwin7.h (LIB_SPEC): Remove.
15547         * config/rs6000/darwin8.h (LIB_SPEC): Remove.
15548         (DEF_MIN_OSX_VERSION): New.
15550 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
15552         * fold-const.c (fold_relational_const): Fix folding of
15553         vector-to-scalar NE_EXPRs.
15554         (test_vector_folding): Add more tests.
15556 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
15558         PR target/91060
15559         * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
15560         * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
15561         (vec_setv2di_internal): Reexpress as...
15562         (@vec_set<V2DI_ONLY:mode>_internal): ...this.
15563         * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
15564         rather than gen_neon_vset_lane<mode>.
15566 2019-07-10  Vladimir Makarov  <vmakarov@redhat.com>
15568         PR target/91102
15569         * lra-constraints.c (process_alt_operands): Don't match user
15570         defined regs only if they are early clobbers.
15572 2019-07-10  Marc Glisse  <marc.glisse@inria.fr>
15574         * wide-int.h (wi::lshift): Reject negative values for the fast path.
15576 2019-07-10  Richard Biener  <rguenther@suse.de>
15578         PR tree-optimization/91126
15579         * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
15580         native encoding offset for BYTES_BIG_ENDIAN.
15581         (vn_reference_lookup_3): Likewise.
15583 2019-07-10  Richard Biener  <rguenther@suse.de>
15585         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
15586         LHS whenever possible.
15588 2019-07-09  Jan Hubicka  <hubicka@ucw.cz>
15590         * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
15591         from ...; work also on duplicated types.
15592         (nonoverlapping_component_refs_since_match): ... here
15593         (ncr_type_uid): Break out from ...
15594         (ncr_compar): ... here; look for TYPE_UID of canonical type if
15595         available.
15596         (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
15597         the types and nonoverlapping_component_refs_p_1 to disambiguate.
15599 2019-07-09  Martin Sebor  <msebor@redhat.com>
15601         PR tree-optimization/90989
15602         * tree-ssa-strlen.c (handle_char_store): Constrain a single character
15603         optimization to just single character stores.
15605 2019-07-09  Joern Rennecke  <joern.rennecke@riscy-ip.com>
15607         * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
15608         Swap operands only once.
15610 2019-07-09  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
15612         * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
15613         for both call instructions.
15615 2019-07-09  John Darrington  <john@darrington.wattle.id.au>
15617         * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
15618         rather than GET_MODE_BITSIZE to better handle partial integer modes.
15620 2019-07-09  Michael Meissner  <meissner@linux.ibm.com>
15622         * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
15623         * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
15624         function from rs6000-logue.c back to rs6000.c.
15625         * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
15627 2019-07-09  Martin Sebor  <msebor@redhat.com>
15629         PR c++/61339
15630         * auto-profile.c: Change class-key of PODs to struct and others
15631         to class.
15632         * basic-block.h: Same.
15633         * bitmap.c (bitmap_alloc): Same.
15634         * bitmap.h: Same.
15635         * builtins.c (expand_builtin_prefetch): Same.
15636         (expand_builtin_interclass_mathfn): Same.
15637         (expand_builtin_strlen): Same.
15638         (expand_builtin_mempcpy_args): Same.
15639         (expand_cmpstr): Same.
15640         (expand_builtin___clear_cache): Same.
15641         (expand_ifn_atomic_bit_test_and): Same.
15642         (expand_builtin_thread_pointer): Same.
15643         (expand_builtin_set_thread_pointer): Same.
15644         * caller-save.c (setup_save_areas): Same.
15645         (replace_reg_with_saved_mem): Same.
15646         (insert_restore): Same.
15647         (insert_save): Same.
15648         (add_used_regs): Same.
15649         * cfg.c (get_bb_copy): Same.
15650         (set_loop_copy): Same.
15651         * cfg.h: Same.
15652         * cfganal.h: Same.
15653         * cfgexpand.c (alloc_stack_frame_space): Same.
15654         (add_stack_var): Same.
15655         (add_stack_var_conflict): Same.
15656         (add_scope_conflicts_1): Same.
15657         (update_alias_info_with_stack_vars): Same.
15658         (expand_used_vars): Same.
15659         * cfghooks.c (redirect_edge_and_branch_force): Same.
15660         (delete_basic_block): Same.
15661         (split_edge): Same.
15662         (make_forwarder_block): Same.
15663         (force_nonfallthru): Same.
15664         (duplicate_block): Same.
15665         (lv_flush_pending_stmts): Same.
15666         * cfghooks.h: Same.
15667         * cfgloop.c (flow_loops_cfg_dump): Same.
15668         (flow_loop_nested_p): Same.
15669         (superloop_at_depth): Same.
15670         (get_loop_latch_edges): Same.
15671         (flow_loop_dump): Same.
15672         (flow_loops_dump): Same.
15673         (flow_loops_free): Same.
15674         (flow_loop_nodes_find): Same.
15675         (establish_preds): Same.
15676         (flow_loop_tree_node_add): Same.
15677         (flow_loop_tree_node_remove): Same.
15678         (flow_loops_find): Same.
15679         (find_subloop_latch_edge_by_profile): Same.
15680         (find_subloop_latch_edge_by_ivs): Same.
15681         (mfb_redirect_edges_in_set): Same.
15682         (form_subloop): Same.
15683         (merge_latch_edges): Same.
15684         (disambiguate_multiple_latches): Same.
15685         (disambiguate_loops_with_multiple_latches): Same.
15686         (flow_bb_inside_loop_p): Same.
15687         (glb_enum_p): Same.
15688         (get_loop_body_with_size): Same.
15689         (get_loop_body): Same.
15690         (fill_sons_in_loop): Same.
15691         (get_loop_body_in_dom_order): Same.
15692         (get_loop_body_in_custom_order): Same.
15693         (release_recorded_exits): Same.
15694         (get_loop_exit_edges): Same.
15695         (num_loop_branches): Same.
15696         (remove_bb_from_loops): Same.
15697         (find_common_loop): Same.
15698         (delete_loop): Same.
15699         (cancel_loop): Same.
15700         (verify_loop_structure): Same.
15701         (loop_preheader_edge): Same.
15702         (loop_exit_edge_p): Same.
15703         (single_exit): Same.
15704         (loop_exits_to_bb_p): Same.
15705         (loop_exits_from_bb_p): Same.
15706         (get_loop_location): Same.
15707         (record_niter_bound): Same.
15708         (get_estimated_loop_iterations_int): Same.
15709         (max_stmt_executions_int): Same.
15710         (likely_max_stmt_executions_int): Same.
15711         (get_estimated_loop_iterations): Same.
15712         (get_max_loop_iterations): Same.
15713         (get_max_loop_iterations_int): Same.
15714         (get_likely_max_loop_iterations): Same.
15715         * cfgloop.h (simple_loop_desc): Same.
15716         (get_loop): Same.
15717         (loop_depth): Same.
15718         (loop_outer): Same.
15719         (loop_iterator::next): Same.
15720         (loop_outermost): Same.
15721         * cfgloopanal.c (mark_irreducible_loops): Same.
15722         (num_loop_insns): Same.
15723         (average_num_loop_insns): Same.
15724         (expected_loop_iterations_unbounded): Same.
15725         (expected_loop_iterations): Same.
15726         (mark_loop_exit_edges): Same.
15727         (single_likely_exit): Same.
15728         * cfgloopmanip.c (fix_bb_placement): Same.
15729         (fix_bb_placements): Same.
15730         (remove_path): Same.
15731         (place_new_loop): Same.
15732         (add_loop): Same.
15733         (scale_loop_frequencies): Same.
15734         (scale_loop_profile): Same.
15735         (create_empty_if_region_on_edge): Same.
15736         (create_empty_loop_on_edge): Same.
15737         (loopify): Same.
15738         (unloop): Same.
15739         (fix_loop_placements): Same.
15740         (copy_loop_info): Same.
15741         (duplicate_loop): Same.
15742         (duplicate_subloops): Same.
15743         (loop_redirect_edge): Same.
15744         (can_duplicate_loop_p): Same.
15745         (duplicate_loop_to_header_edge): Same.
15746         (mfb_keep_just): Same.
15747         (has_preds_from_loop): Same.
15748         (create_preheader): Same.
15749         (create_preheaders): Same.
15750         (lv_adjust_loop_entry_edge): Same.
15751         (loop_version): Same.
15752         * cfgloopmanip.h: Same.
15753         * cgraph.h: Same.
15754         * cgraphbuild.c: Same.
15755         * combine.c (make_extraction): Same.
15756         * config/i386/i386-features.c: Same.
15757         * config/i386/i386-features.h: Same.
15758         * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
15759         (ix86_emit_outlined_ms2sysv_restore): Same.
15760         (ix86_noce_conversion_profitable_p): Same.
15761         (ix86_init_cost): Same.
15762         (ix86_simd_clone_usable): Same.
15763         * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
15764         Wstruct-not-pod.
15765         * coretypes.h: Same.
15766         * data-streamer-in.c (string_for_index): Change class-key of PODs
15767         to struct and others to class.
15768         (streamer_read_indexed_string): Same.
15769         (streamer_read_string): Same.
15770         (bp_unpack_indexed_string): Same.
15771         (bp_unpack_string): Same.
15772         (streamer_read_uhwi): Same.
15773         (streamer_read_hwi): Same.
15774         (streamer_read_gcov_count): Same.
15775         (streamer_read_wide_int): Same.
15776         * data-streamer.h (streamer_write_bitpack): Same.
15777         (bp_unpack_value): Same.
15778         (streamer_write_char_stream): Same.
15779         (streamer_write_hwi_in_range): Same.
15780         (streamer_write_record_start): Same.
15781         * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
15782         (add_cross_iteration_register_deps): Same.
15783         (build_intra_loop_deps): Same.
15784         * df-core.c (df_analyze): Same.
15785         (loop_post_order_compute): Same.
15786         (loop_inverted_post_order_compute): Same.
15787         * df-problems.c (df_rd_alloc): Same.
15788         (df_rd_simulate_one_insn): Same.
15789         (df_rd_local_compute): Same.
15790         (df_rd_init_solution): Same.
15791         (df_rd_confluence_n): Same.
15792         (df_rd_transfer_function): Same.
15793         (df_rd_free): Same.
15794         (df_rd_dump_defs_set): Same.
15795         (df_rd_top_dump): Same.
15796         (df_lr_alloc): Same.
15797         (df_lr_reset): Same.
15798         (df_lr_local_compute): Same.
15799         (df_lr_init): Same.
15800         (df_lr_confluence_n): Same.
15801         (df_lr_free): Same.
15802         (df_lr_top_dump): Same.
15803         (df_lr_verify_transfer_functions): Same.
15804         (df_live_alloc): Same.
15805         (df_live_reset): Same.
15806         (df_live_init): Same.
15807         (df_live_confluence_n): Same.
15808         (df_live_finalize): Same.
15809         (df_live_free): Same.
15810         (df_live_top_dump): Same.
15811         (df_live_verify_transfer_functions): Same.
15812         (df_mir_alloc): Same.
15813         (df_mir_reset): Same.
15814         (df_mir_init): Same.
15815         (df_mir_confluence_n): Same.
15816         (df_mir_free): Same.
15817         (df_mir_top_dump): Same.
15818         (df_word_lr_alloc): Same.
15819         (df_word_lr_reset): Same.
15820         (df_word_lr_init): Same.
15821         (df_word_lr_confluence_n): Same.
15822         (df_word_lr_free): Same.
15823         (df_word_lr_top_dump): Same.
15824         (df_md_alloc): Same.
15825         (df_md_simulate_one_insn): Same.
15826         (df_md_reset): Same.
15827         (df_md_init): Same.
15828         (df_md_free): Same.
15829         (df_md_top_dump): Same.
15830         * df-scan.c (df_insn_delete): Same.
15831         (df_insn_rescan): Same.
15832         (df_notes_rescan): Same.
15833         (df_sort_and_compress_mws): Same.
15834         (df_install_mws): Same.
15835         (df_refs_add_to_chains): Same.
15836         (df_ref_create_structure): Same.
15837         (df_ref_record): Same.
15838         (df_def_record_1): Same.
15839         (df_find_hard_reg_defs): Same.
15840         (df_uses_record): Same.
15841         (df_get_conditional_uses): Same.
15842         (df_get_call_refs): Same.
15843         (df_recompute_luids): Same.
15844         (df_get_entry_block_def_set): Same.
15845         (df_entry_block_defs_collect): Same.
15846         (df_get_exit_block_use_set): Same.
15847         (df_exit_block_uses_collect): Same.
15848         (df_mws_verify): Same.
15849         (df_bb_verify): Same.
15850         * df.h (df_scan_get_bb_info): Same.
15851         * doc/tm.texi: Same.
15852         * dse.c (record_store): Same.
15853         * dumpfile.h: Same.
15854         * emit-rtl.c (const_fixed_hasher::equal): Same.
15855         (set_mem_attributes_minus_bitpos): Same.
15856         (change_address): Same.
15857         (adjust_address_1): Same.
15858         (offset_address): Same.
15859         * emit-rtl.h: Same.
15860         * except.c (dw2_build_landing_pads): Same.
15861         (sjlj_emit_dispatch_table): Same.
15862         * explow.c (allocate_dynamic_stack_space): Same.
15863         (emit_stack_probe): Same.
15864         (probe_stack_range): Same.
15865         * expmed.c (store_bit_field_using_insv): Same.
15866         (store_bit_field_1): Same.
15867         (store_integral_bit_field): Same.
15868         (extract_bit_field_using_extv): Same.
15869         (extract_bit_field_1): Same.
15870         (emit_cstore): Same.
15871         * expr.c (emit_block_move_via_cpymem): Same.
15872         (expand_cmpstrn_or_cmpmem): Same.
15873         (set_storage_via_setmem): Same.
15874         (emit_single_push_insn_1): Same.
15875         (expand_assignment): Same.
15876         (store_constructor): Same.
15877         (expand_expr_real_2): Same.
15878         (expand_expr_real_1): Same.
15879         (try_casesi): Same.
15880         * flags.h: Same.
15881         * function.c (try_fit_stack_local): Same.
15882         (assign_stack_local_1): Same.
15883         (assign_stack_local): Same.
15884         (cut_slot_from_list): Same.
15885         (insert_slot_to_list): Same.
15886         (max_slot_level): Same.
15887         (move_slot_to_level): Same.
15888         (temp_address_hasher::equal): Same.
15889         (remove_unused_temp_slot_addresses): Same.
15890         (assign_temp): Same.
15891         (combine_temp_slots): Same.
15892         (update_temp_slot_address): Same.
15893         (preserve_temp_slots): Same.
15894         * function.h: Same.
15895         * fwprop.c: Same.
15896         * gcc-rich-location.h: Same.
15897         * gcov.c: Same.
15898         * genattrtab.c (check_attr_test): Same.
15899         (check_attr_value): Same.
15900         (convert_set_attr_alternative): Same.
15901         (convert_set_attr): Same.
15902         (check_defs): Same.
15903         (copy_boolean): Same.
15904         (get_attr_value): Same.
15905         (expand_delays): Same.
15906         (make_length_attrs): Same.
15907         (min_fn): Same.
15908         (make_alternative_compare): Same.
15909         (simplify_test_exp): Same.
15910         (tests_attr_p): Same.
15911         (get_attr_order): Same.
15912         (clear_struct_flag): Same.
15913         (gen_attr): Same.
15914         (compares_alternatives_p): Same.
15915         (gen_insn): Same.
15916         (gen_delay): Same.
15917         (find_attrs_to_cache): Same.
15918         (write_test_expr): Same.
15919         (walk_attr_value): Same.
15920         (write_attr_get): Same.
15921         (eliminate_known_true): Same.
15922         (write_insn_cases): Same.
15923         (write_attr_case): Same.
15924         (write_attr_valueq): Same.
15925         (write_attr_value): Same.
15926         (write_dummy_eligible_delay): Same.
15927         (next_comma_elt): Same.
15928         (find_attr): Same.
15929         (make_internal_attr): Same.
15930         (copy_rtx_unchanging): Same.
15931         (gen_insn_reserv): Same.
15932         (check_tune_attr): Same.
15933         (make_automaton_attrs): Same.
15934         (handle_arg): Same.
15935         * genextract.c (gen_insn): Same.
15936         (VEC_char_to_string): Same.
15937         * genmatch.c (print_operand): Same.
15938         (lower): Same.
15939         (parser::parse_operation): Same.
15940         (parser::parse_capture): Same.
15941         (parser::parse_c_expr): Same.
15942         (parser::parse_simplify): Same.
15943         (main): Same.
15944         * genoutput.c (output_operand_data): Same.
15945         (output_get_insn_name): Same.
15946         (compare_operands): Same.
15947         (place_operands): Same.
15948         (process_template): Same.
15949         (validate_insn_alternatives): Same.
15950         (validate_insn_operands): Same.
15951         (gen_expand): Same.
15952         (note_constraint): Same.
15953         * genpreds.c (write_one_predicate_function): Same.
15954         (add_constraint): Same.
15955         (process_define_register_constraint): Same.
15956         (write_lookup_constraint_1): Same.
15957         (write_lookup_constraint_array): Same.
15958         (write_insn_constraint_len): Same.
15959         (write_reg_class_for_constraint_1): Same.
15960         (write_constraint_satisfied_p_array): Same.
15961         * genrecog.c (optimize_subroutine_group): Same.
15962         * gensupport.c (process_define_predicate): Same.
15963         (queue_pattern): Same.
15964         (remove_from_queue): Same.
15965         (process_rtx): Same.
15966         (is_predicable): Same.
15967         (change_subst_attribute): Same.
15968         (subst_pattern_match): Same.
15969         (alter_constraints): Same.
15970         (alter_attrs_for_insn): Same.
15971         (shift_output_template): Same.
15972         (alter_output_for_subst_insn): Same.
15973         (process_one_cond_exec): Same.
15974         (subst_dup): Same.
15975         (process_define_cond_exec): Same.
15976         (mnemonic_htab_callback): Same.
15977         (gen_mnemonic_attr): Same.
15978         (read_md_rtx): Same.
15979         * ggc-page.c: Same.
15980         * gimple-loop-interchange.cc (dump_reduction): Same.
15981         (dump_induction): Same.
15982         (loop_cand::~loop_cand): Same.
15983         (free_data_refs_with_aux): Same.
15984         (tree_loop_interchange::interchange_loops): Same.
15985         (tree_loop_interchange::map_inductions_to_loop): Same.
15986         (tree_loop_interchange::move_code_to_inner_loop): Same.
15987         (compute_access_stride): Same.
15988         (compute_access_strides): Same.
15989         (proper_loop_form_for_interchange): Same.
15990         (tree_loop_interchange_compute_ddrs): Same.
15991         (prune_datarefs_not_in_loop): Same.
15992         (prepare_data_references): Same.
15993         (pass_linterchange::execute): Same.
15994         * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
15995         (unroll_jam_possible_p): Same.
15996         (fuse_loops): Same.
15997         (adjust_unroll_factor): Same.
15998         (tree_loop_unroll_and_jam): Same.
15999         * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
16000         (loop_versioning::expensive_stmt_p): Same.
16001         (loop_versioning::version_for_unity): Same.
16002         (loop_versioning::dump_inner_likelihood): Same.
16003         (loop_versioning::find_per_loop_multiplication): Same.
16004         (loop_versioning::analyze_term_using_scevs): Same.
16005         (loop_versioning::record_address_fragment): Same.
16006         (loop_versioning::analyze_expr): Same.
16007         (loop_versioning::analyze_blocks): Same.
16008         (loop_versioning::prune_conditions): Same.
16009         (loop_versioning::merge_loop_info): Same.
16010         (loop_versioning::add_loop_to_queue): Same.
16011         (loop_versioning::decide_whether_loop_is_versionable): Same.
16012         (loop_versioning::make_versioning_decisions): Same.
16013         (loop_versioning::implement_versioning_decisions): Same.
16014         * gimple-ssa-evrp-analyze.c
16015         (evrp_range_analyzer::record_ranges_from_phis): Same.
16016         * gimple-ssa-store-merging.c (split_store::split_store): Same.
16017         (count_multiple_uses): Same.
16018         (split_group): Same.
16019         (imm_store_chain_info::output_merged_store): Same.
16020         (pass_store_merging::process_store): Same.
16021         * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
16022         * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
16023         (is_max): Same.
16024         (alloca_call_type): Same.
16025         (pass_walloca::execute): Same.
16026         * gimple-streamer-in.c (input_phi): Same.
16027         (input_gimple_stmt): Same.
16028         * gimple-streamer.h: Same.
16029         * godump.c (go_force_record_alignment): Same.
16030         (go_format_type): Same.
16031         (go_output_type): Same.
16032         (go_output_fndecl): Same.
16033         (go_output_typedef): Same.
16034         (keyword_hash_init): Same.
16035         (find_dummy_types): Same.
16036         * graph.c (draw_cfg_nodes_no_loops): Same.
16037         (draw_cfg_nodes_for_loop): Same.
16038         * hard-reg-set.h (hard_reg_set_iter_next): Same.
16039         * hsa-brig.c: Same.
16040         * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
16041         * hsa-dump.c (dump_hsa_cfun): Same.
16042         * hsa-gen.c (gen_function_def_parameters): Same.
16043         * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
16044         * input.c (dump_line_table_statistics): Same.
16045         (test_lexer): Same.
16046         * input.h: Same.
16047         * internal-fn.c (get_multi_vector_move): Same.
16048         (expand_load_lanes_optab_fn): Same.
16049         (expand_GOMP_SIMT_ENTER_ALLOC): Same.
16050         (expand_GOMP_SIMT_EXIT): Same.
16051         (expand_GOMP_SIMT_LAST_LANE): Same.
16052         (expand_GOMP_SIMT_ORDERED_PRED): Same.
16053         (expand_GOMP_SIMT_VOTE_ANY): Same.
16054         (expand_GOMP_SIMT_XCHG_BFLY): Same.
16055         (expand_GOMP_SIMT_XCHG_IDX): Same.
16056         (expand_addsub_overflow): Same.
16057         (expand_neg_overflow): Same.
16058         (expand_mul_overflow): Same.
16059         (expand_call_mem_ref): Same.
16060         (expand_mask_load_optab_fn): Same.
16061         (expand_scatter_store_optab_fn): Same.
16062         (expand_gather_load_optab_fn): Same.
16063         * ipa-cp.c (ipa_get_parm_lattices): Same.
16064         (print_all_lattices): Same.
16065         (ignore_edge_p): Same.
16066         (build_toporder_info): Same.
16067         (free_toporder_info): Same.
16068         (push_node_to_stack): Same.
16069         (ipcp_lattice<valtype>::set_contains_variable): Same.
16070         (set_agg_lats_to_bottom): Same.
16071         (ipcp_bits_lattice::meet_with): Same.
16072         (set_single_call_flag): Same.
16073         (initialize_node_lattices): Same.
16074         (ipa_get_jf_ancestor_result): Same.
16075         (ipcp_verify_propagated_values): Same.
16076         (propagate_scalar_across_jump_function): Same.
16077         (propagate_context_across_jump_function): Same.
16078         (propagate_bits_across_jump_function): Same.
16079         (ipa_vr_operation_and_type_effects): Same.
16080         (propagate_vr_across_jump_function): Same.
16081         (set_check_aggs_by_ref): Same.
16082         (set_chain_of_aglats_contains_variable): Same.
16083         (merge_aggregate_lattices): Same.
16084         (agg_pass_through_permissible_p): Same.
16085         (propagate_aggs_across_jump_function): Same.
16086         (call_passes_through_thunk_p): Same.
16087         (propagate_constants_across_call): Same.
16088         (devirtualization_time_bonus): Same.
16089         (good_cloning_opportunity_p): Same.
16090         (context_independent_aggregate_values): Same.
16091         (gather_context_independent_values): Same.
16092         (perform_estimation_of_a_value): Same.
16093         (estimate_local_effects): Same.
16094         (value_topo_info<valtype>::add_val): Same.
16095         (add_all_node_vals_to_toposort): Same.
16096         (value_topo_info<valtype>::propagate_effects): Same.
16097         (ipcp_propagate_stage): Same.
16098         (ipcp_discover_new_direct_edges): Same.
16099         (same_node_or_its_all_contexts_clone_p): Same.
16100         (cgraph_edge_brings_value_p): Same.
16101         (gather_edges_for_value): Same.
16102         (create_specialized_node): Same.
16103         (find_more_scalar_values_for_callers_subset): Same.
16104         (find_more_contexts_for_caller_subset): Same.
16105         (copy_plats_to_inter): Same.
16106         (intersect_aggregates_with_edge): Same.
16107         (find_aggregate_values_for_callers_subset): Same.
16108         (cgraph_edge_brings_all_agg_vals_for_node): Same.
16109         (decide_about_value): Same.
16110         (decide_whether_version_node): Same.
16111         (spread_undeadness): Same.
16112         (identify_dead_nodes): Same.
16113         (ipcp_store_vr_results): Same.
16114         * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
16115         * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
16116         (redirect_to_unreachable): Same.
16117         (edge_set_predicate): Same.
16118         (evaluate_conditions_for_known_args): Same.
16119         (evaluate_properties_for_edge): Same.
16120         (ipa_fn_summary_t::duplicate): Same.
16121         (ipa_call_summary_t::duplicate): Same.
16122         (dump_ipa_call_summary): Same.
16123         (ipa_dump_fn_summary): Same.
16124         (eliminated_by_inlining_prob): Same.
16125         (set_cond_stmt_execution_predicate): Same.
16126         (set_switch_stmt_execution_predicate): Same.
16127         (compute_bb_predicates): Same.
16128         (will_be_nonconstant_expr_predicate): Same.
16129         (phi_result_unknown_predicate): Same.
16130         (analyze_function_body): Same.
16131         (compute_fn_summary): Same.
16132         (estimate_edge_devirt_benefit): Same.
16133         (estimate_edge_size_and_time): Same.
16134         (estimate_calls_size_and_time): Same.
16135         (estimate_node_size_and_time): Same.
16136         (remap_edge_change_prob): Same.
16137         (remap_edge_summaries): Same.
16138         (ipa_merge_fn_summary_after_inlining): Same.
16139         (ipa_fn_summary_generate): Same.
16140         (inline_read_section): Same.
16141         (ipa_fn_summary_read): Same.
16142         (ipa_fn_summary_write): Same.
16143         * ipa-fnsummary.h: Same.
16144         * ipa-hsa.c (ipa_hsa_read_section): Same.
16145         * ipa-icf-gimple.c (func_checker::compare_loops): Same.
16146         * ipa-icf.c (sem_function::param_used_p): Same.
16147         * ipa-inline-analysis.c (do_estimate_edge_time): Same.
16148         * ipa-inline.c (edge_badness): Same.
16149         (inline_small_functions): Same.
16150         * ipa-polymorphic-call.c
16151         (ipa_polymorphic_call_context::stream_out): Same.
16152         * ipa-predicate.c (predicate::remap_after_duplication): Same.
16153         (predicate::remap_after_inlining): Same.
16154         (predicate::stream_out): Same.
16155         * ipa-predicate.h: Same.
16156         * ipa-profile.c (ipa_profile_read_summary): Same.
16157         * ipa-prop.c (ipa_get_param_decl_index_1): Same.
16158         (count_formal_params): Same.
16159         (ipa_dump_param): Same.
16160         (ipa_alloc_node_params): Same.
16161         (ipa_print_node_jump_functions_for_edge): Same.
16162         (ipa_print_node_jump_functions): Same.
16163         (ipa_load_from_parm_agg): Same.
16164         (get_ancestor_addr_info): Same.
16165         (ipa_compute_jump_functions_for_edge): Same.
16166         (ipa_analyze_virtual_call_uses): Same.
16167         (ipa_analyze_stmt_uses): Same.
16168         (ipa_analyze_params_uses_in_bb): Same.
16169         (update_jump_functions_after_inlining): Same.
16170         (try_decrement_rdesc_refcount): Same.
16171         (ipa_impossible_devirt_target): Same.
16172         (update_indirect_edges_after_inlining): Same.
16173         (combine_controlled_uses_counters): Same.
16174         (ipa_edge_args_sum_t::duplicate): Same.
16175         (ipa_write_jump_function): Same.
16176         (ipa_write_indirect_edge_info): Same.
16177         (ipa_write_node_info): Same.
16178         (ipa_read_edge_info): Same.
16179         (ipa_prop_read_section): Same.
16180         (read_replacements_section): Same.
16181         * ipa-prop.h (ipa_get_param_count): Same.
16182         (ipa_get_param): Same.
16183         (ipa_get_type): Same.
16184         (ipa_get_param_move_cost): Same.
16185         (ipa_set_param_used): Same.
16186         (ipa_get_controlled_uses): Same.
16187         (ipa_set_controlled_uses): Same.
16188         (ipa_get_cs_argument_count): Same.
16189         * ipa-pure-const.c (analyze_function): Same.
16190         (pure_const_read_summary): Same.
16191         * ipa-ref.h: Same.
16192         * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
16193         * ipa-split.c (test_nonssa_use): Same.
16194         (dump_split_point): Same.
16195         (dominated_by_forbidden): Same.
16196         (split_part_set_ssa_name_p): Same.
16197         (find_split_points): Same.
16198         * ira-build.c (finish_loop_tree_nodes): Same.
16199         (low_pressure_loop_node_p): Same.
16200         * ira-color.c (ira_reuse_stack_slot): Same.
16201         * ira-int.h: Same.
16202         * ira.c (setup_reg_equiv): Same.
16203         (print_insn_chain): Same.
16204         (ira): Same.
16205         * loop-doloop.c (doloop_condition_get): Same.
16206         (add_test): Same.
16207         (record_reg_sets): Same.
16208         (doloop_optimize): Same.
16209         * loop-init.c (loop_optimizer_init): Same.
16210         (fix_loop_structure): Same.
16211         * loop-invariant.c (merge_identical_invariants): Same.
16212         (compute_always_reached): Same.
16213         (find_exits): Same.
16214         (may_assign_reg_p): Same.
16215         (find_invariants_bb): Same.
16216         (find_invariants_body): Same.
16217         (replace_uses): Same.
16218         (can_move_invariant_reg): Same.
16219         (free_inv_motion_data): Same.
16220         (move_single_loop_invariants): Same.
16221         (change_pressure): Same.
16222         (mark_ref_regs): Same.
16223         (calculate_loop_reg_pressure): Same.
16224         * loop-iv.c (biv_entry_hasher::equal): Same.
16225         (iv_extend_to_rtx_code): Same.
16226         (check_iv_ref_table_size): Same.
16227         (clear_iv_info): Same.
16228         (latch_dominating_def): Same.
16229         (iv_get_reaching_def): Same.
16230         (iv_constant): Same.
16231         (iv_subreg): Same.
16232         (iv_extend): Same.
16233         (iv_neg): Same.
16234         (iv_add): Same.
16235         (iv_mult): Same.
16236         (get_biv_step): Same.
16237         (record_iv): Same.
16238         (analyzed_for_bivness_p): Same.
16239         (record_biv): Same.
16240         (iv_analyze_biv): Same.
16241         (iv_analyze_expr): Same.
16242         (iv_analyze_def): Same.
16243         (iv_analyze_op): Same.
16244         (iv_analyze): Same.
16245         (iv_analyze_result): Same.
16246         (biv_p): Same.
16247         (eliminate_implied_conditions): Same.
16248         (simplify_using_initial_values): Same.
16249         (shorten_into_mode): Same.
16250         (canonicalize_iv_subregs): Same.
16251         (determine_max_iter): Same.
16252         (check_simple_exit): Same.
16253         (find_simple_exit): Same.
16254         (get_simple_loop_desc): Same.
16255         * loop-unroll.c (report_unroll): Same.
16256         (decide_unrolling): Same.
16257         (unroll_loops): Same.
16258         (loop_exit_at_end_p): Same.
16259         (decide_unroll_constant_iterations): Same.
16260         (unroll_loop_constant_iterations): Same.
16261         (compare_and_jump_seq): Same.
16262         (unroll_loop_runtime_iterations): Same.
16263         (decide_unroll_stupid): Same.
16264         (unroll_loop_stupid): Same.
16265         (referenced_in_one_insn_in_loop_p): Same.
16266         (reset_debug_uses_in_loop): Same.
16267         (analyze_iv_to_split_insn): Same.
16268         * lra-eliminations.c (lra_debug_elim_table): Same.
16269         (setup_can_eliminate): Same.
16270         (form_sum): Same.
16271         (lra_get_elimination_hard_regno): Same.
16272         (lra_eliminate_regs_1): Same.
16273         (eliminate_regs_in_insn): Same.
16274         (update_reg_eliminate): Same.
16275         (init_elimination): Same.
16276         (lra_eliminate): Same.
16277         * lra-int.h: Same.
16278         * lra-lives.c (initiate_live_solver): Same.
16279         * lra-remat.c (create_remat_bb_data): Same.
16280         * lra-spills.c (lra_spill): Same.
16281         * lra.c (lra_set_insn_recog_data): Same.
16282         (lra_set_used_insn_alternative_by_uid): Same.
16283         (init_reg_info): Same.
16284         (expand_reg_info): Same.
16285         * lto-cgraph.c (output_symtab): Same.
16286         (read_identifier): Same.
16287         (get_alias_symbol): Same.
16288         (input_node): Same.
16289         (input_varpool_node): Same.
16290         (input_ref): Same.
16291         (input_edge): Same.
16292         (input_cgraph_1): Same.
16293         (input_refs): Same.
16294         (input_symtab): Same.
16295         (input_offload_tables): Same.
16296         (output_cgraph_opt_summary): Same.
16297         (input_edge_opt_summary): Same.
16298         (input_cgraph_opt_section): Same.
16299         * lto-section-in.c (lto_free_raw_section_data): Same.
16300         (lto_create_simple_input_block): Same.
16301         (lto_free_function_in_decl_state_for_node): Same.
16302         * lto-streamer-in.c (lto_tag_check_set): Same.
16303         (lto_location_cache::revert_location_cache): Same.
16304         (lto_location_cache::input_location): Same.
16305         (lto_input_location): Same.
16306         (stream_input_location_now): Same.
16307         (lto_input_tree_ref): Same.
16308         (lto_input_eh_catch_list): Same.
16309         (input_eh_region): Same.
16310         (lto_init_eh): Same.
16311         (make_new_block): Same.
16312         (input_cfg): Same.
16313         (fixup_call_stmt_edges): Same.
16314         (input_struct_function_base): Same.
16315         (input_function): Same.
16316         (lto_read_body_or_constructor): Same.
16317         (lto_read_tree_1): Same.
16318         (lto_read_tree): Same.
16319         (lto_input_scc): Same.
16320         (lto_input_tree_1): Same.
16321         (lto_input_toplevel_asms): Same.
16322         (lto_input_mode_table): Same.
16323         (lto_reader_init): Same.
16324         (lto_data_in_create): Same.
16325         * lto-streamer-out.c (output_cfg): Same.
16326         * lto-streamer.h: Same.
16327         * modulo-sched.c (duplicate_insns_of_cycles): Same.
16328         (generate_prolog_epilog): Same.
16329         (mark_loop_unsched): Same.
16330         (dump_insn_location): Same.
16331         (loop_canon_p): Same.
16332         (sms_schedule): Same.
16333         * omp-expand.c (expand_omp_for_ordered_loops): Same.
16334         (expand_omp_for_generic): Same.
16335         (expand_omp_for_static_nochunk): Same.
16336         (expand_omp_for_static_chunk): Same.
16337         (expand_omp_simd): Same.
16338         (expand_omp_taskloop_for_inner): Same.
16339         (expand_oacc_for): Same.
16340         (expand_omp_atomic_pipeline): Same.
16341         (mark_loops_in_oacc_kernels_region): Same.
16342         * omp-offload.c (oacc_xform_loop): Same.
16343         * omp-simd-clone.c (simd_clone_adjust): Same.
16344         * optabs-query.c (get_traditional_extraction_insn): Same.
16345         * optabs.c (expand_vector_broadcast): Same.
16346         (expand_binop_directly): Same.
16347         (expand_twoval_unop): Same.
16348         (expand_twoval_binop): Same.
16349         (expand_unop_direct): Same.
16350         (emit_indirect_jump): Same.
16351         (emit_conditional_move): Same.
16352         (emit_conditional_neg_or_complement): Same.
16353         (emit_conditional_add): Same.
16354         (vector_compare_rtx): Same.
16355         (expand_vec_perm_1): Same.
16356         (expand_vec_perm_const): Same.
16357         (expand_vec_cond_expr): Same.
16358         (expand_vec_series_expr): Same.
16359         (maybe_emit_atomic_exchange): Same.
16360         (maybe_emit_sync_lock_test_and_set): Same.
16361         (expand_atomic_compare_and_swap): Same.
16362         (expand_atomic_load): Same.
16363         (expand_atomic_store): Same.
16364         (maybe_emit_op): Same.
16365         (valid_multiword_target_p): Same.
16366         (create_integer_operand): Same.
16367         (maybe_legitimize_operand_same_code): Same.
16368         (maybe_legitimize_operand): Same.
16369         (create_convert_operand_from_type): Same.
16370         (can_reuse_operands_p): Same.
16371         (maybe_legitimize_operands): Same.
16372         (maybe_gen_insn): Same.
16373         (maybe_expand_insn): Same.
16374         (maybe_expand_jump_insn): Same.
16375         (expand_insn): Same.
16376         * optabs.h (create_expand_operand): Same.
16377         (create_fixed_operand): Same.
16378         (create_output_operand): Same.
16379         (create_input_operand): Same.
16380         (create_convert_operand_to): Same.
16381         (create_convert_operand_from): Same.
16382         * optinfo.h: Same.
16383         * poly-int.h: Same.
16384         * predict.c (optimize_insn_for_speed_p): Same.
16385         (optimize_loop_for_size_p): Same.
16386         (optimize_loop_for_speed_p): Same.
16387         (optimize_loop_nest_for_speed_p): Same.
16388         (get_base_value): Same.
16389         (predicted_by_loop_heuristics_p): Same.
16390         (predict_extra_loop_exits): Same.
16391         (predict_loops): Same.
16392         (predict_paths_for_bb): Same.
16393         (predict_paths_leading_to): Same.
16394         (propagate_freq): Same.
16395         (pass_profile::execute): Same.
16396         * predict.h: Same.
16397         * profile-count.c (profile_count::differs_from_p): Same.
16398         (profile_probability::differs_lot_from_p): Same.
16399         * profile-count.h: Same.
16400         * profile.c (branch_prob): Same.
16401         * regrename.c (free_chain_data): Same.
16402         (mark_conflict): Same.
16403         (create_new_chain): Same.
16404         (merge_overlapping_regs): Same.
16405         (init_rename_info): Same.
16406         (merge_chains): Same.
16407         (regrename_analyze): Same.
16408         (regrename_do_replace): Same.
16409         (scan_rtx_reg): Same.
16410         (record_out_operands): Same.
16411         (build_def_use): Same.
16412         * regrename.h: Same.
16413         * reload.h: Same.
16414         * reload1.c (init_reload): Same.
16415         (maybe_fix_stack_asms): Same.
16416         (copy_reloads): Same.
16417         (count_pseudo): Same.
16418         (count_spilled_pseudo): Same.
16419         (find_reg): Same.
16420         (find_reload_regs): Same.
16421         (select_reload_regs): Same.
16422         (spill_hard_reg): Same.
16423         (fixup_eh_region_note): Same.
16424         (set_reload_reg): Same.
16425         (allocate_reload_reg): Same.
16426         (compute_reload_subreg_offset): Same.
16427         (reload_adjust_reg_for_icode): Same.
16428         (emit_input_reload_insns): Same.
16429         (emit_output_reload_insns): Same.
16430         (do_input_reload): Same.
16431         (inherit_piecemeal_p): Same.
16432         * rtl.h: Same.
16433         * sanopt.c (maybe_get_dominating_check): Same.
16434         (maybe_optimize_ubsan_ptr_ifn): Same.
16435         (can_remove_asan_check): Same.
16436         (maybe_optimize_asan_check_ifn): Same.
16437         (sanopt_optimize_walker): Same.
16438         * sched-deps.c (add_dependence_list): Same.
16439         (chain_to_prev_insn): Same.
16440         (add_insn_mem_dependence): Same.
16441         (create_insn_reg_set): Same.
16442         (maybe_extend_reg_info_p): Same.
16443         (sched_analyze_reg): Same.
16444         (sched_analyze_1): Same.
16445         (get_implicit_reg_pending_clobbers): Same.
16446         (chain_to_prev_insn_p): Same.
16447         (deps_analyze_insn): Same.
16448         (deps_start_bb): Same.
16449         (sched_free_deps): Same.
16450         (init_deps): Same.
16451         (init_deps_reg_last): Same.
16452         (free_deps): Same.
16453         * sched-ebb.c: Same.
16454         * sched-int.h: Same.
16455         * sched-rgn.c (add_branch_dependences): Same.
16456         (concat_insn_mem_list): Same.
16457         (deps_join): Same.
16458         (sched_rgn_compute_dependencies): Same.
16459         * sel-sched-ir.c (reset_target_context): Same.
16460         (copy_deps_context): Same.
16461         (init_id_from_df): Same.
16462         (has_dependence_p): Same.
16463         (change_loops_latches): Same.
16464         (bb_top_order_comparator): Same.
16465         (make_region_from_loop_preheader): Same.
16466         (sel_init_pipelining): Same.
16467         (get_loop_nest_for_rgn): Same.
16468         (make_regions_from_the_rest): Same.
16469         (sel_is_loop_preheader_p): Same.
16470         * sel-sched-ir.h (inner_loop_header_p): Same.
16471         (get_all_loop_exits): Same.
16472         * selftest.h: Same.
16473         * sese.c (sese_build_liveouts): Same.
16474         (sese_insert_phis_for_liveouts): Same.
16475         * sese.h (defined_in_sese_p): Same.
16476         * sreal.c (sreal::stream_out): Same.
16477         * sreal.h: Same.
16478         * streamer-hooks.h: Same.
16479         * target-globals.c (save_target_globals): Same.
16480         * target-globals.h: Same.
16481         * target.def: Same.
16482         * target.h: Same.
16483         * targhooks.c (default_has_ifunc_p): Same.
16484         (default_empty_mask_is_expensive): Same.
16485         (default_init_cost): Same.
16486         * targhooks.h: Same.
16487         * toplev.c: Same.
16488         * tree-affine.c (aff_combination_mult): Same.
16489         (aff_combination_expand): Same.
16490         (aff_combination_constant_multiple_p): Same.
16491         * tree-affine.h: Same.
16492         * tree-cfg.c (build_gimple_cfg): Same.
16493         (replace_loop_annotate_in_block): Same.
16494         (replace_uses_by): Same.
16495         (remove_bb): Same.
16496         (dump_cfg_stats): Same.
16497         (gimple_duplicate_sese_region): Same.
16498         (gimple_duplicate_sese_tail): Same.
16499         (move_block_to_fn): Same.
16500         (replace_block_vars_by_duplicates): Same.
16501         (move_sese_region_to_fn): Same.
16502         (print_loops_bb): Same.
16503         (print_loop): Same.
16504         (print_loops): Same.
16505         (debug): Same.
16506         (debug_loops): Same.
16507         * tree-cfg.h: Same.
16508         * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
16509         (chrec_fold_multiply_poly_poly): Same.
16510         (chrec_evaluate): Same.
16511         (chrec_component_in_loop_num): Same.
16512         (reset_evolution_in_loop): Same.
16513         (is_multivariate_chrec): Same.
16514         (chrec_contains_symbols): Same.
16515         (nb_vars_in_chrec): Same.
16516         (chrec_convert_1): Same.
16517         (chrec_convert_aggressive): Same.
16518         * tree-chrec.h: Same.
16519         * tree-core.h: Same.
16520         * tree-data-ref.c (dump_data_dependence_relation): Same.
16521         (canonicalize_base_object_address): Same.
16522         (data_ref_compare_tree): Same.
16523         (prune_runtime_alias_test_list): Same.
16524         (get_segment_min_max): Same.
16525         (create_intersect_range_checks): Same.
16526         (conflict_fn_no_dependence): Same.
16527         (object_address_invariant_in_loop_p): Same.
16528         (analyze_ziv_subscript): Same.
16529         (analyze_siv_subscript_cst_affine): Same.
16530         (analyze_miv_subscript): Same.
16531         (analyze_overlapping_iterations): Same.
16532         (build_classic_dist_vector_1): Same.
16533         (add_other_self_distances): Same.
16534         (same_access_functions): Same.
16535         (build_classic_dir_vector): Same.
16536         (subscript_dependence_tester_1): Same.
16537         (subscript_dependence_tester): Same.
16538         (access_functions_are_affine_or_constant_p): Same.
16539         (get_references_in_stmt): Same.
16540         (loop_nest_has_data_refs): Same.
16541         (graphite_find_data_references_in_stmt): Same.
16542         (find_data_references_in_bb): Same.
16543         (get_base_for_alignment): Same.
16544         (find_loop_nest_1): Same.
16545         (find_loop_nest): Same.
16546         * tree-data-ref.h (dr_alignment): Same.
16547         (ddr_dependence_level): Same.
16548         * tree-if-conv.c (fold_build_cond_expr): Same.
16549         (add_to_predicate_list): Same.
16550         (add_to_dst_predicate_list): Same.
16551         (phi_convertible_by_degenerating_args): Same.
16552         (idx_within_array_bound): Same.
16553         (all_preds_critical_p): Same.
16554         (pred_blocks_visited_p): Same.
16555         (predicate_bbs): Same.
16556         (build_region): Same.
16557         (if_convertible_loop_p_1): Same.
16558         (is_cond_scalar_reduction): Same.
16559         (predicate_scalar_phi): Same.
16560         (remove_conditions_and_labels): Same.
16561         (combine_blocks): Same.
16562         (version_loop_for_if_conversion): Same.
16563         (versionable_outer_loop_p): Same.
16564         (ifcvt_local_dce): Same.
16565         (tree_if_conversion): Same.
16566         (pass_if_conversion::gate): Same.
16567         * tree-if-conv.h: Same.
16568         * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
16569         * tree-loop-distribution.c (bb_top_order_cmp): Same.
16570         (free_rdg): Same.
16571         (stmt_has_scalar_dependences_outside_loop): Same.
16572         (copy_loop_before): Same.
16573         (create_bb_after_loop): Same.
16574         (const_with_all_bytes_same): Same.
16575         (generate_memset_builtin): Same.
16576         (generate_memcpy_builtin): Same.
16577         (destroy_loop): Same.
16578         (build_rdg_partition_for_vertex): Same.
16579         (compute_access_range): Same.
16580         (data_ref_segment_size): Same.
16581         (latch_dominated_by_data_ref): Same.
16582         (compute_alias_check_pairs): Same.
16583         (fuse_memset_builtins): Same.
16584         (finalize_partitions): Same.
16585         (find_seed_stmts_for_distribution): Same.
16586         (prepare_perfect_loop_nest): Same.
16587         * tree-parloops.c (lambda_transform_legal_p): Same.
16588         (loop_parallel_p): Same.
16589         (reduc_stmt_res): Same.
16590         (add_field_for_name): Same.
16591         (create_call_for_reduction_1): Same.
16592         (replace_uses_in_bb_by): Same.
16593         (transform_to_exit_first_loop_alt): Same.
16594         (try_transform_to_exit_first_loop_alt): Same.
16595         (transform_to_exit_first_loop): Same.
16596         (num_phis): Same.
16597         (gen_parallel_loop): Same.
16598         (gather_scalar_reductions): Same.
16599         (get_omp_data_i_param): Same.
16600         (try_create_reduction_list): Same.
16601         (oacc_entry_exit_single_gang): Same.
16602         (parallelize_loops): Same.
16603         * tree-pass.h: Same.
16604         * tree-predcom.c (determine_offset): Same.
16605         (last_always_executed_block): Same.
16606         (split_data_refs_to_components): Same.
16607         (suitable_component_p): Same.
16608         (valid_initializer_p): Same.
16609         (find_looparound_phi): Same.
16610         (insert_looparound_copy): Same.
16611         (add_looparound_copies): Same.
16612         (determine_roots_comp): Same.
16613         (predcom_tmp_var): Same.
16614         (initialize_root_vars): Same.
16615         (initialize_root_vars_store_elim_1): Same.
16616         (initialize_root_vars_store_elim_2): Same.
16617         (finalize_eliminated_stores): Same.
16618         (initialize_root_vars_lm): Same.
16619         (remove_stmt): Same.
16620         (determine_unroll_factor): Same.
16621         (execute_pred_commoning_cbck): Same.
16622         (base_names_in_chain_on): Same.
16623         (combine_chains): Same.
16624         (pcom_stmt_dominates_stmt_p): Same.
16625         (try_combine_chains): Same.
16626         (prepare_initializers_chain_store_elim): Same.
16627         (prepare_initializers_chain): Same.
16628         (prepare_initializers): Same.
16629         (prepare_finalizers_chain): Same.
16630         (prepare_finalizers): Same.
16631         (insert_init_seqs): Same.
16632         * tree-scalar-evolution.c (loop_phi_node_p): Same.
16633         (compute_overall_effect_of_inner_loop): Same.
16634         (add_to_evolution_1): Same.
16635         (add_to_evolution): Same.
16636         (follow_ssa_edge_binary): Same.
16637         (follow_ssa_edge_expr): Same.
16638         (backedge_phi_arg_p): Same.
16639         (follow_ssa_edge_in_condition_phi_branch): Same.
16640         (follow_ssa_edge_in_condition_phi): Same.
16641         (follow_ssa_edge_inner_loop_phi): Same.
16642         (follow_ssa_edge): Same.
16643         (analyze_evolution_in_loop): Same.
16644         (analyze_initial_condition): Same.
16645         (interpret_loop_phi): Same.
16646         (interpret_condition_phi): Same.
16647         (interpret_rhs_expr): Same.
16648         (interpret_expr): Same.
16649         (interpret_gimple_assign): Same.
16650         (analyze_scalar_evolution_1): Same.
16651         (analyze_scalar_evolution): Same.
16652         (analyze_scalar_evolution_for_address_of): Same.
16653         (get_instantiated_value_entry): Same.
16654         (loop_closed_phi_def): Same.
16655         (instantiate_scev_name): Same.
16656         (instantiate_scev_poly): Same.
16657         (instantiate_scev_binary): Same.
16658         (instantiate_scev_convert): Same.
16659         (instantiate_scev_not): Same.
16660         (instantiate_scev_r): Same.
16661         (instantiate_scev): Same.
16662         (resolve_mixers): Same.
16663         (initialize_scalar_evolutions_analyzer): Same.
16664         (scev_reset_htab): Same.
16665         (scev_reset): Same.
16666         (derive_simple_iv_with_niters): Same.
16667         (simple_iv_with_niters): Same.
16668         (expression_expensive_p): Same.
16669         (final_value_replacement_loop): Same.
16670         * tree-scalar-evolution.h (block_before_loop): Same.
16671         * tree-ssa-address.h: Same.
16672         * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
16673         * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
16674         (record_edge_info): Same.
16675         * tree-ssa-live.c (var_map_base_fini): Same.
16676         (remove_unused_locals): Same.
16677         * tree-ssa-live.h: Same.
16678         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
16679         (pass_ch_vect::execute): Same.
16680         (pass_ch::process_loop_p): Same.
16681         * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
16682         (movement_possibility): Same.
16683         (outermost_invariant_loop): Same.
16684         (stmt_cost): Same.
16685         (determine_max_movement): Same.
16686         (invariantness_dom_walker::before_dom_children): Same.
16687         (move_computations): Same.
16688         (may_move_till): Same.
16689         (force_move_till_op): Same.
16690         (force_move_till): Same.
16691         (memref_free): Same.
16692         (record_mem_ref_loc): Same.
16693         (set_ref_stored_in_loop): Same.
16694         (mark_ref_stored): Same.
16695         (sort_bbs_in_loop_postorder_cmp): Same.
16696         (sort_locs_in_loop_postorder_cmp): Same.
16697         (analyze_memory_references): Same.
16698         (mem_refs_may_alias_p): Same.
16699         (find_ref_loc_in_loop_cmp): Same.
16700         (rewrite_mem_ref_loc::operator): Same.
16701         (first_mem_ref_loc_1::operator): Same.
16702         (sm_set_flag_if_changed::operator): Same.
16703         (execute_sm_if_changed_flag_set): Same.
16704         (execute_sm): Same.
16705         (hoist_memory_references): Same.
16706         (ref_always_accessed::operator): Same.
16707         (refs_independent_p): Same.
16708         (record_dep_loop): Same.
16709         (ref_indep_loop_p_1): Same.
16710         (ref_indep_loop_p): Same.
16711         (can_sm_ref_p): Same.
16712         (find_refs_for_sm): Same.
16713         (loop_suitable_for_sm): Same.
16714         (store_motion_loop): Same.
16715         (store_motion): Same.
16716         (fill_always_executed_in): Same.
16717         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
16718         (estimated_unrolled_size): Same.
16719         (loop_edge_to_cancel): Same.
16720         (remove_exits_and_undefined_stmts): Same.
16721         (remove_redundant_iv_tests): Same.
16722         (unloop_loops): Same.
16723         (estimated_peeled_sequence_size): Same.
16724         (try_peel_loop): Same.
16725         (canonicalize_loop_induction_variables): Same.
16726         (canonicalize_induction_variables): Same.
16727         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
16728         (name_info): Same.
16729         (stmt_after_inc_pos): Same.
16730         (contains_abnormal_ssa_name_p): Same.
16731         (niter_for_exit): Same.
16732         (find_bivs): Same.
16733         (mark_bivs): Same.
16734         (find_givs_in_bb): Same.
16735         (find_induction_variables): Same.
16736         (find_interesting_uses_cond): Same.
16737         (outermost_invariant_loop_for_expr): Same.
16738         (idx_find_step): Same.
16739         (add_candidate_1): Same.
16740         (add_iv_candidate_derived_from_uses): Same.
16741         (alloc_use_cost_map): Same.
16742         (prepare_decl_rtl): Same.
16743         (generic_predict_doloop_p): Same.
16744         (computation_cost): Same.
16745         (determine_common_wider_type): Same.
16746         (get_computation_aff_1): Same.
16747         (get_use_type): Same.
16748         (determine_group_iv_cost_address): Same.
16749         (iv_period): Same.
16750         (difference_cannot_overflow_p): Same.
16751         (may_eliminate_iv): Same.
16752         (determine_set_costs): Same.
16753         (cheaper_cost_pair): Same.
16754         (compare_cost_pair): Same.
16755         (iv_ca_cand_for_group): Same.
16756         (iv_ca_recount_cost): Same.
16757         (iv_ca_set_remove_invs): Same.
16758         (iv_ca_set_no_cp): Same.
16759         (iv_ca_set_add_invs): Same.
16760         (iv_ca_set_cp): Same.
16761         (iv_ca_add_group): Same.
16762         (iv_ca_cost): Same.
16763         (iv_ca_compare_deps): Same.
16764         (iv_ca_delta_reverse): Same.
16765         (iv_ca_delta_commit): Same.
16766         (iv_ca_cand_used_p): Same.
16767         (iv_ca_delta_free): Same.
16768         (iv_ca_new): Same.
16769         (iv_ca_free): Same.
16770         (iv_ca_dump): Same.
16771         (iv_ca_extend): Same.
16772         (iv_ca_narrow): Same.
16773         (iv_ca_prune): Same.
16774         (cheaper_cost_with_cand): Same.
16775         (iv_ca_replace): Same.
16776         (try_add_cand_for): Same.
16777         (get_initial_solution): Same.
16778         (try_improve_iv_set): Same.
16779         (find_optimal_iv_set_1): Same.
16780         (create_new_iv): Same.
16781         (rewrite_use_compare): Same.
16782         (remove_unused_ivs): Same.
16783         (determine_scaling_factor): Same.
16784         * tree-ssa-loop-ivopts.h: Same.
16785         * tree-ssa-loop-manip.c (create_iv): Same.
16786         (compute_live_loop_exits): Same.
16787         (add_exit_phi): Same.
16788         (add_exit_phis): Same.
16789         (find_uses_to_rename_use): Same.
16790         (find_uses_to_rename_def): Same.
16791         (find_uses_to_rename_in_loop): Same.
16792         (rewrite_into_loop_closed_ssa): Same.
16793         (check_loop_closed_ssa_bb): Same.
16794         (split_loop_exit_edge): Same.
16795         (ip_end_pos): Same.
16796         (ip_normal_pos): Same.
16797         (copy_phi_node_args): Same.
16798         (gimple_duplicate_loop_to_header_edge): Same.
16799         (can_unroll_loop_p): Same.
16800         (determine_exit_conditions): Same.
16801         (scale_dominated_blocks_in_loop): Same.
16802         (niter_for_unrolled_loop): Same.
16803         (tree_transform_and_unroll_loop): Same.
16804         (rewrite_all_phi_nodes_with_iv): Same.
16805         * tree-ssa-loop-manip.h: Same.
16806         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
16807         (number_of_iterations_ne): Same.
16808         (assert_no_overflow_lt): Same.
16809         (assert_loop_rolls_lt): Same.
16810         (number_of_iterations_lt): Same.
16811         (adjust_cond_for_loop_until_wrap): Same.
16812         (tree_simplify_using_condition): Same.
16813         (simplify_using_initial_conditions): Same.
16814         (simplify_using_outer_evolutions): Same.
16815         (loop_only_exit_p): Same.
16816         (ssa_defined_by_minus_one_stmt_p): Same.
16817         (number_of_iterations_popcount): Same.
16818         (number_of_iterations_exit): Same.
16819         (find_loop_niter): Same.
16820         (finite_loop_p): Same.
16821         (chain_of_csts_start): Same.
16822         (get_val_for): Same.
16823         (loop_niter_by_eval): Same.
16824         (derive_constant_upper_bound_ops): Same.
16825         (do_warn_aggressive_loop_optimizations): Same.
16826         (record_estimate): Same.
16827         (get_cst_init_from_scev): Same.
16828         (record_nonwrapping_iv): Same.
16829         (idx_infer_loop_bounds): Same.
16830         (infer_loop_bounds_from_ref): Same.
16831         (infer_loop_bounds_from_array): Same.
16832         (infer_loop_bounds_from_pointer_arith): Same.
16833         (infer_loop_bounds_from_signedness): Same.
16834         (bound_index): Same.
16835         (discover_iteration_bound_by_body_walk): Same.
16836         (maybe_lower_iteration_bound): Same.
16837         (estimate_numbers_of_iterations): Same.
16838         (estimated_loop_iterations): Same.
16839         (estimated_loop_iterations_int): Same.
16840         (max_loop_iterations): Same.
16841         (max_loop_iterations_int): Same.
16842         (likely_max_loop_iterations): Same.
16843         (likely_max_loop_iterations_int): Same.
16844         (estimated_stmt_executions_int): Same.
16845         (max_stmt_executions): Same.
16846         (likely_max_stmt_executions): Same.
16847         (estimated_stmt_executions): Same.
16848         (stmt_dominates_stmt_p): Same.
16849         (nowrap_type_p): Same.
16850         (loop_exits_before_overflow): Same.
16851         (scev_var_range_cant_overflow): Same.
16852         (scev_probably_wraps_p): Same.
16853         (free_numbers_of_iterations_estimates): Same.
16854         * tree-ssa-loop-niter.h: Same.
16855         * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
16856         (idx_analyze_ref): Same.
16857         (analyze_ref): Same.
16858         (gather_memory_references_ref): Same.
16859         (mark_nontemporal_store): Same.
16860         (emit_mfence_after_loop): Same.
16861         (may_use_storent_in_loop_p): Same.
16862         (mark_nontemporal_stores): Same.
16863         (should_unroll_loop_p): Same.
16864         (volume_of_dist_vector): Same.
16865         (add_subscript_strides): Same.
16866         (self_reuse_distance): Same.
16867         (insn_to_prefetch_ratio_too_small_p): Same.
16868         * tree-ssa-loop-split.c (split_at_bb_p): Same.
16869         (patch_loop_exit): Same.
16870         (find_or_create_guard_phi): Same.
16871         (easy_exit_values): Same.
16872         (connect_loop_phis): Same.
16873         (connect_loops): Same.
16874         (compute_new_first_bound): Same.
16875         (split_loop): Same.
16876         (tree_ssa_split_loops): Same.
16877         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
16878         (is_maybe_undefined): Same.
16879         (tree_may_unswitch_on): Same.
16880         (simplify_using_entry_checks): Same.
16881         (tree_unswitch_single_loop): Same.
16882         (tree_unswitch_loop): Same.
16883         (tree_unswitch_outer_loop): Same.
16884         (empty_bb_without_guard_p): Same.
16885         (used_outside_loop_p): Same.
16886         (get_vop_from_header): Same.
16887         (hoist_guard): Same.
16888         * tree-ssa-loop.c (gate_oacc_kernels): Same.
16889         (get_lsm_tmp_name): Same.
16890         * tree-ssa-loop.h: Same.
16891         * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
16892         (build_and_add_sum): Same.
16893         (no_side_effect_bb): Same.
16894         (get_ops): Same.
16895         (linearize_expr): Same.
16896         (should_break_up_subtract): Same.
16897         (linearize_expr_tree): Same.
16898         * tree-ssa-scopedtables.c: Same.
16899         * tree-ssa-scopedtables.h: Same.
16900         * tree-ssa-structalias.c (condense_visit): Same.
16901         (label_visit): Same.
16902         (dump_pred_graph): Same.
16903         (perform_var_substitution): Same.
16904         (move_complex_constraints): Same.
16905         (remove_preds_and_fake_succs): Same.
16906         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
16907         (determine_bb_domination_status): Same.
16908         (duplicate_thread_path): Same.
16909         (thread_through_all_blocks): Same.
16910         * tree-ssa-threadupdate.h: Same.
16911         * tree-streamer-in.c (streamer_read_string_cst): Same.
16912         (input_identifier): Same.
16913         (unpack_ts_type_common_value_fields): Same.
16914         (unpack_ts_block_value_fields): Same.
16915         (unpack_ts_translation_unit_decl_value_fields): Same.
16916         (unpack_ts_omp_clause_value_fields): Same.
16917         (streamer_read_tree_bitfields): Same.
16918         (streamer_alloc_tree): Same.
16919         (lto_input_ts_common_tree_pointers): Same.
16920         (lto_input_ts_vector_tree_pointers): Same.
16921         (lto_input_ts_poly_tree_pointers): Same.
16922         (lto_input_ts_complex_tree_pointers): Same.
16923         (lto_input_ts_decl_minimal_tree_pointers): Same.
16924         (lto_input_ts_decl_common_tree_pointers): Same.
16925         (lto_input_ts_decl_non_common_tree_pointers): Same.
16926         (lto_input_ts_decl_with_vis_tree_pointers): Same.
16927         (lto_input_ts_field_decl_tree_pointers): Same.
16928         (lto_input_ts_function_decl_tree_pointers): Same.
16929         (lto_input_ts_type_common_tree_pointers): Same.
16930         (lto_input_ts_type_non_common_tree_pointers): Same.
16931         (lto_input_ts_list_tree_pointers): Same.
16932         (lto_input_ts_vec_tree_pointers): Same.
16933         (lto_input_ts_exp_tree_pointers): Same.
16934         (lto_input_ts_block_tree_pointers): Same.
16935         (lto_input_ts_binfo_tree_pointers): Same.
16936         (lto_input_ts_constructor_tree_pointers): Same.
16937         (lto_input_ts_omp_clause_tree_pointers): Same.
16938         (streamer_read_tree_body): Same.
16939         * tree-streamer.h: Same.
16940         * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
16941         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
16942         (vect_analyze_possibly_independent_ddr): Same.
16943         (vect_analyze_data_ref_dependence): Same.
16944         (vect_compute_data_ref_alignment): Same.
16945         (vect_enhance_data_refs_alignment): Same.
16946         (vect_analyze_data_ref_access): Same.
16947         (vect_check_gather_scatter): Same.
16948         (vect_find_stmt_data_reference): Same.
16949         (vect_create_addr_base_for_vector_ref): Same.
16950         (vect_setup_realignment): Same.
16951         (vect_supportable_dr_alignment): Same.
16952         * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
16953         (adjust_phi_and_debug_stmts): Same.
16954         (vect_set_loop_mask): Same.
16955         (add_preheader_seq): Same.
16956         (vect_maybe_permute_loop_masks): Same.
16957         (vect_set_loop_masks_directly): Same.
16958         (vect_set_loop_condition_masked): Same.
16959         (vect_set_loop_condition_unmasked): Same.
16960         (slpeel_duplicate_current_defs_from_edges): Same.
16961         (slpeel_add_loop_guard): Same.
16962         (slpeel_can_duplicate_loop_p): Same.
16963         (create_lcssa_for_virtual_phi): Same.
16964         (iv_phi_p): Same.
16965         (vect_update_ivs_after_vectorizer): Same.
16966         (vect_gen_vector_loop_niters_mult_vf): Same.
16967         (slpeel_update_phi_nodes_for_loops): Same.
16968         (slpeel_update_phi_nodes_for_guard1): Same.
16969         (find_guard_arg): Same.
16970         (slpeel_update_phi_nodes_for_guard2): Same.
16971         (slpeel_update_phi_nodes_for_lcssa): Same.
16972         (vect_do_peeling): Same.
16973         (vect_create_cond_for_alias_checks): Same.
16974         (vect_loop_versioning): Same.
16975         * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
16976         (vect_inner_phi_in_double_reduction_p): Same.
16977         (vect_analyze_scalar_cycles_1): Same.
16978         (vect_fixup_scalar_cycles_with_patterns): Same.
16979         (vect_get_loop_niters): Same.
16980         (bb_in_loop_p): Same.
16981         (vect_get_max_nscalars_per_iter): Same.
16982         (vect_verify_full_masking): Same.
16983         (vect_compute_single_scalar_iteration_cost): Same.
16984         (vect_analyze_loop_form_1): Same.
16985         (vect_analyze_loop_form): Same.
16986         (vect_active_double_reduction_p): Same.
16987         (vect_analyze_loop_operations): Same.
16988         (neutral_op_for_slp_reduction): Same.
16989         (vect_is_simple_reduction): Same.
16990         (vect_model_reduction_cost): Same.
16991         (get_initial_def_for_reduction): Same.
16992         (get_initial_defs_for_reduction): Same.
16993         (vect_create_epilog_for_reduction): Same.
16994         (vectorize_fold_left_reduction): Same.
16995         (vectorizable_reduction): Same.
16996         (vectorizable_induction): Same.
16997         (vectorizable_live_operation): Same.
16998         (loop_niters_no_overflow): Same.
16999         (vect_get_loop_mask): Same.
17000         (vect_transform_loop_stmt): Same.
17001         (vect_transform_loop): Same.
17002         * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
17003         (vect_determine_precisions): Same.
17004         (vect_pattern_recog_1): Same.
17005         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
17006         * tree-vect-stmts.c (stmt_vectype): Same.
17007         (process_use): Same.
17008         (vect_init_vector_1): Same.
17009         (vect_truncate_gather_scatter_offset): Same.
17010         (get_group_load_store_type): Same.
17011         (vect_build_gather_load_calls): Same.
17012         (vect_get_strided_load_store_ops): Same.
17013         (vectorizable_simd_clone_call): Same.
17014         (vectorizable_store): Same.
17015         (permute_vec_elements): Same.
17016         (vectorizable_load): Same.
17017         (vect_transform_stmt): Same.
17018         (supportable_widening_operation): Same.
17019         * tree-vectorizer.c (vec_info::replace_stmt): Same.
17020         (vec_info::free_stmt_vec_info): Same.
17021         (vect_free_loop_info_assumptions): Same.
17022         (vect_loop_vectorized_call): Same.
17023         (set_uid_loop_bbs): Same.
17024         (vectorize_loops): Same.
17025         * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
17026         * tree.c (add_tree_to_fld_list): Same.
17027         (fld_type_variant_equal_p): Same.
17028         (fld_decl_context): Same.
17029         (fld_incomplete_type_of): Same.
17030         (free_lang_data_in_binfo): Same.
17031         (need_assembler_name_p): Same.
17032         (find_decls_types_r): Same.
17033         (get_eh_types_for_runtime): Same.
17034         (find_decls_types_in_eh_region): Same.
17035         (find_decls_types_in_node): Same.
17036         (assign_assembler_name_if_needed): Same.
17037         * value-prof.c (stream_out_histogram_value): Same.
17038         * value-prof.h: Same.
17039         * var-tracking.c (use_narrower_mode): Same.
17040         (prepare_call_arguments): Same.
17041         (vt_expand_loc_callback): Same.
17042         (resolve_expansions_pending_recursion): Same.
17043         (vt_expand_loc): Same.
17044         * varasm.c (const_hash_1): Same.
17045         (compare_constant): Same.
17046         (tree_output_constant_def): Same.
17047         (simplify_subtraction): Same.
17048         (get_pool_constant): Same.
17049         (output_constant_pool_2): Same.
17050         (output_constant_pool_1): Same.
17051         (mark_constants_in_pattern): Same.
17052         (mark_constant_pool): Same.
17053         (get_section_anchor): Same.
17054         * vr-values.c (compare_range_with_value): Same.
17055         (vr_values::extract_range_from_phi_node): Same.
17056         * vr-values.h: Same.
17057         * web.c (unionfind_union): Same.
17058         * wide-int.h: Same.
17060 2019-07-09  Martin Sebor  <msebor@redhat.com>
17062         PR c++/61339
17063         * align.h: Change class-key from class to struct and vice versa
17064         to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
17065         * alloc-pool.h: Same.
17066         * asan.c (shadow_mem_size): Same.
17067         * auto-profile.c: Same.
17068         * basic-block.h: Same.
17069         * bitmap.h: Same.
17070         * cfgexpand.c (set_rtl): Same.
17071         (expand_one_stack_var_at): Same.
17072         * cfghooks.h: Same.
17073         * cfgloop.h: Same.
17074         * cgraph.h: Same.
17075         * config/i386/i386.h: Same.
17076         * df-problems.c (df_print_bb_index): Same.
17077         * df-scan.c: Same.
17078         * df.h (df_single_use): Same.
17079         * diagnostic-show-locus.c (layout::print_annotation_line): Same.
17080         (layout::annotation_line_showed_range_p): Same.
17081         (get_printed_columns): Same.
17082         (correction::ensure_terminated): Same.
17083         (line_corrections::~line_corrections): Same.
17084         * dojump.h: Same.
17085         * dse.c: Same.
17086         * dump-context.h: Same.
17087         * dumpfile.h: Same.
17088         * dwarf2out.c: Same.
17089         * edit-context.c: Same.
17090         * fibonacci_heap.c (test_union_of_equal_heaps): Same.
17091         * flags.h: Same.
17092         * function.c (assign_stack_local): Same.
17093         * function.h: Same.
17094         * gcc.c: Same.
17095         * gcov.c (block_info::block_info): Same.
17096         * genattrtab.c: Same.
17097         * genextract.c: Same.
17098         * genmatch.c (comparison_code_p): Same.
17099         (id_base::id_base): Same.
17100         (decision_tree::print): Same.
17101         * genoutput.c: Same.
17102         * genpreds.c (write_one_predicate_function): Same.
17103         * genrecog.c (validate_pattern): Same.
17104         (find_operand_positions): Same.
17105         (optimize_subroutine_group): Same.
17106         (merge_pattern_transition::merge_pattern_transition): Same.
17107         (merge_pattern_info::merge_pattern_info): Same.
17108         (merge_state_result::merge_state_result): Same.
17109         (merge_into_state): Same.
17110         * gensupport.c: Same.
17111         * gensupport.h: Same.
17112         * ggc-common.c (init_ggc_heuristics): Same.
17113         * ggc-tests.c (test_union): Same.
17114         * gimple-loop-interchange.cc (dump_induction): Same.
17115         * gimple-loop-versioning.cc: Same.
17116         * gimple-match.h (gimple_match_cond::any_else): Same.
17117         * gimple-ssa-backprop.c: Same.
17118         * gimple-ssa-sprintf.c: Same.
17119         * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
17120         Same.
17121         (store_immediate_info::store_immediate_info): Same.
17122         (merged_store_group::apply_stores): Same.
17123         (get_location_for_stmts): Same.
17124         * gimple-ssa-strength-reduction.c: Same.
17125         * gimple-ssa-warn-alloca.c: Same.
17126         * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
17127         * godump.c (go_type_decl): Same.
17128         * hash-map-tests.c (test_map_of_strings_to_int): Same.
17129         * hash-map.h: Same.
17130         * hash-set-tests.c (test_set_of_strings): Same.
17131         * hsa-brig.c: Same.
17132         * hsa-common.h: Same.
17133         * hsa-gen.c (transformable_switch_to_sbr_p): Same.
17134         * input.c (assert_loceq): Same.
17135         * input.h: Same.
17136         * ipa-cp.c: Same.
17137         * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
17138         * ipa-fnsummary.h: Same.
17139         * ipa-inline.h: Same.
17140         * ipa-prop.h: Same.
17141         * ipa-split.c (visit_bb): Same.
17142         * ira-int.h (minmax_set_iter_next): Same.
17143         * loop-invariant.c: Same.
17144         * loop-iv.c: Same.
17145         * lra-eliminations.c: Same.
17146         * lra-int.h: Same.
17147         * lra-lives.c (mark_regno_dead): Same.
17148         * lra-remat.c: Same.
17149         * lra-spills.c: Same.
17150         * lto-streamer.h: Same.
17151         * mem-stats.h: Same.
17152         * omp-grid.c (omp_grid_lastprivate_predicate): Same.
17153         * omp-low.c (omp_clause_aligned_alignment): Same.
17154         * optabs-query.h (get_vcond_eq_icode): Same.
17155         * optabs.h: Same.
17156         * opts.c (wrap_help): Same.
17157         * poly-int.h: Same.
17158         * predict.c (predict_paths_leading_to_edge): Same.
17159         * pretty-print.h: Same.
17160         * profile-count.h: Same.
17161         * read-md.h: Same.
17162         * read-rtl-function.c: Same.
17163         * ree.c: Same.
17164         * reginfo.c: Same.
17165         * regrename.c: Same.
17166         * regrename.h: Same.
17167         * reload.h: Same.
17168         * rtl-iter.h: Same.
17169         * rtl.h (costs_add_n_insns): Same.
17170         * sanopt.c: Same.
17171         * sched-int.h: Same.
17172         * sel-sched-ir.h: Same.
17173         * selftest.h: Same.
17174         * sese.h (vec_find): Same.
17175         * stmt.c: Same.
17176         * target-globals.h: Same.
17177         * tree-affine.c (aff_combination_find_elt): Same.
17178         * tree-affine.h: Same.
17179         * tree-data-ref.h: Same.
17180         * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
17181         * tree-predcom.c: Same.
17182         * tree-scalar-evolution.c (find_var_scev_info): Same.
17183         * tree-ssa-alias.h: Same.
17184         * tree-ssa-ccp.c: Same.
17185         * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
17186         * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
17187         (rewrite_mem_refs): Same.
17188         (execute_sm_if_changed): Same.
17189         (hoist_memory_references): Same.
17190         * tree-ssa-loop-ivopts.c (operator<=): Same.
17191         * tree-ssa-loop.h: Same.
17192         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
17193         * tree-ssa-structalias.c: Same.
17194         * tree-switch-conversion.h (cluster::cluster): Same.
17195         (simple_cluster::simple_cluster): Same.
17196         * tree-vect-patterns.c (type_conversion_p): Same.
17197         * tree-vectorizer.c (dump_stmt_cost): Same.
17198         * tree-vectorizer.h (loop_vec_info_for_loop): Same.
17199         * tree.c (protected_set_expr_location): Same.
17200         * tree.h (desired_pro_or_demotion_p): Same.
17201         (fndecl_built_in_p): Same.
17202         * unique-ptr-tests.cc: Same.
17203         * var-tracking.c (delete_variable_part): Same.
17204         * varasm.c (assemble_real): Same.
17205         (tree_output_constant_def): Same.
17206         * vec.c: Same.
17207         * wide-int-bitmask.h: Same.
17208         * wide-int.h (decompose): Same.
17210 2019-07-09  Richard Biener  <rguenther@suse.de>
17212         PR tree-optimization/91114
17213         * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
17214         find a vector type isn't fatal.
17216 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
17218         * config/aarch64/aarch64-simd.md
17219         (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
17220         (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
17221         (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
17222         (*aarch64_crypto_aese_fused,
17223         *aarch64_crypto_aesd_fused): Update to new definition.
17224         * config/aarch64/aarch64.c
17225         (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
17227 2019-07-09  Richard Biener  <rguenther@suse.de>
17229         * gimple-match.h (gimple_match_op::resimplify): New.
17230         (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
17231         gimple_resimplify4, gimple_resimplify5): Remove.
17232         * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
17233         gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
17234         Make static.
17235         (gimple_match_op::resimplify): New.
17236         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
17237         according to availability.  Use gimple_match_op::resimplify.
17239 2019-07-09  Eric Botcazou  <ebotcazou@adacore.com>
17241         * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
17243 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
17245         * config/arm/crypto.md:
17246         (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
17247         (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
17248         (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
17249         (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
17250         * config/arm/arm.c
17251         (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
17252         * config/arm/aarch-common-protos.h
17253         (aarch_crypto_can_dual_issue): Remove.
17254         * config/arm/aarch-common.c
17255         (aarch_crypto_can_dual_issue): Likewise.
17256         * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
17257         * config/arm/cortex-a53.md: Likewise.
17258         * config/arm/cortex-a57.md: Likewise.
17259         * config/arm/iterators.md:
17260         (CRYPTO_BINARY): Redefine.
17261         (CRYPTO_UNARY): Removed.
17262         (CRYPTO_AES, CRYPTO_AESMC): New.
17264 2019-07-09  Richard Biener  <rguenther@suse.de>
17266         * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
17267         (vn_reference_lookup_3): If the main ref has no access path recorded
17268         but orig_ref has use it to do access-path based disambiguation.
17269         (vn_reference_lookup_pieces): Adjust.
17270         (vn_reference_lookup): Pass down original ref if we valueized.
17272 2019-07-09  Martin Liska  <mliska@suse.cz>
17274         * doc/extend.texi: Document influence on loop
17275         optimizers.
17277 2019-07-09  Martin Liska  <mliska@suse.cz>
17279         * lto-compress.c (lto_normalized_zstd_level): Do not use
17280         ZSTD_CLEVEL_DEFAULT as it is not default in old releases
17281         of libzstd.  One can use 0 as a default compression level.
17283 2019-07-09  Martin Liska  <mliska@suse.cz>
17285         * doc/invoke.texi: Add link from -fprofile-dir option.
17286         Use better wording for 'gcno filename'.
17288 2019-07-08  Martin Sebor  <msebor@redhat.com>
17290         PR middle-end/71924
17291         PR middle-end/90549
17292         * gimple-ssa-isolate-paths.c (isolate_path): Add attribute.  Update
17293         comment.
17294         (args_loc_t): New type.
17295         (args_loc_t, locmap_t): same.
17296         (diag_returned_locals): New function.
17297         (is_addr_local): Same.
17298         (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
17299         (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
17300         (find_explicit_erroneous_behavior): Call warn_return_addr_local.
17302 2019-07-08  Jakub Jelinek  <jakub@redhat.com>
17304         * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
17305         with SSA_NAME address of POINTER_PLUS_EXPR.  Handle MULT_EXPR
17306         and casts in offset when different, both through gimple stmts
17307         and through trees.  Rewritten using loops to minimize code duplication
17308         for each operand.
17310 2019-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17312         * emit-rtl.c (set_insn_locations): New function moved from...
17313         * function.c (set_insn_locations): ...here.
17314         * ira-emit.c (emit_moves): Propagate location of the first instruction
17315         to the inserted move instructions.
17316         * reg-stack.c (compensate_edge): Set the location if the sequence is
17317         inserted on the edge.
17318         * rtl.h (set_insn_locations): Declare.
17320 2019-07-08  Segher Boessenkool  <segher@kernel.crashing.org>
17322         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
17323         OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
17324         .machine string.
17326 2019-07-08  Segher Boessenkool  <segher@kernel.crashing.org>
17328         PR rtl-optimization/88233
17329         * common.opt (fsplit-wide-types-early): New option.
17330         * common/config/rs6000/rs6000-common.c
17331         (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
17332         OPT_LEVELS_ALL.
17333         * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
17334         * lower-subreg.c (pass_lower_subreg2::gate): Add test for
17335         flag_split_wide_types_early.
17336         (pass_data_lower_subreg3): New.
17337         (pass_lower_subreg3): New.
17338         (make_pass_lower_subreg3): New.
17339         * passes.def (pass_lower_subreg2): Move after the loop passes.
17340         (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
17341         * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
17342         the pass pipeline; its previous place is taken by ...
17343         (make_pass_lower_subreg3): ... this.
17345 2019-07-08  Robin Dapp  <rdapp@linux.ibm.com>
17347         * config/s390/s390.c (s390_shift_truncation_mask): Define.
17348         (TARGET_SHIFT_TRUNCATION_MASK): Define.
17350 2019-07-08  Robin Dapp  <rdapp@linux.ibm.com>
17352         * config/s390/constraints.md: Add new jsc constraint.
17353         * config/s390/predicates.md: New predicates.
17354         * config/s390/s390-protos.h (s390_valid_shift_count): New function.
17355         * config/s390/s390.c (s390_valid_shift_count): New function.
17356         (print_shift_count_operand): Use s390_valid_shift_count.
17357         (print_operand): Likewise.
17358         * config/s390/s390.md: Use new predicate.
17359         * config/s390/subst.md: Remove addr_style_op and masked_op substs.
17360         * config/s390/vector.md: Use new predicate.
17362 2019-07-08  Andrew Waterman  <andrew@sifive.com>
17363             Jim Wilson  <jimw@sifive.com>
17365         * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
17366         bitsize instead of BITS_PER_WORD.
17368 2019-07-08  Martin Liska  <mliska@suse.cz>
17370         * collect2.c (defined): Revert to before r254460.
17371         (scan_prog_file): Revert to before r254460.
17373 2019-07-08  Richard Biener  <rguenther@suse.de>
17375         PR tree-optimization/83518
17376         * tree-ssa-sccvn.c: Include splay-tree.h.
17377         (struct pd_range, struct pd_data): New.
17378         (struct vn_walk_cb_data): Add data to track partial definitions.
17379         (vn_walk_cb_data::~vn_walk_cb_data): New.
17380         (vn_walk_cb_data::push_partial_def): New.
17381         (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
17382         (vn_reference_lookup_2): When partial defs are registered give up.
17383         (vn_reference_lookup_3): Track partial defs for memset and
17384         constructor zeroing and for defs from constants.
17386 2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
17388         * doc/install.texi (bootstrap-Og): Document.
17390 2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
17392         * config/riscv/pic.md (*local_pic_load_s<mode>)
17393         (*local_pic_load_u<mode>): Explicitly specify the mode iterator
17394         referenced by <mode>, giving...
17395         (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
17396         * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
17397         (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
17398         use <X:MODE> for the mode attribute.
17400 2019-07-07  Jeff Law  <law@redhat.com>
17402         PR tree-optimization/91090
17403         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
17404         in handling of ranges to simplify switch statements.
17406 2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
17408         * config/darwin.c (darwin_override_options): Make a final check on PIC
17409         options.
17411 2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
17413         * config/darwin.c (darwin_override_options): Don't jam symbol stubs
17414         on for kernel code.
17416 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>
17418         PR target/91068
17419         * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
17420         (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
17421         instead of matching them to "l" output operands.
17423 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>
17425         * config/mips/mips.c (mips_split_move): Zero-initialize addr
17426         and check whether addr.reg is nonnull before using it.
17428 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
17430         * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
17431         ctx->for_simd_scan_phase simd copy the outer var to the privatized
17432         variable(s).  For conditional lastprivate look through outer
17433         GIMPLE_OMP_SCAN context.
17434         (lower_omp_1): For conditional lastprivate look through outer
17435         GIMPLE_OMP_SCAN context.
17437         * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
17438         member to combined_into_simd_safelen1.
17439         (lower_rec_input_clauses, lower_omp_1): Adjust uses.
17440         (lower_lastprivate_clauses): Likewise.  For conditional lastprivate
17441         clauses if ctx->combined_into_simd_safelen1 put statements after the
17442         predicate conditionalized block rather than into it.
17444 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
17446         * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
17447         operand 1.
17448         * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
17449         Make the choice of <mode> explicit, giving...
17450         (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
17452 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
17454         * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
17455         (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
17456         of .md attributes.
17457         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
17458         (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
17459         (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
17460         (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
17461         (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
17462         (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
17463         (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
17464         (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
17465         (*avx512f_scatterdi<mode>): Likewise.
17466         (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
17468 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
17470         * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
17471         specify the mode iterator referenced by <mode>, giving...
17472         (*push1_h8300hs_<QHI:mode>): ...this.
17474 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
17476         * config/gcn/gcn-valu.md
17477         (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
17478         gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
17479         gen_vec_cmp<VEC_1REG_MODE:mode>di.  Explicitly use
17480         gen_vcond_mask_<VEC_1REG_MODE:mode>di.
17481         (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
17482         but using the _exec comparison patterns.
17483         (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
17484         gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
17485         gen_vec_cmp<VEC_1REG_INT_MODE:mode>di.  Explicitly use
17486         gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
17487         (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
17488         but using the _exec comparison patterns.
17490 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
17492         * config/arm/sync.md
17493         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
17494         <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
17495         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
17496         <SIDI:sync_predtab>.  Use <SIDI:cas_cmp_operand> and
17497         <SIDI:cas_cmp_str>.
17499 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
17501         * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
17502         (maybe_lookup_ctx): Add forward declaration.
17503         (omp_find_scan): Likewise.  Walk into body of simd if composited
17504         with worksharing loop.
17505         (scan_omp_simd_scan): New function.
17506         (scan_omp_1_stmt): Call it.
17507         (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
17508         ctx->for_simd_scan_phase.
17509         (lower_rec_input_clauses): Do much less work for inscan reductions
17510         in ctx->for_simd_scan_phase is_simd regions.
17511         (lower_omp_scan): Set is_simd also on simd constructs composited
17512         with worksharing loop, unless ctx->for_simd_scan_phase.  Never emit
17513         a sorry message.  Don't change GIMPLE_OMP_SCAN stmts into nops and
17514         emit their body after in simd constructs composited with worksharing
17515         loop.
17516         (lower_omp_for_scan): Handle worksharing loop composited with simd.
17518         * omp-low.c (omp_find_scan): Make static.
17519         (lower_omp_for_scan): Fix order of merge arguments in input phase of
17520         the second loop, var2 represents the first partial sum and so needs
17521         to go before rprivb[ivar].
17523 2019-07-05  Iain Sandoe  <iain@sandoe.co.uk>
17525         * config/rs6000/rs6000-logue.c: Remove unused code.
17527 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
17529         * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
17531 2019-07-05  Sam Tebbs  <sam.tebbs@arm.com>
17533         PR target/90712
17534         * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
17535         check with a frame laid out check.
17537 2019-07-05  Richard Biener  <rguenther@suse.de>
17539         * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
17540         when comparing against a store with possibly the same value.
17542 2019-07-05  Richard Biener  <rguenther@suse.de>
17544         PR tree-optimization/91091
17545         * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
17546         (walk_non_aliased_vuses): Likewise.
17547         * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
17548         (get_continuation_for_phi): New tbaa_p parameter and pass
17549         it down.
17550         (walk_non_aliased_vuses): Likewise.
17551         * ipa-prop.c (determine_known_aggregate_parts): Adjust.
17552         * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
17553         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
17554         Likewise.
17555         * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
17556         (adjust_offsets_for_equal_base_address): New function.
17557         (vn_reference_lookup_3): Use it to catch more base equivalences.
17558         Handle and pass down tbaa_p flag.
17559         (vn_reference_lookup_pieces): Adjust.
17560         (vn_reference_lookup): Remove alias-set altering, instead pass
17561         down false as tbaa_p.
17563 2019-07-05  Richard Biener  <rguenther@suse.de>
17565         PR tree-optimization/91091
17566         * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
17567         accesses can happen with -fno-strict-aliasing.
17569 2019-07-05  Jan Hubicka  <hubicka@ucw.cz>
17571         * tree-ssa-alias.c (alias_stats): Add
17572         nonoverlapping_component_refs_since_match_p_must_overlap.
17573         (dump_alias_stats): Print it.
17574         (nonoverlapping_component_refs_since_match_p): Add early exit.
17575         (nonoverlapping_component_refs_p): Do not account early exit.
17577 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
17579         * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
17580         * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
17581         (emit_eh_dispatch): Delete.
17582         (lower_catch): Emit the eh_dispatch manually and set the location of
17583         the first catch statement onto it.
17584         (lower_eh_filter): Emit the eh_dispatch manually and set location.
17585         (lower_eh_dispatch): Propagate location.
17586         * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
17587         (eliminate_build): Likewise.
17589 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
17591         * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
17592         phi nodes if possible.
17593         * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
17594         location info on the newly created statement.
17595         * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
17596         newly created increment if needed.
17598 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
17600         PR middle-end/78884
17601         * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
17602         (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
17603         loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
17604         (gimplify_adjust_omp_clauses): Add safelen (1) clause if
17605         ctx->add_safelen1 is set.
17607         * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
17608         GOMP_loop_start at the start of second worksharing loop in a scan.
17609         For nowait, don't emit GOMP_loop_end_nowait at the end of first
17610         worksharing loop in a scan even if there are conditional lastprivates,
17611         and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
17613 2019-07-04  Jan Hubicka  <jh@suse.cz>
17615         * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
17616         Fix check for match in the ref walk.
17618 2019-07-04  Martin Liska  <mliska@suse.cz>
17620         * tree-ssa-loop-niter.c
17621         (get_upper_bound_based_on_builtin_expr_with_prob): New function.
17622         (estimate_numbers_of_iterations):
17623         Support __builtin_expect_with_probability for analysis
17624         of # of loop iterations.
17626 2019-07-04  Alexandre Oliva  <oliva@adacore.com>
17628         * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
17629         * except.c: Likewise.
17630         * expr.c (expand_expr_real_1): Reject it.
17631         * gimplify.c (gimplify_expr): Gimplify it, within
17632         TRY_FINALLY_EXPR.
17633         * tree-dump.c (dequeue_and_dump): Dump it.
17634         * tree-pretty-print.c (dump_generic_node): Likewise.
17635         * tree.c (block_may_fallthru): Handle it.
17636         * tree.def (EH_ELSE_EXPR): Introduce it.
17637         * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
17638         with GIMPLE_EH_ELSE as try/finally/else.
17640 2019-07-04  Richard Biener  <rguenther@suse.de>
17642         PR ipa/91062
17643         * tree-pass.h (execute_all_ipa_transforms): Add a flag
17644         parameter whether to disable GC collection.
17645         * passes.c (execute_one_ipa_transform_pass): Likewise, and
17646         honor it.
17647         (execute_all_ipa_transforms): Likewise and pass it down.
17648         * cgraph.c (cgraph_node::get_body): Do not invoke garbage
17649         collection from applying IPA transforms.
17650         * cgraphunit.c (cgraph_node::expand): Allow garbage collection
17651         from applying IPA transforms.
17653 2019-07-04  Richard Biener  <rguenther@suse.de>
17655         PR tree-optimization/90911
17656         * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
17657         (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
17658         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
17659         scalar_loop_scaling.
17660         (vect_transform_loop): Scale scalar loop profile if needed.
17661         * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
17662         the loop copy from if-conversion adjust edge probabilities
17663         and scale the vectorized loop body profile, queue the scalar
17664         profile for updating after peeling.
17666 2019-07-04  Jan Hubicka  <jh@suse.cz>
17668         * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
17669         parameters; return early for must-alias.
17670         (indirect_ref_may_alias_decl_p): Likewise; when establishing
17671         outer types match, try nonoverlapping_component_refs
17672         if must-alias is not obvious.
17673         (indirect_refs_may_alias_p): Likewise.
17674         (refs_may_alias_p_2): Likewise.
17676 2019-07-04  Richard Biener  <rguenther@suse.de>
17678         * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
17679         argument.
17680         * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
17681         globals into...
17682         (struct vn_walk_cb_data): New callback data struct.
17683         (vn_reference_lookup_2): Adjust.
17684         (vn_reference_lookup_3): Likewise.
17685         (vn_reference_lookup_pieces): Likewise.
17686         (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
17687         (visit_reference_op_load): Adjust.
17689 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
17691         PR tree-optimization/91063
17692         * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
17693         stmt from stmts sequence before calling vect_init_vector_1.
17694         Formatting fix.
17696 2019-07-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17698         PR target/88833
17699         * fwprop.c (reg_single_def_p): New function.
17700         (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
17701         (forward_propagate_into): New parameter reg_prop_only
17702         with default value false.
17703         Propagate def's src into loop only if SET_SRC and SET_DEST
17704         of def_set have single definitions.
17705         Likewise if reg_prop_only is set to true.
17706         (fwprop): New param fwprop_addr_p.
17707         Integrate fwprop_addr into fwprop.
17708         (fwprop_addr): Remove.
17709         (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
17710         to true.
17711         (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
17712         * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
17713         * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
17715 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
17717         * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
17718         in worksharing loop scans.
17720         PR tree-optimization/91074
17721         * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
17722         temporary.
17724         PR rtl-optimization/90756
17725         * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
17726         for VECTOR_TYPE_P.
17728 2019-07-03  Dennis Zhang  <dennis.zhang@arm.com>
17730         * config/aarch64/aarch64.md: Remove redundant constraints from
17731         define_expand but keep some patterns untouched if they are
17732         specially selected by TARGET_SECONDARY_RELOAD hook.
17733         * config/aarch64/aarch64-sve.md: Likewise.
17734         * config/aarch64/atomics.md: Remove redundant constraints from
17735         define_expand.
17736         * config/aarch64/aarch64-simd.md: Likewise.
17738 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
17740         * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
17741         (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
17742         (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
17743         clauses.
17744         (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
17745         DARWIN_NOPIE_SPEC.
17747 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
17749         * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
17750         (STARTFILE_SPEC): Split crt3 into a separate spec.
17751         (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
17752         (DARWIN_CRT2_SPEC): New.
17753         (DARWIN_CRT3_SPEC): New.
17754         (MIN_LD64_OMIT_STUBS): Revise to 62.1.
17755         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
17756         (DARWIN_CRT3_SPEC): New.
17758 2019-07-03  Michael Meissner  <meissner@linux.ibm.com>
17760         * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
17761         Change the RTL attribute "length" from "4" to "*" to allow the
17762         length attribute to be adjusted automatically for prefixed load,
17763         store, and add immediate instructions.
17764         * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
17765         Likewise.
17766         (extendsi<mode>2, EXTSI iterator): Likewise.
17767         (movsi_internal1): Likewise.
17768         (movsi_from_sf): Likewise.
17769         (movdi_from_sf_zero_ext): Likewise.
17770         (mov<mode>_internal): Likewise.
17771         (movcc_internal1, QHI iterator): Likewise.
17772         (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
17773         (movsf_from_si): Likewise.
17774         (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
17775         (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
17776         (mov<mode>, FMOVE128 iterator): Likewise.
17777         (movdi_internal64): Likewise.
17778         * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
17779         Likewise.
17780         (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
17781         (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
17782         (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
17783         (vsx_splat_v4sf): Likewise.
17785 2019-07-03  Mark Wielaard  <mark@klomp.org>
17787         PR debug/90981
17788         * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
17789         DW_AT_addr_base if there is actually a .debug_addr section with
17790         addresses.
17791         (output_addr_table): Add DWARF5 table header generation here after
17792         checking there are actually any addresses from...
17793         (dwarf2out_finish): ...here.
17795 2019-07-03  Richard Biener  <rguenther@suse.de>
17797         PR middle-end/91069
17798         * match.pd (vec_perm -> bit_insert): Fix element read from
17799         first vector.
17801 2019-07-03  Martin Liska  <mliska@suse.cz>
17803         * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
17804         * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
17805         condition.
17806         * generic-match-head.c: Include dbgcnt.h.
17807         * gimple-match-head.c: Likewise.
17809 2019-07-03  Martin Liska  <mliska@suse.cz>
17811         * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
17812         (GCOV_COUNTER_V_TOPN): New.
17813         (GCOV_COUNTER_V_INDIR): Use _topn.
17814         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
17815         (GCOV_TOPN_VALUES): New.
17816         (GCOV_SINGLE_VALUE_COUNTERS): Remove.
17817         (GCOV_TOPN_VALUES_COUNTERS): New.
17818         * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
17819         * tree-profile.c:
17820         (gimple_init_gcov_profiler): Rename variables from one_value
17821         to topn_values.
17822         (gimple_gen_one_value_profiler): Remove.
17823         (gimple_gen_topn_values_profiler): New function.
17824         * value-prof.c (dump_histogram_value): Use TOPN_VALUES
17825         names instead of SINGLE_VALUE.
17826         (stream_out_histogram_value): Likewise.
17827         (stream_in_histogram_value): Likewise.
17828         (get_most_common_single_value): Likewise.
17829         (gimple_divmod_fixed_value_transform): Likewise.
17830         (gimple_stringops_transform): Likewise.
17831         (gimple_divmod_values_to_profile): Likewise.
17832         (gimple_stringops_values_to_profile): Likewise.
17833         (gimple_find_values_to_profile): Likewise.
17834         * value-prof.h (enum hist_type): Rename to TOPN.
17835         (gimple_gen_one_value_profiler): Remove.
17836         (gimple_gen_topn_values_profiler): New.
17838 2019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
17840         * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
17841         if it has the DW_AT_data_member_location attribute.
17843 2019-07-03  Richard Biener  <rguenther@suse.de>
17845         * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
17846         dumping.
17848 2019-07-03  Sylvia Taylor  <sylvia.taylor@arm.com>
17850         * config/aarch64/aarch64.md (FP_REGNUM): New constant.
17851         (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
17852         (tlsdesc_small_sve_<mode>): Likewise.
17854 2019-07-03  Martin Liska  <mliska@suse.cz>
17856         * Makefile.in: Define ZSTD_LIB.
17857         * common.opt: Adjust compression level
17858         to support also zstd levels.
17859         * config.in: Regenerate.
17860         * configure: Likewise.
17861         * configure.ac: Add --with-zstd and --with-zstd-include options
17862         and detect ZSTD.
17863         * doc/install.texi: Mention zstd dependency.
17864         * gcc.c: Print supported LTO compression algorithms.
17865         * lto-compress.c (lto_normalized_zstd_level): Likewise.
17866         (lto_compression_zstd): Likewise.
17867         (lto_uncompression_zstd): Likewise.
17868         (lto_end_compression): Dispatch in between zlib and zstd.
17869         (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
17870         (lto_uncompression_zlib): Make it static.
17871         * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
17872         * lto-section-in.c (lto_get_section_data): Pass info
17873         about used compression.
17874         * lto-streamer-out.c: By default use zstd when possible.
17875         * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
17876         (TV_IPA_LTO_COMPRESS): Likewise for compression.
17878 2019-07-03  Martin Liska  <mliska@suse.cz>
17880         * lto-section-in.c (lto_get_section_data): Add "lto" section.
17881         * lto-section-out.c (lto_destroy_simple_output_block): Never
17882         compress LTO_section_lto section.
17883         * lto-streamer-out.c (produce_asm): Do not set major_version
17884         and minor_version.
17885         (lto_output_toplevel_asms): Likewise.
17886         (produce_lto_section): New function.
17887         (lto_output): Call produce_lto_section.
17888         (lto_write_mode_table): Do not set major_version and
17889         minor_version.
17890         (produce_asm_for_decls): Likewise.
17891         * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
17892         type.
17893         (struct lto_header): Remove.
17894         (struct lto_section): New struct.
17895         (struct lto_simple_header): Do not inherit from lto_header.
17896         (struct lto_file_decl_data): Add lto_section_header field.
17898 2019-07-03  Martin Liska  <mliska@suse.cz>
17900         * lra-eliminations.c (eliminate_regs_in_insn): Remove
17901         dead assignemts.
17902         * reg-stack.c (check_asm_stack_operands): Likewise.
17903         * tree-ssa-structalias.c (create_function_info_for): Likewise.
17904         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
17905         * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
17906         force_expand_binop.
17908 2019-07-03  Martin Liska  <mliska@suse.cz>
17910         PR tree-optimization/90892
17911         * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
17912         in string constants.
17914 2019-07-03  Martin Liska  <mliska@suse.cz>
17916         PR middle-end/90899
17917         * multiple_target.c (create_dispatcher_calls): Add to comdat
17918         group only if set for ifunc.
17920 2019-07-03  Martin Liska  <mliska@suse.cz>
17922         PR target/88056
17923         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
17924         Define local_object_name in outer scope in order to handle
17925         use-after-scope issue.
17927 2019-07-03  Martin Liska  <mliska@suse.cz>
17929         * common.opt: Add fprofile-note.
17930         * coverage.c (coverage_init): Append the option
17931         to bbg_file_name.
17932         * doc/invoke.texi: Document -fprofile-note.
17934 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
17936         PR tree-optimization/91033
17937         * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
17938         vect_analyze_data_refs): Add bool * arguments.
17939         * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
17940         if failure is due to scatter/gather, set *fatal to false if non-NULL.
17941         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
17942         * tree-vect-loop.c (vect_analyze_loop_2): Adjust
17943         vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
17944         * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
17945         vect_analyze_data_refs caller.
17947         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
17948         clause.
17949         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
17950         OMP_CLAUSE__CONDTEMP_ as range's upper bound.
17951         (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
17952         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
17953         OMP_CLAUSE__SCANTEMP_ entry.
17954         (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
17955         * tree-pretty-print.c (dump_omp_clause): Likewise.
17956         * tree-nested.c (convert_nonlocal_omp_clauses,
17957         convert_local_omp_clauses): Likewise.
17958         * omp-general.h (struct omp_for_data): Add have_scantemp and
17959         have_nonctrl_scantemp members.
17960         * omp-general.c (omp_extract_for_data): Initialize them.
17961         * omp-low.c (struct omp_context): Add scan_exclusive member.
17962         (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
17963         result again with GF_OMP_FOR_KIND_MASK.  Initialize also
17964         ctx->scan_exclusive.
17965         (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
17966         of !ctx->scan_inclusive.
17967         (lower_rec_input_clauses): Simplify gimplification of dtors using
17968         gimplify_and_add.  For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
17969         rather than rvarp.  Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
17970         loops.  Don't add barrier for reduction_omp_orig_ref if
17971         ctx->scan_??xclusive.
17972         (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
17973         (lower_omp_scan): Use ctx->scan_exclusive instead
17974         of !ctx->scan_inclusive.  Handle worksharing loops with inscan
17975         reductions.  Use new_vard != new_var instead of repeated
17976         omp_is_reference calls.
17977         (omp_find_scan, lower_omp_for_scan): New functions.
17978         (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
17979         inscan reductions.
17980         * omp-expand.c (expand_omp_scantemp_alloc): New function.
17981         (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
17982         and fd->have_scantemp.
17984         * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
17985         on worksharing loop propagate it as shared clause to containing
17986         combined parallel.
17988         * omp-expand.c (expand_omp_for_static_nochunk,
17989         expand_omp_for_static_chunk): For nowait worksharing loop with
17990         conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
17991         at the end.
17993 2019-07-02  qing zhao  <qing.zhao@oracle.com>
17995         PR preprocessor/90581
17996         * doc/cppopts.texi: Add document for -fmax-include-depth.
17997         * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
17999 2019-07-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
18001         * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
18002         Use TARGET_SSE2 && SSE_REGNO_P in split condition.
18003         (mmx_packssdw): Ditto.
18004         (mmx_punpckhbw): Ditto.
18005         (mmx_punpcklbw): Ditto.
18006         (mmx_punpckhwd): Ditto.
18007         (mmx_punpcklwd): Ditto.
18008         (mmx_punpckhdq): Ditto.
18009         (mmx_punpckldq): Ditto.
18010         (*vec_dupv4hi): Ditto.
18011         (*vec_dupv2si): Ditto.
18012         (mmx_pmovmskb): Ditto.
18013         * config/i386/sse.md (sse_cvtpi2ps): Use
18014         TARGET_SSE2 && SSE_REG_P in split condition.
18015         (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
18016         TARGET_SSSE3 && SSE_REGNO_P in split condition.
18017         (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
18018         (ssse3_pshufbv8qi3): Ditto.
18019         (ssse3_palignrdi): Ditto.
18021 2019-07-02  Andrew Stubbs  <ams@codesourcery.com>
18023         * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
18024         with inlined save and restore.
18026 2019-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18028         * cfgexpand.c (pass_expand::execute): Deal specially with instructions
18029         to be inserted on single successor edge of the entry block.  Then call
18030         commit_edge_insertions instead of inserting the instructions manually.
18031         * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
18032         RTL expansion and rebuild jump labels chain.
18034 2019-07-02  Richard Biener  <rguenther@suse.de>
18036         * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
18037         TI_CHREC_KNOWN.
18038         * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
18039         Define here.
18040         * tree.c (build_common_tree_nodes): Initialize them.
18041         * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
18042         Make declarations comments.
18043         * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
18044         chrec_known): Remove definitions.
18045         (initialize_scalar_evolutions_analyzer): Remove.
18046         (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
18047         * tree-streamer.c (preload_common_nodes): Do not preload
18048         TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
18050 2019-07-02  Jan Hubicka  <jh@suse.cz>
18052         * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
18053         sanity check.
18055 2019-07-02  Jan Hubicka  <jh@suse.cz>
18057         * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
18058         to ..
18059         (nonoverlapping_component_refs_since_match_p): ... this one;
18060         handle also non-decl bases; return -1 if search gave up.
18061         (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
18062         nonoverlapping_component_refs_of_decl_p_no_alias to
18063         nonoverlapping_component_refs_since_match_p_may_alias,
18064         nonoverlapping_component_refs_since_match_p_no_alias.
18065         (dump_alias_stats): Update dumping.
18066         (aliasing_matching_component_refs_p): Break out from ...;
18067         dispatch to nonoverlapping_component_refs_for_decl_p
18068         and nonoverlapping_component_refs_since_match_p.
18069         (aliasing_component_refs_p): ... here; call
18070         nonoverlapping_component_refs_p in scenarios where we can not
18071         precisely determine base match.
18072         (decl_refs_may_alias_p): Use
18073         nonoverlapping_component_refs_since_match_p.
18074         (indirect_ref_may_alias_decl_p): Do not call
18075         nonoverlapping_component_refs_p.
18076         (indirect_refs_may_alias_p): Likewise.
18078 2019-07-02  Jan Hubicka  <jh@suse.cz>
18080         * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
18081         to clobber of return value.
18083 2019-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18085         * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
18086         for is_neon_type instructions that have not already been categorized.
18088 2019-07-02  Richard Biener  <rguenther@suse.de>
18090         PR tree-optimization/58483
18091         * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
18092         for MEM_REF base hashing.
18093         (equal_mem_array_ref_p): Likewise for base comparison.
18095 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18097         * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
18098         parameterized name.
18099         (signbit<mode>2): Use that name.  Simplify.
18101 2019-07-01  Joern Rennecke  <joern.rennecke@riscy-ip.com>
18103         PR middle-end/66726
18104         * tree-ssa-phiopt.c (factor_out_conditional_conversion):
18105         Tune heuristic from PR71016 to allow MIN / MAX.
18107 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18109         * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
18110         parameterized name.
18111         (abs<mode>2): Use that name.  Simplify.
18113 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18115         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
18116         parameterized name.
18117         (neg<mode>2): Use that name.  Simplify.
18119 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18121         * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
18122         name.
18123         (abs<mode>2): Use that name.  Simplify.
18125 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18127         * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
18128         name.
18129         (neg<mode>2): Use that name.  Simplify.
18131 2019-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
18133         * config/i386/i386.md ("isa" attribute): Add sse_noavx.
18134         ("enabled" attribute): Handle sse_noavx isa attribute.
18135         * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
18136         Use TARGET_SSE && SSE_REGNO_P in split condition.
18137         (*vec_dupv2sf): Ditto.
18139 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18141         * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
18142         name.
18143         (floatsi<mode>2): Use that name.  Simplify.
18145 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18147         * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
18148         parameterized name.
18149         (extenddf<mode>2_vsx): Make this a parameterized name.
18150         (extenddf<mode>2): Use those names.  Simplify.
18152 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18154         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
18155         name.
18156         (eh_return): Use that name.  Simplify.
18158 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18160         * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
18161         (doloop_end): Use that name.  Simplify.
18163 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18165         * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
18166         parameterized name.
18167         (indirect_jump): Use that name.  Simplify.
18169 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18171         * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
18172         parameterized name.
18173         (abs<mode>2): Use that name.  Simplify.
18175 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18177         * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
18178         parameterized name.
18179         (fix_trunc<mode>si2): Use that name.  Simplify.
18181 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18183         * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
18184         (allocate_stack): Use that name.  Simplify.
18186 2019-07-01  Martin Sebor  <msebor@redhat.com>
18188         PR middle-end/90923
18189         * hash-map.h (hash_map::put): On insertion invoke element ctor.
18190         (hash_map::get_or_insert): Same.  Reformat comment.
18191         * hash-set.h (hash_set::add): On insertion invoke element ctor.
18192         * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
18193         * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
18194         * hash-table.h (hash_table::operator=): Prevent copy assignment.
18195          (hash_table::hash_table (const hash_table&)): Use copy ctor
18196          instead of assignment to copy elements.
18198 2019-07-01  Wilco Dijkstra  <wdijkstr@arm.com>
18199             John David Anglin  <danglin@gcc.gnu.org>
18201         PR target/90963
18202         * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
18203         using saved frame pointer.
18205 2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>
18207         PR middle-end/64242
18208         * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
18209         Add frame clobber and schedule blockage.
18211 2019-07-01  Sandra Loosemore  <sandra@codesourcery.com>
18213         * doc/invoke.texi (Link Options): Further editorial changes to
18214         -flinker-output docs.
18216 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
18218         * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
18219         Load both operands of a PLUS into registers separately.
18221 2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
18223         * config/s390/vector.md: Fix shift count operand printing.
18225 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
18227         * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
18229 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
18231         * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
18232         Use recog_data to test for an output operand.
18234 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
18236         * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
18237         exclude any others that are disparaged or that are bound to need
18238         a reload or spill.
18239         (ira_get_dup_out_num): Expand comment.
18241 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
18243         * ira.c (ira_setup_alts): Use preprocess_constraints to get the
18244         constraint string for each operand/alternative combo.  Only handle
18245         '%' at the start of constraint strings, and look for it outside
18246         the main loop.
18248 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
18250         * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
18251         alternative_mask instead of HARD_REG_SET to represent a
18252         bitmask of alternatives.
18253         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
18254         * ira-conflicts.c (add_insn_allocno_copies): Likewise.
18256 2019-07-01  Martin Liska  <mliska@suse.cz>
18258         * edit-context.c (test_applying_fixits_unreadable_file): Do not
18259         use () for a constructor call.
18260         (test_applying_fixits_line_out_of_range): Likewise.
18261         * ggc-page.c (alloc_page): Use (void *) for %p printf format
18262         argument.
18263         (free_page): Likewise.
18265 2019-07-01  Vladislav Ivanishin  <vlad@ispras.ru>
18267         * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
18268         parameter names to match usage (no functional change).
18269         (GdbPrettyPrinters.add_printer_for_regex): Ditto.
18271 2019-07-01  Richard Biener  <rguenther@suse.de>
18273         * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
18274         pass parameter.
18275         (pass_fre::execute): Honor it.
18276         * passes.def: Adjust pass_fre invocations to allow iterating,
18277         add non-iterating pass_fre before late threading/dom.
18279 2019-07-01  Richard Biener  <rguenther@suse.de>
18281         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
18282         TARGET_MEM_REF handling to also handle address-taken ones.
18284 2019-07-01  Hongtao Liu  <hongtao.liu@intel.com>
18286         * doc/sourcebuild.texi (Effective-Target Keywords, Other
18287         hardware attributes): Document avx512vp2intersect.
18289 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
18291         * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
18292         (abs<mode>2): New expander.
18293         * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
18294         Use CODE_FOR_ssse3_absv8qi2.
18295         (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
18296         (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
18298 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
18300         * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
18301         to sse, sse_noavx and avx.  Update all uses.
18303 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
18305         * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
18306         (*mmx_<plusminus_insn><mode>3): Ditto.
18307         (*mmx_mulv4hi3"): Ditto.
18308         (*mmx_smulv4hi3_highpart): Ditto.
18309         (*mmx_umulv4hi3_highpart): Ditto.
18310         (*mmx_pmaddwd): Ditto.
18311         (*sse2_umulv1siv1di3): Ditto.
18312         (*mmx_<code>v4hi3): Ditto.
18313         (*mmx_<code>v8qi3): Ditto.
18314         (mmx_ashr<mode>3): Ditto.
18315         ("mmx_<shift_insn><mode>3): Ditto.
18316         (*mmx_eq<mode>3): Ditto.
18317         (mmx_gt<mode>3): Ditto.
18318         (mmx_andnot<mode>3): Ditto.
18319         (*mmx_<code><mode>3): Ditto.
18320         (*mmx_pinsrw): Ditto.
18321         (*mmx_pextrw): Ditto.
18322         (mmx_pshufw_1): Ditto.
18323         (*mmx_uavgv8qi3): Ditto.
18324         (*mmx_uavgv4hi3): Ditto.
18325         ("mmx_psadbw): Ditto.
18326         * config/i386/sse.md (sse_cvtps2pi): Ditto.
18327         (sse_cvttps2pi): Ditto.
18328         (ssse3_pmaddubsw): Ditto.
18329         (*ssse3_pmulhrswv4hi3): Ditto.
18330         (ssse3_psign<mode>3): Ditto.
18332 2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
18334         * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
18335         adjustment for bit-fields to all aggregate types.
18337 2019-06-28   Michael Meissner  <meissner@linux.ibm.com>
18339         * config/rs6000/predicates.md (pcrel_address): Use
18340         SYMBOL_REF_LOCAL_P to determine if a label is local.
18341         (pcrel_external_address): New predicate.
18342         (non_prefixed_mem_operand): Delete, predicate not used.
18343         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
18344         SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
18345         addressing.
18346         (SYMBOL_REF_PCREL_P): Likewise.
18348         PR target/91009
18349         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
18350         alternative.
18351         (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
18352         (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
18353         (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
18355 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
18357         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
18358         override on extra_headers.
18360 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
18362         * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
18363         * config/darwin-driver.c (darwin_default_min_version): Remove newline
18364         from warning.
18365         (darwin_driver_init): Likewise.
18367 2019-06-28  Jan Beulich  <jbeulich@suse.com>
18369         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
18370         vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
18371         Eliminate redundant alternative.
18373 2019-06-28  Jan Beulich  <jbeulich@suse.com>
18375         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
18376         vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
18377         Use vector_operand.
18379 2019-06-28  Claudiu Zissulescu  <claziss@synopsys.com>
18381         * config/arc/arc.c (arc_rtx_costs): All short instructions are
18382         having a lower cost regardless of the speed option.
18384 2019-06-28  Jan Beulich  <jbeulich@suse.com>
18386         * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
18387         vector_operand plus, on both alternatives, "Bm" constraint.
18389 2019-06-28  Dennis Zhang  <dennis.zhang@arm.com>
18391         * config/arm/arm.md: Remove redundant constraints from
18392         define_expand but leave reload_inm and reload_outm patterns
18393         untouched since they need special constraints to work.
18394         * config/arm/arm-fixed.md: Remove redundant constraints from
18395         define_expand.
18396         * config/arm/iwmmxt.md: Likewise.
18397         * config/arm/neon.md: Likewise.
18398         * config/arm/sync.md: Likewise.
18399         * config/arm/thumb1.md: Likewise.
18400         * config/arm/vec-common.md: Likewise.
18402 2019-06-27  Ilia Diachkov  <ilia.diachkov@optimitech.com>
18404         * doc/install.texi: Document --disable-tm-clone-registry.
18406 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
18408         PR c++/91024
18409         * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
18410         statements.
18412         PR tree-optimization/91010
18413         * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
18414         return true.  Otherwise, don't call operand_equal_p if offset1 or
18415         offset2 is NULL and just return false.
18417 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
18419         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
18420         user-specified float mode choice for kernel mode code.
18422 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
18424         * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
18425         spec.
18427 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
18429         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
18430         use longcall for 64b code.
18432 2019-06-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
18434         * builtins.c (get_memory_rtx): Fix comment.
18435         * optabs.def (movmem_optab): Change to cpymem_optab.
18436         * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
18437         (emit_block_move_hints): Change movmem to cpymem.
18438         * defaults.h: Change movmem to cpymem.
18439         * targhooks.c (get_move_ratio): Change movmem to cpymem.
18440         (default_use_by_pieces_infrastructure_p): Ditto.
18441         * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
18442         * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
18443         to cpymem.
18444         * config/aarch64/aarch64.h: Change movmem to cpymem.
18445         * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
18446         * config/alpha/alpha.h: Change movmem to cpymem in comment.
18447         * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
18448         movmem to cpymem.
18449         * config/arc/arc-protos.h: Change movmem to cpymem.
18450         * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
18451         * config/arc/arc.h: Change movmem to cpymem in comment.
18452         * config/arc/arc.md (movmemsi): Change movmem to cpymem.
18453         * config/arm/arm-protos.h: Change movmem to cpymem in names.
18454         * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
18455         gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
18456         * config/arm/arm.md (movmemqi): Change movmem to cpymem.
18457         * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
18458         * config/avr/avr-protos.h: Change movmem to cpymem.
18459         * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
18460         avr_out_movmem): Change movmem to cpymem.
18461         * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
18462         Change movmem to cpymem.
18463         * config/bfin/bfin-protos.h: Change movmem to cpymem.
18464         * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
18465         Change movmem to cpymem.
18466         * config/bfin/bfin.h: Change movmem to cpymem in comment.
18467         * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
18468         * config/c6x/c6x-protos.h: Change movmem to cpymem.
18469         * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
18470         * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
18471         * config/frv/frv.md (movmemsi): Change name to cpymemsi.
18472         * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
18473         * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
18474         * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
18475         expand_set_or_movmem_via_rep, expand_movmem_epilogue,
18476         expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
18477         expand_small_cpymem_or_setmem,
18478         expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
18479         expand_set_or_cpymem_constant_prologue,
18480         ix86_expand_set_or_cpymem): Change movmem to cpymem.
18481         * config/i386/i386-protos.h: Change movmem to cpymem.
18482         * config/i386/i386.h: Change movmem to cpymem in comment.
18483         * config/i386/i386.md (movmem<mode>): Change name to cpymem.
18484         (setmem<mode>): Change expansion function name.
18485         * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
18486         * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
18487         movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
18488         * config/m32c/m32c-protos.h: Change movmem to cpymem.
18489         * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
18490         * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
18491         * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
18492         to cpymem.
18493         * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
18494         * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
18495         * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
18496         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
18497         Change movmem to cpymem.
18498         * config/mips/mips.h: Change movmem to cpymem.
18499         * config/mips/mips.md (movmemsi): Change name to cpymemsi.
18500         * config/nds32/nds32-memory-manipulation.c
18501         (nds32_expand_movmemsi_loop_unknown_size,
18502         nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
18503         nds32_expand_movmemsi_unroll,
18504         nds32_expand_movmemsi): Change movmem to cpymem.
18505         * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
18506         * config/nds32/nds32-protos.h: Change movmem to cpymem.
18507         * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
18508         (pa_adjust_insn_length): Change call to compute_movmem_length.
18509         * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
18510         movmemdi, movmemdi_prereload,
18511         movmemdi_postreload): Change movmem to cpymem.
18512         * config/pdp11/pdp11.md (movmemhi, movmemhi1,
18513         movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
18514         * config/riscv/riscv.c: Change movmem to cpymem in comment.
18515         * config/riscv/riscv.h: Change movmem to cpymem.
18516         * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
18517         * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
18518         * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
18519         movmem to cpymem.
18520         * config/s390/s390-protos.h: Change movmem to cpymem.
18521         * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
18522         s390_expand_insv): Change movmem to cpymem.
18523         * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
18524         movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
18525         * config/sh/sh.md (movmemsi): Change name to cpymemsi.
18526         * config/sparc/sparc.h: Change movmem to cpymem in comment.
18527         * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
18528         for nonexistent function.
18529         * config/vax/vax.h: Change movmem to cpymem in comment.
18530         * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
18531         * config/visium/visium.h: Change movmem to cpymem in comment.
18532         * config/visium/visium.md (movmemsi): Change name to cpymemsi.
18533         * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
18534         * doc/md.texi: Change movmem to cpymem and update description to match.
18535         * doc/rtl.texi: Change movmem to cpymem.
18536         * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
18537         * doc/tm.texi: Regenerate.
18539 2019-06-27  Bill Schmidt  <wschmidt@linux.ibm.com>
18541         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
18542         -fvariable-expansion-in-unroller by default.
18543         * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
18544         default for Power.
18546 2019-06-27  David Edelsohn  <dje.gcc@gmail.com>
18548         Revert
18549         2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
18550         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
18552         * config.gcc(rs6000-*-*): Define target_gtfiles.
18554 2019-06-27  Jan Hubicka  <jh@suse.cz>
18556         * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
18557         (add_type_duplicate): When odr hash is not allocated, to nothing.
18558         (odr_based_tbaa_p): New function.
18559         (set_type_canonical_for_odr_type): New function.
18560         * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
18561         set_type_canonical_for_odr_type): New.
18562         * tree.c (gimple_canonical_types_compatible_p): ODR types with
18563         ODR based TBAA are not equivalent to non-ODR types.
18565 2019-06-27  Martin Liska  <mliska@suse.cz>
18567         PR tree-optimization/90974
18568         PR rtl-optimization/90975
18569         PR rtl-optimization/90976
18570         PR target/91016
18571         PR tree-optimization/91017
18572         * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
18573         unused tmp.
18574         * lra.c (lra_set_insn_recog_data): Remove a leftover from
18575         initial commit of IRA.
18576         * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
18577         of op0 and op1.
18578         * tree-vect-loop.c (vect_create_epilog_for_reduction):
18579         Remove unused mode1.
18580         * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
18581         to new_stmt_info.
18583 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
18585         PR target/90991
18586         * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
18587         instead of register_operand for operands[1], add m to its constraints
18588         if operands[2] uses "C" constraint.  Ensure in condition that if
18589         operands[2] is not 0, then operands[1] is not a MEM.  For last two
18590         alternatives, use unaligned loads instead of aligned if operands[1] is
18591         misaligned_operand.
18593 2019-06-27  Martin Liska  <mliska@suse.cz>
18595         * asan.c (asan_emit_allocas_unpoison): Remove obviously
18596         dead assignments.
18597         * bt-load.c (move_btr_def): Likewise.
18598         * builtins.c (expand_builtin_apply_args_1): Likewise.
18599         (expand_builtin_apply): Likewise.
18600         * cfgexpand.c (expand_asm_stmt): Likewise.
18601         (construct_init_block): Likewise.
18602         * cfghooks.c (verify_flow_info): Likewise.
18603         * cfgloopmanip.c (remove_path): Likewise.
18604         * cfgrtl.c (rtl_verify_bb_layout): Likewise.
18605         * cgraph.c (cgraph_node::set_pure_flag): Likewise.
18606         * combine.c (simplify_if_then_else): Likewise.
18607         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
18608         (choose_basereg): Likewise.
18609         (ix86_expand_prologue): Likewise.
18610         (ix86_preferred_output_reload_class): Likewise.
18611         * cselib.c (cselib_record_sets): Likewise.
18612         * df-scan.c (df_scan_alloc): Likewise.
18613         * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
18614         * early-remat.c (early_remat::record_equiv_candidates): Likewise.
18615         * emit-rtl.c (try_split): Likewise.
18616         * graphite-scop-detection.c (assign_parameter_index_in_region):
18617         Likewise.
18618         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
18619         * ira-color.c (setup_profitable_hard_regs): Likewise.
18620         * ira.c (rtx_moveable_p): Likewise.
18621         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
18622         * read-rtl.c (read_subst_mapping): Likewise.
18623         * regrename.c (scan_rtx): Likewise.
18624         * reorg.c (fill_slots_from_thread): Likewise.
18625         * tree-inline.c (tree_function_versioning): Likewise.
18626         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
18627         * tree-ssa-sink.c (statement_sink_location): Likewise.
18628         * tree-ssa-threadedge.c (thread_across_edge): Likewise.
18629         * tree-vect-loop.c (vect_get_loop_niters): Likewise.
18630         (vect_create_epilog_for_reduction): Likewise.
18631         * tree.c (build_nonstandard_integer_type): Likewise.
18633 2019-06-27  Richard Biener  <rguenther@suse.de>
18635         * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
18637 2019-06-27  Jun Ma  <JunMa@linux.alibaba.com>
18639         PR tree-optimization/89772
18640         * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
18641         out-of-bound accesses checking.
18643 2019-06-27  Martin Liska  <mliska@suse.cz>
18645         PR tree-optimization/91014
18646         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
18647         when LHS is NULL_TREE.
18649 2019-06-27  Martin Liska  <mliska@suse.cz>
18651         * symbol-summary.h (traverse): Pass
18652         argument a to the call of callback.
18653         (gt_ggc_mx): Mark arguments as unused.
18654         (gt_pch_nx): Likewise.
18656 2019-06-27  Kewen Lin  <linkw@gcc.gnu.org>
18658         PR target/62147
18659         * loop-iv.c (find_simple_exit): Call finite_loop_p to update
18660         finiteness.
18662 2019-06-26  Jeff Law  <law@redhat.com>
18664         PR tree-optimization/90883
18665         * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
18666         (delete_dead_or_redundant_assignment): Likewise.
18668         PR tree-optimization/90883
18669         * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
18670         * tree-ssa-dse.c: Update various comments to distinguish between
18671         dead and redundant stores.
18672         (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
18673         (dse_optimize_redundant_stores): New function.
18674         (delete_dead_or_redundant_call): Renamed from delete_dead_call.
18675         Distinguish between dead and redundant calls in dump output.  All
18676         callers updated.
18677         (delete_dead_or_redundant_assignment): Similarly for assignments.
18678         (dse_optimize_stmt): Handle _CHK variants.  For statements which
18679         store 0 into multiple memory locations, try to prove a subsequent
18680         store is redundant.
18682 2019-06-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
18684         PR target/89021
18685         * config/i386/i386.c (ix86_autovectorize_vector_sizes):
18686         Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
18688 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
18690         * config/rs6000/rs6000-internal.h (branch_island): New typedef.
18691         (branch_islands): New extern.
18692         * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
18693         * config/rs6000/rs6000.c: .. here.
18695 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
18697         * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
18698         (powerpc*-*-*) ... to here.
18700 2019-06-26  Jeff Law  <law@redhat.com>
18702         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
18703         memcpy, memmove and memset builtins.
18704         (maybe_trim_memstar_call): Likewise.
18706 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
18708         * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
18710 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
18712         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
18714 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
18716         * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
18717         declaration.
18718         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
18719         "static".
18720         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
18721         declaration.
18723 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
18725         * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
18727 2019-06-26  Richard Biener  <rguenther@suse.de>
18729         PR ipa/90982
18730         * tree-inline.c (remap_ssa_name): Copy SSA range info.
18732 2019-06-26  Richard Biener  <rguenther@suse.de>
18734         * lto-streamer.h (lto_bitmap_alloc): Remove.
18735         (lto_bitmap_free): Likewise.
18736         * lto-streamer.c (lto_bitmap_alloc): Remove.
18737         (lto_bitmap_free): Likewise.
18738         (lto_obstack): Likewise.
18739         (lto_obstack_initialized): Likewise.
18740         * lto-streamer-out.c (lto_output): Use own obstack for local
18741         bitmap, free it consistently.
18743 2019-06-26  Jakub Jelinek  <jakub@redhat.com>
18745         PR target/90991
18746         * config/i386/sse.md
18747         (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
18748         vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
18749         insns if operands[2] is misaligned_operand.
18751 2019-06-26  Li Jia He  <helijia@linux.ibm.com>
18753         * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
18754         TARGET_POWERPC64.
18755         * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
18756         to GPR.
18758 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
18760         * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
18762 2019-06-26  Martin Liska  <mliska@suse.cz>
18764         PR tree-optimization/90973
18765         * tree-vect-loop.c (vect_get_known_peeling_cost): Use
18766         epilogue_cost_vec instead of prologue_cost_vec for
18767         a epilogue cost.
18769 2019-06-26  Martin Liska  <mliska@suse.cz>
18771         * bb-reorder.c (connect_better_edge_p): Add missing else
18772         statement in the middle of if-else statements.
18774 2019-06-25  Hongtao Liu  <hongtao.liu@intel.com>
18775             H.J. Lu  <hongjiu.lu@intel.com>
18776             Olga Makhotina  <olga.makhotina@intel.com>
18778         * common/config/i386/i386-common.c
18779         (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
18780         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
18781         (OPTION_MASK_ISA2_AVX512F_UNSET): Add
18782         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
18783         (ix86_handle_option): Handle -mavx512vp2intersect.
18784         * config/i386/avx512vp2intersectintrin.h: New.
18785         * config/i386/avx512vp2intersectvlintrin.h: New.
18786         * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
18787         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
18788         AVX512VP2INTERSECT.
18789         * config/i386/i386-builtin-types.def: Add new types.
18790         * config/i386/i386-builtin.def: Add new builtins.
18791         * config/i386/i386-builtins.c: (enum processor_features): Add
18792         F_AVX512VP2INTERSECT.
18793         (static const _isa_names_table isa_names_table): Ditto.
18794         * config/i386/i386-c.c (ix86_target_macros_internal): Define
18795         __AVX512VP2INTERSECT__.
18796         * config/i386/i386-expand.c (ix86_expand_builtin): Expand
18797         IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
18798         IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
18799         IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
18800         * config/i386/i386-modes.def (P2QI, P2HI): New modes.
18801         * config/i386/i386-options.c (ix86_target_string): Add
18802         -mavx512vp2intersect.
18803         (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
18804         * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
18805         P2HImode and P2QImode.
18806         (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
18807         number for P2QImode and P2HImode.
18808         (ix86_regmode_natural_size): New function.
18809         * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
18810         TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
18811         REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
18812         * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
18813         * config/i386/i386.opt: Add -mavx512vp2intersect.
18814         * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
18815         avx512vp2intersectvlintrin.h.
18816         * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
18817         (define_mode_iterator VI48_AVX512VP2VL): New.
18818         (avx512vp2intersect_2intersect<mode>,
18819         avx512vp2intersect_2intersectv16si): New define_insn patterns.
18820         * config.gcc: Add avx512vp2intersectvlintrin.h and
18821         avx512vp2intersectintrin.h to extra_headers.
18822         * doc/invoke.texi: Document -mavx512vp2intersect.
18824 2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
18826         * config/rs6000/darwin.h (ENDFILE_SPEC): New.
18828 2019-06-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
18830         * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
18831         savres_routine_syms, savres_routine_name, morestack_ref,
18832         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
18833         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
18834         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
18835         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
18836         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
18837         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
18838         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
18839         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
18840         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
18841         get_stack_clash_protection_probe_interval,
18842         get_stack_clash_protection_guard_size,
18843         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
18844         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
18845         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
18846         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
18847         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
18848         gen_frame_mem_offset, rs6000_savres_routine_name,
18849         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
18850         ptr_regno_for_savres, rs6000_emit_savres_rtx,
18851         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
18852         rs6000_global_entry_point_prologue_needed_p,
18853         rs6000_get_separate_components, rs6000_components_for_bb,
18854         rs6000_disqualify_components, rs6000_emit_prologue_components,
18855         rs6000_emit_epilogue_components, rs6000_set_handled_components,
18856         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
18857         rs6000_output_savres_externs, rs6000_output_function_prologue,
18858         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
18859         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
18860         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
18861         rs6000_output_function_epilogue, gen_add3_const,
18862         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
18863         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
18864         to rs6000-logue.c.
18865         (machine_function): Moved to rs6000.h.
18866         (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
18867         rs6000-internal.h.
18868         * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
18869         savres_routine_syms, savres_routine_name, morestack_ref,
18870         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
18871         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
18872         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
18873         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
18874         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
18875         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
18876         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
18877         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
18878         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
18879         get_stack_clash_protection_probe_interval,
18880         get_stack_clash_protection_guard_size,
18881         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
18882         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
18883         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
18884         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
18885         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
18886         gen_frame_mem_offset, rs6000_savres_routine_name,
18887         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
18888         ptr_regno_for_savres, rs6000_emit_savres_rtx,
18889         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
18890         rs6000_global_entry_point_prologue_needed_p,
18891         rs6000_get_separate_components, rs6000_components_for_bb,
18892         rs6000_disqualify_components, rs6000_emit_prologue_components,
18893         rs6000_emit_epilogue_components, rs6000_set_handled_components,
18894         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
18895         rs6000_output_savres_externs, rs6000_output_function_prologue,
18896         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
18897         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
18898         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
18899         rs6000_output_function_epilogue, gen_add3_const,
18900         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
18901         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
18902         to here from rs6000.c.
18903         * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
18904         * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
18905         quad_address_offset_p) Moved to here from rs6000.c.
18906         * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
18907         * config/config.gcc: Add new source file rs6000-logue.c to garbage
18908         collector.
18910 2019-06-25  Martin Liska  <mliska@suse.cz>
18912         * hash-table.c (hashtab_chk_error): Move here from ...
18913         * hash-table.h (hashtab_chk_error): ... here.
18915 2019-06-25  Martin Liska  <mliska@suse.cz>
18917         PR tree-optimization/90978
18918         * df-scan.c (df_update_entry_block_defs): Remove dead else
18919         branch.
18920         (df_update_exit_block_uses): Likewise.
18922 2019-06-25  Kwok Cheung Yeung  <kcy@codesourcery.com>
18923             Andrew Stubbs  <ams@codesourcery.com>
18925         * config.gcc (thread_file): Set to gcn for AMD GCN.
18926         * config/gcn/gcn.c (gcn_emutls_var_init): New function.
18927         (TARGET_EMUTLS_VAR_INIT): New hook.
18929 2019-06-25  Martin Jambor  <mjambor@suse.cz>
18931         PR ipa/90939
18932         * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
18934 2019-06-25  Richard Biener  <rguenther@suse.de>
18936         PR tree-optimization/90930
18937         * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
18938         into parallel form in the last pass instance.
18940 2019-06-25  Claudiu Zissulescu  <claziss@synopsys.com>
18942         * config/arc/arc.c (arc_symbol_binds_local_p): New function.
18943         (arc_legitimize_pic_address): Simplify and cleanup the function.
18944         (SYMBOLIC_CONST): Remove.
18945         (prepare_pic_move): Likewise.
18946         (prepare_move_operands): Handle complex mov cases here.
18947         (arc_legitimize_address_0): Remove call to
18948         arc_legitimize_pic_address.
18949         (arc_legitimize_address): Remove call to
18950         arc_legitimize_tls_address.
18951         * config/arc/arc.md (movqi_insn): Allow Cm3 match.
18952         (movhi_insn): Likewise.
18954 2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
18956         * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
18957         PTRDIFF_TYPE.
18958         * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
18959         format of "__intN" types for UINTMAX_TYPE.
18960         * stor-layout.c (initialize_sizetypes): Accept "__intN__"
18961         format of "__intN" types for SIZETYPE.
18962         * tree.c (build_common_tree_nodes): Accept "__intN__"
18963         format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
18964         * doc/invoke.texi: Document that __intN__ disables pedantic
18965         warnings.
18967 2019-06-25  Jan Hubicka  <jh@suse.cz>
18969         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
18970         base2_alias_set is non-zero before doing TBAA based disambiguation.
18972 2019-06-25  Martin Liska  <mliska@suse.cz>
18974         PR tree-optimization/90973
18975         * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
18976         of prologue and epilogue.
18978 2019-06-24  Jan Hubicka  <jh@suse.cz>
18980         * ipa-utils.h (type_with_linkage_p): Verify that type is
18981         CXX_ODR_P.
18982         (odr_type_p): Remove extra return.
18983         * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
18984         hash STRING_FLAG only for arrays and integers.
18985         * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
18986         Update analogously.
18987         * tree-streamer-out.c (pack_ts_type_common_value_fields):
18988         Likewise.
18989         * print-tree.c (print_node): Print cxx-odr-p
18990         and string-flag.
18991         * tree.c (need_assembler_name_p): Also check that type
18992         is CXX_ODR_TYPE_P
18993         (verify_type_variant): Update verification of SRING_FLAG;
18994         also check CXX_ODR_P.
18995         * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
18996         (TYPE_STRING_FLAG): Use it.
18997         (TYPE_CXX_ODR_P): New macro.
18998         * dwarf2out.c (gen_array_type_die): First check that type
18999         is an array and then test string flag.
19001 2019-06-24  Richard Biener  <rguenther@suse.de>
19003         PR tree-optimization/90972
19004         * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
19005         in common code, dealing with STRING_CST properly.
19007 2019-06-24  Richard Biener  <rguenther@suse.de>
19009         PR tree-optimization/90930
19010         PR tree-optimization/90316
19011         * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
19012         decrement of limit.
19014 2019-06-24  Martin Sebor  <msebor@redhat.com>
19016         * tree-pretty-print.h: Remove unnecessary punctuation characters
19017         from a diagnostic.
19018         * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
19020 2019-06-24  Jonathan Wakely  <jwakely@redhat.com>
19022         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
19023         (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
19024         (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
19026 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
19028         * config/rs6000/darwin.h: Handle GCC target pragma.
19030 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
19032         * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
19034 2019-06-22  Jeff Law  <law@redhat.com>
19036         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19038 2019-06-22  Jan Hubicka  <jh@suse.cz>
19040         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
19041         give up on bitfields; continue searching for different refs
19042         appearing later.
19044 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
19046         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
19047         even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
19048         containing the offset as possible simd lane access.  Look through
19049         widening conversion.  Move the
19050         TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
19052 2019-06-21  Richard Biener  <rguenther@suse.de>
19054         PR tree-optimization/90930
19055         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
19056         flag on new stmts to avoid re-processing them.
19058 2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>
19060         PR c++/90875 - added -Wswitch-outside-range option
19061         * doc/invoke.texi (Wswitch-outside-range): Document.
19063 2019-06-21  Jeff Law  <law@redhat.com>
19065         PR tree-optimization/90949
19066         * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
19067         * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
19069 2019-06-21  Richard Biener  <rguenther@suse.de>
19071         PR debug/90914
19072         * dwarf2out.c (prune_unused_types_walk): Always consider
19073         function-local extern declarations as used.
19075 2019-06-21  Richard Biener  <rguenther@suse.de>
19077         PR tree-optimization/90913
19078         * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
19079         the scalar variant of if-conversion versioning.
19081 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
19083         * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
19084         create another "omp scan inscan exclusive" array if
19085         !ctx->scan_inclusive.
19086         (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
19087         (lower_omp_scan): Likewise.
19088         * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
19089         2-bit bitfield for simd_lane_access_p member.
19090         * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
19091         aux == (void *)-4 as simd lane access.
19092         * tree-vect-stmts.c (check_scan_store): Handle exclusive scan.  Update
19093         comment with permutations to show the canonical permutation order.
19094         (vectorizable_scan_store): Handle exclusive scan.
19095         (vectorizable_store): Call vectorizable_scan_store even for
19096         STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
19098         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
19099         "omp simd array" arrays with one byte elements.
19101 2019-06-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19103         * config/alpha/alpha.md (@unaligned_store<mode>):
19104         Rename from unaligned_store<mode>.
19105         (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
19106         * config/alpha/sync.md (@load_locked_<mode>): Rename
19107         from load_locked_<mode>.
19108         (@store_conditional_<mode>): Rename from store_conditional_<mode>.
19109         (@atomic_compare_and_swap<mode>_1): Rename
19110         from atomic_compare_and_swap<mode>_1.
19111         (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
19112         * config/alpha/alpha.c (alpha_expand_mov_nobwx):
19113         Use gen_reload_in_aligned and gen_unaligned_store.
19114         (emit_load_locked): Remove.
19115         (emit_store_conditional): Ditto.
19116         (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
19117         (alpha_split_compare_and_swap): Ditto.
19118         (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
19119         (alpha_split_compare_and_swap_12): Use gen_load_locked
19120         and gen_store_conditional.
19121         (alpha_split_atomic_exchange): Ditto.
19122         (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
19123         (alpha_split_atomic_exchange_12): Use gen_load_locked
19124         and gen_store_conditional.
19126 2019-06-20  Richard Earnshaw  <rearnsha@arm.com>
19128         * config/aarch64/aarch64-errata.h: New file.
19129         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
19130         (CA53_ERR_843419_SPEC): Delete.
19131         (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
19132         * config/aarch64/aarch64-linux.h: Likewise.
19133         * config/aarch64/aarch64-netbsd.h: Likewise.
19134         * config/aarch64/aarch64-freebsd.h: Likewise.
19136 2019-06-20  Marek Polacek  <polacek@redhat.com>
19138         * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
19140 2019-06-20  Michael Meissner  <meissner@linux.ibm.com>
19142         * config/rs6000/rs6000.md (isa attribute): Add support for
19143         for a future processor.
19145 2019-06-20  H.J. Lu  <hongjiu.lu@intel.com>
19147         PR target/54855
19148         * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
19149         standard scalar operation pattern for V2DF.
19150         * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
19151         (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
19152         (*ieee_<ieee_maxmin><mode>3): Likewise.
19153         (vec_setv2df_0): Likewise.
19155 2019-06-20  Jan Hubicka  <jh@suse.cz>
19157         * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
19158         parameter; it has no use in gimple memory model.
19159         (indirect_ref_may_alias_decl_p): Update.
19161 2019-06-20  Martin Liska  <mliska@suse.cz>
19163         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
19164         to 10.
19166 2019-06-20  Jakub Jelinek  <jakub@redhat.com>
19168         * tree-vect-stmts.c (enum scan_store_kind): New type.
19169         (scan_store_can_perm_p): Change last argument from int * to
19170         vec<enum scan_store_kind> *, record precisely which permutations
19171         need whole vector left shift or that plus VEC_COND_EXPR.
19172         (vectorizable_scan_store): Adjust caller, use whole vector left shift
19173         and additional VEC_COND_EXPR only for those iterations that need it.
19175 2019-06-20  Alexandre Oliva  <oliva@adacore.com>
19177         * config.gcc: Fix ARM --with-fpu checking and error message.
19179 2019-06-19  Marek Polacek  <polacek@redhat.com>
19181         PR c++/60364 - noreturn after first decl not diagnosed.
19182         * attribs.c (get_attribute_namespace): No longer static.
19183         (decl_attributes): Avoid shadowing.  Preserve the C++11 form for C++11
19184         attributes.
19185         (attr_noreturn_exclusions): Make it extern.
19186         * attribs.h (get_attribute_namespace): Declare.
19187         * tree-inline.c (function_attribute_inlinable_p): Use
19188         get_attribute_name.
19190 2019-06-19  Martin Sebor  <msebor@redhat.com>
19192         PR tree-optimization/90626
19193         * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
19195         PR tree-optimization/90626
19196         * tree-ssa-strlen.c (strxcmp_unequal): New function.
19197         (handle_builtin_string_cmp): Call it.
19199 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
19201         * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
19202         and DARWIN_NOPIE_SPEC.
19203         (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
19204         (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
19205         (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
19206         (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
19207         (DARWIN_EXPORT_DYNAMIC): Delete.
19208         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
19209         and pie options processing to  darwin.h.
19210         * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
19212 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
19214         * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
19215         in computing the number of options to be moved.
19217 2019-06-19  Maya Rashish  <coypu@sdf.org>
19219         *  config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
19220         (CLEAR_INSN_CACHE) Use it.
19222 2019-06-19  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19224         * config/i386/i386.md (cmpstrnsi): Remove dead code.
19226 2019-06-19  Wilco Dijkstra  <wdijkstr@arm.com>
19228         PR middle-end/84521
19229         * builtins.c (expand_builtin_setjmp_setup): Save
19230         hard_frame_pointer_rtx.
19231         (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
19232         restore fp.
19233         * function.c (expand_function_start): Save hard_frame_pointer_rtx for
19234         non-local goto.
19235         * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
19236         elimination code.
19237         (remove_reg_equal_offset_note): Remove unused function.
19238         * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
19239         code.
19240         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19241         (arc_builtin_setjmp_frame_value): Remove function.
19242         * config/avr/avr.c  (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19243         (avr_builtin_setjmp_frame_value): Remove function.
19244         * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19245         (ix86_builtin_setjmp_frame_value): Remove function.
19246         * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
19247         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19248         (sparc_builtin_setjmp_frame_value): Remove function.
19249         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
19250         (vax_builtin_setjmp_frame_value): Remove function.
19251         * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
19252         pointer if has_nonlocal_label.
19254 2019-06-19  Jakub Jelinek  <jakub@redhat.com>
19256         * doc/md.texi: Document vec_shl_<mode> pattern.
19257         * optabs.def (vec_shl_optab): New optab.
19258         * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
19259         argument, if == vec_shl_optab, check for left whole vector shift
19260         pattern rather than right shift.
19261         (expand_vec_perm_const): Add vec_shl_optab support.
19262         * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
19263         in the comment.
19264         * tree-vect-generic.c (lower_vec_perm): Support permutations which
19265         can be handled by vec_shl_optab.
19266         * tree-vect-stmts.c (scan_store_can_perm_p): New function.
19267         (check_scan_store): Use it.
19268         (vectorizable_scan_store): If target can't do normal permutations,
19269         try to use whole vector left shifts and if needed a VEC_COND_EXPR
19270         after it.
19271         * config/i386/sse.md (vec_shl_<mode>): New expander.
19273         * omp-low.c (lower_rec_input_clauses): Handle references properly
19274         in inscan clauses.
19275         (lower_omp_scan): Likewise.
19277 2019-06-19  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
19279         * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
19280         mem_mode is BLKmode.
19282 2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
19284         PR target/90922
19285         * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
19286         pointer adjustment for the case of no callee-saved registers and
19287         stack frame bigger than 128 bytes.
19289 2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
19291         PR middle-end/90862
19292         * omp-low.c (check_omp_nesting_restrictions): Handle
19293         GF_OMP_TARGET_KIND_OACC_DECLARE.
19295 2019-06-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19297         * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
19298         (@add<mode>3_carry): Rename from add<mode>3_carry.
19299         (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
19300         (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
19301         (@copysign<mode>3_const): Rename from copysign<mode>3_const.
19302         (@copysign<mode>3_var): Rename from copysign<mode>3_var.
19303         (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
19304         (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
19305         (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
19306         (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
19307         (cmpstrnsi): Use gen_cmp_1.
19308         (lwp_slwpcb): Use gen_lwp_slwpcb_1.
19309         (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
19310         (@umonitor_<mode>): Rename from umonitor_<mode>.
19311         * config/i386/i386-expand.c (ix86_expand_copysign):
19312         Use gen_copysign3_const and gen_copysign3_var.
19313         (ix86_expand_xorsign): Use gen_xorsign3_1.
19314         (ix86_expand_branch): Use gen_sub3_carry_ccc,
19315         gen_sub3_carry_ccgz and gen_cmp1.
19316         (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
19317         (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
19318         (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
19319         (ix86_split_lshr): Ditto.
19320         (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
19322 2019-06-18  Jason Merrill  <jason@redhat.com>
19324         * tree.c (build_constructor): Add MEM_STAT_DECL.
19326 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
19328         * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
19329         * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
19330         (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
19331         (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
19332         (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
19333         (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
19334         (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
19335         Use CC_NZC instead of CC.
19336         * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
19337         * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
19338         (aarch64_print_operand): Handle E_CC_NZCmode.
19339         (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
19340         of gen_set_clobber_cc.
19342 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
19344         * config/aarch64/aarch64-sve.md: Tabify file.
19346 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
19348         * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
19349         * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
19350         * config/aarch64/aarch64-sve.md: Use it.
19352 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
19354         * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
19355         * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
19356         (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
19357         (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
19358         (aarch64_expand_sve_vec_cmp_int): Use it.
19359         (aarch64_expand_sve_vec_cmp_float): Likewise.
19360         * config/aarch64/aarch64-sve.md: Likewise throughout.
19362 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
19363             Kugan Vivekanandarajah  <kuganv@linaro.org>
19365         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
19366         (*cond_<optab><mode>_z): Fold into...
19367         (*cond_<optab><mode>_any): ...here.  Also handle cases in which
19368         operand 4 can be tied to operand 0 (either inherently or via RA).
19370 2019-06-18  Richard Biener  <rguenther@suse.de>
19372         PR debug/90900
19373         * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
19374         as if optimized away.
19376 2019-06-18  Tom de Vries  <tdevries@suse.de>
19378         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
19379         * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
19380         * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
19381         Rename to ...
19382         (define_insn "@set_softstack_<mode>"): ... this.
19383         (define_insn "omp_simt_enter_<mode>"): Rename to ...
19384         (define_insn "@omp_simt_enter_<mode>"): ... this.
19385         (define_insn "omp_simt_exit_<mode>"): Rename to ...
19386         (define_insn "@omp_simt_exit_<mode>"): ... this.
19388 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
19390         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
19391         vf parameter.  Restore the previous iv step of nscalars_step,
19392         but give it iv_type rather than compare_type.  Tweak code order
19393         to match the comments.
19394         (vect_set_loop_condition_masked): Update accordingly.
19395         * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
19396         for iv_precision.  Tweak comment formatting.
19398 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
19400         * config/darwin.c: Strip trailing whitespace.
19402 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
19404         * config/darwin.c (darwin_emit_unwind_label): New default to false.
19405         (darwin_override_options): Set darwin_emit_unwind_label as needed.
19407 2019-06-18  Martin Jambor  <mjambor@suse.cz>
19409         PR ipa/90889
19410         * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
19411         caller does not have flag_ipa_cp set.
19413 2019-06-18  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
19415         * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
19416         from "*fold_left_plus_<mode>", updated operands order.
19417         * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
19418         * internal-fn.c (mask_fold_left_direct): New define.
19419         (expand_mask_fold_left_optab_fn): Likewise.
19420         (direct_mask_fold_left_optab_supported_p): Likewise.
19421         * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
19422         * optabs.def (mask_fold_left_plus_optab): New optab.
19423         * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
19424         masked internal_fn for a reduction ifn.
19425         (vectorize_fold_left_reduction): Add support for masking reductions.
19427 2019-06-18  Kewen Lin  <linkw@gcc.gnu.org>
19429         PR middle-end/80791
19430         * target.def (predict_doloop_p): New hook.
19431         * targhooks.h (default_predict_doloop_p): New declaration.
19432         * targhooks.c (default_predict_doloop_p): New function.
19433         * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
19434         * doc/tm.texi: Regenerate.
19435         * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
19436         (TARGET_PREDICT_DOLOOP_P): New macro.
19437         * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
19439 2019-06-17  Jakub Jelinek  <jakub@redhat.com>
19441         * omp-low.c (struct omp_context): Add scan_inclusive field.
19442         (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
19443         if inclusive scan.
19444         (struct omplow_simd_context): Add lastlane member.
19445         (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
19446         reductions.  Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
19447         1 or 2 argument.
19448         (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
19449         (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
19450         (lower_omp_scan): New function.
19451         (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
19452         * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
19453         check 3rd argument if present rather than 2nd.
19454         * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
19455         (struct _stmt_vec_info): Change simd_lane_access_p from bool into
19456         2-bit bitfield.
19457         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
19458         scan_map.  For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
19459         than 2nd.
19460         (_loop_vec_info::~_loop_vec_info): Delete scan_map.
19461         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
19462         different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
19463         init.
19464         (vect_find_stmt_data_reference): Encode in ->aux the 2nd
19465         IFN_GOMP_SIMD_LANE argument.
19466         (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
19467         encoded ->aux value.
19468         * tree-vect-stmts.c: Include attribs.h.
19469         (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
19470         (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
19471         functions.
19472         (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
19473         (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
19475 2019-06-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19477         PR target/62055
19478         * config/i386/i386.md (*nabstf2_1): New insn pattern.
19479         (*nabs<mode>2_1): Ditto.
19480         (nabs sse-reg splitter): New splitter.
19481         * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
19483 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
19485         PR bootstrap/90873.
19486         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
19487         TMR index check.
19489 2019-06-17  Tom de Vries  <tdevries@suse.de>
19491         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
19492         * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
19493         * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
19494         ...
19495         (define_insn "set_softstack_<mode>"): ... this.  Use P iterator on
19496         match_operand 0.
19497         (define_insn "omp_simt_enter_insn"): Rename to ...
19498         (define_insn "omp_simt_enter_<mode>"): ... this.  Use P iterator on
19499         match_operand 0, 1 and 2, as well as the unspec_volatile result.
19500         (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
19501         gen_omp_simt_enter_si.
19502         (define_expand "omp_simt_exit"): New.
19503         (define_insn "omp_simt_exit"): Rename to ...
19504         (define_insn "omp_simt_exit_<mode>"): ... this.  Use P iterator on
19505         match_operand 0.
19507 2019-06-17  Matthew Green  <mrg@eterna.com.au>
19508             Maya Rashish  <coypu@sdf.org>
19510         * config.gcc (aarch64*-*-netbsd*): New target.
19511         * config/aarch64/aarch64-netbsd.h: New file.
19512         * config/aarch64/t-aarch64-netbsd: Likewise.
19514 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
19516         * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
19517         the access path from base to first VIEW_CONVERT_EXPR or
19518         BIT_FIELD_REF.
19520 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
19522         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
19523         access path on BIT_FIELD_REFs.
19525 2019-06-17  Martin Liska  <mliska@suse.cz>
19527         PR ipa/90874
19528         * ipa-utils.h (odr_type_p): Remove dead code.
19530 2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19532         * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
19533         alternative Solaris 11.4 format.
19534         * configure: Regenerate.
19536 2019-06-17  Tom de Vries  <tdevries@suse.de>
19538         * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
19539         (define_insn "call_insn_<mode>"): ... this.  Use P iterator on
19540         match_operand 0.
19541         (define_insn "call_value_insn"): Rename to ...
19542         (define_insn "call_value_insn_<mode>"): this.  Use P iterator on
19543         match_operand 0.
19544         (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
19545         DI.
19547 2019-06-16  John David Anglin  <danglin@gcc.gnu.org>
19549         PR middle-end/64242
19550         * config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
19551         frame clobbers and schedule block.
19552         (builtin_longjmp): Likewise.
19554 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
19556         * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
19557         describe how to perform MSPABI compliant 64-bit shift.
19558         * config/msp430/msp430.md (ashldi3): New define_expand.
19559         (ashrdi3): New define_expand.
19560         (lshrdi3): New define_expand.
19562 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
19564         * doc/sourcebuild.texi: Document new effective target keyword
19565         longlong64.
19567 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
19569         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
19570         indirect_refs_may_alias_p): Revert accidental commits.
19572         * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
19573         at the end of structures.
19575 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
19577         * config/darwin.c (machopic_indirect_call_target): Use renamed
19578         darwin_picsymbol_stubs to decide on output.
19579         (darwin_override_options): Handle darwin_picsymbol_stubs.
19580         * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
19581         (LD64_VERSION): Revise default.
19582         * config/darwin.opt: (mpic-symbol-stubs): New option.
19583         (darwin_picsymbol_stubs): New variable.
19584         * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
19585         rename to TARGET_MACHO_PICSYM_STUBS.
19586         * config/i386/i386.c (output_pic_addr_const): Likewise.
19587         * config/i386/i386.h Likewise.
19588         * config/rs6000/darwin.h: Likewise.
19589         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
19590         darwin_picsymbol_stubs.
19592 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
19594         * config/darwin.opt (prebind, noprebind, seglinkedit,
19595         noseglinkedit): Add RejectNegative.
19597 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
19599         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
19600         in my previous patch.
19602 2019-06-16  Tom de Vries  <tdevries@suse.de>
19604         PR tree-optimization/89376
19605         * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
19607 2019-06-15  Maya Rashish  <coypu@sdf.org>
19609         * doc/invoke.texi (Spec Files): Update location of the
19610         Fortran spec file.
19612 2019-06-15  Gerald Pfeifer  <gerald@pfeifer.com>
19614         * doc/extend.texi (Common Function Attributes): Clarify
19615         no_sanitize.  Fix grammar.
19617 2019-06-15  Jan Hubicka  <hubicka@ucw.cz>
19619         * tree-ssa-alias.c (alias_stats): Add
19620         nonoverlapping_component_refs_p_may_alias,
19621         nonoverlapping_component_refs_p_no_alias,
19622         nonoverlapping_component_refs_of_decl_p_may_alias,
19623         nonoverlapping_component_refs_of_decl_p_no_alias.
19624         (dump_alias_stats): Dump them.
19625         (nonoverlapping_component_refs_of_decl_p): Add stats.
19626         (nonoverlapping_component_refs_p): Add stats; do not stop on first
19627         ARRAY_REF.
19629 2019-06-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19631         * config/i386/i386.md (and<mode>3): Generate zero-extends for
19632         TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
19633         only.
19634         (*anddi3_doubleword): Split before reload. Merge with
19635         anddi->zext pre-reload splitter.
19636         (*andndi3_doubleword): Split before reload.
19637         (*<code>di3_doubleword): Ditto.
19638         (*one_cmpldi2_doubleword): Ditto.
19640 2019-06-15  Jakub Jelinek  <jakub@redhat.com>
19642         PR middle-end/90779
19643         * gimplify.c: Include omp-offload.h and context.h.
19644         (gimplify_bind_expr): Add "omp declare target" attributes
19645         to static block scope variables inside of target region or target
19646         functions.
19648 2019-06-15  Tom de Vries  <tdevries@suse.de>
19650         PR tree-optimization/90009
19651         * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
19652         Return NULL if bb contains IFN_UNIQUE.
19654 2019-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
19656         * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
19657         (un): New define_mode_attr.
19658         (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
19659         (isel_<un>signed_<GPR:mode>): ... this.  New define_insn.
19660         (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
19661         merge into ...
19662         (isel_reversed_<un>signed_<GPR:mode>): ... this.  New define_insn.
19664 2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
19666         * config/darwin.opt: Add RejectNegative where needed, reorder
19667         and add minimal functional descriptions.
19669 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
19671         PR rtl-optimization/90765
19672         * calls.c (update_stack_alignment_for_call): New function.
19673         (expand_call): Call update_stack_alignment_for_call when
19674         outgoing parameter is passed in the stack.
19675         (emit_library_call_value_1): Likewise.
19676         * function.c (locate_and_pad_parm): Don't update
19677         stack_alignment_needed and preferred_stack_boundary.
19679 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
19681         PR target/90877
19682         * config/i386/i386-features.c
19683         (dimode_scalar_chain::compute_convert_gain): Replace
19684         mmxsse_to_integer with sse_to_integer.
19685         * config/i386/i386.c (ix86_register_move_cost): Verify that
19686         moves between MMX and non-MMX units require secondary memory.
19687         Correct costs of moves between SSE and integer units.
19688         * config/i386/i386.h (processor_costs): Rename cost of moving
19689         SSE register to integer to sse_to_integer.  Rename cost of
19691 2019-06-14  Matt Thomas  <matt@3am-software.com>
19692             Matthew Green  <mrg@eterna.com.au>
19693             Nick Hudson  <skrll@netbsd.org>
19694             Maya Rashish  <coypu@sdf.org>
19695             Richard Earnshaw  <rearnsha@arm.com>
19697         * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
19698         * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
19699         * config/arm/netbsd-eabi.h: New file.
19700         * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
19701         redefining.
19702         (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
19703         * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
19704         (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
19705         (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
19707 2019-06-14  Richard Biener  <rguenther@suse.de>
19709         * tree-loop-distribution.c (classify_partition): Return
19710         whether a reduction appeared in all partitions and do not
19711         stop builtin detection because of this.
19712         (distribute_loop): Sort a non-builtin partition last if
19713         there's a reduction in all partitions and make sure the
19714         partition prevailing as last is not a builtin.
19716 2019-06-14  Feng Xue  <fxue@os.amperecomputing.com>
19718         PR ipa/90401
19719         * ipa-prop.c (add_to_agg_contents_list): New function.
19720         (clobber_by_agg_contents_list_p): Likewise.
19721         (extract_mem_content): Likewise.
19722         (get_place_in_agg_contents_list): Delete.
19723         (determine_known_aggregate_parts): Renamed from
19724         determine_locally_known_aggregate_parts.  New parameter
19725         aa_walk_budget_p.
19727 2019-06-13  Martin Sebor  <msebor@redhat.com>
19729         PR tree-optimization/90662
19730         * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
19731         to the same type.
19733 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
19735         PR bootstrap/90873
19736         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
19737         dbase is not TARGET_MEM_REF.
19739 2019-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19741         * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
19742         Update all uses.
19743         (and<mode>3): Use gen_extend_insn instead of indirect functions.
19744         Do not generate DImode extends for 32bit targets.
19745         (and->zext post-reload splitter): Use gen_extend_insn
19746         instead of indirect functions.
19747         (anddi->zext pre-reload splitter): New.
19748         (*zext<mode>_doubleword_and): Remove.
19749         (*zext<mode>_doubleword): Ditto.
19750         (*zextsi_doubleword): Dittto.
19752 2019-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19754         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
19755         Use gen_sub3_insn instead of indirect function.
19756         (ix86_expand_ashl_const): Use gen_add2_insn instead of
19757         indirect function.
19758         (ix86_adjust_counter): Ditto.
19760 2019-06-13  Jiufu Guo  <guojiufu@linux.ibm.com>
19761             Lijia He  <helijia@linux.ibm.com>
19763         PR tree-optimization/77820
19764         * tree-ssa-threadedge.c
19765         (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
19766         function.
19767         (thread_across_edge): Add call to
19768         edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
19770 2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
19772         * config/darwin-driver.c (validate_macosx_version_min): New.
19773         (darwin_default_min_version): Cleanup and validate supplied version.
19774         (darwin_driver_init): Likewise and push cleaned version into opts.
19776 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
19778         PR tree-optimization/90869
19779         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
19780         converts in MEM_REF referencing decl rather than view converts
19781         from decl type to MEM_REF type.
19783 2019-06-13  Richard Biener  <rguenther@suse.de>
19785         PR tree-optimization/90856
19786         * tree-sra.c (build_ref_for_model): Only use
19787         build_reconstructed_reference when address-spaces are the same.
19789 2019-06-13  Jakub Jelinek  <jakub@redhat.com>
19791         * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
19792         wrap ei variable name in the declaration in ()s.
19793         (nvptx_single): Actually use mode_label variable.  Formatting fix.
19795 2019-06-13  Richard Biener  <rguenther@suse.de>
19797         * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
19798         * tree-vectorizer.c (vect_loop_vectorized_call): Export and
19799         also return the condition stmt.
19800         * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
19801         loop we can version and version that, reusing the loop version
19802         created by if-conversion instead of versioning again.
19804 2019-06-13  Aldy Hernandez  <aldyh@redhat.com>
19806         * gimple-loop-versioning.cc (prune_loop_conditions): Use
19807         may_contain_p.
19808         * tree-vrp (value_range_base::may_contain_p): Call into
19809         value_inside_range.
19810         (value_inside_range): Make private inside value_range_base class.
19811         Take min/max from *this.
19812         (range_includes_p): Remove.
19813         * tree-vrp.h (value_range_base): Add value_inside_range.
19814         (range_includes_p): Remove.
19815         (range_includes_zero_p): Call may_contain_p.
19816         * vr-values.c (compare_range_with_value): Same.
19818 2019-06-13  Claudiu Zissulescu  <claziss@synopsys.com>
19820         * doc/extend.texi (ARC Function Attributes): Update info.
19822 2019-06-13  Feng Xue  <fxue@os.amperecomputing.com>
19824         PR tree-optimization/89713
19825         * doc/invoke.texi (-ffinite-loops): Document new option.
19826         * common.opt (-ffinite-loops): New option.
19827         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
19828         IFN_GOACC_LOOP calls as necessary.
19829         * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
19830         is finite.
19831         * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
19832         IFN_GOACC_LOOP call is not used.
19833         * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
19835 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
19837         PR target/88838
19838         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
19839         compare_type is not with Pmode size, we will create an IV with
19840         Pmode size with truncated use (i.e. converted to the correct type).
19841         * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
19842         (vect_iv_limit_for_full_masking): New. Factored out of
19843         vect_set_loop_condition_masked.
19844         * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
19845         (vect_iv_limit_for_full_masking): Declare.
19847 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
19849         PR target/88834
19850         * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
19851         IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
19852         (get_alias_ptr_type_for_ptr_address): Likewise.
19853         (add_iv_candidate_for_use): Add scaled index candidate if useful.
19854         * tree-ssa-address.c (preferred_mem_scale_factor): New.
19855         * config/aarch64/aarch64.c (aarch64_classify_address): Relax
19856         allow_reg_index_p.
19858 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
19860         * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
19862 2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>
19864         * common/config/pru/pru-common.c: New file.
19865         * config.gcc: Add PRU target.
19866         * config/pru/alu-zext.md: New file.
19867         * config/pru/constraints.md: New file.
19868         * config/pru/predicates.md: New file.
19869         * config/pru/pru-opts.h: New file.
19870         * config/pru/pru-passes.c: New file.
19871         * config/pru/pru-pragma.c: New file.
19872         * config/pru/pru-protos.h: New file.
19873         * config/pru/pru.c: New file.
19874         * config/pru/pru.h: New file.
19875         * config/pru/pru.md: New file.
19876         * config/pru/pru.opt: New file.
19877         * config/pru/t-pru: New file.
19878         * doc/extend.texi: Document PRU pragmas.
19879         * doc/invoke.texi: Document PRU-specific options.
19880         * doc/md.texi: Document PRU asm constraints.
19882 2019-06-12  Martin Sebor  <msebor@redhat.com>
19884         PR middle-end/90676
19885         * tree-pretty-print.c (dump_mem_ref): New function.  Include
19886         MEM_REF type in output when different size than operand.
19887         (dump_generic_node): Move code to dump_mem_ref and call it.
19889 2019-06-12  Martin Sebor  <msebor@redhat.com>
19891         PR tree-optimization/90662
19892         * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
19893         to arrays.
19895 2019-06-12  Tom de Vries  <tdevries@suse.de>
19897         PR tree-optimization/90009
19898         * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
19900 2019-06-12  Martin Liska  <mliska@suse.cz>
19902         * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
19903         the created map.
19904         * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
19905         * mem-stats.h (mem_alloc_description::mem_alloc_description):
19906         Do not sanitize created maps.
19908 2019-06-12  Aldy Hernandez  <aldyh@redhat.com>
19910         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
19911         value_range::singleton_p.
19912         * tree-vrp.c (value_range_constant_singleton): Remove.
19913         * tree-vrp.h (value_range_constant_singleton): Remove.
19914         * vr-values.c (vr_values::singleton): Use
19915         value_range::singleton_p.
19917 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
19919         PR target/90811
19920         * cfgexpand.c (align_local_variable): Add really_expand argument,
19921         don't SET_DECL_ALIGN if it is false.
19922         (add_stack_var): Add really_expand argument, pass it through to
19923         align_local_variable.
19924         (expand_one_stack_var_1): Pass true as really_expand to
19925         align_local_variable.
19926         (expand_one_ssa_partition): Pass true as really_expand to
19927         add_stack_var.
19928         (expand_one_var): Pass really_expand through to add_stack_var.
19930 2019-06-12  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
19932         * config/arm/iterators.md (VABAL): New int iterator.
19933         * config/arm/neon.md (<sup>sadv16qi): New define_expand.
19934         * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
19935         UNSPEC_VABAL_U values.
19937 2019-06-12  Martin Liska  <mliska@suse.cz>
19939         * value-prof.c (stream_out_histogram_value): Only first value
19940         can't be negative.
19942 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
19944         PR c/90760
19945         * symtab.c (symtab_node::set_section): Allow being called on aliases
19946         as long as they aren't analyzed yet.
19948 2019-06-11  Faraz Shahbazker  <fshahbazker@wavecomp.com>
19950         * config/mips/mips.c (mips_final_postscan_insn): Modify call
19951         to `mips_set_text_contents_type' to indicate whether a
19952         non-debug insn follows.
19954 2019-06-11  Michael Meissner  <meissner@linux.ibm.com>
19956         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
19957         enabling -mpcrel by default.
19958         * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
19959         test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
19960         that the test against -mcpu=future is done first.  Then test if
19961         -mprefixed-addr is on for -mpcrel.
19962         (rs6000_disable_incompatible_switches): Add -mcpu=future support.
19964 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
19966         PR target/90811
19967         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
19968         instead of and.u%d.
19970 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
19972         * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
19974 2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
19976         PR c++/90449 - add -Winaccessible-base option.
19977         * doc/invoke.texi (Winaccessible-base): Document.
19979 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
19981         PR tree-optimization/62041
19982         * fold-const.c (fold_real_zero_addition_p): Handle vectors.
19984 2019-06-11  Jason Merrill  <jason@redhat.com>
19986         * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
19987         * tree.c (get_tree_code_name): Likewise.
19988         * print-tree.c (print_node): Only briefly print a node with an
19989         invalid code.
19991 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
19993         PR bootstrap/90819
19994         * trans-mem.c (tm_memopt_compute_available): Add assertion
19995         that blocks is not empty.  Formatting fix.
19997 2019-06-11  Martin Liska  <mliska@suse.cz>
19999         PR c++/87847
20000         * hash-table.h: Extend create_gcc, add one parameter
20001         that is passed into hash_table::hash_table.
20003 2019-06-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
20005         * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
20006         New prototype.
20007         * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
20008         Emit clobber also for non-sse operations.
20009         (ix86_split_fp_absneg_operator): New function.
20010         * config/i386/i386.md (SSEMODEF): New mode iterator.
20011         (ssevecmodef): New mode attribute.
20012         (<code>tf2): Use absneg code iterator.
20013         (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
20014         Add three-operand AVX alternatives.
20015         (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
20016         Use absneg code iterator and X87MODEF mode iterator.
20017         (absneg fp_reg non-sse splitter): Call absneg code iterator
20018         and X87MODEF mode iterator.
20019         (absneg general_reg non-sse splitter): Use absneg code iterator
20020         and X87MODEF mode iterator.  Use ix86_split_fp_absneg_operator.
20021         (*<code><mode>2_1): Rename from *absneg<mode>2.  Use absneg
20022         code iterator.  Add three-operand AVX alternative.
20023         (absneg sse_reg splitter): Use absneg code iterator
20024         and SSEMODEF mode iterator.  Handle AVX operands.
20025         (absneg fp_reg splitter): Use absneg code iterator
20026         and MODEF mode iterator.
20027         (absneg general_reg splitter): Merge splitters using MODEF mode
20028         iterator.  Use absneg code iterator.  Call
20029         ix86_split_fp_absneg_operator.
20030         (*<code><mode>2_i387): Rename from *<code><mode>2_1.
20031         Do not enable for non-sse modes before reload.
20032         (CSGNMODE): Remove.
20033         (CSGNVMODE): Ditto.
20034         (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
20035         ssevecmodef mode attribute instaed of CSGNVMODE.
20036         (copysign<mode>3_const): Ditto.
20037         (copysign<mode>3_var): Ditto.
20038         * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
20039         Use absneg code iterator.  Simplify code using std::swap.
20040         * config/i386/predicates.md (absneg_operator): Remove.
20042 2019-06-10  Martin Sebor  <msebor@redhat.com>
20044         * gimple-fold.c (get_range_strlen): Update comment that didn't
20045         make it into r267503 or related commits.
20047 2019-06-10  Vladislav Ivanishin  <vlad@ispras.ru>
20049         * gcov-tool.c (merge_usage, rewrite_usage): Mark with
20050         ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
20052 2019-06-10  Jakub Jelinek  <jakub@redhat.com>
20054         * tree.def (OMP_SCAN): New tree code.
20055         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
20056         OMP_CLAUSE_EXCLUSIVE.
20057         * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
20058         (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
20059         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
20060         OMP_CLAUSE_{IN,EX}CLUSIVE.
20061         (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
20062         * tree-nested.c (convert_nonlocal_reference_stmt,
20063         convert_local_reference_stmt, convert_gimple_call): Handle
20064         GIMPLE_OMP_SCAN.
20065         * tree-pretty-print.c (dump_omp_clause): Handle
20066         OMP_CLAUSE_{IN,EX}CLUSIVE.
20067         (dump_generic_node): Handle OMP_SCAN.
20068         * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
20069         * gimple.h (gomp_scan): New type.
20070         (is_a_helper <gomp_scan *>::test,
20071         is_a_helper <const gomp_scan *>::test): New templates.
20072         (gimple_build_omp_scan): Declare.
20073         (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
20074         gimple_omp_scan_set_clauses): New inline functions.
20075         (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
20076         * gimple.c (gimple_build_omp_scan): New function.
20077         (gimple_copy): Handle GIMPLE_OMP_SCAN.
20078         * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
20079         * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
20080         GIMPLE_OMP_TASKGROUP.
20081         (dump_gimple_omp_scan): New function.
20082         (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
20083         * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
20084         * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
20085         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
20086         (is_gimple_stmt): Handle OMP_SCAN.
20087         (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
20088         other than OMP_FOR or OMP_SIMD.  Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
20089         (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
20090         mentioned in nested #pragma omp scan.  Handle
20091         OMP_CLAUSE_{IN,EX}CLUSIVE.
20092         (gimplify_expr): Handle OMP_SCAN.
20093         * omp-low.c (check_omp_nesting_restrictions): For parent context,
20094         look through GIMPLE_OMP_SCAN context.  Allow #pragma omp scan in
20095         simd constructs.
20096         (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
20097         GIMPLE_OMP_SCAN.
20099 2019-06-10  Martin Liska  <mliska@suse.cz>
20101         * ipa-cp.c (ignore_edge_p): New function.
20102         (build_toporder_info): Use it.
20103         * ipa-inline.c (ignore_edge_p): New function.
20104         (inline_small_functions): Use it.
20105         * ipa-pure-const.c (ignore_edge_for_nothrow):
20106         Verify opt_for_fn for caller and callee.
20107         (ignore_edge_for_pure_const): Likewise.
20108         * ipa-reference.c (ignore_edge_p): Extend to check
20109         for opt_for_fn.
20110         * ipa-utils.c (searchc): Refactor.
20111         * ipa-utils.h: Fix coding style.
20113 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
20115         * config/arc/arc.c (arc_rtx_costs): Update costs.
20117 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
20119         * config/arc/arc-protos.h (arc_check_ior_const): Declare.
20120         (arc_split_ior): Likewise.
20121         (arc_check_mov_const): Likewise.
20122         (arc_split_mov_const): Likewise.
20123         * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
20124         (arc_rtx_costs): Replace check Crr with Cax constraint.
20125         (prepare_move_operands): Cleanup, remove unused code.
20126         (arc_split_ior): New function.
20127         (arc_check_ior_const): Likewise.
20128         (arc_split_mov_const): Likewise.
20129         (arc_check_mov_const): Likewise.
20130         * config/arc/arc.md (movsi_insn): Restructure it, and convert it
20131         in define_insn_and_split pattern.
20132         (iorsi3): Likewise.
20133         (mulsi3_v2): Add new matching variant.
20134         (andsi3_i): Cleanup pattern.
20135         (rotrsi3_cnt1): Update pattern.
20136         (rotrsi3_cnt8): New pattern.
20137         (ashlsi2_cnt8): Likewise.
20138         (ashlsi2_cnt16): Likewise.
20139         * config/arc/constraints.md (C0p): Update constraint.
20140         (Crr): Remove it.
20141         (C0x): New pattern.
20142         (Cax): New pattern.
20144 2019-06-10  Martin Liska  <mliska@suse.cz>
20146         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
20147         Update coding style.
20148         (sem_item_optimizer::dump_cong_classes):
20149         Print how many items are in a non-singular class.  Improve
20150         coding style.
20152 2019-06-10  Martin Liska  <mliska@suse.cz>
20154         * value-prof.c (dump_histogram_value): Change dump format.
20155         (gimple_mod_subtract_transform): Remove legacy comment.
20157 2019-06-10  Martin Liska  <mliska@suse.cz>
20159         * value-prof.c (dump_histogram_value): Print histogram values
20160         only if present.
20162 2019-06-10  Martin Liska  <mliska@suse.cz>
20164         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
20165         (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
20166         * ipa-profile.c (ipa_profile_generate_summary):
20167         Use get_most_common_single_value.
20168         * tree-profile.c (gimple_init_gcov_profiler):
20169         Instrument with __gcov_one_value_profiler_v2
20170         and __gcov_indirect_call_profiler_v4.
20171         * value-prof.c (dump_histogram_value):
20172         Print all values for HIST_TYPE_SINGLE_VALUE.
20173         (stream_out_histogram_value): Update assert for
20174         N values.
20175         (stream_in_histogram_value): Set number of
20176         counters for HIST_TYPE_SINGLE_VALUE.
20177         (get_most_common_single_value): New.
20178         (gimple_divmod_fixed_value_transform):
20179         Use get_most_common_single_value.
20180         (gimple_ic_transform): Likewise.
20181         (gimple_stringops_transform): Likewise.
20182         (gimple_find_values_to_profile): Set number
20183         of counters for HIST_TYPE_SINGLE_VALUE.
20184         * value-prof.h (get_most_common_single_value): New.
20186 2019-06-10  Martin Liska  <mliska@suse.cz>
20188         * hash-map.h: Pass default value to hash_table ctor.
20189         * hash-table.h: Add default value to call of a ctor.
20191 2019-06-08  Jonathan Wakely  <jwakely@redhat.com>
20193         * doc/invoke.texi (C Dialect Options): Minor grammatical change.
20194         (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
20196 2019-06-07  John David Anglin  <danglin@gcc.gnu.orig>
20198         PR target/90751
20199         * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
20200         Call pa_output_function_label.
20201         (TARGET_ASM_FUNCTION_PROLOGUE): define.
20202         * config/pa/pa-protos.h (pa_output_function_label): Declare.
20203         * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
20204         to declaration.
20205         (pa_linux_output_function_prologue): Declare.
20206         (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
20207         (pa_output_function_label): New.
20208         (pa_output_function_prologue): Revise to use pa_output_function_label.
20209         (pa_linux_output_function_prologue): New.
20210         * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
20212 2019-06-07  Aldy Hernandez  <aldyh@redhat.com>
20214         * tree-vrp.h (value_range_base::intersect): New.
20215         (value_range::intersect_helper): Move from here...
20216         (value_range_base::intersect_helper): ...to here.
20217         * tree-vrp.c (value_range::intersect_helper): Rename to...
20218         (value_range_base::intersect_helper): ...this, and rewrite to
20219         return a value instead of modifying THIS in place.
20220         Also, move equivalence handling...
20221         (value_range::intersect): ...here, while calling intersect_helper.
20222         * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
20223         calling intersect.
20224         * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
20225         Same.
20226         * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
20228 2019-06-07  Jakub Jelinek  <jakub@redhat.com>
20230         * Makefile.in (genprogerr): Add condmd.
20231         (genprog): Remove it here.
20233 2019-06-07  Andrew Stubbs  <ams@codesourcery.com>
20235         * doc/invoke.texi (AMD GCN Options): Add gfx906.
20237 2019-06-07  Richard Biener  <rguenther@suse.de>
20239         PR debug/90574
20240         * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
20241         that appear after user labels.
20243 2019-06-07  Martin Liska  <mliska@suse.cz>
20245         * cselib.c (cselib_init): Disable hash table
20246         sanitization.
20247         * hash-set.h: Pass new default argument to m_table.
20248         * hash-table.c: Add global variable with hash table
20249         sanitization limit.
20250         * hash-table.h (Allocator>::hash_table): Add new argument
20251         to ctor.
20252         (hashtab_chk_error): New.
20253         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
20254         * toplev.c (process_options): Set hash_table_sanitize_eq_limit
20255         from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
20257 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
20259         * common.opt (flto-odr-type-merging): Ignore.
20260         * invoke.texi (-flto-odr-type-merging): Remove.
20261         * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
20262         (can_be_vtable_hashed_p): Remove.
20263         (hash_odr_vtable): Remove.
20264         (odr_vtable_hasher::hash): Remove.
20265         (types_same_for_odr): Remove.
20266         (types_odr_comparable): Remove.
20267         (odr_vtable_hasher::equal): Remove.
20268         (odr_vtable_hash_type, odr_vtable_hash): Remove.
20269         (add_type_duplicate): Do not synchronize vtable and name hashtables.
20270         (get_odr_type): Do not use vtable hash.
20271         (dump_odr_type): Remove commented out code.
20272         (build_type_inheritance_graph): Do not allocate vtable hash.
20273         (rebuild_type_inheritance_graph): Do not delete vtable hash.
20274         * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
20275         (odr_type_p): Likewise.
20276         * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
20277         test.
20279 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
20281         * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
20282         immediately after same_types_for_tbaa_p returns -1 and continue
20283         looking for possible exact match; if matching types are arrays
20284         watch for partial overlaps.
20285         (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
20286         (indirect_refs_may_alias_p): Do type based disambiguation first;
20287         update comment.
20289 2019-06-07  Richard Sandiford  <richard.sandiford@arm.com>
20291         * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
20293 2019-06-07  Martin Liska  <mliska@suse.cz>
20295         * doc/invoke.texi: Remove param.
20296         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
20297         Remove.
20298         * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
20299         (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
20300         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
20301         * profile.c (instrument_values): Remove
20302         HIST_TYPE_INDIR_CALL_TOPN.
20303         * tree-profile.c (init_ic_make_global_vars):
20304         Always build __gcov_indirect_call only.
20305         (gimple_init_gcov_profiler): Remove usage
20306         of PARAM_INDIR_CALL_TOPN_PROFILE.
20307         (gimple_gen_ic_profiler): Likewise.
20308         * value-prof.c (dump_histogram_value): Likewise.
20309         (stream_in_histogram_value): Likewise.
20310         (gimple_indirect_call_to_profile): Likewise.
20311         (gimple_find_values_to_profile): Likewise.
20312         * value-prof.h (enum hist_type): Likewise.
20314 2019-06-07  Martin Liska  <mliska@suse.cz>
20316         * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
20317         function.
20319 2019-06-07  Martin Liska  <mliska@suse.cz>
20321         PR tree-optimization/78902
20322         * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
20323         (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
20324         (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
20325         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
20326         (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
20327         (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
20328         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
20329         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
20330         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
20331         (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
20332         (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
20333         (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
20334         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
20335         New.
20336         (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
20337         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
20338         (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
20339         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
20340         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
20341         (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
20342         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
20343         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
20344         * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
20345         warn_unused_result attribute.
20346         (BUILT_IN_STRDUP): Likewise.
20347         (BUILT_IN_STRNDUP): Likewise.
20348         (BUILT_IN_ALLOCA): Likewise.
20349         (BUILT_IN_CALLOC): Likewise.
20350         (BUILT_IN_MALLOC): Likewise.
20351         (BUILT_IN_REALLOC): Likewise.
20353 2019-06-06  Jim Wilson  <jimw@sifive.com>
20355         PR target/89955
20356         * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
20357         * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
20358         * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
20360 2019-06-06  Martin Sebor  <msebor@redhat.com>
20362         * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
20363         (handle_builtin_malloc): Remove trailing spaces.
20364         (handle_builtin_memset): Same.
20365         (handle_builtin_memcmp): Same.
20366         (compute_string_length): Same.
20367         (determine_min_objsize): Same.
20368         (handle_builtin_string_cmp): Same.
20369         (handle_char_store): Same.  Break up excessively long line.
20371 2019-06-06  Martin Jambor  <mjambor@suse.cz>
20373         * tree-sra.c (build_reconstructed_reference): Drop the alignment
20374         check.
20376 2019-06-06  Martin Jambor  <mjambor@suse.cz>
20378         * tree-sra.c (struct access): New field grp_same_access_path.
20379         (dump_access): Dump it.
20380         (build_reconstructed_reference): New function.
20381         (build_ref_for_model): Use it if possible.
20382         (path_comparable_for_same_access): New function.
20383         (same_access_path_p): Likewise.
20384         (sort_and_splice_var_accesses): Set the new flag.
20385         (analyze_access_subtree): Likewise.
20386         (propagate_subaccesses_across_link): Propagate zero value of the new
20387         flag down the access tree.
20389 2019-06-06  Andrew Stubbs  <ams@codesourcery.com>
20391         * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
20392         * config/gcn/gcn.opt (gpu_type): Add gfx906.
20393         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
20394         (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
20395         Add gfx906.
20397 2019-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20399         PR tree-optimization/90332
20400         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
20401         Handle VALS containing two vectors.
20402         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
20403         to...
20404         (@aarch64_combinez<mode>): ... This.
20405         (*aarch64_combinez_be<mode>): Rename to...
20406         (@aarch64_combinez_be<mode>): ... This.
20407         (vec_init<mode><Vhalf>): New define_expand.
20408         * config/aarch64/iterators.md (Vhalf): Handle V8HF.
20410 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
20412         * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
20413         library functions only when not optimizing for size.
20414         (ashlsi3): Likewise.
20415         (ashrhi3): Likewise.
20416         (ashrsi3): Likewise.
20417         (lshrhi3): Likewise.
20418         (lshrsi3): Likewise.
20420 2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
20422         PR rtl-optimization/88751
20423         * ira.c (ira): Use the number of the actually referenced registers
20424         when calculating the threshold.
20426 2019-06-06  Jakub Jelinek  <jakub@redhat.com>
20428         * configure: Regenerate.
20430 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
20432         * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
20433         register if it is in memory, so the shift can be emulated with a rotate
20434         instruction.
20435         (ashrhi3): Likewise.
20436         (lshrhi3): Likewise.
20438 2019-06-06  Martin Liska  <mliska@suse.cz>
20440         PR tree-optimization/87954
20441         * match.pd: Simplify mult where both arguments are 0 or 1.
20443 2019-06-06  Richard Biener  <rguenther@suse.de>
20445         * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
20446         put equivalences on UNDEFINED ranges.
20447         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
20448         Make sure to drop defs of stmts added during simplification
20449         to VARYING.
20451 2019-06-06  Richard Biener  <rguenther@suse.de>
20453         * tree-ssa-structalias.c: Include tree-cfg.h.
20454         (make_heapvar): Do not make heap vars artificial.
20455         (find_func_aliases_for_builtin_call): Handle stack allocation
20456         functions.
20457         (find_func_aliases): Delay processing of simple enough returns
20458         in non-IPA mode.
20459         (set_uids_in_ptset): Adjust.
20460         (find_what_var_points_to): Likewise.
20461         (solve_constraints): Do not dump points-to sets here.
20462         (compute_points_to_sets): Post-process return statements,
20463         amending the escaped solution.  Dump points-to sets afterwards.
20464         (ipa_pta_execute): Dump points-to sets.
20466 2019-06-06  Martin Liska  <mliska@suse.cz>
20468         PR web/87933
20469         * doc/install.texi: Fix HTML headers and
20470         titles for 'Installing GCC' pages.
20472 2019-06-06  Martin Liska  <mliska@suse.cz>
20474         * ipa-icf-gimple.h (dump_message_1): Remove.
20475         (dump_message): Likewise.
20476         (return_false_with_message_1): Print also file.
20477         (return_false_with_msg): Likewise.
20478         (return_with_result): Likewise.
20479         (return_with_debug): Likewise.
20480         * ipa-icf.c (sem_function::equals_private): Remove call
20481         to dump_message.
20483 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
20485         * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
20486         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
20487         memory operand for it.
20488         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
20490 2019-06-05  Martin Sebor  <msebor@redhat.com>
20492         * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
20493         Adjust quoting and hyphenation.
20494         * convert.c (convert_to_real_1): Same.
20495         * gcc.c (driver_wrong_lang_callback): Same.
20496         (driver::handle_unrecognized_options): Same.
20497         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
20498         * opts-common.c (cmdline_handle_error): Same.
20499         (read_cmdline_option): Same.
20500         * opts-global.c (complain_wrong_lang): Same.
20501         (print_ignored_options): Same.
20502         (handle_common_deferred_options): Same.
20503         * pretty-print.h: Same.
20504         * print-rtl.c (debug_bb_n_slim): Same.
20505         * sched-rgn.c (make_pass_sched_fusion): Same.
20506         * tree-cfg.c (verify_gimple_assign_unary): Same.
20507         (verify_gimple_label): Same.
20508         * tree-ssa-operands.c (verify_ssa_operands): Same.
20509         * varasm.c (do_assemble_alias): Same.
20510         (assemble_alias): Same.
20512 2019-06-05  Richard Henderson  <rth@twiddle.net>
20514         * config/alpha/alpha.c (direct_return): Move down after
20515         struct machine_function definition; use saved frame_size;
20516         return bool.
20517         (struct machine_function): Add sa_mask, sa_size, frame_size.
20518         (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
20519         (alpha_compute_frame_layout): ... new function.
20520         (TARGET_COMPUTE_FRAME_LAYOUT): New.
20521         (alpha_initial_elimination_offset): Use saved sa_size.
20522         (alpha_vms_initial_elimination_offset): Likewise.
20523         (alpha_vms_can_eliminate): Remove alpha_sa_size call.
20524         (alpha_expand_prologue): Use saved frame data.  Merge integer
20525         and fp register save loops.
20526         (alpha_expand_epilogue): Likewise.
20527         (alpha_start_function): Use saved frame data.
20528         * config/alpha/alpha-protos.h (direct_return): Update.
20529         (alpha_sa_size): Remove.
20531 2019-06-05  Eric Botcazou  <ebotcazou@adacore.com>
20533         * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
20534         multiplication by a power-of-two value.
20535         (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
20536         and turn the modulo operation into a masking operation.
20538 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
20540         PR debug/90733
20541         * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
20542         with VOIDmode inner operands.
20544 2019-06-05  Richard Biener  <rguenther@suse.de>
20546         PR middle-end/90726
20547         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
20548         turn an expression graph into a tree.
20550 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
20552         * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
20553         member.
20554         (expand_parallel_call): If region->inner->has_lastprivate_conditional,
20555         treat it like explicit monotonic schedule modifier.
20556         (expand_omp_for): Initialize has_lastprivate_conditional.
20557         If fd.lastprivate_conditional != 0, treat it like explicit monotonic
20558         schedule modifier.
20560         * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
20561         references, lookup in in hash map MEM_REF operand instead of the
20562         MEM_REF itself.
20563         (lower_omp_1): When looking for lastprivate conditional assignments,
20564         handle MEM_REFs with REFERENCE_TYPE operands.
20566         * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
20567         on privatization clauses OMP_CLAUSE_DECL is privatized by reference
20568         and references a VLA.  Handle references to non-VLAs if is_simd
20569         all privatization clauses like reductions.
20570         (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
20571         If omp_is_reference, use always omp simd arrays and set
20572         DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
20573         fails, emit reference initialization.
20575 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
20577         PR target/89803
20578         * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
20579         _mm_mask_fpclass_sd_mask): New intrinsics.
20580         (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
20581         * config/i386/i386-builtin.def
20582         (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
20583         New builtins.
20584         (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
20585         * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
20586         DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
20587         * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
20588         case QI_FTYPE_V2SF_INT): Ditto.
20589         * config/i386/sse.md
20590         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
20591         Extended to insnstructions with mask operands.
20593 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20595         * config/rs6000/constraints.md (define_register_constraint "wp"):
20596         Delete.
20597         (define_register_constraint "wq"): Delete.
20598         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20599         (rs6000_init_hard_regno_mode_ok): Adjust.
20600         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20601         RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
20602         * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
20603         (define_mode_attr VSa): Delete.
20604         (define_mode_attr VSisa): New.
20605         (rest of file): Adjust.
20606         * doc/md.texi (Machine Constraints): Adjust.
20608 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20610         * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
20611         (define_attr "enabled"): Handle those new isa values.
20613 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20615         * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
20616         (define_mode_attr VSr5): Delete.
20617         (define_mode_attr VStype_sqrt): Delete.
20618         (define_mode_iterator VSX_SPDP): Delete.
20619         (define_mode_attr VS_spdp_res): Delete.
20620         (define_mode_attr VS_spdp_insn): Delete.
20621         (define_mode_attr VS_spdp_type): Delete.
20622         (*vsx_sqrt<mode>2): Adjust.
20623         (vsx_<VS_spdp_insn>): Delete, split to...
20624         (vsx_xscvdpsp): ... this.  New.  And...
20625         (vsx_xvcvspdp): ... this.  New.  And...
20626         (vsx_xvcvdpsp): ... this.  New.
20628 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20630         * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
20631         and V2DF.
20632         * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
20633         (rest of file): Adjust.
20635 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20637         * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
20638         (vsx_extract_<mode>_var): Ditto.
20640 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20642         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
20643         with just "wa".
20645 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20647         * config/rs6000/constraints.md (define_register_constraint "ww"):
20648         Delete.
20649         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20650         (rs6000_init_hard_regno_mode_ok): Adjust.
20651         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20652         RS6000_CONSTRAINT_ww.
20653         * config/rs6000/rs6000.md: Adjust.
20654         * config/rs6000/vsx.md: Adjust.
20655         * doc/md.texi (Machine Constraints): Adjust.
20657 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20659         * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
20660         (define_mode_attr sd): New.
20661         (define_mode_attr s): New.
20662         (define_mode_attr Ftrad): Delete.
20663         (define_mode_attr Fvsx): Delete.
20664         (define_mode_attr Fs): Delete.
20665         (rest of file): Use the new mode attributes.
20666         * config.rs6000/vsx.md: Use the new mode attributes.
20668 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20670         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
20671         with just "wa".
20673 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20675         * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
20676         (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
20677         used with VSX_B, VSX_D, or VSX_F, with just "wa".
20679 2019-06-04  Bill Schmidt  <wschmidt@linux.ibm.com>
20681         PR target/78263
20682         * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
20683         C++ with strict ANSI requirements.
20685 2019-06-04  Marc Glisse  <marc.glisse@inria.fr>
20687         * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
20688         computations when step is 1.
20690 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20692         * config/rs6000/constraints.md (define_register_constraint "wf"):
20693         Delete.
20694         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20695         (rs6000_init_hard_regno_mode_ok): Adjust.
20696         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20697         RS6000_CONSTRAINT_wf.
20698         * config/rs6000/rs6000.md: Adjust.
20699         * config/rs6000/vsx.md: Adjust.
20700         * doc/md.texi (Machine Constraints): Adjust.
20702 2019-06-04  Andrew Pinski  <apinski@marvell.com>
20704         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
20705         Fix ILP32 value.
20707 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20709         * config/rs6000/constraints.md (define_register_constraint "wd"):
20710         Delete.
20711         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20712         (rs6000_init_hard_regno_mode_ok): Adjust.
20713         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20714         RS6000_CONSTRAINT_wd.
20715         * config/rs6000/rs6000.md: Adjust.
20716         * config/rs6000/vsx.md: Adjust.
20717         * doc/md.texi (Machine Constraints): Adjust.
20719 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20721         * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
20722         (rest of file): Adjust.
20724 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20726         * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
20727         (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
20728         (vsx_splat_<mode>_reg): Adjust.
20730 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20732         * config/rs6000/constraints.md (define_register_constraint "ws"):
20733         Delete.
20734         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20735         (rs6000_init_hard_regno_mode_ok): Adjust.
20736         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20737         RS6000_CONSTRAINT_ws.
20738         * config/rs6000/rs6000.md: Adjust.
20739         * config/rs6000/vsx.md: Adjust.
20740         * doc/md.texi (Machine Constraints): Adjust.
20742 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20744         * config/rs6000/constraints.md (define_register_constraint "wv"):
20745         Delete.
20746         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20747         (rs6000_init_hard_regno_mode_ok): Adjust.
20748         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20749         RS6000_CONSTRAINT_wv.
20750         * config/rs6000/rs6000.md: Adjust.
20751         * config/rs6000/vsx.md: Adjust.
20752         * doc/md.texi (Machine Constraints): Adjust.
20754 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
20756         * config/rs6000/constraints.md (define_register_constraint "wi"):
20757         Delete.
20758         (define_register_constraint "wt"): Delete.
20759         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20760         (rs6000_init_hard_regno_mode_ok): Adjust.
20761         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20762         RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
20763         * config/rs6000/rs6000.md: Adjust.
20764         * config/rs6000/vsx.md: Adjust.
20765         * doc/md.texi (Machine Constraints): Adjust.
20767 2019-06-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
20769         * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
20770         const.
20771         * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
20772         default_elf_asm_output_external.
20774 2019-06-04  Martin Liska  <mliska@suse.cz>
20776         * ipa-icf.c (INCLUDE_LIST): Remove.
20777         (sem_item_optimizer::execute): Remove call to init_wpa.
20778         * ipa-icf.h (init_wpa): Remove.
20780 2019-06-04  Jakub Jelinek  <jakub@redhat.com>
20782         * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
20783         conditional on combined for simd.
20784         * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
20785         member.
20786         (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
20787         constructs, don't remove lastprivate_conditional_map, but instead set
20788         ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
20789         to parent construct temporaries.
20790         (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
20791         like !ctx->lastprivate_conditional_map.
20792         (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
20793         use up->outer context instead of up.
20794         * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
20795         gimple_omp_for_combined_p.
20796         (expand_omp_for_static_nochunk): Likewise.
20797         (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
20798         probably moved over into expand_omp_for_generic rather than being copied
20799         there.
20801 2019-06-04  Martin Liska  <mliska@suse.cz>
20803         * value-prof.c (dump_histogram_value): Fix typo.
20804         (gimple_mod_subtract_transform): Likewise.
20806 2019-06-04  Richard Biener  <rguenther@suse.de>
20808         PR middle-end/90726
20809         * tree-chrec.c (chrec_contains_symbols): Add to visited.
20810         (tree_contains_chrecs): Likewise.
20811         (chrec_contains_symbols_defined_in_loop): Move here and avoid
20812         exponential behaivor from ...
20813         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
20814         ... here.
20815         (expression_expensive_p): Avoid exponential behavior and compute
20816         expanded size, rejecting any expansion.
20817         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
20818         (idx_contains_abnormal_ssa_name_p): Likewise.
20819         (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
20820         (contains_abnormal_ssa_name_p): Simplify and use
20821         walk_tree_without_duplicates.
20823 2019-06-04  Richard Biener  <rguenther@suse.de>
20825         PR tree-optimization/90738
20826         Revert
20827         2019-06-03  Richard Biener  <rguenther@suse.de>
20829         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
20830         full reference tree and record in ref->ref.
20831         (vn_reference_lookup_3): Pass in original ref to
20832         ao_ref_init_from_vn_reference.
20833         (vn_reference_lookup): Likewise.
20834         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
20835         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
20836         Handle non-decl bases in the original reference.
20838 2019-06-04  Martin Liska  <mliska@suse.cz>
20840         * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
20841         number of references.
20842         (sem_item_optimizer::do_congruence_step):
20843         (sem_item_optimizer::worklist_push): Dump how references
20844         a class has.
20845         (sem_item_optimizer::worklist_pop): Use heap.
20846         (sem_item_optimizer::process_cong_reduction): Likewise.
20847         * ipa-icf.h: Use fibonacci_heap insteam of std::list.
20849 2019-06-04  Martin Liska  <mliska@suse.cz>
20851         * ipa-icf.h (struct sem_usage_pair_hash): New.
20852         (sem_usage_pair_hash::hash): Likewise.
20853         (sem_usage_pair_hash::equal): Likewise.
20854         (struct sem_usage_hash): Likewise.
20855         * ipa-icf.c (sem_item::sem_item): Initialize
20856         referenced_by_count.
20857         (sem_item::add_reference): Register a reference
20858         in ref_map and not in target->usages.
20859         (sem_item::setup): Remove initialization of
20860         dead vectors.
20861         (sem_item::~sem_item): Remove usage of dead vectors.
20862         (sem_item::dump): Remove dump of references.
20863         (sem_item_optimizer::sem_item_optimizer): Initialize
20864         m_references.
20865         (sem_item_optimizer::read_section): Remove useless
20866         dump.
20867         (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
20868         (sem_item_optimizer::build_graph): Pass m_references
20869         to ::add_reference.
20870         (sem_item_optimizer::verify_classes): Remove usage of dead
20871         vectors.
20872         (sem_item_optimizer::traverse_congruence_split): Return true
20873         when a class is split.
20874         (sem_item_optimizer::do_congruence_step_for_index): Use
20875         hash_map for look up of (sem_item *, index). That brings
20876         significant speed up.
20877         (sem_item_optimizer::do_congruence_step): Return true
20878         when a split is done.
20879         (congruence_class::is_class_used): Use referenced_by_count.
20881 2019-06-04  Alan Modra  <amodra@gmail.com>
20883         PR target/90689
20884         * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
20885         error.
20887 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
20889         * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
20890         * config/rs6000/rs6000.c (direct_move_p): Adjust.
20891         (rs6000_secondary_reload_simple_move): Adjust.
20892         (rs6000_opt_masks): Neuter the "mfpgpr" option.
20893         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
20894         * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
20895         comment.
20896         (power6x): Adjust.
20897         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
20898         (floatunssi<mode>2_lfiwzx): Adjust.
20899         (fix_trunc<mode>si2_stfiwx): Adjust.
20900         (fixuns_trunc<mode>si2_stfiwx): Adjust.
20901         * config/rs6000/rs6000.opt (mno-mfpgpr): New.
20902         (mfpgpr): Mark as deprecated.
20903         * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
20904         (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
20905         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
20907 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
20909         * config/rs6000/constraints.md (define_register_constraint "wg"):
20910         Delete.
20911         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
20912         RS6000_CONSTRAINT_wg.
20913         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
20914         (rs6000_init_hard_regno_mode_ok): Adjust.
20915         * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
20916         Delete "wg" alternatives.
20917         * doc/md.texi (Machine Constraints): Adjust.
20919 2019-06-03  Alan Modra  <amodra@gmail.com>
20921         * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
20922         (get_uncond_jump_length): Assert length less than INT_MAX and
20923         non-negative.
20925 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
20927         PR middle-end/64242
20928         * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
20929         block.
20930         (expand_builtin_nonlocal_goto): Likewise.
20932 2019-06-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
20934         * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
20935         (aarch64_asm_output_external): Declare.
20936         * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
20937         (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
20938         (aarch64_asm_output_alias): New.
20939         (aarch64_asm_output_external): New.
20940         * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
20941         (ASM_OUTPUT_EXTERNAL): Define.
20943 2019-06-03  Aldy Hernandez  <aldyh@redhat.com>
20944         * tree-vrp.h (value_range_base::nonzero_p): New.
20945         (value_range_base::set_nonnull): Rename to...
20946         (value_range_base::set_nonzero): ...this.
20947         (value_range_base::set_null): Rename to...
20948         (value_range_base::set_zero): ...this.
20949         (value_range::set_nonnull): Remove.
20950         (value_range::set_null): Remove.
20951         * tree-vrp.c (range_is_null): Remove.
20952         (range_is_nonnull): Remove.
20953         (extract_range_from_binary_expr): Use value_range_base::*zero_p
20954         instead of range_is_*null.
20955         (extract_range_from_unary_expr): Same.
20956         (value_range_base::set_nonnull): Rename to...
20957         (value_range_base::set_nonzero): ...this.
20958         (value_range::set_nonnull): Remove.
20959         (value_range_base::set_null): Rename to...
20960         (value_range_base::set_zero): ...this.
20961         (value_range::set_null): Remove.
20962         (extract_range_from_binary_expr): Rename set_*null uses to
20963         set_*zero.
20964         (extract_range_from_unary_expr): Same.
20965         (union_helper): Same.
20966         * vr-values.c (get_value_range): Use set_*zero instead of
20967         set_*null.
20968         (vr_values::extract_range_from_binary_expr): Same.
20969         (vr_values::extract_range_basic): Same.
20971 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
20973         PR driver/90684
20974         * opts.c (parse_and_check_align_values): Allow 4 alignment values.
20976 2019-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20978         * config/aarch64/iterators.md (MAX_OPP): New code attr.
20979         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
20980         Rename to...
20981         (aarch64_<su>abd<mode>_3): ... This.
20982         (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
20984 2019-06-03  Richard Biener  <rguenther@suse.de>
20986         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
20987         full reference tree and record in ref->ref.
20988         (vn_reference_lookup_3): Pass in original ref to
20989         ao_ref_init_from_vn_reference.
20990         (vn_reference_lookup): Likewise.
20991         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
20992         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
20993         Handle non-decl bases in the original reference.
20995 2019-06-03  Martin Liska  <mliska@suse.cz>
20997         * doc/generic.texi: Remove Java Trees.
20999 2019-06-03  Martin Liska  <mliska@suse.cz>
21001         * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
21002         returns 0 when operands are equal.
21004 2019-06-03  Richard Biener  <rguenther@suse.de>
21006         PR tree-optimization/90716
21007         * tree-loop-distribution.c (destroy_loop): Process blocks in
21008         correct order.
21010 2019-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21012         PR target/88837
21013         * vector-builder.h (vector_builder::count_dups): New method.
21014         * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
21015         Declare prototype.
21016         * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
21017         (vec_init<mode><Vel>): New pattern.
21018         * config/aarch64/aarch64.c (emit_insr): New function.
21019         (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
21020         (aarch64_sve_expand_vector_init_insert_elems): Likewise.
21021         (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
21022         (aarch64_sve_expand_vector_init): Define two overloaded functions.
21024 2019-06-03  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
21026         PR tree-optimization/90681
21027         * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
21028         * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
21029         special case for SLP, but fail on non-groupped loads.
21031 2019-06-03  Martin Liska  <mliska@suse.cz>
21033         * cfg.c (debug): Use TDF_DETAILS for debug and
21034         print edge info only once.
21036 2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
21038         PR fortran/90539
21039         * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
21041 2019-06-01  Martin Sebor  <msebor@redhat.com>
21043         PR middle-end/90694
21044         * tree-pretty-print.c (dump_generic_node): Add parentheses.
21046 2019-05-31  Jan Hubicka  <jh@suse.cz>
21048         * alias.c: Include ipa-utils.h.
21049         (get_alias_set): Try to complete ODR type via ODR type hash lookup.
21050         * ipa-devirt.c (prevailing_odr_type): New.
21051         * ipa-utils.h (previaling_odr_type): Declare.
21053 2019-05-31  H.J. Lu  <hongjiu.lu@intel.com>
21054             Hongtao Liu  <hongtao.liu@intel.com>
21056         PR target/89355
21057         * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
21058         NOTE_INSN_DELETED_LABEL check.
21060 2019-05-31  Prachi Godbole  <prachi.godbole@imgtec.com>
21061             Robert Suchanek  <robert.suchanek@mips.com>
21063         * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
21064         and 3rd operands of the fmadd/fmsub/maddv builtin.
21066 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
21068         * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
21069         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
21070         on OMP_SIMD if not nested inside of worksharing loop that also has
21071         lastprivate conditional clause for the same decl.
21072         (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
21073         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
21074         on simd.
21075         (lower_rec_input_clauses): Likewise.  Handle lastprivate conditional
21076         on simd construct.
21077         (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
21078         on simd construct.
21079         (lower_lastprivate_clauses): Likewise.
21080         (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
21081         calling lower_rec_input_clauses.
21082         (lower_omp_for): Likewise.
21083         (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
21084         clause on simd construct.
21085         * omp-expand.c (expand_omp_simd): Initialize cond_var if
21086         OMP_CLAUSE__CONDTEMP_ clause is present.
21088         * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
21089         ivar and lvar.
21091 2019-05-31  Xiong Hu Luo  <luoxhu@linux.ibm.com>
21093         PR c/43673
21094         * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
21095         TEX_D32, TEX_D64 or TEX_D128.
21097 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
21099         * match.pd (~(vec?cst1:cst2)): New transformation.
21101 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
21103         * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
21104         ((size_t)(A /[ex] B) CMP C): New transformation.
21106 2019-05-31  Richard Sandiford  <richard.sandiford@arm.com>
21108         * doc/md.texi: Document define_insn_and_rewrite.
21109         * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
21110         * gensupport.c (queue_elem): Update comment.
21111         (replace_operands_with_dups): New function.
21112         (gen_rewrite_sequence): Likewise.
21113         (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
21114         * read-rtl.c (apply_subst_iterator): Likewise.
21115         (add_condition_to_rtx, named_rtx_p): Likewise.
21116         (rtx_reader::read_rtx_operand): Likewise.
21117         * config/aarch64/aarch64-sve.md
21118         (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
21119         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
21120         define_insn_and_rewrite.
21121         (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
21122         Remove separate define_split.
21124 2019-05-31  Jan Hubicka  <jh@suse.cz>
21126         * tree-ssa-alias.c (type_has_components_p): New function.
21127         (aliasing_component_refs_p): Use it.
21129 2019-05-31  Martin Liska  <mliska@suse.cz>
21131         * gdbhooks.py: Add const_tree to TreePrinter.
21133 2019-05-31  Thomas De Schampheleire  <thomas.de_schampheleire@nokia.com>
21135         PR debug/86964
21136         * common.opt (feliminate-unused-debug-symbols): Enable by default.
21137         * doc/invoke.texi (Debugging Options): Document new default of
21138         -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
21140 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
21142         PR tree-optimization/90671
21143         * tree-ssa-threadupdate.c (ssa_create_duplicates): If
21144         template_block used to be empty on the first call, don't use
21145         gsi_split_seq_after and gsi_insert_seq_after, but remember whole
21146         seq with bb_seq and set it with set_bb_seq.
21148 2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
21150         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
21152 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
21153             Michael Meissner  <meissner@linux.ibm.com>
21155         * config/rs6000/predicates.md (pcrel_address): New define_predicate.
21156         (prefixed_mem_operand): Likewise.
21157         (non_prefixed_mem_operand): Likewise.
21158         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
21159         prototype.
21160         * config/rs6000/rs6000.c (print_operand_address): Handle
21161         PC-relative addresses.
21162         (mode_supports_prefixed_address_p): New function.
21163         (rs6000_prefixed_address): New function.
21164         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
21165         (SYMBOL_REF_PCREL_P): Likewise.
21167 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
21169         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
21170         (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
21171         (gimplify_omp_for): If worksharing loop with lastprivate conditional
21172         is nested inside of parallel region, add _condtemp_ clause to both.
21173         * tree-nested.c (convert_nonlocal_omp_clauses,
21174         convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
21175         assertion failure.
21176         * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
21177         member.
21178         * omp-general.c (omp_extract_for_data): Compute it.
21179         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
21180         (lower_rec_input_clauses): Likewise.
21181         (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
21182         clause is already present, just add one further one after it.
21183         (lower_lastprivate_clauses): Handle cond_ptr with array type.
21184         (lower_send_shared_vars): Clear _condtemp_ vars.
21185         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
21186         or section or taskgroup.
21187         * omp-expand.c (determine_parallel_type): Disallow combining only if
21188         first OMP_CLAUSE__CONDTEMP_ has pointer type.  Disallow combining
21189         of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
21190         (expand_omp_for_generic, expand_omp_for_static_nochunk,
21191         expand_omp_for_static_chunk, expand_omp_for): Use
21192         fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
21193         determine if a special set of API routines are needed and if condtemp
21194         needs to be initialized, while always initialize cond_var if
21195         fd->lastprivate_conditional is non-zero.
21197 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
21198             Michael Meissner  <meissner@linux.ibm.com>
21200         * config/rs6000/constraints.md (eI): New constraint.
21201         * config/rs6000/predicates.md (cint34_operand): New predicate.
21202         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
21203         (SIGNED_34BIT_OFFSET_P): Likewise.
21204         * doc/md.texi (eI): Document constraint.
21206 2019-05-30  Sylvia Taylor  <sylvia.taylor@arm.com>
21208         * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
21210 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
21211             Michael Meissner  <meissner@linux.ibm.com>
21213         * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
21214         (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
21215         (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
21216         (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
21217         (OTHER_FUTURE_MASKS): Likewise.
21218         (POWERPC_MASKS): Likewise.
21219         * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
21220         specified without -mprefixed-addr or -mcpu=future.  Error if
21221         -mprefixed-addr is specified without -mcpu=future.
21222         (rs6000_opt_masks): Add entry for prefixed-addr.
21223         * rs6000.opt (mprefixed-addr): New option.
21225 2019-05-30  Sam Tebbs  <sam.tebbs@arm.com>
21227         * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
21228         cfun->is_thunk check.
21230 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
21232         * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
21233         to length.
21235 2019-05-30  Martin Liska  <mliska@suse.cz>
21237         * gdbinit.in: Fix 'ptc' command.  Add trt
21238         that prints TREE_TYPE($).
21240 2019-05-29  Bill Schmidt  <wschmidt@linux.ibm.com>
21241             Alan Modra  <amodra@gmail.com>
21243         * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
21244         calls here...
21245         (rs6000_indirect_call_template_1): ...and here.
21246         (rs6000_pltseq_template): Handle plt_pcrel34.  Rework tocsave,
21247         plt16_ha, plt16_lo, mtctr indirect calls.  Use
21248         rs6000_pltseq_enum.
21249         (rs6000_decl_ok_for_sibcall): New function.
21250         (rs6000_function_ok_for_sibcall): Refactor.
21251         (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
21252         (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
21253         when pcrel.  Reorganize.
21254         (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
21255         * rs6000.h (rs6000_pltseq_enum): New enum.
21256         * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
21257         (*pltseq_tocsave): Use rs6000_pltseq_enum.
21258         (*pltseq_plt16_ha): Likewise.
21259         (*pltseq_plt16_lo): Likewise.
21260         (*pltseq_mtctr): Likewise.
21261         (*pltseq_plt_pcrel): New insn.
21262         (*call_local_aix): Handle @notoc calls.
21263         (*call_value_local_aix): Likewise.
21264         (*call_nonlocal_aix): Adjust lengths for pcrel calls.
21265         (*call_value_nonlocal_aix): Likewise.
21266         (*call_indirect_pcrel): New insn.
21267         (*call_value_indirect_pcrel): Likewise.
21269 2019-05-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21271         * config/i386/sse.md (*save_multiple<mode>): Rename from
21272         save_multiple<mode>.
21273         (*restore_multiple<mode>): Rename from restore_multiple<mode>.
21274         (*restore_multiple_and_return<mode>): Rename from
21275         restore_multiple_and_return<mode>.
21276         (*restore_multiple_leave_return<mode>): Rename from
21277         restore_multiple_leave_return<mode>.
21279 2019-05-29  Yoshinori Sato  <ysato@users.sourceforge.jp>
21281         * config.gcc (rx-*-linux*): New target.
21282         * config/rx/elf.opt: New file.
21283         * config/rx/linux.h: Likewise.
21284         * config/rx/t-linux: Likewise.
21285         * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
21286         make it zero.
21287         * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
21288         (ASM_APP_OFF): Likewise.
21289         * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
21290         moved elsewhere.
21292 2019-05-29  Jan Hubicka  <jh@suse.cz>
21294         * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
21295         variants are pointer equivalent.
21297 2019-05-29  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
21299         * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
21300         * config/aarch64/aarch64-sve2.md: New file.
21301         (<u>avg<mode>3_floor): New pattern.
21302         (<u>avg<mode>3_ceil): Likewise.
21303         (*<sur>h<addsub><mode>): Likewise.
21304         * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
21305         * config/aarch64/aarch64.md: Include aarch64-sve2.md.
21307 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
21309         PR bootstrap/90543
21310         * optc-save-gen.awk: In cl_optimization_print, use correct condition
21311         for var_opt_string printing.  In cl_optimization_print_diff, print
21312         (null) instead of invoking undefined behavior if one of the
21313         var_opt_string pointers is NULL and use && instead of first || in the
21314         guarding condition.  For var_target_other options, handle const char *
21315         target variables similarly to const char * optimize node variables.
21317 2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
21319         * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
21320         AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
21321         * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
21322         Add autib1716 and pacib1716 initialisation.
21323         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
21324         for autib1716 and pacib1716.
21325         * config/aarch64/aarch64-protos.h (aarch64_key_type,
21326         aarch64_post_cfi_startproc): Define.
21327         * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
21328         * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
21329         aarch64_handle_pac_ret_protection): Set default sign key to A.
21330         * config/aarch64/aarch64.c (aarch64_expand_epilogue,
21331         aarch64_expand_prologue): Add check for b-key.
21332         * config/aarch64/aarch64.c (aarch64_ra_sign_key,
21333         aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
21334         * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
21335         * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
21336         * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
21337         UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
21338         UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
21339         * config/aarch64/aarch64.md (do_return): Add check for b-key.
21340         * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
21341         pauth_hint_num_a with pauth_hint_num.
21342         * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
21343         pauth_hint_num_a with pauth_hint_num.
21344         * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
21345         * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
21346         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
21347         * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
21348         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
21349         * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
21350         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
21351         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
21352         * config/aarch64/iterators.md (pauth_hint_num_a): Replace
21353         UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
21354         UNSPEC_AUTIA1716 respectively.
21355         * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
21356         pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
21357         UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
21358         * doc/invoke.texi (-mbranch-protection): Add b-key type.
21359         * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
21360         UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
21362 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
21364         * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
21365         (gimplify_scan_omp_clauses): Initialize ctx->clauses.
21366         (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
21367         explicit clause on combined parallel into implicit shared clause.
21368         (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
21369         and firstprivate if the decl has one too from combined parallel to
21370         the worksharing construct.
21372 2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
21373             Michael Meissner  <meissner@linux.ibm.com>
21375         * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
21377 2019-05-28  Michael Meissner  <meissner@linux.ibm.com>
21379         * rtl.h (LABEL_REF_P): New #define.
21381 2019-05-28  John David Anglin  <danglin@gcc.gnu.org>
21383         * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
21385 2019-05-28  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
21387         * internal-fn.c: Marked mask_load_direct as vectorizable.
21388         * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
21389         * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
21390         combined even if masks different with allow_slp_p param.
21391         (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
21392         * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
21393         dissolve SLP-only vectorizable groups when SLP has been discarded.
21394         (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
21395         * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
21396         masks.
21397         (vect_build_slp_tree_1): Fixed comment typo.
21398         (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
21399         * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
21400         loads for SLP only.
21401         * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
21402         vectorizable.
21403         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
21405 2019-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21407         * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
21408         Remove obsolete use_thunk reference.
21409         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
21410         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
21411         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
21412         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
21413         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
21414         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
21415         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
21416         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
21417         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
21419 2019-05-28  Nathan Sidwell  <nathan@acm.org>
21421         * tree.h (IDENTIFIER_ANON_P): New.
21422         (anon_aggrname_format, anon_aggname_p): Don't declare.
21423         (make_anon_name): Declare.
21424         * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
21425         (hash_tree): Likewise.
21426         * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
21427         * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
21428         (anon_cnt, make_anon_name): New.
21430 2019-05-28  Martin Liska  <mliska@suse.cz>
21432         PR other/90315
21433         * opts-global.c (decode_options): Print help for all
21434         help_option_arguments.
21435         * opts.c (print_help): Add new argument.
21436         (common_handle_option): Remember all values into
21437         help_option_arguments.
21438         * opts.h (print_help): Add new argument.
21440 2019-05-28  Martin Liska  <mliska@suse.cz>
21442         PR ipa/90555
21443         * ipa-icf-gimple.c (func_checker::compare_loops): New function.
21444         * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
21445         (func_checker::compare_bb): Call compare_loops.
21447 2019-05-27  Jakub Jelinek  <jakub@redhat.com>
21449         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
21450         on sections construct.
21451         * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
21452         construct.
21453         (lower_omp_sections): Handle lastprivate conditional.
21454         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
21455         lastprivate_conditional_map.
21456         * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
21458         * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
21459         critical, taskgroup and section regions when looking for a region
21460         with non-NULL lastprivate_conditional_map.
21462 2019-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21464         * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
21465         (*ix86_gen_sub3): Ditto.
21466         (*ix86_gen_sub3_carry): Ditto.
21467         (*ix86_gen_one_cmpl2): Ditto.
21468         (*ix86_gen_andsp): Ditto.
21469         (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
21470         (gen_and2_insn): New static function.
21471         (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
21472         Use gen_add3_insn instead of ix86_gen_add3.
21473         (ix86_expand_split_stack_prologue): Use gen_add2_insn
21474         instead of ix86_gen_add3.
21475         (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
21476         Use gen_sub3_insn instead of ix86_gen_sub3.
21477         * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
21478         instead of ix86_gen_add3.
21479         (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
21480         ix86_gen_add3.  Use gen_sub3_insn instead of ix86_gen_sub3.
21481         (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
21482         * config/i386/i386-options.c (ix86_option_override_internal):
21483         Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
21484         ix86_gen_one_cmpl2 and ix86_gen_andsp.
21486 2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
21488         * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
21489         and DW_OP_GNU_const_index opcodes.
21491 2019-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21493         * config/i386/i386.h (STACK_SIZE_MODE): Define.
21495 2019-05-27  Richard Biener  <rguenther@suse.de>
21497         PR tree-optimization/90637
21498         * tree-ssa-sink.c (statement_sink_location): Honor the
21499         computed sink location for single-uses.
21501 2019-05-27  Richard Biener  <rguenther@suse.de>
21503         PR middle-end/90610
21504         * match.pd (vec_perm): Avoid clobbering op0 when not generating
21505         a bit-insert.
21507 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21509         * config/i386/i386.md (@sub<mode>3_carry): Rename
21510         from sub<mode>3_carry.
21511         (@leave_<mode>): New expander.
21512         (*leave): Rename from leave.
21513         (*leave_rex64): Rename from leave_rex64.
21514         (@monitorx_<mode>): Rename from monitorx_<mode>.
21515         (@clzero_<mode>): Rename from clzero_<mode>.
21516         * config/i386/sse.md (@sse3_monitor_<mode>): Rename
21517         from sse3_monitor_<mode>.
21518         * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
21519         (*ix86_gen_leave): Ditto.
21520         (*ix86_gen_monitor): Ditto.
21521         (*ix86_gen_monitorx): Ditto.
21522         (*ix86_gen_clzero): Ditto.
21523         (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
21524         * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
21525         Use gen_sub3_carry instead of ix86_gen_sub3_carry.
21526         (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
21527         Use gen_sse3_monitor instead of ix86_gen_monitor.
21528         <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
21529         instead of ix86_gen_monitorx.
21530         <case IX86_BUILTIN_CLZERO>: Use gen_clzero
21531         instead of ix86_gen_clzero.
21532         * config/i386/i386-options.c (ix86_option_override_internal):
21533         Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
21534         ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
21536 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21538         * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
21539         Rename from tls_global_dynamic_64_<mode>.
21540         (@tls_local_dynamic_base_64_<mode>): Rename from
21541         tls_local_dynamic_base_64_<mode>.
21542         * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
21543         Remove indirect function.
21544         (*ix86_gen_tls_local_dynamic_base_64): Ditto.
21545         (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
21546         instead of ix86_gen_tls_global_dynamic_64.
21547         Use gen_tls_local_dynamic_base_64 instead of
21548         ix86_gen_tls_local_dynamic_base_64.
21549         * config/i386/i386-options.c (ix86_option_override_internal):
21550         Do not initialize ix86_gen_tls_global_dynamic_64 and
21551         ix86_gen_tls_local_dynamic_base_64.
21553 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21555         * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
21556         Rename from pro_epilogue_adjust_stack_<mode>_add.
21557         (@pro_epilogue_adjust_stack_sub_<mode>)
21558         Rename from pro_epilogue_adjust_stack_<mode>_sub.
21559         (@allocate_stack_worker_probe_<mode>):
21560         Rename from allocate_stack_worker_probe_<mode>.
21561         (allocate_stack): Use gen_allocate_stack_worker_probe.
21562         (probe_stack): Use gen_probe_stack_1.
21563         (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
21564         (@adjust_stack_and_probe_<mode>): Rename from
21565         adjust_stack_and_probe<mode>.
21566         (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
21567         (stack_protect_set): Use gen_stack_protect_set_1.
21568         (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
21569         (stack_protect_test): Use gen_stack_protect_test_1.
21570         (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
21571         * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
21572         Remove indirect function.
21573         (*ix86_gen_adjust_stack_and_probe): Ditto.
21574         (*ix86_gen_probe_stack_range): Ditto.
21575         (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
21576         instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
21577         (ix86_adjust_stack_and_probe_stack_clash): Use
21578         gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
21579         (ix86_adjust_stack_and_probe): Ditto.
21580         (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
21581         of ix86_gen_probe_stack_range.
21582         (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
21583         instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
21584         * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
21585         Include insn-opinit.h.  Use code_for_stack_protect_test_1 instead of
21586         CODE_FOR_stack_protect_test_{si,di}.
21587         * config/i386/i386-options.c (ix86_option_override_internal):
21588         Do not initialize ix86_gen_allocate_stack_worker,
21589         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
21591 2019-05-26  Gerald Pfeifer  <gerald@pfeifer.com>
21593         * doc/invoke.texi (Link Options): Many editorial changes around
21594         -flinker-output.
21596 2019-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21598         * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
21599         pre-Solaris 11 referene and most Studio compiler details.
21601 2019-05-24  John David Anglin  <danglin@gcc.gnu.org>
21603         PR target/90530
21604         * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
21605         DImode to SImode in floating-point registers on 64-bit target.
21606         * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
21607         register_operand in xmpyu patterns.
21609 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
21611         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
21612         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
21613         OMP_CLAUSE__REDUCTEMP_.
21614         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
21615         OMP_CLAUSE__CONDTEMP_.
21616         (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
21617         * tree-pretty-print.c (dump_omp_clause): Likewise.
21618         * tree-nested.c (convert_nonlocal_omp_clauses,
21619         convert_local_omp_clauses): Likewise.
21620         * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
21621         instead of decimal.  Add GOVD_LASTPRIVATE_CONDITIONAL.
21622         (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
21623         on OMP_FOR.
21624         (gimplify_omp_for): Warn and disable conditional modifier from
21625         lastprivate on loop iterators.
21626         * omp-general.h (struct omp_for_data): Add lastprivate_conditional
21627         member.
21628         * omp-general.c (omp_extract_for_data): Initialize it.
21629         * omp-low.c (struct omp_context): Add lastprivate_conditional_map
21630         member.
21631         (delete_omp_context): Delete it.
21632         (lower_lastprivate_conditional_clauses): New function.
21633         (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
21634         handle lastprivate conditional clauses.
21635         (lower_reduction_clauses): Add CLIST argument, emit it into
21636         the critical section if any.
21637         (lower_omp_sections): Adjust lower_lastprivate_clauses and
21638         lower_reduction_clauses callers.
21639         (lower_omp_for_lastprivate): Add CLIST argument, pass it through
21640         to lower_lastprivate_clauses.
21641         (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
21642         lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
21643         clist into a critical section if not emitted there already by
21644         lower_reduction_clauses.
21645         (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
21646         callers.
21647         (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
21648         conditional variables.
21649         * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
21650         clause is present.
21651         (expand_omp_for_generic, expand_omp_for_static_nochunk,
21652         expand_omp_for_static_chunk): Handle lastprivate conditional.
21653         (expand_omp_for): Handle fd.lastprivate_conditional like
21654         fd.have_reductemp.
21656 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
21658         * config/gcn/gcn-run.c (main): Set a non-zero return value if the
21659         kernel does not exit cleanly.
21660         * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
21662 2019-05-24  Jason Merrill  <jason@redhat.com>
21664         Revert:
21665         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
21667 2019-05-24  Richard Biener  <rguenther@suse.de>
21669         PR testsuite/90607
21670         * tree-loop-distribution.c (struct partition): Add location
21671         member.
21672         (partition_alloc): Initialize all fields.
21673         (generate_memset_builtin): Use the location recorded in the
21674         partition for the generated call.
21675         (generate_memcpy_builtin): Likewise.
21676         (classify_partition): Record the location of a single store
21677         as location for the partition.
21679 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
21681         * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
21682         for lo-part.
21684 2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>
21686         PR target/90588
21687         * common/config/aarch64/aarch64-common.c
21688         (aarch64_rewrite_selected_cpu): Change local temporary variable
21689         type from unsigned long to uint64_t.
21690         * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
21691         aarch64_get_extension_string_for_isa_flags): Change declaration to
21692         match new definition by replacing unsigned long with uint64_t.
21694 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
21696         PR target/90568
21697         * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
21698         gen_attr_type just once instead of 4-7 times.  Formatting fixes.
21699         Handle stack_protect_test_<mode> codegen similarly to corresponding
21700         sub instruction.
21702 2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>
21704         * config/i386/darwin.h: Reject -mfentry*.
21705         * doc/sourcebuild.texi: Document mfentry target support.
21707 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
21709         * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
21710         Rename to rs6000_global_entry_point_prologue_needed_p.  Return
21711         false for PC-relative functions.
21712         (rs6000_output_function_prologue): Change called function name to
21713         rs6000_global_entry_point_prologue_needed_p.  Emit ".localentry
21714         name,1" for PC-relative functions.
21715         (rs6000_elf_declare_function_name): Change called function name to
21716         rs6000_global_entry_point_prologue_needed_p.
21718 2019-05-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21720         PR target/90552
21721         * config/i386/i386.c (gen_rtx_cost):
21722         Use ix86_tune_cost instead of ix86_cost.
21724 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
21725             Michael Meissner  <meissner@linux.ibm.com>
21726             Segher Boessenkool  <segher@kernel.crashing.org>
21728         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
21729         OPTION_MASK_PCREL.
21730         (POWERPC_MASKS): Add OPTION_MASK_PCREL.
21731         * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
21732         (rs6000_fndecl_pcrel_p): Likewise.
21733         * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
21734         error if -mpcrel is requested without -mcpu=future.
21735         (rs6000_opt_masks): Add entry for pcrel.
21736         (rs6000_fndecl_pcrel_p): New function.
21737         (rs6000_pcrel_p): Likewise.
21738         * config/rs6000/rs6000.opt (mpcrel): New option.
21739         * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
21741 2019-05-23  Jan Hubicka  <jh@suse.cz>
21742             Martin Liska  <mliska@suse.cz>
21744         PR tree-optimization/90576
21745         * tree-ssa-alias.c (compare_sizes): Remove dead calls to
21746         poly_int_tree_p.
21747         (aliasing_component_refs_p): Fix three way size compare conditional;
21748         give up earlier in case we can not decide on equivalence.
21750 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
21751             Michael Meissner  <meissner@linux.ibm.com>
21752             Segher Boessenkool  <segher@kernel.crashing.org>
21754         * config.gcc: Add future cpu.
21755         * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
21756         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
21757         #define.
21758         (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
21759         (RS6000_CPU): New instantiation for future cpu.
21760         * config/rs6000/rs6000-opts.h (enum processor_type): Add
21761         PROCESSOR_FUTURE.
21762         * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
21763         PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
21764         * config/rs6000/rs6000-tables.opt: Regenerate.
21765         * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
21766         PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
21767         (rs6000_machine_from_flags): Handle future cpu.
21768         (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
21769         PROCESSOR_POWER9 for now.
21770         (rs6000_adjust_cost): Likewise.
21771         (rs6000_issue_rate): Likewise.
21772         (rs6000_register_move_cost): Likewise.
21773         (rs6000_opt_masks): Add entry for future.
21774         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
21775         (MASK_FUTURE): New #define.
21776         * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
21777         * config/rs6000/rs6000.opt (mfuture): New target option.
21778         * doc/invoke.texi (mcpu): Add future cpu.
21780 2019-05-23  Martin Liska  <mliska@suse.cz>
21782         PR c++/90587
21783         * tree-ssa-uninit.c (value_sat_pred_p): The result of &
21784         operation points to a temporary (pointed via tree_to_wide_ref)
21785         that is out of scope after the &.
21787 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
21789         PR c++/90592
21790         * doc/extend.texi (Function Names): Add missing word.
21792 2019-05-23  Richard Biener  <rguenther@suse.de>
21794         PR tree-optimization/88440
21795         * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
21796         at -O[2s]+.
21797         * tree-loop-distribution.c (generate_memset_builtin): Fold the
21798         generated call.
21799         (generate_memcpy_builtin): Likewise.
21800         (distribute_loop): Pass in whether to only distribute patterns.
21801         (prepare_perfect_loop_nest): Also allow size optimization.
21802         (pass_loop_distribution::execute): When optimizing a loop
21803         nest for size allow pattern replacement.
21805 2019-05-23  Jakub Jelinek  <jakub@redhat.com>
21807         PR target/90568
21808         * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
21809         of xor.
21811 2019-05-23  Martin Liska  <mliska@suse.cz>
21813         PR sanitizer/90570
21814         * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
21815         expression similarly to gimplify_decl_expr.
21817 2019-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21819         * cse.c (cse_dump_path): s/dump_file/f.
21821 2019-05-22  David Malcolm  <dmalcolm@redhat.com>
21823         PR c++/90462
21824         * diagnostic-format-json.cc: Include "selftest.h".
21825         (json_from_expanded_location): Only add "file" key for non-NULL
21826         file strings.
21827         (json_from_location_range): Don't add "start" and "finish"
21828         children if they are UNKNOWN_LOCATION.
21829         (selftest::test_unknown_location): New selftest.
21830         (selftest::test_bad_endpoints): New selftest.
21831         (selftest::diagnostic_format_json_cc_tests): New function.
21832         * json.cc (json::object::get): New function.
21833         (selftest::test_object_get): New selftest.
21834         (selftest::json_cc_tests): Call it.
21835         * json.h (json::object::get): New decl.
21836         * selftest-run-tests.c (selftest::run_tests): Call
21837         selftest::diagnostic_format_json_cc_tests.
21838         * selftest.h (selftest::diagnostic_format_json_cc_tests): New
21839         decl.
21841 2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
21842             Andrew Stubbs  <amd@codesourcery.com>
21844         * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
21845         * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
21846         (kernel): Rename to...
21847         (main_kernel): ... this.
21848         (load_image): Load _init_array and _fini_array kernels.
21849         (run): Add argument for kernel to run.
21850         (main): Run init_array_kernel before main_kernel, and
21851         fini_array_kernel after.
21852         * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
21853         amdgpu_hsa_kernel attribute on functions.
21854         (gcn_disable_constructors): Delete.
21855         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
21856         * config/gcn/crt0.c (size_t): Define.
21857         (_init_array, _fini_array): New.
21858         (__preinit_array_start, __preinit_array_end,
21859         __init_array_start, __init_array_end,
21860         __fini_array_start, __fini_array_end): Declare weak references.
21862 2019-05-22  Andrew Stubbs  <ams@codesourcery.com>
21864         * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
21866 2019-05-22  Jason Merrill  <jason@redhat.com>
21868         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
21870 2019-05-22  H.J. Lu  <hongjiu.lu@intel.com>
21872         PR target/88483
21873         * config/i386/i386-options.c (ix86_init_machine_status): Set
21874         stack_frame_required to true.
21875         * config/i386/i386.c (ix86_get_frame_size): New function.
21876         (ix86_frame_pointer_required): Replace get_frame_size with
21877         ix86_get_frame_size.
21878         (ix86_compute_frame_layout): Likewise.
21879         (ix86_find_max_used_stack_alignment): Changed to void.  Set
21880         stack_frame_required.
21881         (ix86_finalize_stack_frame_flags): Always call
21882         ix86_find_max_used_stack_alignment.  Replace get_frame_size with
21883         ix86_get_frame_size.
21884         * config/i386/i386.h (machine_function): Add stack_frame_required.
21886 2019-05-22  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21888         * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
21890 2019-05-22  Matthew Malcomson  <matthew.malcomson@arm.com>
21892         * common/config/aarch64/aarch64-common.c
21893         (struct aarch64_option_extension, struct processor_name_to_arch,
21894         struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
21895         aarch64_contains_opt,
21896         aarch64_get_extension_string_for_isa_flags): Change type of
21897         variables storing flags to uint64_t.
21898         * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
21899         sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
21900         * config/aarch64/aarch64.c (struct processor,
21901         aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
21902         aarch64_validate_march, aarch64_override_options,
21903         aarch64_option_print, aarch64_handle_attr_isa_flags,
21904         aarch64_declare_function_name, aarch64_start_file): Make flag
21905         variables uint64_t.
21906         * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
21907         AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
21908         AARCH64_FL_SVE2_BITPERM): New macro feature flags.
21909         * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
21910         * config/aarch64/driver-aarch64.c
21911         (struct aarch64_arch_extension, struct aarch64_core_data,
21912         struct aarch64_arch_driver_info, host_detect_local_cpu): Make
21913         flag variables uint64_t.
21914         * doc/invoke.texi: Add documentation for new arguments.
21916 2019-05-22  Richard Biener  <rguenther@suse.de>
21918         * alias.c (ao_ref_from_mem): Move stack-slot sharing
21919         rewrite ...
21920         * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
21922 2019-05-22  Martin Liska  <mliska@suse.cz>
21924         PR lto/90500
21925         * doc/extend.texi: Document the change.
21927 2019-05-22  Richard Biener  <rguenther@suse.de>
21929         PR tree-optimization/90450
21930         * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
21931         (mem_ref_hasher::equal): Check it.
21932         (mem_ref_alloc): Initialize it.
21933         (gather_mem_refs_stmt): Set it.
21935 2019-05-22  Richard Biener  <rguenther@suse.de>
21937         * gimple-fold.c (arith_code_with_undefined_signed_overflow):
21938         Add ABS_EXPR.
21939         (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
21940         as ABSU_EXPR.
21942 2019-05-22  Alan Modra  <amodra@gmail.com>
21944         * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
21945         (ASM_CPU_SPEC): Conditionally add -many.
21946         * config/rs6000/rs6000.c (rs6000_machine): New static var.
21947         (rs6000_machine_from_flags, emit_asm_machine): New functions..
21948         (rs6000_file_start): ..extracted from here, and modified to
21949         test all ISA bits.
21950         (rs6000_output_function_prologue): Emit .machine as necessary.
21952 2019-05-22  Hans-Peter Nilsson  <hp@axis.com>
21954         PR middle-end/90553
21955         * ira-lives.c (process_bb_node_lives): Consider defs
21956         for a call insn to be die before the call, not after.
21958         * function.c (assign_parm_setup_block): Raise alignment of
21959         stacked parameter only for STRICT_ALIGNMENT targets.
21961 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
21963         * config/rs6000/constraints.md (define_register_constraint "wz"):
21964         Delete.
21965         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21966         RS6000_CONSTRAINT_wz.
21967         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21968         (rs6000_init_hard_regno_mode_ok): Adjust.
21969         * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
21970         * doc/md.texi (Machine Constraints): Adjust.
21972 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
21974         * config/rs6000/constraints.md (define_register_constraint "wl"):
21975         Delete.
21976         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21977         RS6000_CONSTRAINT_wl.
21978         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21979         (rs6000_init_hard_regno_mode_ok): Adjust.
21980         * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
21981         * doc/md.texi (Machine Constraints): Adjust.
21983 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
21985         * config/rs6000/constraints.md (define_register_constraint "wm"):
21986         Delete.
21987         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21988         RS6000_CONSTRAINT_wm.
21989         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
21990         (rs6000_init_hard_regno_mode_ok): Adjust.
21991         * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
21992         * doc/md.texi (Machine Constraints): Adjust.
21994 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
21996         * config/rs6000/constraints.md (define_register_constraint "wk"):
21997         Delete.
21998         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
21999         RS6000_CONSTRAINT_wk.
22000         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22001         (rs6000_init_hard_regno_mode_ok): Adjust.
22002         * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
22003         * doc/md.texi (Machine Constraints): Adjust.
22005 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
22007         * config/rs6000/constraints.md (define_register_constraint "wj"):
22008         Delete.
22009         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22010         RS6000_CONSTRAINT_wj.
22011         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22012         (rs6000_init_hard_regno_mode_ok): Adjust.
22013         * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
22014         (VS_64dm): Delete.
22015         * config/rs6000/vsx.md: Ditto.
22016         * doc/md.texi (Machine Constraints): Adjust.
22018 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
22020         * config/rs6000/constraints.md (define_register_constraint "wh"):
22021         Delete.
22022         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22023         RS6000_CONSTRAINT_wh.
22024         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22025         (rs6000_init_hard_regno_mode_ok): Adjust.
22026         * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
22027         * doc/md.texi (Machine Constraints): Adjust.
22029 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22031         PR target/90547
22032         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
22033         Avoid calling gen_lowpart with CONST operand.
22035 2019-05-21  Alexandre Oliva  <aoliva@redhat.com>
22037         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
22038         field template_last_to_copy.
22039         (ssa_create_duplicates): Set it, and use it.  Attempt to
22040         preserve more debug stmts.
22042 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22044         * config/i386/sse.md (VF1_AVX2): New mode iterator.
22045         (signbit<mode>2): New expander
22047 2019-05-21  James Clarke  <jrtc27@jrtc27.com>
22049         PR bootstrap/87338
22050         * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
22051         instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
22053 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22055         * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
22056         %ebx and %ecx bafore calling cpuid with leaf 1 or
22057         non-constant leaf argument.
22059 2019-05-21  Alan Modra  <amodra@gmail.com>
22061         PR target/90545
22062         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
22063         power9 direct move cost.
22065 2019-05-21  Richard Biener  <rguenther@suse.de>
22067         PR middle-end/90510
22068         * fold-const.c (fold_read_from_vector): New function.
22069         * fold-const.h (fold_read_from_vector): Declare.
22070         * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
22071         single-element insert permutations.  Canonicalize selector
22072         further and fix issue with last commit.
22074 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
22076         * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
22077         parameter with default value false to declaration.
22078         (split_edges_for_insertion): New inline function.  Wrapper for
22079         split_critical_edges with for_edge_insertion_p = true.
22080         * tree-cfg.c (split_critical_edges): Don't split non-critical
22081         edges if for_edge_insertion_p is false.  Fix whitespace.
22082         * tree-ssa-pre.c (pass_pre::execute): Call
22083         split_edges_for_insertion instead of split_critical_edges.
22084         * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
22085         * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
22086         (pass_data_sink_code): Update function name in the comment.
22088 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
22090         * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
22091         around is_value_included_in that knows how to handle BIT_AND_EXPR.
22092         (is_pred_expr_subset_of): Use the new function.  Handle more cases where
22093         code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
22094         positives.
22096 2019-05-21  Martin Liska  <mliska@suse.cz>
22098         * config/rs6000/driver-rs6000.c (elf_platform): Do not use
22099         an extra newline.
22100         * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
22101         (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
22102         vec_lvsr.
22103         * config/rs6000/rs6000.c (rs6000_option_override_internal):
22104         Quote a C type.
22105         (rs6000_function_arg): Likewise.
22106         (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
22107         (rs6000_expand_ternop_builtin): Use interval syntax.
22108         (get_element_number): Likewise.
22109         (altivec_expand_builtin): Likewise.
22110         (rs6000_get_function_versions_dispatcher): Quote target_clones.
22112 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
22114         PR c++/59813
22115         PR target/90418
22116         * function.h (struct function): Add calls_eh_return member.
22117         * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
22118         gimplifying __builtin_eh_return call.
22119         * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
22120         to cfun.
22121         (expand_call_inline): Or in src_cfun->calls_eh_return into
22122         dst_cfun->calls_eh_return.
22123         * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
22124         cfun->calls_eh_return.
22125         * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
22126         * lto-streamer-out.c (output_struct_function_base): Write
22127         calls_eh_return.
22129 2019-05-20  Marc Glisse  <marc.glisse@inria.fr>
22131         PR rtl-optimization/43147
22132         * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
22133         IX86_BUILTIN_SHUFPD.
22135 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
22137         * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
22138         (refs_may_alias_p_1): ... here; update stats.
22139         (refs_may_alias_p): Do not update stats here.
22141 2019-05-20  Richard Biener  <rguenther@suse.de>
22143         * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
22144         doesn't produce pointers.
22145         {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
22146         the first operand points to.
22148 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
22150         * tree-ssa-alias.c (compare_sizes): New function.
22151         (sompare_type_sizes): New function
22152         (aliasing_component_refs_p): Use it.
22153         (indirect_ref_may_alias_decl_p): Likewise.
22155 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22157         * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
22159 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22161         * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
22162         (LIBLSAN_EARLY_SPEC): Likewise.
22163         * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
22165 2019-05-20  Martin Liska  <mliska@suse.cz>
22167         * config/i386/i386.c (ix86_libc_has_fast_function):
22168         Add ATTRIBUTE_UNUSED for the argument.
22170 2019-05-20  Richard Biener  <rguenther@suse.de>
22172         * gimple-match-head.c: Include vec-perm-indices.h.
22173         * generic-match-head.c: Likewise.
22174         * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
22175         is included.
22176         * fold-const.c (fold_vec_perm): Export.
22177         (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
22178         (match.pd): ...here.
22180 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
22182         * cfgloop.h (struct loop): Add simdlen member.
22183         * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
22184         * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
22185         * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
22186         as new argument to autovectorize_vector_sizes target hook.  If
22187         loop->simdlen, pick up vector size where the vectorization factor
22188         is equal to loop->simd, and if there is none, fall back to the first
22189         successful one.
22190         (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
22191         caller.
22192         * omp-low.c (omp_clause_aligned_alignment): Likewise.
22193         * omp-general.c (omp_max_vf): Likewise.
22194         * optabs-query.c (can_vec_mask_load_store_p): Likewise.
22195         * tree-vect-slp.c (vect_slp_bb): Likewise.
22196         * target.def (autovectorize_vector_sizes): Add ALL argument and
22197         document it.
22198         * doc/tm.texi: Adjust documentation.
22199         * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
22200         * targhooks.h (default_autovectorize_vector_sizes): Likewise.
22201         * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
22202         bool argument.
22203         * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
22204         * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
22205         * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
22206         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.  If
22207         true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
22208         preferred vector size is not 512-bit or 256-bit, just put those
22209         unpreferred ones last.
22211 2019-05-20  Martin Liska  <mliska@suse.cz>
22213         * targhooks.c (default_libc_has_fast_function): New function.
22214         * targhooks.h (default_libc_has_fast_function): Likewise.
22216 2019-05-20  Martin Liska  <mliska@suse.cz>
22218         PR middle-end/90263
22219         * builtins.c (expand_builtin_memory_copy_args): When having a
22220         target with fast mempcpy implementation do now use memcpy.
22221         * config/i386/i386.c (ix86_libc_has_fast_function): New.
22222         (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
22223         * doc/tm.texi: Likewise.
22224         * doc/tm.texi.in: Likewise.
22225         * target.def:
22226         * expr.c (emit_block_move_hints): Add 2 new arguments.
22227         * expr.h (emit_block_move_hints): Bail out when libcall
22228         to memcpy would be used.
22230 2019-05-20  Martin Liska  <mliska@suse.cz>
22232         * profile-count.c: Add vertical spacing in order
22233         to separate functions.
22234         * profile-count.h: Likewise.
22236 2019-05-20  Martin Liska  <mliska@suse.cz>
22238         * profile-count.h: Do not use full qualified
22239         names if possible.
22240         * profile-count.c (profile_count::to_frequency): Likewise.
22242 2019-05-20  Martin Liska  <mliska@suse.cz>
22244         * profile-count.h (enum profile_quality): Use capital letters
22245         for enum value names.  Use the adjusted names.
22246         * profile-count.c: Use the adjusted names.
22248 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
22250         * config/rs6000/constraints.md (define_register_constraint "wH"):
22251         Delete.
22252         (define_register_constraint "wI"): Delete.
22253         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22254         RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
22255         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22256         (rs6000_init_hard_regno_mode_ok): Adjust.
22257         * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
22258         resp. "d", or with "wa" as appropriate, all with "p8v".
22259         * config/rs6000/vsx.md: Ditto.
22260         * doc/md.texi (Machine Constraints): Adjust.
22262 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
22264         * config/rs6000/constraints.md (define_register_constraint "wy"):
22265         Delete.
22266         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22267         RS6000_CONSTRAINT_wy.
22268         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22269         (rs6000_init_hard_regno_mode_ok): Adjust.
22270         * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
22271         Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
22272         (define_mode_attr Fisa): New.
22273         * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
22274         * doc/md.texi (Machine Constraints): Adjust.
22276 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
22278         * config/rs6000/constraints.md (define_register_constraint "wu"):
22279         Delete.
22280         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22281         RS6000_CONSTRAINT_wu.
22282         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22283         (rs6000_init_hard_regno_mode_ok): Adjust.
22284         * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
22285         both with "p8v".
22286         (define_mode_attr Fa): Delete.
22287         * config/rs6000/vsx.md: Ditto.
22288         * doc/md.texi (Machine Constraints): Adjust.
22290 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
22292         * config/rs6000/constraints.md (define_register_constraint "wJ"):
22293         Delete.
22294         (define_register_constraint "wK"): Delete.
22295         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22296         RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
22297         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22298         (rs6000_init_hard_regno_mode_ok): Adjust.
22299         * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
22300         Replace "wK" constraint by "wH" with "p9v".
22301         * config/rs6000/vsx.md: Ditto.
22302         * doc/md.texi (Machine Constraints): Adjust.
22304 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
22306         * config/rs6000/constraints.md (define_register_constraint "wb"):
22307         Delete.
22308         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22309         RS6000_CONSTRAINT_wb.
22310         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22311         (rs6000_init_hard_regno_mode_ok): Adjust.
22312         * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
22313         * config/rs6000/vsx.md: Ditto.
22314         * doc/md.texi (Machine Constraints): Adjust.
22316 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
22318         * config/rs6000/constraints.md (define_register_constraint "wo"):
22319         Delete.
22320         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22321         RS6000_CONSTRAINT_wo.
22322         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22323         (rs6000_init_hard_regno_mode_ok): Adjust.
22324         * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
22325         * config/rs6000/altivec.md: Ditto.
22326         * doc/md.texi (Machine Constraints): Adjust.
22328 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
22330         * config/darwin-c.c (darwin_register_objc_includes): Do not
22331         prepend the sysroot when building gnu-runtime header search
22332         paths.
22334 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
22336         * config/darwin.c (darwin_file_end): Use switch_to_section ()
22337         instead of direct output of the asm.
22339 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
22341         * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
22342         argument to be type bool (was int before).
22343         (rs6000_emit_epilogue): Simplify some code.  Declare some variables
22344         at first use.  Use type bool for some variables.  Fix a theoretical
22345         eh_return bug for svr4.
22347 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
22349         * config/rs6000/rs6000.md (isa): New attribute.
22350         (enabled): New attribute.
22352 2019-05-17  Max Filippov  <jcmvbkbc@gmail.com>
22354         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
22355         assemble_start_function and assemble_end_function.
22357 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
22359         PR middle-end/89433
22360         * omp-general.c (oacc_verify_routine_clauses): Change formal
22361         parameters.  Add checking if already marked with an OpenACC
22362         'routine' directive.  Adjust all users.
22364         PR middle-end/89433
22365         * omp-general.c (oacc_build_routine_dims): Move some of its
22366         processing into...
22367         (oacc_verify_routine_clauses): ... this new function.
22368         * omp-general.h (oacc_verify_routine_clauses): New prototype.
22370 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
22372         * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
22373         formating of picbase labels to match other ports.
22375 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
22377         * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
22378         in the generated code.
22380 2019-05-16  Martin Sebor  <msebor@redhat.com>
22382         * builtins.c (expand_builtin_atomic_always_lock_free): Quote
22383         identifiers, keywords, operators, and types in diagnostics.  Correct
22384         quoting, spelling, and sentence capitalization issues.
22385         (expand_builtin_atomic_is_lock_free): Same.
22386         (fold_builtin_next_arg): Same.
22387         * cfgexpand.c (expand_one_var): Same.
22388         (tree_conflicts_with_clobbers_p): Same.
22389         (expand_asm_stmt): Same.
22390         (verify_loop_structure): Same.
22391         * cgraphunit.c (process_function_and_variable_attributes): Same.
22392         * collect-utils.c (collect_execute): Same.
22393         * collect2.c (maybe_run_lto_and_relink): Same.
22394         (is_lto_object_file): Same.
22395         (scan_prog_file): Same.
22396         * convert.c (convert_to_real_1): Same.
22397         * dwarf2out.c (dwarf2out_begin_prologue): Same.
22398         * except.c (verify_eh_tree): Same.
22399         * gcc.c (execute): Same.
22400         (eval_spec_function): Same.
22401         (run_attempt): Same.
22402         (driver::set_up_specs): Same.
22403         (compare_debug_auxbase_opt_spec_function): Same.
22404         * gcov-tool.c (unlink_gcda_file): Same.
22405         (do_merge): Same.
22406         (do_rewrite): Same.
22407         * gcse.c (gcse_or_cprop_is_too_expensive): Same.
22408         * gimplify.c (gimplify_asm_expr): Same.
22409         (gimplify_adjust_omp_clauses): Same.
22410         * hsa-gen.c (gen_hsa_addr_insns): Same.
22411         (gen_hsa_insns_for_load): Same.
22412         (gen_hsa_cmp_insn_from_gimple): Same.
22413         (gen_hsa_insns_for_operation_assignment): Same.
22414         (gen_get_level): Same.
22415         (gen_hsa_alloca): Same.
22416         (omp_simple_builtin::generate): Same.
22417         (gen_hsa_atomic_for_builtin): Same.
22418         (gen_hsa_insns_for_call): Same.
22419         * input.c (dump_location_info): Same.
22420         * ipa-devirt.c (compare_virtual_tables): Same.
22421         * ira.c (ira_setup_eliminable_regset): Same.
22422         * lra-assigns.c (lra_assign): Same.
22423         * lra-constraints.c (lra_constraints): Same.
22424         * lto-streamer-in.c (lto_input_mode_table): Same.
22425         * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
22426         (merge_and_complain): Same.
22427         (compile_offload_image): Same.
22428         (compile_images_for_offload_targets): Same.
22429         (debug_objcopy): Same.
22430         (run_gcc): Same.
22431         (main): Same.
22432         * opts.c (print_specific_help): Same.
22433         (parse_no_sanitize_attribute): Same.
22434         (print_help): Same.
22435         (handle_param): Same.
22436         * plugin.c (add_new_plugin): Same.
22437         (parse_plugin_arg_opt): Same.
22438         (try_init_one_plugin): Same.
22439         * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
22440         operators, and types in diagnostics.  Correct quoting and spelling
22441         issues.
22442         * read-rtl-function.c (parse_edge_flag_token): Same.
22443         (function_reader::parse_enum_value): Same.
22444         * reg-stack.c (check_asm_stack_operands): Same.
22445         * regcprop.c (validate_value_data): Same.
22446         * sched-rgn.c (make_pass_sched_fusion): Same.
22447         * stmt.c (check_unique_operand_names): Same.
22448         * targhooks.c (default_target_option_pragma_parse): Same.
22449         * tlink.c (recompile_files): Same.
22450         * toplev.c (process_options): Same.
22451         (do_compile): Same.
22452         * trans-mem.c (diagnose_tm_1): Same.
22453         (ipa_tm_scan_irr_block): Same.
22454         (ipa_tm_diagnose_transaction): Same.
22455         * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
22456         format a tree code name in a diagnostic.
22457         (verify_types_in_gimple_min_lval): Same.
22458         (verify_types_in_gimple_reference): Same.
22459         (verify_gimple_call): Same.
22460         (verify_gimple_assign_unary): Same.
22461         (verify_gimple_assign_binary): Same.
22462         (verify_gimple_assign_ternary): Same.
22463         (verify_gimple_assign_single): Same.
22464         (verify_gimple_switch): Same.
22465         (verify_gimple_label): Same.
22466         (verify_gimple_phi): Same.
22467         (verify_gimple_in_seq): Same.
22468         (verify_eh_throw_stmt_node): Same.
22469         (collect_subblocks): Same.
22470         (gimple_verify_flow_info): Same.
22471         (do_warn_unused_result): Same.
22472         * tree-inline.c (expand_call_inline): Same.
22473         * tree-into-ssa.c (update_ssa): Same.
22474         * tree.c (tree_int_cst_elt_check_failed): Same.
22475         (tree_vec_elt_check_failed): Same.
22476         (omp_clause_operand_check_failed): Same.
22477         (verify_type_variant): Same.
22478         (verify_type): Same.
22479         * value-prof.c (verify_histograms): Same.
22480         * varasm.c (assemble_start_function): Same.
22482 2019-05-16  Martin Sebor  <msebor@redhat.com>
22484         * config/i386/i386-expand.c (get_element_number): Quote keywords
22485         and other internal names in diagnostics.  Adjust other diagnostic
22486         formatting issues noted by -Wformat-diag.
22487         * config/i386/i386-features.c
22488         (ix86_mangle_function_version_assembler_name): Same.
22489         * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
22490         * config/i386/i386.c (ix86_function_type_abi): Same.
22491         (ix86_function_ms_hook_prologue): Same.
22492         (classify_argument): Same.
22493         (ix86_expand_prologue): Same.
22494         (ix86_md_asm_adjust): Same.
22495         (ix86_memmodel_check): Same.
22497 2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
22499         * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
22500         TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
22501         and fpxx modes.
22503 2019-05-17  H.J. Lu  <hongjiu.lu@intel.com>
22505         PR target/90497
22506         * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
22507         intrinsics without SSE/SSE2/SSSE3.
22508         * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
22509         check.
22510         (*mmx_uavgv8qi3): Likewise.
22512 2019-05-17  Richard Biener  <rguenther@suse.de>
22514         * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
22515         VEC_PERM_EXPR as __VEC_PERM with -gimple.
22517 2019-05-17  Andreas Krebbel  <krebbel@linux.ibm.com>
22519         * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
22520         vec_sldw insn pattern.
22522 2019-05-17  Richard Biener  <rguenther@suse.de>
22524         * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
22526 2019-05-17  Martin Liska  <mliska@suse.cz>
22528         PR driver/90496
22529         * toplev.c (output_stack_usage): With LTO and sanitizer it
22530         happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
22531         has no file location.
22533 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
22535         PR c++/90484
22536         * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
22537         sz0 is equal to sz1, instead return false in that case.
22539         * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
22540         has non-constant expression, force sctx.lane and use two
22541         argument IFN_GOMP_SIMD_LANE instead of single argument.
22542         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
22543         two argument IFN_GOMP_SIMD_LANE without lhs.
22544         * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
22545         member.
22546         (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
22547         Define.
22548         (LOOP_REQUIRES_VERSIONING): Or in
22549         LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
22550         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
22551         simd_if_cond.
22552         (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
22553         * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
22554         from simd if clause if needed.
22556 2019-05-16  Richard Biener  <rguenther@suse.de>
22558         * tree-affine.c (expr_to_aff_combination): New function split
22559         out from...
22560         (tree_to_aff_combination): ... here.
22561         (aff_combination_expand): Avoid building a GENERIC tree.
22563 2019-05-16  Max Filippov  <jcmvbkbc@gmail.com>
22565         * cgraphunit.c (cgraph_node::expand_thunk): Remove
22566         assemble_start_function and assemble_end_function calls.
22567         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
22568         assemble_start_function and assemble_end_function.
22569         * config/arc/arc.c (arc_output_mi_thunk): Likewise.
22570         * config/arm/arm.c (arm_output_mi_thunk): Likewise.
22571         * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
22572         * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
22573         * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
22574         * config/csky/csky.c (csky_output_mi_thunk): Likewise.
22575         * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
22576         * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
22577         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
22578         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
22579         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
22580         * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
22581         Likewise.
22582         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
22583         * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
22584         * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
22585         * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
22586         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
22587         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
22588         * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
22589         * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
22590         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
22591         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
22592         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
22593         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
22594         * config/spu/spu.c (spu_output_mi_thunk): Likewise.
22595         * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
22596         Likewise.
22597         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
22598         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
22599         * config/vax/vax.c (vax_output_mi_thunk): Likewise.
22601 2019-05-16  Jan Hubicka  <hubicka@ucw.cz>
22603         * tree-ssa-alias.c (alias_stats): Add
22604         aliasing_component_refs_p_may_alias and
22605         aliasing_component_refs_p_no_alias.
22606         (dump_alias_stats): Print aliasing_component_refs_p stats.
22607         (aliasing_component_refs_p): Update stats.
22609 2019-05-16  Martin Liska  <mliska@suse.cz>
22611         PR lto/90500
22612         * multiple_target.c (expand_target_clones): Do not allow
22613         target_clones being used with a symbol that is an alias.
22615 2019-05-16  Vladislav Ivanishin  <vlad@ispras.ru>
22617         PR tree-optimization/90394
22618         * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
22619         positives rather than ICE for cases where (code2 == NE_EXPR
22620         && code1 == BIT_AND_EXPR).
22622 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
22624         PR fortran/90329
22625         * tree-core.h (struct tree_decl_common): Document
22626         decl_nonshareable_flag for PARM_DECLs.
22627         * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
22628         * calls.c (expand_call): Don't try tail call if caller
22629         has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
22630         passed on the stack and callee needs to pass any arguments on the
22631         stack.
22632         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
22633         else if instead of series of mutually exclusive ifs.  Handle
22634         DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
22635         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22637         * lto-streamer.h (LTO_major_version): Bump to 9.
22639 2019-05-16  Jun Ma  <JunMa@linux.alibaba.com>
22641         PR tree-optimization/90106
22642         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
22643         new parameter as new internal function call, also move it to new
22644         basic block.
22645         (use_internal_fn): Pass internal function call to
22646         shrink_wrap_one_built_in_call_with_conds.
22648 2019-05-15  Jakub Jelinek  <jakub@redhat.com>
22650         * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
22651         max_vf to 1.
22652         * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
22653         safelen_int and set loop->dont_vectorize.
22655 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22657         PR target/89021
22658         * config/i386/i386-builtin.def: Enable MMX intrinsics with
22659         SSE/SSE2/SSSE3.
22660         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
22661         Likewise.
22662         * config/i386/i386-expand.c (ix86_expand_builtin): Allow
22663         SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
22664         * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
22665         is defined.
22667 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22669         PR target/89021
22670         * config/i386/mmx.md (*vec_dupv2sf): Changed to
22671         define_insn_and_split to support SSE emulation.
22672         (*vec_extractv2sf_0): Likewise.
22673         (*vec_extractv2sf_1): Likewise.
22674         (*vec_extractv2si_0): Likewise.
22675         (*vec_extractv2si_1): Likewise.
22676         (*vec_extractv2si_zext_mem): Likewise.
22677         (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
22678         (vec_extractv2sf_1 splitter): Likewise.
22679         (vec_extractv2sfsf): Likewise.
22680         (vec_setv2si): Likewise.
22681         (vec_extractv2si_1 splitter): Likewise.
22682         (vec_extractv2sisi): Likewise.
22683         (vec_setv4hi): Likewise.
22684         (vec_extractv4hihi): Likewise.
22685         (vec_setv8qi): Likewise.
22686         (vec_extractv8qiqi): Likewise.
22687         (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
22688         TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
22689         (vec_extractv2sisi): Likewise.
22690         (vec_extractv4hihi): Likewise.
22691         (vec_extractv8qiqi): Likewise.
22692         (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
22693         TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
22694         (vec_initv2sisi): Likewise.
22695         (vec_initv4hihi): Likewise.
22696         (vec_initv8qiqi): Likewise.
22697         (vec_setv2si): Also allow TARGET_MMX_WITH_SSE.  Pass
22698         TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
22699         (vec_setv4hi): Likewise.
22700         (vec_setv8qi): Likewise.
22702 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22704         PR target/89021
22705         * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
22706         TARGET_MMX_WITH_SSE.
22707         (MMXMODE:*mov<mode>_internal): Likewise.
22708         (MMXMODE:movmisalign<mode>): Likewise.
22710 2019-05-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22712         PR target/89021
22713         * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
22714         * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
22715         (sse2_cvtpd2pi): Ditto.
22716         (sse2_cvttpd2pi): Ditto.
22717         (*vec_concatv2sf_sse4_1): Ditto.
22718         (*vec_concatv2sf_sse): Ditto.
22719         (*vec_concatv2si_sse4_1): Ditto.
22720         (*vec_concatv2si): Ditto.
22721         (*vec_concatv4si_0): Ditto.
22722         (*vec_concatv2di_0): Ditto.
22724 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22726         PR target/89021
22727         * config/i386/sse.md (abs<mode>2): Add SSE emulation.
22729 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22731         PR target/89021
22732         * config/i386/sse.md (ssse3_palignrdi): Changed to
22733         define_insn_and_split to support SSE emulation.
22735 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22737         PR target/89021
22738         * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
22740 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22742         PR target/89021
22743         * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
22744         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
22745         SSE emulation.
22747 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22749         PR target/89021
22750         * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
22751         or TARGET_MMX_WITH_SSE.
22752         (*ssse3_pmulhrswv4hi3): Add SSE emulation.
22754 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22756         PR target/89021
22757         * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
22759 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22761         PR target/89021
22762         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
22763         Changed to define_insn_and_split to support SSE emulation.
22765 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22767         PR target/89021
22768         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
22769         Changed to define_insn_and_split to support SSE emulation.
22771 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22773         PR target/89021
22774         * config/i386/mmx.md (mmx_<emms>): Renamed to ...
22775         (*mmx_<emms>): This.
22776         (mmx_<emms>): New expander.
22778 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22780         PR target/89021
22781         * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
22782         support.
22783         (*sse2_umulv1siv1di3): Add SSE2 emulation.
22785 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22787         PR target/89021
22788         * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
22790 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22792         PR target/89021
22793         * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
22795 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22797         PR target/89021
22798         * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
22799         TARGET_MMX_WITH_SSE.
22800         (*mmx_uavgv4hi3): Add SSE emulation.
22802 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22804         PR target/89021
22805         * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
22806         and TARGET_MMX_WITH_SSE.
22807         (*mmx_uavgv8qi3): Add SSE emulation.
22809 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22811         PR target/89021
22812         * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
22813         maskmovdqu for __MMX_WITH_SSE__.
22815 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22817         PR target/89021
22818         * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
22819         TARGET_MMX and TARGET_MMX_WITH_SSE.
22820         (*mmx_umulv4hi3_highpart): Add SSE emulation.
22822 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22824         PR target/89021
22825         * config/i386/mmx.md (mmx_pmovmskb): Changed to
22826         define_insn_and_split to support SSE emulation.
22828 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22830         PR target/89021
22831         * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
22832         and TARGET_MMX_WITH_SSE.
22833         (mmx_<code>v8qi3): Likewise.
22834         (smaxmin:<code>v4hi3): New.
22835         (umaxmin:<code>v8qi3): Likewise.
22836         (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
22837         (umaxmin:*mmx_<code>v8qi3): Likewise.
22839 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22841         PR target/89021
22842         * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
22843         TARGET_MMX_WITH_SSE.
22844         (*mmx_pinsrw): Add SSE emulation.
22846 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22848         PR target/89021
22849         * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
22851 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22853         PR target/89021
22854         * config/i386/sse.md (sse_cvtpi2ps): Changed to
22855         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
22856         SSE emulation.
22858 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22860         PR target/89021
22861         * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
22862         (sse_cvttps2pi): Likewise.
22864 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22866         PR target/89021
22867         * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
22868         TARGET_MMX_WITH_SSE.
22869         (mmx_pshufw_1): Add SSE emulation.
22870         (*vec_dupv4hi): Changed to define_insn_and_split and also allow
22871         TARGET_MMX_WITH_SSE to support SSE emulation.
22873 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22875         PR target/89021
22876         * config/i386/constraints.md (Yw): New constraint.
22877         * config/i386/mmx.md (*vec_dupv2si): Changed to
22878         define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
22879         support SSE emulation.
22881 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22883         PR target/89021
22884         * config/i386/mmx.md (mmx_eq<mode>3): Also allow
22885         TARGET_MMX_WITH_SSE.
22886         (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
22887         support.
22888         (mmx_gt<mode>3): Likewise.
22890 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22892         PR target/89021
22893         * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
22894         TARGET_MMX_WITH_SSE.  Add SSE support.
22896 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22898         PR target/89021
22899         * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
22900         TARGET_MMX_WITH_SSE.
22901         (any_logic:<code><mode>3): New.
22902         (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
22903         Add SSE support.
22905 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22907         PR target/89021
22908         * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
22909         TARGET_MMX_WITH_SSE.  Add SSE emulation.
22910         (mmx_<shift_insn><mode>3): Likewise.
22911         (ashr<mode>3): New.
22912         (<shift_insn><mode>3): Likewise.
22914 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22916         PR target/89021
22917         * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
22918         (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.  Add SSE support.
22920 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22922         PR target/89021
22923         * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
22924         TARGET_MMX_WITH_SSE.
22925         (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
22926         SSE support.
22928 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22930         PR target/89021
22931         * config/i386/mmx.md (mmx_mulv4hi3): Also allow
22932         TARGET_MMX_WITH_SSE.
22933         (mulv4hi3): New.
22934         (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
22935         support.
22937 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22939         PR target/89021
22940         * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
22941         (plusminus:mmx_<plusminus_insn><mode>3): Check
22942         TARGET_MMX_WITH_SSE.
22943         (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
22944         (<plusminus_insn><mode>3): New.
22945         (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
22946         (*mmx_<plusminus_insn><mode>3): Likewise.
22948 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22950         PR target/89021
22951         * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
22952         * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
22953         prototype.
22954         * config/i386/mmx.m (mmx_punpckhbw): Changed to
22955         define_insn_and_split to support SSE emulation.
22956         (mmx_punpcklbw): Likewise.
22957         (mmx_punpckhwd): Likewise.
22958         (mmx_punpcklwd): Likewise.
22959         (mmx_punpckhdq): Likewise.
22960         (mmx_punpckldq): Likewise.
22962 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22963             Uros Bizjak  <ubizjak@gmail.com>
22965         PR target/89021
22966         * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
22967         New function.
22968         (ix86_split_mmx_pack): Likewise.
22969         * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
22970         New prototype.
22971         (ix86_split_mmx_pack): Likewise.
22972         * config/i386/i386.md (mmx_isa): New.
22973         (enabled): Also check mmx_isa.
22974         * config/i386/mmx.md (any_s_truncate): New code iterator.
22975         (s_trunsuffix): New code attr.
22976         (mmx_packsswb): Removed.
22977         (mmx_packssdw): Likewise.
22978         (mmx_packuswb): Likewise.
22979         (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
22980         MMX packsswb/packuswb with SSE2.
22981         (mmx_packssdw): Likewise.
22982         * config/i386/predicates.md (register_mmxmem_operand): New.
22984 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22986         PR target/89021
22987         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22988         __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
22989         * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
22990         TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
22991         (ix86_vector_mode_supported_p): Likewise.
22992         * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
22994 2019-05-15  Martin Liska  <mliska@suse.cz>
22996         PR middle-end/90478
22997         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
22998         Check for overflow.
23000 2019-05-15  Richard Biener  <rguenther@suse.de>
23002         * tree-into-ssa.c (pass_build_ssa::execute): Run
23003         update_address_taken before going into SSA.
23005 2019-05-15  Richard Biener  <rguenther@suse.de>
23007         * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
23008         as __BIT_FIELD_REF with type with -gimple.
23010 2019-05-15  Vladislav Ivanishin  <vlad@ispras.ru>
23012         * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
23013         semantically equivalent branches (left over after prior refactorings).
23015 2019-05-15  Richard Biener  <rguenther@suse.de>
23017         PR tree-optimization/88828
23018         * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
23019         bogus check.
23021 2019-05-14  Richard Biener  <rguenther@suse.de>
23023         * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
23024         as __VIEW_CONVERT with -gimple.
23026 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
23028         PR target/82920
23029         * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
23030         Darwin.
23032 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
23034         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
23035         define_split to become a define_insn_and_split.
23037 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
23039         * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
23040         arguments.
23041         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
23042         * config/rs6000/rs6000.md (epilogue_type): New define_enum.
23043         (sibcall_epilogue): Adjust.
23044         (epilogue): Adjust.
23046 2019-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23048         * config.gcc: Move *-*-solaris2.10* from obsolete configurations
23049         to unsupported ones.
23050         Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
23051         * config.host: Likewise.
23052         * config/i386/sol2.h (ASM_COMMENT_START): Remove.
23053         * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
23054         __svr4__]: Remove "brand" fallback.
23055         [!KSTAT_DATA_STRING]: Remove.
23056         * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
23057         to *-*-solaris2*.
23058         (comdat_group): Likewise.
23059         (set_have_as_tls): Likewise.
23060         (gcc_cv_target_dl_iterate_phdr): Likewise.
23061         (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
23062         (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
23063         * configure: Regenerate.
23064         * doc/install.texi: Simplify Solaris target triplets.
23065         (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
23066         (Specific, *-*-solaris2*): Document Solaris 10 removal.
23067         Remove Solaris 10 references.
23068         Remove obsolete Solaris bug reference.
23069         (Specific, sparc-sun-solaris2.10): Remove.
23071 2019-05-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23073         * config/i386/i386.md (any_div): New code iterator.
23074         (paired_mod): New code attribute.
23075         (sgnprefix): Handle DIV and UDIV RTXes.
23076         (u): Ditto.
23077         (<u>divmod<mode>4): Macroize expander from divmod<mode>4
23078         and udivmod<mode>4 patterns using any_div code iterator.
23079         (divmod splitters): Macroize splitters using any_div code iterator.
23080         (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
23081         (*udivmodsi4_pow2_zext_2): Ditto.
23082         (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
23083         and *udivmod<mode>4_noext patterns using any_div code iterator.
23084         (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
23085         *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
23086         patterns using any_div code iterator.
23087         (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
23088         *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
23089         patterns using any_div code iterator.
23090         (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
23091         udivmodhiqi3 patterns using any_extend code iterator.
23093 2019-05-14  Richard Biener  <rguenther@suse.de>
23094             H.J. Lu  <hongjiu.lu@intel.com>
23096         PR tree-optimization/88828
23097         * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
23098         permuting in a single non-constant element not extracted
23099         from a vector.
23101 2019-05-14  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
23103         * internal-fn.def (SIGNBIT): New.
23104         * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
23105         defined.
23106         (signbitv4sf2): Likewise.
23108 2019-05-14  Chenghua Xu  <paul.hua.gm@gmail.com>
23110         PR target/90357
23111         * config/mips/mips.c (mips_split_move): Skip forward SRC into
23112         next insn when the SRC reg is dead.
23114 2019-05-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
23116         * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
23117         (alloc_cand_and_find_basis): Ditto.
23118         (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
23119         (create_mul_imm_cand, create_add_ssa_cand): Ditto.
23120         (create_add_imm_cand, slsr_process_cast): Ditto.
23121         (slsr_process_copy, replace_mult_candidate): Ditto.
23122         (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
23123         (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
23124         (pass_strength_reduction::execute): Init the first NULL element.
23126 2019-05-13  Nathan Sidwell  <nathan@acm.org>
23128         * gcc.c (execute): Simplify cond-expr into if.  Reformat comment.
23129         (run_attempt): Reformat line break.
23131 2019-05-13  David Edelsohn  <dje.gcc@gmail.com>
23133         PR target/90418
23134         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
23135         data registers in sibcall epilogues.
23136         Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
23138 2019-05-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23140         PR target/89221
23141         * configure.ac (--enable-frame-pointer):
23142         Disable by default for cygwin and mingw.
23143         * configure: Regenerate.
23145 2019-05-13  Nathan Sidwell  <nathan@acm.org>
23147         * dwarf2out.c (breakout_comdat_types): Move comment to correct
23148         piece of code.
23149         (const_ok_for_output_1): Balance parens around #if/#else/#endif
23150         (gen_member_die): Move abstract origin check earlier.  Only VARs
23151         can be static_inline_p.  Simplify splicing control flow.
23153 2019-05-13  Richard Biener  <rguenther@suse.de>
23155         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
23156         VIEW_CONVERT_EXPR.
23157         (vect_build_slp_tree_1): Likewise.
23159 2019-05-13  Richard Biener  <rguenther@suse.de>
23161         PR tree-optimization/90402
23162         * tree-if-conv.c (tree_if_conversion): Value number only
23163         the loop body by making the latch an exit of the region
23164         as well.
23165         * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
23166         processing PHIs.
23167         (do_rpo_vn): Deal with multiple edges into the entry block
23168         that are not backedges inside the region by skipping PHIs
23169         of the entry block.
23171 2019-05-13  Richard Biener  <rguenther@suse.de>
23173         PR tree-optimization/90316
23174         * tree-ssa-pre.c (insert_aux): Fold into ...
23175         (insert): ... this function.  Use a RPO walk to reduce the
23176         number of required iterations.
23178 2019-05-13  Martin Liska  <mliska@suse.cz>
23180         PR tree-optimization/90416
23181         * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
23182         string instead of passing the second part as va_arg argument.
23184 2019-05-13  Martin Liska  <mliska@suse.cz>
23186         PR gcov-profile/90380
23187         * gcov.c (handle_cycle): Do not support zero cycle count,
23188         it should not be possible.
23189         (path_contains_zero_cycle_arc): New function.
23190         (circuit): Ignore zero cycle arc counts.
23192 2019-05-13  Martin Liska  <mliska@suse.cz>
23194         PR gcov-profile/90380
23195         * gcov.c (enum loop_type): Remove the enum and
23196         the operator.
23197         (handle_cycle): Assert that we should not reach
23198         a negative count.
23199         (circuit): Use loop_found instead of a tri-state loop_type.
23200         (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
23201         happen.
23203 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
23205         PR target/82920
23206         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
23207         (ix86_output_indirect_branch_via_reg): Use output mechanism
23208         accounting for __USER_LABEL_PREFIX__.
23209         (ix86_output_indirect_branch_via_push): Likewise.
23210         (ix86_output_function_return): Likewise.
23211         (ix86_output_indirect_function_return): Likewise.
23213 2019-05-12  Richard Sandiford  <richard.sandiford@arm.com>
23215         * doc/md.texi: Document use of code attributes in rtx patterns.
23216         * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
23217         * read-rtl.c (find_code): Split out search loops into...
23218         (maybe_find_code): ...this new function.
23219         (check_code_iterator): Make the error message more informative.
23220         (check_code_attribute): New function.
23221         (rtx_reader::rtx_alloc_for_name): Likewise.
23222         (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
23223         * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
23224         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
23225         <max_opp> directly as an rtx code instead of via a match_operator.
23226         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
23227         (<su>abd<mode>_3): Update accordingly.
23229 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
23231         * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
23232         is given, print the state of the EH "save world" computation for
23233         Darwin.
23235 2019-05-11  Jakub Jelinek  <jakub@redhat.com>
23237         PR c++/59813
23238         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
23239         EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
23241 2019-05-11  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23243         * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
23244         Use pinsrd for TARGET_SSE4_1.
23245         * config/i386/sse.md (movdi_to_sse): Ditto.
23247 2019-05-10  Richard Biener  <rguenther@suse.de>
23249         * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
23250         (do_rpo_vn): Initialize next_value_id.
23252 2019-05-10  Martin Liska  <mliska@suse.cz>
23254         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
23255         Fix plural form.
23257 2019-05-10  Jakub Jelinek  <jakub@redhat.com>
23259         PR tree-optimization/90385
23260         * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
23261         arguments of the exit phis.
23263         PR c++/90383
23264         * tree-inline.h (struct copy_body_data): Add do_not_fold member.
23265         * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
23266         id->do_not_fold.
23267         (copy_tree_body_r): Likewise.
23268         (copy_fn): Set id.do_not_fold to true.
23270 2019-05-10  Martin Liska  <mliska@suse.cz>
23272         * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
23273         Reapply changes from r269790.
23275 2019-05-10  Martin Liska  <mliska@suse.cz>
23277         PR middle-end/90340
23278         * doc/invoke.texi: New params.
23279         * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
23280         (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
23281         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
23282         Use it.
23283         * tree-switch-conversion.h (struct jump_table_cluster):
23284         Likewise.
23286 2019-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
23288         * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
23290 2019-05-09  Bill Schmidt  <wschmidt@linux.ibm.com>
23292         * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
23294 2019-05-09  Alexander Monakov  <amonakov@ispras.ru>
23296         PR rtl-optimization/88879
23297         * sel-sched.c (sel_target_adjust_priority): Remove assert.
23299 2019-05-09  Richard Earnshaw  <rearnsha@arm.com>
23301         PR target/90405
23302         * config/arm/arm.c (callee_saved_reg_p): Move before
23303         thumb_find_work_register.
23304         (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
23305         thumb_find_work_register.  Only call df_get_live_out once.
23306         (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
23307         (thumb_find_work_register): Use
23308         thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
23309         algorithms to locate a spare call clobbered reg.
23311 2019-05-09  Martin Liska  <mliska@suse.cz>
23313         * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
23314         and MAX_EXPR in GIMPLE FE format.
23316 2019-05-09  Martin Liska  <mliska@suse.cz>
23318         * tree-cfg.c (dump_function_to_file): Dump entry BB count.
23319         * gimple-pretty-print.c (dump_gimple_bb_header):
23320         Dump BB count.
23321         (pp_cfg_jump): Dump edge probability.
23322         * profile-count.c (profile_quality_as_string): Simplify
23323         with a static array.
23324         (parse_profile_quality): New function.
23325         (profile_count::dump): Simplify with a static array.
23326         (profile_count::from_gcov_type): Add new argument.
23327         * profile-count.h (parse_profile_quality): Likewise.
23328         * predict.h (set_hot_bb_threshold): New.
23329         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
23330         New param.
23331         * predict.c (get_hot_bb_threshold): Set from the new param.
23332         (set_hot_bb_threshold): New.
23334 2019-05-09  Richard Biener  <rguenther@suse.de>
23336         PR tree-optimization/90395
23337         * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
23338         rewrite vector stores that throw internally.
23340 2019-05-09  Thomas Schwinge  <thomas@codesourcery.com>
23342         * cif-code.def (CHKP): Remove.
23344         PR target/89221
23345         * configure.ac (--enable-frame-pointer): Disable by default for
23346         GNU systems.
23347         * configure: Regenerate.
23349 2019-05-09  Alan Modra  <amodra@gmail.com>
23351         PR target/89271
23352         * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
23353         (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
23354         * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
23355         cost for general <-> vsx when direct moves are available.
23356         Cost union classes at minimal cost for any reg in the class.
23357         Correct calculation for moves between vsx, float, and altivec.
23358         Don't return a low cost for moves between special regs.  Don't
23359         use hard coded register numbers.
23360         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
23361         (rs6000_ira_change_pseudo_allocno_class): New function.
23362         * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
23363         (movdi_internal32, movdi_internal64): Remove '*' from vsx register
23364         alternatives.
23365         (movsi_internal1): Don't disparage vector alternatives.
23366         (mov<mode>_internal): Likewise, excepting alternative that
23367         will be split.
23368         * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
23369         we <- b alternative.
23371 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
23373         PR c++/59813
23374         PR tree-optimization/89060
23375         * tree-ssa-live.h (live_vars_map): New typedef.
23376         (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
23377         * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
23378         (struct compute_live_vars_data): New type.
23379         (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
23380         live_vars_at_stmt, destroy_live_vars): New functions.
23381         * tree-tailcall.c: Include tree-ssa-live.h.
23382         (live_vars, live_vars_vec): New global variables.
23383         (find_tail_calls): Perform variable life analysis before punting.
23384         (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
23385         * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
23386         member.
23387         * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
23388         Perform variable life analysis to select variables that really need
23389         clobbers added.
23390         (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
23391         instead set id->eh_landing_pad_dest and assert it is the same.
23392         (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
23394 2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
23395             Richard Earnshaw  <rearnsha@arm.com>
23397         PR target/88167
23398         * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
23399         function.
23400         (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
23401         (thumb1_compute_save_core_reg_mask): Don't force a spare work
23402         register if both the epilogue and prologue can use call-clobbered
23403         regs.
23404         (thumb1_unexpanded_epilogue): Use
23405         thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
23406         picking temporaries for restoring high regs to match that of the
23407         prologue where possible.
23408         (thumb1_expand_prologue): Add any usable call-clobbered low registers to
23409         the list of work registers.  Detect if the return address is still live
23410         at the end of the prologue and avoid using it for a work register if so.
23411         If the return address is not live, add LR to the list of pushable regs
23412         after the first pass.
23414 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
23416         PR tree-optimization/90078
23417         * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
23418         (INFTY): Increase the value for infinite cost.
23419         (struct comp_cost): Promote type of members to int64_t.
23420         (infinite_cost): Don't set complexity in initialization.
23421         (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
23422         overflows to infinite_cost.
23423         (adjust_setup_cost): Promote type of parameter and cost computation
23424         to int64_t.
23425         (struct ainc_cost_data, struct iv_ca): Promote type of member to
23426         int64_t.
23427         (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
23428         cost computation to int64_t.
23429         (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
23430         int64_t's format specifier in dump.
23432 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
23434         PR tree-optimization/90240
23435         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
23436         with respect to scaling factor pre-computed for each basic block.
23437         (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
23438         (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
23439         (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
23440         (tree_ssa_iv_optimize_loop): Call determine_scaling_factor.  Extend
23441         live range for array of loop's basic blocks.  Cleanup aux field of
23442         loop's basic blocks.
23444 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
23446         PR tree-optimization/90356
23447         * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
23449 2019-05-07  Wei Xiao  <wei3.xiao@intel.com>
23451         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
23452         OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
23453         (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
23454         (ix86_handle_option): Handle -mavx512bf16.
23455         * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
23456         to extra_headers.
23457         * config/i386/avx512bf16vlintrin.h: New.
23458         * config/i386/avx512bf16intrin.h: New.
23459         * config/i386/cpuid.h (bit_AVX512BF16): New.
23460         * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
23461         * config/i386/i386-builtin-types.def: Add new types.
23462         * config/i386/i386-builtin.def: Add new builtins.
23463         * config/i386/i386-c.c (ix86_target_macros_internal): Define
23464         __AVX512BF16__.
23465         * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
23466         (ix86_option_override_internal): Handle BF16.
23467         (ix86_valid_target_attribute_inner_p): Ditto.
23468         * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
23469         * config/i386/i386-builtin.c (enum processor_features): Add
23470         F_AVX512BF16.
23471         (static const _isa_names_table isa_names_table): Ditto.
23472         * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
23473         (PTA_AVX512BF16): Ditto.
23474         * config/i386/i386.opt: Add -mavx512bf16.
23475         * config/i386/immintrin.h: Include avx512bf16intrin.h
23476         and avx512bf16vlintrin.h.
23477         * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
23478         avx512f_cvtneps2bf16_<mode><mask_name>,
23479         avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
23480         * config/i386/subst.md (mask_half): Add new subst.
23481         * doc/invoke.texi: Document -mavx512bf16.
23483 2019-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
23485         * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
23486         Delete declaration.
23487         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
23488         (rs6000_debug_legitimize_reload_address): Delete.
23489         (rs6000_legitimize_reload_address_ptr): Delete.
23490         (rs6000_option_override_internal): Adjust.
23491         (mem_operand_gpr): Adjust comment.
23492         (legitimate_lo_sum_address_p): Ditto.
23493         (rs6000_legitimize_reload_address): Delete.
23494         (rs6000_debug_legitimize_reload_address): Delete.
23495         * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
23497 2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23499         PR target/89765
23500         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23501         In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
23502         to compute vector element selector for both constant and variable
23503         operands.
23505 2019-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23507         * config/i386/i386.md (cvt_mnemonic): New mode attribute.
23508         (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
23509         ashrdi3_cvt using SWI48 mode iterator.
23511 2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
23513         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
23514         (aarch64_<su>abd<mode>_3): Likewise.
23515         (*aarch64_<su>abd<mode>_3): New define_insn.
23516         (<sur>sad<vsi2qi>): New define_expand.
23517         * config/aarch64/iterators.md: Added MAX_OPP attribute.
23518         * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
23519         (build_vect_cond_expr): Likewise.
23521 2019-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23523         * cfgexpand.c (asm_clobber_reg_is_valid): Reject
23524         clobbers outside of accessible_reg_set.
23525         * config/i386/i386.c (ix86_conditional_register_usage):
23526         Disable register sets by clearing corresponding bits in
23527         accessible_reg_set.  Do not set corresponding bits in fixed_regs,
23528         call_used_regs and don't clear corresponding reg_names array members.
23530 2019-05-07  Richard Biener  <rguenther@suse.de>
23532         * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
23533         not specified still compute a comp_vectype for invariant
23534         compares.
23536 2019-05-07  Richard Biener  <rguenther@suse.de>
23538         PR tree-optimization/90316
23539         * tree-ssa-pre.c (translate_vuse_through_block): When
23540         same_valid is NULL do not bother to search for a virtual
23541         PHI continuation.
23542         (phi_translate_1): When operands changed we cannot keep
23543         the same value-number so do not bother to ask whether
23544         that's possible from translate_vuse_through_block.
23546 2019-05-07  Martin Liska  <mliska@suse.cz>
23548         * bitmap.c (bitmap_register): Come up with
23549         alloc_descriptor_max_uid and assign it for
23550         a new bitmap.
23551         (register_overhead): Use get_descriptor as
23552         a descriptor.
23553         (release_overhead): New.
23554         (bitmap_elem_to_freelist): Call it.
23555         (bitmap_elt_clear_from): Likewise.
23556         (bitmap_obstack_free): Likewise.
23557         (bitmap_move): Sensitively release memory.
23558         * bitmap.h (struct GTY): Add alloc_descriptor and padding.
23559         (bitmap_initialize): Initialize alloc_descriptor to zero.
23560         * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
23562 2019-05-07  Richard Biener  <rguenther@suse.de>
23564         * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
23565         we build a SLP node.  Remove max_size and limiting.
23566         (vect_analyze_slp_instance): Record and dump size of the SLP graph.
23568 2019-05-07  Richard Biener  <rguenther@suse.de>
23570         PR tree-optimization/90316
23571         * tree-ssa-alias.h (get_continuation_for_phi): Take walking
23572         limit by reference.
23573         (walk_non_aliased_vuses): Take walking limit argument.
23574         * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
23575         walking if it is reached instead of just counting.
23576         (get_continuation_for_phi): Likewise.
23577         (walk_non_aliased_vuses): Likewise, instead of leaving counter
23578         limiting to the callback.
23579         * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
23580         (vn_reference_lookup_3): Likewise.
23581         (vn_reference_lookup_pieces): Likewise.
23582         (vn_reference_lookup): Likewise.
23583         * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
23584         * tree-ssa-scopedtables.c (vuse_eq): Adjust.
23585         (avail_exprs_stack::lookup_avail_expr): Likewise.
23587 2019-05-07  Jan Hubicka  <hubicka@ucw.cz>
23589         * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
23590         for comparaible types in the second direction even if first one
23591         hits incomparable type.
23593 2019-05-07  Richard Biener  <rguenther@suse.de>
23595         PR lto/90369
23596         * lto-wrapper.c (debug_objcopy): Use the original filename
23597         including archive offset for the filename used for -save-temps.
23599 2019-05-07  Li Jia He  <helijia@linux.ibm.com>
23601         * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
23602         detection.
23604 2019-05-06  H.J. Lu  <hongjiu.lu@intel.com>
23605             Hongtao Liu  <hongtao.liu@intel.com>
23607         PR target/89750
23608         PR target/86444
23609         * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
23610         Modified, original implementation isn't correct.
23612 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23614         * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
23615         (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
23616         (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
23617         (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
23618         (FRAME_POINTER_REGNUM): Change numbering.
23619         * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
23620         (alt_reg_names): Adjust.
23621         (rs6000_conditional_register_usage): Don't mark hard register 64 as
23622         fixed.
23623         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
23624         (DWARF_FRAME_REGISTERS): Delete.
23625         (DWARF2_FRAME_REG_OUT): Fix whitespace.
23626         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
23627         Adjust.
23628         (REG_ALLOC_ORDER): Adjust.
23629         (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
23630         (REG_CLASS_CONTENTS): Adjust.
23631         (RETURN_ADDR_RTX): Change comment.
23632         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
23633         instead of 67.
23634         (REGISTER_NAMES): Adjust.
23635         (ADDITIONAL_REGISTER_NAMES): Adjust.
23636         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
23638 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23640         * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
23641         Delete.
23642         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
23643         (DWARF_FRAME_REGISTERS): Adjust.
23644         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
23645         Adjust.
23646         (REG_ALLOC_ORDER): Adjust.
23647         (enum reg_class): Delete SPR_REGS.
23648         (REG_CLASS_NAMES): Delete SPR_REGS.
23649         (REG_CLASS_CONTENTS): Delete SPR_REGS.  Adjust for deleted TM regs.
23650         (REGISTER_NAMES): Adjust.
23651         (ADDITIONAL_REGISTER_NAMES): Adjust.
23652         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
23653         * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
23654         * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
23655         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
23656         (htm_spr_regno): Delete.
23657         (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
23658         argument.
23659         (rs6000_dbx_register_number): Adjust.
23661 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23663         * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
23665 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23667         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
23668         FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
23670 2019-05-06  Jakub Jelinek  <jakub@redhat.com>
23672         PR tree-optimization/88709
23673         PR tree-optimization/90271
23674         * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
23675         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
23676         non-clobber CONSTRUCTORs with no elts.  Remove useless tmp_int
23677         variable.
23678         (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
23679         of the store merging group is larger than
23680         PARAM_STORE_MERGING_MAX_SIZE parameter.
23681         (split_group): Add bzero_first argument.  If set, always emit first
23682         the first store which must be = {} of the whole area and then for the
23683         rest of the stores consider all zero bytes as paddings.
23684         (imm_store_chain_info::output_merged_store): Check if first store
23685         is = {} of the whole area and if yes, determine which setting of
23686         bzero_first for split_group gives smaller number of stores.  Adjust
23687         split_group callers.
23688         (lhs_valid_for_store_merging_p): Allow decls.
23689         (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
23690         no elts.
23691         (pass_store_merging::process_store): Likewise.
23693 2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23695         PR target/89424
23696         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
23697         handling of V1TImode.
23699 2019-05-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23701         PR target/89221
23702         * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
23703         and enable_frame_pointer ...
23704         * configure.ac: ... here.  Update help strings for
23705         --enable-frame-pointer.
23706         * configure: Regenerate.
23707         * config/i386/i386-options.c (ix86_option_override_internal): Remove
23708         USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
23709         * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
23710         (USE_X86_64_FRAME_POINTER): Ditto.
23712 2019-05-06  Martin Liska  <mliska@suse.cz>
23714         * config.gcc: Append to target_gtfiles and fix indentation.
23716 2019-05-06  Richard Biener  <rguenther@suse.de>
23718         PR tree-optimization/90358
23719         * tree-vect-stmts.c (get_group_load_store_type): Properly
23720         detect unused upper half of load.
23721         (vectorizable_load): Likewise.
23723 2019-05-06  Richard Biener  <rguenther@suse.de>
23725         PR tree-optimization/88828
23726         * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
23727         (simplify_vector_constructor): ...here.  Handle constants in
23728         the constructor.
23730 2019-05-06  Richard Biener  <rguenther@suse.de>
23732         PR tree-optimization/90328
23733         * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
23734         * tree-data-ref.c (dr_may_alias_p): Check whether the clique
23735         is valid in the loop nest before using it.
23736         (initialize_data_dependence_relation): Adjust.
23737         * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
23738         loop as loop-nest to dr_may_alias_p.
23740 2019-05-06  Richard Biener  <rguenther@suse.de>
23742         * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
23744 2019-05-06  Richard Biener  <rguenther@suse.de>
23746         PR tree-optimization/90316
23747         * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
23748         compute target on demand.
23749         (get_continuation_for_phi): Remove code walking stmts to
23750         get to a target virtual operand which could end up being
23751         quadratic.
23753 2019-05-06  Martin Liska  <mliska@suse.cz>
23755         PR sanitizer/90312
23756         * config/i386/i386-options.c (ix86_option_override_internal): Error only
23757         when -mabi is selected to a non-default version.
23759 2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
23760             Martin Liska  <mliska@suse.cz>
23762         * Makefile.in: Add lto-dump.texi.
23763         * cgraph.h: Add new functions get_visibility_string and
23764         get_symtab_type_string.
23765         * doc/gcc.texi: Include lto-dump section.
23766         * doc/lto-dump.texi: New file.
23767         * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
23768         (parse_dump_option): Factor out this function.
23769         * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
23770         (parse_dump_option): Export the function.
23771         * symtab.c (symtab_node::get_visibility_string): New function.
23772         (symtab_node::get_symtab_type_string): Likewise.
23774 2019-05-06  Martin Liska  <mliska@suse.cz>
23776         * config/i386/i386-builtins.c: New file.
23777         * config/i386/i386-builtins.h: New file.
23778         * config/i386/i386-expand.c: New file.
23779         * config/i386/i386-expand.h: New file.
23780         * config/i386/i386-features.c: New file.
23781         * config/i386/i386-features.h: New file.
23782         * config/i386/i386-options.c: New file.
23783         * config/i386/i386-options.h: New file.
23784         * config.gcc: Add new files into extra_objs and
23785         target_gtfiles.
23786         * config/i386/i386.c: Split content of the file
23787         into newly introduced files.
23788         * config/i386/i386.h: Declare common variables
23789         and macros.
23790         * config/i386/t-i386: Define dependencies for new files.
23792 2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
23794         PR target/89400
23795         * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
23796         Restrict 'all' variant to 32-bit configurations.
23797         (unaligned_loadhiu): Likewise.
23798         (unaligned_storehi): Likewise.
23799         (unaligned_storesi): Likewise.
23800         (unaligned_loadhis): Disable when compiling for thumb1.
23802 2019-05-03  Marc Glisse  <marc.glisse@inria.fr>
23804         PR tree-optimization/90269
23805         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
23806         Ignore clobbers.
23808 2019-05-03  Martin Liska  <mliska@suse.cz>
23810         * hash-map.h: Add is_empty function.
23811         * hash-set.h: Likewise.
23812         * hash-table.h: Likewise.
23813         * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
23814         elements () == 0 (and similar usages).
23815         * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
23816         * gimplify.c (gimplify_bind_expr): Likewise.
23817         (gimplify_switch_expr): Likewise.
23818         * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
23819         * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
23820         * postreload-gcse.c (dump_hash_table): Likewise.
23821         (gcse_after_reload_main): Likewise.
23822         * predict.c (combine_predictions_for_bb): Likewise.
23823         * tree-parloops.c (reduction_phi): Likewise.
23824         (separate_decls_in_region): Likewise.
23825         (transform_to_exit_first_loop): Likewise.
23826         (gen_parallel_loop): Likewise.
23827         (gather_scalar_reductions): Likewise.
23828         (try_create_reduction_list): Likewise.
23829         * var-tracking.c (dump_vars): Likewise.
23830         (emit_notes_for_changes): Likewise.
23831         (vt_emit_notes): Likewise.
23833 2019-05-03  Richard Biener  <rguenther@suse.de>
23835         PR tree-optimization/90316
23836         * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
23837         before running VN.
23839 2019-05-03  Richard Biener  <rguenther@suse.de>
23841         * tree-vect-stmts.c (get_group_load_store_type): Avoid
23842         peeling for gaps by loading only lower halves of vectors
23843         if possible.
23844         (vectorizable_load): Likewise.
23846 2019-05-03  Richard Biener  <rguenther@suse.de>
23848         PR middle-end/89518
23849         * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
23851 2019-05-03  Richard Biener  <rguenther@suse.de>
23853         PR middle-end/87314
23854         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
23855         Handle STRING_CST vs DECL or STRING_CST.
23857 2019-05-03  Richard Biener  <rguenther@suse.de>
23859         PR tree-optimization/88963
23860         * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
23861         vector loads feeding only BIT_FIELD_REFs to component
23862         loads.  Rewrite stores fed by CONSTRUCTORs to component
23863         stores.
23865 2019-05-03  Jakub Jelinek  <jakub@redhat.com>
23867         * opts.h (finish_options): Remove lang_mask argument.
23868         (print_help, help_option_argument): Declare.
23869         * opts.c (print_help): Remove forward declaration, no longer static.
23870         (finish_options): Remove lang_mask argument, don't call print_help
23871         here.
23872         * opts-global.c (decode_options): Adjust finish_option caller, call
23873         print_help here.
23875         PR tree-optimization/90303
23876         * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
23877         TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
23879 2019-05-03  Richard Biener  <rguenther@suse.de>
23881         PR tree-optimization/89698
23882         * gimple-fold.c (canonicalize_constructor_val): Early out
23883         for constants, handle unfolded INTEGER_CSTs as they appear in
23884         C++ virtual table ctors.
23886 2019-05-03  Richard Biener  <rguenther@suse.de>
23888         * passes.c (execute_function_todo): Remove dead code.
23890 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
23892         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
23893         the internal register number, for any "real" register.
23895 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
23897         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
23898         correct numbers for TFHAR, TFIAR, TEXASR.
23900 2019-05-02  Richard Biener  <rguenther@suse.de>
23902         PR tree-optimization/89653
23903         * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
23904         update-address-taken before the pass.
23905         * passes.def (pass_tree_loop_init): Put comment before it.
23907 2019-05-02  Richard Biener  <rguenther@suse.de>
23909         PR tree-optimization/89509
23910         * tree-ssa-structalias.c (compute_dependence_clique): Look
23911         at the first subvar when determining whether it is restrict.
23913 2019-05-02  Richard Biener  <rguenther@suse.de>
23915         PR tree-optimization/90273
23916         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
23917         useless debug stmts.
23919 2019-05-02  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
23921         * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
23922         ACLE branch.
23923         * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
23924         SVE ACLE branch.
23925         * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
23926         VEC_COND_EXPR be inserted to emulate a conditional internal function.
23927         (build_vect_cond_expr): Emit the VEC_COND_EXPR.
23928         (vectorizable_reduction): Use the functions above to vectorize in a
23929         fully masked loop codes that don't have a conditional internal
23930         function.
23932 2019-05-02  Martin Liska  <mliska@suse.cz>
23934         * cgraphclones.c: Call valid_attribute_p with 1 for
23935         target_clone.
23936         * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
23937         it's for target attribute.
23938         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
23939         Add new boolean argument.
23940         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
23941         Likewise.
23942         (ix86_valid_target_attribute_tree): Pass target_clone_attr
23943         to ix86_valid_target_attribute_inner_p.
23944         (ix86_valid_target_attribute_p): Pass flags argument to
23945         ix86_valid_target_attribute_inner_p.
23946         (get_builtin_code_for_version): Use 0 as it's target attribute.
23948 2019-05-02  Martin Liska  <mliska@suse.cz>
23950         * gcc.c (process_command): Add dummy file only
23951         if n_infiles == 0.
23952         * opts-global.c (decode_options): Pass lang_mask.
23953         * opts.c (print_help): New function.
23954         (finish_options): Print --help if help_option_argument
23955         is set.
23956         (common_handle_option): Factor out content of OPT__help_
23957         into print_help.
23958         * opts.h (finish_options): Add new argument.
23960 2019-05-02  Martin Liska  <mliska@suse.cz>
23962         PR target/88809
23963         * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
23964         With -minline-all-stringops use inline expansion using 4B loop.
23965         * doc/invoke.texi: Document the change of
23966         -minline-all-stringops.
23968 2019-05-01  Jeff Law  <law@redhat.com>
23970         PR tree-optimization/88797
23971         * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
23972         PHI feeds a conditional on the RHS of an assignment.
23974 2019-04-30  Andrew Waterman  <andrew@sifive.com>
23975             Jim Wilson  <jimw@sifive.com>
23977         * config/riscv/constraints.md (L): New.
23978         * config/riscv/predicates.md (lui_operand): New.
23979         (sfb_alu_operand): New.
23980         * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
23981         * config/riscv/riscv.c (riscv_expand_conditional_move): New.
23982         * config/riscv/riscv.h (TARGET_SFB_ALU): New.
23983         * config/riscv/risc.md (type): Add sfb_alu.
23984         (branch<mode>): Renamed from branch_order<mode>.  Change predicate for
23985         operand 3 to reg_or_0_operand.  In output string, change %3 to %z3.
23986         (branch_zero<mode>): Delete.
23987         (mov<mode>cc): New.
23988         (mov<GPR:mode><X:mode>cc): Likewise.
23989         * config/riscv/sifive-7.md (sifive_7_sfb_alu): New.  Use in bypasses.
23991 2019-04-30  Nathan Sidwell  <nathan@acm.org>
23993         * tree.h (MARK_TS_EXP): New.
23995 2019-04-30  Martin Liska  <mliska@suse.cz>
23997         * opts.c (enable_warning_as_error): Provide hints
23998         for unknown options.
24000 2019-04-30  Martin Liska  <mliska@suse.cz>
24002         PR debug/90288
24003         * doc/invoke.texi: Add missing dash for gas-locview-support
24004         and gno-as-locview-support.
24006 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
24008         PR target/89093
24009         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
24010         whitespace at the start of target attribute string.
24012 2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24014         PR target/86538
24015         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
24016         Define __ARM_FEATURE_ATOMICS.
24018 2019-04-30  Martin Liska  <mliska@suse.cz>
24020         * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
24021         into built_in_function enum. Remove code for endp == 2 and
24022         use BUILT_IN_* constants.
24023         (gimple_fold_builtin): Call the function with fcode.
24025 2019-04-30  Martin Liska  <mliska@suse.cz>
24027         * config/i386/i386.c (ix86_builtin_reciprocal): Cast
24028         DECL_FUNCTION_CODE into ix86_builtins enum before
24029         the switch statement.
24031 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
24033         PR tree-optimization/89475
24034         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
24035         calls.
24037 2019-04-30  Martin Liska  <mliska@suse.cz>
24039         PR translation/90274
24040         * opts.c (print_filtered_help): Wrap string in _(...).
24042 2019-04-30  Bin Cheng  <bin.cheng@linux.alibaba.com>
24044         PR tree-optimization/90240
24045         Revert:
24046         2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
24048         PR tree-optimization/90078
24049         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
24050         checks for infinite_cost overflow.
24052 2019-04-29  Jeff Law  <law@redhat.com>
24054         * passes.def: Move -Wrestrict pass after copy propagation.
24056 2019-04-29  Maya Rashish  <coypu@sdf.org>
24058         * config.gcc (default_gnu_indirect_function): Default to yes
24059         for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
24060         sparc*-*-netbsd*, x86_64-*-netbsd*.
24062 2019-04-29  Vladislav Ivanishin  <vlad@ispras.ru>
24064         * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
24065         where cond2 is NE_EXPR.
24066         (is_value_included_in): Update comment.
24068 2019-04-29  Richard Biener  <rguenther@suse.de>
24070         PR tree-optimization/90278
24071         * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
24072         EH on comparison simplification.
24074 2019-04-29  Jason Merrill  <jason@redhat.com>
24076         PR c++/82081 - tail call optimization breaks noexcept
24077         * tree-tailcall.c (find_tail_calls): Don't turn a call from a
24078         nothrow function to a might-throw function into a tail call.
24080 2019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
24082         * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
24083         (DDR_INNER_LOOP): Likewise.
24084         * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
24085         (initialize_data_dependence_relation): Likewise.
24086         (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
24088 2019-04-29  Jakub Jelinek  <jakub@redhat.com>
24090         PR rtl-optimization/90257
24091         * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
24092         return value.
24094         Revert the revert:
24095         2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
24097         PR target/90178
24098         Revert:
24099         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
24101         Revert the revert:
24102         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
24104         Revert:
24105         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
24107         * lra-spills.c (lra_final_code_change): Remove useless move insns.
24109 2019-04-29  Richard Biener  <rguenther@suse.de>
24111         * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
24112         rhs issue a reset.
24114 2019-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>
24116         * config/netbsd-d.c: Include memmodel.h.  Remove unused tree.h,
24117         varasm.h, and netbsd-protos.h.
24119 2019-04-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24121         PR target/89261
24122         * config/i386/i386-protos.h (ix86_data_alignment): Change
24123         the second argument type to unsigned int.
24124         * config/i386/i386.c (ix86_data_alignment): Change "align"
24125         argument type to unsigned int.
24127 2019-04-27  Martin Liska  <mliska@suse.cz>
24129         PR middle-end/90258
24130         * opt-suggestions.c (option_proposer::build_option_suggestions):
24131         When get_valid_option_values returns empty values, add the
24132         misspelling candidate.
24134 2019-04-26  Jim Wilson  <jimw@sifive.com>
24136         * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
24137         parameter.
24138         * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
24139         Pass orig_mode to riscv_build_integer.
24140         (riscv_split_integer): Pass mode to riscv_move_integer.
24141         (riscv_legitimize_const_move): Likewise.
24142         (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
24143         promoted_mode.  Replace force_reg call with code to load constant into
24144         promoted reg and then subreg it for the store.
24145         * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
24146         riscv_move_integer.
24148 2018-04-26  Eugene Sharygin  <eush@ispras.ru>
24150         * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
24151         corrupt codes.
24153 2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
24155         * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
24156         commentary about the encoding of precision.
24158 2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
24160         * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
24161         * config/i386/t-freebsd64: New file.
24162         * config.gcc: Add the t-freebsd64 for multilib support.
24164 2019-04-25  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24166         * doc/extend.texi (vector_size): Add missing comma after @xref.
24168 2019-04-25  Jakub Jelinek  <jakub@redhat.com>
24170         * BASE-VER: Set to 10.0.0.
24172 2019-04-25  Richard Biener  <rguenther@suse.de>
24174         PR middle-end/89765
24175         * gimplify.c (gimplify_expr): Avoid turning a lvalue
24176         VIEW_CONVERT_EXPR into one operating on an rvalue.
24178 2019-04-25  H.J. Lu  <hongjiu.lu@intel.com>
24180         PR target/89929
24181         * config/i386/i386.c (feature_priority): Moved to file scope.
24182         (processor_features): Likewise.
24183         (processor_model): Likewise.
24184         (_arch_names_table): Likewise.
24185         (arch_names_table): Likewise.
24186         (_feature_list): Removed.
24187         (feature_list): Likewise.
24188         (_isa_names_table): Moved to file scope.  Add priority.
24189         (isa_names_table): Likewise.
24190         (get_builtin_code_for_version): Replace feature_list with
24191         isa_names_table.  Update error message for P_ZERO priority.
24193 2019-04-25  Richard Biener  <rguenther@suse.de>
24195         * tree-pass.h (make_pass_phi_only_cprop): Remove.
24196         * timevar.def (TV_TREE_PHI_CPROP): Likewise.
24198 2019-04-24  Jeff Law  <law@redhat.com>
24200         PR tree-optimization/90037
24201         * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
24202         * passes.def: Replace all instance of phi-only cprop with the
24203         lattice propagator.  Move propagation pass from after erroneous
24204         path isolation to before erroneous path isolation.
24205         * tree-ssa-phionlycprop.c: Remove.
24207 2019-04-24  Richard Biener  <rguenther@suse.de>
24209         PR middle-end/90213
24210         * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
24211         by size and BITS_PER_UNIT on poly-wide-ints.
24213 2019-04-25  Richard Biener  <rguenther@suse.de>
24215         PR middle-end/90194
24216         * match.pd: Add pattern to simplify view-conversion of an
24217         empty constructor.
24219 2019-04-24  Clement Chigot  <clement.chigot@atos.net>
24221         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
24222         OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
24223         for Go on 32 bit AIX.
24224         * config/rs6000/aix72.h: Likewise.
24226 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
24228         PR target/90193
24229         * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
24230         * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
24232 2019-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
24234         PR target/89952
24235         * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
24236         from FPRs in reverse order.  Generate REG_CFA_DEF_CFA note also
24237         for restored hard frame pointer.
24238         (s390_sched_dependencies_evaluation): Implement new target hook.
24239         (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
24241 2019-04-24  Claudiu Zissulescu  <claziss@sysnopsys.com>
24243         * config/arc/arc-options.def: Fix typos and spelling mistakes.
24244         * config/arc/arc.c (arc_init): Cleanup warning message.
24245         (arc_override_options): Likewise.
24247 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
24249         PR target/90187
24250         * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
24251         a register if both if_true and if_false are MEMs.
24253         PR tree-optimization/90208
24254         * tree-cfg.c (remove_bb): Move forced labels from removed bbs
24255         after labels of new_bb, not before them.
24257         PR tree-optimization/90211
24258         * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
24259         which are not SSA_NAMEs.
24261 2018-04-23  Sudakshina Das  <sudi.das@arm.com>
24263         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
24264         AArch64.
24265         (aarch64_file_end_indicate_exec_stack): Add gnu note section.
24267 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
24269         PR rtl-optimization/87979
24270         * modulo-sched.c (sms_schedule): Start ii value "mii" should
24271         not equal zero.
24273 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
24275         PR rtl-optimization/84032
24276         * modulo-sched.c (ps_insn_find_column): Change condition so that
24277         branch will always be the last insn in a row inside partial
24278         schedule.
24280 2019-04-23  Richard Biener  <rguenther@suse.de>
24282         PR debug/90131
24283         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
24284         dest_single_pred_p argument.
24285         (remove_forwarder_block): Adjust.
24286         (remove_forwarder_block_with_phi): Likewise.
24288 2019-04-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24289             Bernd Edlinger  <bernd.edlinger@hotmail.de>
24290             Jakub Jelinek  <jakub@redhat.com>
24292         PR target/89093
24293         * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
24294         if used with general-regs-only.
24295         (arm_conditional_register_usage): Don't add non-general regs if
24296         general-regs-only.
24297         (arm_valid_target_attribute_rec): Handle general-regs-only.
24298         * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
24299         general-regs-only.
24300         (TARGET_HARD_FLOAT_SUB): Define.
24301         (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
24302         (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
24303         (TARGET_REALLY_IWMMXT2): Likewise.
24304         * config/arm/arm.opt: Add -mgeneral-regs-only.
24305         * doc/extend.texi: Document ARM general-regs-only target.
24306         * doc/invoke.texi: Document ARM -mgeneral-regs-only.
24308 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
24310         PR tree-optimization/90078
24311         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
24312         checks for infinite_cost overflow.
24314 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
24316         PR tree-optimization/90021
24317         * tree-chrec.c (evolution_function_is_univariate_p): New parameter
24318         and check univariate against it.
24319         * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
24320         * tree-data-ref.c (add_other_self_distances): Pass new argument.
24322 2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
24324         PR target/90178
24325         Revert:
24326         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
24328         Revert the revert:
24329         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
24331         Revert:
24332         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
24334         * lra-spills.c (lra_final_code_change): Remove useless move insns.
24336 2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>
24338         * config/rs6000/rs6000.md (group_end_nop): Emit insn register
24339         names using operand format, rather than hard-wired.
24340         (speculation_barrier): Likewise.
24342 2019-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
24344         PR tree-optimization/88055
24345         * tree-call-cdce.c (comparison_code_if_no_nans): New function.
24346         (gen_one_condition): Use it if !HONOR_NANS.
24348 2019-04-19  Jakub Jelinek  <jakub@redhat.com>
24350         PR middle-end/90139
24351         * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
24352         assign_temp instead of gen_reg_rtx.
24354 2019-04-19  Christophe Lyon  <christophe.lyon@linaro.org>
24356         PR translation/90118
24357         * config/aarch64/aarch64.c (aarch64_override_options_internal):
24358         Add missing space before %<.
24360 2019-04-18  Peter Bergner  <bergner@linux.ibm.com>
24362         PR rtl-optimization/87871
24363         * ira-lives.c (make_object_dead): Don't add conflicts to
24364         TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
24366 2019-04-18  Martin Sebor  <msebor@redhat.com>
24368         PR middle-end/89797
24369         * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
24370         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
24371         assuming type size fits in SHWI.
24373 2019-04-18  Jan Hubicka  <hubicka@ucw.cz>
24375         PR ipa/85051
24376         * ipa-inline.c (flatten_function): New parameter UPDATE.
24377         (ipa_inline, early_inliner): Use it.
24379 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
24381         * fold-const.c (int_const_binop): Return early on failure.
24383 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
24385         PR middle-end/85164
24386         * combine.c (force_int_to_mode): Cast the argument rather than
24387         the result of known_alignment.
24388         * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
24390 2019-04-18  Richard Biener  <rguenther@suse.de>
24392         PR debug/90131
24393         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
24394         out from ...
24395         (remove_forwarder_block): ... here.
24396         (remove_forwarder_block_with_phi): Also move debug stmts here.
24398 2019-04-18  Jakub Jelinek  <jakub@redhat.com>
24400         PR translation/79183
24401         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
24402         inform where appropriate.
24404 2019-04-18  Richard Biener  <rguenther@suse.de>
24406         * tree.c (get_qualified_type): Put found type variants at the
24407         head of the variant list.
24409 2018-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
24411         * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
24413 2019-04-17  Hongtao Liu  <hongtao.liu@intel.com>
24415         PR target/90125
24416         * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
24417         _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
24418         _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
24419         _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
24420         _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
24422 2019-04-17  Peter Bergner  <bergner@linux.ibm.com>
24424         * ira-conflicts.c (print_allocno_conflicts): Always print something,
24425         even for allocno's with no conflicts.
24426         (print_conflicts): Print an extra newline.
24428 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
24430         * auto-inc-dec.c (attempt_change): Set the alignment of the
24431         temporary memory to that of the original.
24433 2019-04-17  Joao Moreira  <jmoreira@suse.de>
24435         * targhooks.c (default_print_patchable_function_entry): Emit
24436         __patchable_function_entries section with writable flags to allow
24437         relocation resolution.
24439 2019-04-17  Jonny Grant  <jg@jguk.org>
24441         * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
24443 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
24445         PR middle-end/90095
24446         * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
24447         on lowpart SUBREGs.
24449 2019-04-17  Claudiu Zissulescu  <claziss@synopsys.com>
24451         * config/arc/arc.c (arc_init): Format diagnostic string.
24452         (arc_override_options): Likewise.
24453         (check_if_valid_regno_const): Likewise.
24454         (arc_reorg): Likewise.
24456 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
24458         PR target/17108
24459         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
24460         name.
24461         (rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
24462         name.
24463         * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
24464         (*movdi_update1): Use Pmode.
24465         (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
24466         (movdi_<mode>_update_stack): Rename to ...
24467         (movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
24468         use Pmode.
24469         (*movsi_update1): Use Pmode.
24470         (*movsi_update2): Use Pmode.
24471         (movsi_update): Rename to ...
24472         (movsi_<mode>_update): ... this.  Use Pmode.
24473         (movsi_update_stack): Fix condition.
24474         (*movhi_update1): Use Pmode.  Fix argument to
24475         avoiding_indexed_address_p.
24476         (*movhi_update2): Ditto.
24477         (*movhi_update3): Ditto.
24478         (*movhi_update4): Ditto.
24479         (*movqi_update1): Ditto.
24480         (*movqi_update2): Ditto.
24481         (*movqi_update3): Ditto.
24482         (*movsf_update1, *movdf_update1): Merge, rename to...
24483         (*mov<mode>_update1): This.  Use Pmode.  Fix argument to
24484         avoiding_indexed_address_p.  Add "size" attribute.
24485         (*movsf_update2, *movdf_update2): Merge, rename to...
24486         (*mov<mode>_update2): This.  Ditto.
24487         (*movsf_update3): Use Pmode.  Fix argument to
24488         avoiding_indexed_address_p.
24489         (*movsf_update4): Ditto.
24490         (allocate_stack): Simplify condition.  Adjust pattern names.
24492 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
24494         PR target/89093
24495         * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
24496         whitespace at the start of target attribute string.
24498 2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>
24500         PR target/84369
24501         * config/rs6000/power9.md: Add store forwarding bypass.
24503 2019-04-16  Alexandre Oliva  <aoliva@redhat.com>
24505         PR debug/89528
24506         * valtrack.c (dead_debug_insert_temp): Reset debug references
24507         to the return value of a call being removed.
24509 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
24511         * config/arc/arc-protos.h (arc_register_move_cost): Remove.
24512         * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
24513         implement target hook.
24514         (arc_memory_move_cost): New function.
24515         (TARGET_REGISTER_MOVE_COST): Define.
24516         (TARGET_MEMORY_MOVE_COST): Likewise.
24517         * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
24518         (MEMORY_MOVE_COST): Likewise.
24520 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
24522         * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
24523         (sibcall_value_insn): Likewise.
24524         * config/arc/constraints.md (Rs5): Remove.
24526 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
24528         * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
24529         for last two fake registers.
24530         (arc_conditional_register_usage): Make sure fake frame and arg
24531         pointer regs are in general regs class.
24532         (FRAME_POINTER_MASK): Remove.
24533         (RETURN_ADDR_MASK): Remove.
24534         (arc_must_save_register): Use hard frame regnum.
24535         (frame_restore_reg): Use hard_frame_pointer_rtx.
24536         (arc_save_callee_saves): Likewise.
24537         (arc_restore_callee_saves): Likewise.
24538         (arc_save_callee_enter): Likewise.
24539         (arc_restore_callee_leave): Likewise.
24540         (arc_save_callee_milli): Likewise.
24541         (arc_eh_return_address_location): Likewise.
24542         (arc_check_multi): Use hard frame regnum.
24543         (arc_can_eliminate): Likewise.
24544         * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
24545         for register allocator.
24546         (REG_CLASS_CONTENTS): Update GENERAL_REGS.
24547         (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
24548         (FRAME_POINTER_REGNUM): Change it to a fake register.
24549         (HARD_FRAME_POINTER_REGNUM): Defined.
24550         (ARG_POINTER_REGNUM): Change it to a new fake register.
24551         (ELIMINABLE_REGS): Update.
24552         (REGISTER_NAMES): Update names.
24553         * config/arc/arc.md (LP_START): Remove.
24554         (LP_END): Likewise.
24555         (shift_si3_loop): Update pattern.
24557 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
24559         * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
24560         to avoid delay slot scheduling.
24561         (arc_must_save_register): Don't save SP.
24562         * config/arc/arc.md (stack_tie): Remove.
24563         (UNSPEC_ARC_STKTIE): Likewise.
24565 2019-04-16  Kito Cheng  <kito.cheng@gmail.com>
24566             Shiva Chen  <shiva0217@gmail.com>
24568         * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
24569         code gen with large shift amount.
24571 2019-04-16  Chung-Ju Wu  <jasonwucj@gmail.com>
24573         * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
24574         subreg.
24576 2019-04-16  Jakub Jelinek  <jakub@redhat.com>
24578         PR target/90096
24579         * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
24580         print -m64/-mx32/-m32 if it is true.
24581         (ix86_debug_options, ix86_function_specific_print): Pass true as
24582         ADD_ABI_P to ix86_target_string.
24583         (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
24584         ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
24585         or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
24587         PR rtl-optimization/90082
24588         * dce.c (can_delete_call): New function.
24589         (deletable_insn_p, mark_insn): Use it.
24591         PR tree-optimization/90090
24592         * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
24593         throw internally.
24594         (is_division_by_square): Likewise.  Formatting fix.
24596 2019-04-16  Richard Biener  <rguenther@suse.de>
24598         PR tree-optimization/56049
24599         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
24600         equality check if alias-set zero will prevail.
24602 2019-04-15  Jeff Law  <law@redhat.com>
24604         * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
24605         size and alignment as unsigned.
24607 2019-04-15  Richard Biener  <rguenther@suse.de>
24609         PR debug/90074
24610         * tree-loop-distribution.c (destroy_loop): Preserve correct
24611         debug info.
24613 2019-04-15  Richard Biener  <rguenther@suse.de>
24615         PR tree-optimization/90071
24616         * tree-ssa-reassoc.c (init_range_entry): Do not pick up
24617         abnormal operands from def stmts.
24619 2019-04-15  Segher Boessenkool  <segher@kernel.crashing.org>
24621         PR rtl-optimization/89794
24622         * combine.c (count_auto_inc): New function.
24623         (try_combine): Count how many auto_inc expressions there were in the
24624         original instructions.  Ensure we have the same number in the new
24625         instructions.  Remove the code that tried to ensure auto_inc side
24626         effects on i1 and i0 are not lost.
24628 2019-04-15  Richard Biener  <rguenther@suse.de>
24630         PR ipa/88936
24631         * tree.h (auto_var_p): Declare.
24632         * tree.c (auto_var_p): New function, split out from ...
24633         (auto_var_in_fn_p): ... here.
24634         * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
24635         member.
24636         (new_var_info): Initialize it.
24637         (set_uids_in_ptset): Also set the shadow variable uid if required.
24638         (ipa_pta_execute): Postprocess points-to solutions assigning
24639         shadow variable uids for locals that may reach their containing
24640         function recursively.
24641         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
24642         assert but instead check whether the points-to solution is
24643         a singleton.
24645 2019-04-15  Martin Jambor  <mjambor@suse.cz>
24647         PR ipa/pr89693
24648         * cgraph.c (clone_of_p): Loop over clone chain for each step in
24649         the thunk chain.
24651 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
24653         * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
24655 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
24656             Kito Cheng  <kito.cheng@gmail.com>
24657             Shiva Chen  <shiva0217@gmail.com>
24659         * config/nds32/nds32-md-auxiliary.c
24660         (nds32_legitimize_pic_address): Use new PIC pattern.
24661         (nds32_legitimize_tls_address): Use new TLS pattern.
24662         (nds32_output_symrel): New.
24663         * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
24664         (nds32_alloc_relax_group_id): Ditto.
24665         * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
24666         (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
24667         relax_group_id.
24668         (nds32_group_tls_insn): Ditto.
24669         (nds32_group_float_insns): Ditto.
24670         * config/nds32/nds32.md (tls_le): New.
24671         (sym_got): Ditto.
24673 2019-04-15  Chung-Ju Wu  <jasonwucj@gmail.com>
24675         * configure: Add nds32 target for dwarf2 debug_line checking.
24676         * configure.ac: Regenerated.
24678 2019-04-14  Jan Hubicka  <hubicka@ucw.cz>
24680         PR lto/89358
24681         * ipa-devirt.c (skip_in_fields_list_p): New.
24682         (odr_types_equivalent_p): Use it.
24684 2019-04-13  Jakub Jelinek  <jakub@redhat.com>
24686         PR target/89093
24687         * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
24688         instead of strncmp when checking for thumb and arm.  Formatting fixes.
24690 2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
24692         * doc/install.texi: Document --with-target-system-zlib.
24694 2019-04-12  Martin Sebor  <msebor@redhat.com>
24696         PR c/88383
24697         PR c/89288
24698         PR c/89798
24699         PR c/89797
24700         * targhooks.c (default_vector_alignment): Avoid assuming
24701         argument fits in SHWI.
24702         * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
24703         a shift expression.
24704         * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
24706 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
24708         PR rtl-optimization/89965
24709         * dce.c: Include rtl-iter.h.
24710         (struct check_argument_load_data): New type.
24711         (check_argument_load): New function.
24712         (find_call_stack_args): Check for loads from stack slots still tracked
24713         in sp_bytes and punt if any is found.
24715         * config/mips/loongson-mmiintrin.h: Fix up #error message.
24717 2019-04-12  Jan Hubicka  <hubicka@ucw.cz>
24719         * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
24720         * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
24722 2019-04-12  Martin Liska  <mliska@suse.cz>
24724         PR middle-end/89970
24725         * multiple_target.c (create_dispatcher_calls): Wrap ifunc
24726         in error message.
24727         (separate_attrs): Handle multiple 'default's.
24728         (expand_target_clones): Rework error handling code.
24730 2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24732         PR target/87532
24733         * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
24734         mode of vector rather than mode of destination for move instruction.
24735         * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
24736         Use QI inner mode with V16QI vector mode.
24738 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
24740         PR target/52726
24741         * config/tilepro/tilepro.c (tilepro_print_operand): Use just
24742         "invalid %%t operand" in output_operand_lossage message.
24744 2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
24746         * config/s390/predicates.md (permute_pattern_operand): New
24747         predicate.
24748         * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
24749         operand for the permute pattern.
24750         ("*vec_perm<mode>"): New insn definition.
24751         ("bswap<mode>"): Generate the permute pattern operand in the
24752         expander and perform the operand reloads for pre arch13 level
24753         already.
24754         ("*bswap<mode>_emu"): Rename to ...
24755         ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
24756         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
24757         Add the USE operand for the permute pattern.
24758         ("*vec_set_bswap_vec<mode>"): Likewise.
24760 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
24762         PR c/89946
24763         * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
24764         and gcc_unreachable if it fails, just call tree_to_uhwi which
24765         verifies that too.  Test TREE_CHAIN instead of list_length > 1.
24766         Start warning message with a lower-case letter.  Formatting fixes.
24768         PR rtl-optimization/90026
24769         * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
24770         successors, look for BARRIERs inside of the whole BB_FOOTER chain
24771         rather than just at the start of it.  If e->src BB_FOOTER is not NULL
24772         in cfglayout mode, use emit_barrier_after_bb.
24774 2018-04-11  Steve Ellcey  <sellcey@marvell.com>
24776         PR rtl-optimization/87763
24777         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
24778         New Instruction.
24780 2019-04-11  Tom de Vries  <tdevries@suse.de>
24782         * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
24783         max macro using statement expression.
24785 2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
24787         * xcoffout.h (xcoff_private_rodata_section_name): Declare.
24788         * xcoffout.c (xcoff_private_rodata_section_name): Define.
24789         * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
24790         read_only_private_data_section using xcoff_private_rodata_section_name.
24791         (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
24793 2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>
24795         PR target/90016
24796         * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
24798 2019-04-11  Jakub Jelinek  <jakub@redhat.com>
24800         PR rtl-optimization/89965
24801         * dce.c (sp_based_mem_offset): New function.
24802         (find_call_stack_args): Use sp_based_mem_offset.
24804 2019-04-11  Jonathan Wakely  <jwakely@redhat.com>
24806         * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
24808 2019-04-11  Richard Biener  <rguenther@suse.de>
24810         PR tree-optimization/90020
24811         * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
24812         * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
24813         * tree-ssa-pre.c (compute_avail): Use it to not put
24814         possibly trapping references after a call that might not
24815         return into EXP_GEN.
24816         * gcse.c (compute_hash_table_work): Do not elide
24817         marking a block containing a call if the call might not
24818         return.
24820 2019-04-11  Richard Biener  <rguenther@suse.de>
24822         PR tree-optimization/90018
24823         * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
24824         Test both SLP and interleaving variants.
24826 2019-04-11  Robin Dapp  <rdapp@linux.ibm.com>
24828         * config/s390/8561.md: New file.
24829         * config/s390/driver-native.c (s390_host_detect_local_cpu):
24830         Add arch13 cpu model.
24831         * config/s390/s390-opts.h (enum processor_type): Likewise.
24832         * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
24833         (s390_get_unit_mask): Likewise.
24834         (s390_is_fpd): Likewise.
24835         (s390_is_fxd): Likewise.
24836         * config/s390/s390.h (s390_tune_attr): Likewise.
24837         * config/s390/s390.md: Include arch13 pipeline description.
24838         * config/s390/s390.opt: Add arch13.
24840 2018-04-10  Steve Ellcey  <sellcey@marvell.com>
24842         PR rtl-optimization/87763
24843         * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
24844         New prototype.
24845         * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
24846         New function.
24847         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
24848         New instruction.
24849         (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
24850         (*aarch64_bfi<GPI:mode>4_noand): Ditto.
24851         (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
24852         (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
24854 2019-04-10  Jonathan Wakely  <jwakely@redhat.com>
24856         * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
24857         "Although" in -fipa-icf documentation.
24859         * doc/invoke.texi (Debugging Options): Explicitly state the semantics
24860         of using multiple -g options.
24862 2019-04-10  Martin Liska  <mliska@suse.cz>
24864         PR gcov-profile/89959
24865         * doc/gcov.texi: Make documentation of -x option
24866         more precise.
24868 2019-04-10  Richard Biener  <rguenther@suse.de>
24870         * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
24871         member.
24872         (DR_GROUP_SAME_DR_STMT): Remove.
24873         * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
24874         * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
24875         replace with assert.
24876         (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
24877         (vect_record_grouped_load_vectors): Remove unreachable code.
24879 2019-04-10  Richard Earnshaw  <rearnsha@arm.com>
24881         PR target/90016
24882         * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
24883         obsolete reference to N.
24885 2019-04-10  Jakub Jelinek  <jakub@redhat.com>
24887         PR middle-end/90025
24888         * expr.c (store_expr): Set properly size on the MEM passed to
24889         clear_storage.
24891         PR c++/90010
24892         * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
24893         with strlen in between hostsz-3 and hostsz-1 inclusive when no
24894         translation is needed, and when translation is needed, only append
24895         ... if the string length is hostsz or more bytes long.  Avoid using
24896         strncpy or strcat.
24898 2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>
24900         PR target/90024
24901         * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
24902         * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
24903         into three.
24904         * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
24905         differences directly.
24906         (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
24908 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
24910         PR translation/90011
24911         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
24912         from diagnostics.
24913         * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
24914         diagnostics.
24915         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
24916         * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
24917         * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
24918         trailing space from -gsplit-dwarf diagnostics.
24920         PR tree-optimization/89998
24921         * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
24922         instead of integer_type_node if possible, don't add ranges if return
24923         type is not compatible with int.
24924         * gimple-fold.c (gimple_fold_builtin_sprintf,
24925         gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
24926         integer_type_node.
24928 2019-04-09  Martin Liska  <mliska@suse.cz>
24930         * Makefile.in: Use GENERATOR_CFLAGS for all generators.
24931         * doc/install.texi: Document the new config.
24933 2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
24935         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
24936         use gimple_expr_type for load and store calls.  Skip over the
24937         condition argument in a conditional internal function.
24938         Protect use of TREE_INT_CST_LOW.
24940 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
24942         PR target/90015
24943         * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
24944         (riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
24945         trailing period from it too.
24947 2019-04-08  wu yuan  <wuyuan5@huawei.com>
24949         * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
24950         * config/aarch64/aarch64.md: Add "tsv110.md".
24951         * config/aarch64/tsv110.md: New file.
24953 2019-04-08  Richard Biener  <rguenther@suse.de>
24955         PR tree-optimization/90006
24956         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
24957         calls like lrint.
24959 2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>
24961         PR target/83033
24962         * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
24963         construction.
24964         (fma_root_node): Likewise.
24965         (func_fma_steering): Likewise.
24967 2019-04-08  Jakub Jelinek  <jakub@redhat.com>
24969         PR rtl-optimization/89865
24970         * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
24972         PR rtl-optimization/89865
24973         * config/i386/i386.md
24974         (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
24975         numbers not to clash with the additional operands[4].
24976         (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
24977         with extra register copy in the middle.
24979 2019-04-08  Martin Liska  <mliska@suse.cz>
24981         PR gcov-profile/89961
24982         * doc/gcov.texi: Document data_file.
24983         * gcov.c (generate_results): Add data_info into JSON output.
24985 2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
24987         PR tree-optimization/89725
24988         * tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
24989         loop's chrec as invariant symbol.
24990         * tree-chrec.h (chrec_contains_symbols): New parameter.
24991         * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
24992         (build_classic_dist_vector_1, add_other_self_distances): Bypass access
24993         function of loops not in DDR's loop_nest.
24994         * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
24996 2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>
24998         PR target/89623
24999         * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
25000         Mask.
25002 2019-04-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25004         PR target/89945
25005         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
25006         Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
25008 2019-04-05  Joern Rennecke  <joern.rennecke@embecosm.com>
25010         * sched-deps.c (sched_macro_fuse_insns): Check return value of
25011         targetm.fixed_condition_code_regs.
25013 2019-04-05  Richard Biener  <rguenther@suse.de>
25015         PR debug/89892
25016         PR debug/89905
25017         * tree-cfgcleanup.c (remove_forwarder_block): Always move
25018         debug bind stmts but reset them if they are not valid at the
25019         destination.
25021 2019-04-05  Martin Liska  <mliska@suse.cz>
25023         PR translation/89936
25024         * collect-utils.c (collect_execute): Use %< and %>, or %qs in
25025         order to wrap keywords or arguments.
25026         * collect2.c (main): Likewise.
25027         (scan_prog_file): Likewise.
25028         (scan_libraries): Likewise.
25029         * common/config/riscv/riscv-common.c
25030         (riscv_subset_list::parsing_subset_version): Likewise.
25031         (riscv_subset_list::parse_std_ext): Likewise.
25032         * config/aarch64/aarch64.c (aarch64_override_options_internal):
25033         Likewise.
25034         * config/arm/arm.c (arm_option_override): Likewise.
25035         * config/cris/cris.c (cris_print_operand): Likewise.
25036         * config/darwin-c.c (darwin_pragma_options): Likewise.
25037         (darwin_pragma_unused): Likewise.
25038         (darwin_pragma_ms_struct): Likewise.
25039         * config/ft32/ft32.c (ft32_print_operand): Likewise.
25040         * config/i386/i386.c (print_reg): Likewise.
25041         (ix86_print_operand): Likewise.
25042         * config/i386/xm-djgpp.h: Likewise.
25043         * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
25044         * config/m32c/m32c.c (m32c_option_override): Likewise.
25045         * config/msp430/msp430.c (msp430_option_override): Likewise.
25046         * config/nds32/nds32.c (nds32_option_override): Likewise.
25047         * config/nvptx/mkoffload.c (main): Likewise.
25048         * config/rx/rx.c (rx_print_operand): Likewise.
25049         (valid_psw_flag): Likewise.
25050         * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
25051         (vms_pragma_nomember_alignment): Likewise.
25052         (vms_pragma_extern_model): Likewise.
25053         * lto-wrapper.c (compile_offload_image): Likewise.
25054         * omp-offload.c (oacc_parse_default_dims): Likewise.
25055         * symtab.c (symtab_node::verify_base): Likewise.
25056         * tlink.c (recompile_files): Likewise.
25057         (start_tweaking): Likewise.
25058         * tree-profile.c (parse_profile_filter): Likewise.
25060 2019-04-05  Richard Sandiford  <richard.sandiford@arm.com>
25062         PR tree-optimization/89956
25063         * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
25064         multiple negates of the same value.
25066 2019-04-04  Martin Sebor  <msebor@redhat.com>
25068         PR middle-end/89957
25069         PR middle-end/89911
25070         * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
25071         have the same precision since the function crashes otherwise.
25072         * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
25073         has non-zero arguments.
25075 2019-04-04  Martin Sebor  <msebor@redhat.com>
25077         PR middle-end/89934
25078         * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
25079         out if the number of arguments is less than expected.
25081 2019-04-04  Jeff Law  <law@redhat.com>
25083         PR rtl-optimization/89399
25084         * ree.c (combine_set_extension): Use single_set rather than
25085         digging into PATTERN for items on the candidate list.
25086         (combine_reaching_defs): Likewise.
25088 2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>
25090         PR rtl-optimization/46590
25091         * loop-invariant.c (find_defs): Move df_remove_problem and
25092         df_process_deferred_rescans to move_invariants.
25093         Move df_live_add_problem and df_live_set_all_dirty calls
25094         to move_invariants.
25095         (move_invariants): Likewise.
25096         (move_loop_invariants): Likewise, making the df_live calls
25097         conditional on -O.  Remove the problem again if we added it
25098         locally.
25100 2019-04-03  qing zhao  <qing.zhao@oracle.com>
25102         PR tree-optimization/89730
25103         * ipa-inline.c (can_inline_edge_p): Delete the checking for
25104         -flive-patching=inline-only-static.
25105         (can_inline_edge_by_limits_p): Add the checking for
25106         -flive-patching=inline-only-static and grant always_inline
25107         even when -flive-patching=inline-only-static is specified.
25109 2019-04-03  Jeff Law  <law@redhat.com>
25111         PR rtl-optimization/81025
25112         * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
25114 2019-04-03  Richard Biener  <rguenther@suse.de>
25116         PR tree-optimization/84101
25117         * tree-vect-stmts.c: Include explow.h for hard_function_value,
25118         regs.h for hard_regno_nregs.
25119         (cfun_returns): New helper.
25120         (vect_model_store_cost): When vectorizing a store to a decl
25121         we return and the function ABI returns in a multi-reg location
25122         account for the possible spilling that will happen.
25124 2019-04-03  Andreas Krebbel  <krebbel@linux.ibm.com>
25126         * config/s390/s390.c (s390_legitimate_address_p): Reject long
25127         displacement addresses for vector mode operands.
25129 2019-04-03  Claudiu Zissulescu  <claziss@synopsys.com>
25131         * config/arc/arc.c (GMASK_LEN): Define.
25132         (arc_restore_callee_saves): Restore first blink when
25133         !optimize_size.
25135 2019-04-03  Sudakshina Das  <sudi.das@arm.com>
25137         * doc/extend.texi: Add deprecated comment on sign-return-address
25138         function attribute and add mbranch-protection.
25139         * doc/invoke.texi: Add bti to the options for mbranch-protection.
25141 2019-04-03  Richard Biener  <rguenther@suse.de>
25143         PR lto/89896
25144         * lto-wrapper.c (run_gcc): Avoid implicit rules making
25145         the all target phony.
25147 2019-04-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25149         PR target/89902
25150         PR target/89903
25151         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
25152         Return false for variable DImode shifts.
25153         (dimode_scalar_chain::compute_convert_gain): Do not handle
25154         register count operand in variable DImode shifts.
25155         (dimode_scalar_chain::make_vector_copies): Remove support to copy
25156         count argument of a variable shift instruction to a vector register.
25157         (dimode_scalar_chain::convert_reg): Remove support to convert
25158         count argument of a variable shift instruction.
25160 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
25162         PR rtl-optimization/84206
25163         * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
25164         iterating over loop headers.
25166 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
25168         PR rtl-optimization/85876
25169         * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
25170         beyond the original fence.
25172 2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>
25174         * config.gcc: Mark spu* targets as deprecated/obsolete.
25176 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25178         * config/s390/s390-builtin-types.def: New builtin function type
25179         definitions. Remove unused types.
25180         * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
25181         (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
25182         (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
25183         overloaded builtins.
25184         (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
25185         (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
25186         * config/s390/vecintrin.h (vec_float): New builtin macro definition.
25187         (vec_double, vec_signed, vec_unsigned): Define to use the new
25188         overloaded builtins.
25189         * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
25190         Remove expanders.
25192 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25194         * config/s390/s390-builtin-types.def: New builtin function type
25195         definitions.
25196         * config/s390/s390-builtins.def (s390_vec_search_string_cc)
25197         (s390_vec_search_string_until_zero_cc): New overloaded builtins.
25198         (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
25199         (s390_vstrszh, s390_vstrszf): New low-level builtins.
25200         * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
25201         constant definitions.
25202         * config/s390/vecintrin.h (vec_search_string_cc)
25203         (vec_search_string_until_zero_cc): New builtin name definitions.
25204         * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
25205         expanders.
25206         ("vec_vstrs<mode>"): New insn definition.
25208 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25210         * config/s390/s390-builtin-types.def: Add new builtin function
25211         types.
25212         * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
25213         New overloaded builtins.
25214         (s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
25215         s390_vsrd.
25216         * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
25217         (UNSPEC_VEC_SLDBYTE): ... this.
25218         (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
25219         * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
25220         definitions.
25221         * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
25222         Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
25223         ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
25225 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25227         ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
25228         New insn definition.
25229         * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
25230         * config/s390/vector.md (V_HW_HSD): ... here.
25232 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25234         * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
25235         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
25236         ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
25237         ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
25238         New insn definitions.
25240 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25242         * config/s390/s390-builtin-types.def: Add new builtin function type.
25243         * config/s390/s390-builtins.def: Add overloaded builtin
25244         s390_vec_reve and low-level builtins for s390_vler and s390_vster.
25245         * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
25246         * config/s390/vecintrin.h (vec_reve): New builtin name definition.
25247         * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
25248         ("eltswap<mode>"): New expander.
25249         ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
25250         insn definitions.
25252 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25254         * config/s390/s390-builtin-types.def: Add new builtin function types.
25255         * config/s390/s390-builtins.def: Add overloaded builtin
25256         s390_vec_revb. Add low-level builtins for vlbr and vstbr
25257         instructions.
25258         * config/s390/vecintrin.h (vec_revb): New builtin name definition.
25259         * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
25260         ("bswap<mode>"): New expander.
25261         ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
25263 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25265         * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
25266         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
25267         vector builtin version number in __VEC__.
25269 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25271         * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
25272         iterators.
25273         (SFSI): New mode attribute.
25274         ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
25275         ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
25276         rename to ...
25277         ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
25278         ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
25279         ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
25280         ("floatsi<mode>2"): Add wcefb instruction.
25282 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25284         * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
25285         * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
25286         mode iterators.
25287         ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
25288         ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
25289         support 32 bit fp-int conversions. Rename to ...
25290         ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
25291         ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
25292         ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
25293         ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
25294         ... to these.
25296 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25298         * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
25299         if-then-else constructs if we can use the select instruction.
25300         * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
25302 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25304         * config/s390/s390.md ("*popcountdi_arch13_cc")
25305         ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
25306         definition.
25307         ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
25308         Append _z196 to make it ...
25309         ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
25310         ("popcounthi2_z196"): ... this.
25311         ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
25312         ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
25314 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25316         * config/s390/s390.c (s390_canonicalize_comparison): Convert
25317         certain compares for arch13 in order to make use of the condition
25318         code result produced by the new instructions.
25319         (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
25320         nxrk, and nxgrk instruction patterns.
25321         * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
25322         (inv_no): Add new code iterator together with some attributes.
25323         ("*andc_split_<mode>"): Disable splitter for arch13.
25324         ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
25325         ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
25326         ("*<ANDOR:bitops_name>c<GPR:mode>")
25327         ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
25328         ("*n<ANDOR:inv_bitops_name><mode>_cconly")
25329         ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
25330         ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
25332 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
25334         * common/config/s390/s390-common.c (processor_flags_table): New
25335         entry for arch13.
25336         * config.gcc: Support arch13 with the --with-arch= configure flag.
25337         * config/s390/driver-native.c (s390_host_detect_local_cpu):
25338         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
25339         * config/s390/s390.c (s390_get_sched_attrmask)
25340         (s390_get_unit_mask): Add PROCESSOR_ARCH13.
25341         * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
25342         * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
25343         (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
25344         (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
25345         definitions.
25346         * config/s390/s390.opt: Support arch13 as processor type in
25347         command line options.
25349 2019-04-02  Martin Liska  <mliska@suse.cz>
25351         PR translation/89912
25352         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
25353         Fix param description of graphite-max-arrays-per-scop.
25355 2019-04-02  Eric Botcazou  <ebotcazou@adacore.com>
25357         * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
25358         (ASAN_CC1_SPEC): Use it in 64-bit mode.
25359         * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
25361 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
25363         PR rtl-optimization/85412
25364         * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
25365         sel_sched_region_1, not after.
25367 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
25369         PR rtl-optimization/86928
25370         * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
25371         compute_live if necessary.
25372         (sel_redirect_edge_and_branch): Likewise.
25374 2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>
25376         PR rtl-optimization/89865
25377         * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
25378         register if it is a part of small class.
25380 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
25382         PR rtl-optimization/87273
25383         * sel-sched-ir.c (merge_fences): Remove assert.
25385 2019-04-01  Richard Biener  <rguenther@suse.de>
25387         PR tree-optimization/46590
25388         * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
25389         (dom_walker::m_reachability): Add in place of...
25390         (dom_walker::m_skip_unreachable_blocks): ...this.
25391         * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
25392         Move complex initialization ...
25393         (dom_walker::walk): Here.  Especially compute m_bb_to_rpo
25394         lazily and initialize edge flags on each invocation.
25395         (dom_walker::bb_reachable): Use m_reachability.
25397 2019-04-01  Martin Liska  <mliska@suse.cz>
25399         PR driver/89861
25400         * opt-suggestions.c (option_proposer::build_option_suggestions):
25401         Add variant without any argument in order to provide better
25402         hints.
25404 2019-04-01  Richard Biener  <rguenther@suse.de>
25406         PR c/71598
25407         * gimple.c: Include langhooks.h.
25408         (gimple_get_alias_set): Treat enumeral types as the underlying
25409         integer type.
25411 2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
25412             Eric Botcazou  <ebotcazou@adacore.com>
25414         PR rtl-optimization/89862
25415         * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
25416         that operates on the full registers for WORD_REGISTER_OPERATIONS
25417         architectures.
25419 2019-03-29  Jim Wilson  <jimw@sifive.com>
25421         * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
25422         Clear MASK_RVC and then set if C subset supported.
25424 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
25426         PR c/89872
25427         * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
25428         non-addressable complit into its initializer if it is volatile.
25430 2019-03-29  Roman Zhuykov  <zhroma@ispras.ru>
25432         * opts-common.c (integral_argument): Set errno properly in one case.
25434 2019-03-29  Martin Liska  <mliska@suse.cz>
25436         * doc/invoke.texi: Remove -Wchkp from documentation.
25438 2019-03-29  Martin Liska  <mliska@suse.cz>
25440         * dbgcnt.c (print_limit_reach): New function.
25441         (dbg_cnt): Use it.
25443 2019-03-29  Martin Liska  <mliska@suse.cz>
25445         * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
25446         (dbg_cnt_process_opt): Parse first tokens aas
25447         dbg_cnt_process_single_pair is also using strtok.
25449 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
25451         PR rtl-optimization/87485
25452         * function.c (expand_function_end): Move stack_protect_epilogue
25453         before loading of return value into hard register(s).
25455 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
25457         PR middle-end/89621
25458         * tree-inline.h (struct copy_body_data): Add
25459         dont_remap_vla_if_no_change flag.
25460         * tree-inline.c (remap_type_3, remap_type_2): New functions.
25461         (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
25462         and remap_type_2 returns false.
25463         * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
25464         Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
25465         only from where it is copied to nested contexts.
25467 2019-03-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25469         PR target/89865
25470         * config/i386/i386.md (RMW operation with LEA peephole):
25471         Use LEAMODE mode attribute instead of SWI mode iterator for
25472         LEA pattern.
25474 2019-03-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25476         PR target/89848
25477         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
25478         Also process XEXP (src, 0) of a shift insn.
25480 2019-03-28  David Malcolm  <dmalcolm@redhat.com>
25482         PR middle-end/89725
25483         * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
25484         Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
25486 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
25488         * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
25489         test.
25490         (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
25491         (pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
25492         immediately after first one with df_analyze in between, but rather
25493         process all bbs, queueing ones that need second pass in a worklist,
25494         df_analyze, process queued debug insn changes and if second pass is
25495         needed, process bbs from worklist, df_analyze, process queued debug
25496         insns again.
25498         * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
25499         or CALL_P instead of INSN_P && !DEBUG_INSN_P.
25500         (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
25502 2019-03-28  Jonathan Wakely  <jwakely@redhat.com>
25504         PR c/79022
25505         * gengtype.h (create_nested_ptr_option): Fix parameter names to match
25506         definition.
25508 2019-03-27  Mateusz B  <mateuszb@poczta.onet.pl>
25510         PR target/85667
25511         * config/i386/i386.c (ix86_function_value_1): Call the newly added
25512         function for 32-bit MS_ABI.
25513         (function_value_ms_32): New function.
25515 2019-03-27  Andrew Stubbs  <ams@codesourcery.com>
25517         * config/gcn/gcn.md (CC_SAVE_REG): New constant.
25518         (movdi): Call gen_movdi_symbol_save_scc.
25519         (gen_movdi_symbol_save_scc): New insn and split.
25521 2019-03-27  Peter Bergner  <bergner@linux.ibm.com>
25523         PR rtl-optimization/89313
25524         * function.c (matching_constraint_num): New static function.
25525         (match_asm_constraints_1): Use it.  Fixup white space and comment.
25526         Don't replace inputs with non-matching constraints which conflict
25527         with early clobber outputs.
25529 2019-03-27  Jeff Law  <law@redhat.com>
25531         PR rtl-optimization/87761
25532         PR rtl-optimization/89826
25533         * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
25534         slightly later.
25535         (pass_cprop_hardreg::execute): Call df_analyze after adding the
25536         note problem to get REG_DEAD/REG_UNUSED notes updated.
25538 2019-03-27  Richard Biener  <rguenther@suse.de>
25540         PR tree-optimization/89463
25541         * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
25542         queue edges to remove.
25543         (eliminate_unnecessary_stmts): Remove dead PHIs alongside
25544         dead stmts.  Delay edge removal until PHIs are removed to
25545         make debug-stmt creation not confused by seemingly degenerate
25546         PHIs.
25548 2019-03-27  Alan Modra  <amodra@gmail.com>
25550         * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
25551         throughout file.
25552         * config/rs6000/darwin.h: Likewise.
25553         * config/rs6000/rs6000.c: Likewise.
25555 2019-03-27  Alan Modra  <amodra@gmail.com>
25557         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
25558         assign rs6000_hard_regno_mode_ok_p[m][r].  Formatting.
25560 2019-03-26  Andrew Waterman  <andrew@sifive.com>
25561             Jim Wilson  <jimw@sifive.com>
25563         * config/riscv/generic.md (generic_alu, generic_load, generic_store)
25564         (generic_xfer, generic_branch, generic_imul, generic_idivsi)
25565         (generic_idivdi, generic_fmul_single, generic_fmul_double)
25566         (generic_fdiv, generic_fsqrt): Add check for generic tune.
25567         (generic_alu): Add auipc to type list.
25568         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
25569         (riscv_microarchitecture): Declare.
25570         * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
25571         * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
25572         field.
25573         (riscv_microarchitecture): New.
25574         (sifive_7_tune_info): New.
25575         (riscv_cpu_info_table): Add microarchitecture value for rocket and
25576         size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
25577         entries.
25578         (riscv_store_data_bypass_p): New.
25579         (riscv_option_override): Set riscv_microarchitecture from
25580         cpu->microarchitecture.
25581         * config/riscv/riscv.md: Include sifive-7.md.
25582         (type): Add auipc.
25583         (tune): New.
25584         (auipc<mode>): Change type to auipc.
25585         (restore_stack_nonlocal): New.
25586         * config/riscv/sifive-7.md: New.
25587         * doc/invoke.texi (RISC-V Options): Update mtune docs.
25589 2019-03-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25591         PR target/89827
25592         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
25593         Also process XEXP (src, 0) of a shift insn.
25595 2019-03-26  Richard Biener  <rguenther@suse.de>
25597         * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
25598         (copy_debug_stmt): Likewise.
25599         (expand_call_inline): Likewise.
25600         (copy_bb): Avoid redundant lookup & set of gimple_block.
25601         * gimple-low.c (lower_gimple_return): Likewise.
25602         (lower_builtin_setjmp): Likewise.
25604 2019-03-26  Jakub Jelinek  <jakub@redhat.com>
25606         * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
25607         is constant 0, turn into static const data member initialized to false.
25608         (hash_table::hash_table): Only initialize m_gather_mem_stats #if
25609         GATHER_STATISTICS.  Add ATTRIBUTE_UNUSED to gather_mem_stats param.
25611 2019-03-26  Jason Merrill  <jason@redhat.com>
25612             Jakub Jelinek  <jakub@redhat.com>
25614         * mem-stats.h (mem_alloc_description::unregister_descriptor): New
25615         method.
25616         (mem_alloc_description::release_object_overhead): Fix comment typos.
25617         * hash-table.h (hash_table::~hash_table): Call
25618         release_instance_overhead only if m_entries is non-NULL, otherwise
25619         call unregister_descriptor.
25621 2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
25623         PR tree-optimization/81740
25624         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25625         In case of outer loop vectorization, check for backward dependence
25626         at the inner loop if outer loop dependence is reversed.
25628 2019-03-26  Alan Modra  <amodra@gmail.com>
25630         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
25631         rs6000_vector_mem init.  Correct wI and wJ comment.
25633 2019-03-25  Alexander Monakov  <amonakov@ispras.ru>
25635         PR rtl-optimization/88347
25636         PR rtl-optimization/88423
25637         * sched-deps.c (sched_analyze_insn): Take into account that for
25638         tablejumps the barrier appears after a label and a jump_table_data.
25640 2019-03-25  Martin Sebor  <msebor@redhat.com>
25642         PR c/89812
25643         * c-common.c (check_user_alignment): Rename local.  Correct maximum
25644         alignment in diagnostic.  Avoid assuming argument fits in SHWI,
25645         convert it to UHWI when it fits.
25647 2019-03-25  Johan Karlsson  <johan.karlsson@enea.com>
25649         PR debug/86964
25650         * dwarf2out.c (premark_used_variables): New function.
25651         (prune_unused_types_walk): Do not mark not premarked external
25652         variables.
25653         (prune_unused_types): Call premark_used_variables.
25655 2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>
25657         PR rtl-optimization/89676
25658         * lra-constraints.c (curr_insn_transform): Do match reload for
25659         early clobbers when the match was successful only for different
25660         registers.
25662 2019-03-25  Martin Sebor  <msebor@redhat.com>
25664         * doc/extend.texi (Common Type Attributes): Document vector_size.
25665         (Common Variable Attributes): Mention size constraint.  Correct
25666         quoting and typos.
25667         (Vector Extensions): Use @dfn when defining bas type.  Clarify
25668         base type and size constraints.
25670 2019-03-25  Richard Biener  <rguenther@suse.de>
25672         PR tree-optimization/89789
25673         * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
25674         changes from non-undefined back to undefined.
25676 2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>
25678         * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
25679         heap string and a gc string, but since this variable is unknown to
25680         ggc the gc string might get reused and corrupted. Fixed by always
25681         using a heap string.
25683 2019-03-25  Richard Biener  <rguenther@suse.de>
25685         PR tree-optimization/89779
25686         * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
25687         to remove IV defs, delay actual removal.
25688         (tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
25689         (tree_ssa_iv_optimize): Remove eliminated IV defs at the
25690         very end, properly also reset loop control IV information.
25692 2019-03-25  Richard Biener  <rguenther@suse.de>
25694         PR tree-optimization/89802
25695         * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
25696         move EH data to folded stmt.
25698 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
25700         * config/s390/s390-builtin-types.def: Remove few unused types and
25701         fix sort order for others.
25703 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
25705         * config/s390/s390-c.c (s390_fn_types_compatible): Print the
25706         expected and found types with -mdebug during builtin matching.
25708 2019-03-25  Richard Biener  <rguenther@suse.de>
25710         PR middle-end/89790
25711         * fold-const.c (operand_equal_p): Revert last change with
25712         updated comment.
25714 2019-03-24  Segher Boessenkool  <segher@kernel.crashing.org>
25716         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
25717         notes for the result of the __tls_get_addr calls.
25718         * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
25720 2019-03-24  Jeff Law  <law@redhat.com>
25722         * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
25724         PR rtl-optimization/87761
25725         * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
25726         not INSN.  Also check RTX_FRAME_RELATED_P.  Queue insns for DF rescan
25727         as needed.
25728         (pass_cprop_hardreg::execute): Add df note problem and defer insn
25729         rescans.  Reprocess blocks as needed, calling df_analyze before
25730         reprocessing.  Always call df_analyze before fixing up debug bind
25731         insns.
25733 2019-03-23  Segher Boessenkool  <segher@kernel.crashing.org>
25735         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
25736         big endian.
25738 2019-03-22  Andrew Pinski  <apinski@marvell.com>
25740         * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
25741         attrribute for uxtw.
25743 2019-03-26  Jeff Law  <law@redhat.com>
25745         PR rtl-optimization/87761
25746         * config/mips/mips-protos.h (mips_split_move): Add new argument.
25747         (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
25748         (mips_split_move): Accept new INSN argument.  Try to forward SRC
25749         into the next instruction.
25750         (mips_split_move_insn): Pass INSN through to mips_split_move.
25752 2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>
25754         PR rtl-optimization/89676
25755         * lra-constraints.c (curr_insn_transform): Do match reload for
25756         early clobbers even if the match was successful.
25758 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
25760         PR c++/87481
25761         * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
25763 2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
25765         * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
25767 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
25769         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
25770         <avx512>_fmsub_<mode>_mask3<round_name>,
25771         <avx512>_fnmadd_<mode>_mask3<round_name>,
25772         <avx512>_fnmsub_<mode>_mask3<round_name>,
25773         avx512f_vmfmadd_<mode>_mask3<round_name>,
25774         avx512f_vmfmsub_<mode>_mask3<round_name>,
25775         *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
25776         instead of register_operand and %v instead of v for match_operand 1.
25777         (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
25778         (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this.  Use
25779         <round_nimm_predicate> instead of register_operand and %v instead of v
25780         for match_operand 1.
25782         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
25783         <avx512>_fmadd_<mode>_mask3<round_name>,
25784         <avx512>_fmsub_<mode>_mask<round_name>,
25785         <avx512>_fmsub_<mode>_mask3<round_name>,
25786         <avx512>_fnmadd_<mode>_mask<round_name>,
25787         <avx512>_fnmadd_<mode>_mask3<round_name>,
25788         <avx512>_fnmsub_<mode>_mask<round_name>,
25789         <avx512>_fnmsub_<mode>_mask3<round_name>,
25790         <avx512>_fmaddsub_<mode>_mask<round_name>,
25791         <avx512>_fmaddsub_<mode>_mask3<round_name>,
25792         <avx512>_fmsubadd_<mode>_mask<round_name>,
25793         <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
25794         <round_nimm_predicate> instead of nonimmediate_operand.
25795         (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
25796         fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
25797         Use register_operand instead of <round_nimm_predicate> for the
25798         operand that needs to match output.
25799         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
25800         *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
25801         Likewise.  Formatting fixes.
25803         PR target/89784
25804         * config/i386/i386.c (enum ix86_builtins): Remove
25805         IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
25806         * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
25807         __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
25808         __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
25809         __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
25810         __builtin_ia32_vfmsubss3_mask3): New builtins.
25811         * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
25812         avx512f_vmfmadd_<mode>_mask3<round_name>,
25813         avx512f_vmfmadd_<mode>_maskz_1<round_name>,
25814         *avx512f_vmfmsub_<mode>_mask<round_name>,
25815         avx512f_vmfmsub_<mode>_mask3<round_name>,
25816         *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
25817         *avx512f_vmfnmadd_<mode>_mask<round_name>,
25818         *avx512f_vmfnmadd_<mode>_mask3<round_name>,
25819         *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
25820         *avx512f_vmfnmsub_<mode>_mask<round_name>,
25821         avx512f_vmfnmsub_<mode>_mask3<round_name>,
25822         *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
25823         (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
25824         * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
25825         _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
25826         _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
25827         _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
25828         _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
25829         _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
25830         _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
25831         _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
25832         _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
25833         _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
25834         _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
25835         _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
25836         _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
25837         _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
25838         _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
25839         _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
25840         _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
25841         _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
25842         _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
25843         _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
25845 2019-03-21  Martin Sebor  <msebor@redhat.com>
25847         PR tree-optimization/89350
25848         * builtins.c (compute_objsize): Also ignore offsets whose upper
25849         bound is negative.
25850         * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
25851         (builtin_memref::builtin_memref): Initialize new member.
25852         Allow EXPR to be null.
25853         (builtin_memref::extend_offset_range): Replace local with a member.
25854         Avoid assuming pointer offsets are unsigned.
25855         (builtin_memref::set_base_and_offset): Determine base object
25856         before computing offset range.
25857         (builtin_access::builtin_access): Handle memset.
25858         (builtin_access::generic_overlap): Replace local with a member.
25859         (builtin_access::strcat_overlap): Same.
25860         (builtin_access::overlap): Same.
25861         (maybe_diag_overlap): Same.
25862         (maybe_diag_access_bounds): Same.
25863         (wrestrict_dom_walker::check_call): Handle memset.
25864         (check_bounds_or_overlap): Same.
25866 2019-03-21  Jan Hubicka  <hubicka@ucw.cz>
25867             Jakub Jelinek  <jakub@redhat.com>
25869         PR lto/89692
25870         * tree.c (fld_type_variant, fld_incomplete_type_of,
25871         fld_process_array_type): Call fld->pset.add and don't call
25872         add_tree_to_fld_list if it returns true.
25873         (free_lang_data_in_type): Similarly with self-recursive call.  Purge
25874         non-marked types from TYPE_NEXT_VARIANT list.
25875         (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
25877 2019-03-21  Jakub Jelinek  <jakub@redhat.com>
25879         * hash-table.h (hash_table): Add Lazy template parameter defaulted
25880         to false, if true, don't alloc_entries during construction, but defer
25881         it to the first method that needs m_entries allocated.
25882         (hash_table::hash_table, hash_table::~hash_table,
25883         hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
25884         hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
25885         hash_table::clear_slot, hash_table::traverse_noresize,
25886         hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
25887         * hash-set.h (hash_set): Add Lazy template parameter defaulted to
25888         false.
25889         (hash_set::contains): If Lazy is true, use find_slot_with_hash with
25890         NO_INSERT instead of find_with_hash.
25891         (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
25892         hash_set::m_table): Add Lazy to template params of hash_table.
25893         (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
25894         * attribs.c (test_attribute_exclusions): Likewise.
25895         * hash-set-tests.c (test_set_of_strings): Add iterator tests for
25896         hash_set.  Add tests for hash_set with Lazy = true.
25898 2019-03-21  Richard Biener  <rguenther@suse.de>
25900         PR tree-optimization/89779
25901         * tree.c (tree_nop_conversion): Consolidate and fix defensive
25902         checks with respect to released SSA names now having error_mark_node
25903         type.
25904         * fold-const.c (operand_equal_p): Likewise.
25906 2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>
25908         PR target/89775
25909         * config/s390/s390.c (global_not_special_regno_p): Move to make it
25910         available to ...
25911         (s390_optimize_register_info): Use global_not_special_regno_p to
25912         check for global regs.
25914 2019-03-20  Jakub Jelinek  <jakub@redhat.com>
25916         PR target/89752
25917         * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
25918         update this_alternative nor this_alternative_set.
25920 2019-03-19  Jim Wilson  <jimw@sifive.com>
25922         PR target/89411
25923         * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x.  New locals
25924         align, size, offset.  Use them to handle a BLKmode reference.  Update
25925         comment.
25926         (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
25928 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
25930         PR rtl-optimization/89768
25931         * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
25932         instead of GEN_INT.
25933         (unroll_loop_runtime_iterations): Likewise.
25935 2019-03-19  Martin Sebor  <msebor@redhat.com>
25937         PR tree-optimization/89644
25938         * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
25939         rather than endptr as an indicator of nul-termination.
25941         PR tree-optimization/89644
25942         * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
25943         arrays in determining sequence sizes in strncpy and stpncpy.
25945 2019-03-19  Martin Liska  <mliska@suse.cz>
25947         PR middle-end/89737
25948         * predict.c (combine_predictions_for_bb): Empty likely_edges and
25949         unlikely_edges if there's an edge that belongs to both these sets.
25951 2018-03-19  Segher Boessenkool  <segher@kernel.crashing.org>
25953         PR target/89746
25954         * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
25955         non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
25956         go via a stack temporary.
25958 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
25960         PR target/89378
25961         * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
25962         instead of gen_rtx_SUBREG.
25963         * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
25965 2019-03-19  Richard Biener  <rguenther@suse.de>
25967         PR debug/88389
25968         * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
25970 2019-03-19  Jan Hubicka  <hubicka@ucw.cz>
25972         PR lto/87809
25973         PR lto/89335
25974         * tree.c (free_lang_data_in_decl): Do not free context of C++
25975         destrutors.
25977 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
25979         PR target/89506
25980         * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
25981         subs for the first alternative except when operands[3] is 1.
25983         PR target/89752
25984         * gimplify.c (gimplify_asm_expr): For output argument with
25985         TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
25986         diagnose error.
25988 2019-03-19  Eric Botcazou  <ebotcazou@adacore.com>
25990         PR rtl-optimization/89753
25991         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
25992         explicit unrolling factor even more robust.
25994 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
25996         PR target/89726
25997         * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
25998         compensation use x2 += 1 instead of x2 -= -1 and when honoring
25999         signed zeros, do another copysign after the compensation.
26001 2019-03-18  Martin Sebor  <msebor@redhat.com>
26003         PR tree-optimization/89720
26004         * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
26005         more conservatively, the same as anti-range.
26007 2019-03-18  Richard Biener  <rguenther@suse.de>
26009         PR middle-end/88945
26010         * tree-ssanames.c (release_ssa_name_fn): For released SSA names
26011         use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
26012         basic-blocks that are removed.  Remove restoring SSA_NAME_VAR.
26013         * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
26015 2019-03-18  Andrew Stubbs  <ams@codesourcery.com>
26017         * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
26018         Extend queue to 1024 entries.
26019         Add "consumed" field.
26020         (gomp_print_output): Remove print_index parameter.
26021         Add final parameter.
26022         Change limit to unsigned.
26023         Use consumed field to implement circular buffer.
26024         Detect interrupted print in final pass.
26025         Flush output at the end.
26026         (run): Update gomp_print_output usage.
26027         (main): Initialize kernargs->output_data.consumed.
26029 2019-03-18  Richard Sandiford  <richard.sandiford@arm.com>
26031         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
26032         calculation of the minimum number of scalar iterations for
26033         fully-predicated loops.
26035 2019-03-18  Martin Jambor  <mjambor@suse.cz>
26037         PR tree-optimization/89546
26038         * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
26039         any propagation to its children took place.
26041 2019-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>
26043         PR target/89627
26044         * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
26045         parameter, and make use of it.
26046         (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
26048 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
26050         * config/arc/arc.opt (mcode-density-frame): Get the inital value
26051         from TARGET_CODE_DENSITY_FRAME_DEFAULT.
26052         * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
26053         * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
26054         * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
26055         match what the ops is doing.
26056         (push_multi_fp_blink): Likewise.
26057         * config/arc/arc.c (arc_override_options): Enable enter/leave when
26058         compiling for size and elf target.
26059         (arc_save_callee_enter): Adjust note to match what enter/leave
26060         operation does.
26062 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
26064         * config/arc/arc.md (tst_movb): Fix constraint.
26066 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
26068         * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
26070 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
26072         * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
26073         * config/arc/arc.c (arc_conditional_register_usage): Remove all
26074         reg_alloc_order references.
26075         (size_alloc_order): Define.
26076         (arc_adjust_reg_alloc_order): New function.
26077         * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
26078         order.
26079         (ADJUST_REG_ALLOC_ORDER): Define.
26080         (HONOR_REG_ALLOC_ORDER): Likewise.
26082 2019-03-18  Richard Biener  <rguenther@suse.de>
26084         PR target/87561
26085         * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
26086         loads and stores a bit more.
26088 2019-03-18  Richard Biener  <rguenther@suse.de>
26090         PR target/87561
26091         * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
26092         load pessimization to stores as well.
26094 2019-03-18  Andrey Belevantsev  <abel@ispras.ru>
26096         PR middle-end/86979
26097         * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
26098         successor, use NULL as its av set.
26100 2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
26102         PR rtl-optimization/89721
26103         * lra-constraints (invariant_p): Return false if side_effects_p holds.
26105 2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26107         PR target/87532
26108         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
26109         When handling vec_extract, use modular arithmetic to allow
26110         constant selectors greater than vector length.
26111         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
26112         V1TImode vectors to have constant selector values greater than 0.
26113         Use modular arithmetic to compute vector index.
26114         (rs6000_split_vec_extract_var): Use modular arithmetic to compute
26115         index for in-memory vectors.  Correct code generation for
26116         in-register vectors.
26117         (altivec_expand_vec_ext_builtin): Use modular arithmetic to
26118         compute index.
26120 2019-03-15  Alexandre Oliva  <aoliva@redhat.com>
26122         PR c++/88534
26123         PR c++/88537
26124         * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
26125         VAR_DECL args.
26127 2019-03-15  Jakub Jelinek  <jakub@redhat.com>
26129         PR c++/89709
26130         * tree.c (inchash::add_expr): Strip any location wrappers.
26131         * fold-const.c (operand_equal_p): Move stripping of location wrapper
26132         after hash verification.
26134         PR debug/89704
26135         * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
26136         SIGN_EXTEND and ZERO_EXTEND.
26138 2019-03-14  Jason Merrill  <jason@redhat.com>
26139             Jakub Jelinek  <jakub@redhat.com>
26141         * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
26142         than if is_empty (*slot).
26143         * hash-set-tests.c (test_set_of_strings): Add tests for addition of
26144         existing elt and for elt removal.
26145         * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
26146         of already removed elt.
26148 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
26150         PR target/89650
26151         * config/i386/i386.c (remove_partial_avx_dependency): Handle
26152         REG_EH_REGION note.
26154 2019-03-14  Martin Liska  <mliska@suse.cz>
26156         PR other/89712
26157         * doc/invoke.texi: Remove -fdump-class-hierarchy option.
26159 2019-03-14  Richard Biener  <rguenther@suse.de>
26161         PR target/89711
26162         * config/i386/i386.c (make_resolver_func): Properly set
26163         DECL_CONTEXT on the RESULT_DECL.
26164         * config/rs6000/rs6000.c (make_resolver_func): Likewise.
26166 2019-03-14  Richard Biener  <rguenther@suse.de>
26168         * gimple-pretty-print.c: Include cfgloop.h.
26169         (dump_gimple_phi): Adjust.
26170         (dump_gimple_bb_header): Dump loop header for GIMPLE.
26171         (pp_cfg_jump): Adjust.
26172         (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
26173         * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
26174         (lower_phi_internal_fn): Remove.
26175         (verify_gimple_call): Remove IFN_PHI special-casing.
26176         (dump_function_to_file): Dump IL state.
26177         * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
26178         done to deal with PHI nodes being present in non-SSA state.
26180 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
26182         PR ipa/89684
26183         * multiple_target.c (create_dispatcher_calls): Change
26184         references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
26185         In the node->iterate_referring loop, push *ref rather than ref, call
26186         ref->remove_reference () and always pass 0 to iterate_referring.
26188         PR rtl-optimization/89679
26189         * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
26190         would contain a paradoxical SUBREG.
26192 2019-03-14  Richard Biener  <rguenther@suse.de>
26194         PR tree-optimization/89710
26195         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
26196         safe_dyn_cast.
26198 2019-03-14  Martin Liska  <mliska@suse.cz>
26200         * coverage.c (coverage_begin_function): Stream also
26201         end_column.
26202         * doc/gcov.texi: Document 2 new fields in JSON file.  Improve
26203         documentation about function declaration location.
26204         * gcov-dump.c (tag_function): Print whole range
26205         of function declaration.
26206         * gcov.c (struct function_info): Add end_column field.
26207         (function_info::function_info): Initialize it.
26208         (output_json_intermediate_file): Output {start,end}_column
26209         fields.
26210         (read_graph_file): Read end_column.
26212 2019-03-14  Richard Biener  <rguenther@suse.de>
26214         PR middle-end/89698
26215         * fold-const.c (operand_equal_p): For INDIRECT_REF check
26216         that the access types are similar.
26218 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
26220         PR tree-optimization/89703
26221         * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
26222         aren't compatible also with builtin_decl_explicit.  Check pure
26223         or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
26224         and BUILT_IN_STPNCPY{,_CHK}.
26226 2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
26228         PR target/89523
26229         * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
26230         addr32 prefix to VSIB address for X32.
26231         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
26232         "%M2" to opcode.
26233         (*avx512pf_gatherpf<mode>df_mask): Likewise.
26234         (*avx512pf_scatterpf<mode>sf_mask): Likewise.
26235         (*avx512pf_scatterpf<mode>df_mask): Likewise.
26236         (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
26237         (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
26238         (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
26239         (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
26240         (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
26241         (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
26242         (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
26243         (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
26244         (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
26245         (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
26246         (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
26247         (*avx512f_scatterdi<mode>): Likewise.
26249 2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
26251         PR target/85860
26252         * lra-constraints.c (inherit_in_ebb): Update
26253         potential_reload_hard_regs along with live_hard_regs.
26255 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
26257         PR debug/89498
26258         * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
26259         DWARF_OFFSET_SIZE.
26260         (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
26262 2019-03-13  Martin Sebor  <msebor@redhat.com>
26264         PR tree-optimization/89662
26265         * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
26266         has a size.
26268 2019-03-13  Richard Biener  <rguenther@suse.de>
26270         PR middle-end/89677
26271         * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
26272         throw FP expressions at tree-affine.
26274 2019-03-14  Richard Biener  <rguenther@suse.de>
26276         * tree-pretty-print.c (dump_generic_node): For -gimple properly
26277         dump negative integer constants using _Literal (type) -num.
26279 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
26281         * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
26282         nonlocal_value member.
26284         PR middle-end/88588
26285         * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
26286         (ipa_simd_modify_function_body): Handle PHIs.
26288 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
26290         * config/s390/s390.c (s390_option_override_internal): Use more
26291         aggressive inlining parameters.
26293 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
26295         * config/s390/3906.md: New file.
26296         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
26297         (LONGRUNNING_THRESHOLD): Remove.
26298         (MAX_SCHED_MIX_SCORE): Decrease.
26299         (MAX_SCHED_MIX_DISTANCE): Decrease.
26300         (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
26301         (struct s390_sched_state): New struct to hold scheduling state.
26302         (S390_SCHED_STATE_NORMAL): Remove.
26303         (S390_SCHED_STATE_CRACKED): Remove.
26304         (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
26305         (s390_get_sched_attrmask): Use new attribute.
26306         (s390_get_unit_mask): Use new units.
26307         (s390_is_fpd): New function.
26308         (s390_is_fxd): New function.
26309         (s390_is_longrunning): New function.
26310         (s390_sched_score): Use new functions.
26311         (s390_sched_reorder): Likewise.
26312         (s390_sched_variable_issue): Rework and use new functions.
26313         (s390_sched_init): Use new functions.
26314         * config/s390/s390.h (s390_tune_attr): Add z14.
26315         * config/s390/s390.md: Add z14.
26317 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
26319         * config/s390/2964.md: Update pipeline description.
26320         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
26321         (LONGRUNNING_THRESHOLD): Remove.
26322         (LATENCY_FACTOR): Remove.
26323         (s390_get_unit_mask): Add unit.
26324         (s390_sched_score): Use fxd/fpd.
26325         (s390_sched_variable_issue): Use fxd/fpd.
26327 2019-03-12  Martin Liska  <mliska@suse.cz>
26329         * config/i386/i386.c: Reword an error message.
26331 2019-03-12  Martin Jambor  <mjambor@suse.cz>
26333         * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
26334         terminate with newline.
26336 2019-03-12  Jakub Jelinek  <jakub@redhat.com>
26338         PR target/52726
26339         * config/s390/s390.md (tabort): Use %wd instead of
26340         HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
26341         letters and periods.
26342         * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
26343         output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
26344         's with %< and %>.
26346         PR middle-end/89663
26347         * builtins.c (expand_builtin_int_roundingfn,
26348         expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
26349         gcc_unreachable if validate_arglist fails.
26351 2019-03-12  Richard Biener  <rguenther@suse.de>
26353         PR tree-optimization/89664
26354         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
26355         free the occurance tree after the early out.
26357 2019-03-11  Jakub Jelinek  <jakub@redhat.com>
26359         PR middle-end/89655
26360         PR bootstrap/89656
26361         * vr-values.c (vr_values::update_value_range): If
26362         old_vr->varying_p (), don't update it, make new_vr also VARYING
26363         and return false.
26365 2019-03-11  Martin Liska  <mliska@suse.cz>
26367         * config/aarch64/aarch64.c (aarch64_override_options_internal):
26368         Fix double string quoting.
26370 2019-03-11  Martin Liska  <mliska@suse.cz>
26372         * collect-utils.c (collect_wait): Wrap apostrophes
26373         in gcc internal format with %'.
26374         * collect2.c (main): Likewise.
26375         (scan_prog_file): Likewise.
26376         (scan_libraries): Likewise.
26377         * config/i386/i386.c (ix86_expand_call): Likewise.
26378         (ix86_handle_interrupt_attribute): Likewise.
26379         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
26380         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26381         * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
26382         * lto-wrapper.c (find_crtoffloadtable): Likewise.
26383         * symtab.c (symtab_node::verify_base): Likewise.
26384         * tree-cfg.c (verify_gimple_label): Likewise.
26385         * tree.c (verify_type_variant): Likewise.
26387 2019-03-11  Martin Liska  <mliska@suse.cz>
26389         * builtins.c (expand_builtin_thread_pointer): Wrap an option name
26390         in a string format message and fix GNU coding style.
26391         (expand_builtin_set_thread_pointer): Likewise.
26392         * common/config/aarch64/aarch64-common.c
26393         (aarch64_rewrite_selected_cpu): Likewise.
26394         * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
26395         * common/config/arc/arc-common.c (arc_handle_option): Likewise.
26396         * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
26397         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
26398         * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
26399         * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
26400         * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
26401         * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
26402         * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
26403         * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
26404         Likewise.
26405         * common/config/riscv/riscv-common.c
26406         (riscv_subset_list::parsing_subset_version): Likewise.
26407         (riscv_subset_list::parse_std_ext): Likewise.
26408         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
26409         (riscv_subset_list::parse): Likewise.
26410         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
26411         * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
26412         (aarch64_override_options_internal): Likewise.
26413         (aarch64_validate_mcpu): Likewise.
26414         (aarch64_validate_march): Likewise.
26415         (aarch64_validate_mtune): Likewise.
26416         (aarch64_override_options): Likewise.
26417         * config/alpha/alpha.c (alpha_option_override): Likewise.
26418         * config/arc/arc.c (arc_init): Likewise.
26419         (parse_mrgf_banked_regs_option): Likewise.
26420         (arc_override_options): Likewise.
26421         (arc_expand_builtin_aligned): Likewise.
26422         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
26423         (arm_expand_builtin): Likewise.
26424         * config/arm/arm.c (arm_option_check_internal): Likewise.
26425         (arm_configure_build_target): Likewise.
26426         (arm_option_override): Likewise.
26427         (arm_options_perform_arch_sanity_checks): Likewise.
26428         (arm_handle_cmse_nonsecure_entry): Likewise.
26429         (arm_handle_cmse_nonsecure_call): Likewise.
26430         (arm_tls_referenced_p): Likewise.
26431         (thumb1_expand_prologue): Likewise.
26432         * config/avr/avr.c (avr_option_override): Likewise.
26433         * config/bfin/bfin.c (bfin_option_override): Likewise.
26434         * config/c6x/c6x.c (c6x_option_override): Likewise.
26435         * config/cr16/cr16.c (cr16_override_options): Likewise.
26436         * config/cris/cris.c (cris_option_override): Likewise.
26437         * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
26438         * config/darwin-c.c (macosx_version_as_macro): Likewise.
26439         * config/darwin.c (darwin_override_options): Likewise.
26440         * config/frv/frv.c (frv_expand_builtin): Likewise.
26441         * config/h8300/h8300.c (h8300_option_override): Likewise.
26442         * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
26443         (ix86_option_override_internal): Likewise.
26444         (warn_once_call_ms2sysv_xlogues): Likewise.
26445         (ix86_expand_prologue): Likewise.
26446         (split_stack_prologue_scratch_regno): Likewise.
26447         (ix86_warn_parameter_passing_abi): Likewise.
26448         * config/ia64/ia64.c (fix_range): Likewise.
26449         * config/m68k/m68k.c (m68k_option_override): Likewise.
26450         * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
26451         * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
26452         (mips_set_compression_mode): Likewise.
26453         * config/mmix/mmix.c (mmix_option_override): Likewise.
26454         * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
26455         * config/msp430/msp430.c (msp430_option_override): Likewise.
26456         * config/nds32/nds32.c (nds32_option_override): Likewise.
26457         * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
26458         (nios2_option_override): Likewise.
26459         (nios2_expand_custom_builtin): Likewise.
26460         * config/nvptx/mkoffload.c (main): Likewise.
26461         * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
26462         * config/pa/pa.c (fix_range): Likewise.
26463         (pa_option_override): Likewise.
26464         * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
26465         (riscv_option_override): Likewise.
26466         * config/rl78/rl78.c (rl78_option_override): Likewise.
26467         * config/rs6000/aix61.h: Likewise.
26468         * config/rs6000/aix71.h: Likewise.
26469         * config/rs6000/aix72.h: Likewise.
26470         * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
26471         * config/rs6000/freebsd64.h: Likewise.
26472         * config/rs6000/linux64.h: Likewise.
26473         * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
26474         (rs6000_expand_zeroop_builtin): Likewise.
26475         (rs6000_expand_mtfsb_builtin): Likewise.
26476         (rs6000_expand_set_fpscr_rn_builtin): Likewise.
26477         (rs6000_expand_set_fpscr_drn_builtin): Likewise.
26478         (rs6000_invalid_builtin): Likewise.
26479         (rs6000_expand_split_stack_prologue): Likewise.
26480         * config/rs6000/rtems.h: Likewise.
26481         * config/rx/rx.c (valid_psw_flag): Likewise.
26482         (rx_expand_builtin): Likewise.
26483         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
26484         * config/s390/s390.c (s390_expand_builtin): Likewise.
26485         (s390_function_profiler): Likewise.
26486         (s390_option_override_internal): Likewise.
26487         (s390_option_override): Likewise.
26488         * config/sh/sh.c (sh_option_override): Likewise.
26489         (sh_builtin_saveregs): Likewise.
26490         (sh_fix_range): Likewise.
26491         * config/sh/vxworks.h: Likewise.
26492         * config/sparc/sparc.c (sparc_option_override): Likewise.
26493         * config/spu/spu.c (spu_option_override): Likewise.
26494         (fix_range): Likewise.
26495         * config/visium/visium.c (visium_option_override): Likewise.
26496         (visium_handle_interrupt_attr): Likewise.
26497         * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
26498         * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
26499         (dbg_cnt_process_opt): Likewise.
26500         * dwarf2out.c (output_dwarf_version): Likewise.
26501         * except.c (expand_eh_return): Likewise.
26502         * gcc.c (defined): Likewise.
26503         (driver_handle_option): Likewise.
26504         (process_command): Likewise.
26505         (compare_files): Likewise.
26506         (driver::prepare_infiles): Likewise.
26507         (driver::do_spec_on_infiles): Likewise.
26508         (driver::maybe_run_linker): Likewise.
26509         * omp-offload.c (oacc_parse_default_dims): Likewise.
26510         * opts-global.c (handle_common_deferred_options): Likewise.
26511         * opts.c (parse_sanitizer_options): Likewise.
26512         (common_handle_option): Likewise.
26513         (enable_warning_as_error): Likewise.
26514         * passes.c (enable_disable_pass): Likewise.
26515         * plugin.c (parse_plugin_arg_opt): Likewise.
26516         (default_plugin_dir_name): Likewise.
26517         * targhooks.c (default_expand_builtin_saveregs): Likewise.
26518         (default_pch_valid_p): Likewise.
26519         * toplev.c (init_asm_output): Likewise.
26520         (process_options): Likewise.
26521         (toplev::run_self_tests): Likewise.
26522         * tree-cfg.c (verify_gimple_call): Likewise.
26523         * tree-inline.c (inline_forbidden_p_stmt): Likewise.
26524         (tree_inlinable_function_p): Likewise.
26525         * var-tracking.c (vt_find_locations): Likewise.
26527 2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>
26529         * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
26530         only on the else branch.
26532 2019-03-11  Martin Liska  <mliska@suse.cz>
26534         * gcov.c (output_intermediate_json_line): Print function
26535         name of each line.
26536         (output_json_intermediate_file): Add new argument.
26537         * doc/gcov.texi: Document the change.
26539 2019-03-11  Eric Botcazou  <ebotcazou@adacore.com>
26541         PR rtl-optimization/89588
26542         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
26543         explicit unrolling factor more robust.
26545 2019-03-11  Richard Biener  <rguenther@suse.de>
26547         PR tree-optimization/89649
26548         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
26549         * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
26550         on the prolog and epilog loops.
26551         (vect_loop_versioning): Return copy of loop.
26552         * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
26553         on the non-vectorized version of the loop.
26555 2019-03-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
26557         PR target/68924
26558         * config/i386/sse.md (*vec_extractv2di_0_sse):
26559         Add (=r,x) alternative and corresponding splitter.
26561 2019-03-10  Martin Jambor  <mjambor@suse.cz>
26563         PR tree-optimization/85762
26564         PR tree-optimization/87008
26565         PR tree-optimization/85459
26566         * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
26567         it points to if there is a type changing MEM_REF.  Adjust all callers.
26568         (build_accesses_from_assign): Disable total scalarization if
26569         contains_vce_or_bfcref_p returns true through the new parameter, for
26570         both rhs and lhs.
26572 2019-03-09  Jakub Jelinek  <jakub@redhat.com>
26574         PR c/88568
26575         * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
26576         dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
26578         PR target/79645
26579         * common.opt (fdiagnostics-show-labels,
26580         fdiagnostics-show-line-numbers, fdiagnostics-format=,
26581         fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
26582         gas-locview-support, ginline-points, ginternal-reset-location-views):
26583         Terminate description text with a dot.
26584         * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
26585         * config/mcore/mcore.opt (m210, m340): Likewise.
26586         * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
26587         mnops=): Start description text with a capital letter.
26588         * config/arc/arc.opt (msize-level=): Likewise.
26589         * config/sh/sh.opt (minline-ic_invalidate): Likewise.
26590         * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
26591         mnewlib): Likewise.
26592         * config/ft32/ft32.opt (msim): Likewise.
26593         (mft32b, mcompress): Likewise.  Terminate description text with a dot.
26594         (mnodiv, mnopm): Terminate description text with a dot.
26595         * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
26596         a colon.
26597         * config/i386/i386.opt (prefer_vector_width, instrument_return):
26598         Likewise.
26599         * config/rx/rx.opt (nofpu): Remove trailing spaces from description
26600         text.
26602         PR rtl-optimization/89634
26603         * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
26604         are modified in BB_END (e->src) instruction.
26606 2019-03-08  David Malcolm  <dmalcolm@redhat.com>
26608         PR target/79926
26609         * config/i386/i386.c (ix86_set_current_function): Make "sorry"
26610         messages more amenable to translation, and improve wording.
26612 2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>
26614         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
26615         ud- and du-chains between phases.
26617 2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>
26619         PR debug/89631
26620         * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
26621         instead of POLY_INT_CST.
26623 2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
26625         * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
26626         requirement.
26628 2019-03-08  UroÅ¡ Bizjak  <ubizjak@gmail.com>
26630         PR target/68924
26631         PR target/78782
26632         PR target/87558
26633         * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
26634         (_mm_storeu_si64): Ditto.
26636 2019-03-08  Martin Liska  <mliska@suse.cz>
26638         PR target/86952
26639         * config/i386/i386.c (ix86_option_override_internal): Disable
26640         jump tables when retpolines are used.
26642 2019-03-08  Jan Hubicka  <hubicka@ucw.cz>
26644         PR go/63560
26645         * ipa-split.c (execute_split_functions): Do not split
26646         'noinline' or 'section' function.
26648 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
26650         PR target/79846
26651         * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
26652         HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
26653         HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.
26655         PR ipa/80000
26656         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
26657         from diagnostics.  Formatting fixes.
26659         PR target/85665
26660         * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
26661         warn_odr diagnostics.
26663         PR other/80058
26664         * lra-constraints.c (process_alt_operands): Avoid one space before
26665         " at the end of line and another after " on another line in a string
26666         literal.
26667         * attribs.c (handle_dll_attribute): Likewise.
26668         * config/avr/avr-devices.c (avr_texinfo): Likewise.
26670         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
26671         warning_at or inform messages in G_() if there is no ?:.
26673         PR tree-optimization/89550
26674         * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
26675         returned true.  Formatting fixes.
26676         (expand_builtin_strnlen): Formatting fixes.
26677         * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
26678         if warning_at returned true.
26679         * tree-cfg.c (pass_warn_function_return::execute): Likewise.
26681 2019-03-08  Richard Biener  <rguenther@suse.de>
26683         PR middle-end/89578
26684         * cfgloop.h (struct loop): Add owned_clique field.
26685         * cfgloopmanip.c (copy_loop_info): Copy it.
26686         * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
26687         cliques.
26688         * tree-inline.c (copy_loops): Remap owned_clique.
26689         * lto-streamer-in.c (input_cfg): Stream owned_clique.
26690         * lto-streamer-out.c (output_cfg): Likewise.
26692 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
26694         PR target/80190
26695         * config/darwin.c: Include intl.h.
26696         (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
26697         composing the message out of two separate parts.
26699 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
26701         PR target/80003
26702         * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
26703         doesn't start with a capital letter and doesn't end with a dot.
26704         (ix86_function_arg_boundary): Make sure diagnostics doesn't start
26705         with a capital letter.
26706         (ix86_mangle_function_version_assembler_name): Likewise.
26707         (ix86_generate_version_dispatcher_body): Likewise.
26708         (fold_builtin_cpu): Likewise.
26709         (get_builtin_code_for_version): Likewise.  Remove extraneous space.
26710         (ix86_handle_interrupt_attribute): Make the diagnostics easier for
26711         translators, wrap full type name in %qs.
26713         PR translation/79999
26714         * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
26715         depend clause with source (or sink) modifier.
26716         * omp-expand.c (expand_omp_ordered_sink): Likewise.
26718         PR target/89602
26719         * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
26720         *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
26721         (avx512f_load<mode>_mask): New define_expand.
26722         * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
26723         __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
26724         __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
26725         __builtin_ia32_movess_mask): New builtins.
26726         * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
26727         _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
26728         _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
26729         _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
26731 2019-03-07  Martin Jambor  <mjambor@suse.cz>
26733         PR lto/87525
26734         * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
26735         for extern inline functions.
26737 2019-03-07  Martin Jambor  <mjambor@suse.cz>
26739         PR ipa/88235
26740         * cgraph.h (cgraph_node): New inline method former_thunk_p.
26741         * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
26742         (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
26743         have multiple callees.  At the end check if declarations match as
26744         opposed to cgraph_nodes.
26746 2019-03-07  Martin Liska  <mliska@suse.cz>
26748         * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
26749         which is equivalent to searching for this in clones chain.
26750         * symtab.c (symtab_node::verify_base): Similarly compare ASM
26751         names with a neighbour and special case first node in a chain.
26753 2019-01-25  Jason Merrill  <jason@redhat.com>
26755         PR c++/80916 - spurious "static but not defined" warning.
26756         * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
26757         for an internal symbol with DECL_EXTERNAL.
26759 2019-04-07  Richard Biener  <rguenther@suse.de>
26761         PR middle-end/89618
26762         * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
26763         * tree-inline.c (copy_loops): Simplify.
26765 2019-03-07  Martin Liska  <mliska@suse.cz>
26767         * dwarf2out.c (add_AT_vms_delta): Revert function removal.
26769 2019-03-07  Richard Biener  <rguenther@suse.de>
26771         PR tree-optimization/89595
26772         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
26773         stmt iterator as reference, take boolean output parameter to
26774         indicate whether the stmt was removed and thus the iterator
26775         already advanced.
26776         (dom_opt_dom_walker::before_dom_children): Re-iterate over
26777         stmts created by folding.
26779 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
26781         PR c++/89585
26782         * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
26783         at toplevel.
26785 2019-03-06  Peter Bergner  <bergner@linux.ibm.com>
26787         PR rtl-optimization/88845
26788         * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
26789         LRA.
26790         * lra.c (remove_scratches_1): New function.
26791         (remove_scratches): Use it.
26792         (lra_emit_move): Likewise.
26794 2019-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
26796         * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
26797         unaligned_access variable.
26798         * config/arc/arc.c (arc_override_options): Set unaligned access
26799         default on for HS CPUs.
26800         * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
26802 2019-03-06  Martin Liska  <mliska@suse.cz>
26804         PR gcov-profile/89577
26805         * doc/gcov.texi: Prefer to use --coverage.
26806         * doc/sourcebuild.texi: Likewise.
26808 2019-03-02  Jason Merrill  <jason@redhat.com>
26810         PR c++/86485 - -Wmaybe-unused with empty class ?:
26811         * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
26813 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
26815         PR target/89587
26816         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
26817         if_multiarch.
26819         PR middle-end/89590
26820         * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
26821         exactly one argument.
26823 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
26824             Richard Sandiford  <richard.sandiford@arm.com>
26826         PR tree-optimization/89570
26827         * match.pd (vec_cond into cond_op simplification): Don't use
26828         get_conditional_internal_fn, use as_internal_fn (cond_op).
26830 2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
26832         PR target/89222
26833         * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
26834         to decide when to split off a non-zero offset from a symbol.
26835         * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
26836         in function symbols.
26838 2019-03-05  Richard Biener  <rguenther@suse.de>
26840         PR tree-optimization/89594
26841         * tree-if-conv.c (pass_if_conversion::execute): Handle
26842         case where .LOOP_VECTORIZED_FUNCTION was removed.
26844 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
26846         PR bootstrap/89560
26847         * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
26848         instead alloca it only when needed with the needed size.
26850         PR tree-optimization/89570
26851         * match.pd (vec_cond into cond_op simplification): Guard with
26852         vectorized_internal_fn_supported_p test and #if GIMPLE.
26854         PR tree-optimization/89566
26855         * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
26856         Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
26857         Punt if get_user_idx_format succeeds, but idx_format argument is
26858         not provided or doesn't have pointer type, or if idx_args is above
26859         number of provided arguments.
26861 2019-03-04  Wilco Dijkstra  <wdijkstr@arm.com>
26863         PR tree-optimization/89437
26864         * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
26866 2019-03-04  Richard Biener  <rguenther@suse.de>
26868         PR middle-end/89572
26869         * tree-scalar-evolution.c: (get_loop_exit_condition): Use
26870         safe_dyn_cast.
26872 2019-03-04  Bin Cheng  <bin.cheng@linux.alibaba.com>
26874         PR tree-optimization/89487
26875         * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
26876         (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
26877         (distribute_loop): Don't do runtime alias check if there is non-
26878         addressable data reference.
26879         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
26880         is a register variable.
26882 2019-03-02  Jakub Jelinek  <jakub@redhat.com>
26884         PR target/89506
26885         * config/arm/arm.md (cmpsi2_addneg): Use
26886         trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
26887         If operands[2] is 0 or INT_MIN, force use of subs.
26888         (*compare_scc splitter): Use gen_int_mode.
26889         (*negscc): Likewise.
26890         * config/arm/thumb2.md (*thumb2_negscc): Likewise.
26892 2019-03-01  Kito Cheng  <kito.cheng@gmail.com>
26893             Monk Chiang  <sh.chiang04@gmail.com>
26895         * common/config/riscv/riscv-common.c: Include sstream.
26896         (riscv_subset_list::to_string): New.
26897         (riscv_arch_str): Likewise.
26898         * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
26899         * config.in: Regen.
26900         * config/riscv/riscv-protos.h (riscv_arch_str): New.
26901         * config/riscv/riscv.c (INCLUDE_STRING): Defined.
26902         (riscv_emit_attribute): New.
26903         (riscv_file_start): Emit attribute if needed.
26904         (riscv_option_override): Init riscv_emit_attribute_p.
26905         * config/riscv/riscv.opt (mriscv-attribute): New option.
26906         * configure.ac (riscv*-*-*): Check binutils is supporting ELF
26907         * configure: Regen.
26908         * doc/install.texi: Document --with-riscv-attribute.
26909         * doc/invoke.texi: Document -mriscv-attribute.
26911         * common/config/riscv/riscv-common.c:
26912         Include config/riscv/riscv-protos.h.
26913         (INCLUDE_STRING): Defined.
26914         (RISCV_DONT_CARE_VERSION): Defined.
26915         (riscv_subset_t): Declare.
26916         (riscv_subset_t::riscv_subset_t): New.
26917         (riscv_subset_list): Declare.
26918         (riscv_subset_list::riscv_subset_list): New.
26919         (riscv_subset_list::~riscv_subset_list): Likewise.
26920         (riscv_subset_list::parsing_subset_version): Likewise.
26921         (riscv_subset_list::parse_std_ext): Likewise.
26922         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
26923         (riscv_subset_list::add): Likewise.
26924         (riscv_subset_list::lookup): Likewise.
26925         (riscv_subset_list::xlen): Likewise.
26926         (riscv_subset_list::parse): Likewise.
26927         (riscv_supported_std_ext): Likewise.
26928         (current_subset_list): Likewise.
26929         (riscv_parse_arch_string): Using riscv_subset_list::parse to
26930         parse.
26932 2019-03-01  Segher Boessenkool  <segher@kernel.crashing.org>
26934         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
26935         rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
26936         * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
26938 2019-03-01  Alexander Monakov  <amonakov@ispras.ru>
26940         PR rtl-optimization/85899
26941         * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
26942         fallthru edges leading to the exit block.
26944 2019-03-01  Tamar Christina  <tamar.christina@arm.com>
26946         PR target/89517
26947         * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
26948         rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
26950 2019-03-01  Richard Sandiford  <richard.sandiford@arm.com>
26952         PR tree-optimization/89535
26953         * tree-vect-stmts.c (vectorizable_call): Record the vector types
26954         for each operand.  Calculate the fallback choice for mask operands
26955         and pass it to vect_get_vec_def_for_operand.
26957 2019-03-01  Richard Biener  <rguenther@suse.de>
26959         PR middle-end/89541
26960         * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
26961         get virtual operands.
26962         (get_expr_operands): Handle CONST_DECL like other decls.
26964 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
26966         PR middle-end/89503
26967         * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
26968         on DECL_P and EXPR_P.
26970 2019-03-01  Richard Biener  <rguenther@suse.de>
26972         PR middle-end/89497
26973         * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
26974         argument, defaulted to zero.
26975         * passes.c (execute_function_todo): Pass down SSA update flags
26976         to cleanup_tree_cfg.
26977         * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
26978         (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
26979         form if requested.
26980         (cleanup_tree_cfg): Get and pass down SSA update flags.
26982 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
26984         PR bootstrap/89539
26985         * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
26986         early_lto_debug argument.
26988 2019-02-28  Eric Botcazou  <ebotcazou@adacore.com>
26990         PR tree-optimization/89536
26991         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
26992         only whether bit #0 of the value is 0 instead of the entire value.
26994 2019-02-28  Marek Polacek  <polacek@redhat.com>
26996         PR c++/87068 - missing diagnostic with fallthrough statement.
26997         * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
26998         at the end of a seq, save its location to walk_stmt_info.
26999         (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
27000         a switch.
27002 2019-02-28  Jan Hubicka  <hubicka@ucw.cz>
27004         PR lto/88585
27005         * tree.c (find_atomic_core_type): Move ahead in file.
27006         (check_base_type): Correctly compare alignments of atomic types.
27008 2019-02-28  H.J. Lu  <hongjiu.lu@intel.com>
27010         PR target/89455
27011         * config/i386/i386.c (get_builtin_code_for_version): Identify
27012         Westmere from PCLMUL, instead of AES.
27014 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
27016         PR target/89434
27017         * config/arm/arm.md (*subsi3_carryin_compare_const): Use
27018         trunc_int_for_mode (-INTVAL (...), SImode), just instead of
27019         -UINTVAL (...).
27021 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
27023         PR target/88530
27024         * config/aarch64/aarch64-option-extensions.def: Document it.
27025         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
27026         if empty hwcaps.
27028 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
27030         PR c/89520
27031         * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
27032         builtins if they don't have a single scalar floating point argument.
27033         Formatting fixes.
27035 2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27037         PR rtl-optimization/89490
27038         * varasm.c (get_block_for_section): Bail out for mergeable sections.
27039         (default_use_anchors_for_symbol_p, output_object_block): Assert the
27040         block section is not mergeable.
27042 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
27044         PR target/70341
27045         * config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
27046         old define_insn to ...
27047         (*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
27048         * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
27049         Rename old define_insn to ...
27050         (*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
27051         (thumb2_casesi_internal_pic): New define_expand.  Rename old
27052         define_insn to ...
27053         (*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.
27054         * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
27055         MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
27057 2019-02-27  Richard Biener  <rguenther@suse.de>
27059         PR debug/88878
27060         * dwarf2out.c (use_debug_types): Disable when in_lto_p.
27062 2019-02-27  Richard Biener  <rguenther@suse.de>
27064         * passes.c (should_skip_pass_p): Do not skip cgraph-edge
27065         building.
27067 2019-02-27  Richard Biener  <rguenther@suse.de>
27069         PR debug/88878
27070         * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
27071         parameter, prefix section name with .gnu.debuglto_ if true.
27072         (dwarf2out_finish): Pass false to output_comdat_type_unit.
27073         (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
27075 2019-02-27  Richard Biener  <rguenther@suse.de>
27077         PR debug/89514
27078         * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
27079         rather than on use_debug_types, doing what output_die does.
27080         (value_format): Likewise.
27082 2019-02-27  Martin Jambor  <mjambor@suse.cz>
27083             Martin Sebor  <msebor@redhat.com>
27085         * doc/invoke.texi (Warning Options): Reword description of
27086         -Wno-absolute-value.
27088 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
27090         PR tree-optimization/89280
27091         * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
27092         builtin_setjmp_setup_bb): New functions.
27093         (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
27094         When visiting __builtin_setjmp_setup block, queue in special
27095         setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
27096         __builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
27097         from visited after the loop if they don't have any visited successor
27098         blocks.
27100 2018-02-26  Steve Ellcey  <sellcey@marvell.com>
27102         * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
27103         New function.
27104         (TARGET_GET_MULTILIB_ABI_NAME): New macro.
27106 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
27108         PR c++/89507
27109         * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
27110         with types other than sizetype/ssizetype.
27112 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
27114         * config/sparc/sparc-opts.h (enum processor_type): Rename to...
27115         (enum sparc_processor_type): ...this.
27116         (enum sparc_code_model_type): New enumeration type.
27117         (enum sparc_memory_model_type): Tweak comments.
27118         * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
27119         (mtune): Likewise.
27120         (mcmodel): Use sparc_code_model enumeration and variable.
27121         (sparc_code_model): New enumeration.
27122         (mdebug): Add Undocumented marker.
27123         * config/sparc/sparc.h (enum cmodel): Delete.
27124         (sparc_cmodel): Likewise.
27125         (TARGET_CM_MEDLOW): Adjust to above renaming.
27126         (TARGET_CM_MEDMID): Likewise.
27127         (TARGET_CM_MEDANY): Likewise.
27128         (TARGET_CM_EMBMEDANY): Likewise.
27129         * config/sparc/sparc.c (sparc_cmodel): Delete.
27130         (sparc_option_override): Remove string/value mapping support for the
27131         code model.  Move code and memory model support to after the handling
27132         of target flags.  Do private machine setup last.
27133         (sparc_emit_set_symbolic_const64): Use sparc_code_model.
27134         (sparc_legitimize_reload_address): Likewise.
27135         (sparc_output_mi_thunk): Likewise.
27136         * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
27138 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
27140         PR tree-optimization/89500
27141         * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
27142         (handle_builtin_strlen): Remove noncst_bound variable.  Always
27143         optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
27144         cst if the first cst bytes starting at x are known to be non-zero,
27145         even if the string is not zero terminated.  Don't try to modify
27146         *si for strnlen.  Update strlen_to_stridx only for strlen or if
27147         we can prove strnlen returns the same value as strlen would.
27149 2019-02-26  Martin Liska  <mliska@suse.cz>
27151         * alloc-pool.h (struct pool_usage): Remove extra
27152         print_dash_line.
27153         * bitmap.h (struct bitmap_usage): Likewise.
27154         * ggc-common.c (struct ggc_usage): Likewise.
27155         * mem-stats.h (struct mem_usage): Likewise.
27156         (mem_alloc_description::dump): Print dash lines
27157         here and repeat header at the end of a table report.
27158         It's then more readable.
27159         * tree-phinodes.c (phinodes_print_statistics): Make
27160         horizontal alignment.
27161         * tree-ssanames.c (ssanames_print_statistics): Likewise.
27162         * vec.c (struct vec_usage): Remove extra print_dash_line.
27163         * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
27165 2019-02-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
27167         * doc/extend.texi (__builtin_object_size):
27168         Use @pxref instead of @xref inside parenthesis.
27169         (__builtin_has_attribute): Add missing comma after @xref.
27170         (__builtin_object_size): Ditto.
27171         * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
27173 2019-02-26  Jeff Law  <law@redhat.com>
27175         PR rtl-optimization/87761
27176         * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
27177         detect obviously dead insns and delete them.
27179 2019-02-26  Richard Biener  <rguenther@suse.de>
27181         PR tree-optimization/89505
27182         * tree-ssa-structalias.c (compute_dependence_clique): Make sure
27183         to handle restrict pointed-to vars with multiple subvars
27184         correctly.
27186 2019-02-26  Richard Biener  <rguenther@suse.de>
27188         PR tree-optimization/89489
27189         * tree-parloops.c (create_loop_fn): Copy over last_clique.
27191 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
27193         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
27194         and move around comment.
27195         <BIT_AND_EXPR>: Likewise.
27196         <BIT_NOT_EXPR>: Add specific handling for boolean types.
27198 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
27200         PR target/89474
27201         * config/i386/i386.c (remove_partial_avx_dependency): Call
27202         df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
27203         after changing possibly many instructions to use that pseudo.  Fix up
27204         insertion of v4sf_const0 setter at the start of bb.
27206 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
27208         PR c/80409
27209         * doc/extend.texi (Variadic Pointer Args): New section.
27211 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
27212             Martin Sebor  <msebor@gmail.com>
27214         * common.opt (Wattribute-alias): Likewise.
27215         * doc/invoke.texi (Option Summary): List general form of
27216         -Wattribute-alias=.  List positive form of -Wmissing-attributes.
27217         (-Wmissing-attributes): Invert entry, rewrite and correct default.
27218         Add cross-references.
27219         (-Wattribute-alias): Rewrite and correct default.  Mention
27220         considered attributes (same as for -Wmissing-attributes).
27222 2019-02-25  Paul A. Clarke  <pc@us.ibm.com>
27224         * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
27225         (_mm_cvtpd_ps): Likewise.
27226         (_mm_cvttpd_epi32): Likewise.
27228         PR target/89338
27229         * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
27230         (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
27232         PR target/89339
27233         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
27235 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
27237         PR target/88530
27238         * common/config/aarch64/aarch64-common.c
27239         (struct aarch64_option_extension): Add is_synthetic.
27240         (all_extensions): Use it.
27241         (TARGET_OPTION_INIT_STRUCT): Define hook.
27242         (struct gcc_targetm_common): Moved to end.
27243         (all_extensions_by_on): New.
27244         (opt_ext_cmp, typedef opt_ext): New.
27245         (aarch64_option_init_struct): New.
27246         (aarch64_contains_opt): New.
27247         (aarch64_get_extension_string_for_isa_flags): Output smallest set.
27248         * config/aarch64/aarch64-option-extensions.def
27249         (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
27250         (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
27251         sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
27252         Set is_synthetic to false.
27253         (crypto): Set is_synthetic to true.
27254         * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
27255         SYNTHETIC.
27257 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
27259         * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
27260         vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
27261         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
27262         vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
27263         vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
27264         vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
27265         vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
27266         vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
27267         Rename ...
27268         (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
27269         vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
27270         vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
27271         vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
27272         vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
27273         vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
27274         vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
27275         vfmlsl_laneq_high_f16): ... To this.
27276         * config/arm/neon.md: Update comments.
27278 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
27280         * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
27281         vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
27282         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
27283         vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
27284         vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
27285         vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
27286         vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
27287         vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
27288         Rename ...
27289         (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
27290         vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
27291         vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
27292         vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
27293         vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
27294         vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
27295         vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
27296         vfmlslq_laneq_high_f16): ... To this.
27298 2019-02-25  Alexander Monakov  <amonakov@ispras.ru>
27300         PR rtl-optimization/86096
27301         * df-scan.c (df_mw_compare): Do not check mw_reg fields when
27302         comparing mw_order values.
27304 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
27306         PR target/89434
27307         * config/arm/arm.md (*subsi3_carryin_const): Use
27308         arm_neg_immediate_operand predicate instead of
27309         arm_not_immediate_operand, "L" constraint instead of "K" and
27310         print it using %n2 instead of %B2.
27311         (*subsi3_carryin_const0): New define_insn.
27312         (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
27313         instead of arm_not_operand and "I" constraint instead of "K" and
27314         print it using %n3 instead of %B2.  Instead of using match_dup 2 add
27315         another match_operand and in the condition check that it is negation
27316         of operands[2].
27317         (*subsi3_carryin_compare_const0): New define_ins.
27318         (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
27319         *subsi3_carryin_const.
27320         (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
27321         split into *subsi3_carryin_compare_const0 if the highpart is zero.
27323         PR target/89438
27324         * config/arm.vfp.md (*negdf2_vfp): Use
27325         gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
27326         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
27328 2019-02-24  Jakub Jelinek  <jakub@redhat.com>
27330         PR rtl-optimization/89445
27331         * simplify-rtx.c (simplify_ternary_operation): Don't use
27332         simplify_merge_mask on operands that may trap.
27333         * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
27334         SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
27335         second operand is CONST_VECTOR, check if any element could be zero.
27336         Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
27337         their operands can trap.
27339 2019-02-23  Martin Sebor  <msebor@redhat.com>
27341         * gimple-ssa-sprintf.c (target_strtol): Rename...
27342         (target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
27343         (parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
27344         check for range error.
27346 2019-02-23  H.J. Lu  <hongjiu.lu@intel.com>
27348         PR driver/69471
27349         * opts-common.c (prune_options): Also prune joined switches
27350         with Negative and RejectNegative.
27351         * config/i386/i386.opt (march=): Add Negative(march=).
27352         (mtune=): Add Negative(mtune=).
27353         * doc/options.texi: Document Negative used together with Joined
27354         and RejectNegative.
27356 2019-02-22  Martin Sebor  <msebor@redhat.com>
27358         * doc/extend.texi (Other Builtins): Add
27359         __builtin_is_constant_evaluated.
27361 2019-02-22  Richard Biener  <rguenther@suse.de>
27363         PR tree-optimization/87609
27364         * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
27366 2019-02-22  Jeff Law  <law@redhat.com>
27368         PR rtl-optimization/87761
27369         * config/mips/mips.md: Add new combiner pattern to recognize
27370         a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
27372 2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
27374         PR target/89324
27375         * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
27376         destination register in peepholes generating patterns for ADDS/SUBS.
27377         (add<mode>3_compare0,
27378         *addsi3_compare0_uxtw, add<mode>3_compareC,
27379         add<mode>3_compareV_imm, add<mode>3_compareV,
27380         *adds_<optab><ALLX:mode>_<GPI:mode>,
27381         *subs_<optab><ALLX:mode>_<GPI:mode>,
27382         *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
27383         *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
27384         *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
27385         *sub<mode>3_compare0, *subsi3_compare0_uxtw,
27386         sub<mode>3_compare1): Allow stack pointer for source register.
27387         * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
27389 2019-02-22  Martin Sebor  <msebor@redhat.com>
27391         PR tree-optimization/88993
27392         PR tree-optimization/88853
27393         * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
27394         New helper.
27395         (sprintf_dom_walker::call_info::is_string_func): New helper.
27396         (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
27397         for formatted string functions.
27398         (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
27400 2019-02-22  Martin Sebor  <msebor@redhat.com>
27402         PR c/89425
27403         * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
27404         unreachable subexpressions.
27406 2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
27407             Hongtao Liu  <hongtao.liu@intel.com>
27408             Sunil K Pandey  <sunil.k.pandey@intel.com>
27410         PR target/87007
27411         * config/i386/i386-passes.def: Add
27412         pass_remove_partial_avx_dependency.
27413         * config/i386/i386-protos.h
27414         (make_pass_remove_partial_avx_dependency): New.
27415         * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
27416         New function.
27417         (pass_data_remove_partial_avx_dependency): New.
27418         (pass_remove_partial_avx_dependency): Likewise.
27419         (make_pass_remove_partial_avx_dependency): Likewise.
27420         * config/i386/i386.md (avx_partial_xmm_update): New attribute.
27421         (*extendsfdf2): Add avx_partial_xmm_update.
27422         (truncdfsf2): Likewise.
27423         (*float<SWI48:mode><MODEF:mode>2): Likewise.
27424         (SF/DF conversion splitters): Disabled for TARGET_AVX.
27426 2019-02-22  Aldy Hernandez  <aldyh@redhat.com>
27428         PR middle-end/85598
27429         * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
27430         analysis for pass.
27432 2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>
27434         PR target/89444
27435         * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
27436         (PTA_SKYLAKE): Add PTA_AES.
27437         (PTA_GOLDMONT): Likewise.
27439 2019-02-22  Sudakshina Das  <sudi.das@arm.com>
27441         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
27442         instruction if enabled.
27443         (aarch64_override_options): Remove reference to return address key.
27445 2019-02-22  Richard Biener  <rguenther@suse.de>
27447         PR tree-optimization/89440
27448         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
27449         not necessary assert.
27451 2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
27453         PR fortran/72741
27454         * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
27455         (oacc_replace_fn_attrib_attr): ... this new function.
27456         * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
27457         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
27459 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27461         * config/arm/arm-cpus.in (ares): Rename to...
27462         (neoverse-n1): ... This.  Add ares as alias.
27463         * config/arm/arm-tables.opt: Regenerate.
27464         * config/arm/arm-tune.md: Likewise.
27465         * doc/invoke.txt (ARM Options): Document neoverse-n1.
27467 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27469         * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
27470         * config/aarch64/aarch64-tune.md: Regenerate.
27471         * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
27473 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27475         * config/aarch64/aarch64.c (ares_tunings): Rename to...
27476         (neoversen1_tunings): ... This.
27477         * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
27478         (neoverse-n1): New CPU.
27479         * config/aarch64/aarch64-tune.md: Regenerate.
27480         * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
27482 2019-02-22  Richard Biener  <rguenther@suse.de>
27484         PR middle-end/87609
27485         * cfghooks.h (dependence_hash): New typedef.
27486         (struct copy_bb_data): New type.
27487         (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
27488         (duplicate_block): Likewise.
27489         * cfghooks.c (duplicate_block): Pass down copy_bb_data.
27490         (copy_bbs): Create and pass down copy_bb_data.
27491         * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
27492         (rtl_duplicate_bb): Likewise.
27493         * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
27494         remap dependence info.
27496 2019-02-22  Richard Biener  <rguenther@suse.de>
27498         PR tree-optimization/87609
27499         * tree-core.h (tree_base): Document special clique values.
27500         * tree-inline.c (remap_dependence_clique): Do not use the
27501         special clique value of one.
27502         (maybe_set_dependence_info): Use clique one.
27503         (clear_dependence_clique): New callback.
27504         (compute_dependence_clique): Clear clique one from all refs
27505         before assigning it (again).
27507 2019-02-21  Martin Sebor  <msebor@redhat.com>
27509         * doc/extend.texi (__clear_cache): Correct signature.
27511 2019-02-21  Ian Lance Taylor  <iant@golang.org>
27513         PR go/89170
27514         * varasm.c (decode_addr_const): Call lookup_constant_def rather
27515         than output_constant_def.
27516         (add_constant_to_table): New static function.
27517         (output_constant_def): Call add_constant_to_table.
27518         (tree_output_constant_def): Likewise.
27520 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
27522         PR c++/89285
27523         * builtins.c (fold_builtin_arith_overflow): If first two args are
27524         INTEGER_CSTs, set intres and ovfres to constants rather than calls
27525         to ifn.
27527 2019-02-21  H.J. Lu  <hongjiu.lu@intel.com>
27529         PR target/87412
27530         * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
27531         error for -mindirect-branch/-mfunction-return with incompatible
27532         -fcf-protection.
27534 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
27536         PR bootstrap/88714
27537         * constraints.md (q): Remove.
27538         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
27539         instead of q.
27541 2019-02-21  Martin Jambor  <mjambor@suse.cz>
27543         PR hsa/89302
27544         * omp-general.c (omp_extract_for_data): Removed a duplicate call
27545         to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
27546         (omp_adjust_for_condition): ...here.  Added necessary parameters.
27547         * omp-general.h (omp_adjust_for_condition): Updated declaration.
27548         * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
27549         proper values to new parameters of omp_adjust_for_condition.
27551 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
27553         PR middle-end/89412
27554         * expr.c (expand_assignment): If result is a MEM, use change_address
27555         instead of simplify_gen_subreg.
27557 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
27558             David Malcolm  <dmalcolm@redhat.com>
27560         PR middle-end/89091
27561         * fold-const.c (decode_field_reference): Return NULL_TREE if
27562         lang_hooks.types.type_for_size returns NULL.  Check it before
27563         overwriting *exp_.  Use return NULL_TREE instead of return 0.
27565 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
27567         PR middle-end/88074
27568         PR middle-end/89415
27569         * toplev.c (do_compile): Double the emin/emax exponents to workaround
27570         buggy mpc_norm.
27572 2019-02-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
27574         PR target/89397
27575         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
27576         TARGET_SSE in addition to TARGET_SSE_MATH.
27578         (ix86_excess_precision): Ditto.
27579         (ix86_float_exceptions_rounding_supported_p): Ditto.
27580         (use_rsqrt_p): Ditto.
27581         * config/i386/sse.md (rsqrt<mode>2): Ditto.
27583 2019-02-20  David Malcolm  <dmalcolm@redhat.com>
27585         PR c/89410
27586         * diagnostic-show-locus.c (layout::calculate_line_spans): Use
27587         linenum_arith_t when determining if two adjacent line spans are
27588         close enough to merge.
27589         (diagnostic_show_locus): Use linenum_arith_t when iterating over
27590         lines within each line_span.
27592 2019-02-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
27594         PR target/86487
27595         * lra-constraints.c(uses_hard_regs_p): Fix handling of
27596         paradoxical SUBREGS.
27598 2019-02-20  Li Jia He  <helijia@linux.ibm.com>
27600         PR target/88100
27601         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
27602         <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
27603         ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
27604         range checking it.
27606 2019-02-19  Jonathan Wakely  <jwakely@redhat.com>
27608         * config/gcn/gcn.c (print_operand): Fix typo.
27610 2019-02-19  Richard Biener  <rguenther@suse.de>
27612         PR middle-end/88074
27613         * toplev.c (do_compile): Initialize mpfr's exponent range
27614         based on available float modes.
27616 2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27618         * rtlanal.c (get_initial_register_offset): Fall back to the estimate
27619         as long as the epilogue isn't completed.
27621 2019-02-18  Martin Sebor  <msebor@redhat.com>
27623         * doc/cpp.texi (Conditional syntax): Add __has_attribute,
27624         __has_cpp_attribute, and __has_include.
27626 2019-02-18  Martin Sebor  <msebor@redhat.com>
27628         * doc/invoke.texi (-Wreturn-type): Correct and expand.
27630 2019-02-18  Martin Sebor  <msebor@redhat.com>
27632         PR middle-end/89294
27633         * tree.c (valid_constant_size_p): Avoid assuming size is a constant
27634         expression.
27635         * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
27637 2019-02-18  Richard Biener  <rguenther@suse.de>
27639         PR tree-optimization/89296
27640         * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
27641         of no-warning flag to cases that might emit the bogus warning.
27643 2019-02-18  Jakub Jelinek  <jakub@redhat.com>
27645         PR bootstrap/88714
27646         * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
27647         "q" constraint.
27648         * config/arm/vfp.md (*movdi_vfp): Likewise.
27649         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
27650         "q" constraint for operands[0].
27652         PR target/89369
27653         * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
27654         *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
27655         pattern in a temporary buffer.
27656         (*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
27657         than 64-operands[2].
27659         PR target/89361
27660         * config/s390/s390.c (s390_indirect_branch_attrvalue,
27661         s390_indirect_branch_settings): Define unconditionally.
27662         (s390_set_current_function): Likewise, but guard the whole body except
27663         the s390_indirect_branch_settings call with
27664         #if S390_USE_TARGET_ATTRIBUTE.
27665         (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
27667         * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
27668         *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
27669         Use HOST_WIDE_INT_M1U instead of ~(0ULL).
27670         (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
27671         HOST_WIDE_INT_1U instead of 1ULL.
27672         (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
27673         to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
27674         (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
27675         z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
27676         instead of 1UL.
27677         (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
27678         instead of 1ul.
27680 2019-02-18  Martin Jambor  <mjambor@suse.cz>
27682         PR tree-optimization/89209
27683         * tree-sra.c (create_access_replacement): New optional parameter
27684         reg_tree.  Use it as a type if non-NULL and access type is not of
27685         a register type.
27686         (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
27687         to create_access_replacement.
27688         (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
27689         Check lacc is non-NULL before attempting to re-create it on the RHS.
27691 2019-02-18  Martin Liska  <mliska@suse.cz>
27693         PR ipa/89306
27694         * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
27695         by default.
27696         (symbol_table::free_edge): Recycle m_summary_id.
27697         * cgraph.h (get_summary_id): New.
27698         (symbol_table::release_symbol): Set m_summary_id to -1
27699         by default.
27700         (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
27701         * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
27702         function_summary to fast_function_summary.
27703         * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
27704         * ipa-pure-const.c (class funct_state_summary_t):
27705         Switch from function_summary to fast_function_summary.
27706         * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
27707         (class ipa_ref_opt_summary_t): Switch from function_summary
27708         to fast_function_summary.
27709         * symbol-summary.h (class function_summary_base): New class
27710         that is created from base of former function_summary.
27711         (function_summary_base::unregister_hooks): New.
27712         (class function_summary): Inherit from function_summary_base.
27713         (class call_summary_base): New class
27714         that is created from base of former call_summary.
27715         (class call_summary): Inherit from call_summary_base.
27716         (struct is_same): New.
27717         (class fast_function_summary): New summary class.
27718         (class fast_call_summary): New summary class.
27719         * vec.h (vec_safe_grow_cleared): New function.
27721 2019-02-18  Martin Liska  <mliska@suse.cz>
27723         * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
27724         (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
27725         * doc/tm.texi: Document new target hook.
27726         * doc/tm.texi.in: Likewise.
27727         * target.def: Add new target macro.
27728         * gcc.c (find_fortran_preinclude_file): Do not search multilib
27729         suffixes.
27731 2019-02-17  Alan Modra  <amodra@gmail.com>
27733         PR target/89271
27734         * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
27735         output reg on add insn.
27736         (<bd>tf_<mode> split): Likewise.  Match predicates with insn.
27738 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
27740         PR target/89372
27741         * config/i386/sse.md (ssedoublemode): Remove V4HI.
27742         (PMULHRSW): Likewise.
27743         (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
27744         TARGET_AVX2.
27745         (ssse3_pmulhrswv4hi3): New expander.
27747 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
27749         * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
27750         MMX.  Add isa attribute.
27752 2019-02-16  Jakub Jelinek  <jakub@redhat.com>
27754         PR rtl-optimization/66152
27755         * builtins.h (c_readstr): Declare.
27756         * builtins.c (c_readstr): Remove forward declaration.  Add
27757         null_terminated_p argument, if false, read all bytes from the
27758         string instead of stopping after '\0'.
27759         * expr.c (string_cst_read_str): New function.
27760         (store_expr): Use string_cst_read_str instead of
27761         builtin_strncpy_read_str.  Try to store by pieces the whole
27762         exp_len first, and only if that fails, split it up into
27763         store by pieces followed by clear_storage.  Formatting fix.
27765         * config/i386/i386.md (*movqi_internal): Remove static from
27766         buf variable.  Use output_asm_insn (buf, operands); return "";
27767         instead of return buf;.
27768         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
27769         *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
27770         *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
27772 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
27774         * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
27775         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
27776         * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
27777         (CC1_SPEC): Likewise.
27778         * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
27780 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
27782         * asan.c (asan_emit_stack_protection): Use full-sized mask to align
27783         the base address on 64-bit strict-alignment platforms.
27785 2019-02-15  H.J. Lu  <hongjiu.lu@intel.com>
27787         * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
27789 2019-02-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
27791         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
27793 2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>
27795         PR rtl-optimization/88308
27796         * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
27797         on copied instruction.
27799 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
27801         * final.c (insn_current_reference_address): Replace test on JUMP_P
27802         with test on jump_to_label_p.
27803         * config/visium/visium-passes.def: New file.
27804         * config/visium/t-visium (PASSES_EXTRA): Define.
27805         * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
27806         * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
27807         (TRAMPOLINE_ALIGNMENT): Define.
27808         * config/visium/visium.c (visium_option_override): Do not register
27809         the machine-specific reorg pass here.
27810         (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
27811         for the GR6.
27812         (output_branch): Adjust threshold for long branch instruction.
27813         * config/visium/visium.md (cpu): Move around.
27814         (length): Adjust for the GR6.
27816 2019-02-15  Richard Biener  <rguenther@suse.de>
27817             Jakub Jelinek  <jakub@redhat.com>
27819         PR tree-optimization/89278
27820         * tree-loop-distribution.c: Include tree-eh.h.
27821         (generate_memset_builtin, generate_memcpy_builtin): Call
27822         rewrite_to_non_trapping_overflow on builtin->size before passing it
27823         to force_gimple_operand_gsi.
27825 2019-02-15  Jakub Jelinek  <jakub@redhat.com>
27827         PR other/89342
27828         * optc-save-gen.awk: Handle optimize_fast like optimize_size or
27829         optimize_debug.
27830         * opth-gen.awk: Likewise.
27832 2019-02-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
27834         * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
27835         Enable MMX, SSE and SSE2 by default.
27836         * config/i386/i386.c (ix86_option_override_internal): Do not
27837         explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
27839 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
27841         PR rtl-optimization/89354
27842         * combine.c (make_extraction): Punt if extraction_mode is narrower
27843         than len bits.
27845 2019-02-14  Maya Rashish  <coypu@sdf.org>
27847         * config.gcc (*-*-netbsd*): Add netbsd-d.o.
27848         * config/netbsd-d.c: New file.
27849         * config/t-netbsd: Add netbsd-d.o
27851 2018-02-14  Steve Ellcey  <sellcey@marvell.com>
27853         * config/aarch64/aarch64.c (aarch64_attribute_table): Change
27854         affects_type_identity to true for aarch64_vector_pcs.
27855         (aarch64_comp_type_attributes): New function.
27856         (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
27858 2019-02-14  Tamar Christina  <tamar.christina@arm.com>
27860         PR target/88850
27861         * config/arm/iterators.md (ANY64): Add V4HF.
27863 2019-02-14  Martin Liska  <mliska@suse.cz>
27865         PR rtl-optimization/89242
27866         * dce.c (delete_unmarked_insns): Call free_dominance_info we
27867         process a transformation.
27869 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
27871         PR tree-optimization/89314
27872         * fold-const.c (fold_binary_loc): Cast strlen argument to
27873         const char * before dereferencing it.  Formatting fixes.
27875         PR middle-end/89284
27876         * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
27878 2019-02-13  Ian Lance Taylor  <iant@golang.org>
27880         * optc-save-gen.awk: Set var_opt_hash for initial optimizations
27881         and set current index for other optimizations.
27883 2019-02-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
27885         * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
27886         nonimmediate_operand as operand 2 predicate.
27887         (vec_set<VF2_512_256:mode>_0): Ditto.
27888         (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
27889         (*vec_concatv2si): Remove alternative 2.
27890         (*vec_concatv4si_0): Use vm constraint for alternative 0.
27891         (*vec_concatv4si_0): Remove preferred_for_speed attribute.
27892         (vec_concatv2di): Split alternatives 4,5,6 to ...
27893         (*vec_concatv2di_0) ... new pattern.
27895 2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
27897         PR target/89190
27898         * config/arm/arm.c (ldm_stm_operation_p) Set
27899         addr_reg_in_reglist correctly for first register.
27900         (load_multiple_sequence): Remove dead base check.
27901         (gen_ldm_seq): Correctly set write_back for Thumb-1.
27903 2019-02-13  Tamar Christina  <tamar.christina@arm.com>
27905         PR target/88847
27906         * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
27907         Expose as @aarch64_pred_mov.
27908         * config/aarch64/aarch64.c (aarch64_classify_address):
27909         Use expand_insn which legitimizes operands.
27911 2019-02-13  Martin Liska  <mliska@suse.cz>
27913         * builtins.h (expand_builtin_with_bounds): Remove declaration.
27914         * calls.c (struct arg_data): Remove special_slot, pointer_arg
27915         and pointer_offset fields.
27916         (initialize_argument_information): Remove usage of dead
27917         fields.
27918         * cgraph.h (struct cgraph_thunk_info): Remove
27919         add_pointer_bounds_args.
27920         * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
27921         fields.
27922         (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
27923         fields.
27924         * config/i386/i386.c (ix86_function_arg_advance): Remove
27925         unrelated comment.
27926         (struct builtin_isa): Remove leaf_p and nothrow_p fields.
27927         (def_builtin): Remove usage of dead fields.
27928         (ix86_add_new_builtins): Likewise.
27929         * ipa-fnsummary.c (compute_fn_summary): Likewise.
27930         * ipa-icf.c (sem_function::equals_wpa): Likewise.
27931         (sem_function::init): Likewise.
27932         (sem_variable::merge): Likewise.
27933         * ipa-visibility.c (function_and_variable_visibility): Likewise.
27934         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
27935         * lto-cgraph.c (lto_output_node): Likewise.
27936         (lto_output_varpool_node): Likewise.
27937         (input_node): Likewise.
27938         (input_varpool_node): Likewise.
27939         * lto-streamer-out.c (lto_output): Likewise.
27940         * tree-inline.c (expand_call_inline): Remove usage of
27941         assign_stmts.
27942         * tree-inline.h (struct copy_body_data): Likewise.
27943         * varpool.c (varpool_node::dump): Likewise.
27945 2019-02-13  Jakub Jelinek  <jakub@redhat.com>
27947         PR middle-end/89303
27948         * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
27949         into pt->vars_contains_escaped_heap instead of setting
27950         pt->vars_contains_escaped_heap to it.
27952         PR middle-end/89281
27953         * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
27954         INTVAL (size), compare it to GET_MODE_MASK instead of
27955         1 << GET_MODE_BITSIZE.
27957         PR target/89290
27958         * config/i386/predicates.md (x86_64_immediate_operand): Allow
27959         TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
27960         -mcmodel=large.
27962 2019-02-13  Martin Liska  <mliska@suse.cz>
27964         PR lto/88858
27965         * cfgrtl.c (remove_barriers_from_footer): New function.
27966         (try_redirect_by_replacing_jump): Use it.
27967         (cfg_layout_redirect_edge_and_branch): Likewise.
27969 2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
27971         * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
27972         vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
27973         * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
27974         (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
27975         * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
27976         (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
27977         New BU_CRYPTO_2.
27978         * config/rs6000/rs6000.c (builtin_function_type)
27979         <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
27980         CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
27981         CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
27982         * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
27983         vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
27985 2019-02-12  Pat Haugen  <pthaugen@us.ibm.com>
27987         * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
27988         -maltivec. Delete -maltivec=be and -maltivec=le documentation.
27990 2019-02-12  H.J. Lu  <hongjiu.lu@intel.com>
27992         PR target/89229
27993         * config/i386/i386.md (*movoi_internal_avx): Revert revision
27994         268678 and revision 268657.
27995         (*movti_internal): Likewise.
27997 2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>
27999         PR target/89233
28000         * config/s390/s390.c (s390_decompose_address): Update comment.
28001         (s390_check_qrst_address): Reject invalid address forms after
28002         LRA.
28004 2019-02-12  Martin Liska  <mliska@suse.cz>
28006         PR lto/88876
28007         * ipa-pure-const.c (propagate_pure_const): Revert hunk as
28008         we need default values of funct_state for a function that
28009         is not optimized.
28011 2019-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28013         * asan.c (asan_expand_mark_ifn): Take into account the alignment of
28014         the object to pick the size of stores on strict-alignment platforms.
28016         * config/sparc/sparc.md (*movsi_insn): Minor tweak.
28017         (*movdi_insn_sp32): Likewise.
28018         (*movdi_insn_sp64): Likewise.
28020 2019-02-12  Jan Hubicka  <hubicka@ucw.cz>
28022         PR lto/88677
28023         * cgraphunit.c (analyze_functions): Clear READONLY flag for external
28024         types that needs constructiong.
28025         * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
28027 2019-02-12  Richard Biener  <rguenther@suse.de>
28029         PR tree-optimization/89253
28030         * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
28031         duplicate the loop.
28033 2019-02-11  David Malcolm  <dmalcolm@redhat.com>
28035         PR lto/88147
28036         * input.c (selftest::test_line_offset_overflow): New selftest.
28037         (selftest::input_c_tests): Call it.
28039 2019-02-11  Martin Sebor  <msebor@redhat.com>
28041         PR tree-optimization/88771
28042         * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
28043         when -Wstringop-overflow is set.
28044         (builtin_memref::builtin_memref): Adjust excessive upper bound
28045         only when lower bound is not excessive.
28046         (maybe_diag_overlap): Detect and diagnose excessive bounds via
28047         -Wstringop-ovefflow.
28048         (maybe_diag_offset_bounds): Rename...
28049         (maybe_diag_access_bounds): ...to this.
28050         (check_bounds_or_overlap): Adjust for name change above.
28052 2019-02-11  Martin Sebor  <msebor@redhat.com>
28054         PR c++/87996
28055         * builtins.c (max_object_size): Move from here...
28056         * builtins.h (max_object_size): ...and here...
28057         * tree.c (max_object_size): ...to here...
28058         * tree.h (max_object_size): ...and here.
28060 2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
28062         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
28063         and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
28064         for correct semantics.
28066 2019-02-11  Alan Modra  <amodra@gmail.com>
28068         * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
28069         -mlongcall and -mpltseq.
28070         (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
28071         (RS/6000 and PowerPC Options <-mpltseq>): Document.
28072         * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
28073         * config/rs6000/sysv4.opt (mpltseq): New option.
28074         * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
28075         (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
28076         support is lacking.  Don't allow -mpltseq with -mbss-plt.
28077         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
28078         -mpltseq given for ELFv1.
28079         * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
28080         Only use UNSPEC_PLTSEQ for inline PLT calls.
28081         (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
28082         use UNSPEC_PLTSEQ for inline PLT calls.
28083         (rs6000_indirect_call_template_1, rs6000_longcall_ref),
28084         (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
28085         uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
28086         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
28087         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
28088         (pltseq_mtctr_<mode>): Likewise.
28090 2019-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28092         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
28093         Solaris ld.
28094         * configure: Regenerate.
28096 2019-02-11  Jakub Jelinek  <jakub@redhat.com>
28098         PR bootstrap/88714
28099         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
28100         instead of r.
28102 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
28104         * function.c (assign_parm_setup_block): Use the stored
28105         size, not the passed size, when allocating stack-space,
28106         also for a parameter with alignment larger than
28107         MAX_SUPPORTED_STACK_ALIGNMENT.
28109 2019-02-11  Martin Liska  <mliska@suse.cz>
28111         PR ipa/89009
28112         * ipa-cp.c (build_toporder_info): Remove usage of a param.
28113         * ipa-inline.c (inline_small_functions): Likewise.
28114         * ipa-pure-const.c (propagate_pure_const): Likewise.
28115         (propagate_nothrow): Likewise.
28116         * ipa-reference.c (propagate): Likewise.
28117         * ipa-utils.c (struct searchc_env): Remove unused field.
28118         (searchc): Always search across AVAIL_INTERPOSABLE.
28119         (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
28120         the only called IPA pure const can properly not propagate
28121         across interposable boundary.
28122         * ipa-utils.h (ipa_reduced_postorder): Remove param.
28124 2019-02-11  Chung-Ju Wu  <jasonwucj@gmail.com>
28126         * config/nds32/nds32.md (call_internal, call_value_internal,
28127         sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
28129 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
28131         * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
28132         typo.
28134 2019-02-10  H.J. Lu  <hongjiu.lu@intel.com>
28136         * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
28137         in comments
28139 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
28141         * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
28143 2019-02-10  Jakub Jelinek  <jakub@redhat.com>
28145         PR tree-optimization/89268
28146         * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
28147         if preds is non-NULL.
28149 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
28151         PR lto/89272
28152         * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
28153         polymorphic types.
28155 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
28157         * config/nds32/nds32.md (trap): New pattern.
28159 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
28161         * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
28162         dwarf span.
28164 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
28166         * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
28167         to split POST_INC.
28169 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
28171         * ipa-visibility.c (localize_node): Also do not localize
28172         LDPR_PREVAILING_DEF_IRONLY_EXP.
28174 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
28176         PR lto/87957
28177         * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
28178         instead of type_with_linkage.
28180 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
28182         PR ipa/88755
28183         * params.def (uninlined-function-insns, uninlined-function-time,
28184         uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
28185         bound so we don't get overflows.
28187 2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
28189         * config/rs6000/rs6000-string.c (expand_compare_loop,
28190         expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
28191         memcmp/strncmp.
28193 2019-02-09  Jakub Jelinek  <jakub@redhat.com>
28195         PR middle-end/89246
28196         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
28197         If !node->definition and TYPE_ARG_TYPES is non-NULL, use
28198         TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
28200 2019-02-09  Alan Modra  <amodra@gmail.com>
28202         PR target/88343
28203         * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
28204         case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
28205         setup.
28207 2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>
28209         PR middle-end/88560
28210         * lra-constraints.c (process_alt_operands): Don't increase reject
28211         for memory when offset memory is required.
28213 2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>
28215         * config/s390/vector.md: Implement vector copysign.
28217 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
28219         * expr.c (expand_constructor): Correct indentations.
28221 2019-02-08  Richard Biener  <rguenther@suse.de>
28223         PR tree-optimization/89247
28224         * tree-if-conv.c: Include tree-cfgcleanup.h.
28225         (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
28226         (tree_if_conversion): Pass through predicate vector.
28227         (pass_if_conversion::execute): Do CFG cleanup and SSA update
28228         inline, see if any if-converted loops we refrece in
28229         LOOP_VECTORIZED calls vanished and fixup.
28230         * tree-if-conv.h (tree_if_conversion): Adjust prototype.
28232 2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>
28234         * config/s390/constraints.md (jdd): New constraint.
28236 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
28238         PR target/89229
28239         * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
28240         upper 16 vector registers without TARGET_AVX512VL.
28241         (*movti_internal): Likewise.
28243 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
28245         PR rtl-optimization/89234
28246         * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
28247         is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
28248         (copy_reg_eh_region_note_backward): Likewise.
28250 2019-02-08  Richard Biener  <rguenther@suse.de>
28252         PR middle-end/89223
28253         * tree-data-ref.c (initialize_matrix_A): Fail if constant
28254         doesn't fit in HWI.
28255         (analyze_subscript_affine_affine): Handle failure from
28256         initialize_matrix_A.
28258 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
28260         * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
28261         cfun everywhere.
28263 2019-02-07  David Malcolm  <dmalcolm@redhat.com>
28265         PR tree-optimization/86637
28266         PR tree-optimization/89235
28267         * tree-vect-loop.c (optimize_mask_stores): Add an
28268         auto_purge_vect_location sentinel to ensure that vect_location is
28269         purged on exit.
28270         * tree-vectorizer.c
28271         (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
28272         (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
28273         to ensure that vect_location is purged on exit.
28274         (pass_slp_vectorize::execute): Likewise, replacing the manual
28275         reset.
28276         * tree-vectorizer.h (class auto_purge_vect_location): New class.
28278 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28280         * config/aarch64/iterators.md (max_opp): New code_attr.
28281         (USMAX): New code iterator.
28282         * config/aarch64/predicates.md (aarch64_smin): New predicate.
28283         (aarch64_smax): Likewise.
28284         * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
28285         (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
28286         MINUS (MAX MIN).
28288 2019-02-07  H.J. Lu  <hongjiu.lu@intel.com>
28290         PR target/89229
28291         * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
28292         for TARGET_AVX512VL.
28293         (*movti_internal): Set mode to TI for TARGET_AVX512VL.
28295 2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
28297         * config/s390/s390-builtin-types.def: Add new types.
28298         * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
28299         (s390_vec_xlw4): Make the memory operand into a const pointer.
28300         (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
28301         float.
28302         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
28303         a new vector type with the alignment of the scalar memory operand.
28305 2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
28306             Jakub Jelinek  <jakub@redhat.com>
28308         PR bootstrap/88714
28309         * config/arm/arm-protos.h (valid_operands_ldrd_strd,
28310         arm_count_ldrdstrd_insns): New declarations.
28311         * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
28312         MINUS.
28313         (valid_operands_ldrd_strd): New function.
28314         (arm_count_ldrdstrd_insns): New function.
28315         * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
28316         sets instead of single DImode set and define new insns to match this.
28318 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
28320         * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
28321         Make it a C initializer.
28323 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
28325         PR/target 88850
28326         * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
28328 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28330         * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
28331         Use neon_dot<q> for type.
28332         (neon_<sup>dot_lane<vsi2qi>): Likewise.
28334 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28336         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
28337         Use neon_dot<q> for type.
28338         (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
28339         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
28341 2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
28343         PR rtl-optimization/89225
28344         * lra-constaints.c (simplify_operand_subreg): Add subreg mode
28345         sizes check.
28347 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
28349         * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
28350         after restoring registers saved to allocate the frame on Windows.
28352 2019-02-06  Richard Biener  <rguenther@suse.de>
28354         PR tree-optimization/89182
28355         * graphite.h (cached_scalar_evolution_in_region): Declare.
28356         * graphite.c (struct seir_cache_key): New.
28357         (struct sese_scev_hash): Likewise.
28358         (seir_cache): New global.
28359         (cached_scalar_evolution_in_region): New function.
28360         (graphite_transform_loops): Allocate and release seir_cache.
28361         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
28362         cached_scalar_evolution_in_region.
28363         * graphite-scop-detection.c (scop_detection::can_represent_loop):
28364         Simplify.
28365         (scop_detection::graphite_can_represent_expr: Use
28366         cached_scalar_evolution_in_region.
28367         (scop_detection::stmt_simple_for_scop_p): Likewise.
28368         (find_params_in_bb): Likewise.
28369         (gather_bbs::before_dom_children): Likewise.
28370         * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
28371         (add_loop_constraints): Likewise.
28373 2019-02-06  Jakub Jelinek  <jakub@redhat.com>
28375         PR middle-end/89210
28376         * fold-const-call.c (fold_const_vec_convert): Pass true as last
28377         operand to new_unary_operation only if both element types are integral
28378         and it isn't a widening conversion.  Return NULL_TREE if
28379         new_unary_operation failed.
28381 2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
28383         PR target/88856
28384         * config/s390/s390.md: Remove load and test FP splitter.
28386 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
28388         PR target/89112
28389         * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
28390         expand_compare_loop, expand_block_compare_gpr,
28391         expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
28392         REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
28393         #include "profile-count.h" and "predict.h" for types and functions
28394         needed to work with REG_BR_PROB notes.
28396 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
28398         PR target/89112
28399         * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
28400         for the long branch case.
28402 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
28404         PR target/89188
28405         * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
28406         can throw, non-call exceptions are enabled and we can't delete
28407         dead exceptions or alter cfg.  Set must_clean if
28408         delete_insn_and_edges returns true, don't set it blindly for calls.
28409         Assert that delete_unreachable_blocks is called only if can_alter_cfg.
28411         PR rtl-optimization/89195
28412         * combine.c (make_extraction): For MEMs, don't extract bytes outside
28413         of the original MEM.
28415 2019-02-05  Martin Liska  <mliska@suse.cz>
28417         PR gcov-profile/89000
28418         * gcov.c (function_summary): Remove argument.
28419         (file_summary): New function.
28420         (print_usage): Replace tabs with spaces.
28421         (generate_results): Use new function file_summary.
28423 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
28425         PR target/89186
28426         * optabs.c (prepare_cmp_insn): Pass x and y to
28427         emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
28429 2019-02-05  Richard Biener  <rguenther@suse.de>
28431         PR middle-end/89150
28432         * bitmap.h (struct bitmap_obstack): Do not mark GTY.
28433         (struct bitmap_element): Drop chain_prev so we properly recurse on
28434         the prev member, supporting tree views.
28435         (struct bitmap_head): GTY skip the obstack member.
28437 2019-02-04  Alexander Monakov  <amonakov@ispras.ru>
28439         PR c/88698
28440         * doc/extend.texi (Vector Extensions): Add an example of using vector
28441         types together with x86 intrinsics.
28443 2019-02-04  Alan Modra  <amodra@gmail.com>
28445         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
28446         str[] size to 160, and comment.
28448 2019-02-04  Alan Modra  <amodra@gmail.com>
28450         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
28451         (rs6000_pltseq_template): Guard output of TLS markers with
28452         TARGET_TLS_MARKERS.
28453         (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
28454         (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
28455         to use inline PLT sequences.
28456         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
28457         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
28458         (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
28460 2019-02-04  Martin Liska  <mliska@suse.cz>
28462         PR ipa/88985
28463         * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
28464         out when ipa_fn_summaries does not contain entry for callee.
28466 2019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
28468         * config/sparc/sparc.h: Remove superfluous blank lines.
28469         * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
28470         (got_register_rtx): ...this.
28471         (sparc_got): Adjust to above renaming.
28472         (sparc_tls_got): Likewise.
28473         (sparc_delegitimize_address): Likewise.
28474         (sparc_output_mi_thunk): Likewise.
28475         (sparc_init_pic_reg): Likewise.
28476         (save_local_or_in_reg_p): Fix test on the GOT register.
28477         (USE_HIDDEN_LINKONCE): Move around.
28478         (get_pc_thunk_name): Likewise.
28479         (gen_load_pcrel_sym): Likewise.
28480         (load_got_register): Likewise.
28482 2019-02-04  Kito Cheng  <kito.cheng@gmail.com>
28484         * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
28485         of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
28487 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
28489         * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
28490         into consideration.
28492 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
28494         * config.gcc (with_nds32_lib, glibc):
28495         Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
28496         * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
28497         (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
28499 2019-02-03  UroÅ¡ Bizjak  <ubizjak@gmail.com>
28501         PR target/89071
28502         * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
28503         Do not prefer (v,v) alternative for non-AVX targets and (m,v)
28504         alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
28505         (*rcpsf2_sse): Ditto.
28506         (*rsqrtsf2_sse): Ditto.
28507         (sse4_1_round<mode<2): Ditto.
28509 2019-02-03  Richard Biener  <rguenther@suse.de>
28511         PR debug/87295
28512         * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
28513         orig.
28515 2019-02-02  Jakub Jelinek  <jakub@redhat.com>
28517         PR middle-end/87887
28518         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
28519         Punt with warning on aggregate return or argument types.  Ignore
28520         type/mode checking for uniform arguments.
28522 2019-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
28524         * combine.c (try_combine): Do not print "Can't combine" messages unless
28525         printing failed combination attempts.
28527 2019-02-01  Martin Jambor  <mjambor@suse.cz>
28529         PR hsa/87863
28530         * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
28531         segment and global segment variables before making them static.
28533 2019-02-01  Martin Jambor  <mjambor@suse.cz>
28535         * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
28536         missed optimization dump with dump_enabled_p.
28538 2019-02-01  Richard Biener  <rguenther@suse.de>
28540         PR middle-end/88597
28541         * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
28542         the instantiate cache.
28543         (instantiate_scev_binary): Elide second operand procesing
28544         if equal to the first.
28545         * tree-chrec.c (chrec_contains_symbols): Add visited set.
28546         (chrec_contains_undetermined): Likewise.
28547         (tree_contains_chrecs): Likewise.
28549 2019-02-01  Jan Hubicka  <hubicka@ucw.cz>
28551         * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
28553 2019-02-01  Jakub Jelinek  <jakub@redhat.com>
28555         PR tree-optimization/89143
28556         * wide-int-range.h (wide_int_range_absu): Declare.
28557         * wide-int-range.cc (wide_int_range_absu): New function.
28558         * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
28560         PR tree-optimization/88107
28561         * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
28562         instead of assertion that eh_region_outermost is non-NULL, if it
28563         is NULL, set *ALL to true and return NULL.
28564         (move_sese_region_to_fn): Adjust caller, if all is set, call
28565         duplicate_eh_regions with NULL region.
28567 2019-02-01  Richard Biener  <rguenth@suse.de>
28569         PR rtl-optimization/88593
28570         * mode-switching.c (optimize_mode_switching): Free dominators before
28571         calling cleanup_cfg.
28573 2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
28575         PR tree-optimization/88932
28576         * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
28578 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
28580         PR middle-end/89137
28581         * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
28582         bogus clang warning.
28584 2019-01-31  UroÅ¡ Bizjak  <ubizjak@gmail.com>
28586         PR target/89071
28587         * config/i386/i386.md (*extendsfdf2): Split out reg->reg
28588         alternative to avoid partial SSE register stall for TARGET_AVX.
28589         (truncdfsf2): Ditto.
28590         (sse4_1_round<mode>2): Ditto.
28592 2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
28594         PR tree-optimization/89008
28595         * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
28596         process anything of the form X * 0.
28598 2019-01-31  Richard Biener  <rguenther@suse.de>
28600         PR tree-optimization/89135
28601         * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
28602         with abnormal preds.
28604 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
28606         PR sanitizer/89124
28607         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
28608         always_inline callees into no_sanitize_address callers.
28610 2019-01-31  Richard Biener  <rguenther@suse.de>
28612         PR rtl-optimization/89115
28613         * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
28615 2019-01-30  Martin Sebor  <msebor@redhat.com>
28617         PR other/89106
28618         * doc/extend.texi (cast to a union): Correct and expand.
28620 2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>
28622         PR rtl-optimization/87246
28623         * lra-constraints.c (simplify_operand_subreg): Reload memory
28624         in subreg if the address became invalid.
28626 2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
28628         PR target/87064
28629         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
28630         Disable for little-endian.
28632 2019-01-30  Richard Biener  <rguenther@suse.de>
28634         PR rtl-optimization/89115
28635         * opts.c (default_options_optimization): Reduce
28636         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
28637         Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
28638         to the default.
28640 2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
28642         * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
28643         Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
28644         type of vector element when vec_extract is implemented by direct
28645         move.
28647 2019-01-30  Thomas Schwinge  <thomas@codesourcery.com>
28649         * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
28651 2019-01-30  Richard Biener  <rguenther@suse.de>
28653         PR tree-optimization/89111
28654         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
28655         canonicalization to appropriately sized access types.
28657 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
28659         PR c++/89105
28660         * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
28661         for arguments to functions that are TU-local and shouldn't be
28662         referenced by assembly.
28664 2019-01-30  Ulrich Drepper  <drepper@redhat.com>
28666         * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
28667         after '='.
28669 2019-01-29  Martin Sebor  <msebor@redhat.com>
28671         PR c/88956
28672         * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
28674 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
28676         PR c++/66676
28677         PR ipa/89104
28678         * omp-simd-clone.c (simd_clone_clauses_extract)
28679         <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
28680         OMP_CLAUSE_ALIGNED_ALIGNMENT.
28682 2019-01-29  Vineet Gupta  <vgupta@synopsys.com>
28684         * config.gcc: Force .init_array for ARC.
28686 2019-01-29  Richard Biener  <rguenther@suse.de>
28688         PR debug/87295
28689         * dwarf2out.c (collect_skeleton_dies): New helper.
28690         (copy_decls_for_unworthy_types): Call it.
28691         (build_abbrev_table): Assert we do not try to replace
28692         DW_AT_signature refs with local refs.
28694 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
28696         PR middle-end/89002
28697         * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
28698         for lastprivate/linear IV, push gimplify context around gimplify_assign
28699         and, if it needed any temporaries, pop it into a gimple bind around the
28700         sequence.
28702 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28704         * common.opt (-Wattribute-alias): Remove "no-" from name.
28705         Make -Wattribute-alias command line option and
28706         #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
28708 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
28710         PR target/89073
28711         * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
28712         -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
28713         x86 ISA options.
28714         (bmi2): Add missing @opindex.
28715         * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
28716         options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
28717         avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
28718         avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
28719         avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
28720         cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
28721         fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
28722         pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
28723         sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
28724         xsavec, xsaveopt and xsaves options.
28726 2019-01-28  Richard Biener  <rguenther@suse.de>
28728         PR debug/89076
28729         * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
28730         support removal.
28732 2019-01-28  Richard Biener  <rguenther@suse.de>
28734         PR tree-optimization/88739
28735         * tree-cfg.c (verify_types_in_gimple_reference): Verify
28736         BIT_FIELD_REFs only are applied to mode-precision operands
28737         when they are integral.
28738         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
28739         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
28740         BIT_FIELD_REFs of non-mode-precision integral operands.
28742 2019-01-27  Jakub Jelinek  <jakub@redhat.com>
28744         PR target/87214
28745         * config/i386/sse.md
28746         (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
28747         avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
28748         first constants in pairs are multiples of 2.  Formatting fixes.
28749         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
28750         avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
28751         first constants in each quadruple are multiples of 4.  Formatting fixes.
28753 2019-01-26  Martin Jambor  <mjambor@suse.cz>
28755         PR ipa/88933
28756         * tree-inline.c: Include tree-cfgcleanup.h.
28757         (delete_unreachable_blocks_update_callgraph): Move...
28758         * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
28759         ...here, make externally visible, make second argument bool, adjust
28760         all callers.
28761         * tree-cfgcleanup.c: Include cgraph.h.
28762         * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
28763         Declare.
28764         * ipa-prop.c: Include tree-cfgcleanup.h.
28765         (ipcp_transform_function): Call
28766         delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
28768 2019-01-25  Vladimir Makarov  <vmakarov@redhat.com>
28770         PR rtl-optimization/88846
28771         * ira.c (process_set_for_memref_referenced_p): New.
28772         (memref_referenced_p): Add new param.  Use
28773         process_set_for_memref_referenced_p.  Add new switch cases.
28774         (memref_used_between_p): Pass new arg to memref_referenced_p.
28776 2019-01-25  Richard Earnshaw  <rearnsha@arm.com>
28778         PR target/88469
28779         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
28780         argument ABI_BREAK.  Set to true if the calculated alignment has
28781         changed in gcc-9.  Check bit-fields for their base type alignment.
28782         (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
28783         (aarch64_function_arg_boundary): Likewise.
28784         (aarch64_gimplify_va_arg_expr): Likewise.
28786 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
28788         PR middle-end/89037
28789         * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
28790         instead of accessing TREE_INT_CST_ELT directly.
28792 2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
28794         * doc/sourcebuild.texi (Environment attributes): Add fenv and
28795         fenv_exceptions description.
28797 2019-01-25  Wilco Dijkstra  <wdijkstr@arm.com>
28799         PR rtl-optimization/87763
28800         * config/aarch64/aarch64.c (aarch64_select_cc_mode):
28801         Allow SUBREG when matching CC_NZmode compare.
28803 2019-01-25  Richard Biener  <rguenther@suse.de>
28805         PR tree-optimization/89049
28806         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
28807         Look at the pattern stmt to determine if the stmt is vectorized.
28809 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
28811         * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
28812         (pred_mov<mode>): Handle all-register forms using both a new
28813         alternative and a split.
28815 2019-01-25  Richard Biener  <rguenther@suse.de>
28817         PR tree-optimization/86865
28818         * graphite-scop-detection.c (scop_detection::can_represent_loop):
28819         Reject non-do-while loops.
28821 2019-01-24  Peter Bergner  <bergner@linux.ibm.com>
28823         * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
28824         * config/rs6000/constraints.md (Q constraint): Use REG_P.
28825         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
28826         * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
28827         SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
28828         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
28829         * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
28830         vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
28831         vlogical_operand, gpc_reg_operand, int_reg_operand,
28832         int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
28833         (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
28834         cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
28835         (save_world_operation, restore_world_operation, lmw_operation,
28836         stmw_operation): Use MEM_P and REG_P.
28837         (tie_operand): Use MEM_P.
28838         (vrsave_operation, crsave_operation): Use REG_P.
28839         (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
28840         (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
28841         (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
28842         (call_operand): Use HARD_REGISTER_P.
28843         (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
28844         Use CONST_INT_P.
28845         (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
28846         * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
28847         quad_aligned_load_p, replace_swapped_aligned_store,
28848         recombine_lvx_pattern, replace_swapped_aligned_load,
28849         recombine_stvx_pattern): Use MEM_P.
28850         (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
28851         Use MEM_P and SYMBOL_REF_P.
28852         (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
28853         (insn_is_swappable_p): Use REG_P and MEM_P.
28854         (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
28855         * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
28856         Use CONST_INT_P.
28857         * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
28858         Use CONST_DOUBLE_P.
28859         (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
28860         CONST_WIDE_INT_P.
28861         (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
28862         CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
28863         (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
28864         HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
28865         reg_or_subregno:
28866         (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
28867         (easy_altivec_constant, rs6000_legitimate_offset_address_p,
28868         rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
28869         rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
28870         rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
28871         rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
28872         rs6000_split_logical_di): Use CONST_INT_P.
28873         (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
28874         REG_P and SYMBOL_REF_P.
28875         (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
28876         (print_operand): Use CONST_INT_P, MEM_P and REG_P.
28877         (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
28878         mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
28879         (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
28880         (small_data_operand, print_operand_address): Use CONST_INT_P and
28881         SYMBOL_REF_P.
28882         (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
28883         (rs6000_init_hard_regno_mode_ok, direct_move_p):
28884         Use HARD_REGISTER_NUM_P.
28885         (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
28886         (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
28887         SUBREG_P and SYMBOL_REF_P.
28888         (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
28889         and HARD_REGISTER_NUM_P.
28890         (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
28891         reg_or_subregno.
28892         (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
28893         (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
28894         MEM_P and REG_P.
28895         (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
28896         registers_ok_for_quad_peep, rs6000_output_function_epilogue,
28897         find_addr_reg): Use REG_P.
28898         (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
28899         (rs6000_emit_le_vsx_move): Use SUBREG_P.
28900         (offsettable_ok_by_alignment, constant_pool_expr_p,
28901         legitimate_small_data_p, rs6000_output_dwarf_dtprel,
28902         rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
28903         rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
28904         rs6000_assemble_integer, create_TOC_reference,
28905         rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
28906         rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
28907         (rs6000_split_vec_extract_var): Use reg_or_subregno.
28908         * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
28909         CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
28910         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
28911         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
28912         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
28913         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
28914         (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
28915         (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
28916         * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
28917         and cbranch<mode>4): Use CONST_INT_P.
28918         (multiple define_splits): Use REG_P and SUBREG_P.
28919         (define_expands call, call_value): Use MEM_P.
28920         (define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
28921         (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
28922         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
28923         *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
28924         and HARD_REGISTER_NUM_P.
28925         (multiple define_splits): Use HARD_REGISTER_NUM_P.
28927 2019-01-24  UroÅ¡ Bizjak  <ubizjak@gmail.com>
28929         PR rtl-optimization/88948
28930         * rtl.h (prepare_copy_insn): New prototype.
28931         * gcse.c (prepare_copy_insn): New function, split out from
28932         process_insert_insn.
28933         (process_insert_insn): Use prepare_copy_insn.
28934         * store-motion.c (replace_store_insn): Use prepare_copy_insn
28935         instead of gen_move_insn.
28937 2019-01-24  Jakub Jelinek  <jakub@redhat.com>
28939         PR debug/89006
28940         * config/i386/i386.c (ix86_pic_register_p): Return true for
28941         UNSPEC_SET_GOT too.
28943         PR tree-optimization/88964
28944         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
28945         punt if HONOR_SNANS (chrec).
28947         PR middle-end/89015
28948         * tree-nested.c (convert_nonlocal_reference_stmt,
28949         convert_local_reference_stmt, convert_tramp_reference_stmt,
28950         convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
28951         gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
28952         or GIMPLE_OMP_TASK.
28954         PR tree-optimization/89027
28955         * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
28956         for "omp simd array" variables.
28958 2019-01-24  Richard Earnshaw  <rearnsha@arm.com>
28960         PR target/88469
28961         * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
28962         force the alignment of m_val.
28964 2019-01-24  Richard Biener  <rguenther@suse.de>
28966         PR lto/87187
28967         * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
28968         When in "legacy" debug mode make sure to reset self-origins.
28970 2019-01-24  Martin Liska  <mliska@suse.cz>
28972         PR gcov-profile/88994
28973         * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
28974         result will be always smaller or equal to the original.
28975         * gcov.c (mangle_name): Fix else branch where we should
28976         also copy to PTR and shift the pointer.
28978 2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
28980         * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
28981         * vr-values.c (find_case_label_ranges): Fix a comment typo.
28983 2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>
28985         * common/config/i386/i386-common.c
28986         (OPTION_MASK_ISA_ENQCMD_SET,
28987         OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
28988         (ix86_handle_option): Handle -menqcmd.
28989         * config.gcc (enqcmdintrin.h): New header file.
28990         * config/i386/cpuid.h (bit_ENQCMD): New bit.
28991         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
28992         -menqcmd.
28993         * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
28994         function type.
28995         * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
28996         __builtin_ia32_enqcmds): New builtins.
28997         * config/i386/i386-c.c (__ENQCMD__): New macro.
28998         * config/i386/i386-option.c (ix86_target_string): Add
28999         -menqcmd.
29000         (ix86_valid_target_attribute_inner_p): Likewise.
29001         * config/i386/i386-expand.c
29002         (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
29003         IX86_BUILTIN_ENQCMDS.
29004         * config/i386/i386.h (TARGET_ENQCMD): New.
29005         * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
29006         (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
29007         (movdir64b_<mode>): Parameterize to enable share expansion code
29008         with ENQCMD in function ix86_expand_builtin.
29009         * config/i386/i386.opt: Add -menqcmd.
29010         * config/i386/immintrin.h: Include enqcmdintrin.h.
29011         * config/i386/enqcmdintrin.h: New intrinsic file.
29012         * doc/invoke.texi: Add -menqcmd.
29014 2019-01-23  Bin Cheng  <bin.cheng@arm.com>
29015             Steve Ellcey  <sellcey@marvell.com>
29017         PR target/85711
29018         * recog.c (address_operand): Return false on wrong mode for address.
29019         (constrain_operands): Check for mode with 'p' constraint.
29021 2019-01-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29023         PR target/88998
29024         * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
29025         Disparage MMX alternative.
29026         (sse2_cvtpd2pi): Ditto.
29027         (sse2_cvttpd2pi): Ditto.
29029 2019-01-23  David Malcolm  <dmalcolm@redhat.com>
29031         PR driver/89014
29032         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
29033         use-after-free of the result of
29034         aarch64_get_extension_string_for_isa_flags.
29036 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
29038         PR c/44715
29039         * doc/extend.texi: Document break and continue behavior in
29040         statement expressions.
29042 2019-01-23  Richard Biener  <rguenther@suse.de>
29044         PR tree-optimization/89008
29045         * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
29046         not leave another stray operand.
29048 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
29050         * BASE-VER: Bump to 9.0.1.
29052 2019-01-23  Eric Botcazou  <ebotcazou@adacore.com>
29054         * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
29055         thunk that returns by reference, use the type of the return object
29056         of the thunk instead of that of the alias to build the dereference.
29058 2019-01-23  Vineet Gupta  <vgupta@synopsys.com>
29060         * config/arc/atomic.md: Add operand to DMB instruction.
29062 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
29064         PR tree-optimization/88964
29065         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
29066         build_zero_cst instead of build_int_cst.  Return false for loop
29067         invariants which honor signed zeros.
29069 2019-01-22  Segher Boessenkool  <segher@kernel.crashing.org>
29071         * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
29073 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
29075         PR target/88965
29076         * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
29077         (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
29078         is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
29080         PR middle-end/88968
29081         * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
29082         non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
29084         PR target/87064
29085         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
29086         Disable for little endian.
29088 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
29090         PR target/88469
29091         * config/arm/arm.c (arm_needs_double_word_align): Check
29092         DECL_BIT_FIELD_TYPE.
29094 2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
29095             H.J. Lu  <hongjiu.lu@intel.com>
29097         PR target/88909
29098         * config/i386/i386-builtin.def: Add mask2 to all builtin
29099         initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
29100         SPECIAL_ARGS.
29101         * config/i386/i386.c (BDESC): Add mask2 to the definition.
29102         (BDESC_FIRST): Likewise.
29103         (define_builtin): Add an argument for mask2.  Updated to handle
29104         both ix86_isa_flags and ix86_isa_flags2.
29105         (define_builtin_const): Likewise.
29106         (define_builtin_pure): Likewise.
29107         (define_builtin2): Deleted.
29108         (define_builtin_const2): Likewise.
29109         (builtin_description): Add a member, mask2.
29110         (bdesc_*): Add mask2 to builtin initializations.
29111         (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
29112         def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
29113         support.
29114         (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
29116 2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>
29118         PR target/88954
29119         * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
29120         noplt attribute.
29122 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
29124         PR target/88469
29125         * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
29126         alignment is dominated by a bitfield with 64-bit aligned base type.
29127         (arm_function_arg): Emit a warning if the alignment has changed since
29128         earlier GCC releases.
29129         (arm_function_arg_boundary): Likewise.
29130         (arm_setup_incoming_varargs): Likewise.
29132 2019-01-22  Richard Biener  <rguenther@suse.de>
29134         PR tree-optimization/88862
29135         * graphite-scop-detection.c
29136         (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
29138 2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
29140         * doc/extend.tex (AMD GCN Function Attributes): New section.
29141         * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
29142         * doc/invoke.texi (AMD GCN Options): New section.
29143         * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
29145 2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>
29147         * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
29148         register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
29150 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
29152         PR tree-optimization/88044
29153         * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
29154         is false in the first iteration, but !every_iteration, return false
29155         instead of true with niter->niter zero.
29157         PR rtl-optimization/88904
29158         * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
29159         any nonequal registers before processing BB_END (b).
29161         PR target/88905
29162         * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
29163         GET_MODE (op0).
29164         (expand_binop_directly, expand_doubleword_clz,
29165         expand_doubleword_popcount, expand_ctz, expand_ffs,
29166         expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
29168         PR rtl-optimization/49429
29169         PR target/49454
29170         PR rtl-optimization/86334
29171         PR target/88906
29172         * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
29173         addressable from here...
29174         (emit_block_op_via_libcall): ... to here.
29176 2019-01-22  Richard Biener  <rguenther@suse.de>
29178         * tree-vect-loop.c (vect_analyze_loop_operations): Use
29179         auto_vec for cost vector to fix memleak.
29180         (vectorize_fold_left_reduction): Properly gather SLP defs.
29181         (vectorizable_comparison): Do not swap operands to properly
29182         gather SLP defs.
29184 2019-01-22  Alan Modra  <amodra@gmail.com>
29186         PR target/88614
29187         * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
29188         stays a reg.  Allow a const_int.
29189         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
29190         * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
29191         (IS_NOMARK_TLSGETADDR): Define.
29192         * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
29193         (rs6000_output_tlsargs): New function.
29194         (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
29195         __tls_get_addr call takes an arg.
29196         (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
29197         * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
29198         delete split..
29199         (call_value_nonlocal_sysv): ..or here, delete split.
29200         (tls_gdld_nomark): Delete.
29201         (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
29202         predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
29203         (call_value_nonlocal_sysv): Likewise.
29204         (call_value_nonlocal_sysv_secure): Likewise.
29205         (call_value_nonlocal_aix): Likewise.
29206         (call_value_indirect_aix): Likewise.
29207         (call_value_indirect_elfv2): Likewise.
29208         (call_value_local32, call_value_local64): Disable for no-mark tls.
29209         (call_value_local_aix): Likewise.
29211 2019-01-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29213         PR target/88938
29214         * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
29215         case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
29217 2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
29219         * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
29220         string contents as hash_map keys.
29222 2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29224         PR c/88928
29225         * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
29226         for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
29227         instead of TYPE_ALIGN.
29228         (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
29229         Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
29230         pointer from TYPE_STUB_DECL.
29232 2019-01-21  Richard Biener  <rguenther@suse.de>
29234         PR tree-optimization/88934
29235         * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
29236         at the possibly non-constant operand.
29237         (vect_get_constant_vectors): Adjust.
29239 2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>
29241         PR target/71659
29242         * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
29243         * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
29244         instead of _X86INTRIN_H_INCLUDED.
29245         * onfig/i386/clwbintrin.h: Likewise.
29246         * config/i386/pkuintrin.h: Likewise.
29247         * config/i386/prfchwintrin.h: Likewise.
29248         * config/i386/rdseedintrin.h: Likewise.
29249         * config/i386/wbnoinvdintrin.h: Likewise.
29250         * config/i386/xsavecintrin.h: Likewise.
29251         * config/i386/xsavesintrin.h: Likewise.
29252         * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
29253         * config/i386/xsaveintrin.h: Likewise.
29254         * config/i386/xsaveoptintrin.h: Likewise.
29255         * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
29256         <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
29257         <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
29258         <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
29259         <wbnoinvdintrin.h> and <pkuintrin.h> to ...
29260         * config/i386/immintrin.h: Here.
29262 2019-01-20  Martin Jambor  <mjambor@suse.cz>
29264         PR ipa/87615
29265         * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
29266         with aa_walk_budget.
29267         * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
29268         aa_walk_budget_p parameter.
29269         * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
29270         walk.  Updated all callers.
29271         (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
29272         (eliminated_by_inlining_prob): New parameter fbi, pass it on to
29273         unmodified_parm.
29274         (will_be_nonconstant_expr_predicate): New parameter fbi, removed
29275         parameter info.  Extract info from fbi.  Pass fbi to recursive calls
29276         and to unmodified_parm.
29277         (phi_result_unknown_predicate): New parameter fbi, removed parameter
29278         info, updated call to will_be_nonconstant_expr_predicate.
29279         (param_change_prob): New parameter fbi, limit AA walking.
29280         (analyze_function_body): Initialize aa_walk_budget in fbi.  Update
29281         calls to various above functions.
29282         * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
29283         parameter.  Use it to limit AA walking.
29284         * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
29285         fbi, limit AA walk.
29286         (detect_type_change): New parameter fbi, pass it on to
29287         detect_type_change_from_memory_writes.
29288         (detect_type_change_ssa): Likewise.
29289         (aa_overwalked): Removed.
29290         (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
29291         accordingly, adjust to the neew AA limiting scheme.
29292         (parm_ref_data_preserved_p): Likewise.
29293         (ipa_compute_jump_functions_for_edge): Adjust call to
29294         get_dynamic_type.
29295         (ipa_analyze_call_uses): Likewise.
29296         (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
29297         (ipa_analyze_node): Initialize aa_walk_budget.
29298         (ipcp_transform_function): Likewise.
29299         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
29300         to get_dynamic_type.
29302 2019-01-19  Jakub Jelinek  <jakub@redhat.com>
29304         * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
29305         outside of #if CHECKING_P code.
29307 2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
29309         * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
29310         New function, split out from...
29311         (loop_versioning::analyze_stride): ...here.
29312         (loop_versioning::find_per_loop_multiplication): Use gassign.
29313         (loop_versioning::analyze_term_using_scevs): Return a success code.
29314         (loop_versioning::analyze_arbitrary_term): New function.
29315         (loop_versioning::analyze_address_fragment): Use
29316         analyze_arbitrary_term if all else fails.
29318 2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
29320         PR target/88892
29321         * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
29322         operands.
29324 2019-01-18  Richard Biener  <rguenther@suse.de>
29326         PR tree-optimization/88903
29327         * tree-vect-stmts.c (vectorizable_shift): Verify we see all
29328         scalar stmts a SLP shift amount is composed of when detecting
29329         shifts by scalars.
29331 2019-01-18  Richard Earnshaw  <rearnsha@arm.com>
29333         PR target/88799
29334         * config/arm/arm-cpus.in (mp): New feature.
29335         (sec): New feature.
29336         (fgroup ARMv7ve): Add mp and sec features.
29337         (arch armv7-a): Add options to allow mp and sec extensions.
29338         (cpu generic-armv7-a): Add options to allow mp and sec extensions.
29339         (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
29340         extenstions to the base architecture.
29341         (cpu cortex-a8): Add sec extension to the base architecture.
29342         (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
29343         * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
29344         variants down to the base v7-a varaint.
29345         * config/arm/t-multilib (v7_a_arch_variants): New variable.
29346         * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
29347         of permitted extensions for -march=armv7-a and for
29348         -mcpu=generic-armv7-a.
29350 2019-01-18  Martin Liska  <mliska@suse.cz>
29352         * params.def: Fix comment.
29353         * tree-profile.c (gimple_init_gcov_profiler): Bump function
29354         name.
29355         (gimple_gen_ic_func_profiler): Likewise.
29357 2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29359         * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
29360         * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
29361         and put in error checks for stack protector guard options.
29362         (aarch64_stack_protect_guard): New.
29363         (TARGET_STACK_PROTECT_GUARD): Define.
29364         * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
29365         (reg_stack_protect_address<mode>): New.
29366         (stack_protect_set): Adjust for SSP_GLOBAL.
29367         (stack_protect_test): Likewise.
29368         * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
29369         (-mstack-protector-guard): Likewise.
29370         (-mstack-protector-guard-offset): Likewise.
29372 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
29374         PR tree-optimization/86214
29375         * tree-inline.h (struct copy_body_data): Add
29376         add_clobbers_to_eh_landing_pads member.
29377         * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
29378         (copy_edges_for_bb): Call it if EH edge destination is <
29379         id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
29380         (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
29381         if flag_stack_reuse != SR_NONE and clear it afterwards.
29383 2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>
29385         PR target/85596
29386         * doc/install.texi (with-multilib-list): Document for aarch64.
29388 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
29390         PR target/88734
29391         * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
29392         (("..."))) with ("...").
29394 2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
29396         * doc/extend.texi (Built-in Functions for Memory Model Aware
29397         Atomic Operations): Document atomic fetch and nand.
29399 2019-01-18  Martin Liska  <mliska@suse.cz>
29400             Richard Biener  <rguenther@suse.de>
29402         PR middle-end/88587
29403         * cgraph.h (create_version_clone_with_body): Add new argument
29404         with attributes.
29405         * cgraphclones.c (cgraph_node::create_version_clone): Add
29406         DECL_ATTRIBUTES to a newly created decl.  And call
29407         valid_attribute_p so that proper cl_target_optimization_node
29408         is set for the newly created declaration.
29409         * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
29410         for declaration.
29411         (expand_target_clones): Do not call valid_attribute_p, it must
29412         be already done.
29413         * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
29414         vector types.
29416 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
29418         PR target/88734
29419         * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
29420         (("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
29421         arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
29423 2019-01-17  Martin Sebor  <msebor@redhat.com>
29425         PR middle-end/88273
29426         * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
29427         Handle anti-ranges the same as no range at all.
29429 2018-01-17  Steve Ellcey  <sellcey@cavium.com>
29431         * config/aarch64/aarch64.c (cgraph.h): New include.
29432         (intl.h): New include.
29433         (supported_simd_type): New function.
29434         (currently_supported_simd_type): Ditto.
29435         (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
29436         (aarch64_simd_clone_adjust): Ditto.
29437         (aarch64_simd_clone_usable): Ditto.
29438         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
29439         (TARGET_SIMD_CLONE_ADJUST): Ditto.
29440         (TARGET_SIMD_CLONE_USABLE): Ditto.
29441         * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
29442         * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
29443         call.
29445 2019-01-17  Martin Sebor  <msebor@redhat.com>
29447         PR tree-optimization/88800
29448         * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
29449         NO_WARNING bit here.  Avoid folding out-of-bounds calls.
29450         * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
29451         redundant argument.  Add new argument and issue diagnostics under
29452         its control.  Detect out-of-bounds access even with warnings
29453         disabled.
29454         (check_bounds_or_overlap): Change return type.  Add argument.
29455         (wrestrict_dom_walker::check_call): Adjust.
29456         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
29457         * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
29458         check_bounds_or_overlap's return value.
29459         (handle_builtin_stxncpy): Same.
29460         (handle_builtin_strcat): Same.
29462 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
29463             Kwok Cheung Yeung  <kcy@codesourcery.com>
29464             Julian Brown  <julian@codesourcery.com>
29465             Tom de Vries  <tom@codesourcery.com>
29467         * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
29469 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
29471         * doc/sourcebuild.texi: Document dg-require-effective-target
29472         llvm_binutils and offload_gcn.
29474 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
29475             Kwok Cheung Yeung  <kcy@codesourcery.com>
29476             Julian Brown  <julian@codesourcery.com>
29477             Tom de Vries  <tom@codesourcery.com>
29479         * doc/sourcebuild.texi: Document dg-required-effective-target
29480         exceptions.
29482 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
29483             Kwok Cheung Yeung  <kcy@codesourcery.com>
29484             Julian Brown  <julian@codesourcery.com>
29485             Tom de Vries  <tom@codesourcery.com>
29486             Jan Hubicka  <hubicka@ucw.cz>
29487             Martin Jambor  <mjambor@suse.cz>
29489         * config.gcc: Add amdgcn*-*-amdhsa configuration.
29490         * configure.ac: Check for dlopen.
29491         * configure: Regenerate.
29493 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
29494             Kwok Cheung Yeung  <kcy@codesourcery.com>
29495             Julian Brown  <julian@codesourcery.com>
29496             Tom de Vries  <tom@codesourcery.com>
29497             Jan Hubicka  <hubicka@ucw.cz>
29498             Martin Jambor  <mjambor@suse.cz>
29500         * common/config/gcn/gcn-common.c: New file.
29501         * config/gcn/driver-gcn.c: New file.
29502         * config/gcn/gcn-builtins.def: New file.
29503         * config/gcn/gcn-hsa.h: New file.
29504         * config/gcn/gcn-modes.def: New file.
29505         * config/gcn/gcn-opts.h: New file.
29506         * config/gcn/gcn-passes.def: New file.
29507         * config/gcn/gcn-protos.h: New file.
29508         * config/gcn/gcn-run.c: New file.
29509         * config/gcn/gcn-tree.c: New file.
29510         * config/gcn/gcn.c: New file.
29511         * config/gcn/gcn.h: New file.
29512         * config/gcn/gcn.opt: New file.
29513         * config/gcn/t-gcn-hsa: New file.
29515 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
29516             Kwok Cheung Yeung  <kcy@codesourcery.com>
29517             Julian Brown  <julian@codesourcery.com>
29518             Tom de Vries  <tom@codesourcery.com>
29519             Jan Hubicka  <hubicka@ucw.cz>
29520             Martin Jambor  <mjambor@suse.cz>
29522         * config/gcn/constraints.md: New file.
29523         * config/gcn/gcn-valu.md: New file.
29524         * config/gcn/gcn.md: New file.
29525         * config/gcn/predicates.md: New file.
29527 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
29529         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
29530         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
29531         (stmt_uses_0_or_null_in_undefined_way): Likewise.
29532         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
29534 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
29536         PR target/88851
29537         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
29538         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
29539         it and document registers.
29541 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29543         * config/aarch64/aarch64.c (ares_tunings): Define.
29544         * config/aarch64/aarch64-cores.def (ares): Use the above.
29546 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
29548         PR target/88794
29549         Revert:
29550         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
29552         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
29553         (_mm512_fixupimm_round_pd): Update parameters and builtin.
29554         (_mm512_maskz_fixupimm_round_pd): Ditto.
29555         (_mm512_fixupimm_round_ps): Ditto.
29556         (_mm512_maskz_fixupimm_round_ps): Ditto.
29557         (_mm_fixupimm_round_sd): Ditto.
29558         (_mm_maskz_fixupimm_round_sd): Ditto.
29559         (_mm_fixupimm_round_ss): Ditto.
29560         (_mm_maskz_fixupimm_round_ss): Ditto.
29561         (_mm512_fixupimm_pd): Ditto.
29562         (_mm512_maskz_fixupimm_pd): Ditto.
29563         (_mm512_fixupimm_ps): Ditto.
29564         (_mm512_maskz_fixupimm_ps): Ditto.
29565         (_mm_fixupimm_sd): Ditto.
29566         (_mm_maskz_fixupimm_sd): Ditto.
29567         (_mm_fixupimm_ss): Ditto.
29568         (_mm_maskz_fixupimm_ss): Ditto.
29569         (_mm512_mask_fixupimm_round_pd): Update builtin.
29570         (_mm512_mask_fixupimm_round_ps): Ditto.
29571         (_mm_mask_fixupimm_round_sd): Ditto.
29572         (_mm_mask_fixupimm_round_ss): Ditto.
29573         (_mm512_mask_fixupimm_pd): Ditto.
29574         (_mm512_mask_fixupimm_ps): Ditto.
29575         (_mm_mask_fixupimm_sd): Ditto.
29576         (_mm_mask_fixupimm_ss): Ditto.
29577         * config/i386/avx512vlintrin.h:
29578         (_mm256_fixupimm_pd): Update parameters and builtin.
29579         (_mm256_maskz_fixupimm_pd): Ditto.
29580         (_mm256_fixupimm_ps): Ditto.
29581         (_mm256_maskz_fixupimm_ps): Ditto.
29582         (_mm_fixupimm_pd): Ditto.
29583         (_mm_maskz_fixupimm_pd): Ditto.
29584         (_mm_fixupimm_ps): Ditto.
29585         (_mm_maskz_fixupimm_ps): Ditto.
29586         (_mm256_mask_fixupimm_pd): Update builtin.
29587         (_mm256_mask_fixupimm_ps): Ditto.
29588         (_mm_mask_fixupimm_pd): Ditto.
29589         (_mm_mask_fixupimm_ps): Ditto.
29590         * config/i386/i386-builtin-types.def: Add new types and remove
29591         useless ones.
29592         * config/i386/i386-builtin.def: Update builtin definitions.
29593         * config/i386/i386.c: Handle new builtin types and remove useless ones.
29594         * config/i386/sse.md: Update VFIXUPIMM* patterns.
29595         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
29596         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
29597         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
29598         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
29599         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
29600         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
29601         * config/i386/subst.md:
29602         (round_saeonly_sd_mask_operand4): Add new subst_attr.
29603         (round_saeonly_sd_mask_op4): Ditto.
29604         (round_saeonly_expand_operand5): Ditto.
29605         (round_saeonly_expand): Update.
29607 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
29609         PR target/88794
29610         Revert:
29611         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
29613         * config/i386/sse.md: Combine VFIXUPIMM* patterns
29614         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
29615         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
29616         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
29617         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
29618         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
29619         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
29621 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
29623         PR target/88794
29624         Revert:
29625         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
29627         PR target/88489
29628         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
29629         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
29630         instead of UNSPEC_FIXUPIMM.
29632 2019-01-17  Richard Biener  <rguenther@suse.de>
29634         PR lto/86736
29635         * dwarf2out.c (want_pubnames): Never generate pubnames sections
29636         and friends for the LTO part of debug info.
29638 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
29640         PR tree-optimization/86214
29641         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
29642         if x == y.
29644         PR rtl-optimization/88870
29645         * dce.c (deletable_insn_p): Never delete const/pure calls that can
29646         throw if we can't alter the cfg or delete dead exceptions.
29647         (mark_insn): Don't call find_call_stack_args for such calls.
29649 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
29651         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
29652         prototypes for vec_st.
29653         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
29654         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
29655         mainly on signed/unsigned long long and double.
29657 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
29659         PR target/88861
29660         * combine.c (delete_noop_moves): Convert to "bool" return,
29661         returning true if any edges are eliminated.
29662         (combine_instructions): Also return true if delete_noop_moves
29663         returns true.
29665 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
29667         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
29668         correct max nunits for endian swap.
29669         (aarch64_expand_fcmla_builtin): Correct subreg code.
29670         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
29671         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
29672         lane endianness.
29674 2019-01-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29676         * config/alpha/alpha.c (alpha_gimplify_va_arg):
29677         Handle split indirect COMPLEX_TYPE arguments.
29679 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
29681         PR target/86891
29682         * config/aarch64/aarch64-modes.def: Add comment about how the carry
29683         bit is set by add and compare.
29684         (CC_ADC): New CC_MODE.
29685         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
29686         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
29687         comparison.  Add detection for CC_ADCmode.
29688         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
29689         CC_ADCmode.
29690         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
29691         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
29692         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
29693         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
29694         to eliminate the need for zero-extending the operands.
29695         (add<mode>3_compareC_imm): Delete.  Merge into ...
29696         (add<mode>3_compareC): ... this.  Restructure the comparison to
29697         eliminate the need for zero-extending the operands.
29698         (add<mode>3_carryin): Use LTU for the overflow detection.
29699         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
29700         Reexpress comparison for overflow.
29701         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
29702         (add<mode>3_carryinC): Likewise.
29703         (add<mode>3_carryinV): Use LTU for carry between partials.
29704         * config/aarch64/predicates.md (aarch64_carry_operation): Update
29705         handling of CC_Cmode and add CC_ADCmode.
29706         (aarch64_borrow_operation): Likewise.
29708 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
29710         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
29711         Remove patternmode.
29712         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
29713         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
29714         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
29715         Remove endianness conversion.
29717 2019-01-16  Martin Liska  <mliska@suse.cz>
29719         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
29720         for GCC driver.
29721         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
29722         a new argument.
29723         * gcc.c (add_sysrooted_hdrs_prefix): New function.
29724         (path_prefix_reset): Move up in the source file.
29725         (find_fortran_preinclude_file): Make complex search for the
29726         fortran header files.
29728 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
29730         * godump.c (go_output_typedef): When outputting a typedef, refer
29731         to the underlying type by its name and not its structure.
29733 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
29735         PR c++/88795
29736         * tree.c (build_function_type): Assert that arg_types is not
29737         error_mark_node.
29739 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
29741         PR inline-asm/52813
29742         * doc/extend.texi: Document that listing the stack pointer in the
29743         clobber list of an asm is a deprecated feature.
29744         * common.opt (Wdeprecated): Moved from c-family/c.opt.
29745         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
29746         warning instead of an error for clobbers of the stack pointer.
29747         Add a note explaining why.
29749 2019-01-15  Richard Biener  <rguenther@suse.de>
29751         PR debug/88046
29752         * dwarf2out.c (gen_member_die): Do not generate inheritance
29753         DIEs late.
29755 2019-01-15  Richard Biener  <rguenther@suse.de>
29757         PR tree-optimization/88855
29758         * tree-if-conv.c (combine_blocks): Collect
29759         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
29761 2019-01-15  Tom de Vries  <tdevries@suse.de>
29763         PR target/80547
29764         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
29765         lhs == NULL_TREE for gang-level reduction.
29767 2019-01-15  Richard Biener  <rguenther@suse.de>
29768             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
29770         PR ipa/88788
29771         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
29772         return true if SSA_NAME is already marked in visited bitmap.
29773         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
29775 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
29777         PR tree-optimization/88775
29778         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
29779         equal == 0 equality pointer comparisons some more if compared in
29780         integral types and either one points to an automatic var and the
29781         other to a global, or we can prove at least one points to the middle
29782         or both point to start or both point to end.
29784 2019-01-14  Andi Kleen  <ak@linux.intel.com>
29786         * Makefile.in: Lower autofdo sampling rate by 10x.
29787         * Makefile.tpl: Dito.
29789 2019-01-14  Tom Honermann  <tom@honermann.net>
29791         * defaults.h: Define CHAR8_TYPE.
29793 2019-01-14  Martin Sebor  <msebor@redhat.com>
29795         PR target/88638
29796         * doc/extend.texi (Darwin Format Checks): Clarify.
29798 2019-01-14  Richard Biener  <rguenther@suse.de>
29800         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
29801         whether we are in (simplify ...) or (match ...) context.
29803 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
29805         PR rtl-optimization/88796
29806         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
29807         * cfgexpand.c (stack_protect_prologue): Initialize
29808         crtl->stack_protect_guard_decl.
29809         * function.c (stack_protect_epilogue): Use it instead of calling
29810         targetm.stack_protect_guard again.
29811         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
29812         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
29813         crtl->stack_protect_guard_decl.
29814         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
29815         on the returned MEM_EXPR.
29817 2019-01-12  Tom de Vries  <tdevries@suse.de>
29819         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
29820         vector length using -fopenacc-dim.
29822 2019-01-12  Tom de Vries  <tdevries@suse.de>
29824         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
29825         lengths into account.
29827 2019-01-12  Svante Signell  <svante.signell@gmail.com>
29829         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
29830         (TARGET_CAN_SPLIT_STACK): Define.
29831         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
29833 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
29835         * params.def (inline-unit-growth): Set to 40.
29837 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
29839         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
29841 2019-01-12  Tom de Vries  <tdevries@suse.de>
29843         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
29844         region calling vector-partitionable routine, set default_vector_length
29845         to WARP_SIZE.
29847 2019-01-12  Tom de Vries  <tdevries@suse.de>
29849         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
29850         variable default_vector_length.
29852 2019-01-12  Tom de Vries  <tdevries@suse.de>
29854         PR middle-end/88703
29855         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
29856         from oacc_default_dims, as oacc_validate_dims would do it, and apply
29857         dimensions limits.
29859 2019-01-12  Tom de Vries  <tdevries@suse.de>
29861         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
29862         (nvptx_goacc_validate_dims): Add used parameter.
29863         * doc/tm.texi: Regenerate.
29864         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
29865         argument to call to targetm.goacc.validate_dims.
29866         (default_goacc_validate_dims): Add used
29867         parameter.
29868         * target.def (validate_dims): Add used parameter in DEFHOOK.
29869         * targhooks.h (default_goacc_validate_dims): Add used parameter.
29871 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
29873         PR middle-end/85956
29874         PR lto/88733
29875         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
29876         field.
29877         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
29878         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
29879         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
29880         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
29882 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
29884         PR rtl-optimization/87305
29885         * lra-assigns.c
29886         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
29887         for little endian pseudos used as paradoxical subreg.
29889 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
29891         PR tree-optimization/88693
29892         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
29893         for STRING_CSTs that don't contain any NUL characters in the first
29894         TREE_STRING_LENGTH bytes.
29896 2019-01-11  Alan Modra  <amodra@gmail.com>
29898         PR 88777
29899         PR 88614
29900         * genattrtab.c (min_fn): Don't translate values.
29901         (min_attr_value): Return INT_MAX when the value can't be calculated.
29902         Return minimum among any values that can be calculated.
29903         (max_attr_value): Adjust.
29905 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
29907         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
29909 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
29911         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
29912         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
29913         (aarch64_return_call_with_max_clobbers): New function.
29914         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
29915         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
29916         argument.
29917         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
29918         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
29919         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
29920         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
29921         * cselib.c (cselib_process_insn): Add argument to
29922         targetm.hard_regno_call_part_clobbered call.
29923         * ira-conflicts.c (ira_build_conflicts): Ditto.
29924         * ira-costs.c (ira_tune_allocno_costs): Ditto.
29925         * lra-constraints.c (inherit_reload_reg): Ditto.
29926         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
29927         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
29928         argument.  Call targetm.return_call_with_max_clobbers.
29929         Add argument to targetm.hard_regno_call_part_clobbered call.
29930         (calls_have_same_clobbers_p): New function.
29931         (process_bb_lives): Add call_insn and last_call_insn variables.
29932         Pass call_insn to check_pseudos_live_through_calls.
29933         Modify if stmt to check targetm.return_call_with_max_clobbers.
29934         Update setting of flush variable.
29935         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
29936         to false.
29937         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
29938         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
29939         targetm.hard_regno_call_part_clobbered call.
29940         * reginfo.c (choose_hard_reg_mode): Ditto.
29941         * regrename.c (check_new_reg_p): Ditto.
29942         * reload.c (find_equiv_reg): Ditto.
29943         * reload1.c (emit_reload_insns): Ditto.
29944         * sched-deps.c (deps_analyze_insn): Ditto.
29945         * sel-sched.c (init_regs_for_mode): Ditto.
29946         (mark_unavailable_hard_regs): Ditto.
29947         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
29948         * target.def (hard_regno_call_part_clobbered): Add insn argument.
29949         (return_call_with_max_clobbers): New target function.
29950         * doc/tm.texi: Regenerate.
29951         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
29952         * hooks.c (hook_bool_uint_mode_false): Change to
29953         hook_bool_insn_uint_mode_false.
29954         * hooks.h (hook_bool_uint_mode_false): Ditto.
29956 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
29958         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
29959         (aarch64_remove_extra_call_preserved_regs): New function.
29960         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
29961         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
29962         * doc/tm.texi: Regenerate.
29963         * final.c (get_call_reg_set_usage): Call new hook.
29964         * target.def (remove_extra_call_preserved_regs): New hook.
29965         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
29966         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
29968 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
29970         PR bootstrap/88714
29971         * passes.c (finish_optimization_passes): Call print_combine_total_stats
29972         inside of pass_combine_1 dump rather than pass_profile_1.
29974 2019-01-11  Tom de Vries  <tdevries@suse.de>
29976         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
29977         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
29978         (PTX_NUM_PER_WORKER_BARRIERS): Define.
29979         (nvptx_apply_dim_limits): Prevent vector_length 64 and
29980         num_workers 16.
29982 2019-01-11  Tom de Vries  <tdevries@suse.de>
29984         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
29986 2019-01-11  Jan Beulich  <jbeulich@suse.com>
29988         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
29989         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
29990         sse2_cvtsi2sd): Add {l}.
29991         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
29992         syntax.
29994 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
29996         PR target/88785
29997         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
29998         define_expand.
29999         (*float<floatunssuffix>v2div2sf2): New define_insn.
30000         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
30001         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
30002         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
30003         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
30004         match_operands with "const0_operand" "C".
30006 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
30008         * config/aarch64/aarch64-builtins.c
30009         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
30010         (aarch64_init_simd_builtins): ...Here
30012 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
30014         PR rtl-optimization/87305
30015         * lra-assigns.c
30016         (setup_live_pseudos_and_spill_after_risky_transforms): Check
30017         allocation for big endian pseudos used as paradoxical subregs and
30018         spill them if it is wrong.
30019         * lra-constraints.c (lra_constraints): Add a comment.
30021 2019-01-10  Richard Biener  <rguenther@suse.de>
30023         PR tree-optimization/88792
30024         * tree-ssa-pre.c (get_representative_for): Do not return a
30025         value-number here.
30027 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
30029         PR middle-end/84877
30030         PR bootstrap/88450
30031         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
30032         (assign_parm_setup_block): Do the argument slot realignment here
30033         instead.
30035 2019-01-10  Stefan Agner  <stefan@agner.ch>
30037         PR target/88648
30038         * config/arm/arm.c (arm_option_override_internal): Force
30039         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
30041 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
30043         PR c/88568
30044         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
30045         DECL_EXTERNAL.
30047 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
30049         * config/arm/arm-builtins.c
30050         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
30051         (MAC_LANE_PAIR_QUALIFIERS): New.
30052         (arm_expand_builtin_args): Use it.
30053         (arm_expand_builtin_1): Likewise.
30054         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
30055         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
30056         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
30057         * config/arm/arm_neon.h:
30058         (vcadd_rot90_f16): New.
30059         (vcaddq_rot90_f16): New.
30060         (vcadd_rot270_f16): New.
30061         (vcaddq_rot270_f16): New.
30062         (vcmla_f16): New.
30063         (vcmlaq_f16): New.
30064         (vcmla_lane_f16): New.
30065         (vcmla_laneq_f16): New.
30066         (vcmlaq_lane_f16): New.
30067         (vcmlaq_laneq_f16): New.
30068         (vcmla_rot90_f16): New.
30069         (vcmlaq_rot90_f16): New.
30070         (vcmla_rot90_lane_f16): New.
30071         (vcmla_rot90_laneq_f16): New.
30072         (vcmlaq_rot90_lane_f16): New.
30073         (vcmlaq_rot90_laneq_f16): New.
30074         (vcmla_rot180_f16): New.
30075         (vcmlaq_rot180_f16): New.
30076         (vcmla_rot180_lane_f16): New.
30077         (vcmla_rot180_laneq_f16): New.
30078         (vcmlaq_rot180_lane_f16): New.
30079         (vcmlaq_rot180_laneq_f16): New.
30080         (vcmla_rot270_f16): New.
30081         (vcmlaq_rot270_f16): New.
30082         (vcmla_rot270_lane_f16): New.
30083         (vcmla_rot270_laneq_f16): New.
30084         (vcmlaq_rot270_lane_f16): New.
30085         (vcmlaq_rot270_laneq_f16): New.
30086         (vcadd_rot90_f32): New.
30087         (vcaddq_rot90_f32): New.
30088         (vcadd_rot270_f32): New.
30089         (vcaddq_rot270_f32): New.
30090         (vcmla_f32): New.
30091         (vcmlaq_f32): New.
30092         (vcmla_lane_f32): New.
30093         (vcmla_laneq_f32): New.
30094         (vcmlaq_lane_f32): New.
30095         (vcmlaq_laneq_f32): New.
30096         (vcmla_rot90_f32): New.
30097         (vcmlaq_rot90_f32): New.
30098         (vcmla_rot90_lane_f32): New.
30099         (vcmla_rot90_laneq_f32): New.
30100         (vcmlaq_rot90_lane_f32): New.
30101         (vcmlaq_rot90_laneq_f32): New.
30102         (vcmla_rot180_f32): New.
30103         (vcmlaq_rot180_f32): New.
30104         (vcmla_rot180_lane_f32): New.
30105         (vcmla_rot180_laneq_f32): New.
30106         (vcmlaq_rot180_lane_f32): New.
30107         (vcmlaq_rot180_laneq_f32): New.
30108         (vcmla_rot270_f32): New.
30109         (vcmlaq_rot270_f32): New.
30110         (vcmla_rot270_lane_f32): New.
30111         (vcmla_rot270_laneq_f32): New.
30112         (vcmlaq_rot270_lane_f32): New.
30113         (vcmlaq_rot270_laneq_f32): New.
30114         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
30115         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
30116         vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
30117         vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
30118         vcmlaq_lane270): New.
30119         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
30120         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
30121         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
30122         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
30123         (arm_option_reconfigure_globals): Use them.
30124         * config/arm/iterators.md (VDF, VQ_HSF): New.
30125         (VCADD, VCMLA): New.
30126         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
30127         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
30128         New.
30129         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
30130         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
30132 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
30134         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
30135         Add qualifier_lane_pair_index.
30136         (emit-rtl.h): Include.
30137         (TYPES_QUADOP_LANE_PAIR): New.
30138         (aarch64_simd_expand_args): Use it.
30139         (aarch64_simd_expand_builtin): Likewise.
30140         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
30141         New.
30142         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
30143         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
30144         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
30145         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
30146         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
30147         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
30148         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
30149         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
30150         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
30151         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
30152         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
30153         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
30154         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
30155         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
30156         Add __ARM_FEATURE_COMPLEX.
30157         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
30158         fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
30159         fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
30160         fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
30161         fcmlaq_lane270): New.
30162         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
30163         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
30164         aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
30165         * config/aarch64/arm_neon.h:
30166         (vcadd_rot90_f16): New.
30167         (vcaddq_rot90_f16): New.
30168         (vcadd_rot270_f16): New.
30169         (vcaddq_rot270_f16): New.
30170         (vcmla_f16): New.
30171         (vcmlaq_f16): New.
30172         (vcmla_lane_f16): New.
30173         (vcmla_laneq_f16): New.
30174         (vcmlaq_lane_f16): New.
30175         (vcmlaq_rot90_lane_f16): New.
30176         (vcmla_rot90_laneq_f16): New.
30177         (vcmla_rot90_lane_f16): New.
30178         (vcmlaq_rot90_f16): New.
30179         (vcmla_rot90_f16): New.
30180         (vcmlaq_laneq_f16): New.
30181         (vcmla_rot180_laneq_f16): New.
30182         (vcmla_rot180_lane_f16): New.
30183         (vcmlaq_rot180_f16): New.
30184         (vcmla_rot180_f16): New.
30185         (vcmlaq_rot90_laneq_f16): New.
30186         (vcmlaq_rot270_laneq_f16): New.
30187         (vcmlaq_rot270_lane_f16): New.
30188         (vcmla_rot270_laneq_f16): New.
30189         (vcmlaq_rot270_f16): New.
30190         (vcmla_rot270_f16): New.
30191         (vcmlaq_rot180_laneq_f16): New.
30192         (vcmlaq_rot180_lane_f16): New.
30193         (vcmla_rot270_lane_f16): New.
30194         (vcadd_rot90_f32): New.
30195         (vcaddq_rot90_f32): New.
30196         (vcaddq_rot90_f64): New.
30197         (vcadd_rot270_f32): New.
30198         (vcaddq_rot270_f32): New.
30199         (vcaddq_rot270_f64): New.
30200         (vcmla_f32): New.
30201         (vcmlaq_f32): New.
30202         (vcmlaq_f64): New.
30203         (vcmla_lane_f32): New.
30204         (vcmla_laneq_f32): New.
30205         (vcmlaq_lane_f32): New.
30206         (vcmlaq_laneq_f32): New.
30207         (vcmla_rot90_f32): New.
30208         (vcmlaq_rot90_f32): New.
30209         (vcmlaq_rot90_f64): New.
30210         (vcmla_rot90_lane_f32): New.
30211         (vcmla_rot90_laneq_f32): New.
30212         (vcmlaq_rot90_lane_f32): New.
30213         (vcmlaq_rot90_laneq_f32): New.
30214         (vcmla_rot180_f32): New.
30215         (vcmlaq_rot180_f32): New.
30216         (vcmlaq_rot180_f64): New.
30217         (vcmla_rot180_lane_f32): New.
30218         (vcmla_rot180_laneq_f32): New.
30219         (vcmlaq_rot180_lane_f32): New.
30220         (vcmlaq_rot180_laneq_f32): New.
30221         (vcmla_rot270_f32): New.
30222         (vcmlaq_rot270_f32): New.
30223         (vcmlaq_rot270_f64): New.
30224         (vcmla_rot270_lane_f32): New.
30225         (vcmla_rot270_laneq_f32): New.
30226         (vcmlaq_rot270_lane_f32): New.
30227         (vcmlaq_rot270_laneq_f32): New.
30228         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
30229         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
30230         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
30231         (FCADD, FCMLA): New.
30232         (rot): New.
30233         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
30235 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
30237         PR other/16615
30239         * config/pa/pa.c: Change "can not" to "cannot".
30240         * gimple-ssa-evrp-analyze.c: Likewise.
30241         * ipa-icf.c: Likewise.
30242         * ipa-polymorphic-call.c: Likewise.
30243         * ipa-pure-const.c: Likewise.
30244         * lra-constraints.c: Likewise.
30245         * lra-remat.c: Likewise.
30246         * reload1.c: Likewise.
30247         * reorg.c: Likewise.
30248         * tree-ssa-uninit.c: Likewise.
30250 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
30252         PR other/16615
30254         * Makefile.in: Mechanically replace "can not" with "cannot".
30255         * alias.c: Likewise.
30256         * builtins.c: Likewise.
30257         * calls.c: Likewise.
30258         * cgraph.c: Likewise.
30259         * cgraph.h: Likewise.
30260         * cgraphclones.c: Likewise.
30261         * cgraphunit.c: Likewise.
30262         * combine-stack-adj.c: Likewise.
30263         * combine.c: Likewise.
30264         * common/config/i386/i386-common.c: Likewise.
30265         * config/aarch64/aarch64.c: Likewise.
30266         * config/alpha/sync.md: Likewise.
30267         * config/arc/arc.c: Likewise.
30268         * config/arc/predicates.md: Likewise.
30269         * config/arm/arm-c.c: Likewise.
30270         * config/arm/arm.c: Likewise.
30271         * config/arm/arm.h: Likewise.
30272         * config/arm/arm.md: Likewise.
30273         * config/arm/cortex-r4f.md: Likewise.
30274         * config/csky/csky.c: Likewise.
30275         * config/csky/csky.h: Likewise.
30276         * config/darwin-f.c: Likewise.
30277         * config/epiphany/epiphany.md: Likewise.
30278         * config/i386/i386.c: Likewise.
30279         * config/i386/sol2.h: Likewise.
30280         * config/m68k/m68k.c: Likewise.
30281         * config/mcore/mcore.h: Likewise.
30282         * config/microblaze/microblaze.md: Likewise.
30283         * config/mips/20kc.md: Likewise.
30284         * config/mips/sb1.md: Likewise.
30285         * config/nds32/nds32.c: Likewise.
30286         * config/nds32/predicates.md: Likewise.
30287         * config/pa/pa.c: Likewise.
30288         * config/rs6000/e300c2c3.md: Likewise.
30289         * config/rs6000/rs6000.c: Likewise.
30290         * config/s390/s390.h: Likewise.
30291         * config/sh/sh.c: Likewise.
30292         * config/sh/sh.md: Likewise.
30293         * config/spu/vmx2spu.h: Likewise.
30294         * cprop.c: Likewise.
30295         * dbxout.c: Likewise.
30296         * df-scan.c: Likewise.
30297         * doc/cfg.texi: Likewise.
30298         * doc/extend.texi: Likewise.
30299         * doc/fragments.texi: Likewise.
30300         * doc/gty.texi: Likewise.
30301         * doc/invoke.texi: Likewise.
30302         * doc/lto.texi: Likewise.
30303         * doc/md.texi: Likewise.
30304         * doc/objc.texi: Likewise.
30305         * doc/rtl.texi: Likewise.
30306         * doc/tm.texi: Likewise.
30307         * dse.c: Likewise.
30308         * emit-rtl.c: Likewise.
30309         * emit-rtl.h: Likewise.
30310         * except.c: Likewise.
30311         * expmed.c: Likewise.
30312         * expr.c: Likewise.
30313         * fold-const.c: Likewise.
30314         * genautomata.c: Likewise.
30315         * gimple-fold.c: Likewise.
30316         * hard-reg-set.h: Likewise.
30317         * ifcvt.c: Likewise.
30318         * ipa-comdats.c: Likewise.
30319         * ipa-cp.c: Likewise.
30320         * ipa-devirt.c: Likewise.
30321         * ipa-fnsummary.c: Likewise.
30322         * ipa-icf.c: Likewise.
30323         * ipa-inline-transform.c: Likewise.
30324         * ipa-inline.c: Likewise.
30325         * ipa-polymorphic-call.c: Likewise.
30326         * ipa-profile.c: Likewise.
30327         * ipa-prop.c: Likewise.
30328         * ipa-pure-const.c: Likewise.
30329         * ipa-reference.c: Likewise.
30330         * ipa-split.c: Likewise.
30331         * ipa-visibility.c: Likewise.
30332         * ipa.c: Likewise.
30333         * ira-build.c: Likewise.
30334         * ira-color.c: Likewise.
30335         * ira-conflicts.c: Likewise.
30336         * ira-costs.c: Likewise.
30337         * ira-int.h: Likewise.
30338         * ira-lives.c: Likewise.
30339         * ira.c: Likewise.
30340         * ira.h: Likewise.
30341         * loop-invariant.c: Likewise.
30342         * loop-unroll.c: Likewise.
30343         * lower-subreg.c: Likewise.
30344         * lra-assigns.c: Likewise.
30345         * lra-constraints.c: Likewise.
30346         * lra-eliminations.c: Likewise.
30347         * lra-lives.c: Likewise.
30348         * lra-remat.c: Likewise.
30349         * lra-spills.c: Likewise.
30350         * lra.c: Likewise.
30351         * lto-cgraph.c: Likewise.
30352         * lto-streamer-out.c: Likewise.
30353         * postreload-gcse.c: Likewise.
30354         * predict.c: Likewise.
30355         * profile-count.h: Likewise.
30356         * profile.c: Likewise.
30357         * recog.c: Likewise.
30358         * ree.c: Likewise.
30359         * reload.c: Likewise.
30360         * reload1.c: Likewise.
30361         * reorg.c: Likewise.
30362         * resource.c: Likewise.
30363         * rtl.def: Likewise.
30364         * rtl.h: Likewise.
30365         * rtlanal.c: Likewise.
30366         * sched-deps.c: Likewise.
30367         * sched-ebb.c: Likewise.
30368         * sched-rgn.c: Likewise.
30369         * sel-sched-ir.c: Likewise.
30370         * sel-sched.c: Likewise.
30371         * shrink-wrap.c: Likewise.
30372         * simplify-rtx.c: Likewise.
30373         * symtab.c: Likewise.
30374         * target.def: Likewise.
30375         * toplev.c: Likewise.
30376         * tree-call-cdce.c: Likewise.
30377         * tree-cfg.c: Likewise.
30378         * tree-complex.c: Likewise.
30379         * tree-core.h: Likewise.
30380         * tree-eh.c: Likewise.
30381         * tree-inline.c: Likewise.
30382         * tree-loop-distribution.c: Likewise.
30383         * tree-nrv.c: Likewise.
30384         * tree-profile.c: Likewise.
30385         * tree-sra.c: Likewise.
30386         * tree-ssa-alias.c: Likewise.
30387         * tree-ssa-dce.c: Likewise.
30388         * tree-ssa-dom.c: Likewise.
30389         * tree-ssa-forwprop.c: Likewise.
30390         * tree-ssa-loop-im.c: Likewise.
30391         * tree-ssa-loop-ivcanon.c: Likewise.
30392         * tree-ssa-loop-ivopts.c: Likewise.
30393         * tree-ssa-loop-niter.c: Likewise.
30394         * tree-ssa-phionlycprop.c: Likewise.
30395         * tree-ssa-phiopt.c: Likewise.
30396         * tree-ssa-propagate.c: Likewise.
30397         * tree-ssa-threadedge.c: Likewise.
30398         * tree-ssa-threadupdate.c: Likewise.
30399         * tree-ssa-uninit.c: Likewise.
30400         * tree-ssanames.c: Likewise.
30401         * tree-streamer-out.c: Likewise.
30402         * tree.c: Likewise.
30403         * tree.h: Likewise.
30404         * vr-values.c: Likewise.
30406 2019-01-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
30408         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
30409         (ix86_split_xorsign): Ditto.
30410         * config/i386/i386.c (ix86_expand_xorsign): New function.
30411         (ix86_split_xorsign): Ditto.
30412         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
30413         (xorsign<mode>3): New expander.
30414         (xorsign<mode>3_1): New insn_and_split pattern.
30415         * config/i386/sse.md (xorsign<mode>3): New expander.
30417 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
30419         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
30420         (*tablejump_sp64): Likewise.
30421         (*tablejump<P:mode>): ...this.
30422         (*call_address_sp32): Merge into...
30423         (*call_address_sp64): Likewise.
30424         (*call_address<P:mode>): ...this.
30425         (*call_symbolic_sp32): Merge into...
30426         (*call_symbolic_sp64): Likewise.
30427         (*call_symbolic<P:mode>): ...this.
30428         (call_value): Remove constraint and add predicate.
30429         (*call_value_address_sp32): Merge into...
30430         (*call_value_address_sp64): Likewise.
30431         (*call_value_address<P:mode>): ...this.
30432         (*call_value_symbolic_sp32): Merge into...
30433         (*call_value_symbolic_sp64): Likewise.
30434         (*call_value_symbolic<P:mode>): ...this.
30435         (*sibcall_symbolic_sp32): Merge into...
30436         (*sibcall_symbolic_sp64): Likewise.
30437         (*sibcall_symbolic<P:mode>): ...this.
30438         (sibcall_value): Remove constraint and add predicate.
30439         (*sibcall_value_symbolic_sp32): Merge into...
30440         (*sibcall_value_symbolic_sp64): Likewise.
30441         (*sibcall_value_symbolic<P:mode>): ...this.
30442         (window_save): Minor tweak.
30443         (*branch_sp32): Merge into...
30444         (*branch_sp64): Likewise.
30445         (*branch<P:mode>): ...this.
30447 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
30448             James Clarke  <jrtc27@jrtc27.com>
30450         PR target/84010
30451         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
30452         consistently in TLS address generation and adjust code to the renaming
30453         of patterns.  Mark calls to __tls_get_addr as const.
30454         * config/sparc/sparc.md (tgd_hi22): Turn into...
30455         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
30456         (tgd_lo10): Turn into...
30457         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
30458         (tgd_add32): Merge into...
30459         (tgd_add64): Likewise.
30460         (tgd_add<P:mode>): ...this and use Pmode throughout.
30461         (tldm_hi22): Turn into...
30462         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
30463         (tldm_lo10): Turn into...
30464         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
30465         (tldm_add32): Merge into...
30466         (tldm_add64): Likewise.
30467         (tldm_add<P:mode>): ...this and use Pmode throughout.
30468         (tldm_call32): Merge into...
30469         (tldm_call64): Likewise.
30470         (tldm_call<P:mode>): ...this and use Pmode throughout.
30471         (tldo_hix22): Turn into...
30472         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
30473         (tldo_lox10): Turn into...
30474         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
30475         (tldo_add32): Merge into...
30476         (tldo_add64): Likewise.
30477         (tldo_add<P:mode>): ...this and use Pmode throughout.
30478         (tie_hi22): Turn into...
30479         (tie_hi22<P:mode>): ...this and use Pmode throughout.
30480         (tie_lo10): Turn into...
30481         (tie_lo10<P:mode>): ...this and use Pmode throughout.
30482         (tie_ld64): Use DImode throughout.
30483         (tie_add32): Merge into...
30484         (tie_add64): Likewise.
30485         (tie_add<P:mode>): ...this and use Pmode throughout.
30486         (tle_hix22_sp32): Merge into...
30487         (tle_hix22_sp64): Likewise.
30488         (tle_hix22<P:mode>): ...this and use Pmode throughout.
30489         (tle_lox22_sp32): Merge into...
30490         (tle_lox22_sp64): Likewise.
30491         (tle_lox22<P:mode>): ...this and use Pmode throughout.
30492         (*tldo_ldub_sp32): Merge into...
30493         (*tldo_ldub_sp64): Likewise.
30494         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
30495         (*tldo_ldub1_sp32): Merge into...
30496         (*tldo_ldub1_sp64): Likewise.
30497         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
30498         (*tldo_ldub2_sp32): Merge into...
30499         (*tldo_ldub2_sp64): Likewise.
30500         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
30501         (*tldo_ldsb1_sp32): Merge into...
30502         (*tldo_ldsb1_sp64): Likewise.
30503         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
30504         (*tldo_ldsb2_sp32): Merge into...
30505         (*tldo_ldsb2_sp64): Likewise.
30506         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
30507         (*tldo_ldub3_sp64): Use DImode throughout.
30508         (*tldo_ldsb3_sp64): Likewise.
30509         (*tldo_lduh_sp32): Merge into...
30510         (*tldo_lduh_sp64): Likewise.
30511         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
30512         (*tldo_lduh1_sp32): Merge into...
30513         (*tldo_lduh1_sp64): Likewise.
30514         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
30515         (*tldo_ldsh1_sp32): Merge into...
30516         (*tldo_ldsh1_sp64): Likewise.
30517         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
30518         (*tldo_lduh2_sp64): Use DImode throughout.
30519         (*tldo_ldsh2_sp64): Likewise.
30520         (*tldo_lduw_sp32): Merge into...
30521         (*tldo_lduw_sp64): Likewise.
30522         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
30523         (*tldo_lduw1_sp64): Use DImode throughout.
30524         (*tldo_ldsw1_sp64): Likewise.
30525         (*tldo_ldx_sp64): Likewise.
30526         (*tldo_stb_sp32): Merge into...
30527         (*tldo_stb_sp64): Likewise.
30528         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
30529         (*tldo_sth_sp32): Merge into...
30530         (*tldo_sth_sp64): Likewise.
30531         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
30532         (*tldo_stw_sp32): Merge into...
30533         (*tldo_stw_sp64): Likewise.
30534         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
30535         (*tldo_stx_sp64): Use DImode throughout.
30537 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
30539         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
30540         check configure option to set BTI and Return Address Signing.
30541         * configure.ac: Add --enable-standard-branch-protection and
30542         --disable-standard-branch-protection.
30543         * configure: Regenerated.
30544         * doc/install.texi: Document the same.
30546 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
30547             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30549         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
30550         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
30551         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
30552         if bti is enabled.
30553         * config/aarch64/aarch64-bti-insert.c: New file.
30554         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
30555         pass.
30556         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
30557         new bti pass.
30558         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
30559         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
30560         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
30561         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
30563 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
30565         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
30566         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
30567         Disable bti for -mbranch-protection=none.
30568         (aarch64_handle_standard_branch_protection): Enable bti for
30569         -mbranch-protection=standard.
30570         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
30571         -mbranch-protection.
30572         (aarch64_bti_enabled): Check if bti is enabled.
30573         * config/aarch64/aarch64.opt: Declare target variable.
30574         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
30576 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
30578         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
30579         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
30580         (aarch64_expand_epilogue): Likewise.
30581         (aarch64_output_mi_thunk): Likewise.
30582         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
30583         TAILCALL_ADDR_REGS to x16 and x17.
30584         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
30586 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
30588         * config/aarch64/aarch64-option-extensions.def: Define
30589         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
30590         * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
30591         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
30592         (AARCH64_FL_PREDRES): New.
30593         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
30594         AARCH64_FL_PREDRES by default.
30595         * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
30597 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
30599         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
30600         ARMv8.5-A.
30601         * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
30602         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
30603         * doc/invoke.texi: Document ARMv8.5-A.
30605 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
30607         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
30608         (xorsign<mode>3): Likewise.
30610 2019-01-09  Jelinek  <jakub@redhat.com>
30612         PR middle-end/88758
30613         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
30614         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
30616         PR rtl-optimization/88331
30617         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
30618         not currently_expanding_to_rtl.
30620 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
30622         * doc/invoke.texi (-Os): Remove trailing spaces.
30623         (-finline-functions): Remove reference to -O2.
30625 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
30627         PR rtl-optimization/79593
30628         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
30630         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
30631         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
30633 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
30635         PR bootstrap/88721
30636         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
30637         to -1 on entry.
30639         PR debug/88723
30640         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
30641         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
30643 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
30645         PR target/88717
30646         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
30647         ix86_avx_u128_mode_entry.
30649 2019-01-08  Martin Liska  <mliska@suse.cz>
30651         PR tree-optimization/88753
30652         * tree-switch-conversion.c (switch_conversion::build_one_array):
30653         Come up with local variable constructor.  Convert first to
30654         type of constructor values.
30656 2019-01-08  Richard Biener  <rguenther@suse.de>
30658         PR tree-optimization/86554
30659         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
30660         rpo_avail): Move earlier.
30661         (visit_nary_op): When value-numbering to expressions
30662         with different overflow behavior make sure there's an
30663         available expression on the path.
30665 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
30667         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
30668         aarch64_parse_branch_protection,
30669         struct aarch64_branch_protect_type,
30670         aarch64_handle_no_branch_protection,
30671         aarch64_handle_standard_branch_protection,
30672         aarch64_validate_mbranch_protection,
30673         aarch64_handle_pac_ret_protection,
30674         aarch64_handle_attr_branch_protection,
30675         accepted_branch_protection_string,
30676         aarch64_pac_ret_subtypes,
30677         aarch64_branch_protect_types,
30678         aarch64_handle_pac_ret_leaf): Define.
30679         (aarch64_override_options_after_change_1, aarch64_override_options):
30680         Add check for accepted_branch_protection_string.
30681         (aarch64_option_save): Save accepted_branch_protection_string.
30682         (aarch64_option_restore): Save accepted_branch_protection_string.
30683         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
30684         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
30685         msign-return-address.
30686         * doc/invoke.texi: Add mbranch-protection.
30688 2019-01-08  Alan Modra  <amodra@gmail.com>
30690         PR target/88614
30691         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
30692         Delete "unknownp" parameter.  Adjust callers.  Handle
30693         CONST_INT, PLUS, MINUS, and MULT.
30694         (attr_value_aligned): Renamed from or_attr_value.
30695         (min_attr_value): Return INT_MIN for unhandled rtl case..
30696         (min_fn): ..and translate to INT_MAX here.
30697         (write_length_unit_log): Modify to cope without "unknown".
30698         (write_attr_value): Handle IF_THEN_ELSE.
30700 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
30702         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
30703         optimization for masked stores.
30705 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
30707         PR middle-end/88567
30708         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
30709         output vector directly to duplicate_and_interleave instead of
30710         going through a temporary.  Postpone insertion of ctor_seq to
30711         the end of the loop.
30713 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
30715         PR target/86891
30716         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
30717         unsigned_p.  Handle signed and unsigned overflow correction as
30718         required.
30719         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
30720         prototype.
30721         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
30722         for operand 2.
30723         (add<mode>3_compareV_imm): Make this callable for expanding.
30724         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
30725         aarch64_plus_operand for operand 2.
30726         (subv<GPI:mode>_insn): New insn pattern.
30727         (subv<GPI:mode>_imm): Likewise.
30728         (negv<GPI:mode>3): New expand pattern.
30729         (negv<GPI:mode>_insn): New insn pattern.
30730         (negv<GPI:mode>_cmp_only): Likewise.
30731         (cmpv<GPI:mode>_insn): Likewise.
30732         (subvti4): Use register_operand for operand 1.  Update call to
30733         aarch64_expand_subvti.
30734         (usubvti4): Likewise.
30735         (negvti3): New expand pattern.
30736         (negdi_carryout): New insn pattern.
30737         (negvdi_carryinV): New insn pattern.
30738         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
30739         version the named version.
30740         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
30741         operands.
30742         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
30743         patterns.
30744         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
30745         patterns.
30746         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
30747         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
30748         (sub<mode>3_carryinCV): Delete.
30749         (sub<GPI:mode>3_carryinV): New expand pattern.
30750         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
30752 2019-01-07  Richard Biener  <rguenther@suse.de>
30754         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
30755         of tree_operand_hash.
30757 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
30759         PR tree-optimization/88598
30760         * tree.h (single_nonzero_element): Declare.
30761         * tree.c (single_nonzero_element): New function.
30762         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
30763         if I is the only nonzero element of CST.
30765 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
30767         PR tree-optimization/88598
30768         * tree.h (initializer_each_zero_or_onep): Declare.
30769         * tree.c (initializer_each_zero_or_onep): New function.
30770         (signed_or_unsigned_type_for): Handle float types too.
30771         (unsigned_type_for, signed_type_for): Update comments accordingly.
30772         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
30773         x & { 0 or -1, 0 or -1, ... }.
30775 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
30777         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
30778         with x86_64-pc-linux-gnu.
30780 2019-01-07  Tom de Vries  <tdevries@suse.de>
30782         PR target/85486
30783         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
30784         function.
30785         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
30786         routines.
30788 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
30790         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
30791         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
30792         TARGET_AVX512F as condition.
30794         PR debug/88723
30795         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
30796         const_not_ok_for_debug_p target hook.
30797         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
30798         on UNSPEC and subexpressions thereof if all subexpressions of the
30799         UNSPEC are CONSTANT_P.
30801         PR tree-optimization/88676
30802         * tree-ssa-phiopt.c (two_value_replacement): New function.
30803         (tree_ssa_phiopt_worker): Call it.
30805         PR sanitizer/88619
30806         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
30807         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
30809         PR c++/85052
30810         * tree-vect-generic.c: Include insn-config.h and recog.h.
30811         (expand_vector_piecewise): Add defaulted ret_type argument,
30812         if non-NULL, use that in preference to type for the result type.
30813         (expand_vector_parallel): Formatting fix.
30814         (do_vec_conversion, do_vec_narrowing_conversion,
30815         expand_vector_conversion): New functions.
30816         (expand_vector_operations_1): Call expand_vector_conversion
30817         for VEC_CONVERT ifn calls.
30818         * internal-fn.def (VEC_CONVERT): New internal function.
30819         * internal-fn.c (expand_VEC_CONVERT): New function.
30820         * fold-const-call.c (fold_const_vec_convert): New function.
30821         (fold_const_call): Use it for CFN_VEC_CONVERT.
30822         * doc/extend.texi (__builtin_convertvector): Document.
30824 2019-01-07  Tom de Vries  <tdevries@suse.de>
30826         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
30827         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
30828         vector_red_partition, vector_red_sym): New global variables.
30829         (nvptx_option_override): Initialize vector_red_sym.
30830         (nvptx_declare_function_name): Restore red_partition register.
30831         (nvptx_file_end): Emit code to declare the vector reduction variables.
30832         (nvptx_output_red_partition): New function.
30833         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
30834         large vector reductions.
30835         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
30836         (nvptx_init_builtins): Add VECTOR_ADDR.
30837         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
30838         Handle nvptx_expand_shared_addr.
30839         (nvptx_get_shared_red_addr): Add vector argument and handle large
30840         vectors.
30841         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
30842         large vectors.
30843         (nvptx_goacc_reduction_init): Likewise.
30844         (nvptx_goacc_reduction_fini): Likewise.
30845         (nvptx_goacc_reduction_teardown): Likewise.
30846         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
30847         init,fini,teardown}.
30848         (nvptx_init_axis_predicate): Initialize vector_red_partition.
30849         (nvptx_set_current_function): Init vector_red_partition.
30850         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
30851         (nvptx_red_partition): New insn.
30852         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
30854 2019-01-07  Tom de Vries  <tdevries@suse.de>
30856         PR target/85381
30857         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
30858         empty loops.
30860 2019-01-07  Tom de Vries  <tdevries@suse.de>
30862         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
30863         (nvptx_option_override): Init oacc_bcast_partition.
30864         (nvptx_init_oacc_workers): New function.
30865         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
30866         (nvptx_needs_shared_bcast): New function.
30867         (nvptx_find_par): Generalize to enable vectors to use shared-memory
30868         to propagate state.
30869         (nvptx_shared_propagate): Initialize vector bcast partition and
30870         synchronization state.
30871         (nvptx_single): Generalize to enable vectors to use shared-memory
30872         to propagate state.
30873         (nvptx_process_pars): Likewise.
30874         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
30875         * config/nvptx/nvptx.h (struct machine_function): Add
30876         bcast_partition and sync_bar members.
30878 2019-01-07  Tom de Vries  <tdevries@suse.de>
30880         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
30881         (nvptx_apply_dim_limits): New function.
30882         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
30883         PTX_WARP_SIZE.
30885 2019-01-07  Tom de Vries  <tdevries@suse.de>
30887         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
30888         as late as possible.
30890 2019-01-07  Tom de Vries  <tdevries@suse.de>
30892         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
30893         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
30894         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
30895         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
30896         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
30898 2019-01-07  Tom de Vries  <tdevries@suse.de>
30900         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
30902 2019-01-07  Tom de Vries  <tdevries@suse.de>
30904         * omp-offload.c (oacc_get_min_dim): New function.
30905         * omp-offload.h (oacc_get_min_dim): Declare.
30907 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
30909         PR target/88521
30910         * config/i386/i386.c (function_value_ms_64): Return small sturct in
30911         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
30913 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
30915         PR tree-opt/86020
30916         Revert:
30917         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30919         * ipa-inline.c (edge_badness): Use inlined_time instead of
30920         inline_summaries->get.
30922 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
30924         * opts.c (enable_fdo_optimizations): Enable
30925         version-loops-for-strides, loop-interchange, unrol-and-jam
30926         and tree-loop-distribution.
30927         * invoke.texi: Document newly enabled options.
30929 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
30931         * doc/invoke.texi (max-inline-insns-small): New parameters.
30932         * ipa-inline.c (want_early_inline_function_p): simplify.
30933         (want_inline_small_function_p): Fix pasto from previous patch;
30934         use max-inline-insns-small bound.
30935         * params.def (max-inline-insns-small): New param.
30936         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
30937         variables correctly.
30939 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
30941         * doc/invoke.texi: Document max-inline-insns-size,
30942         uninlined-function-insns, uninlined-function-time,
30943         uninlined-thunk-insns and uninlined-thunk-time.
30944         * params.def: Add max-inline-insns-size,
30945         uninlined-function-insns, uninlined-function-time,
30946         uninlined-thunk-insns and uninlined-thunk-time.
30947         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
30948         new parameters.
30949         * ipa-inline.c (can_inline_edge_by_limits_p,
30950         want_inline_small_function_p): Use new parameters.
30952 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
30954         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
30956 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
30958         PR middle-end/82564
30959         PR target/88620
30960         * expr.c (expand_assignment): For calls returning VLA structures
30961         if to_rtx is not a MEM, force it into a stack temporary.
30963         PR debug/88635
30964         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
30965         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
30966         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
30967         subexpressions of both operands.
30968         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
30969         subrtxes are CONSTANT_P.
30970         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
30971         2018-11-09 changes.
30973 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
30975         * params.def (hot-bb-count-ws-permille): Set to 990.
30977 2019-01-04  Martin Sebor  <msebor@redhat.com>
30979         PR c/88546
30980         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
30981         leaf.
30983 2019-01-04  Martin Sebor  <msebor@redhat.com>
30985         PR c/88363
30986         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
30988 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
30990         * gdbinit.in: Turn off pagination for the skip commands, restore
30991         it to previous state afterwards.
30993 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
30995         PR target/88594
30996         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
30997         of GET_MODE (opN) as modes of the libcall arguments.
30999 2019-01-04  Jan Beulich  <jbeulich@suse.com>
31001         * config/i386/sse.md
31002         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
31003         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
31004         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
31005         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
31006         avx512f_vmcmp<mode>3<round_saeonly_name>,
31007         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
31008         avx512f_maskcmp<mode>3,
31009         <avx512>_cvt<ssemodesuffix>2mask<mode>,
31010         <avx512>_cvt<ssemodesuffix>2mask<mode>,
31011         *<avx512>_cvtmask2<ssemodesuffix><mode>,
31012         *<avx512>_cvtmask2<ssemodesuffix><mode>,
31013         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
31014         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
31015         <avx512>_gt<mode>3<mask_scalar_merge_name>,
31016         <avx512>_gt<mode>3<mask_scalar_merge_name>,
31017         <avx512>_testm<mode>3<mask_scalar_merge_name>,
31018         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
31019         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
31020         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
31021         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
31022         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
31023         avx512cd_maskb_vec_dup<mode>,
31024         avx512cd_maskw_vec_dup<mode>,
31025         avx512dq_fpclass<mode><mask_scalar_merge_name>,
31026         avx512dq_vmfpclass<mode>,
31027         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
31028         instead of =Yk.
31030 2019-01-03  Martin Sebor  <msebor@redhat.com>
31032         PR tree-optimization/88659
31033         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
31035 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
31037         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
31038         unaligned vsx and avoid lxvd2x/stxvd2x.
31039         (gen_lvx_v4si_move): New function.
31041 2019-01-03  Tom de Vries  <tdevries@suse.de>
31043         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
31044         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
31045         function.
31046         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
31048 2019-01-03  Tom de Vries  <tdevries@suse.de>
31050         * config/nvptx/nvptx.c (struct offload_attrs): New.
31051         (populate_offload_attrs): New function.  Factor mask extraction out of
31052         nvptx_reorg.  Add extraction of dimensions.
31053         (nvptx_reorg): Use populate_offload_attrs.
31055 2019-01-03  Tom de Vries  <tdevries@suse.de>
31057         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
31058         cases for oacc_min_dims_p and routine_p.  Add asserts for
31059         oacc_default_dims_p and offload_region_p.
31061 2019-01-03  Tom de Vries  <tdevries@suse.de>
31063         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
31064         factored out of ...
31065         (nvptx_goacc_validate_dims): ... here.
31067 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
31069         PR tree-optimization/85574
31070         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
31071         structure.
31072         (struct ssa_equip_hash_traits): Declare.
31073         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
31075 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
31077         PR debug/88644
31078         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
31079         change it to qualified_type.
31081 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
31083         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
31084         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
31086 2019-01-02  Martin Sebor  <msebor@redhat.com>
31087             Jeff Law  <law@redhat.com>
31089         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
31090         (get_range_strlen_tree): Update appropriately.
31091         (get_range_strlen)
31092         * gimple-fold.h (get_range_strlen): Drop unused last argument.
31094         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
31095         rather than set_range_info.
31096         * tree-ssa-strlen.c (set_strlen_range): Extracted from
31097         maybe_set_strlen_range.  Handle potentially boundary crossing
31098         cases more conservatively.
31099         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
31100         Call set_strlen_range.
31101         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
31103         PR middle-end/88663
31104         * gimple-fold.c (get_range_strlen): Update prototype to no longer
31105         need the flexp argument.
31106         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
31107         from calls to get_range_strlen.  Update comments.  Just update
31108         VAL for an unterminated const char array and let the reset of the
31109         code handle it normally.  No longer try to set *flexp.  Adjust
31110         return value.
31111         (get_range_strlen): Update for the new get_range_strlen API.
31112         (get_maxval_strlen): Similarly.
31113         (gimple_fold_builtin_strlen): Handle update meaning of return value
31114         from get_range_strlen.
31115         * gimple-ssa-sprintf.c (get_string_length): Update for the new
31116         get_range_strlen API.
31118 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
31120         PR lto/88130
31121         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
31122         false at WPA time when body was removed.
31124 2019-01-02  Martin Liska  <mliska@suse.cz>
31126         PR tree-optimization/88650
31127         * predict.c (set_even_probabilities): Calculate probability
31128         remainer only when really used.
31130 2019-01-02  Richard Biener  <rguenther@suse.de>
31132         PR middle-end/88651
31133         * tree-data-ref.c (analyze_subscript_affine_affine): Use
31134         widest_ints when mangling max_stmt_execution results.
31136 2019-01-02  Richard Biener  <rguenther@suse.de>
31138         PR tree-optimization/88621
31139         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
31140         bitfields when canoncalizing.
31142 2019-01-02  Richard Biener  <rguenther@suse.de>
31144         PR target/87545
31145         * config/i386/x86-tune-costs.h (intel_cost): Adjust
31146         cost of cheap SSE instruction.
31148 2019-01-02  Richard Biener  <rguenther@suse.de>
31150         PR ipa/85574
31151         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
31152         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
31153         function.
31154         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
31155         set after UIDs before splitting them.
31157 2019-01-01  Martin Sebor  <msebor@redhat.com>
31158             Jeff Law  <law@redhat.com>
31160         * gimple-fold.c (get_range_strlen_tree): Record if the computed
31161         length is optimistic.  If it is, then arrange to compute the
31162         conservative length as well.
31164         * gimple-fold.h (get_range_strlen): Update prototype.
31165         * builtins.c (check_access): Update call to get_range_strlen to use
31166         c_strlen_data pointer.   Change various variable accesses to instead
31167         pull data from the c_strlen_data structure.
31168         (check_strncat_sizes, expand_builtin_strncat): Likewise.
31169         * calls.c (maybe_warn_nonstring_arg): Likewise.
31170         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
31171         minimum length if maximum lengh is unknown.
31172         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
31173         that used c_strlen, it's no longer needed.  Restructure slightly.
31174         (format_string): Set unlikely range appropriately.
31175         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
31176         formatting issues.
31177         (get_range_strlen): Accept c_strlen_data pointer for external
31178         call sites as well.  Pass through to call to internal get_range_strlen.
31179         Adjust minlen, maxlen and maxbound as needed.
31180         (get_maxval_strlen): Update comments.
31181         (gimple_fold_builtin_strlen): Update call to get_range_strlen
31182         to use c_strlen_data pointer.  Change variable accesses to instead
31183         use c_strlen_data data members.
31185         * gimple-fold.c (get_range_strlen): Update prototype.
31186         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
31187         local variables.  Use pdata to return information to caller.
31188         Update calls to get_range_strlen.  Update pdata->maxbound.
31189         (get_range_strlen -- static version): Similarly.
31190         (get_range_strlen -- extern version): Update for internal
31191         get_range_strlen API change.  Convert to external data format.
31192         (get_maxval_strlen): Similarly.
31194 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
31196         * coverage.c (get_coverage_counts): Use current_function_decl.
31197         * profile.c (read_thunk_profile): New function.
31198         (branch_prob): Add THUNK parameter.
31199         * tree-profile.c (tree_profiling): Handle thunks.
31200         * value-prof.c (init_node_map): Handle thunks.
31201         * value-prof.h (branch_prob): Upate prototype.
31202         (read_thunk_profile): Declare.
31204 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
31206         Update copyright years.
31208         * gcc.c (process_command): Update copyright notice dates.
31209         * gcov-dump.c (print_version): Ditto.
31210         * gcov.c (print_version): Ditto.
31211         * gcov-tool.c (print_version): Ditto.
31212         * gengtype.c (create_file): Ditto.
31213         * doc/cpp.texi: Bump @copying's copyright year.
31214         * doc/cppinternals.texi: Ditto.
31215         * doc/gcc.texi: Ditto.
31216         * doc/gccint.texi: Ditto.
31217         * doc/gcov.texi: Ditto.
31218         * doc/install.texi: Ditto.
31219         * doc/invoke.texi: Ditto.
31221 Copyright (C) 2019 Free Software Foundation, Inc.
31223 Copying and distribution of this file, with or without modification,
31224 are permitted in any medium without royalty provided the copyright
31225 notice and this notice are preserved.