1 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
3 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
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
27 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
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>
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>
49 * lra-constraints.c (process_address_1): Process 0..9 constraints
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>
64 * config/i386/i386-options.c (ix86_option_override_internal):
65 Set isa_flags for OPTS argument and not for the global
68 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
70 * config/rs6000/predicates.md (ds_form_mem_operand): Check
73 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
76 * config/rs6000/predicates.md (ds_form_mem_operand) New
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>
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>
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
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>
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
109 (vsx_store_<mode>): Likewise.
111 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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>
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>
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>
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
161 2021-03-07 Jakub Jelinek <jakub@redhat.com>
164 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
165 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description
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
171 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
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>
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
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
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>
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>
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>
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>
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
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>
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>
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
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>
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>
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>
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>
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
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>
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>
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>
356 * diagnostic-show-locus.c
357 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
360 2021-03-02 Martin Sebor <msebor@redhat.com>
363 * builtins.c (warn_for_access): Remove stray warning text.
365 2021-03-02 Martin Sebor <msebor@redhat.com>
368 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
371 2021-03-02 Jakub Jelinek <jakub@redhat.com>
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
382 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
384 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
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>
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>
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>
449 * optc-save-gen.awk: Add 4 more exceptions.
451 2021-03-01 Nathan Sidwell <nathan@acm.org>
454 * tree.h (TYPE_ALIGN_RAW): New accessor.
455 (TYPE_ALIGN): Use it.
457 2021-03-01 Jan Hubicka <jh@suse.cz>
460 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
462 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
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>
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 -
481 (aliasing_component_refs_p): Fix comment typos -
482 refernce -> reference and refernece -> reference and
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
495 2021-02-27 Jakub Jelinek <jakub@redhat.com>
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
504 2021-02-26 Richard Biener <rguenther@suse.de>
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>
513 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
515 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
518 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
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
547 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
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
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>
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>
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>
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
601 2021-02-25 Richard Biener <rguenther@suse.de>
603 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
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>
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>
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>
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
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
670 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
672 2021-02-24 Matthias Klose <doko@ubuntu.com>
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>
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.
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>
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
741 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
743 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
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>
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
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
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>
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>
798 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
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>
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>
827 * params.opt: Fix typo.
829 2021-02-19 Richard Biener <rguenther@suse.de>
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>
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
843 2021-02-19 Jakub Jelinek <jakub@redhat.com>
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>
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
862 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
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
873 * doc/extend.texi: Document the "retain" attribute.
875 2021-02-18 Nathan Sidwell <nathan@acm.org>
878 * doc/invoke.texi (flang-info-include-translate): Document header
881 2021-02-18 Richard Biener <rguenther@suse.de>
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
890 (setup_one_parameter): Delay force_value_to_type until when
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
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>
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>
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
961 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
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>
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
985 2021-02-16 Jakub Jelinek <jakub@redhat.com>
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
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
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
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
1112 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
1113 Richard Biener <rguether@suse.de>
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>
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>
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
1149 2021-02-13 Jakub Jelinek <jakub@redhat.com>
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>
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):
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
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>
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>
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>
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>
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
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>
1282 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
1283 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
1286 2021-02-10 Richard Biener <rguenther@suse.de>
1289 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
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
1304 2021-02-10 Martin Liska <mliska@suse.cz>
1307 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
1310 2021-02-10 Jakub Jelinek <jakub@redhat.com>
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>
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>
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>
1366 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
1368 2021-02-08 Martin Liska <mliska@suse.cz>
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>
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>
1402 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
1404 (bit_test_cluster::emit): Reuse location_t for newly created
1406 (switch_decision_tree::try_switch_expansion): Preserve
1408 * tree-switch-conversion.h: Change function signatures.
1410 2021-02-05 Jakub Jelinek <jakub@redhat.com>
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
1463 2021-02-05 liuhongt <hongtao.liu@intel.com>
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
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>
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>
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
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
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):
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):
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
1637 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
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>
1657 * lto-streamer-out.c (produce_lto_section): Fill up missing
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
1665 * tree-loop-distribution.c
1666 (loop_distribution::merge_dep_scc_partitions): Free edge data.
1668 2021-02-03 Jakub Jelinek <jakub@redhat.com>
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>
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
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):
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
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
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
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>
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.
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):
1795 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
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
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
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):
1839 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
1841 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
1843 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
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>
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
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
1911 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
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>
1923 * lra-constraints.c (in_class_p): Don't narrow class only for REG
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
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>):
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):
1969 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
1971 (aarch64_<sur>abdl2<mode>): ... This.
1972 (<sur>sadv16qi): Adjust use of above.
1973 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
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
1986 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
1988 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
1990 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
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
2005 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
2007 (aarch64_<sur>abal<mode>): ... This
2008 (<sur>sadv16qi): Adust use of the above.
2009 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
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):
2021 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
2023 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
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.
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>):
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
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>
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>
2103 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
2106 2021-01-28 Marek Polacek <polacek@redhat.com>
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>
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>):
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>):
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
2154 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
2156 (aarch64_shrn2<mode>_insn_be): Likewise.
2157 (aarch64_shrn2<mode>): Likewise.
2158 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
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
2170 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
2172 (aarch64_shrn<mode>_insn_be): Likewise.
2173 (aarch64_shrn<mode>): Likewise.
2174 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
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
2189 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
2190 David Edelsohn <dje.gcc@gmail.com>
2193 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2194 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
2196 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
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
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>
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
2236 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
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>):
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
2272 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2274 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
2276 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
2278 (aarch64_mls_n<mode>): This.
2279 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
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
2293 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
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
2311 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
2313 (aarch64_mla_n<mode>): This.
2314 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
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>
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
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>
2357 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
2360 2021-01-26 Jakub Jelinek <jakub@redhat.com>
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>
2375 * tree.h (vector_cst_int_elt): Remove.
2376 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
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>
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
2407 2021-01-25 Jakub Jelinek <jakub@redhat.com>
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>
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
2444 2021-01-25 Jakub Jelinek <jakub@redhat.com>
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>
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
2475 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
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
2494 2021-01-22 Jakub Jelinek <jakub@redhat.com>
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
2502 2021-01-22 Marek Polacek <polacek@redhat.com>
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>
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>
2522 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2523 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
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>
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):
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
2552 2021-01-22 Richard Biener <rguenther@suse.de>
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
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
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
2584 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2587 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
2589 2021-01-22 liuhongt <hongtao.liu@intel.com>
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):
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.
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>):
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>
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
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
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>
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>
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>
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
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>
2771 * ipa-modref.c (analyze_stmt): Only record a summary for a
2774 2021-01-19 Richard Biener <rguenther@suse.de>
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>
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>
2793 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
2795 2021-01-19 Martin Jambor <mjambor@suse.cz>
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
2814 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
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
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
2845 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
2847 2021-01-17 Martin Jambor <mjambor@suse.cz>
2850 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
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>
2861 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
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
2874 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
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
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.
2886 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
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
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
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):
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):
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>
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>):
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>
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
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>
3050 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
3052 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
3055 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
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
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>
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
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>
3100 * diagnostic.c (diagnostic_kind_text): Break out this array
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):
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
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
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):
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>
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>
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>
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
3227 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
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>
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>):
3259 (aarch64_xtn<mode>): Likewise.
3260 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
3263 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
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):
3281 (aarch64_<su>qxtn2<mode>_be): Likewise.
3282 (aarch64_<su>qxtn2<mode>): Likewise.
3283 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
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
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):
3299 (aarch64_xtn2<mode>_be): Likewise.
3300 (aarch64_xtn2<mode>): Likewise.
3301 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
3303 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
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
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
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>
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
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
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
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
3424 2021-01-13 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
3457 2021-01-13 Julian Brown <julian@codesourcery.com>
3459 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
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...
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>
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>
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>
3524 * optc-save-gen.awk: Compare also n_target_save vars with
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
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>
3560 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
3562 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
3565 2021-01-12 Alexandre Oliva <oliva@adacore.com>
3567 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
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,
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
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
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
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>
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
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
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
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
3779 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3781 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
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>
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>
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>
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
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>
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>
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):
3890 (aarch64_<sur>adalp<mode>): ... This. Make more
3892 (<sur>sadv16qi): Adjust callsite of the above.
3893 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
3895 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
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):
3911 (aarch64_<su>abd<mode>): ... This.
3912 (<sur>sadv16qi): Adjust callsite of the above.
3913 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
3915 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
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
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
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
3976 2021-01-07 Jakub Jelinek <jakub@redhat.com>
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
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
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
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>
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>
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
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
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
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
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
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
4152 2021-01-05 Richard Biener <rguenther@suse.de>
4154 PR tree-optimization/98381
4155 * tree.c (vector_element_bits): Properly compute bool vector
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>
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>
4170 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
4172 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
4175 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
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>
4186 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
4187 define_insn_and_split for zero_extend of subreg HI of pmovskb
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>
4195 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
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
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
4223 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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
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>
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>
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
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
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
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
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
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.