Daily bump.
[official-gcc.git] / gcc / ChangeLog
blobebba0ee7e371d5b378c1e081779bd4a7c32d0433
1 2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>
3         PR target/99781
4         * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
5         * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
6         functions.
7         (process_bb_lives): Don't update biggest mode of hard reg for
8         implicit in multi-register group.  Use the new functions for
9         updating dead_set and unused_set by register notes.
11 2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>
13         * config/csky/csky_pipeline_ck802.md : Use insn reservation name
14         instead of *.
16 2021-04-06  H.J. Lu  <hjl.tools@gmail.com>
18         * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
19         (skylake_memset): Likewise.
20         (skylake_cost): Change CLEAR_RATIO to 17.
21         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
22         Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
23         m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
25 2021-04-06  Richard Biener  <rguenther@suse.de>
27         PR tree-optimization/99880
28         * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
29         set vectorized defs of relevant PHIs.
31 2021-04-06  Richard Biener  <rguenther@suse.de>
33         PR tree-optimization/99924
34         * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
35         nodes w/o scalar stmts as visited.
37 2021-04-06  Alex Coplan  <alex.coplan@arm.com>
39         PR target/99748
40         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
41         PCS for [su]fix_optab.
43 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
45         * config/darwin.c (machopic_legitimize_pic_address): Check
46         that the current pic register is one of the hard reg set
47         before setting liveness.
49 2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>
51         * config/darwin.c (machopic_legitimize_pic_address): Fix
52         whitespace, remove unused code.
54 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
56         PR tree-optimization/99882
57         * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
58         pointer type.
60 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
62         PR rtl-optimization/99863
63         * dse.c (replace_read): Drop regs_live argument.  Instead of
64         regs_live, use store_insn->fixed_regs_live if non-NULL,
65         otherwise punt if insns sequence clobbers or sets any hard
66         registers.
68 2021-04-03  Jakub Jelinek  <jakub@redhat.com>
70         PR testsuite/98125
71         * targhooks.h (default_print_patchable_function_entry_1): Declare.
72         * targhooks.c (default_print_patchable_function_entry_1): New function,
73         copied from default_print_patchable_function_entry with an added flags
74         argument.
75         (default_print_patchable_function_entry): Rewritten into a small
76         wrapper around default_print_patchable_function_entry_1.
77         * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
78         Redefine.
79         (rs6000_print_patchable_function_entry): New function.
81 2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>
83         * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
85 2021-04-01  Jason Merrill  <jason@redhat.com>
87         PR c++/98481
88         * common.opt: Document v15 and v16.
90 2021-04-01  Richard Biener  <rguenther@suse.de>
92         PR tree-optimization/99863
93         * gimplify.c (gimplify_init_constructor): Recompute vector
94         constructor flags.
96 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
98         * doc/extend.texi (symver attribute): Fix up syntax errors
99         in the examples.
101 2021-04-01  Jakub Jelinek  <jakub@redhat.com>
103         PR tree-optimization/96573
104         * gimple-ssa-store-merging.c (init_symbolic_number): Handle
105         also pointer types.
107 2021-04-01  Richard Biener  <rguenther@suse.de>
109         PR tree-optimization/99856
110         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
111         precision to vector element precision.
113 2021-04-01  Martin Jambor  <mjambor@suse.cz>
115         PR tree-optimization/97009
116         * tree-sra.c (access_or_its_child_written): New function.
117         (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
118         test.
120 2021-03-31  Jan Hubicka  <hubicka@ucw.cz>
122         PR ipa/98265
123         * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
125 2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>
127         PR target/99133
128         * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
129         xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
130         xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
131         * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
132         mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
133         mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
134         Likewise.
135         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
136         * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
137         (define_attr "prefixed"): Update initializer.
139 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
141         PR debug/99490
142         * dwarf2out.c (debug_ranges_dwo_section): New variable.
143         (DW_RANGES_IDX_SKELETON): Define.
144         (struct dw_ranges): Add begin_entry and end_entry members.
145         (DEBUG_DWO_RNGLISTS_SECTION): Define.
146         (add_ranges_num): Adjust r initializer for addition of *_entry
147         members.
148         (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
149         set idx to DW_RANGES_IDX_SKELETON.
150         (use_distinct_base_address_for_range): New function.
151         (index_rnglists): Don't set r->idx if it is equal to
152         DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
153         r->end_entry for -gsplit-dwarf if those will be needed by
154         output_rnglists.
155         (output_rnglists): Add DWO argument.  If true, switch to
156         debug_ranges_dwo_section rather than debug_ranges_section.
157         Adjust l1/l2 label indexes.  Only output the offset table when
158         dwo is true and don't include in there the skeleton range
159         entry if present.  For -gsplit-dwarf, skip ranges that belong
160         to the other rnglists section.  Change return type from void
161         to bool and return true if there are any range entries for
162         the other section.  For dwarf_split_debug_info use
163         DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
164         entries instead of DW_RLE_start_end, DW_RLE_start_length and
165         DW_RLE_base_address.  Use use_distinct_base_address_for_range.
166         (init_sections_and_labels): Initialize debug_ranges_dwo_section
167         if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
168         and range_base_label indexes.
169         (dwarf2out_finish): Call index_rnglists earlier before finalizing
170         .debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
171         -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
172         with different dwo arguments.
173         (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
175 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
177         PR tree-optimization/98268
178         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
179         recompute_tree_invariant_for_addr_expr after successfully
180         folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
182 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
184         PR tree-optimization/99726
185         * tree-data-ref.c (create_intersect_range_checks_index): Bail
186         out if there is more than one access function SCEV for the loop
187         being versioned.
189 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
191         PR rtl-optimization/97141
192         PR rtl-optimization/98726
193         * emit-rtl.c (valid_for_const_vector_p): Return true for
194         CONST_POLY_INT_P.
195         * rtx-vector-builder.h (rtx_vector_builder::step): Return a
196         poly_wide_int instead of a wide_int.
197         (rtx_vector_builder::apply_set): Take a poly_wide_int instead
198         of a wide_int.
199         * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
200         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
201         false for CONST_VECTORs that cannot be forced to memory.
202         * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
203         is too complex to force to memory, build it up from individual
204         elements instead.
206 2021-03-31  Jan Hubicka  <jh@suse.cz>
208         PR lto/99447
209         * cgraph.c (cgraph_node::release_body): Fix overactive check.
211 2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>
213         PR target/99786
214         * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
215         for V4HI and V2SI.
217 2021-03-31  H.J. Lu  <hjl.tools@gmail.com>
219         * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
220         For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
221         to SImode.
222         (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
223         "rep movsb/stosb" only for known sizes.
224         * config/i386/i386-options.c (processor_cost_table): Use Ice
225         Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
226         Rapids and Alder Lake.
227         * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
228         * config/i386/x86-tune-costs.h (icelake_memcpy): New.
229         (icelake_memset): Likewise.
230         (icelake_cost): Likewise.
231         * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
232         New.
234 2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>
236         PR target/98119
237         * config/aarch64/aarch64.c
238         (aarch64_vectorize_preferred_vector_alignment): Query the size
239         of the provided SVE vector; do not assume that all SVE vectors
240         have the same size.
242 2021-03-31  Jan Hubicka  <jh@suse.cz>
244         PR lto/99447
245         * cgraph.c (cgraph_node::release_body): Remove all callers and
246         references.
247         * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
248         * cgraphunit.c (cgraph_node::expand): And here.
250 2021-03-31  Martin Liska  <mliska@suse.cz>
252         * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
253         and one negated condition.
255 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
256             Richard Sandiford  <richard.sandiford@arm.com>
258         PR target/99813
259         * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
260         constraints on operands[2] and similarly 0 and rk constraints
261         on operands[1] corresponding to that.
263 2021-03-31  Jakub Jelinek  <jakub@redhat.com>
265         PR bootstrap/98860
266         * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
267         linker doesn't support DWARF sections new in DWARF5.
268         * config/i386/i386-options.c (ix86_option_override_internal): Default
269         to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
270         targets.
271         * config.in: Regenerated.
272         * configure: Regenerated.
274 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
276         PR target/99820
277         * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
278         available issue_info before using it.
280 2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
282         PR target/99822
283         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
284         in operand 1.
286 2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>
288         PR target/99718
289         * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
290         (altivec_lvsl_reg_<mode>): ... this.
291         (altivec_lvsr_reg): Change to ...
292         (altivec_lvsr_reg_<mode>): ... this.
293         * config/rs6000/predicates.md (vec_set_index_operand): New.
294         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
295         Enable 32bit variable vec_insert for all TARGET_VSX.
296         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
297         Enable 32bit variable vec_insert for p9 and above.
298         (rs6000_expand_vector_set_var_p8): Rename to ...
299         (rs6000_expand_vector_set_var_p7): ... this.
300         (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
301         position.
302         * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
303         * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
304         gen_altivec_lvsr_reg_di.
306 2021-03-30  H.J. Lu  <hjl.tools@gmail.com>
308         PR target/99744
309         * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
310         (__rdtscp): Likewise.
312 2021-03-30  Tamar Christina  <tamar.christina@arm.com>
314         PR tree-optimization/99825
315         * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
316         Reject non-mult 2 lanes.
318 2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
320         PR target/99773
321         * config/arm/arm.c (arm_file_start): Fix emission of
322         Tag_ABI_VFP_args attribute.
324 2021-03-30  Richard Biener  <rguenther@suse.de>
326         PR tree-optimization/99824
327         * stor-layout.c (set_min_and_max_values_for_integral_type):
328         Assert the precision is within the bounds of
329         WIDE_INT_MAX_PRECISION.
330         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
331         the outermost component ref only to lower the access size
332         and initialize that from the access type.
334 2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>
336         PR target/98136
337         * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
338         CONST_INTs to aarch64_expand_mov_immediate when called after RA.
340 2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>
342         * config/aarch64/aarch64.md
343         (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
344         attribute to disambiguate between SIMD and FP variants of the
345         instruction.
347 2021-03-29  Jan Hubicka  <hubicka@ucw.cz>
349         * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
350         (analyze_ssa_name_flags): Fix typo in comment.
352 2021-03-29  Alex Coplan  <alex.coplan@arm.com>
354         PR target/99216
355         * config/aarch64/aarch64-sve-builtins.cc
356         (function_builder::add_function): Add placeholder_p argument, use
357         placeholder decls if this is set.
358         (function_builder::add_unique_function): Instead of conditionally adding
359         direct overloads, unconditionally add either a direct overload or a
360         placeholder.
361         (function_builder::add_overloaded_function): Set placeholder_p if we're
362         using C++ overloads. Use the obstack for string storage instead
363         of relying on the tree nodes.
364         (function_builder::add_overloaded_functions): Don't return early for
365         m_direct_overloads: we need to add placeholders.
366         * config/aarch64/aarch64-sve-builtins.h
367         (function_builder::add_function): Add placeholder_p argument.
369 2021-03-29  Richard Biener  <rguenther@suse.de>
371         PR tree-optimization/99807
372         * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
373         assert below VEC_PERM handling.
375 2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
377         PR target/99037
378         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
379         aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
380         matching const_int 0.
381         (move_lo_quad_internal_be_<mode>): Likewise.
382         (move_lo_quad_<mode>): Update for the above.
383         * config/aarch64/iterators.md (VQ_2E): Delete.
385 2021-03-29  Jakub Jelinek  <jakub@redhat.com>
387         PR tree-optimization/99777
388         * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
389         types other than scalar integral types.
391 2021-03-28  David Edelsohn  <dje.gcc@gmail.com>
393         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
394         XCOFF TLS reloc decorations.
396 2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>
398         * doc/analyzer.texi (Analyzer Internals): Update link to
399         "A Memory Model for Static Analysis of C Programs".
401 2021-03-26  David Edelsohn  <dje.gcc@gmail.com>
403         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
404         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
405         Declare.
406         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
407         (rs6000_special_round_type_align): Recursively check innermost first
408         field.
410 2021-03-26  Jakub Jelinek  <jakub@redhat.com>
412         PR debug/99334
413         * dwarf2out.h (struct dw_fde_node): Add rule18 member.
414         * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
415         assignment with drap_reg active, queue reg save for hfp with offset 0
416         and flush queued reg saves.  When handling a push with rule18,
417         defer queueing reg save for hfp and just assert the offset is 0.
418         (scan_trace): Assert that fde->rule18 is false.
420 2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>
422         PR target/99766
423         * ira-costs.c (record_reg_classes): Put case with
424         CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
425         * ira.c (ira_setup_alts): Ditto.
426         * lra-constraints.c (process_alt_operands): Ditto.
427         * recog.c (asm_operand_ok): Ditto.
428         * reload.c (find_reloads): Ditto.
430 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
432         * config/aarch64/aarch64-protos.h
433         (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
434         (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
435         * config/aarch64/aarch64.c (generic_addrcost_table): Update
436         accordingly, using the same costs as for post_modify.
437         (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
438         (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
439         (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
440         (a64fx_addrcost_table): Likewise.
441         (neoversev1_addrcost_table): New.
442         (neoversev1_tunings): Use neoversev1_addrcost_table.
443         (aarch64_address_cost): Use the new post_modify costs for CImode
444         and XImode.
446 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
448         * config/aarch64/aarch64.opt
449         (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
450         * doc/invoke.texi: Document it.
451         * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
452         (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
453         (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
454         (aarch64_vec_issue_info): New structures.
455         (cpu_vector_cost): Write comments above the variables rather
456         than to the side.
457         (cpu_vector_cost::issue_info): New member variable.
458         * config/aarch64/aarch64.c: Include gimple-pretty-print.h
459         and tree-ssa-loop-niter.h.
460         (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
461         (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
462         (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
463         (thunderx3t110_vector_cost): Initialize issue_info to null.
464         (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
465         (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
466         (neoversev1_vector_cost): Use them.
467         (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
468         (aarch64_vector_costs::saw_sve_only_op): New member variable.
469         (aarch64_vector_costs::num_vector_iterations): Likewise.
470         (aarch64_vector_costs::scalar_ops): Likewise.
471         (aarch64_vector_costs::advsimd_ops): Likewise.
472         (aarch64_vector_costs::sve_ops): Likewise.
473         (aarch64_vector_costs::seen_loads): Likewise.
474         (aarch64_simd_vec_costs_for_flags): New function.
475         (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
476         Count the number of predicate operations required by SVE WHILE
477         instructions.
478         (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
479         (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
480         (aarch64_count_ops): Likewise.
481         (aarch64_add_stmt_cost): Record whether see an SVE operation
482         that cannot currently be implementing using Advanced SIMD.
483         Record issue information about the scalar, Advanced SIMD
484         and (where relevant) SVE versions of a loop.
485         (aarch64_vec_op_count::dump): New function.
486         (aarch64_sve_op_count::dump): Likewise.
487         (aarch64_estimate_min_cycles_per_iter): Likewise.
488         (aarch64_adjust_body_cost): If issue information is available,
489         try to compare the issue rates of the various loop implementations
490         and increase or decrease the vector body cost accordingly.
492 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
494         * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
495         Assume a zero cost for induction phis.
497 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
499         * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
500         function.
501         (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
502         vector comparisons.
504 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
506         * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
507         New function.
508         (aarch64_add_stmt_cost): Call it.
510 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
512         * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
513         New tuning parameter.
514         * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
515         (aarch64_estimated_sve_vq): New function.
516         (aarch64_vector_costs::analyzed_vinfo): New member variable.
517         (aarch64_vector_costs::is_loop): Likewise.
518         (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
519         (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
520         (aarch64_record_potential_advsimd_unrolling): New function.
521         (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
522         (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
523         aarch64_analyze_bb_vinfo on the first use of a costs structure.
524         Detect whether we're vectorizing a loop for SVE that might be
525         completely unrolled if it used Advanced SIMD instead.
526         (aarch64_adjust_body_cost_for_latency): New function.
527         (aarch64_finish_cost): Call it.
529 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
531         * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
532         (aarch64_init_cost): New function.
533         (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
534         the default unsigned[3].
535         (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
536         (TARGET_VECTORIZE_INIT_COST): Override.
537         (TARGET_VECTORIZE_FINISH_COST): Likewise.
538         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
540 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
542         * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
543         (neoversev1_sve_vector_cost): New cost structures.
544         (neoversev1_vector_cost): Likewise.
545         (neoversev1_tunings): Use them.  Enable use_new_vector_costs.
547 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
549         * config/aarch64/aarch64-protos.h
550         (sve_vec_cost::scatter_store_elt_cost): New member variable.
551         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
552         accordingly, taking the cost from the cost of a scalar_store.
553         (a64fx_sve_vector_cost): Likewise.
554         (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
556 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
558         * config/aarch64/aarch64-protos.h
559         (simd_vec_cost::store_elt_extra_cost): New member variable.
560         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
561         accordingly, using the vec_to_scalar cost for the new field.
562         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
563         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
564         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
565         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
566         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
567         (thunderx3t110_advsimd_vector_cost): Likewise.
568         (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
570 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
572         * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
573         (simd_vec_cost::ld3_st3_permute_cost): New member variables.
574         (simd_vec_cost::ld4_st4_permute_cost): Likewise.
575         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
576         accordingly, using zero for the new costs.
577         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
578         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
579         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
580         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
581         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
582         (thunderx3t110_advsimd_vector_cost): Likewise.
583         (aarch64_ld234_st234_vectors): New function.
584         (aarch64_adjust_stmt_cost): Likewise.
585         (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
586         the new vector costs.
588 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
590         * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
591         derived class of simd_vec_cost.  Add information about CLAST[AB]
592         and FADDA instructions.
593         * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
594         accordingly, using the vec_to_scalar costs for the new fields.
595         (a64fx_sve_vector_cost): Likewise.
596         (aarch64_reduc_type): New function.
597         (aarch64_sve_in_loop_reduction_latency): Likewise.
598         (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
599         Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
600         that occur in the loop body.
601         (aarch64_add_stmt_cost): Update call accordingly.
603 2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>
605         * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
606         New tuning flag.
607         * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
608         above the fields rather than to the right.
609         (simd_vec_cost::reduc_i8_cost): New member variable.
610         (simd_vec_cost::reduc_i16_cost): Likewise.
611         (simd_vec_cost::reduc_i32_cost): Likewise.
612         (simd_vec_cost::reduc_i64_cost): Likewise.
613         (simd_vec_cost::reduc_f16_cost): Likewise.
614         (simd_vec_cost::reduc_f32_cost): Likewise.
615         (simd_vec_cost::reduc_f64_cost): Likewise.
616         * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
617         accordingly, using the vec_to_scalar_cost for the new fields.
618         (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
619         (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
620         (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
621         (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
622         (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
623         (thunderx3t110_advsimd_vector_cost): Likewise.
624         (aarch64_use_new_vector_costs_p): New function.
625         (aarch64_simd_vec_costs): New function, split out from...
626         (aarch64_builtin_vectorization_cost): ...here.
627         (aarch64_is_reduction): New function.
628         (aarch64_detect_vector_stmt_subtype): Likewise.
629         (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
630         using the new vector costs.
632 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
634         PR ipa/99466
635         * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
636         TLS declarations as public.
638 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
640         * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
641         * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
642         * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
643         * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
644         * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
645         * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
646         * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
647         * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
648         * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
650 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
652         PR d/91595
653         * config.gcc (*-*-cygwin*): Add winnt-d.o
654         (*-*-mingw*): Likewise.
655         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
656         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
657         * config/i386/t-cygming: Add winnt-d.o.
658         * config/i386/winnt-d.c: New file.
660 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
662         * config/freebsd-d.c: Include memmodel.h.
664 2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>
666         PR d/99691
667         * config.gcc (*-*-openbsd*): Add openbsd-d.o.
668         * config/t-openbsd: Add openbsd-d.o.
669         * config/openbsd-d.c: New file.
671 2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
673         PR tree-optimization/96974
674         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
675         with graceful exit.
677 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
679         Revert:
680         2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
682         PR target/98209
683         PR target/99744
684         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
685         always_inline in system headers.
687 2021-03-25  Kewen Lin  <linkw@linux.ibm.com>
689         * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
691 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
693         PR c++/99565
694         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
695         * fold-const.c (operand_compare::operand_equal_p): Don't compare
696         field offsets if OEP_ADDRESS_OF_SAME_FIELD.
698 2021-03-25  H.J. Lu  <hjl.tools@gmail.com>
700         PR target/98209
701         PR target/99744
702         * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
703         always_inline in system headers.
705 2021-03-25  Richard Biener  <rguenther@suse.de>
707         PR tree-optimization/99746
708         * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
709         the scalar stmt as patterned.  Instead set up required things
710         manually.
712 2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>
714         * config/rs6000/rs6000.c (power8_costs): Change l2 cache
715         from 256 to 512.
717 2021-03-24  Martin Liska  <mliska@suse.cz>
719         PR target/99753
720         * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
721         error.
722         * config/i386/i386-options.c (ix86_option_override_internal):
723         Add run-time assert.
725 2021-03-24  Martin Jambor  <mjambor@suse.cz>
727         PR ipa/99122
728         * ipa-cp.c (initialize_node_lattices): Mark as bottom all
729         parameters with unknown type.
730         (ipacp_value_safe_for_type): New function.
731         (propagate_vals_across_arith_jfunc): Verify that the constant type
732         can be used for a type of the formal parameter.
733         (propagate_vals_across_ancestor): Likewise.
734         (propagate_scalar_across_jump_function): Likewise.  Pass the type
735         also to propagate_vals_across_ancestor.
737 2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>
739         PR target/99727
740         * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
741         constraint.
742         (movmisalign<mode>_mve_load): Likewise.
744 2021-03-24  Jakub Jelinek  <jakub@redhat.com>
746         PR target/99724
747         * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
748         movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
750 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
752         * doc/sourcebuild.texi (sysconf): New effective target.
754 2021-03-24  Alexandre Oliva  <oliva@adacore.com>
756         * config/i386/predicates.md (reg_or_const_vec_operand): New.
757         * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
758         the now *-prefixed insn_and_split, turn the splitter const vec
759         into an input for the insn, making it an ignored immediate for
760         non-split cases, and loaded into the scratch register
761         otherwise.
763 2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>
765         PR target/99581
766         * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
767         Use define_relaxed_memory_constraint for them.
769 2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>
771         PR target/99733
772         * config/host-darwin.c (darwin_gt_pch_use_address): Add a
773         colon to the diagnostic message.
775 2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>
777         * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
778         set_info's uses.
779         (try_fwprop_subst_note): Use set_info instead of insn_info.
780         (try_fwprop_subst_pattern): Likewise.
781         (try_fwprop_subst_notes): Likewise.
782         (try_fwprop_subst): Likewise.
783         (forward_propagate_subreg): Likewise.
784         (forward_propagate_and_simplify): Likewise.
785         (forward_propagate_into): Likewise.
786         * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
787         method.
788         (set_info::single_nondebug_insn_use): Likewise.
789         (set_info::single_phi_use): Likewise.
790         * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
791         method.
792         (set_info::single_nondebug_insn_use): Likewise.
793         (set_info::single_phi_use): Likewise.
795 2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>
797         * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
799 2021-03-23  Jakub Jelinek  <jakub@redhat.com>
801         PR target/99540
802         * config/aarch64/aarch64.c (aarch64_add_offset): Tell
803         expand_mult to perform an unsigned rather than a signed
804         multiplication.
806 2021-03-23  H.J. Lu  <hjl.tools@gmail.com>
808         PR target/99704
809         * config/i386/cpuid.h (__cpuid): Add __volatile__.
810         (__cpuid_count): Likewise.
812 2021-03-23  Richard Biener  <rguenther@suse.de>
814         PR tree-optimization/99721
815         * tree-vect-slp.c (vect_slp_analyze_node_operations):
816         Make sure we can schedule the node.
818 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
820         * config/riscv/riscv.c (riscv_subword): Take endianness into
821         account when calculating the byte offset.
823 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
825         * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
826         * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
827         (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
828         (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
829         (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
830         new predicate "subreg_lowpart_operator"
832 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
834         * config/riscv/riscv.c (riscv_swap_instruction): New function
835         to byteswap an SImode rtx containing an instruction.
836         (riscv_trampoline_init): Byteswap the generated instructions
837         when needed.
839 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
841         * common/config/riscv/riscv-common.c
842         (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
843         * config.gcc (riscv32be-*, riscv64be-*): Set
844         TARGET_BIG_ENDIAN_DEFAULT to 1.
845         * config/riscv/elf.h (LINK_SPEC): Change -melf* value
846         depending on default endianness.
847         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
848         * config/riscv/linux.h (LINK_SPEC): Likewise.
849         * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
850         default endianness.
851         * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
853 2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>
855         * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
856         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
857         * config/riscv/linux.h (LINK_SPEC): Likewise.
858         * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
859         -mlittle-endian.
860         (BYTES_BIG_ENDIAN): Handle big endian.
861         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
862         * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
863         options.
864         * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
866 2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
868         * regcprop.c (find_oldest_value_reg): Ask target whether
869           different mode is fine for replacement register.
871 2021-03-23  Aldy Hernandez  <aldyh@redhat.com>
873         PR tree-optimization/99296
874         * value-range.cc (irange::irange_set_1bit_anti_range): New.
875         (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
876         * value-range.h (irange::irange_set_1bit_anti_range): New.
878 2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
880         PR target/99581
881         * config/aarch64/constraints.md (UtQ): Use
882         define_relaxed_memory_constraint for it.
883         * doc/md.texi (define_relaxed_memory_constraint): Describe it.
884         * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
885         * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
886         (have_relaxed_memory_constraints): New static var.
887         (relaxed_memory_start, relaxed_memory_end): Ditto.
888         (add_constraint): Add arg is_relaxed_memory.  Check name for
889         relaxed memory.  Set up is_relaxed_memory in constraint_data and
890         have_relaxed_memory_constraints.  Adjust calls.
891         (choose_enum_order): Process relaxed memory.
892         (write_tm_preds_h): Ditto.
893         (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
894         * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
895         * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
896         * ira-lives.c (single_reg_class): Use
897         insn_extra_relaxed_memory_constraint.
898         * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
899         * lra-constraints.c (valid_address_p): Use
900         insn_extra_relaxed_memory_constraint instead of other memory
901         constraints.
902         (process_alt_operands): Process CT_RELAXED_MEMORY.
903         (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
904         * recog.c (asm_operand_ok, preprocess_constraints): Process
905         CT_RELAXED_MEMORY.
906         * reload.c (find_reloads): Ditto.
907         * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
908         * stmt.c (parse_input_constraint): Use
909         insn_extra_relaxed_memory_constraint.
911 2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>
913         PR target/97926
914         * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
915         there are no NaNs.
917 2021-03-22  Alex Coplan  <alex.coplan@arm.com>
919         PR target/97252
920         * config/arm/arm-protos.h (neon_make_constant): Add generate
921         argument to guard emitting insns, default to true.
922         * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
923         CONST_VECTORs which neon_make_constant can't handle.
924         (neon_vdup_constant): Add generate argument, avoid emitting
925         insns if it's not set.
926         (neon_make_constant): Plumb new generate argument through.
927         * config/arm/constraints.md (Ui): New. Use it...
928         * config/arm/mve.md (*mve_mov<mode>): ... here.
929         * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
930         synthesize constants.
932 2021-03-22  Richard Biener  <rguenther@suse.de>
934         * debug.h: Add deprecation warning.
936 2021-03-22  Richard Biener  <rguenther@suse.de>
938         PR tree-optimization/99694
939         * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
940         PHI result.
942 2021-03-22  Kito Cheng  <kito.cheng@sifive.com>
944         PR target/99702
945         * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
946         after type checking.
948 2021-03-22  Jakub Jelinek  <jakub@redhat.com>
950         PR debug/99562
951         PR debug/66728
952         * dwarf2out.c (get_full_len): Use get_precision rather than
953         min_precision.
954         (add_const_value_attribute): Make sure add_AT_wide argument has
955         precision prec rather than some very wide one.
957 2021-03-22  Kewen Lin  <linkw@linux.ibm.com>
959         * config/rs6000/rs6000.md (*rotldi3_insert_sf,
960         *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
961         floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
962         floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
963         *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
964         fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
965         *round32<mode>2_fprs, *roundu32<mode>2_fprs,
966         *fix_trunc<mode>si2_internal): Fix empty split condition.
967         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
968         vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
969         *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
970         *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
972 2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>
974         PR target/98914
975         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
976         Convert idx to DImode.
977         (rs6000_expand_vector_set_var_p8): Likewise.
979 2021-03-21  Jakub Jelinek  <jakub@redhat.com>
981         PR debug/99388
982         * dwarf2out.c (insert_float): Change return type from void to
983         unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
984         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
985         Adjust callers.
987 2021-03-20  H.J. Lu  <hjl.tools@gmail.com>
989         PR target/99679
990         * config/i386/i386.c (construct_container): Check cfun != NULL
991         before accessing silent_p.
993 2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>
995         * asan.c: Fix typos in comments.
997 2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>
999         PR rtl-optimization/99680
1000         * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
1001         (process_address_1): Check empty constraint before using
1002         CONSTRAINT_LEN.
1004 2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>
1006         * config/rs6000/rs6000.c (power10_cost): New.
1007         (rs6000_option_override_internal): Set Power10 costs.
1008         (rs6000_issue_rate): Set Power10 issue rate.
1009         * config/rs6000/power10.md: Rewrite for Power10.
1011 2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
1013         PR target/99663
1014         * lra-constraints.c (process_address_1): Don't use unknown
1015         constraint for address constraint.
1017 2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>
1019         PR target/99661
1020         * config.gcc (powerpc-*-darwin8): Delete the reference to
1021         the now removed darwin8.h.
1023 2021-03-19  Olivier Hainque  <hainque@adacore.com>
1025         PR target/99660
1026         * config/vxworksae.h (VX_CPU_PREFIX): Define.
1028 2021-03-19  John David Anglin  <danglin@gcc.gnu.org>
1030         * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
1032 2021-03-19  Tamar Christina  <tamar.christina@arm.com>
1034         PR tree-optimization/99656
1035         * tree-vect-slp-patterns.c (linear_loads_p,
1036         complex_add_pattern::matches, is_eq_or_top,
1037         vect_validate_multiplication, complex_mul_pattern::matches,
1038         complex_fms_pattern::matches): Remove complex_perm_kinds_t.
1039         * tree-vectorizer.h: (complex_load_perm_t): Removed.
1040         (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
1041         complex_load_perm_t.
1043 2021-03-19  H.J. Lu  <hjl.tools@gmail.com>
1045         PR target/99652
1046         * config/i386/i386-options.c (ix86_init_machine_status): Set
1047         silent_p to true.
1048         * config/i386/i386.c (init_cumulative_args): Set silent_p to
1049         false.
1050         (construct_container): Return early for return and argument
1051         errors if silent_p is true.
1052         * config/i386/i386.h (machine_function): Add silent_p.
1054 2021-03-19  Jakub Jelinek  <jakub@redhat.com>
1056         PR target/99593
1057         * config/arm/constraints.md (Ds): New constraint.
1058         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
1059         constraint instead of w,Dm.
1061 2021-03-19  Andrew Stubbs  <ams@codesourcery.com>
1063         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
1064         in error message.
1066 2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>
1068         PR middle-end/99641
1069         * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
1070         array type, do the computation of the current position in sizetype.
1072 2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
1074         PR target/99422
1075         * lra-constraints.c (process_address_1): Use lookup_constraint
1076         only for a single constraint.
1078 2021-03-18  Martin Sebor  <msebor@redhat.com>
1080         PR middle-end/99502
1081         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
1082         (inbounds_memaccess_p): ...to this.  Check the ending offset of
1083         the accessed member.
1085 2021-03-18  Andrew Stubbs  <ams@codesourcery.com>
1087         * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
1088           %> quote markers to error messages.
1089         (gcn_goacc_validate_dims): Likewise.
1090         (gcn_conditional_register_usage): Remove exclaimation mark from error
1091         message.
1092         (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
1094 2021-03-18  Jan Hubicka  <hubicka@ucw.cz>
1096         * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
1097         integer divides1.
1099 2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
1100             Kito Cheng  <kito.cheng@sifive.com>
1102         * config/riscv/riscv.c (riscv_block_move_straight): Change type
1103         to unsigned HOST_WIDE_INT for parameter and local variable with
1104         HOST_WIDE_INT type.
1105         (riscv_adjust_block_mem): Ditto.
1106         (riscv_block_move_loop): Ditto.
1107         (riscv_expand_block_move): Ditto.
1109 2021-03-18  Nick Clifton  <nickc@redhat.com>
1111         * config/v850/v850.c (construct_restore_jr): Increase static
1112          buffer size.
1113         (construct_save_jarl): Likewise.
1114         * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
1116 2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1118         * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
1119         (aarch64_override_options_internal): Use it.
1120         (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
1121         tune_flags.
1123 2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>
1125         * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
1126         error message format issues.
1127         (nios2_option_override): Likewise.
1128         (nios2_expand_fpu_builtin): Likewise.
1129         (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
1130         truncation warning.
1131         (nios2_expand_custom_builtin): More error message format fixes.
1132         (nios2_expand_rdwrctl_builtin): Likewise.
1133         (nios2_expand_rdprs_builtin): Likewise.
1134         (nios2_expand_eni_builtin): Likewise.
1135         (nios2_expand_builtin): Likewise.
1136         (nios2_register_custom_code): Likewise.
1137         (nios2_valid_target_attribute_rec): Likewise.
1138         (nios2_add_insn_asm): Fix uninitialized variable warning.
1140 2021-03-17  Jan Hubicka  <jh@suse.cz>
1142         * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
1143         of gather to match reality.
1144         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
1146 2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1148         * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
1149         to compare against CC_REG rather than NE.
1151 2021-03-17  H.J. Lu  <hjl.tools@gmail.com>
1153         PR target/99504
1154         * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
1155         inline assembly statements.
1156         (ix86_print_operand): Update 'P' handling for -fno-plt.
1158 2021-03-17  Tamar Christina  <tamar.christina@arm.com>
1160         PR target/99542
1161         * config/aarch64/aarch64.c
1162         (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
1164 2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>
1166         PR target/98092
1167         * config/rs6000/predicates.md (branch_comparison_operator): Allow
1168         ordered and unordered for CCFPmode, if flag_finite_math_only.
1170 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
1172         PR target/99600
1173         * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
1174         rather than ASHIFT.
1175         * config/i386/i386.md (mult by 1248 into ashift): New splitter.
1177 2021-03-16  Martin Liska  <mliska@suse.cz>
1179         PR target/99592
1180         * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
1181         cl_optimization_compare function.
1183 2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>
1185         * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
1186         as "v".
1188 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
1190         PR target/99563
1191         * config/i386/i386.h (struct machine_function): Add
1192         has_explicit_vzeroupper bitfield.
1193         * config/i386/i386-expand.c (ix86_expand_builtin): Set
1194         cfun->machine->has_explicit_vzeroupper when expanding
1195         IX86_BUILTIN_VZEROUPPER.
1196         * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
1197         Do the mode switching only when TARGET_VZEROUPPER, expensive
1198         optimizations turned on and not optimizing for size.
1199         (pass_insert_vzeroupper::gate): Enable even when
1200         cfun->machine->has_explicit_vzeroupper is set.
1202 2021-03-16  Jakub Jelinek  <jakub@redhat.com>
1204         PR target/99542
1205         * config/aarch64/aarch64.c
1206         (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
1207         definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
1208         instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.
1210 2021-03-15  Richard Biener  <rguenther@suse.de>
1212         PR tree-optimization/98834
1213         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
1214         subsetting by truncating the access size.
1216 2021-03-15  Jan Hubicka  <hubicka@ucw.cz>
1218         * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
1219         * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
1220         of znver2_cost.
1222 2021-03-15  Martin Liska  <mliska@suse.cz>
1224         * spellcheck.c: Add missing comma in initialization.
1226 2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>
1228         * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
1229         alternative 2 and alternative 1 with alternative 3 using
1230         YW register constraint.
1231         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
1232         using YW register constraint.
1233         (*vec_extractv16qi_zext): Ditto.
1234         (*vec_extractv4si): Merge alternatives 4 and 5
1235         using Yw register constraint.
1236         (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
1238 2021-03-13  Martin Sebor  <msebor@redhat.com>
1240         PR tree-optimization/99489
1241         * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
1242         is not a call statement.
1244 2021-03-13  Jakub Jelinek  <jakub@redhat.com>
1246         PR tree-optimization/99544
1247         * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
1248         if for vector types multiplication can't be done in type's mode.
1250 2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>
1252         PR target/99422
1253         * config/sparc/constraints.md (w): Rename to...
1254         (W): ... this and ditch previous implementation.
1255         * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
1256         (*movdf_insn_sp64): Likewise.
1257         (*mov<VM64:mode>_insn_sp64): Likewise.
1258         * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
1259         w with W.
1260         (atomic_compare_and_swap_leon3_1): Likewise.
1261         (*atomic_compare_and_swapdi_v8plus): Likewise.
1262         * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
1263         architecture and add missing address validity check during LRA.
1265 2021-03-12  Tobias Burnus  <tobias@codesourcery.com>
1267         PR fortran/98858
1268         * gimplify.c (omp_add_variable): Handle NULL_TREE as size
1269         occuring for assumed-size arrays in use_device_{ptr,addr}.
1271 2021-03-12  Jakub Jelinek  <jakub@redhat.com>
1273         PR target/99321
1274         * config/i386/constraints.md (YW): New internal constraint.
1275         * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
1276         (*<sse2_avx2>_<insn><mode>3<mask_name>,
1277         *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
1278         *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
1279         constraints.
1280         (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
1281         (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
1282         avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
1283         into one, use Yw instead of former x,v.
1284         (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
1285         the last alternative.
1286         (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
1287         <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
1288         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
1289         <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
1290         into one, use <v_Yw> instead of former x,v.
1291         (avx2_interleave_highv32qi<mask_name>,
1292         vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
1293         constraints.  Add && <mask_avx512bw_condition> to condition.
1294         (avx2_interleave_lowv32qi<mask_name>,
1295         vec_interleave_lowv16qi<mask_name>,
1296         avx2_interleave_highv16hi<mask_name>,
1297         vec_interleave_highv8hi<mask_name>,
1298         avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
1299         avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
1300         avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
1301         avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
1302         *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
1303         Yw instead of v in constraints.
1304         * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
1305         (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
1306         instead of Yv in constraints.
1307         (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
1308         *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
1309         *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
1310         mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
1311         *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
1312         constraints.
1313         (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
1314         *mmx_pextrb_zext): Use YW instead of Yv in constraints.
1315         (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
1316         (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
1317         two, one with just x, another isa avx512vl with v.
1319 2021-03-12  Martin Liska  <mliska@suse.cz>
1321         * doc/invoke.texi: Add missing param documentation.
1323 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
1325         PR analyzer/96374
1326         * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
1327         analyzer/trimmed-graph.o.
1328         * doc/analyzer.texi (Analyzer Paths): Rewrite description of
1329         feasibility checking to reflect new implementation.
1330         * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
1331         option.
1332         * shortest-paths.h (shortest_paths::get_shortest_distance): New.
1334 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
1336         * digraph.cc (selftest::test_shortest_paths): Update
1337         shortest_paths init for new param.  Add test of
1338         SPS_TO_GIVEN_TARGET.
1339         * shortest-paths.h (enum shortest_path_sense): New.
1340         (shortest_paths::shortest_paths): Add "sense" param.
1341         Update for renamings.  Generalize to use "sense" param.
1342         (shortest_paths::get_shortest_path): Rename param.
1343         (shortest_paths::m_sense): New field.
1344         (shortest_paths::m_prev): Rename...
1345         (shortest_paths::m_best_edge): ...to this.
1346         (shortest_paths::get_shortest_path): Update for renamings.
1347         Conditionalize flipping of path on sense of traversal.
1349 2021-03-11  David Malcolm  <dmalcolm@redhat.com>
1351         * digraph.cc (selftest::test_shortest_paths): Add test coverage
1352         for paths from B and C.
1353         * shortest-paths.h (shortest_paths::shortest_paths): Handle
1354         unreachable nodes, rather than asserting.
1356 2021-03-11  David Edelsohn  <dje.gcc@gmail.com>
1358         PR target/99094
1359         * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
1360         xcoff_tbss_section_name.
1361         * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
1362         * xcoffout.c (xcoff_tbss_section_name): Delete.
1363         * xcoffout.h (xcoff_tbss_section_name): Delete.
1365 2021-03-11  Richard Biener  <rguenther@suse.de>
1367         PR tree-optimization/99523
1368         * tree-cfg.c (dump_function_to_file): Dump SSA names
1369         w/o identifier to the decls section as well, not only those
1370         without a VAR_DECL.
1372 2021-03-11  Jakub Jelinek  <jakub@redhat.com>
1374         PR ipa/99517
1375         * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
1376         function calls with lhs fail if the lhs don't have compatible types.
1378 2021-03-11  Hans-Peter Nilsson  <hp@axis.com>
1380         * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
1381         Change FRAME_POINTER_REGNUM to correspond to a new faked
1382         register faked_fp, part of GENNONACR_REGS like faked_ap.
1383         (CRIS_FAKED_REGS_CONTENTS): New helper macro.
1384         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
1385         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
1386         (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
1387         * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
1388         register.
1389         (CRIS_REAL_FP_REGNUM): New constant.
1390         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
1391         for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
1392         (cris_initial_elimination_offset): Handle elimination changes
1393         to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
1394         and add one from FRAME_POINTER_REGNUM to
1395         HARD_FRAME_POINTER_REGNUM.
1396         (cris_expand_prologue, cris_expand_epilogue): Emit code for
1397         hard_frame_pointer_rtx instead of frame_pointer_rtx.
1399 2021-03-10  David Edelsohn  <dje.gcc@gmail.com>
1401         PR target/99492
1402         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
1403         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
1405 2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
1407         PR target/99422
1408         * lra-constraints.c (process_address_1): Don't check unknown
1409         constraint, use X for empty constraint.
1411 2021-03-10  Alex Coplan  <alex.coplan@arm.com>
1413         * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
1414         Fix typo in comment describing "is_ha" argument.
1416 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
1418         * doc/sourcebuild.texi: Document LRA target selector.
1420 2021-03-10  David Malcolm  <dmalcolm@redhat.com>
1422         * doc/ux.texi: Add subsection contrasting interactive versus
1423         batch usage of GCC.
1425 2021-03-10  Joel Hutton  <joel.hutton@arm.com>
1427         PR target/99102
1428         * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
1429         check condition.
1430         (vectorizable_load): Fix gather load mask check condition.
1432 2021-03-10  Richard Biener  <rguenther@suse.de>
1434         PR tree-optimization/99510
1435         * tree.c (check_aligned_type): Check that the candidate
1436         has TYPE_USER_ALIGN set instead of matching with the
1437         original type.
1439 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
1441         * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
1442         float and vector integer modes only if the mode is not larger.
1444 2021-03-10  Hans-Peter Nilsson  <hp@axis.com>
1446         * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
1448 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
1450         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
1451         constraints > 9.
1452         * ira-lives.c (single_reg_class): Ditto.
1454 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1456         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
1457         the architecture-specific rtems.h.
1458         (aarch64-*-rtems*): Likewise.
1459         (arm*-*-rtems*): Likewise.
1460         (epiphany-*-rtems*): Likewise.
1461         (riscv*-*-rtems*): Likewise.
1463 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
1465         PR tree-optimization/99305
1466         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
1467         before integer_all_onesp instead of vice versa.
1469 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
1471         * common/config/arm/arm-common.c (arm_config_default): Change type
1472         of 'i' to unsigned.
1474 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
1476         PR target/99454
1477         * lra-constraints.c (process_address_1): Process constraint 'g'
1478         separately and digital constraints containing more one digit.
1480 2021-03-09  Nick Clifton  <nickc@redhat.com>
1482         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
1483         (DWARF"_DEBUGGING_INFO): Define.
1485 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1487         PR c++/90448
1488         * calls.c (initialize_argument_information): When the argument
1489         is passed by reference, do not make a copy in a thunk only if
1490         the argument is already in memory.  Remove redundant test for
1491         the case of callee copy.
1493 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
1495         PR target/99454
1496         * lra-constraints.c (process_address_1): Process 0..9 constraints
1497         in process_address_1.
1499 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
1501         * config/s390/s390.c (struct s390_processor processor_table):
1502         Binutils name string must not be empty.
1504 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
1506         * config/arc/arc.c (arc_attr_type): Remove function.
1508 2021-03-09  Martin Liska  <mliska@suse.cz>
1510         PR target/99464
1511         * config/i386/i386-options.c (ix86_option_override_internal):
1512         Set isa_flags for OPTS argument and not for the global
1513         global_options.
1515 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
1517         * config/rs6000/predicates.md (ds_form_mem_operand): Check
1518         in correct code.
1520 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
1522         PR target/99070
1523         * config/rs6000/predicates.md (ds_form_mem_operand) New
1524         predicate.
1525         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
1526         ds_form_mem_operand in ld/lwa patterns.
1527         * config/rs6000/fusion.md: Regenerate file.
1529 2021-03-08  Martin Sebor  <msebor@redhat.com>
1531         PR middle-end/98266
1532         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
1533         (array_bounds_checker::check_array_bounds): Call it.
1535 2021-03-08  Martin Sebor  <msebor@redhat.com>
1537         PR middle-end/97631
1538         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
1539         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
1540         destination size from allocation calls.  Issue a more appropriate
1541         kind of warning.
1542         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
1543         (handle_builtin_memset): Same.
1545 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
1547         PR target/98959
1548         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
1549         to ensure we do not have an Altivec style address.
1550         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
1551         an Altivec style address.
1552         (*vsx_le_perm_store_<mode>): Likewise.
1553         (splitters after *vsx_le_perm_store_<mode>): Likewise.
1554         (vsx_load_<mode>): Disable special expander if passed an Altivec
1555         style address.
1556         (vsx_store_<mode>): Likewise.
1558 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1560         PR target/99437
1561         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
1562         (aarch64_simd_shift_imm_vec_hi): Likewise.
1563         (aarch64_simd_shift_imm_vec_si): Likewise.
1564         (aarch64_simd_shift_imm_vec_di): Likewise.
1565         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
1566         predicate from above.
1567         (aarch64_shrn<mode>_insn_be): Likewise.
1568         (aarch64_rshrn<mode>_insn_le): Likewise.
1569         (aarch64_rshrn<mode>_insn_be): Likewise.
1570         (aarch64_shrn2<mode>_insn_le): Likewise.
1571         (aarch64_shrn2<mode>_insn_be): Likewise.
1572         (aarch64_rshrn2<mode>_insn_le): Likewise.
1573         (aarch64_rshrn2<mode>_insn_be): Likewise.
1575 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
1577         PR target/99422
1578         * lra-constraints.c (skip_contraint_modifiers): New function.
1579         (process_address_1): Use it before lookup_constraint call.
1581 2021-03-08  Martin Liska  <mliska@suse.cz>
1583         PR target/99463
1584         * config/i386/i386-options.c (ix86_option_override_internal):
1585         Enable UINTR and HRESET for -march that supports it.
1587 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
1589         * config/s390/s390.c (f_constraint_p): New function.
1590         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
1591         (TARGET_MD_ASM_ADJUST): Likewise.
1593 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
1595         PR fortran/97927
1596         * tree-nested.c (convert_local_reference_stmt): Avoid calling
1597         lookup_field_for_decl for Fortran module (= namespace context).
1599 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
1601         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
1602         comparison with arithmetic right shift.
1603         (s390_expand_vcond): No need for a force_reg anymore.
1604         s390_vec_compare will do it.
1605         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
1606         immediate operands.
1608 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
1610         PR target/99321
1611         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
1612         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
1613         and comment.
1614         * config/i386/sse.md (v_Yw): New define_mode_attr.
1615         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
1616         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
1617         in constraints.
1618         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
1619         xYw in constraints.
1621 2021-03-06  Julian Brown  <julian@codesourcery.com>
1623         * tree-pretty-print.c (dump_generic_node): Emit non-generic
1624         address space info for aggregates.
1626 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
1628         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
1630 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
1632         PR middle-end/99322
1633         * tree-cfg.c (bb_to_omp_idx): New variable.
1634         (execute_build_cfg): Release the bb_to_omp_idx vector after
1635         cleanup_tree_cfg returns.
1636         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
1637         for bb_to_omp_idx being a vec<int> instead of pointer to array
1638         of ints.
1639         (make_edges): Remove bb_to_omp_idx local variable, don't pass
1640         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
1641         vec<int> instead of pointer to array of ints and don't free/release
1642         it at the end.
1643         (remove_bb): When removing a bb and placing forced label somewhere
1644         else, ensure it is put into the same OpenMP region during cfg
1645         pass if possible or to entry successor as fallback.  Unregister
1646         bb from bb_to_omp_idx.
1648 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
1650         PR target/99378
1651         * lra-constraints.c (process_address_1): Skip decomposing address
1652         for asm insn operand with unknown constraint.
1654 2021-03-05  Martin Jambor  <mjambor@suse.cz>
1656         PR ipa/98078
1657         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
1658         corresponding speculative edges if we are about to resolve
1659         sepculation.  Make edge direct (and so resolve speculations) before
1660         removing it from call_site_hash.
1661         (cgraph_edge::make_direct): Relax the initial assert to allow calling
1662         the function on speculative direct edges.
1664 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
1666         PR rtl-optimization/99376
1667         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
1668         of low-order zero bits is too large, set the result to 0 directly.
1670 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
1672         PR middle-end/93235
1673         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
1674         SUBREG and a SUBREG to op_mode can't be created.
1676 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
1678         PR target/99381
1679         * config/aarch64/aarch64-sve-builtins.cc
1680         (function_resolver::require_vector_type): Handle error_mark_node.
1682 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
1684         * cfgexpand.c (expand_asm_loc): Pass new parameter.
1685         (expand_asm_stmt): Likewise.
1686         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
1687         parameter.
1688         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
1689         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
1690         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
1691         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
1692         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
1693         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
1694         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
1695         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
1696         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
1697         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
1698         * doc/tm.texi (md_asm_adjust): Likewise.
1699         * target.def (md_asm_adjust): Likewise.
1701 2021-03-04  Richard Biener  <rguenther@suse.de>
1703         PR middle-end/97855
1704         * tree-pretty-print.c: Poison pp_printf.
1705         (dump_decl_name): Avoid use of pp_printf.
1706         (dump_block_node): Likewise.
1707         (dump_generic_node): Likewise.
1709 2021-03-04  Martin Sebor  <msebor@redhat.com>
1711         PR middle-end/96963
1712         PR middle-end/94655
1713         * builtins.c (handle_array_ref): New helper.
1714         (handle_mem_ref): New helper.
1715         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
1716         into new helper functions.  Correct a workaround for vectorized
1717         assignments.
1719 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
1721         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
1722         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
1723         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
1724         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
1725         attribute for Power10.
1726         * config/rs6000/mma.md (*movoo): Likewise.
1727         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
1728         (define_mode_attr bits): Add DD/TD modes.
1729         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
1730         store_conditionalpti): Update size attribute for Power10.
1732 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1734         PR bootstrap/92002
1735         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
1736         -Wuninitialized, -Wmaybe-uninitialized.
1737         (wide-int.o-warn): Likewise.
1739 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
1741         * common/config/arm/arm-common.c: Include configargs.h.
1742         (arm_config_default): New function.
1743         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
1744         processors that do not support Thumb.  Take into account the
1745         --with-mode configuration setting for selecting the default.
1746         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
1747         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
1749 2021-03-03  Martin Liska  <mliska@suse.cz>
1751         PR gcov-profile/97461
1752         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
1754 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
1756         PR target/99234
1757         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
1758         point back the hard frame pointer to its default location when the
1759         frame is larger than SEH_MAX_FRAME_SIZE.
1761 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
1763         PR target/99321
1764         * config/i386/predicates.md (logic_operator): New define_predicate.
1765         * config/i386/i386.md (mov + mem using comm arith peephole2):
1766         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
1767         and the inner mode is [QH]Imode.
1769 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
1771         PR debug/99090
1772         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
1773         (new_loc_list): Clear end_entry.
1774         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
1775         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
1776         typo.
1777         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
1778         initialize also end_entry.
1780 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
1782         PR target/99085
1783         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
1784         partitions, if in non-layout mode after reorder_blocks also move
1785         affected blocks to ensure a single partition transition.
1787 2021-03-03  Jason Merrill  <jason@redhat.com>
1789         PR c++/96078
1790         * cgraphunit.c (process_function_and_variable_attributes): Don't
1791         warn about flatten on an alias if the target also has it.
1792         * cgraph.h (symtab_node::get_alias_target_tree): New.
1794 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
1796         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
1797         period to symbol name.
1798         (tls_get_addr_internal<mode>): Same.
1800 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
1802         PR c/99323
1803         * diagnostic-show-locus.c
1804         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
1805         column 0.
1807 2021-03-02  Martin Sebor  <msebor@redhat.com>
1809         PR middle-end/99276
1810         * builtins.c (warn_for_access): Remove stray warning text.
1812 2021-03-02  Martin Sebor  <msebor@redhat.com>
1814         PR middle-end/99295
1815         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
1816         property.
1818 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
1820         PR debug/99319
1821         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
1822         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
1823         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
1824         DW_MACRO_define_strx and DW_MACRO_undef_strx.
1825         (save_macinfo_strings): Use DW_MACRO_*_str* even with
1826         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
1827         DW_MACRO_undef_strx.
1829 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
1831         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
1832         builtin signature.
1833         (BT_FN_V8HI_V8HI_UINT): Likewise.
1834         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
1835         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
1836         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
1837         New builtin definitions.
1838         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
1839         vector extension version.
1840         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
1841         available with current -march level.
1842         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
1843         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
1844         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
1845         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
1846         (vec_extend_to_fp32_lo): Likewise.
1847         (vec_round_from_fp32): Likewise.
1848         (vec_convert_to_fp16): Likewise.
1849         (vec_convert_from_fp16): Likewise.
1850         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
1851         (vclfnls_v8hi): Likewise.
1852         (vcrnfs_v8hi): Likewise.
1853         (vcfn_v8hi): Likewise.
1854         (vcnf_v8hi): Likewise.
1856 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
1858         * common/config/s390/s390-common.c (processor_flags_table): New entry.
1859         * config.gcc: Enable arch14 for --with-arch and --with-tune.
1860         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
1861         arch14 for unknown CPU models.
1862         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
1863         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
1864         (s390_get_sched_attrmask): Likewise.
1865         (s390_get_unit_mask): Likewise.
1866         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
1867         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
1868         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
1869         (TARGET_NNPA_P): New macro definitions.
1870         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
1871         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
1873 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
1875         PR middle-end/95757
1876         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
1877         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
1878         != 1 comparisons if name is lhs of a comparison.
1880 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
1882         PR target/44107
1883         PR target/48097
1884         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
1885         * config/darwin.c (darwin_should_restore_cfa_state): New.
1886         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
1887         * doc/tm.texi: Regenerated.
1888         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
1889         * dwarf2cfi.c (connect_traces): If the target requests, restore
1890         the CFA expression after a DW_CFA_restore.
1891         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
1893 2021-03-01  Martin Liska  <mliska@suse.cz>
1895         PR target/99313
1896         * optc-save-gen.awk: Add 4 more exceptions.
1898 2021-03-01  Nathan Sidwell  <nathan@acm.org>
1900         PR c++/99294
1901         * tree.h (TYPE_ALIGN_RAW): New accessor.
1902         (TYPE_ALIGN): Use it.
1904 2021-03-01  Jan Hubicka  <jh@suse.cz>
1906         PR ipa/98338
1907         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
1909 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
1911         PR target/99234
1912         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
1913         point the hard frame pointer to the SSE register save area instead
1914         of the general register save area.  Perform only minimal adjustment
1915         for small frames if it is initially not correctly aligned.
1916         (ix86_expand_prologue): Remove early saves for a SEH target.
1917         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
1919 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
1921         PR c/99304
1922         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
1923         typo - referneced -> referenced.
1924         * tree.c (component_ref_size): Fix comment typo -
1925         refernce -> reference.
1926         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
1927         traling -> trailing.
1928         (aliasing_component_refs_p): Fix comment typos -
1929         refernce -> reference and refernece -> reference and
1930         traling -> trailing.
1931         (nonoverlapping_refs_since_match_p): Fix comment typo -
1932         referneces -> references.
1933         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
1934         referneces -> references.
1936 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
1938         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
1939         diagnostic message to avoid use of a contraction and format
1940         warning.
1942 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
1944         PR other/99288
1945         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
1946         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
1947         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
1948         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
1949         typos.
1951 2021-02-26  Richard Biener  <rguenther@suse.de>
1953         PR middle-end/99281
1954         * expr.c (store_field): For calls with return-slot optimization
1955         and addressable return type expand the store directly.
1957 2021-02-26  Richard Biener  <rguenther@suse.de>
1959         PR c/99275
1960         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
1962 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
1964         PR target/99279
1965         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
1966         with an "if" test.
1968 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
1970         * config.gcc: Add rs6000-pcrel-opt.o.
1971         * config/rs6000/rs6000-pcrel-opt.c: New file.
1972         * config/rs6000/pcrel-opt.md: New file.
1973         * config/rs6000/predicates.md: Add d_form_memory predicate.
1974         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
1975         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
1976         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
1977         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
1978         and make_pass_pcrel_opt().
1979         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
1980         (rs6000_option_override_internal): Add pcrel-opt.
1981         (rs6000_delegitimize_address): Support pcrel-opt.
1982         (rs6000_opt_masks): Add pcrel-opt.
1983         (pcrel_opt_valid_mem_p): New function.
1984         (reg_to_non_prefixed): Make global.
1985         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
1986         (output_pcrel_opt_reloc): New function.
1987         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
1988         (pcrel_extern_addr): Set loads_extern_addr.
1989         Add include for pcrel-opt.md.
1990         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
1991         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
1992         pcrel-opt.md.
1994 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
1996         PR target/98996
1997         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
1998         If TARGET_64BIT and dest is SUBREG, we check the width, if it
1999         equal to SImode, we use SImode operation, just like what we are
2000         doing for REG one.
2002 2021-02-26  Marek Polacek  <polacek@redhat.com>
2004         * builtins.c (warn_for_access): Fix typos.
2006 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
2008         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
2009         mark in front of the immediate quantity.
2010         (<optab>_rolsi3_uxtw): Likewise.
2012 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
2014         PR target/99271
2015         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
2016         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
2017         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
2018         address and disable when the FPCXT is not available.
2019         (nonsecure_call_value_reg_thumb2): Likewise.
2021 2021-02-25  Nathan Sidwell  <nathan@acm.org>
2023         PR c++/99166
2024         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
2026 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
2028         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
2030 2021-02-25  Richard Biener  <rguenther@suse.de>
2032         PR tree-optimization/99253
2033         * tree-vect-loop.c (check_reduction_path): First compute
2034         code, then verify out-of-loop uses.
2036 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
2038         PR target/95798
2039         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
2041 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
2043         PR tree-optimization/80635
2044         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
2045         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
2046         has mode precision.
2048 2021-02-25  Richard Biener  <rguenther@suse.de>
2050         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
2051         load_map population.
2052         (vect_match_slp_patterns_2): Revert part of last change.
2053         (vect_analyze_slp): Do not interleave optimize_load_redistribution
2054         with pattern detection but do it afterwards.  Dump the
2055         whole SLP graph after pattern recognition and load
2056         redistribution optimization finished.
2058 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
2060         PR fortran/99226
2061         * omp-low.c (struct omp_context): Add teams_nested_p and
2062         nonteams_nested_p members.
2063         (scan_omp_target): Diagnose teams nested inside of target with other
2064         directives strictly nested inside of the same target.
2065         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
2066         ctx->nonteams_nested_p as needed.
2068 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
2070         PR inline-asm/99123
2071         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
2073 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
2075         * config/cris/cris.c (cris_expand_prologue): Set
2076         current_function_static_stack_size, if flag_stack_usage_info.
2078 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
2080         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
2081         (rs6000_final_prescan_insn): Adjust.
2082         (rs6000_asm_output_opcode): Likewise.
2084 2021-02-24  Martin Sebor  <msebor@redhat.com>
2086         PR middle-end/97172
2087         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
2088         from function arguments.
2090 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
2092         PR tree-optimization/99220
2093         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
2094         node from cache when it's about to be deleted.
2096 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
2098         PR tree-optimization/99225
2099         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
2100         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
2101         build_int_cst (..., 1).  Formatting fixes.
2103 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
2105         PR tree-optimization/99149
2106         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
2107         buffer.
2108         (vect_slp_reset_pattern): Remove.
2109         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
2110         (complex_mul_pattern::build, complex_fma_pattern::build,
2111         complex_fms_pattern::build): Fix ref counts.
2112         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
2113         when node is being deleted.
2114         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
2115         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
2116         stores.
2117         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
2119 2021-02-24  Matthias Klose  <doko@ubuntu.com>
2121         Revert:
2122         2020-12-07  Matthias Klose  <doko@ubuntu.com>
2124         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
2125         and ENABLE_RTL_FLAG_CHECKING.
2127 2021-02-24  Richard Biener  <rguenther@suse.de>
2129         PR c/99224
2130         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
2132 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
2134         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
2135         (vsx_assemble_pair): ...to this.
2136         (*mma_assemble_pair): Rename from this...
2137         (*vsx_assemble_pair): ...to this.
2138         (mma_disassemble_pair): Rename from this...
2139         (vsx_disassemble_pair): ...to this.
2140         (*mma_disassemble_pair): Rename from this...
2141         (*vsx_disassemble_pair): ...to this.
2142         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
2143         BU_COMPAT): New macros.
2144         (mma_assemble_pair): Rename from this...
2145         (vsx_assemble_pair): ...to this.
2146         (mma_disassemble_pair): Rename from this...
2147         (vsx_disassemble_pair): ...to this.
2148         (mma_assemble_pair): New compatibility built-in.
2149         (mma_disassemble_pair): Likewise.
2150         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
2151         (RS6000_BUILTIN_COMPAT): Define.
2152         (bdesc_compat): New.
2153         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
2154         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
2155         and VSX_BUILTIN_ASSEMBLE_PAIR.
2156         (rs6000_init_builtins): Register compatibility built-ins.
2157         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
2158         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
2159         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
2160         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
2161         (__builtin_vsx_assemble_pair): ...to this.
2162         (__builtin_mma_disassemble_pair): Rename from this...
2163         (__builtin_vsx_disassemble_pair): ...to this.
2165 2021-02-23  Martin Liska  <mliska@suse.cz>
2167         PR sanitizer/99168
2168         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
2169         with different alignment. That leads to an invalid red zone
2170         size allocated in runtime.
2172 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
2174         PR tree-optimization/99204
2175         * fold-const.c (fold_read_from_constant_string): Check that
2176         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
2178 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
2179             Kewen Lin  <linkw@gcc.gnu.org>
2181         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
2182         (rotl<mode>3_insert_3): ...this.
2183         (plus_ior_xor): New code_iterator.
2184         (define_split for GPR rl*imi): New splitter.
2185         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
2186         for integer merging.
2188 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2190         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
2191         Define.
2192         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
2193         into a register when the above is enabled.
2194         * config/aarch64/aarch64.c (neoversev1_tunings):
2195         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
2196         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
2198 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
2200         * config/cris/cris.c (cris_print_operand) <'T'>: Change
2201         valid operand from is now an addi mult-value to shift-value.
2202         * config/cris/cris.md (*addi): Change expression of scaled
2203         operand from mult to ashift.
2204         * config/cris/cris.md (*addi_reload): New insn_and_split.
2206 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
2208         PR target/85074
2209         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
2210         hook_bool_const_tree_hwi_hwi_const_tree_true.
2211         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
2213 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2215         PR rtl-optimization/98791
2216         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
2217         for unordered modes.
2219 2021-02-22  Martin Liska  <mliska@suse.cz>
2221         * tree-inline.c (inline_forbidden_p): Set
2222         inline_forbidden_reason.
2224 2021-02-22  Richard Biener  <rguenther@suse.de>
2226         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
2227         costed subgraph.
2229 2021-02-22  Richard Biener  <rguenther@suse.de>
2231         PR tree-optimization/99165
2232         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
2233         Accumulate changed to ret.
2235 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
2237         Revert:
2238         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
2240         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
2242 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
2244         PR target/99134
2245         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
2246         pattern.
2247         (trunctf<DFP_ALL:mode>2): Likewise.
2248         (trunctdtf2_vr): Likewise.
2249         (trunctdtf2): Likewise.
2250         (extend<DFP_ALL:mode>tf2_vr): Likewise.
2251         (extend<DFP_ALL:mode>tf2): Likewise.
2252         (extendtftd2_vr): Likewise.
2253         (extendtftd2): Likewise.
2255 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
2257         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
2258         add memory alternative.
2259         (tf_to_fprx2): New pattern.
2261 2021-02-19  Martin Sebor  <msebor@redhat.com>
2263         PR c/97172
2264         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
2265         (attr_access::free_lang_data): Remove a spurious test.
2267 2021-02-19  Nathan Sidwell  <nathan@acm.org>
2269         * doc/invoke.texi (flang-info-module-read): Document.
2271 2021-02-19  Martin Liska  <mliska@suse.cz>
2273         PR translation/99167
2274         * params.opt: Fix typo.
2276 2021-02-19  Richard Biener  <rguenther@suse.de>
2278         PR middle-end/99122
2279         * tree-inline.c (inline_forbidden_p): Do not inline functions
2280         with VLA arguments or return value.
2282 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
2284         PR target/98998
2285         * config/arm/arm.md (*stack_protect_combined_set_insn,
2286         *stack_protect_combined_test_insn): If force_const_mem result
2287         is not valid general operand, force its address into the destination
2288         register first.
2290 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
2292         PR ipa/99034
2293         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
2294         pad or non-local label, put FORCED_LABELs from bb b after that label
2295         rather than before it.
2297 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2299         PR target/98657
2300         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
2301         expand_vector_broadcast' to emit the vec_duplicate operand.
2303 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
2305         PR rtl-optimization/96264
2306         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
2307         hard regs.
2309 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
2311         PR target/99113
2312         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
2313         looking up the retain attribute.
2314         (resolve_unique_section): Likewise.
2315         (get_variable_section): Likewise.
2316         (switch_to_section): Likewise.  Warn when a symbol without the
2317         retain attribute and a symbol with the retain attribute are
2318         placed in the section with the same name, instead of the used
2319         attribute.
2320         * doc/extend.texi: Document the "retain" attribute.
2322 2021-02-18  Nathan Sidwell  <nathan@acm.org>
2324         PR c++/99023
2325         * doc/invoke.texi (flang-info-include-translate): Document header
2326         lookup behaviour.
2328 2021-02-18  Richard Biener  <rguenther@suse.de>
2330         PR middle-end/99122
2331         * ipa-fnsummary.c (analyze_function_body): Set
2332         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
2333         * tree-inline.c (insert_init_debug_bind): Pass NULL for
2334         error_mark_node values.
2335         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
2336         values.
2337         (setup_one_parameter): Delay force_value_to_type until when
2338         it's needed.
2340 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
2342         PR tree-optimization/99142
2343         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
2345 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
2347         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
2348         wide_int_bitmask::wide_int_bitmask (uint64_t),
2349         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
2350         wide_int_bitmask::operator ~ () const,
2351         wide_int_bitmask::operator | (wide_int_bitmask) const,
2352         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
2353         instead of inline.
2354         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
2355         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
2356         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
2357         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
2358         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
2359         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
2360         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
2361         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
2362         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
2363         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
2364         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
2365         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
2366         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
2367         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
2368         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
2369         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
2370         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
2371         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
2372         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
2373         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
2374         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
2375         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
2376         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
2377         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
2379 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
2381         PR middle-end/99109
2382         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
2383         (build_printable_array_type): ... this.  Add nelts argument.  For
2384         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
2385         nelts, call build_array_type_nelts.
2386         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
2387         instead of build_zero_elt_array_type and build_array_type_nelts.
2389 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
2391         PR target/99104
2392         * config/i386/i386.c (distance_non_agu_define): Don't call
2393         extract_insn_cached here.
2394         (ix86_lea_outperforms): Save and restore recog_data around call
2395         to distance_non_agu_define and distance_agu_use.
2396         (ix86_ok_to_clobber_flags): Remove.
2397         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
2398         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
2399         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
2400         into define_insn.  Move the splitting to define_peephole2 and
2401         check there using peep2_regno_dead_p if FLAGS_REG is dead.
2403 2021-02-17  Julian Brown  <julian@codesourcery.com>
2405         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
2406         for non-decls.
2408 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
2410         PR target/98491
2411         * config/mips/mips.c (mips_symbol_insns): Do not use
2412         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
2414 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
2416         PR inline-asm/98096
2417         * stmt.c (resolve_operand_name_1): Take inout operands into account
2418         for access to labels by names.
2419         * doc/extend.texi: Describe counting operands for accessing labels.
2421 2021-02-16  Richard Biener  <rguenther@suse.de>
2423         PR tree-optimization/38474
2424         * tree-ssa-structalias.c (variable_info::address_taken): New.
2425         (new_var_info): Initialize address_taken.
2426         (process_constraint): Set address_taken.
2427         (solve_constraints): Use the new address_taken flag rather
2428         than is_reg_var for sorting variables.
2429         (dump_constraint): Dump the variable number if the name
2430         is just NULL.
2432 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
2434         PR target/99100
2435         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
2436         multiply by 4096 and for inbranch by 8192.
2437         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
2438         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
2440 2021-02-15  Maya Rashish  <coypu@sdf.org>
2442         * config/aarch64/aarch64.c (aarch64_init_builtins):
2443         Call SUBTARGET_INIT_BUILTINS.
2445 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
2447         PR rtl-optimization/98872
2448         * init-regs.c (initialize_uninitialized_regs): Skip initialization
2449         if CONST0_RTX is NULL.
2451 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
2453         PR rtl-optimization/98863
2454         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
2455         (function_info::build_info): Turn into a declaration, moving the
2456         definition to internals.h.
2457         (function_info::bb_walker): Declare.
2458         (function_info::create_reg_use): Likewise.
2459         (function_info::calculate_potential_phi_regs): Take a build_info
2460         parameter.
2461         (function_info::place_phis, function_info::create_ebbs): Declare.
2462         (function_info::calculate_ebb_live_in_for_debug): Likewise.
2463         (function_info::populate_backedge_phis): Delete.
2464         (function_info::start_block, function_info::end_block): Declare.
2465         (function_info::populate_phi_inputs): Delete.
2466         (function_info::m_potential_phi_regs): Move information to build_info.
2467         * rtl-ssa/internals.h: New file.
2468         (function_info::bb_phi_info): New class.
2469         (function_info::build_info): Moved from functions.h.
2470         Add a constructor and destructor.
2471         (function_info::build_info::ebb_use): Delete.
2472         (function_info::build_info::ebb_def): Likewise.
2473         (function_info::build_info::bb_live_out): Likewise.
2474         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
2475         (function_info::build_info::potential_phi_regs): Likewise.
2476         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
2477         (function_info::build_info::ebb_def_regs): Likewise.
2478         (function_info::build_info::bb_phis): Likewise.
2479         (function_info::build_info::bb_mem_live_out): Likewise.
2480         (function_info::build_info::bb_to_rpo): Likewise.
2481         (function_info::build_info::def_stack): Likewise.
2482         (function_info::build_info::old_def_stack_limit): Likewise.
2483         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
2484         Remove the regno argument.  Push the previous definition onto the
2485         definition stack where necessary.
2486         * rtl-ssa/accesses.cc: Include internals.h.
2487         * rtl-ssa/changes.cc: Likewise.
2488         * rtl-ssa/blocks.cc: Likewise.
2489         (function_info::build_info::build_info): Define.
2490         (function_info::build_info::~build_info): Likewise.
2491         (function_info::bb_walker): New class.
2492         (function_info::bb_walker::bb_walker): Define.
2493         (function_info::add_live_out_use): Convert a logarithmic-complexity
2494         test into a linear one.  Allow the same definition to be passed
2495         multiple times.
2496         (function_info::calculate_potential_phi_regs): Moved from
2497         functions.cc.  Take a build_info parameter and store the
2498         information there instead.
2499         (function_info::place_phis): New function.
2500         (function_info::add_entry_block_defs): Update call to record_reg_def.
2501         (function_info::calculate_ebb_live_in_for_debug): New function.
2502         (function_info::add_phi_nodes): Use bb_phis to decide which
2503         registers need phi nodes and initialize ebb_def_regs accordingly.
2504         Do not add degenerate phis here.
2505         (function_info::add_artificial_accesses): Use create_reg_use.
2506         Assert that all definitions are listed in the DF LR sets.
2507         Update call to record_reg_def.
2508         (function_info::record_block_live_out): Record live-out register
2509         values in the phis of successor blocks.  Use the live-out set
2510         when processing the last block in an EBB, instead of always
2511         using the live-in sets of successor blocks.  AND the live sets
2512         with the set of registers that have been defined in the EBB,
2513         rather than with all potential phi registers.  Cope correctly
2514         with branches back to the start of the current EBB.
2515         (function_info::start_block): New function.
2516         (function_info::end_block): Likewise.
2517         (function_info::populate_phi_inputs): Likewise.
2518         (function_info::create_ebbs): Likewise.
2519         (function_info::process_all_blocks): Rewrite into a multi-phase
2520         process.
2521         * rtl-ssa/functions.cc: Include internals.h.
2522         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
2523         (function_info::init_function_data): Remove caller.
2524         * rtl-ssa/insns.cc: Include internals.h
2525         (function_info::create_reg_use): New function.  Lazily any
2526         degenerate phis needed by the linear RPO view.
2527         (function_info::record_use): Use create_reg_use.  When processing
2528         debug uses, use potential_phi_regs and test it before checking
2529         whether the register is live on entry to the current EBB.  Lazily
2530         calculate ebb_live_in_for_debug.
2531         (function_info::record_call_clobbers): Update call to record_reg_def.
2532         (function_info::record_def): Likewise.
2534 2021-02-15  Martin Liska  <mliska@suse.cz>
2536         * toplev.c (init_asm_output): Free output of
2537         gen_command_line_string function.
2538         (process_options): Likewise.
2540 2021-02-15  Martin Liska  <mliska@suse.cz>
2542         * params.opt: Add 2 missing Param keywords.
2544 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
2546         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
2548 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
2550         PR tree-optimization/99079
2551         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
2552         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
2553         require both type and TREE_TYPE (@1) to be integral types and either
2554         type having smaller or equal precision, or TREE_TYPE (@1) being
2555         unsigned type, or type being signed type.  If TREE_TYPE (@1)
2556         doesn't have wrapping overflow, perform the subtraction of one in
2557         unsigned type.
2559 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
2560             Richard Biener  <rguether@suse.de>
2562         PR ipa/97346
2563         * ipa-reference.c (ipa_init): Only conditinally initialize
2564         reference_vars_to_consider.
2565         (propagate): Conditionally deninitialize reference_vars_to_consider.
2566         (ipa_reference_write_optimization_summary): Sanity check that
2567         reference_vars_to_consider is not allocated.
2569 2021-02-13  Levy Hsu  <admin@levyhsu.com>
2571         PR target/97417
2572         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
2573         extend parameter to get_si_mem_base_reg declaration.
2574         (get_si_mem_base_reg): Add extend parameter.  Set it.
2575         (analyze): Pass extend arg to get_si_mem_base_reg.
2576         (transform): Likewise.  Use it when rewriting mems.
2577         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
2578         loads and emit sign/zero extending load followed by subreg move.
2580 2021-02-13  Jim Wilson  <jimw@sifive.com>
2582         PR target/97417
2583         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
2584         exit when !reload_completed.  Only perform check for compressed reg
2585         if reload_completed.
2586         (riscv_rtx_costs): In MEM case, when optimizing for size and
2587         shorten memrefs, if not compressible, then increase cost.
2589 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
2591         PR rtl-optimization/98439
2592         * recog.c (pass_split_before_regstack::gate): Enable even when
2593         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
2594         on.
2596 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
2598         PR target/96166
2599         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
2600         swap of V2SImode elements in memory into DImode memory rotate by 32.
2602 2021-02-12  Martin Sebor  <msebor@redhat.com>
2604         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
2606 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
2608         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
2609         m_temp_obstack rather than m_obstack to allocate the temporary use.
2611 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
2613         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
2614         as read-modify operations.
2616 2021-02-12  Richard Biener  <rguenther@suse.de>
2618         PR middle-end/38474
2619         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
2620         fbi->aa_walk_budget is bigger than zero.  Update
2621         fbi->aa_walk_budget.
2622         (param_change_prob): Likewise.
2623         * ipa-prop.c (detect_type_change_from_memory_writes):
2624         Properly account walk_aliased_vdefs.
2625         (parm_preserved_before_stmt_p): Canonicalize updates.
2626         (parm_ref_data_preserved_p): Likewise.
2627         (parm_ref_data_pass_through_p): Likewise.
2628         (determine_known_aggregate_parts): Account own alias queries.
2630 2021-02-12  Martin Liska  <mliska@suse.cz>
2632         * opts-common.c (decode_cmdline_option): Release werror_arg.
2633         * opts.c (gen_producer_string): Release output of
2634         gen_command_line_string.
2636 2021-02-12  Richard Biener  <rguenther@suse.de>
2638         PR tree-optimization/38474
2639         * params.opt (-param=max-store-chains-to-track=): New param.
2640         (-param=max-stores-to-track=): Likewise.
2641         * doc/invoke.texi (max-store-chains-to-track): Document.
2642         (max-stores-to-track): Likewise.
2643         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
2644         New.
2645         (pass_store_merging::m_n_stores): Likewise.
2646         (pass_store_merging::terminate_and_process_chain): Update
2647         m_n_stores and m_n_chains.
2648         (pass_store_merging::process_store): Likewise.   Terminate
2649         oldest chains if the number of stores or chains get too large.
2650         (imm_store_chain_info::terminate_and_process_chain): Dump
2651         chain length.
2653 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
2655         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
2656         the cold section, emit a nop before the directive if the previous
2657         active instruction can throw.
2659 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
2661         PR target/99041
2662         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
2663         memory addresses that are legal for quad word accesses.
2665 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
2667         PR target/98931
2668         * config/arm/thumb2.md (*doloop_end_internal): Generate
2669         alternative sequence to handle long range branches.
2671 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
2673         PR tree-optimization/98772
2674         * optabs-tree.c (supportable_half_widening_operation): New function
2675         to check for supportable V8QI->V8HI widening patterns.
2676         * optabs-tree.h (supportable_half_widening_operation): New function.
2677         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
2678         to create promotion stmts for V8QI->V8HI widening patterns.
2679         (vectorizable_conversion): Add case for V8QI->V8HI.
2681 2021-02-11  Richard Biener  <rguenther@suse.de>
2683         * sparseset.h (SPARSESET_ELT_BITS): Remove.
2684         (SPARSESET_ELT_TYPE): Use unsigned int.
2685         * fwprop.c: Do not include sparseset.h.
2687 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
2689         PR c++/99035
2690         * varasm.c (declare_weak): For -fsyntax-only, allow even
2691         TREE_ASM_WRITTEN function decls.
2693 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
2695         PR target/99025
2696         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
2697         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
2698         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
2699         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
2700         calling simplify_gen_subreg on it.
2702 2021-02-10  Martin Liska  <mliska@suse.cz>
2704         * config/nvptx/nvptx.c (nvptx_option_override): Use
2705         flag_patchable_function_entry instead of the removed
2706         function_entry_patch_area_size.
2708 2021-02-10  Martin Liska  <mliska@suse.cz>
2710         PR tree-optimization/99002
2711         PR tree-optimization/99026
2712         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
2713         leak when adjacent cases are merged.
2714         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
2715         release_clusters.
2716         (make_pass_lower_switch): Remove trailing whitespace.
2717         * tree-switch-conversion.h (release_clusters): New.
2719 2021-02-10  Richard Biener  <rguenther@suse.de>
2721         PR rtl-optimization/99054
2722         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
2723         (fixup_partitions): Adjust.
2724         (rtl_verify_edges): Likewise.
2726 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
2728         PR middle-end/99007
2729         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
2730         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
2731         calls.
2733 2021-02-10  Richard Biener  <rguenther@suse.de>
2735         PR ipa/99029
2736         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
2737         for callees.
2739 2021-02-10  Richard Biener  <rguenther@suse.de>
2741         PR tree-optimization/99024
2742         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
2743         clear loop->aux if it is associated with the destroyed loop_vinfo.
2745 2021-02-10  Martin Liska  <mliska@suse.cz>
2747         PR tree-optimization/99002
2748         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
2749         in the function.
2751 2021-02-10  Martin Liska  <mliska@suse.cz>
2753         PR ipa/99003
2754         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
2755         a reference exists.
2757 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
2759         PR debug/98755
2760         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
2761         at class scope for DWARF5+.
2763 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
2765         PR rtl-optimization/96015
2766         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
2767         (relax_delay_slots): When deleting a jump to the next active
2768         instruction over a barrier, first delete the barrier if the
2769         jump is the only way to reach the target label.
2771 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2773         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
2774         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
2775         vector multiplies and vect.alu for SSRA.
2776         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
2777         vect.mul cost field.
2778         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
2779         * config/arm/arm.c: Likewise.
2781 2021-02-09  Richard Biener  <rguenther@suse.de>
2783         PR tree-optimization/98863
2784         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
2785         * tree-ssa-sccvn.c (last_pushed_avail): New global.
2786         (rpo_elim::eliminate_push_avail): Chain pushed avails.
2787         (unwind_state::avail_top): Add.
2788         (do_unwind): Rewrite unwinding of avail entries.
2789         (do_rpo_vn): Initialize last_pushed_avail and
2790         avail_top of the undo state.
2792 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
2794         PR middle-end/99004
2795         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
2796         const char * to char * and free those pointers after use.
2798 2021-02-09  Richard Biener  <rguenther@suse.de>
2800         PR tree-optimization/99017
2801         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
2802         zero vector cost entries.
2804 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2806         PR middle-end/98974
2807         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
2808         parameter in vectorizable_condition.
2810 2021-02-08  Richard Biener  <rguenther@suse.de>
2812         PR lto/96591
2813         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
2815 2021-02-08  Martin Liska  <mliska@suse.cz>
2817         PR lto/98971
2818         * cfgexpand.c (pass_expand::execute): Parse per-function option
2819         flag_patchable_function_entry and use it.
2820         * common.opt: Remove function_entry_patch_area_size and
2821         function_entry_patch_area_start global variables.
2822         * opts.c (parse_and_check_patch_area): New function.
2823         (common_handle_option): Use it.
2824         * opts.h (parse_and_check_patch_area): New function.
2825         * toplev.c (process_options): Parse and use
2826         function_entry_patch_area_size.
2828 2021-02-08  Martin Sebor  <msebor@redhat.com>
2830         * doc/extend.texi (attribute malloc): Correct typos.
2832 2021-02-05  Nathan Sidwell  <nathan@acm.org>
2834         PR driver/98943
2835         * gcc.c (driver::maybe_run_linker): Check for input file
2836         accessibility if not linking.
2838 2021-02-05  Richard Biener  <rguenther@suse.de>
2840         PR tree-optimization/98855
2841         * tree-vectorizer.h (add_stmt_cost): New overload.
2842         * tree-vect-slp.c (li_cost_vec_cmp): New.
2843         (vect_bb_slp_scalar_cost): Cost individual loop regions
2844         separately.  Account for the scalar instance root stmt.
2846 2021-02-05  Tom de Vries  <tdevries@suse.de>
2848         PR debug/98656
2849         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
2850         argument.
2851         (bit_test_cluster::emit): Reuse location_t for newly created
2852         gswitch statement.
2853         (switch_decision_tree::try_switch_expansion): Preserve
2854         location_t.
2855         * tree-switch-conversion.h: Change function signatures.
2857 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
2859         PR target/98957
2860         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
2861         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
2862         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
2863         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
2865 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2867         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
2868         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
2869         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
2870         (vget_high_f16): Reimplement using new builtin.
2871         (vget_high_f32): Likewise.
2872         (vget_high_f64): Likewise.
2873         (vget_high_p8): Likewise.
2874         (vget_high_p16): Likewise.
2875         (vget_high_p64): Likewise.
2876         (vget_high_s8): Likewise.
2877         (vget_high_s16): Likewise.
2878         (vget_high_s32): Likewise.
2879         (vget_high_s64): Likewise.
2880         (vget_high_u8): Likewise.
2881         (vget_high_u16): Likewise.
2882         (vget_high_u32): Likewise.
2883         (vget_high_u64): Likewise.
2885 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2887         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
2888         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
2889         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
2890         (vget_low_f16): Reimplement using new builtin.
2891         (vget_low_f32): Likewise.
2892         (vget_low_f64): Likewise.
2893         (vget_low_p8): Likewise.
2894         (vget_low_p16): Likewise.
2895         (vget_low_p64): Likewise.
2896         (vget_low_s8): Likewise.
2897         (vget_low_s16): Likewise.
2898         (vget_low_s32): Likewise.
2899         (vget_low_s64): Likewise.
2900         (vget_low_u8): Likewise.
2901         (vget_low_u16): Likewise.
2902         (vget_low_u32): Likewise.
2903         (vget_low_u64): Likewise.
2905 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
2907         * gcc.c (print_multilib_info): Check all required argument is provided
2908         by default arg.
2910 2021-02-05  liuhongt  <hongtao.liu@intel.com>
2912         PR target/98537
2913         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
2914         generate integer mask comparison for 128/256-bits vector when
2915         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
2916         delete redundant !maskcmp condition.
2917         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
2918         here.
2919         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
2920         condition directly to if (maskcmp), add extra check for
2921         cmpmode, it should be MODE_INT.
2922         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
2923         parameters op_true/op_false.
2924         (ix86_use_mask_cmp_p): New.
2926 2021-02-05  liuhongt  <hongtao.liu@intel.com>
2928         PR target/98172
2929         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
2930         Remove m_GENERIC from ~list.
2931         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
2933 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
2935         PR c/97932
2936         * diagnostic-show-locus.c (compatible_locations_p): Require
2937         locations in the same macro map to be either both from the
2938         macro definition, or both from the macro arguments.
2940 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
2942         * config/aarch64/aarch64-simd-builtins.def: Add
2943         [su]mull_hi_lane[q] builtin generator macros.
2944         * config/aarch64/aarch64-simd.md
2945         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
2946         (aarch64_<su>mull_hi_lane<mode>): Define.
2947         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
2948         (aarch64_<su>mull_hi_laneq<mode>): Define.
2949         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
2950         builtin instead of inline asm.
2951         (vmull_high_lane_s32): Likewise.
2952         (vmull_high_lane_u16): Likewise.
2953         (vmull_high_lane_u32): Likewise.
2954         (vmull_high_laneq_s16): Likewise.
2955         (vmull_high_laneq_s32): Likewise.
2956         (vmull_high_laneq_u16): Likewise.
2957         (vmull_high_laneq_u32): Liekwise.
2959 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
2961         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
2962         builtin generator macros.
2963         * config/aarch64/aarch64-simd.md
2964         (aarch64_<su>mull_hi_n<mode>_insn): Define.
2965         (aarch64_<su>mull_hi_n<mode>): Define.
2966         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
2967         instead of inline asm.
2968         (vmull_high_n_s32): Likewise.
2969         (vmull_high_n_u16): Likewise.
2970         (vmull_high_n_u32): Likewise.
2972 2021-02-04  Richard Biener  <rguenther@suse.de>
2974         PR tree-optimization/98855
2975         * tree-vect-loop.c (vectorizable_phi): Do not cost
2976         single-argument PHIs.
2977         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
2978         * tree-vect-stmts.c (vectorizable_bswap): Also perform
2979         costing for SLP operation.
2981 2021-02-04  Martin Liska  <mliska@suse.cz>
2983         * doc/extend.texi: Mention -mprefer-vector-width in target
2984         attributes.
2986 2021-02-03  Martin Sebor  <msebor@redhat.com>
2988         PR tree-optimization/98937
2989         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
2990         Flush pointer_query cache.
2992 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
2994         * config/rs6000/genfusion.pl (gen_2logical): Add missing
2995         fixes based on patch review.
2996         * config/rs6000/fusion.md: Regenerate file.
2998 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
3000         * config/rs6000/t-rs6000: Comment out auto generation of
3001         fusion.md for now.
3003 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
3005         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
3006         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
3007         (output_file_start): Add gfx908.
3008         * config/gcn/gcn.opt (gpu_type): Add gfx908.
3009         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
3010         (MULTILIB_DIRNAMES): Add gfx908.
3011         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
3012         (main): Recognize gfx908.
3013         * config/gcn/t-omp-device: Add gfx908.
3015 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
3017         * config/aarch64/aarch64-simd-builtins.def: Add
3018         [su]mlsl_hi_lane[q] builtin macro generators.
3019         * config/aarch64/aarch64-simd.md
3020         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
3021         (aarch64_<su>mlsl_hi_lane<mode>): Define.
3022         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
3023         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
3024         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
3025         builtin instead of inline asm.
3026         (vmlsl_high_lane_s32): Likewise.
3027         (vmlsl_high_lane_u16): Likewise.
3028         (vmlsl_high_lane_u32): Likewise.
3029         (vmlsl_high_laneq_s16): Likewise.
3030         (vmlsl_high_laneq_s32): Likewise.
3031         (vmlsl_high_laneq_u16): Likewise.
3032         (vmlsl_high_laneq_u32): Likewise.
3033         (vmlal_high_laneq_u32): Likewise.
3035 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
3037         * config/aarch64/aarch64-simd-builtins.def: Add
3038         [su]mlal_hi_lane[q] builtin generator macros.
3039         * config/aarch64/aarch64-simd.md
3040         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
3041         (aarch64_<su>mlal_hi_lane<mode>): Define.
3042         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
3043         (aarch64_<su>mlal_hi_laneq<mode>): Define.
3044         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
3045         builtin instead of inline asm.
3046         (vmlal_high_lane_s32): Likewise.
3047         (vmlal_high_lane_u16): Likewise.
3048         (vmlal_high_lane_u32): Likewise.
3049         (vmlal_high_laneq_s16): Likewise.
3050         (vmlal_high_laneq_s32): Likewise.
3051         (vmlal_high_laneq_u16): Likewise.
3052         (vmlal_high_laneq_u32): Likewise.
3054 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
3056         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
3057         builtin generator macros.
3058         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
3059         Define.
3060         (aarch64_<su>mlsl_hi_n<mode>): Define.
3061         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
3062         instead of inline asm.
3063         (vmlsl_high_n_s32): Likewise.
3064         (vmlsl_high_n_u16): Likewise.
3065         (vmlsl_high_n_u32): Likewise.
3067 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
3069         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
3070         builtin generator macros.
3071         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
3072         Define.
3073         (aarch64_<su>mlal_hi_n<mode>): Define.
3074         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
3075         instead of inline asm.
3076         (vmlal_high_n_s32): Likewise.
3077         (vmlal_high_n_u16): Likewise.
3078         (vmlal_high_n_u32): Likewise.
3080 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
3082         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
3083         generator macros.
3084         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
3085         Rename to...
3086         (aarch64_<su>mlal_hi<mode>_insn): This.
3087         (aarch64_<su>mlal_hi<mode>): Define.
3088         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
3089         instead of inline asm.
3090         (vmlal_high_s16): Likewise.
3091         (vmlal_high_s32): Likewise.
3092         (vmlal_high_u8): Likewise.
3093         (vmlal_high_u16): Likewise.
3094         (vmlal_high_u32): Likewise.
3096 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
3098         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
3099         after calling alter_subreg() on a (mem).
3101 2021-02-03  Martin Liska  <mliska@suse.cz>
3103         PR lto/98912
3104         * lto-streamer-out.c (produce_lto_section): Fill up missing
3105         padding.
3106         * lto-streamer.h (struct lto_section): Add _padding field.
3108 2021-02-03  Richard Biener  <rguenther@suse.de>
3110         * lto-streamer.c (lto_get_section_name): Free temporary
3111         buffer.
3112         * tree-loop-distribution.c
3113         (loop_distribution::merge_dep_scc_partitions): Free edge data.
3115 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
3117         PR middle-end/97487
3118         * ifcvt.c (noce_can_force_operand): New function.
3119         (noce_emit_move_insn): Use it.
3120         (noce_try_sign_mask): Likewise.  Formatting fix.
3122 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
3124         PR middle-end/97971
3125         * lra-constraints.c (process_alt_operands): For inline asm, don't call
3126         fatal_insn, but instead return false.
3128 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
3130         PR tree-optimization/98287
3131         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
3132         for V1DImode.
3134 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
3136         PR tree-optimization/98928
3137         * tree-vect-loop.c (vect_analyze_loop_2): Change
3138         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
3139         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
3140         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
3141         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
3143 2021-02-02  Richard Biener  <rguenther@suse.de>
3145         * gimple-loop-interchange.cc (prepare_data_references):
3146         Release vectors.
3147         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
3148         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
3149         * tree-vect-stmts.c (vectorizable_condition): Do not
3150         allocate vectors.
3151         (vectorizable_comparison): Likewise.
3153 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3155         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
3156         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
3157         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
3158         (vrsqrteq_u32): Likewise.
3160 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3162         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
3163         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
3164         (aarch64_sqxtun2<mode>_be): Likewise.
3165         (aarch64_sqxtun2<mode>): Likewise.
3166         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
3167         (vqmovun_high_s32): Likewise.
3168         (vqmovun_high_s64): Likewise.
3169         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
3171 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3173         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
3174         AUTO_FP flags.
3175         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
3177 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3179         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
3180         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
3181         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
3182         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
3183         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
3184         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
3185         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
3186         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
3188 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3190         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
3191         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
3192         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
3194 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3196         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
3197         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
3199 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3201         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
3202         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
3203         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
3204         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
3205         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
3206         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
3207         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
3208         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
3209         NONE builtin flags.
3211 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
3213         PR tree-optimization/98848
3214         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
3215         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
3217 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
3219         PR target/98743
3220         * expr.c: Check mode before calling store_expr.
3222 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
3224         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
3225         (VORNQ): Remove.
3226         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
3227         instruction using expression ior.
3228         (mve_vornq_u<mode>): New expander.
3229         (mve_vornq_f<mode>): Use ior code instead of unspec.
3230         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
3232 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
3234         * tree-nested.c (convert_nonlocal_reference_op): Move
3235         current_function_decl restore after re-gimplification.
3236         (convert_local_reference_op): Likewise.
3238 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3240         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
3241         Define builtins.
3242         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
3243         Define.
3244         (aarch64_rshrn<mode>_insn_be): Likewise.
3245         (aarch64_rshrn<mode>): Likewise.
3246         (aarch64_rshrn2<mode>_insn_le): Likewise.
3247         (aarch64_rshrn2<mode>_insn_be): Likewise.
3248         (aarch64_rshrn2<mode>): Likewise.
3249         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
3250         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
3251         using builtin.
3252         (vrshrn_high_n_s32): Likewise.
3253         (vrshrn_high_n_s64): Likewise.
3254         (vrshrn_high_n_u16): Likewise.
3255         (vrshrn_high_n_u32): Likewise.
3256         (vrshrn_high_n_u64): Likewise.
3257         (vrshrn_n_s16): Likewise.
3258         (vrshrn_n_s32): Likewise.
3259         (vrshrn_n_s64): Likewise.
3260         (vrshrn_n_u16): Likewise.
3261         (vrshrn_n_u32): Likewise.
3262         (vrshrn_n_u64): Likewise.
3264 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
3266         PR tree-optimization/98499
3267         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
3268         conservatively and assume all possible side-effects.
3270 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3272         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
3273         vec_unpacku_hi_): Define builtins.
3274         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
3275         builtin.
3276         (vmovl_high_s16): Likewise.
3277         (vmovl_high_s32): Likewise.
3278         (vmovl_high_u8): Likewise.
3279         (vmovl_high_u16): Likewise.
3280         (vmovl_high_u32): Likewise.
3282 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3284         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
3285         Define builtins.
3286         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
3287         pattern.
3288         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
3289         UNSPEC_UABDL.
3290         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
3291         builtin.
3292         (vabdl_s16): Likewise.
3293         (vabdl_s32): Likewise.
3294         (vabdl_u8): Likewise.
3295         (vabdl_u16): Likewise.
3296         (vabdl_u32): Likewise.
3297         * config/aarch64/iterators.md (ABDL): New int iterator.
3298         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
3300 2021-02-01  Martin Sebor  <msebor@redhat.com>
3302         * tree.h (BLOCK_VARS): Add comment.
3303         (BLOCK_SUBBLOCKS): Same.
3304         (BLOCK_SUPERCONTEXT): Same.
3305         (BLOCK_ABSTRACT_ORIGIN): Same.
3306         (inlined_function_outer_scope_p): Same.
3308 2021-02-01  Martin Sebor  <msebor@redhat.com>
3310         PR middle-end/97172
3311         * attribs.c (attr_access::free_lang_data): Define new function.
3312         * attribs.h (attr_access::free_lang_data): Declare new function.
3314 2021-02-01  Richard Biener  <rguenther@suse.de>
3316         * vec.h (auto_vec::auto_vec): Add memory stat parameters
3317         and pass them on.
3318         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
3320 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
3322         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
3323         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
3325 2021-02-01  Richard Biener  <rguenther@suse.de>
3327         PR rtl-optimization/98863
3328         * config/i386/i386-features.c (convert_scalars_to_vector):
3329         Set DF_RD_PRUNE_DEAD_DEFS.
3331 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
3333         * system.h (SIZE_MAX): Define if not already defined.
3335 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
3337         * config/rs6000/genfusion.pl (gen_2logical): New function to
3338         generate patterns for logical-logical fusion.
3339         * config/rs6000/fusion.md: Regenerated patterns.
3340         * config/rs6000/rs6000-cpus.def: Add
3341         OPTION_MASK_P10_FUSION_2LOGICAL.
3342         * config/rs6000/rs6000.c (rs6000_option_override_internal):
3343         Enable logical-logical fusion for p10.
3344         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
3346 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
3348         * config/rs6000/rs6000.opt: Add periods to new AIX options.
3350 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
3352         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
3353         (mabi=vec-default): New.
3354         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3355         __EXTABI__ for AIX Vector extended ABI.
3356         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
3357         extabi info.
3358         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
3359         are non-volatile.
3360         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
3362 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
3364         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
3365         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
3367 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
3369         PR target/97701
3370         * lra-constraints.c (in_class_p): Don't narrow class only for REG
3371         or MEM.
3373 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
3375         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
3376         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
3377         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
3379 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
3381         PR tree-optimization/98866
3382         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
3383         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
3384         (gori_map::m_maybe_invariant): Rename from all_outgoing.
3385         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
3386         (gori_map::is_export_p): Ditto.
3387         (gori_map::calculate_gori): Ditto.
3388         (gori_compute::set_range_invariant): New.
3389         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
3390         invariant for pointers evaluating to [1, +INF].
3392 2021-01-29  Richard Biener  <rguenther@suse.de>
3394         PR rtl-optimization/98863
3395         * config/i386/i386-features.c (remove_partial_avx_dependency):
3396         Do not perform DF analysis.
3397         (pass_data_remove_partial_avx_dependency): Remove
3398         TODO_df_finish.
3400 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
3402         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
3403         builtin generator macros.
3404         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
3405         Define.
3406         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
3407         instead of inline asm.
3408         (vmull_n_s32): Likewise.
3409         (vmull_n_u16): Likewise.
3410         (vmull_n_u32): Likewise.
3412 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3414         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
3415         Define builtins.
3416         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
3417         Rename to...
3418         (aarch64_<sur>abdl2<mode>): ... This.
3419         (<sur>sadv16qi): Adjust use of above.
3420         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
3421         builtin.
3422         (vabdl_high_s16): Likewise.
3423         (vabdl_high_s32): Likewise.
3424         (vabdl_high_u8): Likewise.
3425         (vabdl_high_u16): Likewise.
3426         (vabdl_high_u32): Likewise.
3428 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3430         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
3431         builtin.
3432         (uabal2): Likewise.
3433         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
3434         pattern.
3435         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
3436         UNSPEC_UABAL2.
3437         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
3438         builtin.
3439         (vabal_high_s16): Likewise.
3440         (vabal_high_s32): Likewise.
3441         (vabal_high_u8): Likewise.
3442         (vabal_high_u16): Likewise.
3443         (vabal_high_u32): Likewise.
3444         * config/aarch64/iterators.md (ABAL2): New mode iterator.
3445         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
3447 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3449         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
3450         builtin.
3451         (uabal): Likewise.
3452         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
3453         Rename to...
3454         (aarch64_<sur>abal<mode>): ... This
3455         (<sur>sadv16qi): Adust use of the above.
3456         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
3457         builtin.
3458         (vabal_s16): Likewise.
3459         (vabal_s32): Likewise.
3460         (vabal_u8): Likewise.
3461         (vabal_u16): Likewise.
3462         (vabal_u32): Likewise.
3464 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3466         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
3467         Define builtins.
3468         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
3469         Define.
3470         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
3471         builtin.
3472         (vaddlv_s16): Likewise.
3473         (vaddlv_u8): Likewise.
3474         (vaddlv_u16): Likewise.
3475         (vaddlvq_s8): Likewise.
3476         (vaddlvq_s16): Likewise.
3477         (vaddlvq_s32): Likewise.
3478         (vaddlvq_u8): Likewise.
3479         (vaddlvq_u16): Likewise.
3480         (vaddlvq_u32): Likewise.
3481         (vaddlv_s32): Likewise.
3482         (vaddlv_u32): Likewise.
3483         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
3484         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
3485         (Vwstype): New mode attribute.
3486         (Vwsuf): Likewise.
3487         (VWIDE_S): Likewise.
3488         (USADDLV): New int iterator.
3489         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
3491 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
3493         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
3494         builtin generator macros.
3495         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
3496         Define.
3497         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
3498         instead of inline asm.
3499         (vmlsl_lane_s32): Likewise.
3500         (vmlsl_lane_u16): Likewise.
3501         (vmlsl_lane_u32): Likewise.
3502         (vmlsl_laneq_s16): Likewise.
3503         (vmlsl_laneq_s32): Likewise.
3504         (vmlsl_laneq_u16): Likewise.
3505         (vmlsl_laneq_u32): Likewise.
3507 2021-01-29  Richard Biener  <rguenther@suse.de>
3509         * doc/invoke.texi (--param max-gcse-memory): Document unit
3510         of size.
3511         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
3512         * params.opt (--param max-gcse-memory): Adjust default and
3513         document unit of size.
3515 2021-01-29  Richard Biener  <rguenther@suse.de>
3517         PR rtl-optimization/98863
3518         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
3519         HOST_WIDE_INT for the memory estimate.
3521 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
3522             Richard Biener  <rguenther@suse.de>
3524         PR tree-optimization/97627
3525         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
3526         Do not analyze fake edges.
3528 2021-01-29  Richard Biener  <rguenther@suse.de>
3530         PR rtl-optimization/98144
3531         * df.h (df_mir_bb_info): Add con_visited member.
3532         * df-problems.c (df_mir_alloc): Initialize con_visited,
3533         do not fully populate IN and OUT.
3534         (df_mir_reset): Likewise.
3535         (df_mir_confluence_0): Set con_visited.
3536         (df_mir_confluence_n): Properly handle implicitely
3537         fully populated IN and OUT as designated by con_visited
3538         and update con_visited accordingly.
3540 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
3542         PR target/98849
3543         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
3544         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
3545         && !TARGET_REALLY_IWMMXT to conditions.
3547 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
3549         PR debug/98331
3550         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
3551         a BARRIER.
3553 2021-01-28  Marek Polacek  <polacek@redhat.com>
3555         PR c++/94775
3556         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
3557         the main variant, maybe reset it in its variants too.
3558         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
3559         (check_aligned_type): Check if TYPE_USER_ALIGN match.
3561 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
3563         PR target/98730
3564         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
3565         of constant zero for comparisons.
3567 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
3569         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
3570         support for mapping built-in function names for long double
3571         built-in functions if long double is IEEE 128-bit.
3573 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
3575         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
3576         builtin generator macros.
3577         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
3578         Define.
3579         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
3580         instead of inline asm.
3581         (vmlsl_n_s32): Likewise.
3582         (vmlsl_n_u16): Likewise.
3583         (vmlsl_n_u32): Likewise.
3585 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
3587         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
3588         builtin generator macros.
3589         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
3590         Define.
3591         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
3592         instead of inline asm.
3593         (vmlal_n_s32): Likewise.
3594         (vmlal_n_u16): Likewise.
3595         (vmlal_n_u32): Likewise.
3597 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3599         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
3600         builtin.
3601         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
3602         Define.
3603         (aarch64_shrn2<mode>_insn_be): Likewise.
3604         (aarch64_shrn2<mode>): Likewise.
3605         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
3606         using builtins.
3607         (vshrn_high_n_s32): Likewise.
3608         (vshrn_high_n_s64): Likewise.
3609         (vshrn_high_n_u16): Likewise.
3610         (vshrn_high_n_u32): Likewise.
3611         (vshrn_high_n_u64): Likewise.
3613 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3615         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
3616         builtin.
3617         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
3618         Define.
3619         (aarch64_shrn<mode>_insn_be): Likewise.
3620         (aarch64_shrn<mode>): Likewise.
3621         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
3622         builtins.
3623         (vshrn_n_s32): Likewise.
3624         (vshrn_n_s64): Likewise.
3625         (vshrn_n_u16): Likewise.
3626         (vshrn_n_u32): Likewise.
3627         (vshrn_n_u64): Likewise.
3628         * config/aarch64/iterators.md (vn_mode): New mode attribute.
3630 2021-01-28  Richard Biener  <rguenther@suse.de>
3632         PR rtl-optimization/80960
3633         * dse.c (check_mem_read_rtx): Call get_addr on the
3634         offsetted address.
3636 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
3637             David Edelsohn  <dje.gcc@gmail.com>
3639         PR target/98799
3640         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3641         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
3642         when -m32.
3643         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
3644         Delete.
3645         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
3646         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
3647         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
3648         directly.
3649         (rs6000_expand_vector_set_var): Delete.
3650         (rs6000_expand_vector_set_var_p9): Make static.
3651         (rs6000_expand_vector_set_var_p8): Make static.
3653 2021-01-28  Xing GUO  <higuoxing@gmail.com>
3655         * common/config/riscv/riscv-common.c
3656         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
3657         when `p` extension exists.
3659 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
3661         PR rtl-optimization/97684
3662         * ira.c (ira): Call ira_set_pseudo_classes before
3663         update_equiv_regs when it is necessary.
3665 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
3667         PR target/98853
3668         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
3669         %w0, %w1 and %2 instead of %0, %1 and %2.
3671 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
3673         * config/rs6000/genfusion.pl: New script to generate
3674         define_insn_and_split patterns so combine can arrange fused
3675         instructions next to each other.
3676         * config/rs6000/fusion.md: New file, generated fused instruction
3677         patterns for combine.
3678         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
3679         (non_update_memory_operand): New predicate.
3680         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
3681         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
3682         POWERPC_MASKS.
3683         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
3684         prototype.
3685         * config/rs6000/rs6000.c (rs6000_option_override_internal):
3686         Automatically set OPTION_MASK_P10_FUSION and
3687         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
3688         (rs600_opt_masks): Allow -mpower10-fusion
3689         in function attributes.
3690         (address_is_non_pfx_d_or_x): New function.
3691         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
3692         * config/rs6000/rs6000.md: Include fusion.md.
3693         * config/rs6000/rs6000.opt: Add -mpower10-fusion
3694         and -mpower10-fusion-ld-cmpi.
3695         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
3697 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
3699         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
3700         builtin generator macros.
3701         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
3702         Rename to...
3703         (aarch64_<su>mlal<mode>): This.
3704         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
3705         instead of inline asm.
3706         (vmlal_s16): Likewise.
3707         (vmlal_s32): Likewise.
3708         (vmlal_u8): Likewise.
3709         (vmlal_u16): Likewise.
3710         (vmlal_u32): Likewise.
3712 2021-01-27  Richard Biener  <rguenther@suse.de>
3714         PR tree-optimization/98854
3715         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
3716         PHIs from scalars when the number of CTORs matches the
3717         number of children.
3719 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
3721         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
3722         generator macro.
3723         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
3724         Rename to...
3725         (aarch64_mls_n<mode>): This.
3726         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
3727         instead of asm.
3728         (vmls_n_s32): Likewise.
3729         (vmls_n_u16): Likewise.
3730         (vmls_n_u32): Likewise.
3731         (vmlsq_n_s16): Likewise.
3732         (vmlsq_n_s32): Likewise.
3733         (vmlsq_n_u16): Likewise.
3734         (vmlsq_n_u32): Likewise.
3736 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
3738         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
3739         generator macro.
3740         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
3741         than asm.
3742         (vmls_s16): Likewise.
3743         (vmls_s32): Likewise.
3744         (vmls_u8): Likewise.
3745         (vmls_u16): Likewise.
3746         (vmls_u32): Likewise.
3747         (vmlsq_s8): Likewise.
3748         (vmlsq_s16): Likewise.
3749         (vmlsq_s32): Likewise.
3750         (vmlsq_u8): Likewise.
3751         (vmlsq_u16): Likewise.
3752         (vmlsq_u32): Likewise.
3754 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
3756         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
3757         generator macro.
3758         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
3759         Rename to...
3760         (aarch64_mla_n<mode>): This.
3761         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
3762         instead of asm.
3763         (vmla_n_s32): Likewise.
3764         (vmla_n_u16): Likewise.
3765         (vmla_n_u32): Likewise.
3766         (vmlaq_n_s16): Likewise.
3767         (vmlaq_n_s32): Likewise.
3768         (vmlaq_n_u16): Likewise.
3769         (vmlaq_n_u32): Likewise.
3771 2021-01-27  liuhongt  <hongtao.liu@intel.com>
3773         PR target/98833
3774         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
3775         (*sse2_eq<mode>3): Ditto.
3777 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
3779         * tree-pass.h (PROP_trees): Rename to ...
3780         (PROP_gimple): ... this.
3781         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
3782         * passes.c (execute_function_dump, execute_function_todo,
3783         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
3784         * varpool.c (ctor_for_folding): Likewise.
3786 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
3788         PR tree-optimization/97260
3789         * varpool.c: Include tree-pass.h.
3790         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
3791         non-TREE_SIDE_EFFECTS automatic variables.
3793 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
3795         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
3796         or -std=gnu++23.
3797         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
3798         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
3799         (gen_compile_unit_die): Recognise C++23.
3801 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
3803         PR bootstrap/98839
3804         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
3805         in comparison.
3807 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
3809         PR target/98681
3810         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
3811         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
3812         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
3814 2021-01-26  Richard Biener  <rguenther@suse.de>
3816         * gimple-pretty-print.c (dump_binary_rhs): Handle
3817         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
3819 2021-01-26  Richard Biener  <rguenther@suse.de>
3821         PR middle-end/98726
3822         * tree.h (vector_cst_int_elt): Remove.
3823         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
3824         make static.
3826 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
3828         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
3829         for V64DFmode min/max reductions.
3831 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
3833         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
3834         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
3835         two halves, one with x and the other with const0_rtx, ordered
3836         depending on endianity.
3838 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
3840         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
3841         temporaries not seen in binding block, and not about to be
3842         added as gimple variables.
3844 2021-01-25  Martin Sebor  <msebor@redhat.com>
3846         PR c++/98646
3847         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
3849 2021-01-25  Martin Liska  <mliska@suse.cz>
3851         * value-prof.c (get_nth_most_common_value): Use %s instead
3852         of %qs string.
3854 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
3856         PR debug/98811
3857         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
3858         readelf -wi is able to read the emitted .debug_info back.
3859         * configure: Regenerated.
3861 2021-01-25  Martin Liska  <mliska@suse.cz>
3863         PR gcov-profile/98739
3864         * common.opt: Add missing sign symbol.
3865         * value-prof.c (get_nth_most_common_value): Restore handling
3866         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
3867         PROFILE_REPRODUCIBILITY_MULTITHREADED.
3869 2021-01-25  Richard Biener  <rguenther@suse.de>
3871         PR middle-end/98807
3872         * tree.c (vector_element_bits): Always use precision of
3873         the element type for boolean vectors.
3875 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3877         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
3878         (ENDFILE_SPEC): Evaluate qnolinkcmds.
3880 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3882         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
3883         nostartfiles handling since this is already done by
3884         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
3885         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
3886         is already done by LINK_COMMAND_SPEC.
3887         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
3888         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
3889         evaluation.
3891 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
3893         PR testsuite/98771
3894         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
3895         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
3896         value rather than host size_t.
3897         (fold_const_call): Change type of s2 from size_t to
3898         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
3899         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
3900         instead of s2 as last argument.
3902 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
3904         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
3905         VCMLA_OP, VCMUL_OP): New.
3906         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
3907         * config/arm/neon.md (cmul<conj_op><mode>3): New.
3908         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
3909         UNSPEC_VCMUL_CONJ): New.
3910         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
3911         cml<fcmac1><conj_op><mode>4): New.
3913 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
3915         PR testsuite/97301
3916         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
3918 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
3920         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
3921         generator macro.
3922         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
3923         than asm.
3924         (vmla_s16): Likewise.
3925         (vmla_s32): Likewise.
3926         (vmla_u8): Likewise.
3927         (vmla_u16): Likewise.
3928         (vmla_u32): Likewise.
3929         (vmlaq_s8): Likewise.
3930         (vmlaq_s16): Likewise.
3931         (vmlaq_s32): Likewise.
3932         (vmlaq_u8): Likewise.
3933         (vmlaq_u16): Likewise.
3934         (vmlaq_u32): Likewise.
3936 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
3938         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
3939         directive.
3941 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
3943         PR debug/98796
3944         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
3945         filenames to emit, still emit the required 0 index directory and
3946         filename entries that match DW_AT_comp_dir and DW_AT_name of the
3947         compilation unit.
3949 2021-01-22  Marek Polacek  <polacek@redhat.com>
3951         PR c++/98545
3952         * doc/invoke.texi: Update C++ ABI Version 15 description.
3954 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3956         PR tree-optimization/98766
3957         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
3958         comparing against type size with param_avoid_fma_max_bits.
3960 2021-01-22  Richard Biener  <rguenther@suse.de>
3962         PR middle-end/98793
3963         * tree.c (vector_element_bits): Key single-bit bool vector on
3964         integer mode rather than not vector mode.
3966 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
3968         PR target/98093
3969         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3970         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
3971         platforms.
3972         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
3973         to call different path for P8 and P9.
3974         (rs6000_expand_vector_set_var_p9): New function.
3975         (rs6000_expand_vector_set_var_p8): New function.
3977 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
3979         PR target/79251
3980         PR target/98065
3981         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3982         Ajdust variable index vec_insert from address dereference to
3983         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
3984         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
3985         New declaration.
3986         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
3988 2021-01-22  Martin Liska  <mliska@suse.cz>
3990         PR gcov-profile/98739
3991         * profile.c (compute_value_histograms): Drop time profile for
3992         -fprofile-reproducible=multithreaded.
3994 2021-01-22  Nathan Sidwell  <nathan@acm.org>
3996         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
3997         existence here.
3999 2021-01-22  Richard Biener  <rguenther@suse.de>
4001         PR middle-end/98773
4002         * tree-data-ref.c (initalize_matrix_A): Revert previous
4003         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
4005 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
4007         PR tree-optimization/90248
4008         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
4009         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
4010         simplifications.
4011         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
4012         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
4014 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
4016         PR tree-optimization/98255
4017         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
4018         extend index - low_bound from sizetype's precision rather than index
4019         precision.
4020         (get_addr_base_and_unit_offset_1): Likewise.
4021         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
4022         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
4024 2021-01-22  Richard Biener  <rguenther@suse.de>
4026         PR tree-optimization/98786
4027         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
4028         adding new uses of abnormals.  Verify we deal with a conditional
4029         conversion.
4031 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4033         PR target/98636
4034         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
4036 2021-01-22  liuhongt  <hongtao.liu@intel.com>
4038         PR target/96891
4039         PR target/98348
4040         * config/i386/sse.md (VI_128_256): New mode iterator.
4041         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
4042          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
4043          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
4044         define_insn_and_split to lower avx512 vector comparison to avx
4045         version when dest is vector.
4046         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
4047         define_insn_and_split for negating the comparison result.
4048         * config/i386/predicates.md (float_vector_all_ones_operand):
4049         New predicate.
4050         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
4051         general NOT operator without UNSPEC_MASKOP.
4053 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
4055         PR rtl-optimization/98777
4056         * lra-int.h (lra_pmode_pseudo): New extern.
4057         * lra.c (lra_pmode_pseudo): New global.
4058         (lra): Set it up.
4059         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
4061 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
4063         * fwprop.c (fwprop_propagation::classify_result): Allow
4064         (subreg (mem)) simplifications.
4066 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4068         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
4069         Split into...
4070         (aarch64_sqdmlal<mode>): ... This...
4071         (aarch64_sqdmlsl<mode>): ... And this.
4072         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
4073         (aarch64_sqdmlal_lane<mode>): ... This...
4074         (aarch64_sqdmlsl_lane<mode>): ... And this.
4075         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
4076         (aarch64_sqdmlsl_laneq<mode>): ... This...
4077         (aarch64_sqdmlal_laneq<mode>):  ... And this.
4078         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
4079         (aarch64_sqdmlsl_n<mode>): ... This...
4080         (aarch64_sqdmlal_n<mode>): ... And this.
4081         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
4082         (aarch64_sqdmlal2<mode>_internal): ... This...
4083         (aarch64_sqdmlsl2<mode>_internal): ... And this.
4085 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
4087         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
4089 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
4091         PR target/96372
4092         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
4094 2021-01-21  liuhongt  <hongtao.liu@intel.com>
4096         PR rtl-optimization/98694
4097         * regcprop.c (copy_value): If SRC had been assigned a mode
4098         narrower than the copy, we can't link DEST into the chain even
4099         they have same hard_regno_nregs(i.e. HImode/SImode in i386
4100         backend).
4102 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4104         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
4105         Convert to define_insn_and_split.  Split into simple move when moving
4106         bottom element.
4108 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
4110         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
4111         Adjust comment.  Simplify code.
4113 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
4115         PR debug/98765
4116         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
4117         with DW_FORM_line_strp form.
4118         (prune_unused_types_update_strings): Don't add into debug_str_hash
4119         indirect strings with DW_FORM_line_strp form.
4120         (adjust_name_comp_dir): New function.
4121         (dwarf2out_finish): Call it on CU DIEs after resetting
4122         debug_line_str_hash.
4124 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
4126         PR rtl-optimization/98722
4127         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
4128         has no 3-op add insn to transform insns containing two pluses.
4130 2021-01-20  Richard Biener  <rguenther@suse.de>
4132         * hwint.h (add_hwi): New function.
4133         (mul_hwi): Likewise.
4134         * tree-data-ref.c (initialize_matrix_A): Properly translate
4135         tree constants and avoid HOST_WIDE_INT_MIN.
4136         (lambda_matrix_row_add): Avoid undefined integer overflow
4137         and return true on such overflow.
4138         (lambda_matrix_right_hermite): Handle overflow from
4139         lambda_matrix_row_add gracefully.  Simplify previous fix.
4140         (analyze_subscript_affine_affine): Likewise.
4142 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
4144         PR tree-optimization/96674
4145         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
4146         x >= y && y != XXX_MIN --> x > y - 1
4148 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
4150         PR tree-optimization/98535
4151         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
4152         If the high and low permutes are the same, remove the high permutes
4153         from the working set and only continue with the low ones.
4155 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
4157         PR tree-optimization/98721
4158         * builtins.c (access_ref::inform_access): Don't assume
4159         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
4160         object whenever allocfn is NULL, rather than only when DECL_P
4161         is true.  Use %qE instead of %qD for that.  Formatting fixes.
4163 2021-01-20  Richard Biener  <rguenther@suse.de>
4165         PR tree-optimization/98758
4166         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
4167         (lambda_matrix_right_hermite): Avoid undefinedness with
4168         signed integer abs and multiplication.
4169         (analyze_subscript_affine_affine): Use lambda_int.
4171 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
4173         PR debug/98751
4174         * dwarf2out.c (output_line_info): Rename static variable
4175         "generation", moving it out of the function to...
4176         (output_line_info_generation): New.
4177         (init_sections_and_labels): Likewise, renaming the variable to...
4178         (init_sections_and_labels_generation): New.
4179         (dwarf2out_c_finalize): Reset the new variables.
4181 2021-01-19  Martin Sebor  <msebor@redhat.com>
4183         PR middle-end/98664
4184         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
4185         all functions, even if they're not declared artificial or inline.
4186         * tree.c (tree_inlined_location): Use macro expansion location
4187         only if scope traversal fails to expose one.
4189 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
4191         PR rtl-optimization/92294
4192         * alias.c (compare_base_symbol_refs): Take an extra parameter
4193         and add the distance between two symbols to it.  Enshrine in
4194         comments that -1 means "either 0 or 1, but we can't tell
4195         which at compile time".
4196         (memrefs_conflict_p): Update call accordingly.
4197         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
4198         into account.
4200 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4202         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
4203         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
4204         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
4205         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
4206         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
4207         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
4208         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
4209         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
4210         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
4211         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
4212         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
4213         sqmovun): Use NONE flags.
4215 2021-01-19  Richard Biener  <rguenther@suse.de>
4217         PR ipa/98330
4218         * ipa-modref.c (analyze_stmt): Only record a summary for a
4219         direct call.
4221 2021-01-19  Richard Biener  <rguenther@suse.de>
4223         PR middle-end/98638
4224         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
4226 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
4228         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
4229         built-in define __FIX_LEON3FT_TN0018.
4231 2021-01-19  Richard Biener  <rguenther@suse.de>
4233         PR ipa/97673
4234         * tree-inline.c (tree_function_versioning): Set input_location
4235         to UNKNOWN_LOCATION throughout the function.
4237 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
4239         PR fortran/98476
4240         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
4242 2021-01-19  Martin Jambor  <mjambor@suse.cz>
4244         PR ipa/98690
4245         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
4246         whether non-call exceptions allow removal of a statement.
4247         (isra_analyze_call): Pass the appropriate function to
4248         ssa_name_only_returned_p.
4250 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
4252         * config/riscv/arch-canonicalize (longext_sort): New function for
4253          sorting 'multi-letter'.
4254         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
4255         'alts'. The 'arch' may not be the first of 'alts'.
4256         (_expand_combination): Add underline for the 'ext' without '*'.
4257         This is because, a single-letter extension can always be treated well
4258         with a '_' prefix, but it cannot be separated out if it is appended
4259         to a multi-letter.
4261 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
4263         PR target/97847
4264         * ira.c (ira): Skip abnormal critical edge splitting.
4266 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
4268         PR tree-optimization/98727
4269         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
4270         second .MUL_OVERFLOW operand for signed multiplication with overflow
4271         checking if the second operand of multiplication is not constant.
4273 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
4275         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
4276         defaults to version 4.
4278 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
4280         * attribs.h (fndecl_dealloc_argno): New decl.
4281         * builtins.c (call_dealloc_argno): Split out second half of
4282         function into...
4283         (fndecl_dealloc_argno): New.
4284         * doc/extend.texi (Common Function Attributes): Document the
4285         interaction between the analyzer and the malloc attribute.
4286         * doc/invoke.texi (Static Analyzer Options): Likewise.
4288 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
4290         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
4291         dwarf_version to 4.
4292         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4294 2021-01-17  Martin Jambor  <mjambor@suse.cz>
4296         PR ipa/98222
4297         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
4298         the clone tree.
4300 2021-01-17  Mark Wielaard  <mark@klomp.org>
4302         * common.opt (gdwarf-): Init(5).
4303         * doc/invoke.texi (-gdwarf): Document default to 5.
4305 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
4307         * builtin-types.def
4308         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
4309         to...
4310         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
4311         ...this.  Add extra argument.
4312         * gimplify.c (omp_default_clause): Ensure that event handle is
4313         firstprivate in a task region.
4314         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
4315         (gimplify_adjust_omp_clauses): Likewise.
4316         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
4317         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
4318         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
4319         if detach clause specified.  Add detach argument when generating
4320         call to GOMP_task.
4321         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
4322         clause.
4323         (finish_taskreg_scan): Move field for variable containing the event
4324         handle to the front of the struct.
4325         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
4326         ordering.
4327         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
4328         OMP_CLAUSE_DETACH clause.
4329         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
4330         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
4331         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
4332         Fix ordering.
4333         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
4334         ordering.
4335         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
4337 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4339         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
4340         multilib directory names.  Use MULTILIB_REQUIRED instead of
4341         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
4342         -mcustom-fpu-cfg=fph2 multilib.
4344 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4346         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
4347         (nios2_init_fpu_configs): Provide register values for new
4348         -mcustom-fpu-cfg=fph2 option variant.
4349         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
4350         variant.
4352 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4354         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
4355         custom instruction warnings.
4357 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
4359         PR tree-optimization/96669
4360         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
4362 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
4364         PR tree-optimization/96271
4365         * passes.def: Pass false argument to first two pass_cd_dce
4366         instances and true to last instance.  Add comment that
4367         last instance rewrites no longer addressed locals.
4368         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
4369         initialize it.
4370         (pass_cd_dce::set_pass_param): New method.
4371         (pass_cd_dce::execute): Return TODO_update_address_taken from
4372         last cd_dce instance.
4374 2021-01-15  Carl Love  <cel@us.ibm.com>
4376         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
4377         New defines.
4378         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
4379         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
4380         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
4381         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
4382         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
4383         Add builtin define.
4384         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
4385         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
4386         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
4387         New overloaded definitions.
4388         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
4389         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
4390         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
4391         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
4392         P10V_BUILTIN_MULHU_V4SI]: Add case
4393         statement for builtins.
4394         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
4395         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
4396         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
4397         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
4398         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
4399         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
4400         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
4401         Add define_insn, mode is VIlong.
4402         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
4403         Add builtin descriptions.
4405 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
4407         * final.c (final_start_function_1): Reset force_source_line.
4409 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
4411         PR tree-optimization/96669
4412         * match.pd (((1 << A) & 1) != 0 -> A == 0,
4413         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
4414         possibly different power of two constants and to right shift too.
4416 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
4418         PR tree-optimization/96681
4419         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
4420         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
4421         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
4422         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
4424 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
4426         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
4428 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
4430         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
4431         cmul<conj_op><mode>3): New.
4432         * config/aarch64/iterators.md (UNSPEC_FCMUL,
4433         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
4434         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
4435         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
4436         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
4437         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
4438         (rot_op): Renamed to conj_op.
4439         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
4440         cmul<conj_op><mode>3): New.
4441         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
4442         cmul<conj_op><mode>3): New.
4444 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
4446         PR bootstrap/98696
4447         * diagnostic.c
4448         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
4449         Escape the tempfile name when constructing the expected output.
4451 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4453         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
4454         Rename to...
4455         (aarch64_<su>mlsl_hi<mode>): ... This.
4456         (aarch64_<su>mlsl_hi<mode>): Define.
4457         (*aarch64_<su>mlsl<mode): Rename to...
4458         (aarch64_<su>mlsl<mode): ... This.
4459         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
4460         smlsl_hi, umlsl_hi): Define builtins.
4461         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
4462         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
4463         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
4464         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
4466 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
4468         * config/i386/i386-c.c (ix86_target_macros):
4469         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
4471 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
4473         PR target/88836
4474         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
4475         * Makefile.in (RTL_SSA_H): New variable.
4476         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
4477         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
4478         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
4479         pass_combine.
4480         * config/aarch64/aarch64-cc-fusion.cc: New file.
4482 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
4484         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
4485         calling cancel_changes for changes that no longer exist.
4487 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
4489         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
4490         (function_info::reg_defs): ...this.
4491         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
4492         (function_info::reg_defs): ...this.
4494 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
4496         PR target/71233
4497         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
4499 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
4501         Revert:
4502         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
4504         PR target/71233
4505         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
4507 2021-01-15  Richard Biener  <rguenther@suse.de>
4509         PR tree-optimization/96376
4510         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
4511         for VMAT_INVARIANT.
4513 2021-01-15  Martin Liska  <mliska@suse.cz>
4515         * doc/install.texi: Document that some tests need pytest module.
4516         * doc/sourcebuild.texi: Likewise.
4518 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
4520         PR target/71233
4521         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
4523 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
4525         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
4526         (mve_vshrq_n_u<mode>_imm): Likewise.
4527         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
4528         * config/arm/vec-common.md: ... here.
4530 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
4532         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
4533         vec-commond.md.
4534         * config/arm/neon.md (vashl<mode>3): Delete.
4535         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
4536         (vasl<mode>3): New expander.
4538 2021-01-15  Richard Biener  <rguenther@suse.de>
4540         PR tree-optimization/98685
4541         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
4542         of vector extern defs.
4544 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
4546         PR jit/98586
4547         * diagnostic.c (diagnostic_kind_text): Break out this array
4548         from...
4549         (diagnostic_build_prefix): ...here.
4550         (fancy_abort): Detect when diagnostic_initialize has not yet been
4551         called and fall back to a minimal implementation of printing the
4552         ICE, rather than segfaulting in internal_error.
4554 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
4556         * diagnostic.c (diagnostic_initialize): Eliminate
4557         parseable_fixits_p in favor of initializing extra_output_kind from
4558         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
4559         (convert_column_unit): New function, split out from...
4560         (diagnostic_converted_column): ...this.
4561         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
4562         Use them to call convert_column_unit on the column values.
4563         (diagnostic_report_diagnostic): Eliminate conditional on
4564         parseable_fixits_p in favor of a switch statement on
4565         extra_output_kind, passing the appropriate values to the new
4566         params of print_parseable_fixits.
4567         (selftest::test_print_parseable_fixits_none): Update for new
4568         params of print_parseable_fixits.
4569         (selftest::test_print_parseable_fixits_insert): Likewise.
4570         (selftest::test_print_parseable_fixits_remove): Likewise.
4571         (selftest::test_print_parseable_fixits_replace): Likewise.
4572         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
4573         New.
4574         (selftest::diagnostic_c_tests): Call it.
4575         * diagnostic.h (enum diagnostics_extra_output_kind): New.
4576         (diagnostic_context::parseable_fixits_p): Delete field in favor
4577         of...
4578         (diagnostic_context::extra_output_kind): ...this new field.
4579         * doc/invoke.texi (Environment Variables): Add
4580         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
4581         * opts.c (common_handle_option): Update handling of
4582         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
4583         fields.
4585 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
4587         * tree-vect-slp-patterns.c (class complex_operations_pattern,
4588         complex_operations_pattern::matches,
4589         complex_operations_pattern::recognize,
4590         complex_operations_pattern::build): New.
4591         (slp_patterns): Use it.
4593 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
4595         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
4596         * optabs.def (cmls_optab, cmls_conj_optab): New.
4597         * doc/md.texi: Document them.
4598         * tree-vect-slp-patterns.c (class complex_fms_pattern,
4599         complex_fms_pattern::matches, complex_fms_pattern::recognize,
4600         complex_fms_pattern::build): New.
4602 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
4604         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
4605         * optabs.def (cmla_optab, cmla_conj_optab): New.
4606         * doc/md.texi: Document them.
4607         * tree-vect-slp-patterns.c (vect_match_call_p,
4608         class complex_fma_pattern, vect_slp_reset_pattern,
4609         complex_fma_pattern::matches, complex_fma_pattern::recognize,
4610         complex_fma_pattern::build): New.
4612 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
4614         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
4615         * optabs.def (cmul_optab, cmul_conj_optab): New.
4616         * doc/md.texi: Document them.
4617         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
4618         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
4619         vect_build_combine_node, class complex_mul_pattern,
4620         complex_mul_pattern::matches, complex_mul_pattern::recognize,
4621         complex_mul_pattern::build): New.
4623 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
4625         * tree-vect-slp.c (optimize_load_redistribution_1): New.
4626         (optimize_load_redistribution, vect_is_slp_load_node): New.
4627         (vect_match_slp_patterns): Use it.
4629 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
4631         * tree-vect-slp-patterns.c (complex_add_pattern::build):
4632         Elide nodes.
4634 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
4636         * config/gcn/mkoffload.c (main): Create an offload image only in
4637         64-bit configurations.
4639 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
4641         PR target/98667
4642         * config/i386/i386-options.c (ix86_option_override_internal):
4643         Issue an error for -fcf-protection with CF_BRANCH when compiling
4644         for 32-bit non-TARGET_CMOV targets.
4646 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
4648         PR target/98671
4649         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
4650         Remove declaration and initialization of shadow variable "ret".
4651         (ix86_option_override_internal): Remove delcaration of
4652         shadow variable "i".  Redeclare shadowed variable to unsigned.
4653         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
4654         * config/i386/i386-builtins.c (get_builtin_code_for_version):
4655         Update for redeclaration.
4656         * config/i386/i386.h (pta_size): Ditto.
4658 2021-01-14  Richard Biener  <rguenther@suse.de>
4660         PR tree-optimization/98674
4661         * tree-data-ref.c (base_supports_access_fn_components_p): New.
4662         (initialize_data_dependence_relation): For two bases without
4663         possible access fns resort to type size equality when determining
4664         shape compatibility.
4666 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4668         PR target/66791
4669         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
4670         <=, >= operators in vcle and vcge intrinsics respectively.
4671         * config/arm/arm_neon_builtins.def: Remove entry for
4672         vcge and vcgeu.
4674 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
4676         PR target/98671
4677         * config/i386/i386-options.c (ix86_function_specific_save):
4678         Remove redundant assignment to opts->x_ix86_branch_cost.
4679         * config/i386/i386.c (ix86_prefetch_sse):
4680         Rename from x86_prefetch_sse.  Update all uses.
4681         * config/i386/i386.h: Update for rename.
4682         * config/i386/i386-options.h: Ditto.
4684 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
4686         PR target/98670
4687         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
4688         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
4689         Use Bm instead of m for non-avx.  Add isa attribute.
4691 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
4693         PR tree-optimization/96688
4694         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
4695         ~X can be simplified.
4697 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
4699         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
4700         IFN_LOAD_LANES results.
4702 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4704         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
4705         Define.
4706         (aarch64_xtn<mode>): Likewise.
4707         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
4708         Define
4709         builtins.
4710         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
4711         builtin.
4712         (vmovl_s16): Likewise.
4713         (vmovl_s32): Likewise.
4714         (vmovl_u8): Likewise.
4715         (vmovl_u16): Likewise.
4716         (vmovl_u32): Likewise.
4717         (vmovn_s16): Likewise.
4718         (vmovn_s32): Likewise.
4719         (vmovn_s64): Likewise.
4720         (vmovn_u16): Likewise.
4721         (vmovn_u32): Likewise.
4722         (vmovn_u64): Likewise.
4724 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4726         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
4727         Define.
4728         (aarch64_<su>qxtn2<mode>_be): Likewise.
4729         (aarch64_<su>qxtn2<mode>): Likewise.
4730         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
4731         Define builtins.
4732         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
4733         (su): Handle ss_truncate and us_truncate.
4734         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
4735         builtin.
4736         (vqmovn_high_s32): Likewise.
4737         (vqmovn_high_s64): Likewise.
4738         (vqmovn_high_u16): Likewise.
4739         (vqmovn_high_u32): Likewise.
4740         (vqmovn_high_u64): Likewise.
4742 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4744         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
4745         Define.
4746         (aarch64_xtn2<mode>_be): Likewise.
4747         (aarch64_xtn2<mode>): Likewise.
4748         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
4749         builtins.
4750         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
4751         builtins.
4752         (vmovn_high_s32): Likewise.
4753         (vmovn_high_s64): Likewise.
4754         (vmovn_high_u16): Likewise.
4755         (vmovn_high_u32): Likewise.
4756         (vmovn_high_u64): Likewise.
4758 2021-01-13  Stafford Horne  <shorne@gmail.com>
4760         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
4762 2021-01-13  Stafford Horne  <shorne@gmail.com>
4764         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
4766 2021-01-13  Stafford Horne  <shorne@gmail.com>
4768         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
4769           define for __or1k_hard_float__.
4771 2021-01-13  Stafford Horne  <shorne@gmail.com>
4773         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
4774         (PROFILE_HOOK): Define to call _mcount.
4775         (FUNCTION_PROFILER): Change from abort to no-op.
4777 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
4779         PR tree-optimization/96691
4780         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
4781         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
4782         (~D ^ C) or (D ^ C) can be simplified.
4784 2021-01-13  Richard Biener  <rguenther@suse.de>
4786         PR tree-optimization/92645
4787         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
4788         until after vector lowering.
4790 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4792         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
4793         to SVE_I.
4794         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
4795         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
4797 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4799         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
4800         to SVE_I.
4801         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
4802         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
4804 2021-01-13  Richard Biener  <rguenther@suse.de>
4806         PR tree-optimization/92645
4807         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
4808         BIT_FIELD_REF argument.
4809         (vect_build_slp_tree_2): Record the desired vector type
4810         on the external vector def.
4811         (vectorizable_slp_permutation): Handle required punning
4812         of existing vector defs.
4814 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4816         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
4818 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4820         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
4822 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
4824         * config.gcc [$target == *-*-gnu*]: Enable
4825         'default_gnu_indirect_function'.
4827 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
4829         PR target/95905
4830         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
4831         registers before calling targetm.vectorize.vec_perm_const, only after
4832         that.
4833         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
4834         two argument permutation when one operand is zero vector and only
4835         after that force operands into registers.
4836         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
4837         define_insn_and_split pattern.
4838         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
4839         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
4840         (*avx2_zero_extendv8hiv8si2_1): Likewise.
4841         (*avx512f_zero_extendv8siv8di2_1): Likewise.
4842         (*avx2_zero_extendv4siv4di2_1): Likewise.
4843         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
4844         into registers.
4845         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
4846         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
4847         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
4848         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
4849         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
4850         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
4852 2021-01-13  Martin Liska  <mliska@suse.cz>
4854         PR tree-optimization/98455
4855         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
4856         Record also virtual PHIs.
4857         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
4858         conditionally.
4860 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
4862         * doc/invoke.texi (C++ Modules): Fix typos.
4864 2021-01-13  Richard Biener  <rguenther@suse.de>
4866         PR tree-optimization/98640
4867         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
4868         handle plus or minus from a truncated operand to be
4869         sign-extended.
4871 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
4873         PR target/96938
4874         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
4875         define_insn_and_split patterns.
4876         (splitter after *btr<mode>_2): New splitter.
4878 2021-01-13  Martin Liska  <mliska@suse.cz>
4880         PR ipa/98652
4881         * cgraphunit.c (analyze_functions): Remove dead code.
4883 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
4885         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
4886         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
4887         (a64fx_regmove_cost, a64fx_vector_cost): New.
4888         (a64fx_tunings): Use the new added cost tables.
4890 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
4892         PR target/95905
4893         * config/i386/predicates.md (pmovzx_parallel): New predicate.
4894         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
4895         define_insn_and_split pattern.
4896         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
4897         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
4899 2021-01-13  Julian Brown  <julian@codesourcery.com>
4901         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
4902         to fix v0 register.
4904 2021-01-13  Julian Brown  <julian@codesourcery.com>
4906         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
4907         on entry to a BB.
4909 2021-01-13  Julian Brown  <julian@codesourcery.com>
4911         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
4912         for reciprocal-approximation instructions.
4913         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
4914         refinement and division result.
4915         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
4917 2021-01-13  Julian Brown  <julian@codesourcery.com>
4919         * config/gcn/gcn-valu.md (subdf): Rename to...
4920         (subdf3): This.
4922 2021-01-12  Martin Liska  <mliska@suse.cz>
4924         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
4926 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
4928         * function-abi.h: Fix typo.
4930 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
4932         PR target/97875
4933         PR target/97875
4934         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
4935         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
4936         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
4937         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
4938         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
4939         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
4940         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
4941         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
4942         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
4943         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
4944         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
4945         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
4946         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
4947         (ARM_HAVE_V2DI_LDST): Likewise.
4948         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
4949         (*movmisalign<mode>_mve_load): New pattern.
4950         * config/arm/neon.md (movmisalign<mode>): Move to ...
4951         * config/arm/vec-common.md: ... here.
4953 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
4955         PR target/97969
4956         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
4957         of pattern 'plus (plus (hard reg, const), pseudo)'.
4959 2021-01-12  Richard Biener  <rguenther@suse.de>
4961         PR tree-optimization/98550
4962         * tree-vect-slp.c (vect_record_max_nunits): Check whether
4963         the group size is a multiple of the vector element count.
4964         (vect_build_slp_tree_1): When we need to fail because
4965         the vector type choosen causes unrolling do so lazily
4966         without affecting matches only at the end to guide group splitting.
4968 2021-01-12  Martin Liska  <mliska@suse.cz>
4970         PR c++/97284
4971         * optc-save-gen.awk: Compare also n_target_save vars with
4972         strcmp.
4974 2021-01-12  Martin Liska  <mliska@suse.cz>
4976         * gcov.c (source_info::debug): New.
4977         (print_usage): Add --debug (-D) option.
4978         (process_args): Likewise.
4979         (generate_results): Call src->debug after
4980         accumulate_line_counts.
4981         (read_graph_file): Properly assign id for EXIT_BLOCK.
4982         * profile.c (branch_prob): Dump function body before it is
4983         instrumented.
4985 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
4987         PR tree-optimization/98629
4988         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
4989         unless returning non-zero.
4991 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
4993         PR tree-optimization/95731
4994         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
4995         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
4996         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
4997         only after optimize_range_tests_var_bound.
4999 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
5001         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
5002         * configure: Regenerated.
5004 2021-01-12  liuhongt  <hongtao.liu@intel.com>
5006         PR target/98612
5007         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
5008         Deleted.
5009         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
5010         dead code.
5012 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
5014         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
5015         declare.
5016         (auto_end_imm_use_stmt_traverse): New struct.
5017         (FOR_EACH_IMM_USE_STMT): Use it.
5018         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
5019         along with uses...
5020         * gimple-ssa-strength-reduction.c: ... here, ...
5021         * graphite-scop-detection.c: ... here, ...
5022         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
5023         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
5024         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
5025         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
5026         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
5027         * tree-vect-slp.c: ... and here, ...
5028         * doc/tree-ssa.texi: ... and the example here.
5030 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5032         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
5033         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
5034         (*sdiv_pow2<mode>3): New pattern.
5035         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
5036         Wrap the ASRD in an UNSPEC_PRED_X.
5037         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
5038         predicate with a constant PTRUE, if it isn't already.
5039         (*cond_<sve_int_op><mode>_z): Replace with...
5040         (*cond_<sve_int_op><mode>_any): ...this new pattern.
5042 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5044         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
5045         SVE_FULL_I to SVE_I.
5046         (*cond_bic<mode>_any): Likewise.
5048 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5050         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
5051         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
5052         to SVE_I.
5054 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5056         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
5057         SVE_FULL_I to SVE_I.
5058         (*aarch64_cond_<su>abd<mode>_2): Likewise.
5059         (*aarch64_cond_<su>abd<mode>_any): Likewise.
5060         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
5061         for the max and min but not for the minus.
5062         (*aarch64_cond_<su>abd<mode>_3): New pattern.
5064 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5066         * config/aarch64/iterators.md (SVE_24I): New iterator.
5067         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
5068         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
5070 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5072         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
5073         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
5074         to SVE_I.
5075         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
5076         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
5077         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
5078         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
5080 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5082         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
5083         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
5084         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
5085         to SVE_I.
5087 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
5089         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
5090         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
5091         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
5093 2021-01-11  Martin Liska  <mliska@suse.cz>
5095         PR jit/98615
5096         * symtab-clones.h (clone_info::release): Release
5097         symtab::m_clones with ggc_delete as it's a GGC memory.
5099 2021-01-11  Matthias Klose  <doko@ubuntu.com>
5101         * Makefile.in (LINK_PROGRESS): Show the link target.
5103 2021-01-11  Richard Biener  <rguenther@suse.de>
5105         PR tree-optimization/91403
5106         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
5107         single-element interleaving group size at 4096 elements.
5109 2021-01-11  Richard Biener  <rguenther@suse.de>
5111         PR tree-optimization/98526
5112         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
5113         of the actual reduction op for the regular case.
5114         (vectorizable_reduction): Cost the stmts
5115         vect_transform_reduction produces here.
5117 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
5119         * tree-ssa-forwprop.c (simplify_vector_constructor): For
5120         big-endian, use UNPACK[_FLOAT]_HI.
5122 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
5124         * tree-vect-slp-patterns.c (class complex_pattern,
5125         class complex_add_pattern): Add parameters to matches.
5126         (complex_add_pattern::build): Free memory.
5127         (complex_add_pattern::matches): Move validation end of match.
5128         (complex_add_pattern::recognize): Likewise.
5130 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
5132         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
5134 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
5136         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
5138 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
5140         PR tree-optimization/95867
5141         * tree-ssa-math-opts.h: New header.
5142         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
5143         (powi_as_mults): No longer static.  Use build_one_cst instead of
5144         build_real.  Formatting fix.
5145         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
5146         (attempt_builtin_powi): Handle multiplication reassociation without
5147         powi_fndecl using powi_as_mults.
5148         (reassociate_bb): For integral types don't require
5149         -funsafe-math-optimizations to call attempt_builtin_powi.
5151 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
5153         PR tree-optimization/95852
5154         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
5155         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
5156         allow in the bb any of the stmts in that vector, div_stmt and
5157         up to 3 cast stmts.
5158         (arith_cast_equal_p): New function.
5159         (arith_overflow_check_p): Add cast_stmt argument, handle signed
5160         multiply overflow checks.
5161         (match_arith_overflow): Adjust caller.  Handle signed multiply
5162         overflow checks.
5164 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
5166         PR tree-optimization/95852
5167         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
5168         (uaddsub_overflow_check_p): Renamed to ...
5169         (arith_overflow_check_p): ... this.  Handle also multiplication
5170         with overflow check.
5171         (match_uaddsub_overflow): Renamed to ...
5172         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
5173         also multiplication with overflow check.  Adjust function comment.
5174         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
5175         match_arith_overflow also for MULT_EXPR.
5177 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5179         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
5180         __builtin_convertvector.
5181         (vmovl_s16): Likewise.
5182         (vmovl_s32): Likewise.
5183         (vmovl_u8): Likewise.
5184         (vmovl_u16): Likewise.
5185         (vmovl_u32): Likewise.
5186         (vmovn_s16): Likewise.
5187         (vmovn_s32): Likewise.
5188         (vmovn_s64): Likewise.
5189         (vmovn_u16): Likewise.
5190         (vmovn_u32): Likewise.
5191         (vmovn_u64): Likewise.
5193 2021-01-11  Martin Liska  <mliska@suse.cz>
5195         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
5196         (if_chain::is_beneficial): Delete clusters
5197         (find_conditions): Make second argument of conditions_in_bbs a
5198         pointer so that we control over it's lifetime.
5199         (pass_if_to_switch::execute): Delete them.
5201 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
5203         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
5204         it isn't set.
5206 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
5208         * config/vax/vax.md (cc): Remove mode attribute.
5209         (subst_<cc>, subst_f<cc>): Rename to...
5210         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
5211         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
5212         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
5213         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
5215 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
5217         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
5218         `const_double_zero'.
5220 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
5222         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
5223         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
5224         operands.
5226 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
5228         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
5229         rtx.
5230         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
5231         with `const_double_zero'.
5232         * doc/rtl.texi (Constant Expression Types): Document it.
5234 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
5236         PR c++/98556
5237         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
5238         POINTER_DIFF_EXPR to be any integral type.
5240 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
5242         PR rtl-optimization/98603
5243         * function.c (instantiate_virtual_regs_in_insn): For asm goto
5244         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
5245         if any, set ASM_OPERANDS mode to VOIDmode and change
5246         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
5248 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
5250         PR debug/97714
5251         * final.c (notice_source_line): Narrow down the condition to
5252         skip a line-0 marker.
5254 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
5256         * ipa-modref.c (merge_call_side_effects): Fix
5257         linebreak split by reordering two print calls.
5259 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
5261         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
5262         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
5263         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
5264         consistency, fix constraint.
5266 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
5268         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
5269         callables instead of mask values.
5270         (struct target_flag_set_p): New predicate.
5271         (s390_cpu_cpp_builtins_internal): Define or undefine
5272         __LONG_DOUBLE_VX__ macro.
5274 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
5276         PR target/98482
5277         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
5278         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
5279         targets.
5281 2021-01-08  Richard Biener  <rguenther@suse.de>
5283         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
5285 2021-01-08  Richard Biener  <rguenther@suse.de>
5287         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
5288         (vect_build_slp_tree): On cache hit release the matched
5289         scalar stmts vector.
5290         * tree-vect-stmts.c (vectorizable_store): Properly free
5291         vec_oprnds before possibly gathering them again.
5293 2021-01-08  Richard Biener  <rguenther@suse.de>
5295         PR tree-optimization/98544
5296         * tree-vect-slp.c (vect_optimize_slp): Always materialize
5297         permutes at a permute node.
5299 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
5301         PR target/98482
5302         * config/i386/i386.c (x86_function_profiler): Use R10 to call
5303         mcount in large model.  Sorry for large model with PIC.
5305 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
5307         PR target/98585
5308         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
5309         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
5310         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
5311         TargetSave and initialize for variables with enum types.
5312         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
5313         mstack-protector-guard-symbol=): Add Save.
5314         * config/i386/i386-options.c (ix86_function_specific_save,
5315         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
5316         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
5317         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
5318         x_ix86_veclibabi_type.
5320 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
5322         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
5323         SVE_FULL_I to SVE_I.
5324         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
5326 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
5328         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
5329         SVE_FULL_I to SVE_I.
5330         (*cond_uxt<mode>_any): Likewise.
5332 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5334         * config/aarch64/iterators.md (Vwhalf): New iterator.
5335         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
5336         Rename to...
5337         (aarch64_<sur>adalp<mode>): ... This.  Make more
5338         builtin-friendly.
5339         (<sur>sadv16qi): Adjust callsite of the above.
5340         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
5341         builtins.
5342         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
5343         builtins.
5344         (vpadal_s16): Likewise.
5345         (vpadal_u8): Likewise.
5346         (vpadal_u16): Likewise.
5347         (vpadalq_s8): Likewise.
5348         (vpadalq_s16): Likewise.
5349         (vpadalq_s32): Likewise.
5350         (vpadalq_u8): Likewise.
5351         (vpadalq_u16): Likewise.
5352         (vpadalq_u32): Likewise.
5354 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5356         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
5357         Rename to...
5358         (aarch64_<su>abd<mode>): ... This.
5359         (<sur>sadv16qi): Adjust callsite of the above.
5360         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
5361         builtins.
5362         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
5363         builtin.
5364         (vabd_s16): Likewise.
5365         (vabd_s32): Likewise.
5366         (vabd_u8): Likewise.
5367         (vabd_u16): Likewise.
5368         (vabd_u32): Likewise.
5369         (vabdq_s8): Likewise.
5370         (vabdq_s16): Likewise.
5371         (vabdq_s32): Likewise.
5372         (vabdq_u8): Likewise.
5373         (vabdq_u16): Likewise.
5374         (vabdq_u32): Likewise.
5376 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5378         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
5379         builtins.
5380         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
5381         (vaba_s16): Likewise.
5382         (vaba_s32): Likewise.
5383         (vaba_u8): Likewise.
5384         (vaba_u16): Likewise.
5385         (vaba_u32): Likewise.
5386         (vabaq_s8): Likewise.
5387         (vabaq_s16): Likewise.
5388         (vabaq_s32): Likewise.
5389         (vabaq_u8): Likewise.
5390         (vabaq_u16): Likewise.
5391         (vabaq_u32): Likewise.
5393 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5395         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
5396         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
5397         Change RTL pattern to match.
5399 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
5401         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
5402         * config/riscv/riscv-c.c (riscv-subset.h): New.
5403         (INCLUDE_STRING): Define.
5404         (riscv_cpu_cpp_builtins): Add new style architecture extension
5405         test macros.
5406         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
5407         (riscv_subset_list::end): New.
5408         (riscv_current_subset_list): New.
5410 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
5412         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
5413         Move to riscv-subset.h.
5414         (struct riscv_subset_t): Ditto.
5415         (class riscv_subset_list): Ditto.
5416         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
5417         from riscv-common.c.
5418         (struct riscv_subset_t): Ditto.
5419         (class riscv_subset_list): Ditto.
5420         * config/riscv/t-riscv ($(common_out_file)): Add file
5421         dependency.
5423 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
5425         PR target/98567
5426         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
5427         New define_insn patterns.
5429 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
5431         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
5432         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
5433         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
5435 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
5437         PR tree-optimization/98560
5438         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
5439         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
5440         argument 1.
5441         (vec_cond_direct): Likewise argument 2.
5442         (vec_condu_direct, vec_condeq_direct): Delete.
5443         (expand_vect_cond_optab_fn): Rename to...
5444         (expand_vec_cond_optab_fn): ...this, replacing old macro.
5445         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
5446         (expand_vect_cond_mask_optab_fn): Rename to...
5447         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
5448         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
5449         convert optab.
5450         (direct_vec_cond_optab_supported_p): Likewise.
5451         (direct_vec_condu_optab_supported_p): Delete.
5452         (direct_vec_condeq_optab_supported_p): Delete.
5453         * gimple-isel.cc: Include internal-fn.h.
5454         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
5455         before using it.
5457 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
5459         PR tree-optimization/98560
5460         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
5461         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
5463 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
5465         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
5466         rotate_insn and optab code attributes.
5467         Update all uses to merged code attribute.
5468         * config/i386/sse.md: Update all uses to merged code attribute.
5469         * config/i386/mmx.md: Update all uses to merged code attribute.
5471 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
5473         PR tree-optimization/98568
5474         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
5475         (bswap_replace): Use it.
5477 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
5479         PR rtl-optimization/97978
5480         * lra-int.h (lra_hard_reg_split_p): New external.
5481         * lra.c (lra_hard_reg_split_p): New global.
5482         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
5483         * lra-assigns.c (lra_assign): Don't check allocation correctness
5484         after hard reg splitting.
5486 2021-01-06  Martin Sebor  <msebor@redhat.com>
5488         PR c++/98305
5489         * builtins.c (new_delete_mismatch_p): New overload.
5490         (new_delete_mismatch_p (tree, tree)): Call it.
5492 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
5494         * Makefile.in (T_GLIMITS_H): New.
5495         (stmp-int-hdrs): Depend on it, use it.
5496         * config/t-vxworks (T_GLIMITS_H): Override it.
5497         (vxw-glimits.h): New.
5499 2021-01-06  Richard Biener  <rguenther@suse.de>
5501         PR tree-optimization/98513
5502         * value-range.cc (intersect_ranges): Compare the upper bounds
5503         for the expected relation.
5505 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
5507         Revert:
5508         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
5510         * doc/standards.texi (HSAIL): Remove section.
5512 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
5514         * configure: Re-generate.
5516 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5518         * doc/invoke.texi (-std=c++20): Adjust for the publication of
5519         ISO 14882:2020 standard.
5520         * doc/standards.texi: Likewise.
5522 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5524         PR tree-optimization/94802
5525         * expr.h (maybe_optimize_sub_cmp_0): Declare.
5526         * expr.c: Include tree-pretty-print.h and flags.h.
5527         (maybe_optimize_sub_cmp_0): New function.
5528         (do_store_flag): Use it.
5529         * cfgexpand.c (expand_gimple_cond): Likewise.
5531 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
5533         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
5534         * rtlanal.c (simple_regno_set): Tweak description to clarify the
5535         RMW condition.
5537 2021-01-05  Richard Biener  <rguenther@suse.de>
5539         PR tree-optimization/98516
5540         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
5541         lanes when materializing on a VEC_PERM node.
5542         (vectorizable_slp_permutation): Dump the permute properly.
5544 2021-01-05  Richard Biener  <rguenther@suse.de>
5546         * tree-vect-slp.c (vect_slp_region): Move debug counter
5547         to cover individual subgraphs.
5549 2021-01-05  Richard Biener  <rguenther@suse.de>
5551         PR tree-optimization/98428
5552         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
5553         vector lane extracts for loop vectorization.
5555 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5557         PR tree-optimization/98514
5558         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
5559         int64_t *.
5560         (operand_rank): Change type from hash_map<tree, long> to
5561         hash_map<tree, int64_t>.
5562         (phi_rank): Change return type from long to int64_t.
5563         (loop_carried_phi): Change block_rank variable type from long to
5564         int64_t.
5565         (propagate_rank): Change return type, rank parameter type and
5566         op_rank variable type from long to int64_t.
5567         (find_operand_rank): Change return type from long to int64_t
5568         and change slot variable type from long * to int64_t *.
5569         (insert_operand_rank): Change rank parameter type from long to
5570         int64_t.
5571         (get_rank): Change return type and rank variable type from long to
5572         int64_t.  Use PRId64 instead of ld to print the rank.
5573         (init_reassoc): Change rank variable type from long to int64_t
5574         and adjust correspondingly bb_rank and operand_rank initialization.
5576 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5578         PR tree-optimization/96928
5579         * tree-ssa-phiopt.c (xor_replacement): New function.
5580         (tree_ssa_phiopt_worker): Call it.
5582 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5584         PR tree-optimization/96930
5585         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
5586         from narrower value which has the same type as 1 << B, perform
5587         the right shift on the narrower value followed by extension.
5589 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5591         PR tree-optimization/96239
5592         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
5593         function.
5594         (get_status_for_store_merging): Don't return BB_INVALID for blocks
5595         with potential bswap optimizable CONSTRUCTORs.
5596         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
5597         if possible.
5599 2021-01-05  Richard Biener  <rguenther@suse.de>
5601         PR tree-optimization/98381
5602         * tree.c (vector_element_bits): Properly compute bool vector
5603         element size.
5604         * tree-vect-loop.c (vectorizable_live_operation): Properly
5605         compute the last lane bit offset.
5607 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
5609         PR target/98522
5610         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
5611         Clear the top 64 bytes of the input XMM register.
5612         (sse_cvttps2pi): Ditto.
5614 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
5616         PR target/98521
5617         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
5619 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
5621         PR target/98495
5622         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
5623         short first.
5625 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
5627         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
5628         (umaddsidi4_split): Likewise.
5630 2021-01-05  liuhongt  <hongtao.liu@intel.com>
5632         PR target/98461
5633         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
5634         define_insn_and_split for zero_extend of subreg HI of pmovskb
5635         result.
5636         (*sse2_pmovskb_zexthisi): Add new combine splitters for
5637         zero_extend of not of subreg HI of pmovskb result.
5639 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
5641         PR target/97269
5642         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
5643         nested in CONSTs.
5644         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
5645         convert_memory_address to convert symbolic immediates to ptr_mode
5646         before forcing them to memory.
5648 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
5650         PR rtl-optimization/97144
5651         * recog.c (constrain_operands): Initialize matching_operand
5652         for each alternative, rather than only doing it once.
5654 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
5656         PR rtl-optimization/98403
5657         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
5658         why we don't remove call clobbers.
5659         (function_info::apply_changes_to_insn): Don't attempt to add
5660         call clobbers here.
5662 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
5664         PR tree-optimization/98371
5665         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
5666         (vect_analyze_loop): If an epilogue loop appears to be cheaper
5667         than the main loop, re-analyze it as a main loop before adopting
5668         it as a main loop.
5670 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5672         PR c++/98316
5673         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
5674         * aclocal.m4, configure: Regenerate.
5675         * Makefile.in (NETLIBS): Define.
5676         (BACKEND): Remove $(CODYLIB).
5678 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
5680         PR rtl-optimization/98334
5681         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
5682         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
5684 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5686         * tree-inline.c (expand_call_inline): Restore input_location.
5687         Return result from recursive call.
5689 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
5691         PR tree-optimization/95401
5692         * config/aarch64/aarch64-sve-builtins.cc
5693         (gimple_folder::load_store_cookie): Use bits rather than bytes
5694         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
5695         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
5696         * tree-vect-stmts.c (vectorizable_store): Likewise.
5697         (vectorizable_load): Likewise.
5699 2021-01-04  Richard Biener  <rguenther@suse.de>
5701         PR tree-optimization/98308
5702         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
5703         SLP vectype.
5705 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
5707         PR tree-optimization/95771
5708         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
5709         with precision smaller than int's precision and types with precision
5710         twice as large as long long.  Formatting fixes.
5712 2021-01-04  Richard Biener  <rguenther@suse.de>
5714         PR tree-optimization/98464
5715         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
5716         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
5717         (process_bb): Adjust.
5719 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
5721         PR other/98437
5722         * doc/invoke.texi (-fsanitize=address): Fix wording describing
5723         clash with -fsanitize=hwaddress.
5725 2021-01-04  Richard Biener  <rguenther@suse.de>
5727         PR tree-optimization/98282
5728         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
5729         invariants as VN_NARY.
5731 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
5733         PR target/89057
5734         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
5735         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
5736         to handle zero operands.
5738 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
5740         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
5741         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
5742         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
5743         [-32, 31].
5745 2021-01-04  Richard Biener  <rguenther@suse.de>
5747         PR tree-optimization/98393
5748         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
5749         when hitting the limit.
5751 2021-01-04  Richard Biener  <rguenther@suse.de>
5753         PR tree-optimization/98291
5754         * tree-vect-loop.c (vectorizable_reduction): Bypass
5755         associativity check for SLP reductions with VF 1.
5757 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
5759         PR tree-optimization/96782
5760         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
5762 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5764         * collect-utils.c (collect_execute): Check dumppfx.
5765         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
5766         to collect_execute.
5767         (do_link): Add new parameter atsuffix.
5768         (main): Handle -dumpdir option.  Skip one argument for
5769         -o, -isystem and -B options.
5770         * gcc.c (make_at_file): New helper function.
5771         (close_at_file): Use it.
5773 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5775         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
5776         Amend handling for LD64_VERSION fallback defaults.
5778 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5780         * config.gcc: Compute default version information
5781         from the configured target.  Likewise defaults for
5782         ld64.
5783         * config/darwin10.h: Removed.
5784         * config/darwin12.h: Removed.
5785         * config/darwin9.h: Removed.
5786         * config/rs6000/darwin8.h: Removed.
5788 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5790         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
5792 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5794         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
5795         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
5797 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5799         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
5800         here...
5801         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
5803 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5805         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
5806         for the Darwin10 unwinder stub from here ...
5807         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
5809 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5811         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
5812         (ASM_DEBUG_SPEC):Only define if the assembler supports
5813         stabs.
5814         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
5815         (DARWIN_PREFER_DWARF): Define.
5816         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
5817         (DARWIN_PREFER_DWARF): Likewise
5818         (DSYMUTIL_SPEC): Likewise.
5819         (COLLECT_RUN_DSYMUTIL): Likewise.
5820         (ASM_DEBUG_SPEC): Likewise.
5821         (ASM_DEBUG_OPTION_SPEC): Likewise.
5823 2021-01-02  Jan Hubicka  <jh@suse.cz>
5825         * cfg.c (free_block): ggc_free bb.
5827 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
5829         * gcc.c (process_command): Update copyright notice dates.
5830         * gcov-dump.c (print_version): Ditto.
5831         * gcov.c (print_version): Ditto.
5832         * gcov-tool.c (print_version): Ditto.
5833         * gengtype.c (create_file): Ditto.
5834         * doc/cpp.texi: Bump @copying's copyright year.
5835         * doc/cppinternals.texi: Ditto.
5836         * doc/gcc.texi: Ditto.
5837         * doc/gccint.texi: Ditto.
5838         * doc/gcov.texi: Ditto.
5839         * doc/install.texi: Ditto.
5840         * doc/invoke.texi: Ditto.
5842 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
5844         * ChangeLog-2020: Rotate ChangeLog.  New file.
5847 Copyright (C) 2021 Free Software Foundation, Inc.
5849 Copying and distribution of this file, with or without modification,
5850 are permitted in any medium without royalty provided the copyright
5851 notice and this notice are preserved.