aix: align double complex
[official-gcc.git] / gcc / ChangeLog
blob7fea6dbe5dfc262e90101ef805a898d84b8c6eb6
1 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
3         * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
4         constraints > 9.
5         * ira-lives.c (single_reg_class): Ditto.
7 2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9         * config.gcc (aarch64-*-rtems*): Include general rtems.h after
10         the architecture-specific rtems.h.
11         (aarch64-*-rtems*): Likewise.
12         (arm*-*-rtems*): Likewise.
13         (epiphany-*-rtems*): Likewise.
14         (riscv*-*-rtems*): Likewise.
16 2021-03-09  Jakub Jelinek  <jakub@redhat.com>
18         PR tree-optimization/99305
19         * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
20         before integer_all_onesp instead of vice versa.
22 2021-03-09  Richard Earnshaw  <rearnsha@arm.com>
24         * common/config/arm/arm-common.c (arm_config_default): Change type
25         of 'i' to unsigned.
27 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
29         PR target/99454
30         * lra-constraints.c (process_address_1): Process constraint 'g'
31         separately and digital constraints containing more one digit.
33 2021-03-09  Nick Clifton  <nickc@redhat.com>
35         * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
36         (DWARF"_DEBUGGING_INFO): Define.
38 2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>
40         PR c++/90448
41         * calls.c (initialize_argument_information): When the argument
42         is passed by reference, do not make a copy in a thunk only if
43         the argument is already in memory.  Remove redundant test for
44         the case of callee copy.
46 2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
48         PR target/99454
49         * lra-constraints.c (process_address_1): Process 0..9 constraints
50         in process_address_1.
52 2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>
54         * config/s390/s390.c (struct s390_processor processor_table):
55         Binutils name string must not be empty.
57 2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>
59         * config/arc/arc.c (arc_attr_type): Remove function.
61 2021-03-09  Martin Liska  <mliska@suse.cz>
63         PR target/99464
64         * config/i386/i386-options.c (ix86_option_override_internal):
65         Set isa_flags for OPTS argument and not for the global
66         global_options.
68 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
70         * config/rs6000/predicates.md (ds_form_mem_operand): Check
71         in correct code.
73 2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
75         PR target/99070
76         * config/rs6000/predicates.md (ds_form_mem_operand) New
77         predicate.
78         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
79         ds_form_mem_operand in ld/lwa patterns.
80         * config/rs6000/fusion.md: Regenerate file.
82 2021-03-08  Martin Sebor  <msebor@redhat.com>
84         PR middle-end/98266
85         * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
86         (array_bounds_checker::check_array_bounds): Call it.
88 2021-03-08  Martin Sebor  <msebor@redhat.com>
90         PR middle-end/97631
91         * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
92         (handle_builtin_stxncpy_strncat): Rename locals.  Determine
93         destination size from allocation calls.  Issue a more appropriate
94         kind of warning.
95         (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
96         (handle_builtin_memset): Same.
98 2021-03-08  Peter Bergner  <bergner@linux.ibm.com>
100         PR target/98959
101         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
102         to ensure we do not have an Altivec style address.
103         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
104         an Altivec style address.
105         (*vsx_le_perm_store_<mode>): Likewise.
106         (splitters after *vsx_le_perm_store_<mode>): Likewise.
107         (vsx_load_<mode>): Disable special expander if passed an Altivec
108         style address.
109         (vsx_store_<mode>): Likewise.
111 2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
113         PR target/99437
114         * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
115         (aarch64_simd_shift_imm_vec_hi): Likewise.
116         (aarch64_simd_shift_imm_vec_si): Likewise.
117         (aarch64_simd_shift_imm_vec_di): Likewise.
118         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
119         predicate from above.
120         (aarch64_shrn<mode>_insn_be): Likewise.
121         (aarch64_rshrn<mode>_insn_le): Likewise.
122         (aarch64_rshrn<mode>_insn_be): Likewise.
123         (aarch64_shrn2<mode>_insn_le): Likewise.
124         (aarch64_shrn2<mode>_insn_be): Likewise.
125         (aarch64_rshrn2<mode>_insn_le): Likewise.
126         (aarch64_rshrn2<mode>_insn_be): Likewise.
128 2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
130         PR target/99422
131         * lra-constraints.c (skip_contraint_modifiers): New function.
132         (process_address_1): Use it before lookup_constraint call.
134 2021-03-08  Martin Liska  <mliska@suse.cz>
136         PR target/99463
137         * config/i386/i386-options.c (ix86_option_override_internal):
138         Enable UINTR and HRESET for -march that supports it.
140 2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>
142         * config/s390/s390.c (f_constraint_p): New function.
143         (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
144         (TARGET_MD_ASM_ADJUST): Likewise.
146 2021-03-08  Tobias Burnus  <tobias@codesourcery.com>
148         PR fortran/97927
149         * tree-nested.c (convert_local_reference_stmt): Avoid calling
150         lookup_field_for_decl for Fortran module (= namespace context).
152 2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>
154         * config/s390/s390.c (s390_expand_vec_compare): Implement <0
155         comparison with arithmetic right shift.
156         (s390_expand_vcond): No need for a force_reg anymore.
157         s390_vec_compare will do it.
158         * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
159         immediate operands.
161 2021-03-07  Jakub Jelinek  <jakub@redhat.com>
163         PR target/99321
164         * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
165         but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
166         and comment.
167         * config/i386/sse.md (v_Yw): New define_mode_attr.
168         (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
169         *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
170         in constraints.
171         * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
172         xYw in constraints.
174 2021-03-06  Julian Brown  <julian@codesourcery.com>
176         * tree-pretty-print.c (dump_generic_node): Emit non-generic
177         address space info for aggregates.
179 2021-03-06  Hans-Peter Nilsson  <hp@axis.com>
181         * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
183 2021-03-05  Jakub Jelinek  <jakub@redhat.com>
185         PR middle-end/99322
186         * tree-cfg.c (bb_to_omp_idx): New variable.
187         (execute_build_cfg): Release the bb_to_omp_idx vector after
188         cleanup_tree_cfg returns.
189         (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
190         for bb_to_omp_idx being a vec<int> instead of pointer to array
191         of ints.
192         (make_edges): Remove bb_to_omp_idx local variable, don't pass
193         it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
194         vec<int> instead of pointer to array of ints and don't free/release
195         it at the end.
196         (remove_bb): When removing a bb and placing forced label somewhere
197         else, ensure it is put into the same OpenMP region during cfg
198         pass if possible or to entry successor as fallback.  Unregister
199         bb from bb_to_omp_idx.
201 2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>
203         PR target/99378
204         * lra-constraints.c (process_address_1): Skip decomposing address
205         for asm insn operand with unknown constraint.
207 2021-03-05  Martin Jambor  <mjambor@suse.cz>
209         PR ipa/98078
210         * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
211         corresponding speculative edges if we are about to resolve
212         sepculation.  Make edge direct (and so resolve speculations) before
213         removing it from call_site_hash.
214         (cgraph_edge::make_direct): Relax the initial assert to allow calling
215         the function on speculative direct edges.
217 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
219         PR rtl-optimization/99376
220         * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
221         of low-order zero bits is too large, set the result to 0 directly.
223 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
225         PR middle-end/93235
226         * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
227         SUBREG and a SUBREG to op_mode can't be created.
229 2021-03-04  Alex Coplan  <alex.coplan@arm.com>
231         PR target/99381
232         * config/aarch64/aarch64-sve-builtins.cc
233         (function_resolver::require_vector_type): Handle error_mark_node.
235 2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>
237         * cfgexpand.c (expand_asm_loc): Pass new parameter.
238         (expand_asm_stmt): Likewise.
239         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
240         parameter.
241         * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
242         * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
243         * config/cris/cris.c (cris_md_asm_adjust): Likewise.
244         * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
245         * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
246         * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
247         * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
248         * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
249         * config/vax/vax.c (vax_md_asm_adjust): Likewise.
250         * config/visium/visium.c (visium_md_asm_adjust): Likewise.
251         * doc/tm.texi (md_asm_adjust): Likewise.
252         * target.def (md_asm_adjust): Likewise.
254 2021-03-04  Richard Biener  <rguenther@suse.de>
256         PR middle-end/97855
257         * tree-pretty-print.c: Poison pp_printf.
258         (dump_decl_name): Avoid use of pp_printf.
259         (dump_block_node): Likewise.
260         (dump_generic_node): Likewise.
262 2021-03-04  Martin Sebor  <msebor@redhat.com>
264         PR middle-end/96963
265         PR middle-end/94655
266         * builtins.c (handle_array_ref): New helper.
267         (handle_mem_ref): New helper.
268         (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
269         into new helper functions.  Correct a workaround for vectorized
270         assignments.
272 2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>
274         * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
275         floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
276         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
277         *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
278         attribute for Power10.
279         * config/rs6000/mma.md (*movoo): Likewise.
280         * config/rs6000/rs6000.md (define_attr "size"): Add 256.
281         (define_mode_attr bits): Add DD/TD modes.
282         * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
283         store_conditionalpti): Update size attribute for Power10.
285 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
287         PR bootstrap/92002
288         * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
289         -Wuninitialized, -Wmaybe-uninitialized.
290         (wide-int.o-warn): Likewise.
292 2021-03-03  Richard Earnshaw  <rearnsha@arm.com>
294         * common/config/arm/arm-common.c: Include configargs.h.
295         (arm_config_default): New function.
296         (arm_target_mode): Renamed from arm_target_thumb_only.  Handle
297         processors that do not support Thumb.  Take into account the
298         --with-mode configuration setting for selecting the default.
299         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
300         (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
302 2021-03-03  Martin Liska  <mliska@suse.cz>
304         PR gcov-profile/97461
305         * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
307 2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>
309         PR target/99234
310         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
311         point back the hard frame pointer to its default location when the
312         frame is larger than SEH_MAX_FRAME_SIZE.
314 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
316         PR target/99321
317         * config/i386/predicates.md (logic_operator): New define_predicate.
318         * config/i386/i386.md (mov + mem using comm arith peephole2):
319         Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
320         and the inner mode is [QH]Imode.
322 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
324         PR debug/99090
325         * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
326         (new_loc_list): Clear end_entry.
327         (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
328         if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
329         typo.
330         (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
331         initialize also end_entry.
333 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
335         PR target/99085
336         * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
337         partitions, if in non-layout mode after reorder_blocks also move
338         affected blocks to ensure a single partition transition.
340 2021-03-03  Jason Merrill  <jason@redhat.com>
342         PR c++/96078
343         * cgraphunit.c (process_function_and_variable_attributes): Don't
344         warn about flatten on an alias if the target also has it.
345         * cgraph.h (symtab_node::get_alias_target_tree): New.
347 2021-03-02  David Edelsohn  <dje.gcc@gmail.com>
349         * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
350         period to symbol name.
351         (tls_get_addr_internal<mode>): Same.
353 2021-03-02  David Malcolm  <dmalcolm@redhat.com>
355         PR c/99323
356         * diagnostic-show-locus.c
357         (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
358         column 0.
360 2021-03-02  Martin Sebor  <msebor@redhat.com>
362         PR middle-end/99276
363         * builtins.c (warn_for_access): Remove stray warning text.
365 2021-03-02  Martin Sebor  <msebor@redhat.com>
367         PR middle-end/99295
368         * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
369         property.
371 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
373         PR debug/99319
374         * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
375         -gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
376         DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
377         DW_MACRO_define_strx and DW_MACRO_undef_strx.
378         (save_macinfo_strings): Use DW_MACRO_*_str* even with
379         -gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
380         DW_MACRO_undef_strx.
382 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
384         * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
385         builtin signature.
386         (BT_FN_V8HI_V8HI_UINT): Likewise.
387         (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
388         * config/s390/s390-builtins.def (B_NNPA): New macro definition.
389         (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
390         New builtin definitions.
391         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
392         vector extension version.
393         * config/s390/s390.c (s390_expand_builtin): Check if builtins are
394         available with current -march level.
395         * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
396         (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
397         (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
398         * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
399         (vec_extend_to_fp32_lo): Likewise.
400         (vec_round_from_fp32): Likewise.
401         (vec_convert_to_fp16): Likewise.
402         (vec_convert_from_fp16): Likewise.
403         * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
404         (vclfnls_v8hi): Likewise.
405         (vcrnfs_v8hi): Likewise.
406         (vcfn_v8hi): Likewise.
407         (vcnf_v8hi): Likewise.
409 2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>
411         * common/config/s390/s390-common.c (processor_flags_table): New entry.
412         * config.gcc: Enable arch14 for --with-arch and --with-tune.
413         * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
414         arch14 for unknown CPU models.
415         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
416         * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
417         (s390_get_sched_attrmask): Likewise.
418         (s390_get_unit_mask): Likewise.
419         * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
420         (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
421         (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
422         (TARGET_NNPA_P): New macro definitions.
423         * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
424         * config/s390/s390.opt: Add PROCESSOR_ARCH14.
426 2021-03-02  Jakub Jelinek  <jakub@redhat.com>
428         PR middle-end/95757
429         * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
430         condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
431         != 1 comparisons if name is lhs of a comparison.
433 2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>
435         PR target/44107
436         PR target/48097
437         * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
438         * config/darwin.c (darwin_should_restore_cfa_state): New.
439         * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
440         * doc/tm.texi: Regenerated.
441         * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
442         * dwarf2cfi.c (connect_traces): If the target requests, restore
443         the CFA expression after a DW_CFA_restore.
444         * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
446 2021-03-01  Martin Liska  <mliska@suse.cz>
448         PR target/99313
449         * optc-save-gen.awk: Add 4 more exceptions.
451 2021-03-01  Nathan Sidwell  <nathan@acm.org>
453         PR c++/99294
454         * tree.h (TYPE_ALIGN_RAW): New accessor.
455         (TYPE_ALIGN): Use it.
457 2021-03-01  Jan Hubicka  <jh@suse.cz>
459         PR ipa/98338
460         * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
462 2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>
464         PR target/99234
465         * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
466         point the hard frame pointer to the SSE register save area instead
467         of the general register save area.  Perform only minimal adjustment
468         for small frames if it is initially not correctly aligned.
469         (ix86_expand_prologue): Remove early saves for a SEH target.
470         * config/i386/winnt.c (struct seh_frame_state): Document constraint.
472 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
474         PR c/99304
475         * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
476         typo - referneced -> referenced.
477         * tree.c (component_ref_size): Fix comment typo -
478         refernce -> reference.
479         * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
480         traling -> trailing.
481         (aliasing_component_refs_p): Fix comment typos -
482         refernce -> reference and refernece -> reference and
483         traling -> trailing.
484         (nonoverlapping_refs_since_match_p): Fix comment typo -
485         referneces -> references.
486         * doc/invoke.texi (--param modref-max-bases): Fix a typo -
487         referneces -> references.
489 2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>
491         * config/host-darwin.c (darwin_gt_pch_use_address): Modify
492         diagnostic message to avoid use of a contraction and format
493         warning.
495 2021-02-27  Jakub Jelinek  <jakub@redhat.com>
497         PR other/99288
498         * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
499         HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
500         * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
501         HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
502         typos.
504 2021-02-26  Richard Biener  <rguenther@suse.de>
506         PR middle-end/99281
507         * expr.c (store_field): For calls with return-slot optimization
508         and addressable return type expand the store directly.
510 2021-02-26  Richard Biener  <rguenther@suse.de>
512         PR c/99275
513         * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
515 2021-02-26  Peter Bergner  <bergner@linux.ibm.com>
517         PR target/99279
518         * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
519         with an "if" test.
521 2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
523         * config.gcc: Add rs6000-pcrel-opt.o.
524         * config/rs6000/rs6000-pcrel-opt.c: New file.
525         * config/rs6000/pcrel-opt.md: New file.
526         * config/rs6000/predicates.md: Add d_form_memory predicate.
527         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
528         * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
529         * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
530         pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
531         and make_pass_pcrel_opt().
532         * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
533         (rs6000_option_override_internal): Add pcrel-opt.
534         (rs6000_delegitimize_address): Support pcrel-opt.
535         (rs6000_opt_masks): Add pcrel-opt.
536         (pcrel_opt_valid_mem_p): New function.
537         (reg_to_non_prefixed): Make global.
538         (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
539         (output_pcrel_opt_reloc): New function.
540         * config/rs6000/rs6000.md (loads_extern_addr): New attr.
541         (pcrel_extern_addr): Set loads_extern_addr.
542         Add include for pcrel-opt.md.
543         * config/rs6000/rs6000.opt: Add -mpcrel-opt.
544         * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
545         pcrel-opt.md.
547 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
549         PR target/98996
550         * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
551         If TARGET_64BIT and dest is SUBREG, we check the width, if it
552         equal to SImode, we use SImode operation, just like what we are
553         doing for REG one.
555 2021-02-26  Marek Polacek  <polacek@redhat.com>
557         * builtins.c (warn_for_access): Fix typos.
559 2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
561         * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
562         mark in front of the immediate quantity.
563         (<optab>_rolsi3_uxtw): Likewise.
565 2021-02-25  Richard Earnshaw  <rearnsha@arm.com>
567         PR target/99271
568         * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
569         (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
570         (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
571         address and disable when the FPCXT is not available.
572         (nonsecure_call_value_reg_thumb2): Likewise.
574 2021-02-25  Nathan Sidwell  <nathan@acm.org>
576         PR c++/99166
577         * doc/invoke.texi (flang-info-module-cmi): Renamed option.
579 2021-02-25  Tamar Christina  <tamar.christina@arm.com>
581         * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
583 2021-02-25  Richard Biener  <rguenther@suse.de>
585         PR tree-optimization/99253
586         * tree-vect-loop.c (check_reduction_path): First compute
587         code, then verify out-of-loop uses.
589 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
591         PR target/95798
592         * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
594 2021-02-25  Jakub Jelinek  <jakub@redhat.com>
596         PR tree-optimization/80635
597         * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
598         VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
599         has mode precision.
601 2021-02-25  Richard Biener  <rguenther@suse.de>
603         * tree-vect-slp.c (optimize_load_redistribution_1): Delay
604         load_map population.
605         (vect_match_slp_patterns_2): Revert part of last change.
606         (vect_analyze_slp): Do not interleave optimize_load_redistribution
607         with pattern detection but do it afterwards.  Dump the
608         whole SLP graph after pattern recognition and load
609         redistribution optimization finished.
611 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
613         PR fortran/99226
614         * omp-low.c (struct omp_context): Add teams_nested_p and
615         nonteams_nested_p members.
616         (scan_omp_target): Diagnose teams nested inside of target with other
617         directives strictly nested inside of the same target.
618         (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
619         ctx->nonteams_nested_p as needed.
621 2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>
623         PR inline-asm/99123
624         * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
626 2021-02-24  Hans-Peter Nilsson  <hp@axis.com>
628         * config/cris/cris.c (cris_expand_prologue): Set
629         current_function_static_stack_size, if flag_stack_usage_info.
631 2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>
633         * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
634         (rs6000_final_prescan_insn): Adjust.
635         (rs6000_asm_output_opcode): Likewise.
637 2021-02-24  Martin Sebor  <msebor@redhat.com>
639         PR middle-end/97172
640         * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
641         from function arguments.
643 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
645         PR tree-optimization/99220
646         * tree-vect-slp.c (optimize_load_redistribution_1): Remove
647         node from cache when it's about to be deleted.
649 2021-02-24  Jakub Jelinek  <jakub@redhat.com>
651         PR tree-optimization/99225
652         * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
653         to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
654         build_int_cst (..., 1).  Formatting fixes.
656 2021-02-24  Tamar Christina  <tamar.christina@arm.com>
658         PR tree-optimization/99149
659         * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
660         buffer.
661         (vect_slp_reset_pattern): Remove.
662         (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
663         (complex_mul_pattern::build, complex_fma_pattern::build,
664         complex_fms_pattern::build): Fix ref counts.
665         * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
666         when node is being deleted.
667         (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
668         (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
669         stores.
670         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
672 2021-02-24  Matthias Klose  <doko@ubuntu.com>
674         Revert:
675         2020-12-07  Matthias Klose  <doko@ubuntu.com>
677         * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
678         and ENABLE_RTL_FLAG_CHECKING.
680 2021-02-24  Richard Biener  <rguenther@suse.de>
682         PR c/99224
683         * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
685 2021-02-23  Peter Bergner  <bergner@linux.ibm.com>
687         * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
688         (vsx_assemble_pair): ...to this.
689         (*mma_assemble_pair): Rename from this...
690         (*vsx_assemble_pair): ...to this.
691         (mma_disassemble_pair): Rename from this...
692         (vsx_disassemble_pair): ...to this.
693         (*mma_disassemble_pair): Rename from this...
694         (*vsx_disassemble_pair): ...to this.
695         * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
696         BU_COMPAT): New macros.
697         (mma_assemble_pair): Rename from this...
698         (vsx_assemble_pair): ...to this.
699         (mma_disassemble_pair): Rename from this...
700         (vsx_disassemble_pair): ...to this.
701         (mma_assemble_pair): New compatibility built-in.
702         (mma_disassemble_pair): Likewise.
703         * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
704         (RS6000_BUILTIN_COMPAT): Define.
705         (bdesc_compat): New.
706         (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
707         (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
708         and VSX_BUILTIN_ASSEMBLE_PAIR.
709         (rs6000_init_builtins): Register compatibility built-ins.
710         (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
711         VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
712         VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
713         * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
714         (__builtin_vsx_assemble_pair): ...to this.
715         (__builtin_mma_disassemble_pair): Rename from this...
716         (__builtin_vsx_disassemble_pair): ...to this.
718 2021-02-23  Martin Liska  <mliska@suse.cz>
720         PR sanitizer/99168
721         * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
722         with different alignment. That leads to an invalid red zone
723         size allocated in runtime.
725 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
727         PR tree-optimization/99204
728         * fold-const.c (fold_read_from_constant_string): Check that
729         tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
731 2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
732             Kewen Lin  <linkw@gcc.gnu.org>
734         * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
735         (rotl<mode>3_insert_3): ...this.
736         (plus_ior_xor): New code_iterator.
737         (define_split for GPR rl*imi): New splitter.
738         * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
739         for integer merging.
741 2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
743         * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
744         Define.
745         * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
746         into a register when the above is enabled.
747         * config/aarch64/aarch64.c (neoversev1_tunings):
748         AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
749         (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
751 2021-02-22  Hans-Peter Nilsson  <hp@axis.com>
753         * config/cris/cris.c (cris_print_operand) <'T'>: Change
754         valid operand from is now an addi mult-value to shift-value.
755         * config/cris/cris.md (*addi): Change expression of scaled
756         operand from mult to ashift.
757         * config/cris/cris.md (*addi_reload): New insn_and_split.
759 2021-02-22  John David Anglin  <danglin@gcc.gnu.org>
761         PR target/85074
762         * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
763         hook_bool_const_tree_hwi_hwi_const_tree_true.
764         (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
766 2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
768         PR rtl-optimization/98791
769         * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
770         for unordered modes.
772 2021-02-22  Martin Liska  <mliska@suse.cz>
774         * tree-inline.c (inline_forbidden_p): Set
775         inline_forbidden_reason.
777 2021-02-22  Richard Biener  <rguenther@suse.de>
779         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
780         costed subgraph.
782 2021-02-22  Richard Biener  <rguenther@suse.de>
784         PR tree-optimization/99165
785         * gimple-ssa-store-merging.c (pass_store_merging::process_store):
786         Accumulate changed to ret.
788 2021-02-21  Uros Bizjak  <ubizjak@gmail.com>
790         Revert:
791         2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>
793         * config/i386/i386.h (REG_ALLOC_ORDER): Remove
795 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
797         PR target/99134
798         * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
799         pattern.
800         (trunctf<DFP_ALL:mode>2): Likewise.
801         (trunctdtf2_vr): Likewise.
802         (trunctdtf2): Likewise.
803         (extend<DFP_ALL:mode>tf2_vr): Likewise.
804         (extend<DFP_ALL:mode>tf2): Likewise.
805         (extendtftd2_vr): Likewise.
806         (extendtftd2): Likewise.
808 2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>
810         * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
811         add memory alternative.
812         (tf_to_fprx2): New pattern.
814 2021-02-19  Martin Sebor  <msebor@redhat.com>
816         PR c/97172
817         * attribs.c (init_attr_rdwr_indices): Guard vblist use.
818         (attr_access::free_lang_data): Remove a spurious test.
820 2021-02-19  Nathan Sidwell  <nathan@acm.org>
822         * doc/invoke.texi (flang-info-module-read): Document.
824 2021-02-19  Martin Liska  <mliska@suse.cz>
826         PR translation/99167
827         * params.opt: Fix typo.
829 2021-02-19  Richard Biener  <rguenther@suse.de>
831         PR middle-end/99122
832         * tree-inline.c (inline_forbidden_p): Do not inline functions
833         with VLA arguments or return value.
835 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
837         PR target/98998
838         * config/arm/arm.md (*stack_protect_combined_set_insn,
839         *stack_protect_combined_test_insn): If force_const_mem result
840         is not valid general operand, force its address into the destination
841         register first.
843 2021-02-19  Jakub Jelinek  <jakub@redhat.com>
845         PR ipa/99034
846         * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
847         pad or non-local label, put FORCED_LABELs from bb b after that label
848         rather than before it.
850 2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
852         PR target/98657
853         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
854         expand_vector_broadcast' to emit the vec_duplicate operand.
856 2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
858         PR rtl-optimization/96264
859         * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
860         hard regs.
862 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
864         PR target/99113
865         * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
866         looking up the retain attribute.
867         (resolve_unique_section): Likewise.
868         (get_variable_section): Likewise.
869         (switch_to_section): Likewise.  Warn when a symbol without the
870         retain attribute and a symbol with the retain attribute are
871         placed in the section with the same name, instead of the used
872         attribute.
873         * doc/extend.texi: Document the "retain" attribute.
875 2021-02-18  Nathan Sidwell  <nathan@acm.org>
877         PR c++/99023
878         * doc/invoke.texi (flang-info-include-translate): Document header
879         lookup behaviour.
881 2021-02-18  Richard Biener  <rguenther@suse.de>
883         PR middle-end/99122
884         * ipa-fnsummary.c (analyze_function_body): Set
885         CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
886         * tree-inline.c (insert_init_debug_bind): Pass NULL for
887         error_mark_node values.
888         (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
889         values.
890         (setup_one_parameter): Delay force_value_to_type until when
891         it's needed.
893 2021-02-18  Hans-Peter Nilsson  <hp@axis.com>
895         PR tree-optimization/99142
896         * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
898 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
900         * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
901         wide_int_bitmask::wide_int_bitmask (uint64_t),
902         wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
903         wide_int_bitmask::operator ~ () const,
904         wide_int_bitmask::operator | (wide_int_bitmask) const,
905         wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
906         instead of inline.
907         * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
908         PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
909         PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
910         PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
911         PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
912         PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
913         PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
914         PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
915         PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
916         PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
917         PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
918         PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
919         PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
920         PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
921         PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
922         PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
923         PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
924         PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
925         PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
926         PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
927         PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
928         PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
929         PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
930         PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
932 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
934         PR middle-end/99109
935         * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
936         (build_printable_array_type): ... this.  Add nelts argument.  For
937         overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
938         nelts, call build_array_type_nelts.
939         (array_bounds_checker::check_mem_ref): Use build_printable_array_type
940         instead of build_zero_elt_array_type and build_array_type_nelts.
942 2021-02-18  Jakub Jelinek  <jakub@redhat.com>
944         PR target/99104
945         * config/i386/i386.c (distance_non_agu_define): Don't call
946         extract_insn_cached here.
947         (ix86_lea_outperforms): Save and restore recog_data around call
948         to distance_non_agu_define and distance_agu_use.
949         (ix86_ok_to_clobber_flags): Remove.
950         (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
951         (ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
952         * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
953         into define_insn.  Move the splitting to define_peephole2 and
954         check there using peep2_regno_dead_p if FLAGS_REG is dead.
956 2021-02-17  Julian Brown  <julian@codesourcery.com>
958         * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
959         for non-decls.
961 2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>
963         PR target/98491
964         * config/mips/mips.c (mips_symbol_insns): Do not use
965         MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
967 2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>
969         PR inline-asm/98096
970         * stmt.c (resolve_operand_name_1): Take inout operands into account
971         for access to labels by names.
972         * doc/extend.texi: Describe counting operands for accessing labels.
974 2021-02-16  Richard Biener  <rguenther@suse.de>
976         PR tree-optimization/38474
977         * tree-ssa-structalias.c (variable_info::address_taken): New.
978         (new_var_info): Initialize address_taken.
979         (process_constraint): Set address_taken.
980         (solve_constraints): Use the new address_taken flag rather
981         than is_reg_var for sorting variables.
982         (dump_constraint): Dump the variable number if the name
983         is just NULL.
985 2021-02-16  Jakub Jelinek  <jakub@redhat.com>
987         PR target/99100
988         * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
989         multiply by 4096 and for inbranch by 8192.
990         * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
991         return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
993 2021-02-15  Maya Rashish  <coypu@sdf.org>
995         * config/aarch64/aarch64.c (aarch64_init_builtins):
996         Call SUBTARGET_INIT_BUILTINS.
998 2021-02-15  Peter Bergner  <bergner@linux.ibm.com>
1000         PR rtl-optimization/98872
1001         * init-regs.c (initialize_uninitialized_regs): Skip initialization
1002         if CONST0_RTX is NULL.
1004 2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>
1006         PR rtl-optimization/98863
1007         * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
1008         (function_info::build_info): Turn into a declaration, moving the
1009         definition to internals.h.
1010         (function_info::bb_walker): Declare.
1011         (function_info::create_reg_use): Likewise.
1012         (function_info::calculate_potential_phi_regs): Take a build_info
1013         parameter.
1014         (function_info::place_phis, function_info::create_ebbs): Declare.
1015         (function_info::calculate_ebb_live_in_for_debug): Likewise.
1016         (function_info::populate_backedge_phis): Delete.
1017         (function_info::start_block, function_info::end_block): Declare.
1018         (function_info::populate_phi_inputs): Delete.
1019         (function_info::m_potential_phi_regs): Move information to build_info.
1020         * rtl-ssa/internals.h: New file.
1021         (function_info::bb_phi_info): New class.
1022         (function_info::build_info): Moved from functions.h.
1023         Add a constructor and destructor.
1024         (function_info::build_info::ebb_use): Delete.
1025         (function_info::build_info::ebb_def): Likewise.
1026         (function_info::build_info::bb_live_out): Likewise.
1027         (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
1028         (function_info::build_info::potential_phi_regs): Likewise.
1029         (function_info::build_info::potential_phi_regs_for_debug): Likewise.
1030         (function_info::build_info::ebb_def_regs): Likewise.
1031         (function_info::build_info::bb_phis): Likewise.
1032         (function_info::build_info::bb_mem_live_out): Likewise.
1033         (function_info::build_info::bb_to_rpo): Likewise.
1034         (function_info::build_info::def_stack): Likewise.
1035         (function_info::build_info::old_def_stack_limit): Likewise.
1036         * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
1037         Remove the regno argument.  Push the previous definition onto the
1038         definition stack where necessary.
1039         * rtl-ssa/accesses.cc: Include internals.h.
1040         * rtl-ssa/changes.cc: Likewise.
1041         * rtl-ssa/blocks.cc: Likewise.
1042         (function_info::build_info::build_info): Define.
1043         (function_info::build_info::~build_info): Likewise.
1044         (function_info::bb_walker): New class.
1045         (function_info::bb_walker::bb_walker): Define.
1046         (function_info::add_live_out_use): Convert a logarithmic-complexity
1047         test into a linear one.  Allow the same definition to be passed
1048         multiple times.
1049         (function_info::calculate_potential_phi_regs): Moved from
1050         functions.cc.  Take a build_info parameter and store the
1051         information there instead.
1052         (function_info::place_phis): New function.
1053         (function_info::add_entry_block_defs): Update call to record_reg_def.
1054         (function_info::calculate_ebb_live_in_for_debug): New function.
1055         (function_info::add_phi_nodes): Use bb_phis to decide which
1056         registers need phi nodes and initialize ebb_def_regs accordingly.
1057         Do not add degenerate phis here.
1058         (function_info::add_artificial_accesses): Use create_reg_use.
1059         Assert that all definitions are listed in the DF LR sets.
1060         Update call to record_reg_def.
1061         (function_info::record_block_live_out): Record live-out register
1062         values in the phis of successor blocks.  Use the live-out set
1063         when processing the last block in an EBB, instead of always
1064         using the live-in sets of successor blocks.  AND the live sets
1065         with the set of registers that have been defined in the EBB,
1066         rather than with all potential phi registers.  Cope correctly
1067         with branches back to the start of the current EBB.
1068         (function_info::start_block): New function.
1069         (function_info::end_block): Likewise.
1070         (function_info::populate_phi_inputs): Likewise.
1071         (function_info::create_ebbs): Likewise.
1072         (function_info::process_all_blocks): Rewrite into a multi-phase
1073         process.
1074         * rtl-ssa/functions.cc: Include internals.h.
1075         (function_info::calculate_potential_phi_regs): Move to blocks.cc.
1076         (function_info::init_function_data): Remove caller.
1077         * rtl-ssa/insns.cc: Include internals.h
1078         (function_info::create_reg_use): New function.  Lazily any
1079         degenerate phis needed by the linear RPO view.
1080         (function_info::record_use): Use create_reg_use.  When processing
1081         debug uses, use potential_phi_regs and test it before checking
1082         whether the register is live on entry to the current EBB.  Lazily
1083         calculate ebb_live_in_for_debug.
1084         (function_info::record_call_clobbers): Update call to record_reg_def.
1085         (function_info::record_def): Likewise.
1087 2021-02-15  Martin Liska  <mliska@suse.cz>
1089         * toplev.c (init_asm_output): Free output of
1090         gen_command_line_string function.
1091         (process_options): Likewise.
1093 2021-02-15  Martin Liska  <mliska@suse.cz>
1095         * params.opt: Add 2 missing Param keywords.
1097 2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>
1099         * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
1101 2021-02-15  Jakub Jelinek  <jakub@redhat.com>
1103         PR tree-optimization/99079
1104         * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
1105         useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
1106         require both type and TREE_TYPE (@1) to be integral types and either
1107         type having smaller or equal precision, or TREE_TYPE (@1) being
1108         unsigned type, or type being signed type.  If TREE_TYPE (@1)
1109         doesn't have wrapping overflow, perform the subtraction of one in
1110         unsigned type.
1112 2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
1113             Richard Biener  <rguether@suse.de>
1115         PR ipa/97346
1116         * ipa-reference.c (ipa_init): Only conditinally initialize
1117         reference_vars_to_consider.
1118         (propagate): Conditionally deninitialize reference_vars_to_consider.
1119         (ipa_reference_write_optimization_summary): Sanity check that
1120         reference_vars_to_consider is not allocated.
1122 2021-02-13  Levy Hsu  <admin@levyhsu.com>
1124         PR target/97417
1125         * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
1126         extend parameter to get_si_mem_base_reg declaration.
1127         (get_si_mem_base_reg): Add extend parameter.  Set it.
1128         (analyze): Pass extend arg to get_si_mem_base_reg.
1129         (transform): Likewise.  Use it when rewriting mems.
1130         * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
1131         loads and emit sign/zero extending load followed by subreg move.
1133 2021-02-13  Jim Wilson  <jimw@sifive.com>
1135         PR target/97417
1136         * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
1137         exit when !reload_completed.  Only perform check for compressed reg
1138         if reload_completed.
1139         (riscv_rtx_costs): In MEM case, when optimizing for size and
1140         shorten memrefs, if not compressible, then increase cost.
1142 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
1144         PR rtl-optimization/98439
1145         * recog.c (pass_split_before_regstack::gate): Enable even when
1146         pass_split_before_sched2 is enabled if -fselective-scheduling2 is
1147         on.
1149 2021-02-13  Jakub Jelinek  <jakub@redhat.com>
1151         PR target/96166
1152         * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
1153         swap of V2SImode elements in memory into DImode memory rotate by 32.
1155 2021-02-12  Martin Sebor  <msebor@redhat.com>
1157         * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
1159 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
1161         * rtl-ssa/accesses.cc (function_info::make_use_available): Use
1162         m_temp_obstack rather than m_obstack to allocate the temporary use.
1164 2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>
1166         * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
1167         as read-modify operations.
1169 2021-02-12  Richard Biener  <rguenther@suse.de>
1171         PR middle-end/38474
1172         * ipa-fnsummary.c (unmodified_parm_1): Only walk when
1173         fbi->aa_walk_budget is bigger than zero.  Update
1174         fbi->aa_walk_budget.
1175         (param_change_prob): Likewise.
1176         * ipa-prop.c (detect_type_change_from_memory_writes):
1177         Properly account walk_aliased_vdefs.
1178         (parm_preserved_before_stmt_p): Canonicalize updates.
1179         (parm_ref_data_preserved_p): Likewise.
1180         (parm_ref_data_pass_through_p): Likewise.
1181         (determine_known_aggregate_parts): Account own alias queries.
1183 2021-02-12  Martin Liska  <mliska@suse.cz>
1185         * opts-common.c (decode_cmdline_option): Release werror_arg.
1186         * opts.c (gen_producer_string): Release output of
1187         gen_command_line_string.
1189 2021-02-12  Richard Biener  <rguenther@suse.de>
1191         PR tree-optimization/38474
1192         * params.opt (-param=max-store-chains-to-track=): New param.
1193         (-param=max-stores-to-track=): Likewise.
1194         * doc/invoke.texi (max-store-chains-to-track): Document.
1195         (max-stores-to-track): Likewise.
1196         * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
1197         New.
1198         (pass_store_merging::m_n_stores): Likewise.
1199         (pass_store_merging::terminate_and_process_chain): Update
1200         m_n_stores and m_n_chains.
1201         (pass_store_merging::process_store): Likewise.   Terminate
1202         oldest chains if the number of stores or chains get too large.
1203         (imm_store_chain_info::terminate_and_process_chain): Dump
1204         chain length.
1206 2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>
1208         * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
1209         the cold section, emit a nop before the directive if the previous
1210         active instruction can throw.
1212 2021-02-11  Peter Bergner  <bergner@linux.ibm.com>
1214         PR target/99041
1215         * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
1216         memory addresses that are legal for quad word accesses.
1218 2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>
1220         PR target/98931
1221         * config/arm/thumb2.md (*doloop_end_internal): Generate
1222         alternative sequence to handle long range branches.
1224 2021-02-11  Joel Hutton  <joel.hutton@arm.com>
1226         PR tree-optimization/98772
1227         * optabs-tree.c (supportable_half_widening_operation): New function
1228         to check for supportable V8QI->V8HI widening patterns.
1229         * optabs-tree.h (supportable_half_widening_operation): New function.
1230         * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
1231         to create promotion stmts for V8QI->V8HI widening patterns.
1232         (vectorizable_conversion): Add case for V8QI->V8HI.
1234 2021-02-11  Richard Biener  <rguenther@suse.de>
1236         * sparseset.h (SPARSESET_ELT_BITS): Remove.
1237         (SPARSESET_ELT_TYPE): Use unsigned int.
1238         * fwprop.c: Do not include sparseset.h.
1240 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
1242         PR c++/99035
1243         * varasm.c (declare_weak): For -fsyntax-only, allow even
1244         TREE_ASM_WRITTEN function decls.
1246 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
1248         PR target/99025
1249         * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
1250         <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
1251         <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
1252         <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
1253         calling simplify_gen_subreg on it.
1255 2021-02-10  Martin Liska  <mliska@suse.cz>
1257         * config/nvptx/nvptx.c (nvptx_option_override): Use
1258         flag_patchable_function_entry instead of the removed
1259         function_entry_patch_area_size.
1261 2021-02-10  Martin Liska  <mliska@suse.cz>
1263         PR tree-optimization/99002
1264         PR tree-optimization/99026
1265         * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
1266         leak when adjacent cases are merged.
1267         * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
1268         release_clusters.
1269         (make_pass_lower_switch): Remove trailing whitespace.
1270         * tree-switch-conversion.h (release_clusters): New.
1272 2021-02-10  Richard Biener  <rguenther@suse.de>
1274         PR rtl-optimization/99054
1275         * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
1276         (fixup_partitions): Adjust.
1277         (rtl_verify_edges): Likewise.
1279 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
1281         PR middle-end/99007
1282         * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
1283         temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
1284         calls.
1286 2021-02-10  Richard Biener  <rguenther@suse.de>
1288         PR ipa/99029
1289         * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
1290         for callees.
1292 2021-02-10  Richard Biener  <rguenther@suse.de>
1294         PR tree-optimization/99024
1295         * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
1296         clear loop->aux if it is associated with the destroyed loop_vinfo.
1298 2021-02-10  Martin Liska  <mliska@suse.cz>
1300         PR tree-optimization/99002
1301         * gimple-if-to-switch.cc (find_conditions): Fix memory leak
1302         in the function.
1304 2021-02-10  Martin Liska  <mliska@suse.cz>
1306         PR ipa/99003
1307         * ipa-icf.c (sem_item::add_reference): Fix memory leak when
1308         a reference exists.
1310 2021-02-10  Jakub Jelinek  <jakub@redhat.com>
1312         PR debug/98755
1313         * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
1314         at class scope for DWARF5+.
1316 2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>
1318         PR rtl-optimization/96015
1319         * reorg.c (skip_consecutive_labels): Minor comment tweaks.
1320         (relax_delay_slots): When deleting a jump to the next active
1321         instruction over a barrier, first delete the barrier if the
1322         jump is the only way to reach the target label.
1324 2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1326         * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
1327         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
1328         vector multiplies and vect.alu for SSRA.
1329         * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
1330         vect.mul cost field.
1331         * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
1332         * config/arm/arm.c: Likewise.
1334 2021-02-09  Richard Biener  <rguenther@suse.de>
1336         PR tree-optimization/98863
1337         * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
1338         * tree-ssa-sccvn.c (last_pushed_avail): New global.
1339         (rpo_elim::eliminate_push_avail): Chain pushed avails.
1340         (unwind_state::avail_top): Add.
1341         (do_unwind): Rewrite unwinding of avail entries.
1342         (do_rpo_vn): Initialize last_pushed_avail and
1343         avail_top of the undo state.
1345 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
1347         PR middle-end/99004
1348         * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
1349         const char * to char * and free those pointers after use.
1351 2021-02-09  Richard Biener  <rguenther@suse.de>
1353         PR tree-optimization/99017
1354         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
1355         zero vector cost entries.
1357 2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1359         PR middle-end/98974
1360         * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
1361         parameter in vectorizable_condition.
1363 2021-02-08  Richard Biener  <rguenther@suse.de>
1365         PR lto/96591
1366         * tree.c (walk_tree_1): Walk VECTOR_CST elements.
1368 2021-02-08  Martin Liska  <mliska@suse.cz>
1370         PR lto/98971
1371         * cfgexpand.c (pass_expand::execute): Parse per-function option
1372         flag_patchable_function_entry and use it.
1373         * common.opt: Remove function_entry_patch_area_size and
1374         function_entry_patch_area_start global variables.
1375         * opts.c (parse_and_check_patch_area): New function.
1376         (common_handle_option): Use it.
1377         * opts.h (parse_and_check_patch_area): New function.
1378         * toplev.c (process_options): Parse and use
1379         function_entry_patch_area_size.
1381 2021-02-08  Martin Sebor  <msebor@redhat.com>
1383         * doc/extend.texi (attribute malloc): Correct typos.
1385 2021-02-05  Nathan Sidwell  <nathan@acm.org>
1387         PR driver/98943
1388         * gcc.c (driver::maybe_run_linker): Check for input file
1389         accessibility if not linking.
1391 2021-02-05  Richard Biener  <rguenther@suse.de>
1393         PR tree-optimization/98855
1394         * tree-vectorizer.h (add_stmt_cost): New overload.
1395         * tree-vect-slp.c (li_cost_vec_cmp): New.
1396         (vect_bb_slp_scalar_cost): Cost individual loop regions
1397         separately.  Account for the scalar instance root stmt.
1399 2021-02-05  Tom de Vries  <tdevries@suse.de>
1401         PR debug/98656
1402         * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
1403         argument.
1404         (bit_test_cluster::emit): Reuse location_t for newly created
1405         gswitch statement.
1406         (switch_decision_tree::try_switch_expansion): Preserve
1407         location_t.
1408         * tree-switch-conversion.h: Change function signatures.
1410 2021-02-05  Jakub Jelinek  <jakub@redhat.com>
1412         PR target/98957
1413         * config/i386/i386-options.c (m_NONE, m_ALL): Define.
1414         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
1415         X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
1416         (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
1418 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1420         * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
1421         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
1422         * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
1423         (vget_high_f16): Reimplement using new builtin.
1424         (vget_high_f32): Likewise.
1425         (vget_high_f64): Likewise.
1426         (vget_high_p8): Likewise.
1427         (vget_high_p16): Likewise.
1428         (vget_high_p64): Likewise.
1429         (vget_high_s8): Likewise.
1430         (vget_high_s16): Likewise.
1431         (vget_high_s32): Likewise.
1432         (vget_high_s64): Likewise.
1433         (vget_high_u8): Likewise.
1434         (vget_high_u16): Likewise.
1435         (vget_high_u32): Likewise.
1436         (vget_high_u64): Likewise.
1438 2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1440         * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
1441         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
1442         * config/aarch64/arm_neon.h (__GET_LOW): Delete.
1443         (vget_low_f16): Reimplement using new builtin.
1444         (vget_low_f32): Likewise.
1445         (vget_low_f64): Likewise.
1446         (vget_low_p8): Likewise.
1447         (vget_low_p16): Likewise.
1448         (vget_low_p64): Likewise.
1449         (vget_low_s8): Likewise.
1450         (vget_low_s16): Likewise.
1451         (vget_low_s32): Likewise.
1452         (vget_low_s64): Likewise.
1453         (vget_low_u8): Likewise.
1454         (vget_low_u16): Likewise.
1455         (vget_low_u32): Likewise.
1456         (vget_low_u64): Likewise.
1458 2021-02-05  Kito Cheng  <kito.cheng@sifive.com>
1460         * gcc.c (print_multilib_info): Check all required argument is provided
1461         by default arg.
1463 2021-02-05  liuhongt  <hongtao.liu@intel.com>
1465         PR target/98537
1466         * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
1467         generate integer mask comparison for 128/256-bits vector when
1468         op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
1469         delete redundant !maskcmp condition.
1470         (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
1471         here.
1472         (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
1473         condition directly to if (maskcmp), add extra check for
1474         cmpmode, it should be MODE_INT.
1475         (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
1476         parameters op_true/op_false.
1477         (ix86_use_mask_cmp_p): New.
1479 2021-02-05  liuhongt  <hongtao.liu@intel.com>
1481         PR target/98172
1482         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
1483         Remove m_GENERIC from ~list.
1484         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
1486 2021-02-04  David Malcolm  <dmalcolm@redhat.com>
1488         PR c/97932
1489         * diagnostic-show-locus.c (compatible_locations_p): Require
1490         locations in the same macro map to be either both from the
1491         macro definition, or both from the macro arguments.
1493 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
1495         * config/aarch64/aarch64-simd-builtins.def: Add
1496         [su]mull_hi_lane[q] builtin generator macros.
1497         * config/aarch64/aarch64-simd.md
1498         (aarch64_<su>mull_hi_lane<mode>_insn): Define.
1499         (aarch64_<su>mull_hi_lane<mode>): Define.
1500         (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
1501         (aarch64_<su>mull_hi_laneq<mode>): Define.
1502         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
1503         builtin instead of inline asm.
1504         (vmull_high_lane_s32): Likewise.
1505         (vmull_high_lane_u16): Likewise.
1506         (vmull_high_lane_u32): Likewise.
1507         (vmull_high_laneq_s16): Likewise.
1508         (vmull_high_laneq_s32): Likewise.
1509         (vmull_high_laneq_u16): Likewise.
1510         (vmull_high_laneq_u32): Liekwise.
1512 2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>
1514         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
1515         builtin generator macros.
1516         * config/aarch64/aarch64-simd.md
1517         (aarch64_<su>mull_hi_n<mode>_insn): Define.
1518         (aarch64_<su>mull_hi_n<mode>): Define.
1519         * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
1520         instead of inline asm.
1521         (vmull_high_n_s32): Likewise.
1522         (vmull_high_n_u16): Likewise.
1523         (vmull_high_n_u32): Likewise.
1525 2021-02-04  Richard Biener  <rguenther@suse.de>
1527         PR tree-optimization/98855
1528         * tree-vect-loop.c (vectorizable_phi): Do not cost
1529         single-argument PHIs.
1530         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
1531         * tree-vect-stmts.c (vectorizable_bswap): Also perform
1532         costing for SLP operation.
1534 2021-02-04  Martin Liska  <mliska@suse.cz>
1536         * doc/extend.texi: Mention -mprefer-vector-width in target
1537         attributes.
1539 2021-02-03  Martin Sebor  <msebor@redhat.com>
1541         PR tree-optimization/98937
1542         * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
1543         Flush pointer_query cache.
1545 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
1547         * config/rs6000/genfusion.pl (gen_2logical): Add missing
1548         fixes based on patch review.
1549         * config/rs6000/fusion.md: Regenerate file.
1551 2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
1553         * config/rs6000/t-rs6000: Comment out auto generation of
1554         fusion.md for now.
1556 2021-02-03  Andrew Stubbs  <ams@codesourcery.com>
1558         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
1559         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
1560         (output_file_start): Add gfx908.
1561         * config/gcn/gcn.opt (gpu_type): Add gfx908.
1562         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
1563         (MULTILIB_DIRNAMES): Add gfx908.
1564         * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
1565         (main): Recognize gfx908.
1566         * config/gcn/t-omp-device: Add gfx908.
1568 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
1570         * config/aarch64/aarch64-simd-builtins.def: Add
1571         [su]mlsl_hi_lane[q] builtin macro generators.
1572         * config/aarch64/aarch64-simd.md
1573         (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
1574         (aarch64_<su>mlsl_hi_lane<mode>): Define.
1575         (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
1576         (aarch64_<su>mlsl_hi_laneq<mode>): Define.
1577         * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
1578         builtin instead of inline asm.
1579         (vmlsl_high_lane_s32): Likewise.
1580         (vmlsl_high_lane_u16): Likewise.
1581         (vmlsl_high_lane_u32): Likewise.
1582         (vmlsl_high_laneq_s16): Likewise.
1583         (vmlsl_high_laneq_s32): Likewise.
1584         (vmlsl_high_laneq_u16): Likewise.
1585         (vmlsl_high_laneq_u32): Likewise.
1586         (vmlal_high_laneq_u32): Likewise.
1588 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
1590         * config/aarch64/aarch64-simd-builtins.def: Add
1591         [su]mlal_hi_lane[q] builtin generator macros.
1592         * config/aarch64/aarch64-simd.md
1593         (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
1594         (aarch64_<su>mlal_hi_lane<mode>): Define.
1595         (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
1596         (aarch64_<su>mlal_hi_laneq<mode>): Define.
1597         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
1598         builtin instead of inline asm.
1599         (vmlal_high_lane_s32): Likewise.
1600         (vmlal_high_lane_u16): Likewise.
1601         (vmlal_high_lane_u32): Likewise.
1602         (vmlal_high_laneq_s16): Likewise.
1603         (vmlal_high_laneq_s32): Likewise.
1604         (vmlal_high_laneq_u16): Likewise.
1605         (vmlal_high_laneq_u32): Likewise.
1607 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
1609         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
1610         builtin generator macros.
1611         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
1612         Define.
1613         (aarch64_<su>mlsl_hi_n<mode>): Define.
1614         * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
1615         instead of inline asm.
1616         (vmlsl_high_n_s32): Likewise.
1617         (vmlsl_high_n_u16): Likewise.
1618         (vmlsl_high_n_u32): Likewise.
1620 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
1622         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
1623         builtin generator macros.
1624         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
1625         Define.
1626         (aarch64_<su>mlal_hi_n<mode>): Define.
1627         * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
1628         instead of inline asm.
1629         (vmlal_high_n_s32): Likewise.
1630         (vmlal_high_n_u16): Likewise.
1631         (vmlal_high_n_u32): Likewise.
1633 2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>
1635         * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
1636         generator macros.
1637         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
1638         Rename to...
1639         (aarch64_<su>mlal_hi<mode>_insn): This.
1640         (aarch64_<su>mlal_hi<mode>): Define.
1641         * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
1642         instead of inline asm.
1643         (vmlal_high_s16): Likewise.
1644         (vmlal_high_s32): Likewise.
1645         (vmlal_high_u8): Likewise.
1646         (vmlal_high_u16): Likewise.
1647         (vmlal_high_u32): Likewise.
1649 2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>
1651         * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
1652         after calling alter_subreg() on a (mem).
1654 2021-02-03  Martin Liska  <mliska@suse.cz>
1656         PR lto/98912
1657         * lto-streamer-out.c (produce_lto_section): Fill up missing
1658         padding.
1659         * lto-streamer.h (struct lto_section): Add _padding field.
1661 2021-02-03  Richard Biener  <rguenther@suse.de>
1663         * lto-streamer.c (lto_get_section_name): Free temporary
1664         buffer.
1665         * tree-loop-distribution.c
1666         (loop_distribution::merge_dep_scc_partitions): Free edge data.
1668 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
1670         PR middle-end/97487
1671         * ifcvt.c (noce_can_force_operand): New function.
1672         (noce_emit_move_insn): Use it.
1673         (noce_try_sign_mask): Likewise.  Formatting fix.
1675 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
1677         PR middle-end/97971
1678         * lra-constraints.c (process_alt_operands): For inline asm, don't call
1679         fatal_insn, but instead return false.
1681 2021-02-03  Jakub Jelinek  <jakub@redhat.com>
1683         PR tree-optimization/98287
1684         * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
1685         for V1DImode.
1687 2021-02-03  Tamar Christina  <tamar.christina@arm.com>
1689         PR tree-optimization/98928
1690         * tree-vect-loop.c (vect_analyze_loop_2): Change
1691         STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
1692         * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
1693         * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
1694         (class _stmt_vec_info): Add slp_vect_pattern_only_p.
1696 2021-02-02  Richard Biener  <rguenther@suse.de>
1698         * gimple-loop-interchange.cc (prepare_data_references):
1699         Release vectors.
1700         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
1701         * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
1702         * tree-vect-stmts.c (vectorizable_condition): Do not
1703         allocate vectors.
1704         (vectorizable_comparison): Likewise.
1706 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1708         * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
1709         * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
1710         * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
1711         (vrsqrteq_u32): Likewise.
1713 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1715         * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
1716         * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
1717         (aarch64_sqxtun2<mode>_be): Likewise.
1718         (aarch64_sqxtun2<mode>): Likewise.
1719         * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
1720         (vqmovun_high_s32): Likewise.
1721         (vqmovun_high_s64): Likewise.
1722         * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
1724 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1726         * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
1727         AUTO_FP flags.
1728         (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
1730 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1732         * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
1733         fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
1734         fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
1735         ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
1736         fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
1737         fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
1738         fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
1739         fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
1741 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1743         * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
1744         * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
1745         ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
1747 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1749         * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
1750         uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
1752 2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1754         * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
1755         vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
1756         vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
1757         ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
1758         udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
1759         ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
1760         ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
1761         ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
1762         NONE builtin flags.
1764 2021-02-02  Jakub Jelinek  <jakub@redhat.com>
1766         PR tree-optimization/98848
1767         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
1768         STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
1770 2021-02-02  Kito Cheng  <kito.cheng@sifive.com>
1772         PR target/98743
1773         * expr.c: Check mode before calling store_expr.
1775 2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>
1777         * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
1778         (VORNQ): Remove.
1779         * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
1780         instruction using expression ior.
1781         (mve_vornq_u<mode>): New expander.
1782         (mve_vornq_f<mode>): Use ior code instead of unspec.
1783         * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
1785 2021-02-02  Alexandre Oliva  <oliva@adacore.com>
1787         * tree-nested.c (convert_nonlocal_reference_op): Move
1788         current_function_decl restore after re-gimplification.
1789         (convert_local_reference_op): Likewise.
1791 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1793         * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
1794         Define builtins.
1795         * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
1796         Define.
1797         (aarch64_rshrn<mode>_insn_be): Likewise.
1798         (aarch64_rshrn<mode>): Likewise.
1799         (aarch64_rshrn2<mode>_insn_le): Likewise.
1800         (aarch64_rshrn2<mode>_insn_be): Likewise.
1801         (aarch64_rshrn2<mode>): Likewise.
1802         * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
1803         * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
1804         using builtin.
1805         (vrshrn_high_n_s32): Likewise.
1806         (vrshrn_high_n_s64): Likewise.
1807         (vrshrn_high_n_u16): Likewise.
1808         (vrshrn_high_n_u32): Likewise.
1809         (vrshrn_high_n_u64): Likewise.
1810         (vrshrn_n_s16): Likewise.
1811         (vrshrn_n_s32): Likewise.
1812         (vrshrn_n_s64): Likewise.
1813         (vrshrn_n_u16): Likewise.
1814         (vrshrn_n_u32): Likewise.
1815         (vrshrn_n_u64): Likewise.
1817 2021-02-01  Sergei Trofimovich  <siarheit@google.com>
1819         PR tree-optimization/98499
1820         * ipa-modref.c (analyze_ssa_name_flags): treat RVO
1821         conservatively and assume all possible side-effects.
1823 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1825         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
1826         vec_unpacku_hi_): Define builtins.
1827         * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
1828         builtin.
1829         (vmovl_high_s16): Likewise.
1830         (vmovl_high_s32): Likewise.
1831         (vmovl_high_u8): Likewise.
1832         (vmovl_high_u16): Likewise.
1833         (vmovl_high_u32): Likewise.
1835 2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1837         * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
1838         Define builtins.
1839         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
1840         pattern.
1841         * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
1842         UNSPEC_UABDL.
1843         * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
1844         builtin.
1845         (vabdl_s16): Likewise.
1846         (vabdl_s32): Likewise.
1847         (vabdl_u8): Likewise.
1848         (vabdl_u16): Likewise.
1849         (vabdl_u32): Likewise.
1850         * config/aarch64/iterators.md (ABDL): New int iterator.
1851         (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
1853 2021-02-01  Martin Sebor  <msebor@redhat.com>
1855         * tree.h (BLOCK_VARS): Add comment.
1856         (BLOCK_SUBBLOCKS): Same.
1857         (BLOCK_SUPERCONTEXT): Same.
1858         (BLOCK_ABSTRACT_ORIGIN): Same.
1859         (inlined_function_outer_scope_p): Same.
1861 2021-02-01  Martin Sebor  <msebor@redhat.com>
1863         PR middle-end/97172
1864         * attribs.c (attr_access::free_lang_data): Define new function.
1865         * attribs.h (attr_access::free_lang_data): Declare new function.
1867 2021-02-01  Richard Biener  <rguenther@suse.de>
1869         * vec.h (auto_vec::auto_vec): Add memory stat parameters
1870         and pass them on.
1871         * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
1873 2021-02-01  Tamar Christina  <tamar.christina@arm.com>
1875         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
1876         aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
1878 2021-02-01  Richard Biener  <rguenther@suse.de>
1880         PR rtl-optimization/98863
1881         * config/i386/i386-features.c (convert_scalars_to_vector):
1882         Set DF_RD_PRUNE_DEAD_DEFS.
1884 2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>
1886         * system.h (SIZE_MAX): Define if not already defined.
1888 2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
1890         * config/rs6000/genfusion.pl (gen_2logical): New function to
1891         generate patterns for logical-logical fusion.
1892         * config/rs6000/fusion.md: Regenerated patterns.
1893         * config/rs6000/rs6000-cpus.def: Add
1894         OPTION_MASK_P10_FUSION_2LOGICAL.
1895         * config/rs6000/rs6000.c (rs6000_option_override_internal):
1896         Enable logical-logical fusion for p10.
1897         * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
1899 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
1901         * config/rs6000/rs6000.opt: Add periods to new AIX options.
1903 2021-01-30  David Edelsohn  <dje.gcc@gmail.com>
1905         * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
1906         (mabi=vec-default): New.
1907         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1908         __EXTABI__ for AIX Vector extended ABI.
1909         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
1910         extabi info.
1911         (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
1912         are non-volatile.
1913         * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
1915 2021-01-30  Jakub Jelinek  <jakub@redhat.com>
1917         * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
1918         DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
1920 2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>
1922         PR target/97701
1923         * lra-constraints.c (in_class_p): Don't narrow class only for REG
1924         or MEM.
1926 2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>
1928         * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
1929         clauses for CODE_FOR_vsx_xvcvuxddp_scale and
1930         CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
1932 2021-01-29  Andrew MacLeod  <amacleod@redhat.com>
1934         PR tree-optimization/98866
1935         * gimple-range-gori.h (gori_compute:set_range_invariant): New.
1936         * gimple-range-gori.cc (gori_map::set_range_invariant): New.
1937         (gori_map::m_maybe_invariant): Rename from all_outgoing.
1938         (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
1939         (gori_map::is_export_p): Ditto.
1940         (gori_map::calculate_gori): Ditto.
1941         (gori_compute::set_range_invariant): New.
1942         * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
1943         invariant for pointers evaluating to [1, +INF].
1945 2021-01-29  Richard Biener  <rguenther@suse.de>
1947         PR rtl-optimization/98863
1948         * config/i386/i386-features.c (remove_partial_avx_dependency):
1949         Do not perform DF analysis.
1950         (pass_data_remove_partial_avx_dependency): Remove
1951         TODO_df_finish.
1953 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
1955         * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
1956         builtin generator macros.
1957         * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
1958         Define.
1959         * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
1960         instead of inline asm.
1961         (vmull_n_s32): Likewise.
1962         (vmull_n_u16): Likewise.
1963         (vmull_n_u32): Likewise.
1965 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1967         * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
1968         Define builtins.
1969         * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
1970         Rename to...
1971         (aarch64_<sur>abdl2<mode>): ... This.
1972         (<sur>sadv16qi): Adjust use of above.
1973         * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
1974         builtin.
1975         (vabdl_high_s16): Likewise.
1976         (vabdl_high_s32): Likewise.
1977         (vabdl_high_u8): Likewise.
1978         (vabdl_high_u16): Likewise.
1979         (vabdl_high_u32): Likewise.
1981 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1983         * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
1984         builtin.
1985         (uabal2): Likewise.
1986         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
1987         pattern.
1988         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
1989         UNSPEC_UABAL2.
1990         * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
1991         builtin.
1992         (vabal_high_s16): Likewise.
1993         (vabal_high_s32): Likewise.
1994         (vabal_high_u8): Likewise.
1995         (vabal_high_u16): Likewise.
1996         (vabal_high_u32): Likewise.
1997         * config/aarch64/iterators.md (ABAL2): New mode iterator.
1998         (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
2000 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2002         * config/aarch64/aarch64-simd-builtins.def (sabal): Define
2003         builtin.
2004         (uabal): Likewise.
2005         * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
2006         Rename to...
2007         (aarch64_<sur>abal<mode>): ... This
2008         (<sur>sadv16qi): Adust use of the above.
2009         * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
2010         builtin.
2011         (vabal_s16): Likewise.
2012         (vabal_s32): Likewise.
2013         (vabal_u8): Likewise.
2014         (vabal_u16): Likewise.
2015         (vabal_u32): Likewise.
2017 2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2019         * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
2020         Define builtins.
2021         * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
2022         Define.
2023         * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
2024         builtin.
2025         (vaddlv_s16): Likewise.
2026         (vaddlv_u8): Likewise.
2027         (vaddlv_u16): Likewise.
2028         (vaddlvq_s8): Likewise.
2029         (vaddlvq_s16): Likewise.
2030         (vaddlvq_s32): Likewise.
2031         (vaddlvq_u8): Likewise.
2032         (vaddlvq_u16): Likewise.
2033         (vaddlvq_u32): Likewise.
2034         (vaddlv_s32): Likewise.
2035         (vaddlv_u32): Likewise.
2036         * config/aarch64/iterators.md (VDQV_L): New mode iterator.
2037         (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
2038         (Vwstype): New mode attribute.
2039         (Vwsuf): Likewise.
2040         (VWIDE_S): Likewise.
2041         (USADDLV): New int iterator.
2042         (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
2044 2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>
2046         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
2047         builtin generator macros.
2048         * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
2049         Define.
2050         * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
2051         instead of inline asm.
2052         (vmlsl_lane_s32): Likewise.
2053         (vmlsl_lane_u16): Likewise.
2054         (vmlsl_lane_u32): Likewise.
2055         (vmlsl_laneq_s16): Likewise.
2056         (vmlsl_laneq_s32): Likewise.
2057         (vmlsl_laneq_u16): Likewise.
2058         (vmlsl_laneq_u32): Likewise.
2060 2021-01-29  Richard Biener  <rguenther@suse.de>
2062         * doc/invoke.texi (--param max-gcse-memory): Document unit
2063         of size.
2064         * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
2065         * params.opt (--param max-gcse-memory): Adjust default and
2066         document unit of size.
2068 2021-01-29  Richard Biener  <rguenther@suse.de>
2070         PR rtl-optimization/98863
2071         * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
2072         HOST_WIDE_INT for the memory estimate.
2074 2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
2075             Richard Biener  <rguenther@suse.de>
2077         PR tree-optimization/97627
2078         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
2079         Do not analyze fake edges.
2081 2021-01-29  Richard Biener  <rguenther@suse.de>
2083         PR rtl-optimization/98144
2084         * df.h (df_mir_bb_info): Add con_visited member.
2085         * df-problems.c (df_mir_alloc): Initialize con_visited,
2086         do not fully populate IN and OUT.
2087         (df_mir_reset): Likewise.
2088         (df_mir_confluence_0): Set con_visited.
2089         (df_mir_confluence_n): Properly handle implicitely
2090         fully populated IN and OUT as designated by con_visited
2091         and update con_visited accordingly.
2093 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
2095         PR target/98849
2096         * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
2097         vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
2098         && !TARGET_REALLY_IWMMXT to conditions.
2100 2021-01-29  Jakub Jelinek  <jakub@redhat.com>
2102         PR debug/98331
2103         * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
2104         a BARRIER.
2106 2021-01-28  Marek Polacek  <polacek@redhat.com>
2108         PR c++/94775
2109         * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
2110         the main variant, maybe reset it in its variants too.
2111         * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
2112         (check_aligned_type): Check if TYPE_USER_ALIGN match.
2114 2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>
2116         PR target/98730
2117         * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
2118         of constant zero for comparisons.
2120 2021-01-28  Michael Meissner  <meissner@linux.ibm.com>
2122         * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
2123         support for mapping built-in function names for long double
2124         built-in functions if long double is IEEE 128-bit.
2126 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
2128         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
2129         builtin generator macros.
2130         * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
2131         Define.
2132         * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
2133         instead of inline asm.
2134         (vmlsl_n_s32): Likewise.
2135         (vmlsl_n_u16): Likewise.
2136         (vmlsl_n_u32): Likewise.
2138 2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>
2140         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
2141         builtin generator macros.
2142         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
2143         Define.
2144         * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
2145         instead of inline asm.
2146         (vmlal_n_s32): Likewise.
2147         (vmlal_n_u16): Likewise.
2148         (vmlal_n_u32): Likewise.
2150 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2152         * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
2153         builtin.
2154         * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
2155         Define.
2156         (aarch64_shrn2<mode>_insn_be): Likewise.
2157         (aarch64_shrn2<mode>): Likewise.
2158         * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
2159         using builtins.
2160         (vshrn_high_n_s32): Likewise.
2161         (vshrn_high_n_s64): Likewise.
2162         (vshrn_high_n_u16): Likewise.
2163         (vshrn_high_n_u32): Likewise.
2164         (vshrn_high_n_u64): Likewise.
2166 2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2168         * config/aarch64/aarch64-simd-builtins.def (shrn): Define
2169         builtin.
2170         * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
2171         Define.
2172         (aarch64_shrn<mode>_insn_be): Likewise.
2173         (aarch64_shrn<mode>): Likewise.
2174         * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
2175         builtins.
2176         (vshrn_n_s32): Likewise.
2177         (vshrn_n_s64): Likewise.
2178         (vshrn_n_u16): Likewise.
2179         (vshrn_n_u32): Likewise.
2180         (vshrn_n_u64): Likewise.
2181         * config/aarch64/iterators.md (vn_mode): New mode attribute.
2183 2021-01-28  Richard Biener  <rguenther@suse.de>
2185         PR rtl-optimization/80960
2186         * dse.c (check_mem_read_rtx): Call get_addr on the
2187         offsetted address.
2189 2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
2190             David Edelsohn  <dje.gcc@gmail.com>
2192         PR target/98799
2193         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2194         Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
2195         when -m32.
2196         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
2197         Delete.
2198         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
2199         wrapper call rs6000_expand_vector_set_var for cleanup.  Call
2200         rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
2201         directly.
2202         (rs6000_expand_vector_set_var): Delete.
2203         (rs6000_expand_vector_set_var_p9): Make static.
2204         (rs6000_expand_vector_set_var_p8): Make static.
2206 2021-01-28  Xing GUO  <higuoxing@gmail.com>
2208         * common/config/riscv/riscv-common.c
2209         (riscv_subset_list::parsing_subset_version): Fix -march option parsing
2210         when `p` extension exists.
2212 2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>
2214         PR rtl-optimization/97684
2215         * ira.c (ira): Call ira_set_pseudo_classes before
2216         update_equiv_regs when it is necessary.
2218 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
2220         PR target/98853
2221         * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
2222         %w0, %w1 and %2 instead of %0, %1 and %2.
2224 2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
2226         * config/rs6000/genfusion.pl: New script to generate
2227         define_insn_and_split patterns so combine can arrange fused
2228         instructions next to each other.
2229         * config/rs6000/fusion.md: New file, generated fused instruction
2230         patterns for combine.
2231         * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
2232         (non_update_memory_operand): New predicate.
2233         * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
2234         OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
2235         POWERPC_MASKS.
2236         * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
2237         prototype.
2238         * config/rs6000/rs6000.c (rs6000_option_override_internal):
2239         Automatically set OPTION_MASK_P10_FUSION and
2240         OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
2241         (rs600_opt_masks): Allow -mpower10-fusion
2242         in function attributes.
2243         (address_is_non_pfx_d_or_x): New function.
2244         * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
2245         * config/rs6000/rs6000.md: Include fusion.md.
2246         * config/rs6000/rs6000.opt: Add -mpower10-fusion
2247         and -mpower10-fusion-ld-cmpi.
2248         * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
2250 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
2252         * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
2253         builtin generator macros.
2254         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
2255         Rename to...
2256         (aarch64_<su>mlal<mode>): This.
2257         * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
2258         instead of inline asm.
2259         (vmlal_s16): Likewise.
2260         (vmlal_s32): Likewise.
2261         (vmlal_u8): Likewise.
2262         (vmlal_u16): Likewise.
2263         (vmlal_u32): Likewise.
2265 2021-01-27  Richard Biener  <rguenther@suse.de>
2267         PR tree-optimization/98854
2268         * tree-vect-slp.c (vect_build_slp_tree_2): Also build
2269         PHIs from scalars when the number of CTORs matches the
2270         number of children.
2272 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
2274         * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
2275         generator macro.
2276         * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
2277         Rename to...
2278         (aarch64_mls_n<mode>): This.
2279         * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
2280         instead of asm.
2281         (vmls_n_s32): Likewise.
2282         (vmls_n_u16): Likewise.
2283         (vmls_n_u32): Likewise.
2284         (vmlsq_n_s16): Likewise.
2285         (vmlsq_n_s32): Likewise.
2286         (vmlsq_n_u16): Likewise.
2287         (vmlsq_n_u32): Likewise.
2289 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
2291         * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
2292         generator macro.
2293         * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
2294         than asm.
2295         (vmls_s16): Likewise.
2296         (vmls_s32): Likewise.
2297         (vmls_u8): Likewise.
2298         (vmls_u16): Likewise.
2299         (vmls_u32): Likewise.
2300         (vmlsq_s8): Likewise.
2301         (vmlsq_s16): Likewise.
2302         (vmlsq_s32): Likewise.
2303         (vmlsq_u8): Likewise.
2304         (vmlsq_u16): Likewise.
2305         (vmlsq_u32): Likewise.
2307 2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>
2309         * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
2310         generator macro.
2311         * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
2312         Rename to...
2313         (aarch64_mla_n<mode>): This.
2314         * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
2315         instead of asm.
2316         (vmla_n_s32): Likewise.
2317         (vmla_n_u16): Likewise.
2318         (vmla_n_u32): Likewise.
2319         (vmlaq_n_s16): Likewise.
2320         (vmlaq_n_s32): Likewise.
2321         (vmlaq_n_u16): Likewise.
2322         (vmlaq_n_u32): Likewise.
2324 2021-01-27  liuhongt  <hongtao.liu@intel.com>
2326         PR target/98833
2327         * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
2328         (*sse2_eq<mode>3): Ditto.
2330 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
2332         * tree-pass.h (PROP_trees): Rename to ...
2333         (PROP_gimple): ... this.
2334         * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
2335         * passes.c (execute_function_dump, execute_function_todo,
2336         execute_one_ipa_transform_pass, execute_one_pass): Likewise.
2337         * varpool.c (ctor_for_folding): Likewise.
2339 2021-01-27  Jakub Jelinek  <jakub@redhat.com>
2341         PR tree-optimization/97260
2342         * varpool.c: Include tree-pass.h.
2343         (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
2344         non-TREE_SIDE_EFFECTS automatic variables.
2346 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
2348         * doc/cpp.texi (__cplusplus): Document value for -std=c++23
2349         or -std=gnu++23.
2350         * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
2351         * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
2352         (gen_compile_unit_die): Recognise C++23.
2354 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
2356         PR bootstrap/98839
2357         * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
2358         in comparison.
2360 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
2362         PR target/98681
2363         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2364         Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
2365         and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.
2367 2021-01-26  Richard Biener  <rguenther@suse.de>
2369         * gimple-pretty-print.c (dump_binary_rhs): Handle
2370         VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
2372 2021-01-26  Richard Biener  <rguenther@suse.de>
2374         PR middle-end/98726
2375         * tree.h (vector_cst_int_elt): Remove.
2376         * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
2377         make static.
2379 2021-01-26  Andrew Stubbs  <ams@codesourcery.com>
2381         * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
2382         for V64DFmode min/max reductions.
2384 2021-01-26  Jakub Jelinek  <jakub@redhat.com>
2386         * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
2387         as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
2388         two halves, one with x and the other with const0_rtx, ordered
2389         depending on endianity.
2391 2021-01-26  Alexandre Oliva  <oliva@adacore.com>
2393         * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
2394         temporaries not seen in binding block, and not about to be
2395         added as gimple variables.
2397 2021-01-25  Martin Sebor  <msebor@redhat.com>
2399         PR c++/98646
2400         * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
2402 2021-01-25  Martin Liska  <mliska@suse.cz>
2404         * value-prof.c (get_nth_most_common_value): Use %s instead
2405         of %qs string.
2407 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
2409         PR debug/98811
2410         * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
2411         readelf -wi is able to read the emitted .debug_info back.
2412         * configure: Regenerated.
2414 2021-01-25  Martin Liska  <mliska@suse.cz>
2416         PR gcov-profile/98739
2417         * common.opt: Add missing sign symbol.
2418         * value-prof.c (get_nth_most_common_value): Restore handling
2419         of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
2420         PROFILE_REPRODUCIBILITY_MULTITHREADED.
2422 2021-01-25  Richard Biener  <rguenther@suse.de>
2424         PR middle-end/98807
2425         * tree.c (vector_element_bits): Always use precision of
2426         the element type for boolean vectors.
2428 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2430         * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
2431         (ENDFILE_SPEC): Evaluate qnolinkcmds.
2433 2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2435         * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
2436         nostartfiles handling since this is already done by
2437         LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
2438         (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
2439         is already done by LINK_COMMAND_SPEC.
2440         (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
2441         this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
2442         evaluation.
2444 2021-01-25  Jakub Jelinek  <jakub@redhat.com>
2446         PR testsuite/98771
2447         * fold-const-call.c (host_size_t_cst_p): Renamed to ...
2448         (size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
2449         value rather than host size_t.
2450         (fold_const_call): Change type of s2 from size_t to
2451         unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
2452         host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
2453         instead of s2 as last argument.
2455 2021-01-25  Tamar Christina  <tamar.christina@arm.com>
2457         * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
2458         VCMLA_OP, VCMUL_OP): New.
2459         * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
2460         * config/arm/neon.md (cmul<conj_op><mode>3): New.
2461         * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
2462         UNSPEC_VCMUL_CONJ): New.
2463         * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
2464         cml<fcmac1><conj_op><mode>4): New.
2466 2021-01-23  Jakub Jelinek  <jakub@redhat.com>
2468         PR testsuite/97301
2469         * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
2471 2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>
2473         * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
2474         generator macro.
2475         * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
2476         than asm.
2477         (vmla_s16): Likewise.
2478         (vmla_s32): Likewise.
2479         (vmla_u8): Likewise.
2480         (vmla_u16): Likewise.
2481         (vmla_u32): Likewise.
2482         (vmlaq_s8): Likewise.
2483         (vmlaq_s16): Likewise.
2484         (vmlaq_s32): Likewise.
2485         (vmlaq_u8): Likewise.
2486         (vmlaq_u16): Likewise.
2487         (vmlaq_u32): Likewise.
2489 2021-01-22  David Malcolm  <dmalcolm@redhat.com>
2491         * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
2492         directive.
2494 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
2496         PR debug/98796
2497         * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
2498         filenames to emit, still emit the required 0 index directory and
2499         filename entries that match DW_AT_comp_dir and DW_AT_name of the
2500         compilation unit.
2502 2021-01-22  Marek Polacek  <polacek@redhat.com>
2504         PR c++/98545
2505         * doc/invoke.texi: Update C++ ABI Version 15 description.
2507 2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2509         PR tree-optimization/98766
2510         * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
2511         comparing against type size with param_avoid_fma_max_bits.
2513 2021-01-22  Richard Biener  <rguenther@suse.de>
2515         PR middle-end/98793
2516         * tree.c (vector_element_bits): Key single-bit bool vector on
2517         integer mode rather than not vector mode.
2519 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
2521         PR target/98093
2522         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2523         Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
2524         platforms.
2525         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
2526         to call different path for P8 and P9.
2527         (rs6000_expand_vector_set_var_p9): New function.
2528         (rs6000_expand_vector_set_var_p8): New function.
2530 2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>
2532         PR target/79251
2533         PR target/98065
2534         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2535         Ajdust variable index vec_insert from address dereference to
2536         ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
2537         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
2538         New declaration.
2539         * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
2541 2021-01-22  Martin Liska  <mliska@suse.cz>
2543         PR gcov-profile/98739
2544         * profile.c (compute_value_histograms): Drop time profile for
2545         -fprofile-reproducible=multithreaded.
2547 2021-01-22  Nathan Sidwell  <nathan@acm.org>
2549         * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
2550         existence here.
2552 2021-01-22  Richard Biener  <rguenther@suse.de>
2554         PR middle-end/98773
2555         * tree-data-ref.c (initalize_matrix_A): Revert previous
2556         change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
2558 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
2560         PR tree-optimization/90248
2561         * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
2562         X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
2563         simplifications.
2564         (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
2565         X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
2567 2021-01-22  Jakub Jelinek  <jakub@redhat.com>
2569         PR tree-optimization/98255
2570         * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
2571         extend index - low_bound from sizetype's precision rather than index
2572         precision.
2573         (get_addr_base_and_unit_offset_1): Likewise.
2574         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
2575         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
2577 2021-01-22  Richard Biener  <rguenther@suse.de>
2579         PR tree-optimization/98786
2580         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
2581         adding new uses of abnormals.  Verify we deal with a conditional
2582         conversion.
2584 2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2586         PR target/98636
2587         * optc-save-gen.awk: Add arm_fp16_format to checked_options.
2589 2021-01-22  liuhongt  <hongtao.liu@intel.com>
2591         PR target/96891
2592         PR target/98348
2593         * config/i386/sse.md (VI_128_256): New mode iterator.
2594         (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
2595          *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
2596          *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
2597         define_insn_and_split to lower avx512 vector comparison to avx
2598         version when dest is vector.
2599         (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
2600         define_insn_and_split for negating the comparison result.
2601         * config/i386/predicates.md (float_vector_all_ones_operand):
2602         New predicate.
2603         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
2604         general NOT operator without UNSPEC_MASKOP.
2606 2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
2608         PR rtl-optimization/98777
2609         * lra-int.h (lra_pmode_pseudo): New extern.
2610         * lra.c (lra_pmode_pseudo): New global.
2611         (lra): Set it up.
2612         * lra-eliminations.c (eliminate_regs_in_insn): Use it.
2614 2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>
2616         * fwprop.c (fwprop_propagation::classify_result): Allow
2617         (subreg (mem)) simplifications.
2619 2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2621         * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
2622         Split into...
2623         (aarch64_sqdmlal<mode>): ... This...
2624         (aarch64_sqdmlsl<mode>): ... And this.
2625         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
2626         (aarch64_sqdmlal_lane<mode>): ... This...
2627         (aarch64_sqdmlsl_lane<mode>): ... And this.
2628         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
2629         (aarch64_sqdmlsl_laneq<mode>): ... This...
2630         (aarch64_sqdmlal_laneq<mode>):  ... And this.
2631         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
2632         (aarch64_sqdmlsl_n<mode>): ... This...
2633         (aarch64_sqdmlal_n<mode>): ... And this.
2634         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
2635         (aarch64_sqdmlal2<mode>_internal): ... This...
2636         (aarch64_sqdmlsl2<mode>_internal): ... And this.
2638 2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>
2640         * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
2642 2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>
2644         PR target/96372
2645         * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
2647 2021-01-21  liuhongt  <hongtao.liu@intel.com>
2649         PR rtl-optimization/98694
2650         * regcprop.c (copy_value): If SRC had been assigned a mode
2651         narrower than the copy, we can't link DEST into the chain even
2652         they have same hard_regno_nregs(i.e. HImode/SImode in i386
2653         backend).
2655 2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2657         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
2658         Convert to define_insn_and_split.  Split into simple move when moving
2659         bottom element.
2661 2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
2663         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
2664         Adjust comment.  Simplify code.
2666 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
2668         PR debug/98765
2669         * dwarf2out.c (reset_indirect_string): Also reset indirect strings
2670         with DW_FORM_line_strp form.
2671         (prune_unused_types_update_strings): Don't add into debug_str_hash
2672         indirect strings with DW_FORM_line_strp form.
2673         (adjust_name_comp_dir): New function.
2674         (dwarf2out_finish): Call it on CU DIEs after resetting
2675         debug_line_str_hash.
2677 2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
2679         PR rtl-optimization/98722
2680         * lra-eliminations.c (eliminate_regs_in_insn): Check that target
2681         has no 3-op add insn to transform insns containing two pluses.
2683 2021-01-20  Richard Biener  <rguenther@suse.de>
2685         * hwint.h (add_hwi): New function.
2686         (mul_hwi): Likewise.
2687         * tree-data-ref.c (initialize_matrix_A): Properly translate
2688         tree constants and avoid HOST_WIDE_INT_MIN.
2689         (lambda_matrix_row_add): Avoid undefined integer overflow
2690         and return true on such overflow.
2691         (lambda_matrix_right_hermite): Handle overflow from
2692         lambda_matrix_row_add gracefully.  Simplify previous fix.
2693         (analyze_subscript_affine_affine): Likewise.
2695 2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>
2697         PR tree-optimization/96674
2698         * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
2699         x >= y && y != XXX_MIN --> x > y - 1
2701 2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>
2703         PR tree-optimization/98535
2704         * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
2705         If the high and low permutes are the same, remove the high permutes
2706         from the working set and only continue with the low ones.
2708 2021-01-20  Jakub Jelinek  <jakub@redhat.com>
2710         PR tree-optimization/98721
2711         * builtins.c (access_ref::inform_access): Don't assume
2712         SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
2713         object whenever allocfn is NULL, rather than only when DECL_P
2714         is true.  Use %qE instead of %qD for that.  Formatting fixes.
2716 2021-01-20  Richard Biener  <rguenther@suse.de>
2718         PR tree-optimization/98758
2719         * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
2720         (lambda_matrix_right_hermite): Avoid undefinedness with
2721         signed integer abs and multiplication.
2722         (analyze_subscript_affine_affine): Use lambda_int.
2724 2021-01-20  David Malcolm  <dmalcolm@redhat.com>
2726         PR debug/98751
2727         * dwarf2out.c (output_line_info): Rename static variable
2728         "generation", moving it out of the function to...
2729         (output_line_info_generation): New.
2730         (init_sections_and_labels): Likewise, renaming the variable to...
2731         (init_sections_and_labels_generation): New.
2732         (dwarf2out_c_finalize): Reset the new variables.
2734 2021-01-19  Martin Sebor  <msebor@redhat.com>
2736         PR middle-end/98664
2737         * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
2738         all functions, even if they're not declared artificial or inline.
2739         * tree.c (tree_inlined_location): Use macro expansion location
2740         only if scope traversal fails to expose one.
2742 2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>
2744         PR rtl-optimization/92294
2745         * alias.c (compare_base_symbol_refs): Take an extra parameter
2746         and add the distance between two symbols to it.  Enshrine in
2747         comments that -1 means "either 0 or 1, but we can't tell
2748         which at compile time".
2749         (memrefs_conflict_p): Update call accordingly.
2750         (rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
2751         into account.
2753 2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2755         * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
2756         sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
2757         uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
2758         sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
2759         sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
2760         sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
2761         sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
2762         sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
2763         sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
2764         uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
2765         sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
2766         sqmovun): Use NONE flags.
2768 2021-01-19  Richard Biener  <rguenther@suse.de>
2770         PR ipa/98330
2771         * ipa-modref.c (analyze_stmt): Only record a summary for a
2772         direct call.
2774 2021-01-19  Richard Biener  <rguenther@suse.de>
2776         PR middle-end/98638
2777         * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
2779 2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>
2781         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
2782         built-in define __FIX_LEON3FT_TN0018.
2784 2021-01-19  Richard Biener  <rguenther@suse.de>
2786         PR ipa/97673
2787         * tree-inline.c (tree_function_versioning): Set input_location
2788         to UNKNOWN_LOCATION throughout the function.
2790 2021-01-19  Tobias Burnus  <tobias@codesourcery.com>
2792         PR fortran/98476
2793         * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
2795 2021-01-19  Martin Jambor  <mjambor@suse.cz>
2797         PR ipa/98690
2798         * ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
2799         whether non-call exceptions allow removal of a statement.
2800         (isra_analyze_call): Pass the appropriate function to
2801         ssa_name_only_returned_p.
2803 2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>
2805         * config/riscv/arch-canonicalize (longext_sort): New function for
2806          sorting 'multi-letter'.
2807         * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
2808         'alts'. The 'arch' may not be the first of 'alts'.
2809         (_expand_combination): Add underline for the 'ext' without '*'.
2810         This is because, a single-letter extension can always be treated well
2811         with a '_' prefix, but it cannot be separated out if it is appended
2812         to a multi-letter.
2814 2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>
2816         PR target/97847
2817         * ira.c (ira): Skip abnormal critical edge splitting.
2819 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
2821         PR tree-optimization/98727
2822         * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
2823         second .MUL_OVERFLOW operand for signed multiplication with overflow
2824         checking if the second operand of multiplication is not constant.
2826 2021-01-18  David Edelsohn  <dje.gcc@gmail.com>
2828         * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
2829         defaults to version 4.
2831 2021-01-18  David Malcolm  <dmalcolm@redhat.com>
2833         * attribs.h (fndecl_dealloc_argno): New decl.
2834         * builtins.c (call_dealloc_argno): Split out second half of
2835         function into...
2836         (fndecl_dealloc_argno): New.
2837         * doc/extend.texi (Common Function Attributes): Document the
2838         interaction between the analyzer and the malloc attribute.
2839         * doc/invoke.texi (Static Analyzer Options): Likewise.
2841 2021-01-17  David Edelsohn  <dje.gcc@gmail.com>
2843         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
2844         dwarf_version to 4.
2845         * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
2847 2021-01-17  Martin Jambor  <mjambor@suse.cz>
2849         PR ipa/98222
2850         * cgraph.c (clone_of_p): Check also former_clone_of as we climb
2851         the clone tree.
2853 2021-01-17  Mark Wielaard  <mark@klomp.org>
2855         * common.opt (gdwarf-): Init(5).
2856         * doc/invoke.texi (-gdwarf): Document default to 5.
2858 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
2860         * builtin-types.def
2861         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
2862         to...
2863         (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
2864         ...this.  Add extra argument.
2865         * gimplify.c (omp_default_clause): Ensure that event handle is
2866         firstprivate in a task region.
2867         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
2868         (gimplify_adjust_omp_clauses): Likewise.
2869         * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
2870         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
2871         * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
2872         if detach clause specified.  Add detach argument when generating
2873         call to GOMP_task.
2874         * omp-low.c (scan_sharing_clauses): Setup data environment for detach
2875         clause.
2876         (finish_taskreg_scan): Move field for variable containing the event
2877         handle to the front of the struct.
2878         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
2879         ordering.
2880         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
2881         OMP_CLAUSE_DETACH clause.
2882         (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
2883         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
2884         * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
2885         Fix ordering.
2886         (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
2887         ordering.
2888         (walk_tree_1): Handle OMP_CLAUSE_DETACH.
2890 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2892         * config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
2893         multilib directory names.  Use MULTILIB_REQUIRED instead of
2894         MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
2895         -mcustom-fpu-cfg=fph2 multilib.
2897 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2899         * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
2900         (nios2_init_fpu_configs): Provide register values for new
2901         -mcustom-fpu-cfg=fph2 option variant.
2902         * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
2903         variant.
2905 2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2907         * config/nios2/nios2.c (nios2_custom_check_insns): Remove
2908         custom instruction warnings.
2910 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
2912         PR tree-optimization/96669
2913         * match.pd ((CST << x) & 1 -> x == 0): New simplification.
2915 2021-01-16  Jakub Jelinek  <jakub@redhat.com>
2917         PR tree-optimization/96271
2918         * passes.def: Pass false argument to first two pass_cd_dce
2919         instances and true to last instance.  Add comment that
2920         last instance rewrites no longer addressed locals.
2921         * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
2922         initialize it.
2923         (pass_cd_dce::set_pass_param): New method.
2924         (pass_cd_dce::execute): Return TODO_update_address_taken from
2925         last cd_dce instance.
2927 2021-01-15  Carl Love  <cel@us.ibm.com>
2929         * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
2930         New defines.
2931         * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
2932         * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
2933         DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
2934         DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
2935         MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
2936         Add builtin define.
2937         (MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
2938         * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
2939         VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
2940         New overloaded definitions.
2941         (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
2942         P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
2943         P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
2944         P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
2945         P10V_BUILTIN_MULHU_V4SI]: Add case
2946         statement for builtins.
2947         * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
2948         * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
2949         (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
2950         (vsx_mul_v2di): Add if TARGET_POWER10 statement.
2951         (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
2952         (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
2953         mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
2954         Add define_insn, mode is VIlong.
2955         * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
2956         Add builtin descriptions.
2958 2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>
2960         * final.c (final_start_function_1): Reset force_source_line.
2962 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
2964         PR tree-optimization/96669
2965         * match.pd (((1 << A) & 1) != 0 -> A == 0,
2966         ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
2967         possibly different power of two constants and to right shift too.
2969 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
2971         PR tree-optimization/96681
2972         * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
2973         ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
2974         ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
2975         ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
2977 2021-01-15  Alexandre Oliva  <oliva@adacore.com>
2979         * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
2981 2021-01-15  Tamar Christina  <tamar.christina@arm.com>
2983         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
2984         cmul<conj_op><mode>3): New.
2985         * config/aarch64/iterators.md (UNSPEC_FCMUL,
2986         UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
2987         UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
2988         FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
2989         sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
2990         (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
2991         (rot_op): Renamed to conj_op.
2992         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
2993         cmul<conj_op><mode>3): New.
2994         * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
2995         cmul<conj_op><mode>3): New.
2997 2021-01-15  David Malcolm  <dmalcolm@redhat.com>
2999         PR bootstrap/98696
3000         * diagnostic.c
3001         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
3002         Escape the tempfile name when constructing the expected output.
3004 2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3006         * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
3007         Rename to...
3008         (aarch64_<su>mlsl_hi<mode>): ... This.
3009         (aarch64_<su>mlsl_hi<mode>): Define.
3010         (*aarch64_<su>mlsl<mode): Rename to...
3011         (aarch64_<su>mlsl<mode): ... This.
3012         * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
3013         smlsl_hi, umlsl_hi): Define builtins.
3014         * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
3015         vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
3016         vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
3017         vmlsl_u16, vmlsl_u32): Reimplement with builtins.
3019 2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>
3021         * config/i386/i386-c.c (ix86_target_macros):
3022         Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
3024 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
3026         PR target/88836
3027         * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
3028         * Makefile.in (RTL_SSA_H): New variable.
3029         * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
3030         * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
3031         * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
3032         pass_combine.
3033         * config/aarch64/aarch64-cc-fusion.cc: New file.
3035 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
3037         * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
3038         calling cancel_changes for changes that no longer exist.
3040 2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>
3042         * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
3043         (function_info::reg_defs): ...this.
3044         * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
3045         (function_info::reg_defs): ...this.
3047 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
3049         PR target/71233
3050         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
3052 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
3054         Revert:
3055         2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
3057         PR target/71233
3058         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
3060 2021-01-15  Richard Biener  <rguenther@suse.de>
3062         PR tree-optimization/96376
3063         * tree-vect-stmts.c (get_load_store_type): Disregard alignment
3064         for VMAT_INVARIANT.
3066 2021-01-15  Martin Liska  <mliska@suse.cz>
3068         * doc/install.texi: Document that some tests need pytest module.
3069         * doc/sourcebuild.texi: Likewise.
3071 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
3073         PR target/71233
3074         * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
3076 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
3078         * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
3079         (mve_vshrq_n_u<mode>_imm): Likewise.
3080         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
3081         * config/arm/vec-common.md: ... here.
3083 2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>
3085         * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
3086         vec-commond.md.
3087         * config/arm/neon.md (vashl<mode>3): Delete.
3088         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
3089         (vasl<mode>3): New expander.
3091 2021-01-15  Richard Biener  <rguenther@suse.de>
3093         PR tree-optimization/98685
3094         * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
3095         of vector extern defs.
3097 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
3099         PR jit/98586
3100         * diagnostic.c (diagnostic_kind_text): Break out this array
3101         from...
3102         (diagnostic_build_prefix): ...here.
3103         (fancy_abort): Detect when diagnostic_initialize has not yet been
3104         called and fall back to a minimal implementation of printing the
3105         ICE, rather than segfaulting in internal_error.
3107 2021-01-14  David Malcolm  <dmalcolm@redhat.com>
3109         * diagnostic.c (diagnostic_initialize): Eliminate
3110         parseable_fixits_p in favor of initializing extra_output_kind from
3111         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
3112         (convert_column_unit): New function, split out from...
3113         (diagnostic_converted_column): ...this.
3114         (print_parseable_fixits): Add "column_unit" and "tabstop" params.
3115         Use them to call convert_column_unit on the column values.
3116         (diagnostic_report_diagnostic): Eliminate conditional on
3117         parseable_fixits_p in favor of a switch statement on
3118         extra_output_kind, passing the appropriate values to the new
3119         params of print_parseable_fixits.
3120         (selftest::test_print_parseable_fixits_none): Update for new
3121         params of print_parseable_fixits.
3122         (selftest::test_print_parseable_fixits_insert): Likewise.
3123         (selftest::test_print_parseable_fixits_remove): Likewise.
3124         (selftest::test_print_parseable_fixits_replace): Likewise.
3125         (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
3126         New.
3127         (selftest::diagnostic_c_tests): Call it.
3128         * diagnostic.h (enum diagnostics_extra_output_kind): New.
3129         (diagnostic_context::parseable_fixits_p): Delete field in favor
3130         of...
3131         (diagnostic_context::extra_output_kind): ...this new field.
3132         * doc/invoke.texi (Environment Variables): Add
3133         GCC_EXTRA_DIAGNOSTIC_OUTPUT.
3134         * opts.c (common_handle_option): Update handling of
3135         OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
3136         fields.
3138 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
3140         * tree-vect-slp-patterns.c (class complex_operations_pattern,
3141         complex_operations_pattern::matches,
3142         complex_operations_pattern::recognize,
3143         complex_operations_pattern::build): New.
3144         (slp_patterns): Use it.
3146 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
3148         * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
3149         * optabs.def (cmls_optab, cmls_conj_optab): New.
3150         * doc/md.texi: Document them.
3151         * tree-vect-slp-patterns.c (class complex_fms_pattern,
3152         complex_fms_pattern::matches, complex_fms_pattern::recognize,
3153         complex_fms_pattern::build): New.
3155 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
3157         * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
3158         * optabs.def (cmla_optab, cmla_conj_optab): New.
3159         * doc/md.texi: Document them.
3160         * tree-vect-slp-patterns.c (vect_match_call_p,
3161         class complex_fma_pattern, vect_slp_reset_pattern,
3162         complex_fma_pattern::matches, complex_fma_pattern::recognize,
3163         complex_fma_pattern::build): New.
3165 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
3167         * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
3168         * optabs.def (cmul_optab, cmul_conj_optab): New.
3169         * doc/md.texi: Document them.
3170         * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
3171         vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
3172         vect_build_combine_node, class complex_mul_pattern,
3173         complex_mul_pattern::matches, complex_mul_pattern::recognize,
3174         complex_mul_pattern::build): New.
3176 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
3178         * tree-vect-slp.c (optimize_load_redistribution_1): New.
3179         (optimize_load_redistribution, vect_is_slp_load_node): New.
3180         (vect_match_slp_patterns): Use it.
3182 2021-01-14  Tamar Christina  <tamar.christina@arm.com>
3184         * tree-vect-slp-patterns.c (complex_add_pattern::build):
3185         Elide nodes.
3187 2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>
3189         * config/gcn/mkoffload.c (main): Create an offload image only in
3190         64-bit configurations.
3192 2021-01-14  H.J. Lu  <hjl.tools@gmail.com>
3194         PR target/98667
3195         * config/i386/i386-options.c (ix86_option_override_internal):
3196         Issue an error for -fcf-protection with CF_BRANCH when compiling
3197         for 32-bit non-TARGET_CMOV targets.
3199 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
3201         PR target/98671
3202         * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
3203         Remove declaration and initialization of shadow variable "ret".
3204         (ix86_option_override_internal): Remove delcaration of
3205         shadow variable "i".  Redeclare shadowed variable to unsigned.
3206         * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
3207         * config/i386/i386-builtins.c (get_builtin_code_for_version):
3208         Update for redeclaration.
3209         * config/i386/i386.h (pta_size): Ditto.
3211 2021-01-14  Richard Biener  <rguenther@suse.de>
3213         PR tree-optimization/98674
3214         * tree-data-ref.c (base_supports_access_fn_components_p): New.
3215         (initialize_data_dependence_relation): For two bases without
3216         possible access fns resort to type size equality when determining
3217         shape compatibility.
3219 2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3221         PR target/66791
3222         * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
3223         <=, >= operators in vcle and vcge intrinsics respectively.
3224         * config/arm/arm_neon_builtins.def: Remove entry for
3225         vcge and vcgeu.
3227 2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>
3229         PR target/98671
3230         * config/i386/i386-options.c (ix86_function_specific_save):
3231         Remove redundant assignment to opts->x_ix86_branch_cost.
3232         * config/i386/i386.c (ix86_prefetch_sse):
3233         Rename from x86_prefetch_sse.  Update all uses.
3234         * config/i386/i386.h: Update for rename.
3235         * config/i386/i386-options.h: Ditto.
3237 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
3239         PR target/98670
3240         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
3241         *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
3242         Use Bm instead of m for non-avx.  Add isa attribute.
3244 2021-01-14  Jakub Jelinek  <jakub@redhat.com>
3246         PR tree-optimization/96688
3247         * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
3248         ~X can be simplified.
3250 2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>
3252         * tree-vect-stmts.c (vect_model_load_cost): Account for unused
3253         IFN_LOAD_LANES results.
3255 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3257         * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
3258         Define.
3259         (aarch64_xtn<mode>): Likewise.
3260         * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
3261         Define
3262         builtins.
3263         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
3264         builtin.
3265         (vmovl_s16): Likewise.
3266         (vmovl_s32): Likewise.
3267         (vmovl_u8): Likewise.
3268         (vmovl_u16): Likewise.
3269         (vmovl_u32): Likewise.
3270         (vmovn_s16): Likewise.
3271         (vmovn_s32): Likewise.
3272         (vmovn_s64): Likewise.
3273         (vmovn_u16): Likewise.
3274         (vmovn_u32): Likewise.
3275         (vmovn_u64): Likewise.
3277 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3279         * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
3280         Define.
3281         (aarch64_<su>qxtn2<mode>_be): Likewise.
3282         (aarch64_<su>qxtn2<mode>): Likewise.
3283         * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
3284         Define builtins.
3285         * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
3286         (su): Handle ss_truncate and us_truncate.
3287         * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
3288         builtin.
3289         (vqmovn_high_s32): Likewise.
3290         (vqmovn_high_s64): Likewise.
3291         (vqmovn_high_u16): Likewise.
3292         (vqmovn_high_u32): Likewise.
3293         (vqmovn_high_u64): Likewise.
3295 2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3297         * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
3298         Define.
3299         (aarch64_xtn2<mode>_be): Likewise.
3300         (aarch64_xtn2<mode>): Likewise.
3301         * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
3302         builtins.
3303         * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
3304         builtins.
3305         (vmovn_high_s32): Likewise.
3306         (vmovn_high_s64): Likewise.
3307         (vmovn_high_u16): Likewise.
3308         (vmovn_high_u32): Likewise.
3309         (vmovn_high_u64): Likewise.
3311 2021-01-13  Stafford Horne  <shorne@gmail.com>
3313         * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
3315 2021-01-13  Stafford Horne  <shorne@gmail.com>
3317         * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
3319 2021-01-13  Stafford Horne  <shorne@gmail.com>
3321         * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
3322           define for __or1k_hard_float__.
3324 2021-01-13  Stafford Horne  <shorne@gmail.com>
3326         * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
3327         (PROFILE_HOOK): Define to call _mcount.
3328         (FUNCTION_PROFILER): Change from abort to no-op.
3330 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
3332         PR tree-optimization/96691
3333         * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
3334         (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
3335         (~D ^ C) or (D ^ C) can be simplified.
3337 2021-01-13  Richard Biener  <rguenther@suse.de>
3339         PR tree-optimization/92645
3340         * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
3341         until after vector lowering.
3343 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
3345         * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
3346         to SVE_I.
3347         (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
3348         (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
3350 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
3352         * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
3353         to SVE_I.
3354         (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
3355         (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
3357 2021-01-13  Richard Biener  <rguenther@suse.de>
3359         PR tree-optimization/92645
3360         * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
3361         BIT_FIELD_REF argument.
3362         (vect_build_slp_tree_2): Record the desired vector type
3363         on the external vector def.
3364         (vectorizable_slp_permutation): Handle required punning
3365         of existing vector defs.
3367 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
3369         * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
3371 2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>
3373         * config/sh/sh.md (movsf_ie): Remove operands[2] test.
3375 2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>
3377         * config.gcc [$target == *-*-gnu*]: Enable
3378         'default_gnu_indirect_function'.
3380 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
3382         PR target/95905
3383         * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
3384         registers before calling targetm.vectorize.vec_perm_const, only after
3385         that.
3386         * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
3387         two argument permutation when one operand is zero vector and only
3388         after that force operands into registers.
3389         * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
3390         define_insn_and_split pattern.
3391         (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
3392         (*avx512f_zero_extendv16hiv16si2_1): Likewise.
3393         (*avx2_zero_extendv8hiv8si2_1): Likewise.
3394         (*avx512f_zero_extendv8siv8di2_1): Likewise.
3395         (*avx2_zero_extendv4siv4di2_1): Likewise.
3396         * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
3397         into registers.
3398         * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
3399         * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
3400         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
3401         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
3402         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
3403         * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.
3405 2021-01-13  Martin Liska  <mliska@suse.cz>
3407         PR tree-optimization/98455
3408         * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
3409         Record also virtual PHIs.
3410         (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
3411         conditionally.
3413 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
3415         * doc/invoke.texi (C++ Modules): Fix typos.
3417 2021-01-13  Richard Biener  <rguenther@suse.de>
3419         PR tree-optimization/98640
3420         * tree-ssa-sccvn.c (visit_nary_op): Do not try to
3421         handle plus or minus from a truncated operand to be
3422         sign-extended.
3424 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
3426         PR target/96938
3427         * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
3428         define_insn_and_split patterns.
3429         (splitter after *btr<mode>_2): New splitter.
3431 2021-01-13  Martin Liska  <mliska@suse.cz>
3433         PR ipa/98652
3434         * cgraphunit.c (analyze_functions): Remove dead code.
3436 2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>
3438         * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
3439         * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
3440         (a64fx_regmove_cost, a64fx_vector_cost): New.
3441         (a64fx_tunings): Use the new added cost tables.
3443 2021-01-13  Jakub Jelinek  <jakub@redhat.com>
3445         PR target/95905
3446         * config/i386/predicates.md (pmovzx_parallel): New predicate.
3447         * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
3448         define_insn_and_split pattern.
3449         (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
3450         (*sse4_1_zero_extendv2siv2di2_3): Likewise.
3452 2021-01-13  Julian Brown  <julian@codesourcery.com>
3454         * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
3455         to fix v0 register.
3457 2021-01-13  Julian Brown  <julian@codesourcery.com>
3459         * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
3460         on entry to a BB.
3462 2021-01-13  Julian Brown  <julian@codesourcery.com>
3464         * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
3465         for reciprocal-approximation instructions.
3466         (div<mode>3): Use fused multiply-accumulate operations for reciprocal
3467         refinement and division result.
3468         * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
3470 2021-01-13  Julian Brown  <julian@codesourcery.com>
3472         * config/gcn/gcn-valu.md (subdf): Rename to...
3473         (subdf3): This.
3475 2021-01-12  Martin Liska  <mliska@suse.cz>
3477         * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
3479 2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>
3481         * function-abi.h: Fix typo.
3483 2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
3485         PR target/97875
3486         PR target/97875
3487         * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
3488         (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
3489         (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
3490         (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
3491         (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
3492         (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
3493         (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
3494         (ARM_HAVE_NEON_V2DI_LDST): Likewise.
3495         (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
3496         (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
3497         (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
3498         (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
3499         (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
3500         (ARM_HAVE_V2DI_LDST): Likewise.
3501         * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
3502         (*movmisalign<mode>_mve_load): New pattern.
3503         * config/arm/neon.md (movmisalign<mode>): Move to ...
3504         * config/arm/vec-common.md: ... here.
3506 2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>
3508         PR target/97969
3509         * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
3510         of pattern 'plus (plus (hard reg, const), pseudo)'.
3512 2021-01-12  Richard Biener  <rguenther@suse.de>
3514         PR tree-optimization/98550
3515         * tree-vect-slp.c (vect_record_max_nunits): Check whether
3516         the group size is a multiple of the vector element count.
3517         (vect_build_slp_tree_1): When we need to fail because
3518         the vector type choosen causes unrolling do so lazily
3519         without affecting matches only at the end to guide group splitting.
3521 2021-01-12  Martin Liska  <mliska@suse.cz>
3523         PR c++/97284
3524         * optc-save-gen.awk: Compare also n_target_save vars with
3525         strcmp.
3527 2021-01-12  Martin Liska  <mliska@suse.cz>
3529         * gcov.c (source_info::debug): New.
3530         (print_usage): Add --debug (-D) option.
3531         (process_args): Likewise.
3532         (generate_results): Call src->debug after
3533         accumulate_line_counts.
3534         (read_graph_file): Properly assign id for EXIT_BLOCK.
3535         * profile.c (branch_prob): Dump function body before it is
3536         instrumented.
3538 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
3540         PR tree-optimization/98629
3541         * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
3542         unless returning non-zero.
3544 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
3546         PR tree-optimization/95731
3547         * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
3548         x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
3549         (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
3550         only after optimize_range_tests_var_bound.
3552 2021-01-12  Jakub Jelinek  <jakub@redhat.com>
3554         * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
3555         * configure: Regenerated.
3557 2021-01-12  liuhongt  <hongtao.liu@intel.com>
3559         PR target/98612
3560         * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
3561         Deleted.
3562         * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
3563         dead code.
3565 2021-01-12  Alexandre Oliva  <oliva@adacore.com>
3567         * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
3568         declare.
3569         (auto_end_imm_use_stmt_traverse): New struct.
3570         (FOR_EACH_IMM_USE_STMT): Use it.
3571         (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
3572         along with uses...
3573         * gimple-ssa-strength-reduction.c: ... here, ...
3574         * graphite-scop-detection.c: ... here, ...
3575         * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
3576         * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
3577         * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
3578         * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
3579         * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
3580         * tree-vect-slp.c: ... and here, ...
3581         * doc/tree-ssa.texi: ... and the example here.
3583 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3585         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
3586         SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
3587         (*sdiv_pow2<mode>3): New pattern.
3588         (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
3589         Wrap the ASRD in an UNSPEC_PRED_X.
3590         (*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
3591         predicate with a constant PTRUE, if it isn't already.
3592         (*cond_<sve_int_op><mode>_z): Replace with...
3593         (*cond_<sve_int_op><mode>_any): ...this new pattern.
3595 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3597         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
3598         SVE_FULL_I to SVE_I.
3599         (*cond_bic<mode>_any): Likewise.
3601 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3603         * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
3604         (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
3605         to SVE_I.
3607 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3609         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
3610         SVE_FULL_I to SVE_I.
3611         (*aarch64_cond_<su>abd<mode>_2): Likewise.
3612         (*aarch64_cond_<su>abd<mode>_any): Likewise.
3613         (@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
3614         for the max and min but not for the minus.
3615         (*aarch64_cond_<su>abd<mode>_3): New pattern.
3617 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3619         * config/aarch64/iterators.md (SVE_24I): New iterator.
3620         * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
3621         SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.
3623 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3625         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
3626         (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
3627         to SVE_I.
3628         (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
3629         (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
3630         (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
3631         (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
3633 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3635         * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
3636         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
3637         (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
3638         to SVE_I.
3640 2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>
3642         * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
3643         (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
3644         (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
3646 2021-01-11  Martin Liska  <mliska@suse.cz>
3648         PR jit/98615
3649         * symtab-clones.h (clone_info::release): Release
3650         symtab::m_clones with ggc_delete as it's a GGC memory.
3652 2021-01-11  Matthias Klose  <doko@ubuntu.com>
3654         * Makefile.in (LINK_PROGRESS): Show the link target.
3656 2021-01-11  Richard Biener  <rguenther@suse.de>
3658         PR tree-optimization/91403
3659         * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
3660         single-element interleaving group size at 4096 elements.
3662 2021-01-11  Richard Biener  <rguenther@suse.de>
3664         PR tree-optimization/98526
3665         * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
3666         of the actual reduction op for the regular case.
3667         (vectorizable_reduction): Cost the stmts
3668         vect_transform_reduction produces here.
3670 2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
3672         * tree-ssa-forwprop.c (simplify_vector_constructor): For
3673         big-endian, use UNPACK[_FLOAT]_HI.
3675 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
3677         * tree-vect-slp-patterns.c (class complex_pattern,
3678         class complex_add_pattern): Add parameters to matches.
3679         (complex_add_pattern::build): Free memory.
3680         (complex_add_pattern::matches): Move validation end of match.
3681         (complex_add_pattern::recognize): Likewise.
3683 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
3685         * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
3687 2021-01-11  Tamar Christina  <tamar.christina@arm.com>
3689         * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
3691 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
3693         PR tree-optimization/95867
3694         * tree-ssa-math-opts.h: New header.
3695         * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
3696         (powi_as_mults): No longer static.  Use build_one_cst instead of
3697         build_real.  Formatting fix.
3698         * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
3699         (attempt_builtin_powi): Handle multiplication reassociation without
3700         powi_fndecl using powi_as_mults.
3701         (reassociate_bb): For integral types don't require
3702         -funsafe-math-optimizations to call attempt_builtin_powi.
3704 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
3706         PR tree-optimization/95852
3707         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
3708         mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
3709         allow in the bb any of the stmts in that vector, div_stmt and
3710         up to 3 cast stmts.
3711         (arith_cast_equal_p): New function.
3712         (arith_overflow_check_p): Add cast_stmt argument, handle signed
3713         multiply overflow checks.
3714         (match_arith_overflow): Adjust caller.  Handle signed multiply
3715         overflow checks.
3717 2021-01-11  Jakub Jelinek  <jakub@redhat.com>
3719         PR tree-optimization/95852
3720         * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
3721         (uaddsub_overflow_check_p): Renamed to ...
3722         (arith_overflow_check_p): ... this.  Handle also multiplication
3723         with overflow check.
3724         (match_uaddsub_overflow): Renamed to ...
3725         (match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
3726         also multiplication with overflow check.  Adjust function comment.
3727         (math_opts_dom_walker::after_dom_children): Adjust callers.  Call
3728         match_arith_overflow also for MULT_EXPR.
3730 2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3732         * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
3733         __builtin_convertvector.
3734         (vmovl_s16): Likewise.
3735         (vmovl_s32): Likewise.
3736         (vmovl_u8): Likewise.
3737         (vmovl_u16): Likewise.
3738         (vmovl_u32): Likewise.
3739         (vmovn_s16): Likewise.
3740         (vmovn_s32): Likewise.
3741         (vmovn_s64): Likewise.
3742         (vmovn_u16): Likewise.
3743         (vmovn_u32): Likewise.
3744         (vmovn_u64): Likewise.
3746 2021-01-11  Martin Liska  <mliska@suse.cz>
3748         * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
3749         (if_chain::is_beneficial): Delete clusters
3750         (find_conditions): Make second argument of conditions_in_bbs a
3751         pointer so that we control over it's lifetime.
3752         (pass_if_to_switch::execute): Delete them.
3754 2021-01-11  Kewen Lin  <linkw@linux.ibm.com>
3756         * ira.c (move_unallocated_pseudos): Check other_reg and skip if
3757         it isn't set.
3759 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
3761         * config/vax/vax.md (cc): Remove mode attribute.
3762         (subst_<cc>, subst_f<cc>): Rename to...
3763         (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
3764         (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
3765         (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
3766         (*branch_<mode>, *branch_<mode>_reversed): Likewise.
3768 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
3770         * config/vax/vax.md (subst_f<cc>): Add mode to operands and
3771         `const_double_zero'.
3773 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
3775         * config/pdp11/pdp11.md (PDPfp): New mode iterator.
3776         (fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
3777         operands.
3779 2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>
3781         * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
3782         rtx.
3783         * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
3784         with `const_double_zero'.
3785         * doc/rtl.texi (Constant Expression Types): Document it.
3787 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
3789         PR c++/98556
3790         * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
3791         POINTER_DIFF_EXPR to be any integral type.
3793 2021-01-09  Jakub Jelinek  <jakub@redhat.com>
3795         PR rtl-optimization/98603
3796         * function.c (instantiate_virtual_regs_in_insn): For asm goto
3797         with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
3798         if any, set ASM_OPERANDS mode to VOIDmode and change
3799         ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
3801 2021-01-09  Alexandre Oliva  <oliva@gnu.org>
3803         PR debug/97714
3804         * final.c (notice_source_line): Narrow down the condition to
3805         skip a line-0 marker.
3807 2021-01-08  Sergei Trofimovich  <siarheit@google.com>
3809         * ipa-modref.c (merge_call_side_effects): Fix
3810         linebreak split by reordering two print calls.
3812 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
3814         * config/s390/vector.md (*tf_to_fprx2_0): Rename from
3815         "*mov_tf_to_fprx2_0" for consistency, fix constraint.
3816         (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
3817         consistency, fix constraint.
3819 2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
3821         * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
3822         callables instead of mask values.
3823         (struct target_flag_set_p): New predicate.
3824         (s390_cpu_cpp_builtins_internal): Define or undefine
3825         __LONG_DOUBLE_VX__ macro.
3827 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
3829         PR target/98482
3830         * config/i386/i386.c (x86_function_profiler): Use R10 and R11
3831         to call mcount in large model with PIC for NO_PROFILE_COUNTERS
3832         targets.
3834 2021-01-08  Richard Biener  <rguenther@suse.de>
3836         * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
3838 2021-01-08  Richard Biener  <rguenther@suse.de>
3840         * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
3841         (vect_build_slp_tree): On cache hit release the matched
3842         scalar stmts vector.
3843         * tree-vect-stmts.c (vectorizable_store): Properly free
3844         vec_oprnds before possibly gathering them again.
3846 2021-01-08  Richard Biener  <rguenther@suse.de>
3848         PR tree-optimization/98544
3849         * tree-vect-slp.c (vect_optimize_slp): Always materialize
3850         permutes at a permute node.
3852 2021-01-08  H.J. Lu  <hjl.tools@gmail.com>
3854         PR target/98482
3855         * config/i386/i386.c (x86_function_profiler): Use R10 to call
3856         mcount in large model.  Sorry for large model with PIC.
3858 2021-01-08  Jakub Jelinek  <jakub@redhat.com>
3860         PR target/98585
3861         * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
3862         ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
3863         ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
3864         TargetSave and initialize for variables with enum types.
3865         (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
3866         mstack-protector-guard-symbol=): Add Save.
3867         * config/i386/i386-options.c (ix86_function_specific_save,
3868         ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
3869         x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
3870         x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
3871         x_ix86_veclibabi_type.
3873 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
3875         * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
3876         SVE_FULL_I to SVE_I.
3877         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
3879 2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>
3881         * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
3882         SVE_FULL_I to SVE_I.
3883         (*cond_uxt<mode>_any): Likewise.
3885 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3887         * config/aarch64/iterators.md (Vwhalf): New iterator.
3888         * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
3889         Rename to...
3890         (aarch64_<sur>adalp<mode>): ... This.  Make more
3891         builtin-friendly.
3892         (<sur>sadv16qi): Adjust callsite of the above.
3893         * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
3894         builtins.
3895         * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
3896         builtins.
3897         (vpadal_s16): Likewise.
3898         (vpadal_u8): Likewise.
3899         (vpadal_u16): Likewise.
3900         (vpadalq_s8): Likewise.
3901         (vpadalq_s16): Likewise.
3902         (vpadalq_s32): Likewise.
3903         (vpadalq_u8): Likewise.
3904         (vpadalq_u16): Likewise.
3905         (vpadalq_u32): Likewise.
3907 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3909         * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
3910         Rename to...
3911         (aarch64_<su>abd<mode>): ... This.
3912         (<sur>sadv16qi): Adjust callsite of the above.
3913         * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
3914         builtins.
3915         * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
3916         builtin.
3917         (vabd_s16): Likewise.
3918         (vabd_s32): Likewise.
3919         (vabd_u8): Likewise.
3920         (vabd_u16): Likewise.
3921         (vabd_u32): Likewise.
3922         (vabdq_s8): Likewise.
3923         (vabdq_s16): Likewise.
3924         (vabdq_s32): Likewise.
3925         (vabdq_u8): Likewise.
3926         (vabdq_u16): Likewise.
3927         (vabdq_u32): Likewise.
3929 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3931         * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
3932         builtins.
3933         * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
3934         (vaba_s16): Likewise.
3935         (vaba_s32): Likewise.
3936         (vaba_u8): Likewise.
3937         (vaba_u16): Likewise.
3938         (vaba_u32): Likewise.
3939         (vabaq_s8): Likewise.
3940         (vabaq_s16): Likewise.
3941         (vabaq_s32): Likewise.
3942         (vabaq_u8): Likewise.
3943         (vabaq_u16): Likewise.
3944         (vabaq_u32): Likewise.
3946 2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3948         * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
3949         (aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
3950         Change RTL pattern to match.
3952 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
3954         * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
3955         * config/riscv/riscv-c.c (riscv-subset.h): New.
3956         (INCLUDE_STRING): Define.
3957         (riscv_cpu_cpp_builtins): Add new style architecture extension
3958         test macros.
3959         * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
3960         (riscv_subset_list::end): New.
3961         (riscv_current_subset_list): New.
3963 2021-01-08  Kito Cheng  <kito.cheng@sifive.com>
3965         * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
3966         Move to riscv-subset.h.
3967         (struct riscv_subset_t): Ditto.
3968         (class riscv_subset_list): Ditto.
3969         * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
3970         from riscv-common.c.
3971         (struct riscv_subset_t): Ditto.
3972         (class riscv_subset_list): Ditto.
3973         * config/riscv/t-riscv ($(common_out_file)): Add file
3974         dependency.
3976 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
3978         PR target/98567
3979         * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
3980         New define_insn patterns.
3982 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
3984         * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
3985         (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
3986         (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
3988 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
3990         PR tree-optimization/98560
3991         * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
3992         * internal-fn.c (vec_cond_mask_direct): Get the data mode from
3993         argument 1.
3994         (vec_cond_direct): Likewise argument 2.
3995         (vec_condu_direct, vec_condeq_direct): Delete.
3996         (expand_vect_cond_optab_fn): Rename to...
3997         (expand_vec_cond_optab_fn): ...this, replacing old macro.
3998         (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
3999         (expand_vect_cond_mask_optab_fn): Rename to...
4000         (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
4001         (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
4002         convert optab.
4003         (direct_vec_cond_optab_supported_p): Likewise.
4004         (direct_vec_condu_optab_supported_p): Delete.
4005         (direct_vec_condeq_optab_supported_p): Delete.
4006         * gimple-isel.cc: Include internal-fn.h.
4007         (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
4008         before using it.
4010 2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>
4012         PR tree-optimization/98560
4013         * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
4014         IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
4016 2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>
4018         * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
4019         rotate_insn and optab code attributes.
4020         Update all uses to merged code attribute.
4021         * config/i386/sse.md: Update all uses to merged code attribute.
4022         * config/i386/mmx.md: Update all uses to merged code attribute.
4024 2021-01-07  Jakub Jelinek  <jakub@redhat.com>
4026         PR tree-optimization/98568
4027         * gimple-ssa-store-merging.c (bswap_view_convert): New function.
4028         (bswap_replace): Use it.
4030 2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>
4032         PR rtl-optimization/97978
4033         * lra-int.h (lra_hard_reg_split_p): New external.
4034         * lra.c (lra_hard_reg_split_p): New global.
4035         (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
4036         * lra-assigns.c (lra_assign): Don't check allocation correctness
4037         after hard reg splitting.
4039 2021-01-06  Martin Sebor  <msebor@redhat.com>
4041         PR c++/98305
4042         * builtins.c (new_delete_mismatch_p): New overload.
4043         (new_delete_mismatch_p (tree, tree)): Call it.
4045 2021-01-06  Alexandre Oliva  <oliva@adacore.com>
4047         * Makefile.in (T_GLIMITS_H): New.
4048         (stmp-int-hdrs): Depend on it, use it.
4049         * config/t-vxworks (T_GLIMITS_H): Override it.
4050         (vxw-glimits.h): New.
4052 2021-01-06  Richard Biener  <rguenther@suse.de>
4054         PR tree-optimization/98513
4055         * value-range.cc (intersect_ranges): Compare the upper bounds
4056         for the expected relation.
4058 2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
4060         Revert:
4061         2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
4063         * doc/standards.texi (HSAIL): Remove section.
4065 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
4067         * configure: Re-generate.
4069 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4071         * doc/invoke.texi (-std=c++20): Adjust for the publication of
4072         ISO 14882:2020 standard.
4073         * doc/standards.texi: Likewise.
4075 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4077         PR tree-optimization/94802
4078         * expr.h (maybe_optimize_sub_cmp_0): Declare.
4079         * expr.c: Include tree-pretty-print.h and flags.h.
4080         (maybe_optimize_sub_cmp_0): New function.
4081         (do_store_flag): Use it.
4082         * cfgexpand.c (expand_gimple_cond): Likewise.
4084 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
4086         * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
4087         * rtlanal.c (simple_regno_set): Tweak description to clarify the
4088         RMW condition.
4090 2021-01-05  Richard Biener  <rguenther@suse.de>
4092         PR tree-optimization/98516
4093         * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
4094         lanes when materializing on a VEC_PERM node.
4095         (vectorizable_slp_permutation): Dump the permute properly.
4097 2021-01-05  Richard Biener  <rguenther@suse.de>
4099         * tree-vect-slp.c (vect_slp_region): Move debug counter
4100         to cover individual subgraphs.
4102 2021-01-05  Richard Biener  <rguenther@suse.de>
4104         PR tree-optimization/98428
4105         * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
4106         vector lane extracts for loop vectorization.
4108 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4110         PR tree-optimization/98514
4111         * tree-ssa-reassoc.c (bb_rank): Change type from long * to
4112         int64_t *.
4113         (operand_rank): Change type from hash_map<tree, long> to
4114         hash_map<tree, int64_t>.
4115         (phi_rank): Change return type from long to int64_t.
4116         (loop_carried_phi): Change block_rank variable type from long to
4117         int64_t.
4118         (propagate_rank): Change return type, rank parameter type and
4119         op_rank variable type from long to int64_t.
4120         (find_operand_rank): Change return type from long to int64_t
4121         and change slot variable type from long * to int64_t *.
4122         (insert_operand_rank): Change rank parameter type from long to
4123         int64_t.
4124         (get_rank): Change return type and rank variable type from long to
4125         int64_t.  Use PRId64 instead of ld to print the rank.
4126         (init_reassoc): Change rank variable type from long to int64_t
4127         and adjust correspondingly bb_rank and operand_rank initialization.
4129 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4131         PR tree-optimization/96928
4132         * tree-ssa-phiopt.c (xor_replacement): New function.
4133         (tree_ssa_phiopt_worker): Call it.
4135 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4137         PR tree-optimization/96930
4138         * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
4139         from narrower value which has the same type as 1 << B, perform
4140         the right shift on the narrower value followed by extension.
4142 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4144         PR tree-optimization/96239
4145         * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
4146         function.
4147         (get_status_for_store_merging): Don't return BB_INVALID for blocks
4148         with potential bswap optimizable CONSTRUCTORs.
4149         (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
4150         if possible.
4152 2021-01-05  Richard Biener  <rguenther@suse.de>
4154         PR tree-optimization/98381
4155         * tree.c (vector_element_bits): Properly compute bool vector
4156         element size.
4157         * tree-vect-loop.c (vectorizable_live_operation): Properly
4158         compute the last lane bit offset.
4160 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
4162         PR target/98522
4163         * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
4164         Clear the top 64 bytes of the input XMM register.
4165         (sse_cvttps2pi): Ditto.
4167 2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>
4169         PR target/98521
4170         * config/i386/xopintrin.h (_mm256_cmov_si256): New.
4172 2021-01-05  H.J. Lu  <hjl.tools@gmail.com>
4174         PR target/98495
4175         * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
4176         short first.
4178 2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>
4180         * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
4181         (umaddsidi4_split): Likewise.
4183 2021-01-05  liuhongt  <hongtao.liu@intel.com>
4185         PR target/98461
4186         * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
4187         define_insn_and_split for zero_extend of subreg HI of pmovskb
4188         result.
4189         (*sse2_pmovskb_zexthisi): Add new combine splitters for
4190         zero_extend of not of subreg HI of pmovskb result.
4192 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
4194         PR target/97269
4195         * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
4196         nested in CONSTs.
4197         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
4198         convert_memory_address to convert symbolic immediates to ptr_mode
4199         before forcing them to memory.
4201 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
4203         PR rtl-optimization/97144
4204         * recog.c (constrain_operands): Initialize matching_operand
4205         for each alternative, rather than only doing it once.
4207 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
4209         PR rtl-optimization/98403
4210         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
4211         why we don't remove call clobbers.
4212         (function_info::apply_changes_to_insn): Don't attempt to add
4213         call clobbers here.
4215 2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>
4217         PR tree-optimization/98371
4218         * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
4219         (vect_analyze_loop): If an epilogue loop appears to be cheaper
4220         than the main loop, re-analyze it as a main loop before adopting
4221         it as a main loop.
4223 2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4225         PR c++/98316
4226         * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
4227         * aclocal.m4, configure: Regenerate.
4228         * Makefile.in (NETLIBS): Define.
4229         (BACKEND): Remove $(CODYLIB).
4231 2021-01-05  Jakub Jelinek  <jakub@redhat.com>
4233         PR rtl-optimization/98334
4234         * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
4235         Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
4237 2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4239         * tree-inline.c (expand_call_inline): Restore input_location.
4240         Return result from recursive call.
4242 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
4244         PR tree-optimization/95401
4245         * config/aarch64/aarch64-sve-builtins.cc
4246         (gimple_folder::load_store_cookie): Use bits rather than bytes
4247         for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
4248         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
4249         * tree-vect-stmts.c (vectorizable_store): Likewise.
4250         (vectorizable_load): Likewise.
4252 2021-01-04  Richard Biener  <rguenther@suse.de>
4254         PR tree-optimization/98308
4255         * tree-vect-stmts.c (vectorizable_load): Set invariant mask
4256         SLP vectype.
4258 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
4260         PR tree-optimization/95771
4261         * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
4262         with precision smaller than int's precision and types with precision
4263         twice as large as long long.  Formatting fixes.
4265 2021-01-04  Richard Biener  <rguenther@suse.de>
4267         PR tree-optimization/98464
4268         * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
4269         (vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
4270         (process_bb): Adjust.
4272 2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>
4274         PR other/98437
4275         * doc/invoke.texi (-fsanitize=address): Fix wording describing
4276         clash with -fsanitize=hwaddress.
4278 2021-01-04  Richard Biener  <rguenther@suse.de>
4280         PR tree-optimization/98282
4281         * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
4282         invariants as VN_NARY.
4284 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
4286         PR target/89057
4287         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
4288         aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
4289         to handle zero operands.
4291 2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>
4293         * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
4294         (offset_6bit_unsigned_scaled_p): Fix typo in comment.
4295         (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
4296         [-32, 31].
4298 2021-01-04  Richard Biener  <rguenther@suse.de>
4300         PR tree-optimization/98393
4301         * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
4302         when hitting the limit.
4304 2021-01-04  Richard Biener  <rguenther@suse.de>
4306         PR tree-optimization/98291
4307         * tree-vect-loop.c (vectorizable_reduction): Bypass
4308         associativity check for SLP reductions with VF 1.
4310 2021-01-04  Jakub Jelinek  <jakub@redhat.com>
4312         PR tree-optimization/96782
4313         * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
4315 2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4317         * collect-utils.c (collect_execute): Check dumppfx.
4318         * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
4319         to collect_execute.
4320         (do_link): Add new parameter atsuffix.
4321         (main): Handle -dumpdir option.  Skip one argument for
4322         -o, -isystem and -B options.
4323         * gcc.c (make_at_file): New helper function.
4324         (close_at_file): Use it.
4326 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4328         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
4329         Amend handling for LD64_VERSION fallback defaults.
4331 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4333         * config.gcc: Compute default version information
4334         from the configured target.  Likewise defaults for
4335         ld64.
4336         * config/darwin10.h: Removed.
4337         * config/darwin12.h: Removed.
4338         * config/darwin9.h: Removed.
4339         * config/rs6000/darwin8.h: Removed.
4341 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4343         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
4345 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4347         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
4348         * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
4350 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4352         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
4353         here...
4354         * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
4356 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4358         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
4359         for the Darwin10 unwinder stub from here ...
4360         * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
4362 2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>
4364         * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
4365         (ASM_DEBUG_SPEC):Only define if the assembler supports
4366         stabs.
4367         (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
4368         (DARWIN_PREFER_DWARF): Define.
4369         * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
4370         (DARWIN_PREFER_DWARF): Likewise
4371         (DSYMUTIL_SPEC): Likewise.
4372         (COLLECT_RUN_DSYMUTIL): Likewise.
4373         (ASM_DEBUG_SPEC): Likewise.
4374         (ASM_DEBUG_OPTION_SPEC): Likewise.
4376 2021-01-02  Jan Hubicka  <jh@suse.cz>
4378         * cfg.c (free_block): ggc_free bb.
4380 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
4382         * gcc.c (process_command): Update copyright notice dates.
4383         * gcov-dump.c (print_version): Ditto.
4384         * gcov.c (print_version): Ditto.
4385         * gcov-tool.c (print_version): Ditto.
4386         * gengtype.c (create_file): Ditto.
4387         * doc/cpp.texi: Bump @copying's copyright year.
4388         * doc/cppinternals.texi: Ditto.
4389         * doc/gcc.texi: Ditto.
4390         * doc/gccint.texi: Ditto.
4391         * doc/gcov.texi: Ditto.
4392         * doc/install.texi: Ditto.
4393         * doc/invoke.texi: Ditto.
4395 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
4397         * ChangeLog-2020: Rotate ChangeLog.  New file.
4400 Copyright (C) 2021 Free Software Foundation, Inc.
4402 Copying and distribution of this file, with or without modification,
4403 are permitted in any medium without royalty provided the copyright
4404 notice and this notice are preserved.